gnome-vfs-2.24.4/0000755000175000001440000000000011450333532010500 500000000000000gnome-vfs-2.24.4/gnome-vfs-2.0.pc.in0000644000175000001440000000063311334251016013546 00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ sysconfdir=@sysconfdir@ modulesdir=${sysconfdir}/gnome-vfs-2.0/modules Name: gnome-vfs Description: The GNOME virtual file-system libraries Version: @VERSION@ Requires: gconf-2.0 gthread-2.0 gmodule-no-export-2.0 gobject-2.0 Libs: -L${libdir} -lgnomevfs-2 Cflags: -I${includedir}/gnome-vfs-2.0 -I${libdir}/gnome-vfs-2.0/include gnome-vfs-2.24.4/configure.in0000644000175000001440000012124511413132751012735 00000000000000AC_INIT(libgnomevfs/gnome-vfs.h) # Making releases: # LIBGNOMEVFS_MICRO_VERSION += 1; # LIBGNOMEVFS_INTERFACE_AGE += 1; # if any functions have been added, set LIBGNOMEVFS_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set LIBGNOMEVFS_BINARY_AGE and LIBGNOMEVFS_INTERFACE_AGE to 0. # LIBGNOMEVFS_MAJOR_VERSION=2 LIBGNOMEVFS_MINOR_VERSION=24 LIBGNOMEVFS_MICRO_VERSION=4 LIBGNOMEVFS_INTERFACE_AGE=4 # If you need a modifier for the version number. # Normally empty, but can be used to make "fixup" releases. LIBGNOMEVFS_EXTRAVERSION= dnl libtool versioning from libgnome LIBGNOMEVFS_CURRENT=`expr 100 '*' $LIBGNOMEVFS_MINOR_VERSION + $LIBGNOMEVFS_MICRO_VERSION - $LIBGNOMEVFS_INTERFACE_AGE` LIBGNOMEVFS_BINARY_AGE=`expr 100 '*' $LIBGNOMEVFS_MINOR_VERSION + $LIBGNOMEVFS_MICRO_VERSION` LIBGNOMEVFS_REVISION=$LIBGNOMEVFS_INTERFACE_AGE LIBGNOMEVFS_AGE=`expr $LIBGNOMEVFS_BINARY_AGE - $LIBGNOMEVFS_INTERFACE_AGE` LIBGNOMEVFS_VERSION=$LIBGNOMEVFS_MAJOR_VERSION.$LIBGNOMEVFS_MINOR_VERSION.$LIBGNOMEVFS_MICRO_VERSION$LIBGNOMEVFS_EXTRAVERSION AC_SUBST(LIBGNOMEVFS_MAJOR_VERSION) AC_SUBST(LIBGNOMEVFS_MINOR_VERSION) AC_SUBST(LIBGNOMEVFS_MICRO_VERSION) AC_SUBST(LIBGNOMEVFS_INTERFACE_AGE) AC_SUBST(LIBGNOMEVFS_BINARY_AGE) AC_SUBST(LIBGNOMEVFS_CURRENT) AC_SUBST(LIBGNOMEVFS_REVISION) AC_SUBST(LIBGNOMEVFS_AGE) AC_SUBST(LIBGNOMEVFS_VERSION) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(gnome-vfs, $LIBGNOMEVFS_VERSION) dnl make sure we keep ACLOCAL_FLAGS around for maintainer builds to work AC_SUBST(ACLOCAL_AMFLAGS, "$ACLOCAL_FLAGS") AM_MAINTAINER_MODE GNOME_COMMON_INIT dnl touch NOINST_GOB dnl AC_CONFIG_SUBDIRS(gob) AC_ISC_POSIX AC_PROG_CC AC_PROG_CPP AC_PROG_AWK AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL IT_PROG_INTLTOOL([0.35.0]) dnl Check for Win32 case $host in *-*-mingw*) os_win32=yes # We do have getaddrinfo # But only on XP, so don't use it as Win2000 is still widespread # AC_CACHE_VAL(ac_cv_func_getaddrinfo, [ac_cv_func_getaddrinfo=yes]) # No dbus on Win32 (yet, at least) dbus_requirement="" # Thus also no gnome-vfs-daemon on Win32 enable_daemon_default=no ;; *) os_win32=no dbus_requirement="dbus-glib-1 >= 0.60" enable_daemon_default=yes ;; esac AM_CONDITIONAL(OS_WIN32, [test "$os_win32" = "yes"]) dnl Globally define_GNU_SOURCE and therefore enable the GNU extensions AC_DEFINE(_GNU_SOURCE, 1, [Enable GNU Extensions]) dnl Versions shared with the .spec file. GCONF_REQUIRED=1.1.1 GLIB_REQUIRED=2.9.3 XML_REQUIRED=2.6.0 AC_SUBST(GCONF_REQUIRED) AC_SUBST(GLIB_REQUIRED) AC_SUBST(XML_REQUIRED) LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"' AC_SUBST(LIBTOOL_EXPORT_OPTIONS) PKG_CHECK_MODULES(MODULES_XML, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED) AC_SUBST(MODULES_XML_CFLAGS) AC_SUBST(MODULES_XML_LIBS) PKG_CHECK_MODULES(MODULES, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED) AC_SUBST(MODULES_LIBS) AC_SUBST(MODULES_CFLAGS) PKG_CHECK_MODULES(MODULES_FILE, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED) AC_SUBST(MODULES_FILE_LIBS) AC_SUBST(MODULES_FILE_CFLAGS) PKG_CHECK_MODULES(MODULES_GCONF, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED) AC_SUBST(MODULES_GCONF_CFLAGS) AC_SUBST(MODULES_GCONF_LIBS) PKG_CHECK_MODULES(MODULES_XML_GCONF, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED) AC_SUBST(MODULES_XML_GCONF_CFLAGS) AC_SUBST(MODULES_XML_GCONF_LIBS) PKG_CHECK_MODULES(TEST, gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED) AC_SUBST(TEST_LIBS) AC_SUBST(TEST_CFLAGS) cflags_set=yes GNOME_COMPILE_WARNINGS VFS_CFLAGS="$warnCFLAGS $complCFLAGS" dnl semaphore functions are in librt.so on solaris AC_SEARCH_LIBS(sem_wait, rt) dnl and in libsem.so on systems that use libsem AC_SEARCH_LIBS(sem_wait, sem) dnl Don't blindly #define them if they're typedef'ed in AM_GNOME_SIZE_T AM_GNOME_OFF_T AC_CACHE_CHECK([for off64_t], ac_cv_have_off64_t, AC_TRY_COMPILE([ # define _LARGEFILE64_SOURCE # include ], [off64_t testoffset], ac_cv_have_off64_t=yes, ac_cv_have_off64_t=no)) if test x"$ac_cv_have_off64_t" = "xyes" ; then AC_DEFINE(HAVE_OFF64_T, 1, [Whether off64_t type is available]) fi GETTEXT_PACKAGE=gnome-vfs-2.0 AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Name of the gettext package]) AM_GLIB_GNU_GETTEXT AC_CHECK_FUNCS(ngettext, have_ngettext=yes, [AC_CHECK_LIB(intl,ngettext,have_ngettext=yes)]) if test x"$have_ngettext" != "xyes"; then AC_MSG_ERROR([Your Gettext installation doesn't seem to support ngettext to handle translation of plural forms. Please install GNU Gettext]) fi; AC_SEARCH_LIBS(gethostent, nsl) AC_SEARCH_LIBS(setsockopt, socket) AC_SEARCH_LIBS(login_tty, util, [AC_DEFINE([HAVE_LOGIN_TTY],[],[Whether login_tty is available])]) AC_FUNC_ALLOCA AC_CHECK_FUNCS(getdtablesize open64 lseek64 statfs statvfs seteuid setegid setresuid setresgid readdir_r mbrtowc inet_pton getdelim sysctlbyname poll posix_fadvise fchmod atoll mmap) AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev]) AC_STRUCT_ST_BLOCKS dnl Volume monitor stuff AC_CHECK_FUNCS(setmntent endmntent hasmntopt getmntinfo) AC_CHECK_HEADERS(mntent.h sys/mnttab.h sys/vfstab.h sys/cdio.h sys/mount.h sys/mntctl.h sys/vfs.h sys/vmount.h sys/sysctl.h fstab.h fnmatch.h util.h sys/sysmacros.h) AC_PATH_PROG(GCONFTOOL, gconftool-2, no) if test x"$GCONFTOOL" = xno; then AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) fi AM_GCONF_SOURCE_2 VFS_SIZE="guint64" VFS_OFFSET="gint64" VFS_SIZE_IS="UNSIGNED_LONG_LONG" VFS_OFFSET_IS="LONG_LONG" AC_SUBST(VFS_SIZE) AC_SUBST(VFS_OFFSET) AC_SUBST(VFS_SIZE_IS) AC_SUBST(VFS_OFFSET_IS) AC_CHECK_HEADERS(sys/param.h sys/resource.h sys/vfs.h sys/mount.h sys/statfs.h sys/statvfs.h sys/param.h wctype.h sys/poll.h poll.h) dnl dnl file system type member in statfs struct dnl AC_CHECK_MEMBERS([struct statfs.f_type], ,[ AC_CHECK_MEMBERS([struct statfs.f_fstyp], , , [#ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif])], [#ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif]) dnl dnl if statfs() takes 2 arguments or 4 (Solaris) dnl if test "$ac_cv_func_statfs" = yes ; then AC_MSG_CHECKING([number of arguments to statfs()]) AC_TRY_COMPILE([#include #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif], [struct statfs st; statfs(NULL, &st);],[ AC_MSG_RESULT([2]) AC_DEFINE(STATFS_ARGS, 2, [Number of arguments to statfs()])],[ AC_TRY_COMPILE([#include #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif], [struct statfs st; statfs(NULL, &st, sizeof (st), 0);],[ AC_MSG_RESULT([4]) AC_DEFINE(STATFS_ARGS, 4, [Number of arguments to statfs()])],[ AC_MSG_RESULT(unknown) AC_MSG_ERROR([unable to determine number of arguments to statfs()])])]) fi dnl test "$ac_cv_func_statfs" = yes AC_TYPE_MBSTATE_T AC_CHECK_FUNCS(dirname, [AC_CHECK_HEADERS(libgen.h)] ,[ AC_SEARCH_LIBS(dirname, [gen])]) dnl ==================================== dnl = dnl = Profiling support dnl = dnl ==================================== ENABLE_PROFILER= AC_ARG_ENABLE(profiler, [ --enable-profiler Enable profiler], [ENABLE_PROFILER=1 AC_DEFINE(ENABLE_PROFILER, 1, [Whether to enable profiler support]) ]) if test "$ENABLE_PROFILER" = 1; then CFLAGS="-g -O -gdwarf-2 -finstrument-functions -D__NO_STRING_INLINES" LDFLAGS="/gnome/PROFILE/lib/libprofiler.so -lpthread" fi AC_SUBST(ENABLE_PROFILER) AM_CONDITIONAL(ENABLE_PROFILER, test "$ENABLE_PROFILER" = 1) dnl ==================================== dnl turn warnings into errors to enforce clean code for cvs users (not in tarball) AC_ARG_ENABLE(more-warnings, [ --enable-more-warnings Maximum compiler warnings], set_more_warnings="$enableval",[ if test -f $srcdir/CVSVERSION; then set_more_warnings=yes else set_more_warnings=no fi ]) if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then echo "enable compile warnings = $set_more_warnings" VFS_CFLAGS="-Wall \ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith" for option in -fno-strict-aliasing -Wno-strict-aliasing -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$VFS_CFLAGS $option $CFLAGS" AC_MSG_CHECKING([whether gcc understands $option]) AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) CFLAGS="$SAVE_CFLAGS" if test $has_option = yes; then VFS_CFLAGS="$VFS_CFLAGS $option" fi AC_MSG_RESULT($has_option) unset has_option unset SAVE_CFLAGS done unset option fi AC_SUBST(VFS_CFLAGS) dnl dnl gnome vfs Documentation dnl GNOME_VFS_DIR=`(cd $srcdir; pwd)` AC_SUBST(GNOME_VFS_DIR) VFS_LIBS="-lgnomevfs $VFS_GLIB_LIBS" VFS_LIBDIR='-L${libdir}' VFS_INCLUDEDIR='-I${includedir} -I${libdir}/vfs/include'" $VFS_GLIB_CFLAGS" AC_SUBST(VFS_LIBDIR) AC_SUBST(VFS_INCLUDEDIR) AC_SUBST(VFS_LIBS) dnl dnl efs-method.c dnl dnl if test "x$libefs_disabled" = xyes; then dnl LIBEFS_CONFIG=no dnl else dnl AC_PATH_PROG(LIBEFS_CONFIG, libefs-config, no) dnl fi dnl dnl if test "x$LIBEFS_CONFIG" != xno; then dnl LIBEFS_LIBS=`$LIBEFS_CONFIG --libs` dnl LIBEFS_CFLAGS=`$LIBEFS_CONFIG --cflags` dnl fi dnl AM_CONDITIONAL(HAVE_LIBEFS, false) LIBEFS_LIBS="" LIBEFS_CFLAGS="" AC_SUBST(LIBEFS_LIBS) AC_SUBST(LIBEFS_CFLAGS) dnl dnl ftp-method.c dnl AC_DEFUN([AC_STRUCT_LINGER], [ av_struct_linger=no AC_MSG_CHECKING(struct linger is available) AC_TRY_RUN([ #include #include struct linger li; main () { li.l_onoff = 1; li.l_linger = 120; exit (0); } ],[ AC_DEFINE(HAVE_STRUCT_LINGER, 1, [Define to 1 if struct linger is available]) av_struct_linger=yes ],[ av_struct_linger=no ],[ av_struct_linger=no ]) AC_MSG_RESULT($av_struct_linger) ]) have_socket=no AC_CHECK_FUNCS(socket, have_socket=yes) if test $have_socket = no; then # socket is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do AC_CHECK_LIB($lib, socket, [ LIBS="$LIBS -l$lib" have_socket=yes AC_DEFINE(HAVE_SOCKET, 1, [Whether we have socket]) break]) done fi AC_CHECK_FUNCS(inet_ntop) AC_CHECK_LIB(bz2, bzCompressInit, AC_DEFINE(HAVE_OLDER_BZIP2, 1, [Define to 1 if older bzip2 version is used])) AC_CHECK_HEADERS(bzlib.h, BZ2_LIBS="$BZ2_LIBS -lbz2", AC_MSG_ERROR([Gnome-vfs requires libbz2 to compile.]) ) AC_SUBST(BZ2_LIBS) if test $have_socket = yes; then AC_STRUCT_LINGER fi dnl modules/cdda have_cdda=no AC_ARG_ENABLE(cdda, [ --enable-cdda Enable cdda module (not recommended)], [ if test "x$enable_cdda" != "xno"; then AC_CHECK_HEADERS(cdda_interface.h cdda_paranoia.h, [ CDDA_LIBS="$CDDA_LIBS -lcdda_paranoia -lcdda_interface" have_cdda=yes ]) if test "$have_cdda" = yes; then dnl FreeBSD applies some patches to cdparanoia to support their libcam dnl library. We need to detect if those ara available because the dnl cdrom_drive structure changes internally. AC_MSG_CHECKING([whether cdparanoia uses FreeBSD's libcam]) AC_COMPILE_IFELSE([#include int main(void) { struct cdrom_drive cd; void *v = (void *) cd.dev; return 0; }], [AC_DEFINE(HAVE_CDDA_WITH_LIBCAM, 1, [Define to 1 if cdparanoia contains FreeBSD-specific libcam support]) cdda_with_libcam=yes], [cdda_with_libcam=no ]) AC_MSG_RESULT($cdda_with_libcam) fi fi ]) AM_CONDITIONAL(HAVE_CDDA, test $have_cdda = yes) AC_SUBST(CDDA_LIBS) dnl GSSAPI dnl Check for Kerberos installation have_gssapi=no AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin) if test "x$KRB5_CONFIG" != "xnone"; then GSSAPI_LIBS="`${KRB5_CONFIG} --libs gssapi`" GSSAPI_CFLAGS="`${KRB5_CONFIG} --cflags gssapi`" saved_CPPFLAGS="$CPPFLAGS" saved_LIBS="$LIBS" LIBS="$LIBS $GSSAPI_LIBS" CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" # MIT and Heimdal put gssapi.h in different places AC_CHECK_HEADERS(gssapi/gssapi.h gssapi.h, [ AC_CHECK_FUNCS(gss_init_sec_context, [ AC_MSG_NOTICE([GSSAPI authentication support enabled]) AC_DEFINE(HAVE_GSSAPI, 1, [Define if GSSAPI support is enabled]) AC_CHECK_HEADERS(gssapi/gssapi_generic.h) have_gssapi=yes # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE AC_CHECK_DECL([GSS_C_NT_HOSTBASED_SERVICE],, [AC_DEFINE([GSS_C_NT_HOSTBASED_SERVICE], gss_nt_service_name, [Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise]) ], [ #ifdef HAVE_GSSAPI_GSSAPI_H #include #else #include #endif ]) ]) break ]) LIBS="$saved_LIBS" CPPFLAGS="$saved_CPPFLAGS" fi AC_SUBST(GSSAPI_LIBS) AC_SUBST(GSSAPI_CFLAGS) dnl ****************************** dnl http-method (neon checks) dnl ****************************** VFS_NEON_BUNDLED(imported/neon) AC_ARG_ENABLE(http-debug, [AS_HELP_STRING([--enable-http-debug],[Enable HTTP method debugging])], [],[enable_http_debug=no]) if test "$enable_http_debug" = "yes"; then AC_DEFINE([DEBUG_HTTP_ENABLE], 1, [Indicates http debugging status]) AC_MSG_NOTICE([HTTP module debugging ENABLED]) fi dnl modules/cdemenu-desktop AC_MSG_CHECKING(for Solaris platform) case $host in *solaris*) build_cdemenu_module=yes ;; *) build_cdemenu_module=no ;; esac AC_MSG_RESULT([$build_cdemenu_module]) AM_CONDITIONAL(BUILD_CDEMENU_MODULE, test "$build_cdemenu_module" = "yes") dnl ****************************** dnl Samba 3.0 dnl ****************************** AC_ARG_ENABLE(samba, [ --disable-samba build without samba support]) msg_samba="no" if test "x$enable_samba" != "xno"; then AC_ARG_WITH(samba-includes, [ --with-samba-includes=PREFIX Location of samba includes.], with_samba_includes="$withval", with_samba_includes="/usr/include") have_samba_includes="no" if test "x${with_samba_includes}" != "xno"; then CPPFLAGS_save="$CPPFLAGS" echo "before test, samba_includes: ${samba_includes}" CPPFLAGS="$CPPFLAGS -I$with_samba_includes" AC_CHECK_HEADER(libsmbclient.h, [ samba_includes="yes" ]) CPPFLAGS="$CPPFLAGS_save" if test "x{samba_includes}" != "xno" -a "x${samba_includes}" != "x"; then have_samba_includes="yes" if test "${with_samba_includes}" != "/usr/include" ; then SAMBA_CFLAGS="-I$with_samba_includes" else SAMBA_CFLAGS="" fi CPPFLAGS="$CPPFLAGS -I$with_samba_includes" AC_CHECK_MEMBER(SMBCCTX.flags, [AC_DEFINE(HAVE_SAMBA_FLAGS,, [Defined if flags availible in SMBCCTXT])],, [#include ]) AC_CHECK_MEMBER(SMBCCTX.close, [AC_DEFINE(HAVE_SAMBA_OLD_CLOSE, , [Defined if old close is available in SMBCCTXT])],, [#include ]) CPPFLAGS="$CPPFLAGS_save" else SAMBA_CFLAGS="" fi fi echo "have_samba_includes: ${have_samba_includes}" AC_ARG_WITH(samba-libs, [ --with-samba-libs=PREFIX Location of Samba libs.], with_samba_libs="$withval", with_samba_libs="/usr/lib") if test "x${with_samba_libs}" != "xno" -a "x${have_samba_includes}" != "xno"; then LDFLAGS_save="$LDFLAGS" LDFLAGS="$LDFLAGS -L$with_samba_libs" AC_CHECK_LIB(smbclient, smbc_new_context,samba_libs="yes", samba_libs="no") LDFLAGS="$LDFLAGS_save" if test "x${samba_libs}" != "xno"; then AC_DEFINE(HAVE_SAMBA,, [Define to 1 if you have the samba 3.0 libraries]) msg_samba="yes" if test x$with_samba_libs != x/usr/lib; then SAMBA_LIBS="-L$with_samba_libs -lsmbclient" else SAMBA_LIBS="-lsmbclient" fi else SAMBA_CFLAGS="" SAMBA_LIBS="" fi fi AC_MSG_CHECKING(for Samba 3.0 libraries) AC_MSG_RESULT($msg_samba) fi AM_CONDITIONAL(HAVE_SAMBA, test $msg_samba = yes) AC_SUBST(SAMBA_CFLAGS) AC_SUBST(SAMBA_LIBS) dnl *************************************************************************** dnl SSL support dnl *************************************************************************** have_ssl=false dnl ****************************** dnl OpenSSL dnl ****************************** AC_ARG_ENABLE(openssl, [ --disable-openssl build without openssl support]) if test "x$enable_openssl" != "xno"; then PKG_CHECK_MODULES(OPENSSL, openssl, [have_ssl=true AC_DEFINE(HAVE_OPENSSL, 1, [Define to 1 if OpenSSL is available]) ],[ AC_ARG_WITH(openssl-includes, [ --with-openssl-includes=PREFIX Location of OpenSSL includes.], with_openssl_includes="$withval", with_openssl_includes="/usr/include") have_openssl_includes="no" if test "x${with_openssl_includes}" != "xno"; then CPPFLAGS_save="$CPPFLAGS" AC_MSG_CHECKING(for OpenSSL includes) AC_MSG_RESULT("") CPPFLAGS="$CPPFLAGS -I$with_openssl_includes" AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h, [ openssl_includes="yes" ]) CPPFLAGS="$CPPFLAGS_save" if test "x${openssl_includes}" != "xno" -a "x${openssl_includes}" != "x"; then have_openssl_includes="yes" if test "${with_openssl_includes}" != "/usr/include" ; then OPENSSL_CFLAGS="-I$with_openssl_includes" else OPENSSL_CFLAGS="" fi else OPENSSL_CFLAGS="" fi else AC_MSG_CHECKING(for OpenSSL includes) AC_MSG_RESULT(no) have_ssl=false fi AC_ARG_WITH(openssl-libs, [ --with-openssl-libs=PREFIX Location of OpenSSL libs.], with_openssl_libs="$withval", with_openssl_libs="/usr/lib") msg_openssl="no" if test "x${with_openssl_libs}" != "xno" -a "x${have_openssl_includes}" != "xno"; then LDFLAGS_save="$LDFLAGS" AC_CACHE_CHECK([for OpenSSL libraries], openssl_libs, [ dnl How can we test to see if we need to link to libld for sure?? dnl RedHat 6.2 seems to need to but Debian Woody doesn't LDFLAGS="$LDFLAGS -L$with_openssl_libs -lssl -lcrypto -ldl" AC_TRY_LINK_FUNC(SSL_read, openssl_libs="yes", openssl_libs="no") LDFLAGS="$LDFLAGS_save" ]) if test "x${openssl_libs}" != "xno"; then AC_DEFINE(HAVE_OPENSSL, 1, [Define to 1 if OpenSSL is available]) msg_openssl="yes" if test x$with_openssl_libs != x/usr/lib; then OPENSSL_LIBS="-L$with_openssl_libs -lssl -lcrypto" else OPENSSL_LIBS="-lssl -lcrypto" fi have_ssl=true AC_DEFINE(HAVE_OPENSSL, 1, [Define to 1 if OpenSSL is available]) else OPENSSL_CFLAGS="" OPENSSL_LIBS="" have_ssl=false fi else AC_MSG_CHECKING(for OpenSSL libraries) AC_MSG_RESULT(no) fi ]) dnl end of PKG_CHECK_MODULES(openssl) fi dnl **************************** dnl GNUTLS dnl **************************** AC_ARG_ENABLE(gnutls, [ --enable-gnutls build with gnutls support]) if test "x$enable_gnutls" = "xyes"; then if test "x${OPENSSL_LIBS}" != "x"; then AC_MSG_ERROR([*** Can't use both openssl and gnutls at the same time. Please pick one only. ***]) else AC_CHECK_HEADER(gcrypt.h,, AC_MSG_ERROR([*** Need gcrypt.h to compile with GnuTLS support ***])) AM_PATH_LIBGNUTLS(1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available]) have_ssl=true]) if test "x${LIBGNUTLS_LIBS}" = "x"; then AM_PATH_LIBGNUTLS(0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available]) AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME]) have_ssl=true], AC_MSG_ERROR([Unable to find GNUTLS])) fi fi fi if test x$have_ssl = xtrue; then msg_ssl="yes" else msg_ssl="no" fi AM_CONDITIONAL(HAVE_SSL, test x$have_ssl = xtrue) dnl **************************** dnl DNS-SD implementations dnl **************************** AM_CONDITIONAL(HAVE_AVAHI, false) AM_CONDITIONAL(HAVE_HOWL, false) AC_ARG_ENABLE(avahi, [ --disable-avahi build without avahi support]) msg_avahi=no if test "x$enable_avahi" != "xno"; then PKG_CHECK_MODULES(AVAHI, avahi-glib >= 0.6 avahi-client >= 0.6, [AM_CONDITIONAL(HAVE_AVAHI, true) AC_DEFINE(HAVE_AVAHI, [], [Set if we can use avahi])] msg_avahi=yes, [AM_CONDITIONAL(HAVE_AVAHI, false)]) AC_SUBST(AVAHI_CFLAGS) AC_SUBST(AVAHI_LIBS) fi AC_ARG_ENABLE(howl, [ --disable-howl build without howl support]) msg_howl=no if test "x$msg_avahi" = "xno" -a "x$enable_howl" != "xno"; then PKG_CHECK_MODULES(HOWL, howl >= 0.9.6, [AM_CONDITIONAL(HAVE_HOWL, true) AC_DEFINE(HAVE_HOWL, [], [Set if we can use howl])] msg_howl=yes, [AM_CONDITIONAL(HAVE_HOWL, false)]) AC_SUBST(HOWL_CFLAGS) AC_SUBST(HOWL_LIBS) fi dnl **************************** dnl Enable the daemon? dnl **************************** msg_daemon=no AC_ARG_ENABLE(daemon, AC_HELP_STRING([--enable-daemon],[enable gnome-vfs-daemon]), [case $enableval in yes) if test "$os_win32" = "yes"; then AC_MSG_ERROR([can't enable gnome-vfs-daemon on Win32]) fi ENABLE_DAEMON=yes ;; no) ENABLE_DAEMON=no ;; *) AC_MSG_ERROR(bad value $enableval for --enable-daemon) ;; esac], [ENABLE_DAEMON=$enable_daemon_default]) dnl Default value if test "$ENABLE_DAEMON" = "yes"; then AC_DEFINE(USE_DAEMON, 1, [defined if we have gnome-vfs-daemon]) msg_daemon=yes fi AM_CONDITIONAL(USE_DAEMON, test "$ENABLE_DAEMON" = "yes") dnl **************************** dnl HAL stuff dnl **************************** msg_hal=no AC_ARG_ENABLE(hal, AC_HELP_STRING([--enable-hal],[use hal, if available]), [case $enableval in yes) ENABLE_HAL=yes ;; no) ENABLE_HAL=no ;; *) AC_MSG_ERROR(bad value $enableval for --enable-hal) ;; esac], [ENABLE_HAL=yes]) dnl Default value if test "$ENABLE_HAL" = "yes"; then PKG_CHECK_MODULES(HAL, hal >= 0.5.7, [ USE_HAL="hal >= 0.5.7, hal-storage >= 0.5.7, dbus-1 >= 0.32, dbus-glib-1 >= 0.32" AC_DEFINE(USE_HAL, 1, [defined if using libhal]) msg_hal=yes], [ USE_HAL=""]) else USE_HAL="" fi if test "$USE_HAL" != ""; then AC_ARG_WITH(hal-mount, [ --with-hal-mount=PROGRAM Program for mounting filesystems known to HAL (not used if gnome-mount is installed)], with_hal_mount="$withval", with_hal_mount="none") if test "x$with_hal_mount" != "xnone"; then AC_DEFINE_UNQUOTED(HAL_MOUNT, "$with_hal_mount", [Path to program for mounting filesystems known to HAL (not used if gnome-mount is installed)]) fi AC_ARG_WITH(hal-umount, [ --with-hal-umount=PROGRAM Program for unmounting filesystems known to HAL (not used if gnome-mount is installed)], with_hal_umount="$withval", with_hal_umount="none") if test "x$with_hal_umount" != "xnone"; then AC_DEFINE_UNQUOTED(HAL_UMOUNT, "$with_hal_umount", [Path to program for unmounting filesystems known to HAL (not used if gnome-mount is installed)]) fi AC_ARG_WITH(hal-eject, [ --with-hal-eject=PROGRAM Program for ejecting filesystems known to HAL (not used if gnome-mount is installed)], with_hal_eject="$withval", with_hal_eject="none") if test "x$with_hal_eject" != "xnone"; then AC_DEFINE_UNQUOTED(HAL_EJECT, "$with_hal_eject", [Path to program for ejecting filesystems known to HAL (not used if gnome-mount is installed)]) fi fi dnl ============================================================================== dnl Check for a supported resolver functions dnl ============================================================================== dnl This is just a mix of the old code and new one taken from the gnet library and dnl evolution. need_lib_resolve=no dnl need libresolv for dns-sd stuff AC_MSG_CHECKING(for res_search) AC_TRY_LINK_FUNC(res_search, AC_MSG_RESULT(yes), [ AC_MSG_RESULT(no) saved_LIBS="$LIBS" LIBS="$LIBS -lresolv" AC_MSG_CHECKING(for res_search in -lresolv) AC_LINK_IFELSE([[ #include int main() { res_search (0, 0, 0, 0, 0); return 0; } ]],[ RESOLVER_LIBS="-lresolv" need_lib_resolve=yes AC_MSG_RESULT(yes) ],[ AC_MSG_RESULT(no) ]) LIBS="$saved_LIBS" ]) dnl check for res_ninit (thread-safe version of res_init) dnl this detection code comes from Mozilla AC_CACHE_CHECK([for res_ninit()], have_res_ninit, [AC_TRY_LINK([ #ifdef linux #define _BSD_SOURCE 1 #endif #include ], [ int foo = res_ninit (&_res); ], [ have_res_ninit=yes ], [ have_res_ninit=no ]) ]) if test "x$have_res_ninit" = "xyes"; then AC_DEFINE([HAVE_RES_NINIT], 1, [Indicates if res_ninit is available]) else AC_CHECK_LIB(bind, res_ninit, [AC_DEFINE(HAVE_RES_NINIT, 1, [Indicates if res_ninit is available]) RESOLVER_LIBS="-lbind", AC_CHECK_LIB(resolv, res_ninit, [AC_DEFINE(HAVE_RES_NINIT, 1, [Indicates if res_ninit is available]) if test "x$need_lib_resolv" = "xno"; then RESOLVER_LIBS="-lresolv" fi ]) ]) fi have_getaddrinfo=no have_resolver=no AC_CHECK_FUNC(getaddrinfo, have_getaddrinfo=yes; have_resolver=yes) if test "x$have_getaddrinfo" != "xyes"; then # getaddrinfo is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do AC_CHECK_LIB($lib, getaddrinfo, [ LIBS="$LIBS -l$lib" have_getaddrinfo=yes have_resolver=yes break ]) done fi if test "x$have_getaddrinfo" = "xyes"; then AC_DEFINE(USE_GETADDRINFO, 1, [Define to 1 if getaddrinfo is used for name resolution]) AC_DEFINE(HAVE_GETADDRINFO, 1, [Define to 1 getaddrinfo is present on this system]) AC_TRY_COMPILE([ #include "confdefs.h" #include #include #include #include ],[ struct addrinfo hints; hints.ai_flags = AI_ADDRCONFIG; ],[ AC_DEFINE(HAVE_AI_ADDRCONFIG, 1, [Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo]) ]) fi if test "x$have_resolver" = "xno"; then dnl looks like we dont have getaddrinfo try gethostbyname_r AC_CHECK_FUNC(gethostbyname_r, [ dnl First check for the glibc variant of gethostbyname_r AC_MSG_CHECKING(for glibc gethostbyname_r) AC_TRY_LINK([ #include ], [ struct hostent result_buf; char buf[1024]; struct hostent* result; int h_errnop; gethostbyname_r ("localhost", &result_buf, buf, sizeof(buf), &result, &h_errnop); ], [ dnl Have glibc gethostbyname_r AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_GLIBC, 1, [Define if you have a glibc-style gethostbyname_r()]) AC_DEFINE(USE_GETHOSTBYNAME_R, 1, [Define to 1 if gethostbyname_r is used for name resolution]) have_resolver=yes ], [ AC_MSG_RESULT(no) dnl If we don't have glibc gethostbyname_r, check dnl for Solaris/Irix gethostbyname_r AC_MSG_CHECKING(for Solaris/Irix gethostbyname_r) AC_TRY_LINK([ #include ], [ struct hostent result; char buf[1024]; int h_errnop; gethostbyname_r ("localhost", &result, buf, sizeof(buf), &h_errnop); ], [ dnl Have Solaris/Irix gethostbyname_r AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_SOLARIS, 1, [Define if you have a Solaris-style gethostbyname_r()]) AC_DEFINE(USE_GETHOSTBYNAME_R, 1, [Define to 1 if gethostbyname_r is used for name resolution]) have_resolver=yes ], [ AC_MSG_RESULT(no) dnl If don't have Solaris/Irix gethostbyname_r, check dnl for HP-UX gethostbyname_r AC_MSG_CHECKING(for HP-UX gethostbyname_r) AC_TRY_LINK([ #include ], [ struct hostent result; char buf[1024]; gethostbyname_r ("localhost", &result, buf); ], [ dnl Have HP-UX gethostbyname_r AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_HPUX, 1, [Define if you have an HP-UX-style gethostbyname_r()]) AC_DEFINE(USE_GETHOSTBYNAME_R, 1, [Define to 1 if gethostbyname_r is used for name resolution]) have_resolver=yes ], [ AC_MSG_RESULT(no) ] #hpux )] #solaris )] #glibc )]) #check func fi if test x$have_resolver = "xno" ; then have_gethostbyname=no AC_CHECK_FUNC(gethostbyname, have_gethostbyname=yes) if test $have_gethostbyname = no; then # gethostbyname is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do AC_CHECK_LIB($lib, gethostbyname, [ LIBS="$LIBS -l$lib" have_gethostbyname=yes have_resolver=yes AC_DEFINE(USE_GETHOSTBYNAME, 1, [Define if gethostbyname is used for name resolution]) break ]) done fi fi dnl ============================================================================== dnl End of resolver functions check dnl ============================================================================== dnl ==================================================================== dnl Code for checking whether IPv6 is enabled on the system.... dnl ==================================================================== AC_MSG_CHECKING([whether to enable ipv6]) AC_ARG_ENABLE(ipv6, [ --enable-ipv6 enable IPv6 extensions], ,enable_ipv6=yes) if test $enable_ipv6 = yes; then save_libs=$LIBS AC_TRY_COMPILE([ #ifdef _WIN32 #include #include #else #include #include #endif ], [ socket(AF_INET6, SOCK_STREAM, 0) ], [ have_ipv6=yes AC_DEFINE(ENABLE_IPV6, [], [Define to enable IPv6 support]) ], have_ipv6=no ) AC_MSG_RESULT($have_ipv6) fi dnl ============================================================================== dnl End of IPv6 checks dnl ============================================================================== PKG_CHECK_MODULES(LIBGNOMEVFS, glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement) LIBGNOMEVFS_CFLAGS="$LIBGNOMEVFS_CFLAGS $OPENSSL_CFLAGS $LIBGNUTLS_CFLAGS $HOWL_CFLAGS $AVAHI_CFLAGS" LIBGNOMEVFS_LIBS="$LIBGNOMEVFS_LIBS $OPENSSL_LIBS $LIBGNUTLS_LIBS $HOWL_LIBS $AVAHI_LIBS $RESOLVER_LIBS" AC_SUBST(LIBGNOMEVFS_CFLAGS) AC_SUBST(LIBGNOMEVFS_LIBS) PKG_CHECK_MODULES(LIBGNOMEVFSDAEMON, glib-2.0 $USE_HAL) AC_SUBST(LIBGNOMEVFSDAEMON_CFLAGS) AC_SUBST(LIBGNOMEVFSDAEMON_LIBS) AC_ARG_WITH(dbus_service_dir, [ --with-dbus-service-dir=PATH choose directory for dbus service files, [default=PREFIX/share/dbus-1/services]], with_dbus_service_dir="$withval", with_dbus_service_dir=$datadir/dbus-1/services) DBUS_SERVICE_DIR=$with_dbus_service_dir AC_SUBST(DBUS_SERVICE_DIR) dnl **************************** dnl *** Checks for pty stuff *** dnl **************************** AC_CHECK_HEADERS(sys/un.h stropts.h termios.h utmp.h) # Check for PTY handling functions. AC_CHECK_FUNCS(getpt posix_openpt grantpt unlockpt ptsname ptsname_r) # Pull in the right libraries for various functions which might not be # bundled into an exploded libc. AC_CHECK_FUNC(socketpair,[have_socketpair=1],AC_CHECK_LIB(socket,socketpair,[have_socketpair=1; LIBS="$LIBS -lsocket"])) if test x$have_socketpair = x1 ; then AC_DEFINE(HAVE_SOCKETPAIR,1,[Define if you have the socketpair function.]) fi dnl ===================== dnl ACL checks dnl ===================== acl_backends="" ACL_LIBS="" AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"]) AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"]) AC_CHECK_LIB(sec,acl,[ACL_LIBS="$ACL_LIBS -lsec"]) AC_CACHE_CHECK([for Solaris ACL], gvfs_cv_HAVE_SOLARIS_ACLS,[ acl_LIBS=$LIBS LIBS="$LIBS -lsec" AC_TRY_LINK([#include #include ], [ return acl ("/", GETACL, 0, NULL);], gvfs_cv_HAVE_SOLARIS_ACLS=yes, gvfs_cv_HAVE_SOLARIS_ACLS=no) LIBS=$acl_LIBS]) AC_CACHE_CHECK([for POSIX ACL], gvfs_cv_HAVE_POSIX_ACLS,[ acl_LIBS=$LIBS LIBS="$LIBS -lacl" AC_TRY_LINK([#include #include ], [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry (acl, entry_id, entry_p);], gvfs_cv_HAVE_POSIX_ACLS=yes, gvfs_cv_HAVE_POSIX_ACLS=no) LIBS=$acl_LIBS]) if test x"$gvfs_cv_HAVE_SOLARIS_ACLS" = x"yes" ; then have_solaris_acl_support=yes acl_backends="solaris" AC_DEFINE(HAVE_SOLARIS_ACL,1,[Have Solaris ACLs]) AC_CHECK_HEADERS([pwd.h grp.h]) fi if test x"$gvfs_cv_HAVE_POSIX_ACLS" = x"yes" ; then have_posix_acl_support=yes acl_backends="posix" AC_DEFINE(HAVE_POSIX_ACL,1,[Have POSIX ACLs]) AC_CHECK_FUNCS(acl_extended_file) AC_CHECK_HEADERS([pwd.h]) if test "$ac_cv_header_pwd_h" = "yes"; then AC_CACHE_CHECK([for posix getpwuid_r], ac_cv_func_posix_getpwuid_r, [AC_TRY_RUN([ #include #include int main () { char buffer[10000]; struct passwd pwd, *pwptr = &pwd; int error; errno = 0; error = getpwuid_r (0, &pwd, buffer, sizeof (buffer), &pwptr); return (error < 0 && errno == ENOSYS) || error == ENOSYS; } ], [ac_cv_func_posix_getpwuid_r=yes], [ac_cv_func_posix_getpwuid_r=no])]) dnl GLIB_ASSERT_SET(ac_cv_func_posix_getpwuid_r) if test "$ac_cv_func_posix_getpwuid_r" = yes; then AC_DEFINE(HAVE_POSIX_GETPWUID_R,1, [Have POSIX function getpwuid_r]) else AC_CACHE_CHECK([for nonposix getpwuid_r], ac_cv_func_nonposix_getpwuid_r, [AC_TRY_LINK([#include ], [char buffer[10000]; struct passwd pwd; getpwuid_r (0, &pwd, buffer, sizeof (buffer));], [ac_cv_func_nonposix_getpwuid_r=yes], [ac_cv_func_nonposix_getpwuid_r=no])]) dnl GLIB_ASSERT_SET(ac_cv_func_nonposix_getpwuid_r) if test "$ac_cv_func_nonposix_getpwuid_r" = yes; then AC_DEFINE(HAVE_NONPOSIX_GETPWUID_R,1, [Have non-POSIX function getpwuid_r]) fi fi fi AC_CHECK_HEADERS([grp.h]) AC_CHECK_FUNCS(getgrgid_r) AC_CHECK_FUNCS(getgrnam_r) AC_CHECK_FUNCS(getpwnam_r) fi AC_SUBST(ACL_LIBS) AM_CONDITIONAL(HAVE_POSIX_ACL, test x"$have_posix_acl_support" = x"yes") AM_CONDITIONAL(HAVE_SOLARIS_ACL, test x"$have_solaris_acl_support" = x"yes") dnl ===================== dnl File system monitors dnl ===================== fs_monitor_backends="" dnl ********************** dnl *** inotify*** dnl ********************** inotify_support=no AC_CHECK_HEADERS([sys/inotify.h], [ inotify_support=yes ]) AM_CONDITIONAL(HAVE_INOTIFY, [test "$inotify_support" = "yes"]) if test "$inotify_support" = "yes"; then fs_monitor_backends="inotify " fi dnl ********************** dnl *** Checks for FAM *** dnl ********************** should_disable_fam=no AC_ARG_ENABLE(fam, [ --disable-fam build without enabling fam for file system monitoring], [ if test "x$enable_fam" = "xno"; then should_disable_fam=yes echo "Not building FAM support" fi ] ) FAM_MISSING_WARNING="Gnome-vfs depends on FAM to provide notification when files are altered (either through filesystem polling, or a kernel notification mechanism). If Gnome-vfs is built without FAM support, directories viewed with Nautilus or other applications will not remain in synch with the actual filesystem when they are altered by external processes. Particularly if you are a distributor please compile Nautilus with FAM support. FAM is available from http://oss.sgi.com/projects/fam/. A patch to add Linux Kernel 2.4 directory notify support to FAM (highly desirable) is available from http://people.redhat.com/alexl/files/" FAM_LIBS= if test "x$should_disable_fam" = "xno"; then AC_CHECK_LIB(fam, FAMOpen, [AC_CHECK_HEADERS(fam.h, [AC_DEFINE(HAVE_FAM, [], [Define if we have FAM]) FAM_LIBS="-lfam"] fs_monitor_backends="${fs_monitor_backends}fam", AC_MSG_WARN(*** FAM support will not be built (header files not found) $FAM_MISSING_WARNING ***))], AC_MSG_WARN(*** FAM support will not be built (FAM library not found) $FAM_MISSING_WARNING ***)) AC_SUBST(FAM_LIBS) fi dnl **************************** dnl *** Check for libselinux *** dnl **************************** AC_ARG_ENABLE(selinux, [ --disable-selinux build without selinux support]) msg_selinux=no SELINUX_LIBS= if test "x$enable_selinux" != "xno"; then AC_CHECK_LIB(selinux, is_selinux_enabled, [AC_CHECK_HEADERS(selinux/selinux.h, [AC_SEARCH_LIBS(lgetfilecon_raw, selinux, [AC_DEFINE(HAVE_SELINUX, 1, [Define to 1 if libselinux is available]) SELINUX_LIBS="-lselinux" msg_selinux=yes]) ]) ]) fi AC_SUBST(SELINUX_LIBS) dnl ************************** dnl *** Checks for gtk-doc *** dnl ************************** GTK_DOC_CHECK([1.0]) dnl ****************************** dnl *** End checks for gtk-doc *** dnl ****************************** dnl borrowed from gnu findutils dnl and relicensed as LGPL by the FSF AC_ARG_WITH(afs, [ --with-afs support -fstype afs], [ AC_DEFINE(AFS, [], [Define if you have the Andrew File System]) CPPFLAGS="$CPPFLAGS -I/usr/afsws/include" LIBS="$LIBS -L/usr/afsws/lib -L/usr/afsws/lib/afs -lsys -lrx -llwp"]) AC_MSG_CHECKING(how to get filesystem type) fstype=no # The order of these tests is important. AC_TRY_CPP([#include #include ], AC_DEFINE(FSTYPE_STATVFS, [], [Define to use SVR4 statvfs to get filesystem type]) fstype=SVR4) if test $fstype = no; then AC_TRY_CPP([#ifdef HAVE_SYS_PARAM_H #include #endif #include #include ], AC_DEFINE(FSTYPE_USG_STATFS, [], [Define to use SVR3.2 statfs to get filesystem type]) fstype=SVR3) fi if test $fstype = no; then AC_TRY_CPP([#ifdef HAVE_SYS_PARAM_H #include #endif #include #include ], AC_DEFINE(FSTYPE_AIX_STATFS, [], [Define to use AIX3 statfs to get filesystem type]) fstype=AIX) fi if test $fstype = no; then AC_TRY_CPP([#include ], AC_DEFINE(FSTYPE_MNTENT, [], [Define to use 4.3BSD getmntent to get filesystem typ]) fstype=4.3BSD) fi if test $fstype = no; then AC_EGREP_HEADER(f_type;, sys/mount.h, AC_DEFINE(FSTYPE_STATFS, [], [Define to use 4.4BSD and OSF1 statfs to get filesystem typ]) fstype=4.4BSD/OSF1) fi if test $fstype = no; then AC_TRY_CPP([#include #include ], AC_DEFINE(FSTYPE_GETMNT, [], [Define to use Ultrix getmnt to get filesystem typ]) fstype=Ultrix) fi AC_MSG_RESULT($fstype) dnl Final touch AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) dnl This is needed by `test/vfs-run.in' TOP_BUILDDIR="`pwd`" AC_SUBST(TOP_BUILDDIR) dnl Disable rebuild of glib-mkenum -generated source code: AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,enable_rebuilds=yes) # define a MAINT-like variable REBUILD which is set if Perl # is found, so autogenerated sources can be rebuilt AC_CHECK_PROGS(PERL, perl5 perl) AC_PATH_PROG(SSH_PROGRAM, ssh, "ssh") REBUILD=\# if test "x$enable_rebuilds" = "xyes" && \ test -n "$PERL" && \ $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then REBUILD= fi AC_SUBST(REBUILD) AC_OUTPUT([ Makefile gnome-vfs.spec gnome-vfs-zip libgnomevfs/gnome-vfs-file-size.h libgnomevfs/gnome-vfs-version.h libgnomevfs/Makefile imported/Makefile imported/fnmatch/Makefile imported/neon/Makefile modules/Makefile daemon/Makefile schemas/Makefile devel-docs/Makefile devel-docs/gnome-vfs-tutorial/Makefile po/Makefile.in programs/Makefile test/Makefile test/vfs-run doc/Makefile doc/version.xml gnome-vfs-2.0.pc gnome-vfs-module-2.0.pc ]) chmod u+x test/vfs-run dnl <= Configuration summary => profiler_enabled=no test "$ENABLE_PROFILER" = 1 && profiler_enabled=yes echo echo "Gnome VFS configuration summary:" echo " IPv6 support: $have_ipv6 SSL support: $msg_ssl Avahi support: $msg_avahi Howl support: $msg_howl HAL support: $msg_hal Enable gnome-vfs-daemon: $msg_daemon SELinux support: $msg_selinux File ACL backends: $acl_backends Gtk Doc: $enable_gtk_doc FS monitor backends: $fs_monitor_backends Samba method: $msg_samba CDDA method: $have_cdda Enable profiler: $profiler_enabled " gnome-vfs-2.24.4/test/0000755000175000001440000000000011450333533011460 500000000000000gnome-vfs-2.24.4/test/auto-test0000755000175000001440000000041211334251016013244 00000000000000#!/bin/sh # This is what we used to do, needs a little work # to be save and avoid the libefs mess. # # ./test-shell < test.cmds | diff -a -u - test.output if ./test-async $SRCDIR/test.input; then echo "Test passed" else echo "Test failed" exit 1 fignome-vfs-2.24.4/test/test-mime-handlers-set.c0000644000175000001440000001213211334251016016032 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-mime.c - Test for the mime handler detection features of the GNOME Virtual File System Library Copyright (C) 2000 Eazel The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Maciej Stachowiak */ #include #include #include #include #include #include #include static void usage (const char *name) { fprintf (stderr, "Usage: %s mime_type field value\n", name); fprintf (stderr, "Valid field values are: \n"); fprintf (stderr, "\tdefault_action_type\n"); fprintf (stderr, "\tdefault_application\n"); fprintf (stderr, "\tdefault_component\n"); fprintf (stderr, "\tshort_list_applicationss\n"); fprintf (stderr, "\tshort_list_components\n"); fprintf (stderr, "\tadd_to_all_applicationss\n"); fprintf (stderr, "\tremove_from_all_applications\n"); fprintf (stderr, "\tdefine_application\n"); exit (1); } static GnomeVFSMimeActionType str_to_action_type (const char *str) { if (g_ascii_strcasecmp (str, "component") == 0) { return GNOME_VFS_MIME_ACTION_TYPE_COMPONENT; } else if (g_ascii_strcasecmp (str, "application") == 0) { return GNOME_VFS_MIME_ACTION_TYPE_APPLICATION; } else { return GNOME_VFS_MIME_ACTION_TYPE_NONE; } } static char ** strsplit_handle_null (const char *str, const char *delim, int max) { return g_strsplit ((str == NULL ? "" : str), delim, max); } static GList *gnome_vfs_strsplit_to_list (const char *str, const char *delim, int max) { char **strv; GList *retval; int i; strv = strsplit_handle_null (str, delim, max); retval = NULL; for (i = 0; strv[i] != NULL; i++) { retval = g_list_prepend (retval, strv[i]); } retval = g_list_reverse (retval); /* Don't strfreev, since we didn't copy the individual strings. */ g_free (strv); return retval; } static GList *comma_separated_str_to_str_list (const char *str) { return gnome_vfs_strsplit_to_list (str, ",", 0); } static gboolean str_to_bool (const char *str) { return ((str != NULL) && ((g_ascii_strcasecmp (str, "true") == 0) || (g_ascii_strcasecmp (str, "yes") == 0))); } int main (int argc, char **argv) { const char *type; const char *field; const char *value; gnome_vfs_init (); if (argc < 3) { usage (argv[0]); } type = argv[1]; field = argv[2]; value = argv[3]; if (strcmp (field, "default_action_type") == 0) { puts ("default_action_type"); gnome_vfs_mime_set_default_action_type (type, str_to_action_type (value)); } else if (strcmp (field, "default_application") == 0) { puts ("default_application"); gnome_vfs_mime_set_default_application (type, value); } else if (strcmp (field, "default_component") == 0) { puts ("default_component"); gnome_vfs_mime_set_default_component (type, value); } else if (strcmp (field, "short_list_applicationss") == 0) { puts ("short_list_applications"); gnome_vfs_mime_set_short_list_applications (type, comma_separated_str_to_str_list (value)); } else if (strcmp (field, "short_list_components") == 0) { puts ("short_list_components"); gnome_vfs_mime_set_short_list_components (type, comma_separated_str_to_str_list (value)); } else if (strcmp (field, "add_to_all_applicationss") == 0) { puts ("add_to_all_applications"); gnome_vfs_mime_extend_all_applications (type, comma_separated_str_to_str_list (value)); } else if (strcmp (field, "remove_from_all_applications") == 0) { puts ("remove_from_all_applications"); gnome_vfs_mime_remove_from_all_applications (type, comma_separated_str_to_str_list (value)); } else if (strcmp (field, "define_application") == 0) { GList *stuff; GnomeVFSMimeApplication app; stuff = comma_separated_str_to_str_list (value); app.id = g_list_nth (stuff, 0)->data; app.name = g_list_nth (stuff, 1)->data; app.command = g_list_nth (stuff, 2)->data; app.can_open_multiple_files = str_to_bool (g_list_nth (stuff, 3)->data); app.expects_uris = str_to_bool (g_list_nth (stuff, 4)->data); app.requires_terminal = str_to_bool (g_list_nth (stuff, 5)->data); gnome_vfs_application_registry_save_mime_application (&app); gnome_vfs_application_registry_add_mime_type (app.id, type); gnome_vfs_application_registry_sync (); } else { usage (argv[0]); } return 0; } gnome-vfs-2.24.4/test/Makefile.am0000644000175000001440000001075611334251016013441 00000000000000NULL = INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_builddir)/libgnomevfs \ $(TEST_CFLAGS) \ $(VFS_CFLAGS) \ -DG_DISABLE_DEPRECATED \ -DMODULES_PATH=\"$(libdir)/vfs/modules\" if OS_WIN32 else platform_only_programs = test-dns-sd test-symlinks test-parse-ls-lga endif noinst_PROGRAMS = \ test-acl \ test-address \ test-async \ test-async-cancel \ test-async-directory \ test-channel \ test-directory \ test-directory-visit \ test-dirop \ test-escape \ test-find-directory \ test-info \ test-long-cancel \ test-mime \ test-mime-handlers \ test-mime-info-cache \ test-mime-handlers-set \ test-monitor \ test-performance \ test-seek \ test-shell \ test-ssl \ test-sync \ test-sync-create \ test-sync-write \ test-unlink \ test-uri \ test-volumes \ test-xfer \ test-callback \ test-module-selftest \ test-queue \ $(platform_only_programs) \ $(NULL) test_files= \ test.input \ test.cmds \ test.output # Set up the environment so the tests can find the modules TESTS_ENVIRONMENT = GNOME_VFS_MODULE_PATH=$(top_builddir)/modules/.libs \ GNOME_VFS_MODULE_CONFIG_PATH=$(top_srcdir)/modules \ GNOME_VFS_TEST_CONFIG_FILE=$(top_srcdir)/test/queue-test-config.xml \ SRCDIR=$(srcdir) TESTS = test-acl \ test-address \ test-async-cancel \ test-escape \ test-uri \ $(srcdir)/auto-test libraries = \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ $(TEST_LIBS) \ $(LIBEFS_LIBS) test_acl_SOURCES = test-acl.c test_acl_LDADD = $(libraries) test_address_SOURCES = test-address.c test_address_LDADD = $(libraries) test_async_SOURCES = test-async.c test_async_LDADD = $(libraries) test_performance_SOURCES = test-performance.c test_performance_LDADD = $(libraries) test_parse_ls_lga_SOURCES = test-parse-ls-lga.c test_parse_ls_lga_LDADD = $(libraries) #test_resolv_SOURCES = test-resolv.c #test_resolv_LDADD = $(libraries) #test_subdir_SOURCES = test-subdir.c #test_subdir_LDADD = $(libraries) test_async_directory_SOURCES = test-async-directory.c test_async_directory_LDADD = $(libraries) test_channel_SOURCES = test-channel.c test_channel_LDADD = $(libraries) test_seek_SOURCES = test-seek.c test_seek_LDADD = $(libraries) test_shell_SOURCES = test-shell.c test_shell_LDADD = $(libraries) test_info_SOURCES = test-info.c test_info_LDADD = $(libraries) test_long_cancel_SOURCES = test-long-cancel.c test_long_cancel_LDADD = $(libraries) test_mime_SOURCES = test-mime.c test_mime_LDADD = $(libraries) test_mime_handlers_SOURCES = test-mime-handlers.c test_mime_handlers_LDADD = $(libraries) test_mime_handlers_set_SOURCES = test-mime-handlers-set.c test_mime_handlers_set_LDADD = $(libraries) test_mime_info_cache_SOURCES = test-mime-info-cache.c test_mime_info_cache_LDADD = $(libraries) test_xfer_SOURCES = test-xfer.c test_xfer_LDADD = $(libraries) test_directory_SOURCES = test-directory.c test_directory_LDADD = $(libraries) test_directory_visit_SOURCES = test-directory-visit.c test_directory_visit_LDADD = $(libraries) test_symlinks_SOURCES = test-symlinks.c test_symlinks_LDADD = $(libraries) test_ssl_SOURCES = test-ssl.c test_ssl_LDADD = $(libraries) test_sync_SOURCES = test-sync.c test_sync_LDADD = $(libraries) test_sync_write_SOURCES = test-sync-write.c test_sync_write_LDADD = $(libraries) test_sync_create_SOURCES = test-sync-create.c test_sync_create_LDADD = $(libraries) test_async_cancel_SOURCES = test-async-cancel.c test_async_cancel_LDADD = $(libraries) test_escape_SOURCES = test-escape.c test_escape_LDADD = $(libraries) test_uri_SOURCES = test-uri.c test_uri_LDADD = $(libraries) test_volumes_SOURCES = test-volumes.c test_volumes_LDADD = $(libraries) test_unlink_SOURCES = test-unlink.c test_unlink_LDADD = $(libraries) test_dirop_SOURCES = test-dirop.c test_dirop_LDADD = $(libraries) test_dns_sd_SOURCES = test-dns-sd.c test_dns_sd_LDADD = $(libraries) test_find_directory_SOURCES = test-find-directory.c test_find_directory_LDADD = $(libraries) test_monitor_SOURCES = test-monitor.c test_monitor_LDADD = $(libraries) # test_metadata_SOURCES = test-metadata.c # test_metadata_LDADD = $(libraries) test_callback_SOURCES = test-callback.c test_callback_LDADD = $(libraries) test_module_selftest_SOURCES = test-module-selftest.c test_module_selftest_LDADD = $(libraries) test_queue_SOURCES = test-queue.c test_queue_LDADD = $(libraries) EXTRA_DIST = \ $(test_files) \ auto-test \ vfs-run.in gnome-vfs-2.24.4/test/test-mime-handlers.c0000644000175000001440000000701711334251016015247 00000000000000/* * Copyright (C) 2004 Red Hat, Inc., Marco Pesenti Gritti * * 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 library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library 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. */ #include #include #ifdef TEXT_EXEC_MACRO_EXPANSION void test_exec_macro_expansion (void); #endif static void print_application_info (GnomeVFSMimeApplication *app) { g_print ("Desktop ID %s\n", gnome_vfs_mime_application_get_desktop_id (app)); g_print ("Desktop file path %s\n", gnome_vfs_mime_application_get_desktop_file_path (app)); g_print ("Name %s\n", gnome_vfs_mime_application_get_name (app)); g_print ("Generic Name %s\n", gnome_vfs_mime_application_get_generic_name (app)); g_print ("Icon %s\n", gnome_vfs_mime_application_get_icon (app)); g_print ("Exec %s\n", gnome_vfs_mime_application_get_exec (app)); g_print ("Supports uris %d\n", gnome_vfs_mime_application_supports_uris (app)); g_print ("Requires terminal %d\n", gnome_vfs_mime_application_requires_terminal (app)); g_print ("Supports startup notification %d\n", gnome_vfs_mime_application_supports_startup_notification (app)); g_print ("Startup WM class %s\n", gnome_vfs_mime_application_get_startup_wm_class (app)); g_print ("Binary name %s\n", gnome_vfs_mime_application_get_binary_name (app)); } int main (int argc, char **argv) { GnomeVFSMimeApplication *application; GList *applications, *l; const char *type, *uri = NULL; gnome_vfs_init (); if (argc < 2) { g_print ("Usage: %s mime_type\n", *argv); return 1; } type = argv[1]; if (argc > 2) uri = argv[2]; g_print ("----- MIME type -----\n\n"); g_print ("Description: %s\n", gnome_vfs_mime_get_description (type)); g_print ("Icon: %s\n", gnome_vfs_mime_get_icon (type)); g_print ("Can be executable: %d\n", gnome_vfs_mime_can_be_executable (type)); g_print ("----- Default application -----\n\n"); if (uri) { application = gnome_vfs_mime_get_default_application_for_uri (uri, type); } else { application = gnome_vfs_mime_get_default_application (type); } if (application == NULL) { g_print ("No default application.\n"); } else { print_application_info (application); gnome_vfs_mime_application_free (application); } g_print ("----- All applications -----\n\n"); if (uri) { applications = gnome_vfs_mime_get_all_applications_for_uri (uri, type); } else { applications = gnome_vfs_mime_get_all_applications (type); } if (applications == NULL) { g_print ("No applications.\n"); } for (l = applications; l != NULL; l = l->next) { print_application_info (l->data); g_print ("-----------------------------\n"); } gnome_vfs_mime_application_list_free (applications); #ifdef TEXT_EXEC_MACRO_EXPANSION g_print ("Test exec macro expansion\n"); test_exec_macro_expansion (); #endif gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/test/test-unlink.c0000644000175000001440000000406111334251016014016 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-unlink.c - Test program for unlink operation in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000 Eazel Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ettore Perazzoli Ian McKellar */ #include #include #include #include #include #include static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSURI *uri; gchar *text_uri; if (argc != 2) { printf ("Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } uri = gnome_vfs_uri_new (argv[1]); if (uri == NULL) { fprintf (stderr, "URI not valid.\n"); return 1; } text_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); result = gnome_vfs_unlink (text_uri); show_result (result, "unlink", text_uri); g_free (text_uri); return 0; } gnome-vfs-2.24.4/test/test-xfer.c0000644000175000001440000001453711334251016013473 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-xfer.c - Test program for the xfer functions in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include #include static gboolean remove_source = FALSE; static gboolean recursive = FALSE; static gboolean follow_symlinks = FALSE; static gboolean replace = FALSE; static gboolean follow_symlinks_recursive = FALSE; static GOptionEntry options[] = { { "delete-source", 'd', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &remove_source, "Delete source files", NULL }, { "recursive", 'r', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &recursive, "Copy directories recursively", NULL }, { "follow-symlinks", 'L', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &follow_symlinks, "Follow symlinks", NULL }, { "replace", 'R', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &replace, "Replace files automatically", NULL }, { "recursive-symlinks", 'Z', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &follow_symlinks_recursive, "Follow symlinks", NULL }, { NULL } }; static void show_result (GnomeVFSResult result, const gchar *what) { fprintf (stderr, "%s: %s\n", what, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } static gint xfer_progress_callback (GnomeVFSXferProgressInfo *info, gpointer data) { switch (info->status) { case GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR: printf ("VFS Error: %s\n", gnome_vfs_result_to_string (info->vfs_status)); exit (1); break; case GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE: printf ("Overwriting `%s' with `%s'\n", info->target_name, info->source_name); exit (1); break; case GNOME_VFS_XFER_PROGRESS_STATUS_OK: printf ("Status: OK\n"); switch (info->phase) { case GNOME_VFS_XFER_PHASE_INITIAL: printf ("Initial phase\n"); return TRUE; case GNOME_VFS_XFER_PHASE_COLLECTING: printf ("Collecting file list\n"); return TRUE; case GNOME_VFS_XFER_PHASE_READYTOGO: printf ("Ready to go!\n"); return TRUE; case GNOME_VFS_XFER_PHASE_OPENSOURCE: printf ("Opening source\n"); return TRUE; case GNOME_VFS_XFER_PHASE_OPENTARGET: printf ("Opening target\n"); return TRUE; case GNOME_VFS_XFER_PHASE_COPYING: printf ("Transferring `%s' to `%s' (file %ld/%ld, byte %ld/%ld in file, " "%" GNOME_VFS_SIZE_FORMAT_STR "/%" GNOME_VFS_SIZE_FORMAT_STR " total)\n", info->source_name, info->target_name, info->file_index, info->files_total, (glong) info->bytes_copied, (glong) info->file_size, info->total_bytes_copied, info->bytes_total); return TRUE; case GNOME_VFS_XFER_PHASE_CLOSESOURCE: printf ("Closing source\n"); return TRUE; case GNOME_VFS_XFER_PHASE_CLOSETARGET: printf ("Closing target\n"); return TRUE; case GNOME_VFS_XFER_PHASE_FILECOMPLETED: printf ("Done with `%s' -> `%s', going next\n", info->source_name, info->target_name); return TRUE; case GNOME_VFS_XFER_PHASE_COMPLETED: printf ("All done.\n"); return TRUE; default: printf ("Unexpected phase %d\n", info->phase); return TRUE; /* keep going anyway */ } case GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE: break; } printf ("Boh!\n"); return FALSE; } int main (int argc, char **argv) { GnomeVFSURI *src_uri, *dest_uri; GList *src_uri_list, *dest_uri_list; GnomeVFSResult result; GnomeVFSXferOptions xfer_options; GnomeVFSXferOverwriteMode overwrite_mode; GOptionContext *ctx = NULL; GError *error = NULL; ctx = g_option_context_new("test-directory"); g_option_context_add_main_entries(ctx, options, NULL); if (!g_option_context_parse(ctx, &argc, &argv, &error)) { g_printerr("main: %s\n", error->message); g_error_free(error); g_option_context_free(ctx); return 1; } g_option_context_free(ctx); if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize the GNOME Virtual File System.\n"); return 1; } if (argc != 3 || argv[1] == NULL || argv[2] != NULL) { g_printerr("Usage: %s [] \n", argv[0]); return 1; } src_uri = gnome_vfs_uri_new(argv[1]); if (src_uri == NULL) { fprintf (stderr, "%s: invalid URI\n", argv[0]); return 1; } dest_uri = gnome_vfs_uri_new(argv[2]); if (dest_uri == NULL) { fprintf (stderr, "%s: invalid URI\n", argv[1]); return 1; } xfer_options = 0; overwrite_mode = GNOME_VFS_XFER_OVERWRITE_MODE_QUERY; if (recursive) { fprintf (stderr, "Warning: Recursive xfer of directories.\n"); xfer_options |= GNOME_VFS_XFER_RECURSIVE; } if (follow_symlinks) { fprintf (stderr, "Warning: Following symlinks.\n"); xfer_options |= GNOME_VFS_XFER_FOLLOW_LINKS; } if (follow_symlinks_recursive) { fprintf (stderr, "Warning: Following symlinks recursively.\n"); xfer_options |= GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE; } if (replace) { fprintf (stderr, "Warning: Using replace overwrite mode.\n"); overwrite_mode = GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE; } if (remove_source) { fprintf (stderr, "Warning: Removing source files.\n"); xfer_options |= GNOME_VFS_XFER_REMOVESOURCE; } src_uri_list = g_list_append (NULL, src_uri); dest_uri_list = g_list_append (NULL, dest_uri); result = gnome_vfs_xfer_uri_list (src_uri_list, dest_uri_list, xfer_options, GNOME_VFS_XFER_ERROR_MODE_QUERY, overwrite_mode, xfer_progress_callback, NULL); show_result (result, "gnome_vfs_xfer"); gnome_vfs_uri_list_free (src_uri_list); gnome_vfs_uri_list_free (dest_uri_list); return 0; } gnome-vfs-2.24.4/test/Makefile.in0000644000175000001440000012110611450333333013444 00000000000000# 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@ noinst_PROGRAMS = test-acl$(EXEEXT) test-address$(EXEEXT) \ test-async$(EXEEXT) test-async-cancel$(EXEEXT) \ test-async-directory$(EXEEXT) test-channel$(EXEEXT) \ test-directory$(EXEEXT) test-directory-visit$(EXEEXT) \ test-dirop$(EXEEXT) test-escape$(EXEEXT) \ test-find-directory$(EXEEXT) test-info$(EXEEXT) \ test-long-cancel$(EXEEXT) test-mime$(EXEEXT) \ test-mime-handlers$(EXEEXT) test-mime-info-cache$(EXEEXT) \ test-mime-handlers-set$(EXEEXT) test-monitor$(EXEEXT) \ test-performance$(EXEEXT) test-seek$(EXEEXT) \ test-shell$(EXEEXT) test-ssl$(EXEEXT) test-sync$(EXEEXT) \ test-sync-create$(EXEEXT) test-sync-write$(EXEEXT) \ test-unlink$(EXEEXT) test-uri$(EXEEXT) test-volumes$(EXEEXT) \ test-xfer$(EXEEXT) test-callback$(EXEEXT) \ test-module-selftest$(EXEEXT) test-queue$(EXEEXT) \ $(am__EXEEXT_1) $(am__EXEEXT_2) TESTS = test-acl$(EXEEXT) test-address$(EXEEXT) \ test-async-cancel$(EXEEXT) test-escape$(EXEEXT) \ test-uri$(EXEEXT) $(srcdir)/auto-test subdir = test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/vfs-run.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 = vfs-run CONFIG_CLEAN_VPATH_FILES = @OS_WIN32_FALSE@am__EXEEXT_1 = test-dns-sd$(EXEEXT) \ @OS_WIN32_FALSE@ test-symlinks$(EXEEXT) \ @OS_WIN32_FALSE@ test-parse-ls-lga$(EXEEXT) am__EXEEXT_2 = PROGRAMS = $(noinst_PROGRAMS) am_test_acl_OBJECTS = test-acl.$(OBJEXT) test_acl_OBJECTS = $(am_test_acl_OBJECTS) am__DEPENDENCIES_1 = am__DEPENDENCIES_2 = $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) test_acl_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_address_OBJECTS = test-address.$(OBJEXT) test_address_OBJECTS = $(am_test_address_OBJECTS) test_address_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_async_OBJECTS = test-async.$(OBJEXT) test_async_OBJECTS = $(am_test_async_OBJECTS) test_async_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_async_cancel_OBJECTS = test-async-cancel.$(OBJEXT) test_async_cancel_OBJECTS = $(am_test_async_cancel_OBJECTS) test_async_cancel_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_async_directory_OBJECTS = test-async-directory.$(OBJEXT) test_async_directory_OBJECTS = $(am_test_async_directory_OBJECTS) test_async_directory_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_callback_OBJECTS = test-callback.$(OBJEXT) test_callback_OBJECTS = $(am_test_callback_OBJECTS) test_callback_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_channel_OBJECTS = test-channel.$(OBJEXT) test_channel_OBJECTS = $(am_test_channel_OBJECTS) test_channel_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_directory_OBJECTS = test-directory.$(OBJEXT) test_directory_OBJECTS = $(am_test_directory_OBJECTS) test_directory_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_directory_visit_OBJECTS = test-directory-visit.$(OBJEXT) test_directory_visit_OBJECTS = $(am_test_directory_visit_OBJECTS) test_directory_visit_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_dirop_OBJECTS = test-dirop.$(OBJEXT) test_dirop_OBJECTS = $(am_test_dirop_OBJECTS) test_dirop_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_dns_sd_OBJECTS = test-dns-sd.$(OBJEXT) test_dns_sd_OBJECTS = $(am_test_dns_sd_OBJECTS) test_dns_sd_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_escape_OBJECTS = test-escape.$(OBJEXT) test_escape_OBJECTS = $(am_test_escape_OBJECTS) test_escape_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_find_directory_OBJECTS = test-find-directory.$(OBJEXT) test_find_directory_OBJECTS = $(am_test_find_directory_OBJECTS) test_find_directory_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_info_OBJECTS = test-info.$(OBJEXT) test_info_OBJECTS = $(am_test_info_OBJECTS) test_info_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_long_cancel_OBJECTS = test-long-cancel.$(OBJEXT) test_long_cancel_OBJECTS = $(am_test_long_cancel_OBJECTS) test_long_cancel_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_mime_OBJECTS = test-mime.$(OBJEXT) test_mime_OBJECTS = $(am_test_mime_OBJECTS) test_mime_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_mime_handlers_OBJECTS = test-mime-handlers.$(OBJEXT) test_mime_handlers_OBJECTS = $(am_test_mime_handlers_OBJECTS) test_mime_handlers_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_mime_handlers_set_OBJECTS = test-mime-handlers-set.$(OBJEXT) test_mime_handlers_set_OBJECTS = $(am_test_mime_handlers_set_OBJECTS) test_mime_handlers_set_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_mime_info_cache_OBJECTS = test-mime-info-cache.$(OBJEXT) test_mime_info_cache_OBJECTS = $(am_test_mime_info_cache_OBJECTS) test_mime_info_cache_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_module_selftest_OBJECTS = test-module-selftest.$(OBJEXT) test_module_selftest_OBJECTS = $(am_test_module_selftest_OBJECTS) test_module_selftest_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_monitor_OBJECTS = test-monitor.$(OBJEXT) test_monitor_OBJECTS = $(am_test_monitor_OBJECTS) test_monitor_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_parse_ls_lga_OBJECTS = test-parse-ls-lga.$(OBJEXT) test_parse_ls_lga_OBJECTS = $(am_test_parse_ls_lga_OBJECTS) test_parse_ls_lga_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_performance_OBJECTS = test-performance.$(OBJEXT) test_performance_OBJECTS = $(am_test_performance_OBJECTS) test_performance_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_queue_OBJECTS = test-queue.$(OBJEXT) test_queue_OBJECTS = $(am_test_queue_OBJECTS) test_queue_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_seek_OBJECTS = test-seek.$(OBJEXT) test_seek_OBJECTS = $(am_test_seek_OBJECTS) test_seek_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_shell_OBJECTS = test-shell.$(OBJEXT) test_shell_OBJECTS = $(am_test_shell_OBJECTS) test_shell_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_ssl_OBJECTS = test-ssl.$(OBJEXT) test_ssl_OBJECTS = $(am_test_ssl_OBJECTS) test_ssl_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_symlinks_OBJECTS = test-symlinks.$(OBJEXT) test_symlinks_OBJECTS = $(am_test_symlinks_OBJECTS) test_symlinks_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_sync_OBJECTS = test-sync.$(OBJEXT) test_sync_OBJECTS = $(am_test_sync_OBJECTS) test_sync_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_sync_create_OBJECTS = test-sync-create.$(OBJEXT) test_sync_create_OBJECTS = $(am_test_sync_create_OBJECTS) test_sync_create_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_sync_write_OBJECTS = test-sync-write.$(OBJEXT) test_sync_write_OBJECTS = $(am_test_sync_write_OBJECTS) test_sync_write_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_unlink_OBJECTS = test-unlink.$(OBJEXT) test_unlink_OBJECTS = $(am_test_unlink_OBJECTS) test_unlink_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_uri_OBJECTS = test-uri.$(OBJEXT) test_uri_OBJECTS = $(am_test_uri_OBJECTS) test_uri_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_volumes_OBJECTS = test-volumes.$(OBJEXT) test_volumes_OBJECTS = $(am_test_volumes_OBJECTS) test_volumes_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_xfer_OBJECTS = test-xfer.$(OBJEXT) test_xfer_OBJECTS = $(am_test_xfer_OBJECTS) test_xfer_DEPENDENCIES = $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(test_acl_SOURCES) $(test_address_SOURCES) \ $(test_async_SOURCES) $(test_async_cancel_SOURCES) \ $(test_async_directory_SOURCES) $(test_callback_SOURCES) \ $(test_channel_SOURCES) $(test_directory_SOURCES) \ $(test_directory_visit_SOURCES) $(test_dirop_SOURCES) \ $(test_dns_sd_SOURCES) $(test_escape_SOURCES) \ $(test_find_directory_SOURCES) $(test_info_SOURCES) \ $(test_long_cancel_SOURCES) $(test_mime_SOURCES) \ $(test_mime_handlers_SOURCES) \ $(test_mime_handlers_set_SOURCES) \ $(test_mime_info_cache_SOURCES) \ $(test_module_selftest_SOURCES) $(test_monitor_SOURCES) \ $(test_parse_ls_lga_SOURCES) $(test_performance_SOURCES) \ $(test_queue_SOURCES) $(test_seek_SOURCES) \ $(test_shell_SOURCES) $(test_ssl_SOURCES) \ $(test_symlinks_SOURCES) $(test_sync_SOURCES) \ $(test_sync_create_SOURCES) $(test_sync_write_SOURCES) \ $(test_unlink_SOURCES) $(test_uri_SOURCES) \ $(test_volumes_SOURCES) $(test_xfer_SOURCES) DIST_SOURCES = $(test_acl_SOURCES) $(test_address_SOURCES) \ $(test_async_SOURCES) $(test_async_cancel_SOURCES) \ $(test_async_directory_SOURCES) $(test_callback_SOURCES) \ $(test_channel_SOURCES) $(test_directory_SOURCES) \ $(test_directory_visit_SOURCES) $(test_dirop_SOURCES) \ $(test_dns_sd_SOURCES) $(test_escape_SOURCES) \ $(test_find_directory_SOURCES) $(test_info_SOURCES) \ $(test_long_cancel_SOURCES) $(test_mime_SOURCES) \ $(test_mime_handlers_SOURCES) \ $(test_mime_handlers_set_SOURCES) \ $(test_mime_info_cache_SOURCES) \ $(test_module_selftest_SOURCES) $(test_monitor_SOURCES) \ $(test_parse_ls_lga_SOURCES) $(test_performance_SOURCES) \ $(test_queue_SOURCES) $(test_seek_SOURCES) \ $(test_shell_SOURCES) $(test_ssl_SOURCES) \ $(test_symlinks_SOURCES) $(test_sync_SOURCES) \ $(test_sync_create_SOURCES) $(test_sync_write_SOURCES) \ $(test_unlink_SOURCES) $(test_uri_SOURCES) \ $(test_volumes_SOURCES) $(test_xfer_SOURCES) ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_builddir)/libgnomevfs \ $(TEST_CFLAGS) \ $(VFS_CFLAGS) \ -DG_DISABLE_DEPRECATED \ -DMODULES_PATH=\"$(libdir)/vfs/modules\" @OS_WIN32_FALSE@platform_only_programs = test-dns-sd test-symlinks test-parse-ls-lga test_files = \ test.input \ test.cmds \ test.output # Set up the environment so the tests can find the modules TESTS_ENVIRONMENT = GNOME_VFS_MODULE_PATH=$(top_builddir)/modules/.libs \ GNOME_VFS_MODULE_CONFIG_PATH=$(top_srcdir)/modules \ GNOME_VFS_TEST_CONFIG_FILE=$(top_srcdir)/test/queue-test-config.xml \ SRCDIR=$(srcdir) libraries = \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ $(TEST_LIBS) \ $(LIBEFS_LIBS) test_acl_SOURCES = test-acl.c test_acl_LDADD = $(libraries) test_address_SOURCES = test-address.c test_address_LDADD = $(libraries) test_async_SOURCES = test-async.c test_async_LDADD = $(libraries) test_performance_SOURCES = test-performance.c test_performance_LDADD = $(libraries) test_parse_ls_lga_SOURCES = test-parse-ls-lga.c test_parse_ls_lga_LDADD = $(libraries) #test_resolv_SOURCES = test-resolv.c #test_resolv_LDADD = $(libraries) #test_subdir_SOURCES = test-subdir.c #test_subdir_LDADD = $(libraries) test_async_directory_SOURCES = test-async-directory.c test_async_directory_LDADD = $(libraries) test_channel_SOURCES = test-channel.c test_channel_LDADD = $(libraries) test_seek_SOURCES = test-seek.c test_seek_LDADD = $(libraries) test_shell_SOURCES = test-shell.c test_shell_LDADD = $(libraries) test_info_SOURCES = test-info.c test_info_LDADD = $(libraries) test_long_cancel_SOURCES = test-long-cancel.c test_long_cancel_LDADD = $(libraries) test_mime_SOURCES = test-mime.c test_mime_LDADD = $(libraries) test_mime_handlers_SOURCES = test-mime-handlers.c test_mime_handlers_LDADD = $(libraries) test_mime_handlers_set_SOURCES = test-mime-handlers-set.c test_mime_handlers_set_LDADD = $(libraries) test_mime_info_cache_SOURCES = test-mime-info-cache.c test_mime_info_cache_LDADD = $(libraries) test_xfer_SOURCES = test-xfer.c test_xfer_LDADD = $(libraries) test_directory_SOURCES = test-directory.c test_directory_LDADD = $(libraries) test_directory_visit_SOURCES = test-directory-visit.c test_directory_visit_LDADD = $(libraries) test_symlinks_SOURCES = test-symlinks.c test_symlinks_LDADD = $(libraries) test_ssl_SOURCES = test-ssl.c test_ssl_LDADD = $(libraries) test_sync_SOURCES = test-sync.c test_sync_LDADD = $(libraries) test_sync_write_SOURCES = test-sync-write.c test_sync_write_LDADD = $(libraries) test_sync_create_SOURCES = test-sync-create.c test_sync_create_LDADD = $(libraries) test_async_cancel_SOURCES = test-async-cancel.c test_async_cancel_LDADD = $(libraries) test_escape_SOURCES = test-escape.c test_escape_LDADD = $(libraries) test_uri_SOURCES = test-uri.c test_uri_LDADD = $(libraries) test_volumes_SOURCES = test-volumes.c test_volumes_LDADD = $(libraries) test_unlink_SOURCES = test-unlink.c test_unlink_LDADD = $(libraries) test_dirop_SOURCES = test-dirop.c test_dirop_LDADD = $(libraries) test_dns_sd_SOURCES = test-dns-sd.c test_dns_sd_LDADD = $(libraries) test_find_directory_SOURCES = test-find-directory.c test_find_directory_LDADD = $(libraries) test_monitor_SOURCES = test-monitor.c test_monitor_LDADD = $(libraries) # test_metadata_SOURCES = test-metadata.c # test_metadata_LDADD = $(libraries) test_callback_SOURCES = test-callback.c test_callback_LDADD = $(libraries) test_module_selftest_SOURCES = test-module-selftest.c test_module_selftest_LDADD = $(libraries) test_queue_SOURCES = test-queue.c test_queue_LDADD = $(libraries) EXTRA_DIST = \ $(test_files) \ auto-test \ vfs-run.in all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(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 test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/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): vfs-run: $(top_builddir)/config.status $(srcdir)/vfs-run.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test-acl$(EXEEXT): $(test_acl_OBJECTS) $(test_acl_DEPENDENCIES) @rm -f test-acl$(EXEEXT) $(LINK) $(test_acl_OBJECTS) $(test_acl_LDADD) $(LIBS) test-address$(EXEEXT): $(test_address_OBJECTS) $(test_address_DEPENDENCIES) @rm -f test-address$(EXEEXT) $(LINK) $(test_address_OBJECTS) $(test_address_LDADD) $(LIBS) test-async$(EXEEXT): $(test_async_OBJECTS) $(test_async_DEPENDENCIES) @rm -f test-async$(EXEEXT) $(LINK) $(test_async_OBJECTS) $(test_async_LDADD) $(LIBS) test-async-cancel$(EXEEXT): $(test_async_cancel_OBJECTS) $(test_async_cancel_DEPENDENCIES) @rm -f test-async-cancel$(EXEEXT) $(LINK) $(test_async_cancel_OBJECTS) $(test_async_cancel_LDADD) $(LIBS) test-async-directory$(EXEEXT): $(test_async_directory_OBJECTS) $(test_async_directory_DEPENDENCIES) @rm -f test-async-directory$(EXEEXT) $(LINK) $(test_async_directory_OBJECTS) $(test_async_directory_LDADD) $(LIBS) test-callback$(EXEEXT): $(test_callback_OBJECTS) $(test_callback_DEPENDENCIES) @rm -f test-callback$(EXEEXT) $(LINK) $(test_callback_OBJECTS) $(test_callback_LDADD) $(LIBS) test-channel$(EXEEXT): $(test_channel_OBJECTS) $(test_channel_DEPENDENCIES) @rm -f test-channel$(EXEEXT) $(LINK) $(test_channel_OBJECTS) $(test_channel_LDADD) $(LIBS) test-directory$(EXEEXT): $(test_directory_OBJECTS) $(test_directory_DEPENDENCIES) @rm -f test-directory$(EXEEXT) $(LINK) $(test_directory_OBJECTS) $(test_directory_LDADD) $(LIBS) test-directory-visit$(EXEEXT): $(test_directory_visit_OBJECTS) $(test_directory_visit_DEPENDENCIES) @rm -f test-directory-visit$(EXEEXT) $(LINK) $(test_directory_visit_OBJECTS) $(test_directory_visit_LDADD) $(LIBS) test-dirop$(EXEEXT): $(test_dirop_OBJECTS) $(test_dirop_DEPENDENCIES) @rm -f test-dirop$(EXEEXT) $(LINK) $(test_dirop_OBJECTS) $(test_dirop_LDADD) $(LIBS) test-dns-sd$(EXEEXT): $(test_dns_sd_OBJECTS) $(test_dns_sd_DEPENDENCIES) @rm -f test-dns-sd$(EXEEXT) $(LINK) $(test_dns_sd_OBJECTS) $(test_dns_sd_LDADD) $(LIBS) test-escape$(EXEEXT): $(test_escape_OBJECTS) $(test_escape_DEPENDENCIES) @rm -f test-escape$(EXEEXT) $(LINK) $(test_escape_OBJECTS) $(test_escape_LDADD) $(LIBS) test-find-directory$(EXEEXT): $(test_find_directory_OBJECTS) $(test_find_directory_DEPENDENCIES) @rm -f test-find-directory$(EXEEXT) $(LINK) $(test_find_directory_OBJECTS) $(test_find_directory_LDADD) $(LIBS) test-info$(EXEEXT): $(test_info_OBJECTS) $(test_info_DEPENDENCIES) @rm -f test-info$(EXEEXT) $(LINK) $(test_info_OBJECTS) $(test_info_LDADD) $(LIBS) test-long-cancel$(EXEEXT): $(test_long_cancel_OBJECTS) $(test_long_cancel_DEPENDENCIES) @rm -f test-long-cancel$(EXEEXT) $(LINK) $(test_long_cancel_OBJECTS) $(test_long_cancel_LDADD) $(LIBS) test-mime$(EXEEXT): $(test_mime_OBJECTS) $(test_mime_DEPENDENCIES) @rm -f test-mime$(EXEEXT) $(LINK) $(test_mime_OBJECTS) $(test_mime_LDADD) $(LIBS) test-mime-handlers$(EXEEXT): $(test_mime_handlers_OBJECTS) $(test_mime_handlers_DEPENDENCIES) @rm -f test-mime-handlers$(EXEEXT) $(LINK) $(test_mime_handlers_OBJECTS) $(test_mime_handlers_LDADD) $(LIBS) test-mime-handlers-set$(EXEEXT): $(test_mime_handlers_set_OBJECTS) $(test_mime_handlers_set_DEPENDENCIES) @rm -f test-mime-handlers-set$(EXEEXT) $(LINK) $(test_mime_handlers_set_OBJECTS) $(test_mime_handlers_set_LDADD) $(LIBS) test-mime-info-cache$(EXEEXT): $(test_mime_info_cache_OBJECTS) $(test_mime_info_cache_DEPENDENCIES) @rm -f test-mime-info-cache$(EXEEXT) $(LINK) $(test_mime_info_cache_OBJECTS) $(test_mime_info_cache_LDADD) $(LIBS) test-module-selftest$(EXEEXT): $(test_module_selftest_OBJECTS) $(test_module_selftest_DEPENDENCIES) @rm -f test-module-selftest$(EXEEXT) $(LINK) $(test_module_selftest_OBJECTS) $(test_module_selftest_LDADD) $(LIBS) test-monitor$(EXEEXT): $(test_monitor_OBJECTS) $(test_monitor_DEPENDENCIES) @rm -f test-monitor$(EXEEXT) $(LINK) $(test_monitor_OBJECTS) $(test_monitor_LDADD) $(LIBS) test-parse-ls-lga$(EXEEXT): $(test_parse_ls_lga_OBJECTS) $(test_parse_ls_lga_DEPENDENCIES) @rm -f test-parse-ls-lga$(EXEEXT) $(LINK) $(test_parse_ls_lga_OBJECTS) $(test_parse_ls_lga_LDADD) $(LIBS) test-performance$(EXEEXT): $(test_performance_OBJECTS) $(test_performance_DEPENDENCIES) @rm -f test-performance$(EXEEXT) $(LINK) $(test_performance_OBJECTS) $(test_performance_LDADD) $(LIBS) test-queue$(EXEEXT): $(test_queue_OBJECTS) $(test_queue_DEPENDENCIES) @rm -f test-queue$(EXEEXT) $(LINK) $(test_queue_OBJECTS) $(test_queue_LDADD) $(LIBS) test-seek$(EXEEXT): $(test_seek_OBJECTS) $(test_seek_DEPENDENCIES) @rm -f test-seek$(EXEEXT) $(LINK) $(test_seek_OBJECTS) $(test_seek_LDADD) $(LIBS) test-shell$(EXEEXT): $(test_shell_OBJECTS) $(test_shell_DEPENDENCIES) @rm -f test-shell$(EXEEXT) $(LINK) $(test_shell_OBJECTS) $(test_shell_LDADD) $(LIBS) test-ssl$(EXEEXT): $(test_ssl_OBJECTS) $(test_ssl_DEPENDENCIES) @rm -f test-ssl$(EXEEXT) $(LINK) $(test_ssl_OBJECTS) $(test_ssl_LDADD) $(LIBS) test-symlinks$(EXEEXT): $(test_symlinks_OBJECTS) $(test_symlinks_DEPENDENCIES) @rm -f test-symlinks$(EXEEXT) $(LINK) $(test_symlinks_OBJECTS) $(test_symlinks_LDADD) $(LIBS) test-sync$(EXEEXT): $(test_sync_OBJECTS) $(test_sync_DEPENDENCIES) @rm -f test-sync$(EXEEXT) $(LINK) $(test_sync_OBJECTS) $(test_sync_LDADD) $(LIBS) test-sync-create$(EXEEXT): $(test_sync_create_OBJECTS) $(test_sync_create_DEPENDENCIES) @rm -f test-sync-create$(EXEEXT) $(LINK) $(test_sync_create_OBJECTS) $(test_sync_create_LDADD) $(LIBS) test-sync-write$(EXEEXT): $(test_sync_write_OBJECTS) $(test_sync_write_DEPENDENCIES) @rm -f test-sync-write$(EXEEXT) $(LINK) $(test_sync_write_OBJECTS) $(test_sync_write_LDADD) $(LIBS) test-unlink$(EXEEXT): $(test_unlink_OBJECTS) $(test_unlink_DEPENDENCIES) @rm -f test-unlink$(EXEEXT) $(LINK) $(test_unlink_OBJECTS) $(test_unlink_LDADD) $(LIBS) test-uri$(EXEEXT): $(test_uri_OBJECTS) $(test_uri_DEPENDENCIES) @rm -f test-uri$(EXEEXT) $(LINK) $(test_uri_OBJECTS) $(test_uri_LDADD) $(LIBS) test-volumes$(EXEEXT): $(test_volumes_OBJECTS) $(test_volumes_DEPENDENCIES) @rm -f test-volumes$(EXEEXT) $(LINK) $(test_volumes_OBJECTS) $(test_volumes_LDADD) $(LIBS) test-xfer$(EXEEXT): $(test_xfer_OBJECTS) $(test_xfer_DEPENDENCIES) @rm -f test-xfer$(EXEEXT) $(LINK) $(test_xfer_OBJECTS) $(test_xfer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-acl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-address.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-async-cancel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-async-directory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-async.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-callback.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-channel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-directory-visit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-directory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dirop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dns-sd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-escape.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-find-directory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-long-cancel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mime-handlers-set.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mime-handlers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mime-info-cache.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-module-selftest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-monitor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-parse-ls-lga.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-performance.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-queue.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-seek.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-shell.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ssl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-symlinks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sync-create.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sync-write.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sync.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-uri.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-volumes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xfer.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo 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 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 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 "; \ 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"; \ 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)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ 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 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 $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile $(PROGRAMS) 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 clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ clean-generic clean-libtool clean-noinstPROGRAMS 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-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 # 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: gnome-vfs-2.24.4/test/vfs-run.in0000755000175000001440000000052711334251016013333 00000000000000#! /bin/sh # Wrapper for VFS test programs. It makes sure the modules are loaded # from the build directory instead of the system one. GNOME_VFS_MODULE_PATH=@TOP_BUILDDIR@/modules/.libs export GNOME_VFS_MODULE_PATH echo "VFS modules will be loaded from $GNOME_VFS_MODULE_PATH" PATH=.:$PATH export PATH exec $@ echo "$0: cannot exec "$@ gnome-vfs-2.24.4/test/test-channel.c0000644000175000001440000000615011334251016014127 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-channel.c - Test for the `open_as_channel' functionality of the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include #define BUFFER_SIZE 4096 static GMainLoop *main_loop; static gboolean io_channel_callback (GIOChannel *source, GIOCondition condition, gpointer data) { gchar buffer[BUFFER_SIZE + 1]; gsize bytes_read; printf ("\n\n************ IO Channel callback!\n"); if (condition & G_IO_IN) { g_io_channel_read_chars (source, buffer, sizeof (buffer) - 1, &bytes_read, NULL); buffer[bytes_read] = 0; printf ("---> Read %lu byte(s):\n%s\n\n(***END***)\n", (gulong)bytes_read, buffer); fflush (stdout); } if (condition & G_IO_NVAL) { g_warning ("channel_callback got NVAL condition."); return FALSE; } if (condition & G_IO_HUP) { printf ("\n----- EOF -----\n"); fflush (stdout); g_io_channel_shutdown (source, FALSE, NULL); g_main_loop_quit (main_loop); return FALSE; } return TRUE; } static void open_callback (GnomeVFSAsyncHandle *handle, GIOChannel *channel, GnomeVFSResult result, gpointer data) { if (result != GNOME_VFS_OK) { printf ("Error opening: %s.\n", gnome_vfs_result_to_string (result)); return; } printf ("Open successful, callback data `%s'.\n", (gchar *) data); g_io_add_watch_full (channel, G_PRIORITY_HIGH, G_IO_IN | G_IO_NVAL | G_IO_HUP, io_channel_callback, handle, NULL); g_io_channel_unref (channel); } int main (int argc, char **argv) { GnomeVFSAsyncHandle *handle; if (argc < 2) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } puts ("Initializing gnome-vfs..."); gnome_vfs_init (); printf ("Starting open for `%s'...\n", argv[1]); gnome_vfs_async_open_as_channel (&handle, argv[1], GNOME_VFS_OPEN_READ, BUFFER_SIZE, 0, open_callback, "open_callback"); puts ("GTK+ main loop running."); main_loop = g_main_loop_new (NULL, TRUE); g_main_loop_run (main_loop); g_main_loop_unref (main_loop); puts ("GTK+ main loop finished."); puts ("All done"); while (1) ; return 0; } gnome-vfs-2.24.4/test/test-async-cancel.c0000644000175000001440000005407511334251016015070 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-async-cancel.c - Test program for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Darin Adler */ #include #include #include #include #include #include #include #include #include #include #include #include #define TEST_ASSERT(expression, message) \ G_STMT_START { if (!(expression)) test_failed message; } G_STMT_END #ifndef G_OS_WIN32 #define DEV_NULL "/dev/null" #define DEV_NULL_URI "file://" DEV_NULL #else #define DEV_NULL "NUL:" #define DEV_NULL_URI "file:///" DEV_NULL #endif static GnomeVFSAsyncHandle *test_handle; static gpointer test_callback_data; static gboolean test_done; static char *temp_file_uri; static char *tmp_dir_uri; #define MAX_THREAD_WAIT 500 #define MAX_FD_CHECK 128 static void stop_after_log (const char *domain, GLogLevelFlags level, const char *message, gpointer data) { void (* saved_handler)(int); g_log_default_handler(domain, level, message, data); saved_handler = signal (SIGINT, SIG_IGN); raise(SIGINT); signal(SIGINT, saved_handler); } static void make_asserts_break (const char *domain) { g_log_set_handler (domain, (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING), stop_after_log, NULL); } static int get_free_file_descriptor_count (void) { int count; GList *list, *p; int fd = -1; list = NULL; for (count = 0; fd < MAX_FD_CHECK; count++) { fd = open (DEV_NULL, O_RDONLY); if (fd == -1) { break; } list = g_list_prepend (list, GINT_TO_POINTER (fd)); } for (p = list; p != NULL; p = p->next) { close (GPOINTER_TO_INT (p->data)); } g_list_free (list); return count; } static int free_at_start; static int get_used_file_descriptor_count (void) { return free_at_start - get_free_file_descriptor_count (); } static gboolean wait_for_boolean (gboolean *wait_for_it) { int i; if (*wait_for_it) { return TRUE; } for (i = 0; i < MAX_THREAD_WAIT; i++) { g_thread_yield (); g_main_context_iteration (NULL, FALSE); if (*wait_for_it) { return TRUE; } } return FALSE; } static gboolean wait_until_vfs_jobs_gone (void) { int i; if (gnome_vfs_job_get_count () == 0) { return TRUE; } for (i = 0; i < MAX_THREAD_WAIT; i++) { g_thread_yield (); g_main_context_iteration (NULL, FALSE); if (gnome_vfs_job_get_count () == 0) { return TRUE; } } return FALSE; } static gboolean wait_until_vfs_jobs_gone_no_main (void) { int i; if (gnome_vfs_job_get_count () == 0) { return TRUE; } for (i = 0; i < MAX_THREAD_WAIT; i++) { g_thread_yield (); if (gnome_vfs_job_get_count () == 0) { return TRUE; } } return FALSE; } static gboolean wait_until_file_descriptors_gone (void) { int i; if (get_used_file_descriptor_count () == 0) { return TRUE; } for (i = 0; i < MAX_THREAD_WAIT; i++) { g_thread_yield (); g_main_context_iteration (NULL, FALSE); if (get_used_file_descriptor_count () == 0) { return TRUE; } } return FALSE; } static gboolean at_least_one_test_failed = FALSE; static void test_failed (const char *format, ...) { va_list arguments; char *message; va_start (arguments, format); message = g_strdup_vprintf (format, arguments); va_end (arguments); g_message ("test failed: %s", message); at_least_one_test_failed = TRUE; } static void get_file_info_callback (GnomeVFSAsyncHandle *handle, GList *results, gpointer callback_data) { TEST_ASSERT (handle == test_handle, ("get_file_info, bad handle")); TEST_ASSERT (g_list_length (results) == 1, ("get_file_info, bad list length")); TEST_ASSERT (callback_data == test_callback_data, ("get_file_info, bad handle")); test_handle = NULL; g_free (callback_data); test_done = TRUE; } static void first_get_file_info (void) { GList *uri_list; /* Start a get_file_info call. */ test_done = FALSE; test_callback_data = g_malloc (1); uri_list = g_list_prepend (NULL, gnome_vfs_uri_new (DEV_NULL_URI)); gnome_vfs_async_get_file_info (&test_handle, uri_list, GNOME_VFS_FILE_INFO_DEFAULT, 0, get_file_info_callback, test_callback_data); g_list_free (uri_list); /* Wait until it is done. */ TEST_ASSERT (wait_for_boolean (&test_done), ("first_get_file_info: callback was not called")); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("first_get_file_info: job never went away")); /* For some reason, this consumes file descriptors. * I don't know why. */ } static void test_get_file_info (void) { GList *uri_list; /* Start a get_file_info call. */ test_done = FALSE; test_callback_data = g_malloc (1); uri_list = g_list_prepend (NULL, gnome_vfs_uri_new (DEV_NULL_URI)); gnome_vfs_async_get_file_info (&test_handle, uri_list, GNOME_VFS_FILE_INFO_DEFAULT, 0, get_file_info_callback, test_callback_data); gnome_vfs_uri_list_free (uri_list); /* Wait until it is done. */ TEST_ASSERT (wait_for_boolean (&test_done), ("get_file_info 1: callback was not called")); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("get_file_info 1: job never went away")); TEST_ASSERT (get_used_file_descriptor_count () == 0, ("get_file_info 1: %d file descriptors leaked", get_used_file_descriptor_count ())); free_at_start = get_free_file_descriptor_count (); /* Cancel one right after starting it. */ test_done = FALSE; test_callback_data = g_malloc (1); uri_list = g_list_prepend (NULL, gnome_vfs_uri_new (DEV_NULL_URI)); gnome_vfs_async_get_file_info (&test_handle, uri_list, GNOME_VFS_FILE_INFO_DEFAULT, 0, get_file_info_callback, test_callback_data); gnome_vfs_uri_list_free (uri_list); gnome_vfs_async_cancel (test_handle); g_free (test_callback_data); /* Wait until it is done. */ TEST_ASSERT (wait_until_vfs_jobs_gone (), ("get_file_info 2: job never went away")); TEST_ASSERT (get_used_file_descriptor_count () == 0, ("get_file_info 2: %d file descriptors leaked", get_used_file_descriptor_count ())); TEST_ASSERT (test_done == FALSE, ("get_file_info 2: callback was called")); free_at_start = get_free_file_descriptor_count (); } static gboolean file_open_flag; static void file_open_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { TEST_ASSERT (handle == test_handle, ("open callback, bad handle")); TEST_ASSERT (result == GNOME_VFS_OK, ("open callback, bad result")); TEST_ASSERT (callback_data == test_callback_data, ("open callback, bad callback data")); file_open_flag = TRUE; } static gboolean file_closed_flag; static void file_close_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { TEST_ASSERT (handle == test_handle, ("close callback, bad handle")); TEST_ASSERT (result == GNOME_VFS_OK, ("close callback, bad result")); TEST_ASSERT (callback_data == test_callback_data, ("close callback, bad callback data")); file_closed_flag = TRUE; } static gboolean file_read_flag; static char read_buffer[1]; static void file_read_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer buffer, GnomeVFSFileSize bytes_requested, GnomeVFSFileSize bytes_read, gpointer callback_data) { TEST_ASSERT (handle == test_handle, ("read callback, bad handle")); TEST_ASSERT (result == GNOME_VFS_OK, ("read callback, bad result")); TEST_ASSERT (buffer == read_buffer, ("read callback, bad buffer")); TEST_ASSERT (bytes_requested == 1, ("read callback, bad bytes_requested")); TEST_ASSERT (bytes_read == 1, ("read callback, bad bytes_read")); TEST_ASSERT (callback_data == test_callback_data, ("read callback, bad callback data")); file_read_flag = TRUE; } static gboolean directory_load_flag; static void directory_load_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, GList *list, guint entries_read, gpointer callback_data) { GList *element; GnomeVFSFileInfo *info; for (element = list; element != NULL; element = element->next) { info = element->data; gnome_vfs_file_info_ref (info); } for (element = list; element != NULL; element = element->next) { info = element->data; gnome_vfs_file_info_unref (info); } directory_load_flag = TRUE; } static gboolean directory_load_failed_flag; static void directory_load_failed_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, GList *list, guint entries_read, gpointer callback_data) { g_assert (result != GNOME_VFS_OK); directory_load_failed_flag = TRUE; } static void test_open_read_close (void) { file_open_flag = FALSE; gnome_vfs_async_open (&test_handle, temp_file_uri, GNOME_VFS_OPEN_READ, 0, file_open_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_open_flag), ("open: callback was not called")); file_read_flag = FALSE; gnome_vfs_async_read (test_handle, read_buffer, 1, file_read_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_read_flag), ("open read close: read callback was not called")); file_closed_flag = FALSE; gnome_vfs_async_close (test_handle, file_close_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_closed_flag), ("open read close: close callback was not called")); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("open read cancel close: job never went away")); TEST_ASSERT (get_used_file_descriptor_count () == 0, ("open read cancel close: %d file descriptors leaked", get_used_file_descriptor_count ())); free_at_start = get_free_file_descriptor_count (); } static void test_open_read_cancel_close (void) { file_open_flag = FALSE; gnome_vfs_async_open (&test_handle, temp_file_uri, GNOME_VFS_OPEN_READ, 0, file_open_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_open_flag), ("open: callback was not called")); file_read_flag = FALSE; gnome_vfs_async_read (test_handle, read_buffer, 1, file_read_callback, test_callback_data); gnome_vfs_async_cancel (test_handle); file_closed_flag = FALSE; gnome_vfs_async_close (test_handle, file_close_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_closed_flag), ("open read cancel close: callback was not called")); TEST_ASSERT (!file_read_flag, ("open read cancel close: read callback was called")); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("open read cancel close: job never went away")); TEST_ASSERT (get_used_file_descriptor_count () == 0, ("open read cancel close: %d file descriptors leaked", get_used_file_descriptor_count ())); free_at_start = get_free_file_descriptor_count (); } static void test_open_close (void) { file_open_flag = FALSE; gnome_vfs_async_open (&test_handle, temp_file_uri, GNOME_VFS_OPEN_READ, 0, file_open_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_open_flag), ("open: open callback was not called")); file_closed_flag = FALSE; gnome_vfs_async_close (test_handle, file_close_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_closed_flag), ("open close: close callback was not called")); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("open close 1: job never went away")); TEST_ASSERT (get_used_file_descriptor_count () == 0, ("open close 1: %d file descriptors leaked", get_used_file_descriptor_count ())); free_at_start = get_free_file_descriptor_count (); } static void empty_close_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { } static void test_open_cancel (void) { file_open_flag = FALSE; gnome_vfs_async_open (&test_handle, temp_file_uri, GNOME_VFS_OPEN_READ, 0, file_open_callback, test_callback_data); gnome_vfs_async_cancel (test_handle); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("open cancel 1: job never went away")); TEST_ASSERT (!file_open_flag, ("open cancel 1: open callback was called")); TEST_ASSERT (get_used_file_descriptor_count () == 0, ("open cancel 1: %d file descriptors leaked", get_used_file_descriptor_count ())); free_at_start = get_free_file_descriptor_count (); file_open_flag = FALSE; gnome_vfs_async_open (&test_handle, temp_file_uri, GNOME_VFS_OPEN_READ, 0, file_open_callback, test_callback_data); wait_until_vfs_jobs_gone_no_main (); gnome_vfs_async_cancel (test_handle); if (file_open_flag) { /* too quick */ gnome_vfs_async_close (test_handle, empty_close_callback, NULL); } TEST_ASSERT (wait_until_file_descriptors_gone (), ("open cancel 2: %d file descriptors leaked", get_used_file_descriptor_count ())); free_at_start = get_free_file_descriptor_count (); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("open cancel 2: later job never went away")); TEST_ASSERT (!file_open_flag, ("open cancel 2: open callback was called")); } static void file_open_fail_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { TEST_ASSERT (handle == test_handle, ("open callback, bad handle")); TEST_ASSERT (result == GNOME_VFS_ERROR_NOT_FOUND, ("open callback, bad result")); TEST_ASSERT (callback_data == test_callback_data, ("open callback, bad callback data")); file_open_flag = TRUE; } static void test_open_fail (void) { file_open_flag = FALSE; gnome_vfs_async_open (&test_handle, "file:///etc/mugwump-xxx", GNOME_VFS_OPEN_READ, 0, file_open_fail_callback, test_callback_data); TEST_ASSERT (wait_for_boolean (&file_open_flag), ("open fail 1: callback was not called")); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("open fail 1: job never went away")); TEST_ASSERT (get_used_file_descriptor_count () == 0, ("open fail 1: %d file descriptors leaked", get_used_file_descriptor_count ())); free_at_start = get_free_file_descriptor_count (); } static void my_yield (int count) { for (; count > 0; count--) { g_usleep (1); g_thread_yield (); g_main_context_iteration (NULL, FALSE); } } static void test_load_directory_cancel (int delay_till_cancel, int chunk_count) { GnomeVFSAsyncHandle *handle; guint num_entries; gnome_vfs_async_load_directory (&handle, tmp_dir_uri, GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS, chunk_count, 0, directory_load_callback, &num_entries); g_usleep (delay_till_cancel * 100); directory_load_flag = FALSE; gnome_vfs_async_cancel (handle); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("load directory cancel 1: job never went away delay %d", delay_till_cancel)); TEST_ASSERT (!directory_load_flag, ("load directory cancel 1: load callback was called")); gnome_vfs_async_load_directory (&handle, tmp_dir_uri, GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS, chunk_count, 0, directory_load_callback, &num_entries); my_yield (delay_till_cancel); directory_load_flag = FALSE; gnome_vfs_async_cancel (handle); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("load directory cancel 2: job never went away delay %d", delay_till_cancel)); TEST_ASSERT (!directory_load_flag, ("load directory cancel 2: load callback was called")); } static void test_load_directory_fail (void) { GnomeVFSAsyncHandle *handle; guint num_entries; directory_load_failed_flag = FALSE; gnome_vfs_async_load_directory (&handle, "file:///strcprstskrzkrk", GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS, 32, 0, directory_load_failed_callback, &num_entries); TEST_ASSERT (wait_for_boolean (&directory_load_failed_flag), ("load directory 1: load callback was not called")); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("load directory 1: job never went away")); } static gboolean find_directory_flag; static void test_find_directory_callback (GnomeVFSAsyncHandle *handle, GList *results, gpointer callback_data) { GList *element; find_directory_flag = TRUE; for (element = results; element != NULL; element = element->next) { GnomeVFSFindDirectoryResult *result_item = (GnomeVFSFindDirectoryResult *)element->data; if (result_item->result == GNOME_VFS_OK) { gnome_vfs_uri_ref (result_item->uri); gnome_vfs_uri_unref (result_item->uri); } } g_assert (callback_data == &find_directory_flag); } static void test_find_directory (int delay_till_cancel) { GnomeVFSAsyncHandle *handle; GList *vfs_uri_as_list = NULL; #ifndef G_OS_WIN32 vfs_uri_as_list = g_list_append (vfs_uri_as_list, gnome_vfs_uri_new ("file://~")); #else vfs_uri_as_list = g_list_append (vfs_uri_as_list, gnome_vfs_uri_new (g_strconcat ("file://", g_get_home_dir (), NULL))); #endif vfs_uri_as_list = g_list_append (vfs_uri_as_list, gnome_vfs_uri_new ("file:///ace_of_spades")); find_directory_flag = FALSE; gnome_vfs_async_find_directory (&handle, vfs_uri_as_list, GNOME_VFS_DIRECTORY_KIND_TRASH, FALSE, TRUE, 0777, 0, test_find_directory_callback, &find_directory_flag); TEST_ASSERT (wait_for_boolean (&find_directory_flag), ("find directory cancel 1: callback was not called %d", delay_till_cancel)); find_directory_flag = FALSE; gnome_vfs_async_find_directory (&handle, vfs_uri_as_list, GNOME_VFS_DIRECTORY_KIND_TRASH, FALSE, TRUE, 0777, 0, test_find_directory_callback, &find_directory_flag); g_usleep (delay_till_cancel * 100); gnome_vfs_async_cancel (handle); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("find directory cancel 2: job never went away")); TEST_ASSERT (!find_directory_flag, ("find directory cancel 2: callback was called")); gnome_vfs_async_find_directory (&handle, vfs_uri_as_list, GNOME_VFS_DIRECTORY_KIND_TRASH, FALSE, TRUE, 0777, 0, test_find_directory_callback, &find_directory_flag); my_yield (delay_till_cancel); find_directory_flag = FALSE; gnome_vfs_async_cancel (handle); TEST_ASSERT (wait_until_vfs_jobs_gone (), ("open cancel 3: job never went away")); TEST_ASSERT (!find_directory_flag, ("find directory cancel 3: callback was called")); gnome_vfs_uri_list_free (vfs_uri_as_list); } int main (int argc, char **argv) { char *temp_file_name; int fd = g_file_open_tmp (NULL, &temp_file_name, NULL); temp_file_uri = g_strconcat ("file:///", temp_file_name, NULL); write (fd, "Hello\n", strlen ("Hello\n")); close (fd); tmp_dir_uri = g_strconcat ("file:///", g_get_tmp_dir (), NULL); make_asserts_break("GnomeVFS"); gnome_vfs_init (); /* Initialize our own stuff. */ free_at_start = get_free_file_descriptor_count (); /* Do the basic tests of our own tools. */ TEST_ASSERT (get_used_file_descriptor_count () == 0, ("file descriptor count")); TEST_ASSERT (gnome_vfs_job_get_count () == 0, ("VFS job count")); /* Spend those first few file descriptors. */ first_get_file_info (); free_at_start = get_free_file_descriptor_count (); /* Test to see that a simple async. call works without leaking or anything. */ fprintf (stderr, "Testing get file info...\n"); test_get_file_info (); test_get_file_info (); fprintf (stderr, "Testing open, close...\n"); test_open_close (); test_open_close (); fprintf (stderr, "Testing read, close...\n"); test_open_read_close (); test_open_read_close (); fprintf (stderr, "Testing cancellation...\n"); test_open_cancel (); test_open_cancel (); fprintf (stderr, "Testing failed opens...\n"); test_open_fail (); test_open_fail (); fprintf (stderr, "Testing read, cancel, closes...\n"); test_open_read_cancel_close (); test_open_read_cancel_close (); fprintf (stderr, "Testing directory loads"); test_load_directory_fail (); test_load_directory_cancel (0, 1); test_load_directory_cancel (1, 1); test_load_directory_cancel (10, 1); test_load_directory_cancel (100, 1); fprintf (stderr, "."); test_load_directory_cancel (0, 1); test_load_directory_cancel (1, 1); test_load_directory_cancel (10, 1); test_load_directory_cancel (100, 1); fprintf (stderr, "."); test_load_directory_cancel (0, 32); test_load_directory_cancel (1, 32); test_load_directory_cancel (10, 32); test_load_directory_cancel (100, 32); fprintf (stderr, "."); test_load_directory_cancel (0, 32); test_load_directory_cancel (1, 32); test_load_directory_cancel (10, 32); test_load_directory_cancel (100, 32); fprintf (stderr, "\nTesting directory finds"); test_find_directory (0); test_find_directory (0); fprintf (stderr, "."); test_find_directory (1); test_find_directory (1); fprintf (stderr, "."); test_find_directory (10); test_find_directory (10); fprintf (stderr, "."); test_find_directory (100); test_find_directory (100); fprintf (stderr, "\nTesting shutdown...\n"); gnome_vfs_shutdown (); if (g_getenv ("_MEMPROF_SOCKET")) { g_warning ("Waiting for memprof\n"); g_main_context_iteration (NULL, TRUE); } if (!at_least_one_test_failed) { fprintf (stderr, "All tests passed successfully.\n"); } g_unlink (temp_file_name); /* Report to "make check" on whether it all worked or not. */ return at_least_one_test_failed ? EXIT_FAILURE : EXIT_SUCCESS; } gnome-vfs-2.24.4/test/test-uri.c0000644000175000001440000006605511334251016013330 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-mime.c - Test program for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000, 2001 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Darin Adler Ian McKellar */ #include #include #include #include #include #include #include #include #define TEST_ASSERT(expression, message) \ G_STMT_START { if (!(expression)) test_failed message; } G_STMT_END static void stop_after_log (const char *domain, GLogLevelFlags level, const char *message, gpointer data) { void (* saved_handler) (int); g_log_default_handler (domain, level, message, data); saved_handler = signal (SIGINT, SIG_IGN); raise (SIGINT); signal (SIGINT, saved_handler); } static void make_asserts_break (const char *domain) { g_log_set_handler (domain, (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING), stop_after_log, NULL); } static gboolean at_least_one_test_failed = FALSE; static void test_failed (const char *format, ...) { va_list arguments; char *message; va_start (arguments, format); message = g_strdup_vprintf (format, arguments); va_end (arguments); g_message ("test failed: %s", message); at_least_one_test_failed = TRUE; } static void test_make_canonical_path (const char *input, const char *expected_output) { char *output; output = gnome_vfs_make_path_name_canonical (input); if (strcmp (output, expected_output) != 0) { test_failed ("test_make_canonical_path (%s) resulted in %s instead of %s", input, output, expected_output); } g_free (output); } static const char* test_uris[][2] = { { "http://www.gnome.org/", "index.html" }, { "http://www.gnome.org/", "/index.html"}, { "http://www.gnome.org/", "/index.html"}, { "http://www.gnome.org", "index.html"}, { "http://www.gnome.org", "/index.html"}, { "http://www.gnome.org", "./index.html"}, {NULL, NULL} }; static void test_make_full_from_relative (const gchar* base, const gchar* relative, const gchar* expected_result) { GnomeVFSURI *base_uri; GnomeVFSURI *vfs_uri; gchar *str = NULL; base_uri = gnome_vfs_uri_new (base); vfs_uri = gnome_vfs_uri_resolve_relative (base_uri, relative); str = gnome_vfs_uri_to_string (vfs_uri, GNOME_VFS_URI_HIDE_NONE); if (expected_result != NULL) { if (strcmp (expected_result, str) != 0) { test_failed ("test_make_full_from_relative (%s, %s) resulted in %s instead of %s\n", base, relative, str, expected_result); } } gnome_vfs_uri_unref (base_uri); gnome_vfs_uri_unref (vfs_uri); g_free (str); } static void test_uri_to_string (const char *input, const char *expected_output, GnomeVFSURIHideOptions hide_options) { GnomeVFSURI *uri; char *output; uri = gnome_vfs_uri_new (input); if (uri == NULL) { output = g_strdup ("NULL"); } else { output = gnome_vfs_uri_to_string (uri, hide_options); gnome_vfs_uri_unref (uri); } if (strcmp (output, expected_output) != 0) { test_failed ("gnome_vfs_uri_to_string (%s, %d) resulted in %s instead of %s", input, hide_options, output, expected_output); } g_free (output); } static void test_make_canonical (const char *input, const char *expected_output) { char *output; output = gnome_vfs_make_uri_canonical (input); if (output == NULL) { output = g_strdup ("NULL"); } if (strcmp (output, expected_output) != 0) { test_failed ("test_make_canonical (%s) resulted in %s instead of %s", input, output, expected_output); } g_free (output); } static void test_uri_match (const char *uri_string_1, const char *uri_string_2, gboolean expected_result) { GnomeVFSURI *uri1; GnomeVFSURI *uri2; uri1 = gnome_vfs_uri_new (uri_string_1); uri2 = gnome_vfs_uri_new (uri_string_2); if (gnome_vfs_uri_equal (uri1, uri2) != expected_result) { test_failed ("test_uri_match (%s, %s) resulted in a %s instead of %s", uri_string_1, uri_string_2, expected_result ? "mismatch" : "match", expected_result ? "match" : "mismatch"); } gnome_vfs_uri_unref (uri2); gnome_vfs_uri_unref (uri1); } static void test_file_path_to_uri_string (const char *input, const char *expected_output, GnomeVFSURIHideOptions hide_options) { GnomeVFSURI *uri, *resulting_uri; char *output; char *unescaped_output; uri = gnome_vfs_uri_new ("file:/"); resulting_uri = gnome_vfs_uri_append_path (uri, input); gnome_vfs_uri_unref (uri); output = gnome_vfs_uri_to_string (resulting_uri, hide_options); gnome_vfs_uri_unref (resulting_uri); unescaped_output = gnome_vfs_unescape_string (output, "/"); g_free (output); if (strcmp (unescaped_output, expected_output) != 0) { test_failed ("gnome_vfs_uri_to_string (%s, %d) resulted in %s instead of %s", input, hide_options, unescaped_output, expected_output); } g_free (unescaped_output); } static void test_uri_has_fragment_id (const char *input, const char *expected_output) { GnomeVFSURI *uri; char *output; uri = gnome_vfs_uri_new (input); if (uri == NULL) { output = g_strdup ("NULL"); } else { output = g_strdup (gnome_vfs_uri_get_fragment_identifier (uri)); } if (strcmp (output, expected_output) != 0) { test_failed ("test_uri_has_fragment_id (%s) resulted in %s instead of %s", input, output, expected_output); } g_free (output); gnome_vfs_uri_unref (uri); } static void test_uri_extract_dirname (const char *input, const char *expected_output) { GnomeVFSURI *uri; char *output; uri = gnome_vfs_uri_new (input); if (uri == NULL) { output = g_strdup ("NULL"); } else { output = gnome_vfs_uri_extract_dirname (uri); } if (strcmp (output, expected_output) != 0) { test_failed ("test_uri_extract_dirname (%s) resulted in %s instead of %s", input, output, expected_output); } g_free (output); gnome_vfs_uri_unref (uri); } static void test_uri_parent (const char *input, const char *expected_output) { GnomeVFSURI *uri, *parent; char *output; uri = gnome_vfs_uri_new (input); if (uri == NULL) { output = g_strdup ("URI NULL"); } else { parent = gnome_vfs_uri_get_parent (uri); gnome_vfs_uri_unref (uri); if (parent == NULL) { output = g_strdup ("NULL"); } else { output = gnome_vfs_uri_to_string (parent, GNOME_VFS_URI_HIDE_NONE); gnome_vfs_uri_unref (parent); } } if (strcmp (output, expected_output) != 0) { test_failed ("gnome_vfs_uri_parent (%s) resulted in %s instead of %s", input, output, expected_output); } g_free (output); } static void test_uri_has_parent (const char *input, const char *expected_output) { GnomeVFSURI *uri; const char *output; gboolean has; uri = gnome_vfs_uri_new (input); if (uri == NULL) { output = "URI NULL"; } else { has = gnome_vfs_uri_has_parent (uri); gnome_vfs_uri_unref (uri); output = has ? "TRUE" : "FALSE"; } if (strcmp (output, expected_output) != 0) { test_failed ("gnome_vfs_uri_has_parent (%s) resulted in %s instead of %s", input, output, expected_output); } } /* * Ensure that gnome_vfs_uri_{get_host_name,get_scheme,get_user_name,get_password} * return expected results */ static void test_uri_part (const char *input, const char *expected_output, const char *(*func_gnome_vfs_uri)(const GnomeVFSURI *) ) { GnomeVFSURI *uri; const char *output; uri = gnome_vfs_uri_new (input); if (NULL == uri) { output = "URI NULL"; } else { output = func_gnome_vfs_uri(uri); if ( NULL == output ) { output = "NULL"; } } if (strcmp (output, expected_output) != 0) { test_failed ("gnome_vfs_uri_{?} (%s) resulted in %s instead of %s", input, output, expected_output); } if ( NULL != uri ) { gnome_vfs_uri_unref (uri); } } /* * Ensure that gnome_vfs_uri_get_host_port * return expected results */ static void test_uri_host_port (const char *input, guint expected_port) { GnomeVFSURI *uri; gboolean success = FALSE; guint port; port = 0; uri = gnome_vfs_uri_new (input); if (NULL != uri) { port = gnome_vfs_uri_get_host_port(uri); if (expected_port == port) { success = TRUE; gnome_vfs_uri_unref (uri); } } if (!success) { test_failed ("gnome_vfs_uri_get_host_port (%s) resulted in %u instead of %u", input, port, expected_port); } } static void test_uri_is_parent_common (const char *parent, const char *item, gboolean deep, gboolean expected_result) { GnomeVFSURI *item_uri; GnomeVFSURI *parent_uri; gboolean result; item_uri = gnome_vfs_uri_new (item); parent_uri = gnome_vfs_uri_new (parent); result = gnome_vfs_uri_is_parent (parent_uri, item_uri, deep); if (result != expected_result) { test_failed ("gnome_vfs_uri_is_parent (%s, %s) resulted in \"%s\" instead of \"%s\"", parent, item, result ? "TRUE" : "FALSE", expected_result ? "TRUE" : "FALSE"); } gnome_vfs_uri_unref (item_uri); gnome_vfs_uri_unref (parent_uri); } static void test_uri_is_parent_deep (const char *parent, const char *item, gboolean expected_result) { test_uri_is_parent_common (parent, item, TRUE, expected_result); } static void test_uri_is_parent_shallow (const char *parent, const char *item, gboolean expected_result) { test_uri_is_parent_common (parent, item, FALSE, expected_result); } static int strcmp_allow_nulls (const char *s1, const char *s2) { const char *t1, *t2; t1 = (s1 == NULL ? "" : s1); t2 = (s2 == NULL ? "" : s2); return strcmp (t1, t2); } #define VERIFY_STRING_RESULT(function, expected) \ G_STMT_START { \ char *result = function; \ if (!((result == NULL && expected == NULL) \ || (strcmp_allow_nulls (result, (char *)expected) == 0))) { \ test_failed ("%s: returned '%s' expected '%s'", #function, result, expected); \ } \ g_free (result); \ } G_STMT_END #define VERIFY_STRING_RESULT_NULL(function) \ G_STMT_START { \ char *result = function; \ if (result != NULL) { \ test_failed ("%s: returned '%s' expected '%s'", #function, result, NULL); \ } \ } G_STMT_END int main (int argc, char **argv) { int i; make_asserts_break ("GLib"); make_asserts_break ("GnomeVFS"); /* Initialize the libraries we use. */ gnome_vfs_init (); /* Test the "make canonical" call for pathnames. */ test_make_canonical_path ("", ""); test_make_canonical_path ("/", "/"); test_make_canonical_path ("/.", "/"); test_make_canonical_path ("/./.", "/"); test_make_canonical_path ("/.//.", "/"); test_make_canonical_path ("/.///.", "/"); test_make_canonical_path ("a", "a"); test_make_canonical_path ("/a/b/..", "/a"); test_make_canonical_path ("a///", "a/"); test_make_canonical_path ("./a", "a"); test_make_canonical_path ("../a", "../a"); test_make_canonical_path ("..//a", "../a"); test_make_canonical_path ("a/.", "a"); test_make_canonical_path ("/a/.", "/a"); test_make_canonical_path ("/a/..", "/"); test_make_canonical_path ("a//.", "a"); test_make_canonical_path ("./a/.", "a"); test_make_canonical_path (".//a/.", "a"); test_make_canonical_path ("./a//.", "a"); test_make_canonical_path ("a/..", ""); test_make_canonical_path ("a//..", ""); test_make_canonical_path ("./a/..", ""); test_make_canonical_path (".//a/..", ""); test_make_canonical_path ("./a//..", ""); test_make_canonical_path (".//a//..", ""); test_make_canonical_path ("a/b/..", "a"); test_make_canonical_path ("./a/b/..", "a"); test_make_canonical_path ("/./a/b/..", "/a"); test_make_canonical_path ("/a/./b/..", "/a"); test_make_canonical_path ("/a/b/./..", "/a"); test_make_canonical_path ("/a/b/../.", "/a"); test_make_canonical_path ("a/b/../..", ""); test_make_canonical_path ("./a/b/../..", ""); test_make_canonical_path ("././a/b/../..", ""); test_make_canonical_path ("a/b/c/../..", "a"); test_make_canonical_path ("a/b/c/../../d", "a/d"); test_make_canonical_path ("a/b/../../d", "d"); test_make_canonical_path ("a/../../d", "../d"); test_make_canonical_path ("a/b/.././.././c", "c"); test_make_canonical_path ("a/.././.././b/c", "../b/c"); test_make_canonical_path ("\\", "\\"); test_uri_to_string ("", "NULL", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("http://www.eazel.com", "http://www.eazel.com", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("http://www.eazel.com/", "http://www.eazel.com/", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("http://www.eazel.com/dir", "http://www.eazel.com/dir", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("http://www.eazel.com/dir/", "http://www.eazel.com/dir/", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("http://yakk:womble@www.eazel.com:42/blah/", "http://yakk:womble@www.eazel.com:42/blah/", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("http://yakk:womble@www.eazel.com:42/blah/", "http://:womble@www.eazel.com:42/blah/", GNOME_VFS_URI_HIDE_USER_NAME); test_uri_to_string ("FILE://", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("file:///trash", "file:///trash", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("file:///Users/mikef", "file:///Users/mikef", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/trash", "file:///trash", GNOME_VFS_URI_HIDE_NONE); /* test URI parts */ test_uri_part ("http://www.eazel.com:80/", "http", gnome_vfs_uri_get_scheme); test_uri_part ("http://www.eazel.com:80/", "www.eazel.com", gnome_vfs_uri_get_host_name); test_uri_part ("http://www.eazel.com:80/", "NULL", gnome_vfs_uri_get_user_name); test_uri_part ("http://www.eazel.com:80/", "NULL", gnome_vfs_uri_get_password); test_uri_part ("http://www.eazel.com:80/", "/", gnome_vfs_uri_get_path); test_uri_host_port ("http://www.eazel.com/", 0); test_uri_host_port ("http://www.eazel.com:80/", 80); /* Now--same thing w/o trailing / */ test_uri_part ("http://www.eazel.com:80", "http", gnome_vfs_uri_get_scheme); test_uri_part ("http://www.eazel.com:80", "www.eazel.com", gnome_vfs_uri_get_host_name); test_uri_part ("http://www.eazel.com:80", "NULL", gnome_vfs_uri_get_user_name); test_uri_part ("http://www.eazel.com:80", "NULL", gnome_vfs_uri_get_password); test_uri_part ("http://www.eazel.com:80", "/", gnome_vfs_uri_get_path); test_uri_host_port ("http://www.eazel.com", 0); test_uri_host_port ("http://www.eazel.com:80", 80); /* now same thing with all the parts */ test_uri_part ("http://yakk:womble@www.eazel.com:42/blah/", "http", gnome_vfs_uri_get_scheme ); test_uri_part ("http://yakk:womble@www.eazel.com:42/blah/", "www.eazel.com", gnome_vfs_uri_get_host_name ); test_uri_part ("http://yakk:womble@www.eazel.com:42/blah/", "yakk", gnome_vfs_uri_get_user_name ); test_uri_part ("http://yakk:womble@www.eazel.com:42/blah/", "womble", gnome_vfs_uri_get_password ); test_uri_host_port ("http://yakk:womble@www.eazel.com:42/blah/", 42); test_uri_part ("http://yakk:womble@www.eazel.com:42/blah/", "/blah/", gnome_vfs_uri_get_path ); test_uri_part ("http://foo.com/query?email=user@host", "/query?email=user@host", gnome_vfs_uri_get_path); test_uri_part ("http://user@host:42/query?email=user@host", "host", gnome_vfs_uri_get_host_name); test_uri_part ("http://@:/path", "NULL", gnome_vfs_uri_get_host_name); test_uri_part ("http://@::/path", "NULL", gnome_vfs_uri_get_host_name); test_uri_part ("http://::/path", "NULL", gnome_vfs_uri_get_host_name); test_uri_part ("http://@pass/path", "pass", gnome_vfs_uri_get_host_name); test_uri_parent ("", "URI NULL"); test_uri_parent ("http://www.eazel.com", "NULL"); test_uri_parent ("http://www.eazel.com/", "NULL"); test_uri_parent ("http://www.eazel.com/dir", "http://www.eazel.com/"); test_uri_parent ("http://www.eazel.com/dir/", "http://www.eazel.com/"); test_uri_parent ("http://yakk:womble@www.eazel.com:42/blah/", "http://yakk:womble@www.eazel.com:42/"); test_uri_parent ("file:", "NULL"); test_uri_parent ("http:", "NULL"); test_uri_parent ("file:/", "NULL"); test_uri_parent ("FILE://", "NULL"); test_uri_parent ("pipe:gnome-info2html2 as", "URI NULL"); test_uri_parent ("file:///my/document.html#fragment", "file:///my"); test_uri_is_parent_shallow ("file:///path", "file:///path/child", TRUE); test_uri_is_parent_shallow ("file:///bla", "file:///path/child", FALSE); test_uri_is_parent_shallow ("file:///path1/path2", "file:///path1/path2/child", TRUE); test_uri_is_parent_shallow ("ftp://foobar.com", "ftp://foobar.com/child", TRUE); test_uri_is_parent_shallow ("ftp://foobar.com/", "ftp://foobar.com/child", TRUE); test_uri_is_parent_shallow ("ftp://foobar.com/path", "ftp://foobar.com/path/child", TRUE); test_uri_is_parent_shallow ("file:///path1/path2", "file:///path1/path2/path3/path4/path5/child", FALSE); test_uri_is_parent_deep ("file:///path", "file:///path/child", TRUE); test_uri_is_parent_deep ("file:///path1/path2", "file:///path1/path2/child", TRUE); test_uri_is_parent_deep ("ftp://foobar.com", "ftp://foobar.com/child", TRUE); test_uri_is_parent_deep ("ftp://foobar.com/", "ftp://foobar.com/child", TRUE); test_uri_is_parent_deep ("ftp://foobar.com/path", "ftp://foobar.com/path/child", TRUE); test_uri_is_parent_deep ("file:///path", "file:///path/path1/child", TRUE); test_uri_is_parent_deep ("file:///path1/path2", "file:///path1/path2/path3/child", TRUE); test_uri_is_parent_deep ("file:///path1/path2", "file:///path1/path2/path3/path4/path5/child", TRUE); test_uri_is_parent_deep ("ftp://foobar.com", "ftp://foobar.com/path1/child", TRUE); test_uri_is_parent_deep ("ftp://foobar.com/", "ftp://foobar.com/path1/child", TRUE); test_uri_is_parent_deep ("ftp://foobar.com/path1", "ftp://foobar.com/path1/path2/child", TRUE); test_uri_has_parent ("", "URI NULL"); test_uri_has_parent ("http://www.eazel.com", "FALSE"); test_uri_has_parent ("http://www.eazel.com/", "FALSE"); test_uri_has_parent ("http://www.eazel.com/dir", "TRUE"); test_uri_has_parent ("http://www.eazel.com/dir/", "TRUE"); test_uri_has_parent ("http://yakk:womble@www.eazel.com:42/blah/", "TRUE"); test_uri_has_parent ("file:", "FALSE"); test_uri_has_parent ("http:", "FALSE"); test_uri_has_parent ("file:/", "FALSE"); test_uri_has_parent ("FILE://", "FALSE"); test_uri_has_parent ("pipe:gnome-info2html2 as", "URI NULL"); /* Test uri canonicalization */ test_uri_to_string ("/////", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/.", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/./.", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/.///.", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/..", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/b/..", "file:///a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/b//..", "file:///a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/./a/b/..", "file:///a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/./b/..", "file:///a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/b/./..", "file:///a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a///b//..", "file:///a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/b/../..", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/b/c/../..", "file:///a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/../b/..", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/../b/../c", "file:///c", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/a/../b/../c", "file:///c", GNOME_VFS_URI_HIDE_NONE); test_make_canonical ("file:///%3F", "file:///%3F"); test_make_canonical ("file:///%78", "file:///x"); test_make_canonical ("file:///?", "file:///%3F"); test_make_canonical ("file:///&", "file:///%26"); test_make_canonical ("file:///x", "file:///x"); test_make_canonical ("glorb:///%3F", "glorb:///%3F"); test_make_canonical ("glorb:///%78", "glorb:///x"); test_make_canonical ("glorb:///?", "glorb:///%3F"); test_make_canonical ("glorb:///&", "glorb:///%26"); test_make_canonical ("glorb:///x", "glorb:///x"); test_make_canonical ("http:///%3F", "http:///%3F"); test_make_canonical ("http:///%78", "http:///x"); test_make_canonical ("http:///?", "http:///?"); test_make_canonical ("http:///&", "http:///&"); test_make_canonical ("http:///x", "http:///x"); test_make_canonical ("pipe:foo", "pipe:foo"); test_make_canonical ("dav:///%3F", "dav:///%3F"); test_make_canonical ("dav:///%78", "dav:///x"); test_make_canonical ("dav:///?", "dav:///?"); test_make_canonical ("dav:///&", "dav:///&"); test_make_canonical ("dav:///x", "dav:///x"); test_make_canonical ("http://www.eazel.com/query?email=email@eazel.com", "http://www.eazel.com/query?email=email@eazel.com"); /* test proper case-sensitivity handling */ test_make_canonical ("HTTP://WWW.ZOO.COM", "http://www.zoo.com"); test_make_canonical ("HTTP://WWW.ZOO.COM/", "http://www.zoo.com/"); test_make_canonical ("HTTP://WWW.ZOO.COM/ED", "http://www.zoo.com/ED"); test_uri_match ("http://www.zoo.com/ed", "HTTP://WWW.ZOO.COM/ed", TRUE); test_uri_match ("http://www.zoo.com/ed", "http://www.zoo.com/ED", FALSE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "http://ed:ed@www.zoo.com/ed", TRUE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "HTTP://ed:ed@www.zoo.com/ed", TRUE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "http://ED:ed@www.zoo.com/ed", FALSE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "http://ed:ED@www.zoo.com/ed", FALSE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "http://ed:ed@WWW.zoo.com/ed", TRUE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "http://ed:ed@www.ZOO.com/ed", TRUE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "http://ed:ed@www.zoo.COM/ed", TRUE); test_uri_match ("http://ed:ed@www.zoo.com/ed", "http://ed:ed@www.zoo.com/ED", FALSE); test_uri_match ("/tmp/foo", "/tmp/foo", TRUE); test_uri_match ("file:/tmp/foo", "file:/TMP/foo", FALSE); test_uri_match ("/tmp/foo", "/TMP/foo", FALSE); /* Test chained uris */ test_uri_to_string ("/tmp/t.efs#http:///foobar/", "file:///tmp/t.efs#http:/foobar/", GNOME_VFS_URI_HIDE_NONE); test_uri_parent ("/tmp/t.efs#http:/", "file:///tmp/t.efs"); test_uri_to_string ("/tmp/t.efs#gzip:/", "file:///tmp/t.efs#gzip:/", GNOME_VFS_URI_HIDE_NONE); test_uri_parent ("/tmp/t.efs#gzip:/", "file:///tmp/t.efs"); test_uri_to_string ("/tmp/t.efs#unknownmethod:/", "file:///tmp/t.efs", GNOME_VFS_URI_HIDE_NONE); /* Test fragment identifiers. */ test_uri_to_string ("/tmp/#junk", "file:///tmp/#junk", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("/tmp/#junk", "file:///tmp/", GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER); test_uri_to_string ("/tmp/#junk#", "file:///tmp/#junk#", GNOME_VFS_URI_HIDE_NONE); test_uri_has_fragment_id ("/tmp/#junk", "junk"); test_uri_has_fragment_id ("/tmp/#junk#", "junk#"); /* Test gnome_vfs_uri_extract_dirname (). */ test_uri_extract_dirname ("/", "/"); test_uri_extract_dirname ("/usr", "/"); test_uri_extract_dirname ("/usr/bin", "/usr"); /* test a escaping->unescaping round trip for funny characters */ test_file_path_to_uri_string ("/tmp/#backup_file#", "file:///tmp/#backup_file#", GNOME_VFS_URI_HIDE_NONE); test_file_path_to_uri_string ("/tmp/percent%percent", "file:///tmp/percent%percent", GNOME_VFS_URI_HIDE_NONE); /* FIXME bugzilla.eazel.com 4101: Why append a slash in this case, but not in the http://www.eazel.com case? */ test_uri_to_string ("http://www.eazel.com:80", "http://www.eazel.com:80/", GNOME_VFS_URI_HIDE_NONE); /* FIXME bugzilla.eazel.com 3829: illegal */ test_uri_to_string ("foo", "file:foo", GNOME_VFS_URI_HIDE_NONE); /* FIXME bugzilla.eazel.com 4102: illegal? */ test_uri_to_string ("file:foo", "file:foo", GNOME_VFS_URI_HIDE_NONE); /* FIXME bugzilla.eazel.com 3830: This turns a good path with * a redundant "/" in it into a completely different one. */ test_uri_to_string ("//foo", "file://foo", GNOME_VFS_URI_HIDE_NONE); /* FIXME bugzilla.eazel.com 7774: Are any of these right? * Perhaps they should all return NULL? */ test_uri_to_string (".", "file:", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("./a", "file:a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("../a", "file:../a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("../a", "file:../a", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("../../a", "file:a", GNOME_VFS_URI_HIDE_NONE); /* FIXME bugzilla.eazel.com 2801: Do we want GnomeVFSURI to * just refuse to deal with URIs that we don't have a module * for? */ test_uri_to_string ("glorp:", "NULL", GNOME_VFS_URI_HIDE_NONE); test_uri_parent ("glorp:", "URI NULL"); test_uri_to_string ("file:", "file:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("http:", "http:///", GNOME_VFS_URI_HIDE_NONE); test_uri_to_string ("file:/", "file:///", GNOME_VFS_URI_HIDE_NONE); /* FIXME bugzilla.eazel.com 6022: At least for http, we don't * want to do canonicalizing after the ?. All these results * are presumably wrong because of that. */ test_uri_to_string ("http://www.eazel.com?///xxx", "http://www.eazel.com?/xxx", GNOME_VFS_URI_HIDE_NONE); test_uri_parent ("http://www.eazel.com?///xxx", "http://www.eazel.com?/"); test_uri_parent ("http://www.eazel.com/dir?xxx/yyy", "http://www.eazel.com/dir?xxx"); VERIFY_STRING_RESULT_NULL (gnome_vfs_get_local_path_from_uri ("")); VERIFY_STRING_RESULT_NULL (gnome_vfs_get_local_path_from_uri ("/#")); VERIFY_STRING_RESULT (gnome_vfs_get_local_path_from_uri ("file:/path"), "/path"); VERIFY_STRING_RESULT_NULL (gnome_vfs_get_local_path_from_uri ("file://path")); VERIFY_STRING_RESULT (gnome_vfs_get_local_path_from_uri ("file:///path"), "/path"); VERIFY_STRING_RESULT (gnome_vfs_get_local_path_from_uri ("file:////path"), "//path"); VERIFY_STRING_RESULT (gnome_vfs_get_local_path_from_uri ("file:///my/document.html"), "/my/document.html"); VERIFY_STRING_RESULT_NULL (gnome_vfs_get_local_path_from_uri ("file:///my/document.html#fragment")); VERIFY_STRING_RESULT (gnome_vfs_get_local_path_from_uri ("file:///my/docu%20ment%23/path"), "/my/docu ment#/path"); VERIFY_STRING_RESULT_NULL (gnome_vfs_get_local_path_from_uri ("file:///my/docu%20ment%23/path/foo.html.gz#gunzip:///#fragment")); VERIFY_STRING_RESULT_NULL (gnome_vfs_get_local_path_from_uri ("/my/document.html")); VERIFY_STRING_RESULT_NULL (gnome_vfs_get_local_path_from_uri ("http://my/document.html")); /* Testing gnome_vfs_uri_make_full_from_relative */ /* (not an extensive testing, but a regression test */ i = 0; while (test_uris[i][0] != NULL) { test_make_full_from_relative (test_uris[i][0], test_uris[i][1], "http://www.gnome.org/index.html"); i++; } /* Report to "make check" on whether it all worked or not. */ return at_least_one_test_failed ? EXIT_FAILURE : EXIT_SUCCESS; } gnome-vfs-2.24.4/test/test-async.c0000644000175000001440000001141211354402436013637 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-vfs.c - Test program for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include #define QUEUE_LENGTH 4000 static GMainLoop *main_loop; /* Callbacks. */ static void close_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { fprintf (stderr, "Close: %s.\n", gnome_vfs_result_to_string (result)); g_main_loop_quit (main_loop); } static void file_control_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer operation_data, gpointer callback_data) { if (result != GNOME_VFS_OK) { fprintf (stderr, "file_control failed: %s\n", gnome_vfs_result_to_string (result)); } else { printf ("file_control result: %s\n", *(char **)operation_data); } fprintf (stderr, "Now closing the file.\n"); gnome_vfs_async_close (handle, close_callback, "close"); } static void read_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer buffer, GnomeVFSFileSize bytes_requested, GnomeVFSFileSize bytes_read, gpointer callback_data) { char **op_data; if (result != GNOME_VFS_OK) { fprintf (stderr, "Read failed: %s\n", gnome_vfs_result_to_string (result)); } else { printf ("%"GNOME_VFS_SIZE_FORMAT_STR"/" "%"GNOME_VFS_SIZE_FORMAT_STR" " "byte(s) read, callback data `%s'\n", bytes_read, bytes_requested, (gchar *) callback_data); *((gchar *) buffer + bytes_read) = 0; fprintf (stderr, "%s", (char *) buffer); } fprintf (stderr, "Now testing file_control.\n"); op_data = g_new (char *, 1); gnome_vfs_async_file_control (handle, "file:test", op_data, g_free, file_control_callback, "file_control"); } static void open_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { if (result != GNOME_VFS_OK) { fprintf (stderr, "Open failed: %s.\n", gnome_vfs_result_to_string (result)); g_main_loop_quit (main_loop); } else { gchar *buffer; const gulong buffer_size = 1024; fprintf (stderr, "File opened correctly, data `%s'.\n", (gchar *) callback_data); buffer = g_malloc (buffer_size); gnome_vfs_async_read (handle, buffer, buffer_size - 1, read_callback, "read_callback"); } } static void dummy_close_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { } static void async_queue_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { int *completed = callback_data; (*completed)++; if (result == GNOME_VFS_OK) gnome_vfs_async_close (handle, dummy_close_callback, NULL); } int main (int argc, char **argv) { int completed, i; GnomeVFSAsyncHandle *handle; if (argc < 2) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } fprintf (stderr, "Initializing gnome-vfs...\n"); gnome_vfs_init (); fprintf (stderr, "Creating async context...\n"); fprintf (stderr, "Starting open for `%s'...\n", argv[1]); gnome_vfs_async_open (&handle, argv[1], GNOME_VFS_OPEN_READ, GNOME_VFS_PRIORITY_MIN, open_callback, "open_callback"); fprintf (stderr, "Main loop running.\n"); main_loop = g_main_loop_new (NULL, TRUE); g_main_loop_run (main_loop); fprintf (stderr, "Main loop finished.\n"); fprintf (stderr, "Test async queue efficiency ..."); for (completed = i = 0; i < QUEUE_LENGTH; i++) { gnome_vfs_async_open (&handle, argv [1], GNOME_VFS_OPEN_READ, 0, async_queue_callback, &completed); } while (completed < QUEUE_LENGTH) g_main_context_iteration (NULL, TRUE); fprintf (stderr, "Passed\n"); g_main_loop_unref (main_loop); fprintf (stderr, "All done\n"); gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/test/test-queue.c0000644000175000001440000002070211334251016013642 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-queue.c - Test program for the GNOME Virtual File System. Copyright (C) 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: László Péter */ /* This is a simple test program for the job queue. It tests some basic features but to see what's really going on on the inside you should change #undef QUEUE_DEBUG to #define QUEUE_DEBUG 1 in libgnomevfs/gnome-vfs-job-queue.c and rebuild gnome-vfs. */ #include #include #include #include #include #include #include #include #include #include #include #include #define TEST_LIMIT 3 static GnomeVFSAsyncHandle *test_handle; static gpointer test_callback_data; static int jobs_started; static int jobs_finished; static int finished_7, finished_0; static int test_no; static gboolean verbose = FALSE; static gboolean at_least_one_test_failed = FALSE; static int prio_db[100]; static void my_yield (int count) { for (; count > 0; count--) { if (!g_main_context_iteration (NULL, FALSE)) { break; } g_usleep (10); } } static gboolean wait_until_vfs_jobs_gone (void) { int i; if (gnome_vfs_job_get_count () == 0) { return TRUE; } for (i = 0; i < 2000; i++) { g_usleep (1000); g_main_context_iteration (NULL, FALSE); if (gnome_vfs_job_get_count () == 0) { return TRUE; } } return FALSE; } static void get_file_info_callback (GnomeVFSAsyncHandle *handle, GList *results, gpointer callback_data) { int this_test_no = *(int *)callback_data; jobs_finished ++; if (prio_db[this_test_no] == 7) { finished_7 = jobs_finished; } if (prio_db[this_test_no] == 0) { finished_0 = jobs_finished; } if (verbose) { printf ("finished test #%d: get_file_info, priority = %d\n", this_test_no, prio_db[this_test_no]); } g_free (callback_data); jobs_started --; } static gboolean test_get_file_info (const char *uri, int priority) { GList *uri_list; /* Start a get_file_info call. */ test_callback_data = g_malloc (sizeof (int)); *(int *)test_callback_data = ++test_no; prio_db[test_no] = priority; uri_list = g_list_prepend (NULL, gnome_vfs_uri_new (uri)); jobs_started ++; if (verbose) { printf ("starting test #%d: get_file_info, priority = %d\n", test_no, priority); } test_handle = NULL; gnome_vfs_async_get_file_info (&test_handle, uri_list, GNOME_VFS_FILE_INFO_DEFAULT, priority, get_file_info_callback, test_callback_data); if (test_handle == NULL) { jobs_started --; return FALSE; } g_list_free (uri_list); my_yield (20); return TRUE; } static void test_find_directory_callback (GnomeVFSAsyncHandle *handle, GList *results, gpointer callback_data) { int this_test_no = *(int *)callback_data; jobs_finished++; if (verbose) { printf ("finished test #%d: find_directory, priority = %d\n", this_test_no, prio_db[this_test_no]); } fflush (stdout); g_free (callback_data); jobs_started --; } static void test_find_directory (const char *uri, int priority) { GnomeVFSAsyncHandle *handle; GList *vfs_uri_as_list; test_callback_data = g_malloc (sizeof (int)); *(int *)test_callback_data = ++test_no; prio_db[test_no] = priority; vfs_uri_as_list = g_list_append (NULL, gnome_vfs_uri_new (uri)); jobs_started++; if (verbose) { printf ("starting test #%d: find_directory, priority = %d\n", test_no, priority); } gnome_vfs_async_find_directory (&handle, vfs_uri_as_list, GNOME_VFS_DIRECTORY_KIND_TRASH, FALSE, TRUE, 0777, priority, test_find_directory_callback, test_callback_data); my_yield (20); } static int usage (void) { printf ("Usage: test-queue [-h|--help] [-v|--verbose]\n"); printf ("\t-h, --help display usage information\n"); printf ("\t-v, --verbose verbose mode\n\n"); exit (1); } int main (int argc, char **argv) { int limit; int finished_before_7; int finished_before_0; int i; for (i = 1; i < argc; i++) { if (!strcmp (argv[i], "-h") || !strcmp (argv[i], "--help")) { usage (); continue; } if (!strcmp (argv[i], "-v") || !strcmp (argv[i], "--verbose")) { verbose = TRUE; continue; } printf ("Unrecognized option: %s\n\n", argv[i]); usage (); } gnome_vfs_init (); limit = gnome_vfs_async_get_job_limit (); if (verbose) { printf ("Current job limit: %d\n", limit); printf ("Trying to set the limit to 1; should result in a warning\n"); } else { printf ("You should see a warning and 2 critical errors below.\n"); } gnome_vfs_async_set_job_limit (1); if (limit != gnome_vfs_async_get_job_limit ()) { at_least_one_test_failed = TRUE; g_warning ("Current job limit changed to %d\n", gnome_vfs_async_get_job_limit ()); } printf ("Trying to start a job with priority = -11; should result in a critical error\n"); if (test_get_file_info ("file:///dev/null", -11)) { at_least_one_test_failed = TRUE; } printf ("Trying to start a job with priority = 11; should result in a critical error\n"); if (test_get_file_info ("file:///dev/null", 11)) { at_least_one_test_failed = TRUE; } if (!verbose) { printf ("No warning or error messages are expected beyond this point\n"); } if (verbose) { printf ("Setting job limit to %d\n", TEST_LIMIT); } gnome_vfs_async_set_job_limit (TEST_LIMIT); limit = gnome_vfs_async_get_job_limit (); if (limit != TEST_LIMIT) { at_least_one_test_failed = TRUE; g_warning ("Limit is %d, not %d as expected", limit, TEST_LIMIT); } for (i = 0; i < 10; i++) { test_find_directory ("test:///usr", 8); } finished_before_7 = jobs_finished; test_find_directory ("test:///usr", 7); finished_before_0 = jobs_finished; test_get_file_info ("test:///etc/passwd", 0); wait_until_vfs_jobs_gone (); /* Do some random tests with different priorities */ test_find_directory ("file:///", 10); test_find_directory ("file:///usr", 6); test_find_directory ("file:///usr/local", -1); test_find_directory ("file:///home", 2); test_find_directory ("file:///etc", 5); test_find_directory ("file:///tmp", 5); test_find_directory ("file:///opt", 9); test_find_directory ("file:///var", 10); test_find_directory ("file:///", 10); test_find_directory ("file:///home", 10); test_get_file_info ("file:///dev/null", -1); test_get_file_info ("file:///etc/passwd", -5); test_find_directory ("file:///", -8); test_find_directory ("file:///tmp", -10); test_find_directory ("file:///etc", -5); test_find_directory ("file:///usr", -1); wait_until_vfs_jobs_gone (); if (jobs_started != 0) { printf ("%d jobs appear to be still running.\n", jobs_started - 2); at_least_one_test_failed = TRUE; } /* at most TEST_LIMIT low priority jobs + the 0 priority job may have finished before this one */ if ((finished_7 > 0) && (finished_7 - finished_before_7 > TEST_LIMIT + 1)) { printf ("Scheduling error: %d lower priority jobs finished before " "the 7 priority job when the job limit is %d\n", finished_7 - finished_before_7, TEST_LIMIT); at_least_one_test_failed = TRUE; } /* at most TEST_LIMIT low priority jobs may have finished before this one */ if ((finished_0 > 0) && (finished_0 - finished_before_0 > TEST_LIMIT + 1)) { printf ("Scheduling error: %d lower priority jobs finished before " "the 0 priority job when the job limit is %d\n", finished_0 - finished_before_0, TEST_LIMIT); at_least_one_test_failed = TRUE; } if (verbose) { printf ("Shutting down\n"); } gnome_vfs_shutdown (); /* Report to "make check" on whether it all worked or not. */ return at_least_one_test_failed ? EXIT_FAILURE : EXIT_SUCCESS; } gnome-vfs-2.24.4/test/test-mime-info-cache.c0000644000175000001440000000352011334251016015436 00000000000000#include #include #include #include #include static void mime_cache_info_reload (void); static gpointer foo (const char *mime_type); static void mime_cache_info_reload (void) { g_print ("mime cache reloaded...\n"); } static gpointer foo (const char *mime_type) { GList *desktop_file_apps, *tmp; while (1) { g_print ("Default: %s\n", gnome_vfs_mime_get_default_desktop_entry (mime_type)); desktop_file_apps = gnome_vfs_mime_get_all_applications (mime_type); g_print ("All:\n"); tmp = desktop_file_apps; while (tmp != NULL) { GnomeVFSMimeApplication *application; application = (GnomeVFSMimeApplication *) tmp->data; g_print ("%s, %s\n", application->id, application->name); tmp = tmp->next; } g_usleep (1000000); } } int main (int argc, char **argv) { GMainLoop *main_loop; char *mime_type; int i; gnome_vfs_init (); if (argc > 1) { mime_type = argv[1]; } else { mime_type = "text/plain"; } i = 1; while (i--) { (void) g_thread_create ((GThreadFunc) foo, mime_type, FALSE, NULL); } g_signal_connect (G_OBJECT (gnome_vfs_mime_monitor_get ()), "data_changed", (GCallback) mime_cache_info_reload, NULL); main_loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (main_loop); return 0; } gnome-vfs-2.24.4/test/test-callback.c0000644000175000001440000002141611334251016014255 00000000000000#include #include #include #include #include #include #include #include #include #include #include static gboolean authentication_callback_called = FALSE; /* For this test case to function, these two URI's should * require a username/password (set in authentication_username, authentication_password below) * and AUTHENTICATION_URI_CHILD should be a child of AUTHENTICATION_URI */ #define AUTHENTICATION_URI_CHILD "http://localhost/~mikef/protected/index.html" #define AUTHENTICATION_URI "http://localhost/~mikef/protected/" static const char *authentication_username = "foo"; static const char *authentication_password = "foo"; static void /* GnomeVFSModuleCallback */ authentication_callback (gconstpointer in, size_t in_size, gpointer out, size_t out_size, gpointer user_data) { GnomeVFSModuleCallbackAuthenticationIn *in_real; GnomeVFSModuleCallbackAuthenticationOut *out_real; /* printf ("in authentication_callback\n"); */ g_return_if_fail (sizeof (GnomeVFSModuleCallbackAuthenticationIn) == in_size && sizeof (GnomeVFSModuleCallbackAuthenticationOut) == out_size); g_return_if_fail (in != NULL); g_return_if_fail (out != NULL); in_real = (GnomeVFSModuleCallbackAuthenticationIn *)in; out_real = (GnomeVFSModuleCallbackAuthenticationOut *)out; /* printf ("in uri: %s realm: %s\n", in_real->uri, in_real->realm); */ out_real->username = g_strdup (authentication_username); out_real->password = g_strdup (authentication_password); authentication_callback_called = TRUE; } static gboolean destroy_notify_occurred = FALSE; static void /*GDestroyNotify*/ destroy_notify (gpointer user_data) { destroy_notify_occurred = TRUE; } static volatile gboolean open_callback_occurred = FALSE; static GnomeVFSResult open_callback_result_expected = GNOME_VFS_OK; static void /* GnomeVFSAsyncOpenCallback */ open_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { g_assert (result == open_callback_result_expected); open_callback_occurred = TRUE; } static volatile gboolean close_callback_occurred = FALSE; static void /* GnomeVFSAsyncOpenCallback */ close_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { close_callback_occurred = TRUE; } static void stop_after_log (const char *domain, GLogLevelFlags level, const char *message, gpointer data) { void (* saved_handler) (int); g_log_default_handler (domain, level, message, data); saved_handler = signal (SIGINT, SIG_IGN); raise (SIGINT); signal (SIGINT, saved_handler); } static void make_asserts_break (const char *domain) { g_log_set_handler (domain, (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING), stop_after_log, NULL); } static void (*flush_credentials_func)(void); int main (int argc, char **argv) { GnomeVFSHandle *handle; GnomeVFSResult result; GnomeVFSAsyncHandle *async_handle; char *module_path; char *authentication_uri, *authentication_uri_child; GModule *module; guint i; make_asserts_break ("GLib"); make_asserts_break ("GnomeVFS"); if (argc == 2) { authentication_uri = argv[1]; authentication_uri_child = g_strdup_printf("%s/./", authentication_uri); } else if (argc == 3) { authentication_uri = argv[1]; authentication_uri_child = argv[2]; } else { authentication_uri = AUTHENTICATION_URI; authentication_uri_child = AUTHENTICATION_URI_CHILD; } gnome_vfs_init (); /* Load http module so we can snag the test hook */ module_path = g_module_build_path (MODULES_PATH, "http"); module = g_module_open (module_path, G_MODULE_BIND_LAZY); g_free (module_path); module_path = NULL; if (module == NULL) { fprintf (stderr, "Couldn't load http module \n"); exit (-1); } g_module_symbol (module, "http_authentication_test_flush_credentials", (gpointer *) &flush_credentials_func); if (flush_credentials_func == NULL) { fprintf (stderr, "Couldn't find http_authentication_test_flush_credentials\n"); exit (-1); } /* Test 1: Attempt to access a URI requiring authentication w/o a callback registered */ result = gnome_vfs_open (&handle, authentication_uri, GNOME_VFS_OPEN_READ); g_assert (result == GNOME_VFS_ERROR_ACCESS_DENIED); handle = NULL; /* Test 2: Attempt an async open that requires http authentication */ gnome_vfs_module_callback_set_default (GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION, authentication_callback, NULL, NULL); authentication_callback_called = FALSE; open_callback_occurred = FALSE; open_callback_result_expected = GNOME_VFS_OK; gnome_vfs_async_open ( &async_handle, authentication_uri, GNOME_VFS_OPEN_READ, 0, open_callback, NULL); while (!open_callback_occurred) { g_main_context_iteration (NULL, TRUE); } close_callback_occurred = FALSE; gnome_vfs_async_close (async_handle, close_callback, NULL); while (!close_callback_occurred) { g_main_context_iteration (NULL, TRUE); } g_assert (authentication_callback_called); /* Test 3: Attempt a sync call to the same location; * credentials should be stored so the authentication_callback function * should not be called */ authentication_callback_called = FALSE; result = gnome_vfs_open (&handle, authentication_uri, GNOME_VFS_OPEN_READ); g_assert (result == GNOME_VFS_OK); gnome_vfs_close (handle); handle = NULL; /* The credentials should be in the cache, so we shouldn't have been called */ g_assert (authentication_callback_called == FALSE); /* Test 4: Attempt a sync call to something deeper in the namespace. * which should work without a callback too */ authentication_callback_called = FALSE; result = gnome_vfs_open (&handle, authentication_uri_child, GNOME_VFS_OPEN_READ); g_assert (result == GNOME_VFS_OK); gnome_vfs_close (handle); handle = NULL; /* The credentials should be in the cache, so we shouldn't have been called */ g_assert (authentication_callback_called == FALSE); /* Test 5: clear the credential store and try again in reverse order */ flush_credentials_func(); authentication_callback_called = FALSE; result = gnome_vfs_open (&handle, authentication_uri_child, GNOME_VFS_OPEN_READ); g_assert (result == GNOME_VFS_OK); gnome_vfs_close (handle); handle = NULL; g_assert (authentication_callback_called == TRUE); /* Test 6: Try something higher in the namespace, which should * cause the callback to happen again */ authentication_callback_called = FALSE; result = gnome_vfs_open (&handle, authentication_uri, GNOME_VFS_OPEN_READ); g_assert (result == GNOME_VFS_OK); gnome_vfs_close (handle); handle = NULL; g_assert (authentication_callback_called == TRUE); /* Test 7: Try same URL as in test 4, make sure callback doesn't get called */ authentication_callback_called = FALSE; result = gnome_vfs_open (&handle, authentication_uri_child, GNOME_VFS_OPEN_READ); g_assert (result == GNOME_VFS_OK); gnome_vfs_close (handle); handle = NULL; g_assert (authentication_callback_called == FALSE); /* Test 8: clear the credential store ensure that passing a username as NULL * cancels the operation, resulting in a ACCESS_DENIED error */ flush_credentials_func(); authentication_username = NULL; authentication_callback_called = FALSE; result = gnome_vfs_open (&handle, authentication_uri_child, GNOME_VFS_OPEN_READ); g_assert (result == GNOME_VFS_ERROR_ACCESS_DENIED); handle = NULL; g_assert (authentication_callback_called == TRUE); /* Test 9: exercise the "destroy notify" functionality */ /* Note that job doesn't end until a "close" is called, so the inherited * callback isn't released until then */ flush_credentials_func(); authentication_username = "foo"; gnome_vfs_module_callback_push (GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION, authentication_callback, NULL, destroy_notify); authentication_callback_called = FALSE; open_callback_occurred = FALSE; open_callback_result_expected = GNOME_VFS_OK; destroy_notify_occurred = FALSE; gnome_vfs_async_open ( &async_handle, authentication_uri, GNOME_VFS_OPEN_READ, 0, open_callback, NULL); gnome_vfs_module_callback_pop (GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION); g_assert (!destroy_notify_occurred); while (!open_callback_occurred) { g_main_context_iteration (NULL, TRUE); } close_callback_occurred = FALSE; gnome_vfs_async_close (async_handle, close_callback, NULL); while (!close_callback_occurred) { g_main_context_iteration (NULL, TRUE); } for (i = 0 ; i<100 ; i++) { g_main_context_iteration (NULL, FALSE); g_usleep (10); } g_assert (authentication_callback_called); g_assert (destroy_notify_occurred); gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/test/test-address.c0000644000175000001440000001047111334251016014145 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-address.c - Test program for the GNOME Virtual File System. Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner */ #ifdef HAVE_CONFIG_H #include #endif #undef G_DISABLE_ASSERT #undef G_LOG_DOMAIN #include #include #include int main (int argc, char **argv) { GnomeVFSAddress *v4_a; GnomeVFSAddress *v4_b; guint32 v4_numeric; gboolean equal; #ifdef ENABLE_IPV6 GnomeVFSAddress *v6_a; GnomeVFSAddress *v6_b; #endif fprintf (stderr, "Testing GnomeVFSAddress\n"); gnome_vfs_init (); /* v4 test cases */ v4_a = gnome_vfs_address_new_from_string ("127.3.2.1"); /* generate a numeric 127.0.0.1 */ v4_numeric = g_htonl (2130706433U); v4_b = gnome_vfs_address_new_from_ipv4 (v4_numeric); g_assert (v4_a && v4_b); g_assert (gnome_vfs_address_get_family_type (v4_a) == AF_INET); g_assert (gnome_vfs_address_get_family_type (v4_b) == AF_INET); g_assert (gnome_vfs_address_get_ipv4 (v4_b) == v4_numeric); /* compare the whole address for now */ equal = gnome_vfs_address_match (v4_a, v4_b, 32); g_assert (equal == FALSE); equal = gnome_vfs_address_match (v4_a, v4_b, 24); g_assert (equal == FALSE); equal = gnome_vfs_address_match (v4_a, v4_b, 16); g_assert (equal == FALSE); equal = gnome_vfs_address_match (v4_a, v4_b, 8); g_assert (equal == TRUE); equal = gnome_vfs_address_match (v4_a, v4_b, 0); g_assert (equal == FALSE); gnome_vfs_address_free (v4_a); v4_a = gnome_vfs_address_new_from_string ("127.0.0.1"); equal = gnome_vfs_address_match (v4_a, v4_b, 32); g_assert (equal == TRUE); gnome_vfs_address_free (v4_b); v4_b = gnome_vfs_address_dup (v4_a); equal = gnome_vfs_address_equal (v4_a, v4_b); g_assert (equal == TRUE); equal = gnome_vfs_address_match (v4_a, v4_b, 32); g_assert (equal == TRUE); #ifdef INADDR_LOOPBACK v4_numeric = gnome_vfs_address_get_ipv4 (v4_a); g_assert (INADDR_LOOPBACK == g_ntohl (v4_numeric)); #endif #ifdef ENABLE_IPV6 /* Mapped v4 test cases */ v6_a = gnome_vfs_address_new_from_string ("::ffff:127.0.0.1"); g_assert (v6_a); g_assert (gnome_vfs_address_get_family_type (v6_a) == AF_INET6); /* v4 mapped in v6 test (v4_a still is 127.0.0.1) */ equal = gnome_vfs_address_match (v4_a, v6_a, 32); g_assert (equal == TRUE); gnome_vfs_address_free (v6_a); v6_a = gnome_vfs_address_new_from_string ("fe80::dead:babe"); v6_b = gnome_vfs_address_new_from_string ("fe80::dead:beef"); g_assert (v6_a && v6_b); g_assert (gnome_vfs_address_get_family_type (v6_a) == AF_INET6); g_assert (gnome_vfs_address_get_family_type (v6_b) == AF_INET6); equal = gnome_vfs_address_match (v6_a, v6_b, 128); g_assert (equal == FALSE); /* fe80::dead:bx* */ equal = gnome_vfs_address_match (v6_a, v6_b, 120); g_assert (equal == FALSE); /* fe80::dead:b* */ /* both address are equal from this mask on */ equal = gnome_vfs_address_match (v6_a, v6_b, 116); g_assert (equal == TRUE); /* fe80::dead:* */ equal = gnome_vfs_address_match (v6_a, v6_b, 112); g_assert (equal == TRUE); /* fe80::* */ equal = gnome_vfs_address_match (v6_a, v6_b, 64); g_assert (equal == TRUE); /* _dup test for v6 */ gnome_vfs_address_free (v6_b); v6_b = gnome_vfs_address_dup (v6_a); equal = gnome_vfs_address_equal (v6_a, v6_b); g_assert (equal == TRUE); gnome_vfs_address_free (v6_a); gnome_vfs_address_free (v6_b); #endif gnome_vfs_address_free (v4_a); gnome_vfs_address_free (v4_b); return 0; } gnome-vfs-2.24.4/test/test-ssl.c0000644000175000001440000001072511334251016013323 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-sync.c - Test program for synchronous operation of the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ian McKellar */ #include #include #include #include #include #include #include #include #include #include enum { SSL, SOCKET, SOCKETBUFFER } abstraction = SOCKETBUFFER; static void show_result (GnomeVFSResult result, const gchar *what, const gchar *host, gint port) { fprintf (stderr, "%s `%s:%d': %s\n", what, host, port, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } #define HTTP_REQUEST "GET / HTTP/1.0\r\n\r\n" int main (int argc, char **argv) { GnomeVFSResult result = GNOME_VFS_OK; gchar buffer[1024]; gchar *host; gint port; GnomeVFSFileSize bytes_read; GnomeVFSSSL *ssl = NULL; GnomeVFSSocket *socket = NULL; GnomeVFSSocketBuffer *socketbuffer = NULL; if (argc != 3) { printf ("Usage: %s \n", argv[0]); return 1; } host = argv[1]; port = atoi (argv[2]); if (port <= 0) { printf ("Invalid port\n"); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } switch (abstraction) { case SOCKETBUFFER: g_print ("Testing GnomeVFSSocketBuffer"); case SOCKET: g_print (" and GnomeVFSSocket"); case SSL: g_print (" and GnomeVFSSSL"); } g_print (".\n"); result = gnome_vfs_ssl_create (&ssl, host, port, NULL); show_result (result, "ssl_create", host, port); if (ssl == NULL) { fprintf (stderr, "couln't connect\n"); return -1; } if (abstraction >= SOCKET) { socket = gnome_vfs_ssl_to_socket (ssl); if (socket == NULL) { fprintf (stderr, "couldn't create socket object\n"); return -1; } if (abstraction == SOCKETBUFFER) { socketbuffer = gnome_vfs_socket_buffer_new (socket); if (socketbuffer == NULL) { fprintf (stderr, "couldn't create socketbuffer object\n"); return -1; } } } switch (abstraction) { case SSL: result = gnome_vfs_ssl_write (ssl, HTTP_REQUEST, strlen(HTTP_REQUEST), &bytes_read, NULL); break; case SOCKET: result = gnome_vfs_socket_write (socket, HTTP_REQUEST, strlen(HTTP_REQUEST), &bytes_read, NULL); break; case SOCKETBUFFER: result = gnome_vfs_socket_buffer_write (socketbuffer, HTTP_REQUEST, strlen(HTTP_REQUEST), &bytes_read, NULL); gnome_vfs_socket_buffer_flush (socketbuffer, NULL); break; } show_result (result, "write", host, port); while( result==GNOME_VFS_OK ) { switch (abstraction) { case SSL: result = gnome_vfs_ssl_read (ssl, buffer, sizeof buffer - 1, &bytes_read, NULL); break; case SOCKET: result = gnome_vfs_socket_read (socket, buffer, sizeof buffer - 1, &bytes_read, NULL); break; case SOCKETBUFFER: result = gnome_vfs_socket_buffer_read ( socketbuffer, buffer, sizeof buffer - 1, &bytes_read, NULL); break; } show_result (result, "read", host, port); buffer[bytes_read] = 0; write (1,buffer,bytes_read); if(!bytes_read) break; } switch (abstraction) { case SSL: gnome_vfs_ssl_destroy (ssl, NULL); break; case SOCKET: gnome_vfs_socket_close (socket, NULL); break; case SOCKETBUFFER: gnome_vfs_socket_buffer_destroy (socketbuffer, TRUE, NULL); break; } return 0; } gnome-vfs-2.24.4/test/test-directory.c0000644000175000001440000001115711334251016014526 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-directory.c - Test program for directory reading in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include #include static gboolean measure_speed = 0; static GOptionEntry options[] = { { "measure-speed", 'm', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &measure_speed, "Measure speed without displaying anything", NULL }, { NULL } }; static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) { fprintf (stdout, "Error: %s\n", gnome_vfs_result_to_string (result)); exit (1); } } static const gchar * type_to_string (GnomeVFSFileType type) { switch (type) { case GNOME_VFS_FILE_TYPE_UNKNOWN: return "Unknown"; case GNOME_VFS_FILE_TYPE_REGULAR: return "Regular"; case GNOME_VFS_FILE_TYPE_DIRECTORY: return "Directory"; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: return "Symbolic Link"; case GNOME_VFS_FILE_TYPE_FIFO: return "FIFO"; case GNOME_VFS_FILE_TYPE_SOCKET: return "Socket"; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: return "Character device"; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: return "Block device"; default: return "???"; } } static void print_list (GList *list) { GnomeVFSFileInfo *info; GList *node; if (list == NULL) { printf (" (No files)\n"); return; } for (node = list; node != NULL; node = node->next) { const gchar *mime_type; info = node->data; mime_type = gnome_vfs_file_info_get_mime_type (info); if (mime_type == NULL) mime_type = "(Unknown)"; printf (" File `%s'%s%s%s (%s, %s), size %ld, mode %04o\n", info->name, GNOME_VFS_FILE_INFO_SYMLINK (info) ? " [link: " : "", GNOME_VFS_FILE_INFO_SYMLINK (info) ? info->symlink_name : "", GNOME_VFS_FILE_INFO_SYMLINK (info) ? " ]" : "", type_to_string (info->type), mime_type, (glong) info->size, info->permissions); } } int main (int argc, char **argv) { GList *list; GnomeVFSResult result; GTimer *timer; gchar *text_uri; GOptionContext *ctx = NULL; GError *error = NULL; ctx = g_option_context_new("test-directory"); g_option_context_add_main_entries(ctx, options, NULL); if (!g_option_context_parse(ctx, &argc, &argv, &error)) { g_printerr("main: %s\n", error->message); g_error_free(error); g_option_context_free(ctx); return 1; } g_option_context_free(ctx); if (argc != 2 || argv[1] == NULL) { g_printerr("Usage: %s [] \n", argv[0]); return 1; } text_uri = g_strdup(argv[1]); gnome_vfs_init (); printf ("Loading directory..."); fflush (stdout); if (measure_speed) { timer = g_timer_new (); g_timer_start (timer); } else { timer = NULL; } /* Load with without requesting any metadata. */ result = gnome_vfs_directory_list_load (&list, text_uri, (GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS)); if (result == GNOME_VFS_OK && measure_speed) { gdouble elapsed_seconds; guint num_entries; g_timer_stop (timer); elapsed_seconds = g_timer_elapsed (timer, NULL); num_entries = g_list_length (list); printf ("\n%.5f seconds for %d unsorted entries, %.5f entries/sec.\n", elapsed_seconds, num_entries, (double) num_entries / elapsed_seconds); } if (!measure_speed) { printf ("Ok\n"); show_result (result, "load_directory", text_uri); printf ("Listing for `%s':\n", text_uri); print_list (list); } printf ("Destroying.\n"); gnome_vfs_file_info_list_free (list); printf ("Done.\n"); g_free (text_uri); return 0; } gnome-vfs-2.24.4/test/test-mime.c0000644000175000001440000001022311334251016013442 00000000000000/* test-mime.c - Test for the mime type sniffing features of GNOME Virtual File System Library Copyright (C) 2000 Eazel The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Pavel Cisler */ #include #include #include #include #include #include #include #include #include #include #include static gboolean is_good_scheme_char (char c) { return g_ascii_isalnum (c) || c == '+' || c == '-' || c == '.'; } static gboolean is_uri (const char *str) { const char *p; if (g_path_is_absolute (str)) return FALSE; if (! g_ascii_isalpha (*str)) { return FALSE; } p = str + 1; while (is_good_scheme_char (*p)) { p++; } return *p == ':' && strchr (p, '/') != NULL; } int main (int argc, char **argv) { GnomeVFSURI *uri; gboolean magic_only; gboolean suffix_only; gboolean dump_table; gboolean speed_test; const char *result; const char *table_path; char *uri_string; char *curdir; char *path; struct stat tmp; GTimer *timer; int i; table_path = NULL; magic_only = FALSE; dump_table = FALSE; speed_test = FALSE; suffix_only = FALSE; if (!gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } if (argc == 1 || strcmp (argv[1], "--help") == 0) { fprintf (stderr, "Usage: %s [--magicOnly | --suffixOnly] [--dumpTable] " " [--loadTable ] fileToCheck1 [fileToCheck2 ...] \n", *argv); return 1; } ++argv; for (; *argv; argv++) { if (strcmp (*argv, "--magicOnly") == 0) { magic_only = TRUE; } else if (strcmp (*argv, "--suffixOnly") == 0) { suffix_only = TRUE; } else if (strcmp (*argv, "--dumpTable") == 0) { dump_table = TRUE; } else if (strcmp (*argv, "--speedTest") == 0) { speed_test = TRUE; } else if (strcmp (*argv, "--loadTable") == 0) { ++argv; if (!*argv) { fprintf (stderr, "Table path expected.\n"); return 1; } table_path = *argv; if (stat(table_path, &tmp) != 0) { fprintf (stderr, "Table path %s not found.\n", table_path); return 1; } } else { break; } } if (speed_test) { timer = g_timer_new (); g_timer_start (timer); for (i = 0; i < 100; i++) { gnome_vfs_mime_info_reload (); } fprintf (stderr, "Mime reload took %g(ms)\n", g_timer_elapsed (timer, NULL) * 10.0); } for (; *argv != NULL; argv++) { uri_string = g_strdup (*argv); if (is_uri (uri_string)) { uri = gnome_vfs_uri_new (*argv); } else { uri = NULL; } if (uri == NULL) { if (g_path_is_absolute (uri_string)) { path = uri_string; } else { curdir = g_get_current_dir (); path = g_build_filename (curdir,uri_string, NULL); g_free (uri_string); g_free (curdir); } uri_string = gnome_vfs_get_uri_from_local_path (path); g_free (path); uri = gnome_vfs_uri_new (uri_string); } if (uri == NULL) { printf ("%s is neither a full URI nor an absolute filename\n", *argv); continue; } if (magic_only) { result = gnome_vfs_get_mime_type_from_file_data (uri); } else if (suffix_only) { result = gnome_vfs_get_mime_type_from_uri (uri); } else { result = gnome_vfs_get_mime_type (uri_string); } printf ("looks like %s is %s\n", *argv, result); gnome_vfs_uri_unref (uri); } return 0; } gnome-vfs-2.24.4/test/test-shell.c0000644000175000001440000006357311334251016013642 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-shell.c - A small program to allow testing of a wide variety of gnome-vfs functionality Copyright (C) 2000 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Michael Meeks NB. This code leaks everywhere, don't loose hair. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef G_OS_WIN32 #define DIR_SEPARATORS "/\\" #else #define DIR_SEPARATORS "/" #endif #define TEST_DEBUG 0 static char delim[]=" "; static char **arg_data = NULL; static int arg_cur = 0; static char *cur_dir = NULL; static GHashTable *files = NULL; static FILE *vfserr = NULL; static gboolean show_if_error (GnomeVFSResult result, const char *what, const char *what2) { if (result != GNOME_VFS_OK) { fprintf (vfserr, "%s%s `%s'\n", what, what2, gnome_vfs_result_to_string (result)); return TRUE; } else return FALSE; } static void register_file (const char *str, GnomeVFSHandle *handle) { if (!str) fprintf (vfserr, "Need a valid name"); else g_hash_table_insert (files, g_strdup (str), handle); } static GnomeVFSHandle * lookup_file (const char *str) { GnomeVFSHandle *handle; if (!str) { fprintf (vfserr, "Invalid handle '%s'\n", str); return NULL; } handle = g_hash_table_lookup (files, str); if (!handle) fprintf (vfserr, "Can't find handle '%s'\n", str); return handle; } static void close_file (const char *str) { GnomeVFSResult result; gpointer hash_key, value; if (!str) fprintf (vfserr, "Can't close NULL handles\n"); else if (g_hash_table_lookup_extended (files, str, &hash_key, &value)) { g_hash_table_remove (files, str); result = gnome_vfs_close ((GnomeVFSHandle *)value); show_if_error (result, "closing ", (char *)hash_key); g_free (hash_key); } else fprintf (vfserr, "Unknown file handle '%s'\n", str); } static gboolean kill_file_cb (gpointer key, gpointer value, gpointer user_data) { GnomeVFSResult result; result = gnome_vfs_close (value); show_if_error (result, "closing ", key); g_free (key); return TRUE; } static void close_files (void) { g_hash_table_foreach_remove (files, kill_file_cb, NULL); g_hash_table_destroy (files); } static void do_ls (void) { GnomeVFSResult result; GList *list, *node; GnomeVFSFileInfo *info; const char *path; if (!arg_data [arg_cur]) path = cur_dir; else path = arg_data [arg_cur++]; result = gnome_vfs_directory_list_load (&list, path, GNOME_VFS_FILE_INFO_DEFAULT | GNOME_VFS_FILE_INFO_GET_MIME_TYPE); if (show_if_error (result, "open directory ", cur_dir)) return; for (node = list; node != NULL; node = node->next) { char prechar = '\0', postchar = '\0'; info = node->data; if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) { switch (info->type) { case GNOME_VFS_FILE_TYPE_DIRECTORY: prechar = '['; postchar = ']'; break; case GNOME_VFS_FILE_TYPE_UNKNOWN: prechar = '?'; break; case GNOME_VFS_FILE_TYPE_FIFO: prechar = '|'; break; case GNOME_VFS_FILE_TYPE_SOCKET: prechar = '-'; break; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: prechar = '@'; break; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: prechar = '#'; break; default: prechar = '\0'; break; } if (!postchar) postchar = prechar; } printf ("%c%s%c", prechar, info->name, postchar); if (strlen (info->name) < 40) { int i, pad; pad = 40 - strlen (info->name) - (prechar?1:0) - (postchar?1:0); for (i = 0; i < pad; i++) printf (" "); } if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) { long i = info->size; printf (" : %ld bytes", i); } if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE) { printf (", type '%s'", info->mime_type); } printf ("\n"); } gnome_vfs_file_info_list_free (list); } static void list_commands (void) { printf ("command can be one or all of:\n"); printf ("Main operations:\n"); printf (" * ls [opt_dir] list files\n"); printf (" * cd [dir] enter storage\n"); printf (" * mv move object\n"); printf (" * rm remove stream\n"); printf (" * mkdir make storage\n"); printf (" * rmdir remove storage\n"); printf (" * info,stat get information on object\n"); printf (" * cat,type dump text file to console\n"); printf (" * dump dump binary file to console\n"); printf (" * sync: for sinkers\n"); printf (" * ssl: displays ssl enabled state\n"); printf (" * findtrash: locates a trash directory for a URI\n"); printf (" * quit,exit,bye: exit\n"); printf ("File operations:\n"); printf (" * open : open a file\n"); printf (" * create : create a file\n"); printf (" * handleinfo : information from handle\n"); printf (" * close : close a file\n"); printf (" * read : read bytes from stream\n"); printf (" * seek : seek set position\n"); } static gboolean simple_regexp (const char *regexp, const char *fname) { int i, j; gboolean ret = TRUE; g_return_val_if_fail (fname != NULL, FALSE); g_return_val_if_fail (regexp != NULL, FALSE); for (i = j = 0; regexp [i] && fname [j]; j++, i++) { if (regexp [i] == '\\' && !(i > 0 && regexp [i - 1] == '\\')) { j--; continue; } if (regexp [i] == '.' && !(i > 0 && regexp [i - 1] == '\\')) continue; if (g_ascii_tolower (regexp [i]) != g_ascii_tolower (fname [j])) { ret = FALSE; break; } } if (regexp [i] && regexp [i] == '*') ret = TRUE; else if (!regexp [i] && fname [j]) ret = FALSE; else if (!fname [j] && regexp [i]) ret = FALSE; /* if (ret) printf ("'%s' matched '%s'\n", regexp, fname);*/ return ret; } static gboolean validate_path (const char *path) { GnomeVFSResult result; GList *list; result = gnome_vfs_directory_list_load ( &list, path, GNOME_VFS_FILE_INFO_DEFAULT); if (show_if_error (result, "open directory ", path)) { return FALSE; } gnome_vfs_file_info_list_free (list); return TRUE; } static char * get_regexp_name (const char *regexp, const char *path, gboolean dir) { GnomeVFSResult result; GList *list, *node; GnomeVFSFileInfo *info; char *res = NULL; result = gnome_vfs_directory_list_load ( &list, path, GNOME_VFS_FILE_INFO_DEFAULT); if (show_if_error (result, "open directory ", path)) return NULL; for (node = list; node != NULL; node = node->next) { info = node->data; if (simple_regexp (regexp, info->name)) { if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) { if ((dir && info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) || (!dir && info->type != GNOME_VFS_FILE_TYPE_DIRECTORY)) { res = g_strdup (info->name); break; } } else { fprintf (vfserr, "Can't cope with no type data"); res = g_strdup (info->name); break; } } } gnome_vfs_file_info_list_free (list); return res; } static void do_cd (void) { char *p; p = arg_data [arg_cur++]; if (!p) { fprintf (vfserr, "Takes a directory argument\n"); return; } if (!g_ascii_strcasecmp (p, "..")) { guint lp; char **tmp; GString *newp = g_string_new (""); const char *ptr = g_path_skip_root (cur_dir); g_string_append_len (newp, cur_dir, ptr - cur_dir); tmp = g_strsplit_set (ptr, DIR_SEPARATORS, -1); lp = 0; if (!tmp [lp]) return; while (tmp [lp + 1] && strlen (tmp [lp + 1]) > 0) { g_string_append_printf (newp, "%s" G_DIR_SEPARATOR_S, tmp [lp]); lp++; } cur_dir = newp->str; g_string_free (newp, FALSE); } else if (!g_ascii_strcasecmp (p, ".")) { } else { char *newpath; if (g_path_is_absolute (p)) { if (!G_IS_DIR_SEPARATOR (p [strlen (p) - 1])) newpath = g_strconcat (p, G_DIR_SEPARATOR_S, NULL); else newpath = g_strdup (p); } else { char *ptr; ptr = get_regexp_name (p, cur_dir, TRUE); if (!ptr) { fprintf (vfserr, "Can't find '%s'\n", p); return; } newpath = g_strconcat (cur_dir, ptr, G_DIR_SEPARATOR_S, NULL); } if (validate_path (newpath)) { cur_dir = newpath; } else fprintf (vfserr, "Invalid path %s\n", newpath); } } static char * get_fname (void) { char *fname, *reg_name, *f; if (!arg_data [arg_cur]) return NULL; reg_name = arg_data [arg_cur++]; fname = get_regexp_name (reg_name, cur_dir, FALSE); if (!fname) fname = reg_name; if (g_path_is_absolute (fname)) f = g_strdup (fname); else if (cur_dir) f = g_build_filename (cur_dir, fname, NULL); else f = g_strdup (fname); return f; } static void do_cat (void) { char *from; GnomeVFSHandle *from_handle; GnomeVFSResult result; from = get_fname (); result = gnome_vfs_open (&from_handle, from, GNOME_VFS_OPEN_READ); if (show_if_error (result, "open ", from)) return; while (1) { GnomeVFSFileSize bytes_read; guint8 data [1025]; result = gnome_vfs_read (from_handle, data, 1024, &bytes_read); if (show_if_error (result, "read ", from)) return; if (bytes_read == 0) break; if (bytes_read > 0 && bytes_read <= 1024) data [bytes_read] = '\0'; else { data [1024] = '\0'; g_warning ("Wierd error from vfs_read"); } fprintf (stdout, "%s", data); } result = gnome_vfs_close (from_handle); if (show_if_error (result, "close ", from)) return; fprintf (stdout, "\n"); } static void do_rm (void) { char *fname; GnomeVFSResult result; fname = get_fname (); result = gnome_vfs_unlink (fname); if (show_if_error (result, "unlink ", fname)) return; } static void do_mkdir (void) { char *fname; GnomeVFSResult result; fname = get_fname (); result = gnome_vfs_make_directory (fname, GNOME_VFS_PERM_USER_ALL); if (show_if_error (result, "mkdir ", fname)) return; } static void do_rmdir (void) { char *fname; GnomeVFSResult result; fname = get_fname (); result = gnome_vfs_remove_directory (fname); if (show_if_error (result, "rmdir ", fname)) return; } static void do_mv (void) { char *from, *to; char *msg; GnomeVFSResult result; from = get_fname (); to = get_fname (); if (!from || !to) { fprintf (vfserr, "mv \n"); return; } result = gnome_vfs_move (from, to, FALSE); msg = g_strdup_printf ("%s to %s", from, to); show_if_error (result, "move ", msg); g_free (msg); } static void do_findtrash (void) { char *from; char *uri_as_string; GnomeVFSResult result; GnomeVFSURI *from_uri; GnomeVFSURI *result_vfs_uri; from = get_fname (); from_uri = gnome_vfs_uri_new (from); result = gnome_vfs_find_directory (from_uri, GNOME_VFS_DIRECTORY_KIND_TRASH, &result_vfs_uri, TRUE, TRUE, 0777); if (result != GNOME_VFS_OK) { fprintf (stdout, "couldn't find or create trash there, error code %d", result); } else { uri_as_string = gnome_vfs_uri_to_string (result_vfs_uri, GNOME_VFS_URI_HIDE_NONE); fprintf (stdout, "trash found or created here: %s", uri_as_string); g_free (uri_as_string); } gnome_vfs_uri_unref (from_uri); gnome_vfs_uri_unref (result_vfs_uri); } static void do_ssl (void) { if (gnome_vfs_ssl_enabled ()) fprintf (stdout, "SSL enabled\n"); else fprintf (stdout, "SSL disabled\n"); } static void print_info (GnomeVFSFileInfo *info) { const char *mime_type; struct tm *loctime; fprintf (stdout, "Name: '%s'\n", info->name); if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) { fprintf (stdout, "Type: "); switch (info->type) { case GNOME_VFS_FILE_TYPE_UNKNOWN: fprintf (stdout, "unknown"); break; case GNOME_VFS_FILE_TYPE_REGULAR: fprintf (stdout, "regular"); break; case GNOME_VFS_FILE_TYPE_DIRECTORY: fprintf (stdout, "directory"); break; case GNOME_VFS_FILE_TYPE_FIFO: fprintf (stdout, "fifo"); break; case GNOME_VFS_FILE_TYPE_SOCKET: fprintf (stdout, "socket"); break; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: fprintf (stdout, "char"); break; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: fprintf (stdout, "block"); break; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: fprintf (stdout, "symlink\n"); fprintf (stdout, "symlink points to: %s", info->symlink_name); break; default: fprintf (stdout, "Error; invalid value"); break; } } else fprintf (stdout, "Type invalid"); fprintf (stdout, "\n"); if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) { long i = info->size; fprintf (stdout, "Size: %ld bytes", i); } else { fprintf (stdout, "Size invalid"); } fprintf (stdout, "\n"); mime_type = gnome_vfs_file_info_get_mime_type (info); fprintf (stdout, "Mime Type: %s \n", mime_type); loctime = localtime(&info->atime); fprintf (stdout, "Last Accessed: %s", asctime(loctime)); loctime = localtime(&info->mtime); fprintf (stdout, "Last Modified: %s", asctime(loctime)); loctime = localtime(&info->ctime); fprintf (stdout, "Last Changed: %s", asctime(loctime)); fprintf (stdout, "uid: %d\n", info->uid); fprintf (stdout, "gid: %d\n", info->gid); fprintf (stdout, "\n"); /* FIXME bugzilla.eazel.com 2800: hack here; should dump them all */ } static void do_info (void) { char *from; GnomeVFSResult result; GnomeVFSFileInfo *info; from = get_fname (); info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info ( from, info, GNOME_VFS_FILE_INFO_GET_MIME_TYPE); if (show_if_error (result, "getting info on: ", from)) return; print_info (info); gnome_vfs_file_info_unref (info); } static void do_cp (void) { char *from = NULL; char *to = NULL; GnomeVFSHandle *from_handle = NULL; GnomeVFSHandle *to_handle = NULL; GnomeVFSResult result; from = get_fname (); if (from) to = get_fname (); else { fprintf (vfserr, "cp \n"); goto out; } result = gnome_vfs_open (&from_handle, from, GNOME_VFS_OPEN_READ); if (show_if_error (result, "open ", from)) goto out; result = gnome_vfs_open (&to_handle, to, GNOME_VFS_OPEN_WRITE); if (result == GNOME_VFS_ERROR_NOT_FOUND) result = gnome_vfs_create (&to_handle, to, GNOME_VFS_OPEN_WRITE, FALSE, GNOME_VFS_PERM_USER_ALL); if (show_if_error (result, "open ", to)) goto out; while (1) { GnomeVFSFileSize bytes_read; GnomeVFSFileSize bytes_written; guint8 data [1024]; result = gnome_vfs_read (from_handle, data, 1024, &bytes_read); if (show_if_error (result, "read ", from)) goto out; if (bytes_read == 0) break; result = gnome_vfs_write (to_handle, data, bytes_read, &bytes_written); if (show_if_error (result, "write ", to)) goto out; if (bytes_read != bytes_written) fprintf (vfserr, "Didn't write it all"); } out: g_free (from); g_free (to); if (to_handle) { result = gnome_vfs_close (to_handle); if (show_if_error (result, "close ", to)) /* Nothing */; } if (from_handle) { result = gnome_vfs_close (from_handle); if (show_if_error (result, "close ", from)) /* Nothing */; } } static void ms_ole_dump (guint8 const *ptr, guint32 len, guint32 offset) { guint32 lp,lp2; guint32 off; for (lp = 0;lp<(len+15)/16;lp++) { printf ("%8x | ", lp*16 + offset); for (lp2=0;lp2<16;lp2++) { off = lp2 + (lp<<4); off'!'&&ptr[off]<127?ptr[off]:'.'):'*'); } printf ("\n"); } } static void do_dump (void) { char *from; GnomeVFSHandle *from_handle; GnomeVFSResult result; guint32 offset; from = get_fname (); result = gnome_vfs_open (&from_handle, from, GNOME_VFS_OPEN_READ); if (show_if_error (result, "open ", from)) return; for (offset = 0; 1; ) { GnomeVFSFileSize bytes_read; guint8 data [1024]; result = gnome_vfs_read (from_handle, data, 1024, &bytes_read); if (show_if_error (result, "read ", from)) return; if (bytes_read == 0) break; ms_ole_dump (data, bytes_read, offset); offset += bytes_read; } result = gnome_vfs_close (from_handle); if (show_if_error (result, "close ", from)) return; } /* * --------------------------------------------------------------------- */ static char * get_handle (void) { if (!arg_data [arg_cur]) return NULL; return arg_data [arg_cur++]; } static int get_int (void) { if (!arg_data [arg_cur]) return 0; return atoi (arg_data [arg_cur++]); } static void do_open (void) { char *from, *handle; GnomeVFSHandle *from_handle; GnomeVFSResult result; handle = get_handle (); from = get_fname (); if (!handle || !from) { fprintf (vfserr, "open \n"); return; } result = gnome_vfs_open (&from_handle, from, GNOME_VFS_OPEN_READ); if (show_if_error (result, "open ", from)) return; register_file (handle, from_handle); } static void do_create (void) { char *from, *handle; GnomeVFSHandle *from_handle; GnomeVFSResult result; handle = get_handle (); from = get_fname (); if (!handle || !from) { fprintf (vfserr, "create \n"); return; } result = gnome_vfs_create (&from_handle, from, GNOME_VFS_OPEN_READ, FALSE, GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_USER_WRITE); if (show_if_error (result, "create ", from)) return; register_file (handle, from_handle); } static void do_read (void) { char *handle; int length; GnomeVFSHandle *from_handle; GnomeVFSResult result; GnomeVFSFileSize bytes_read; guint8 *data; handle = get_handle (); length = get_int (); if (length < 0) { fprintf (vfserr, "Can't read %d bytes\n", length); return; } from_handle = lookup_file (handle); if (!from_handle) return; data = g_malloc (length); result = gnome_vfs_read (from_handle, data, length, &bytes_read); if (show_if_error (result, "read ", handle)) return; ms_ole_dump (data, bytes_read, 0); } static void do_seek (void) { char *handle; int offset; GnomeVFSHandle *from_handle; GnomeVFSResult result; handle = get_handle (); offset = get_int (); if (offset < 0) { fprintf (vfserr, "Can't seek to %d bytes offset\n", offset); return; } from_handle = lookup_file (handle); if (!from_handle) return; result = gnome_vfs_seek (from_handle, GNOME_VFS_SEEK_START, offset); if (show_if_error (result, "seek ", handle)) return; } static void do_close (void) { close_file (get_handle ()); } static void do_handleinfo (void) { const char *handlename = get_handle (); GnomeVFSResult result; GnomeVFSHandle *handle = lookup_file (handlename); GnomeVFSFileInfo *info; if (!handle) return; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_from_handle (handle, info, GNOME_VFS_FILE_INFO_GET_MIME_TYPE); if (show_if_error (result, "getting info from handle: ", handlename)) return; print_info (info); gnome_vfs_file_info_unref (info); } /* * --------------------------------------------------------------------- */ static GMainLoop *main_loop = NULL; static gboolean interactive = FALSE; static gboolean noninteractive = FALSE; static GOptionEntry options[] = { { "interactive", 'i', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, "Allow interactive input", NULL }, { "noninteractive", 'n', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, "Disallow interactive input", NULL }, { NULL } }; static gboolean callback (GIOChannel *source, GIOCondition condition, gpointer data) { char *buffer = data; char c; gsize len; int k; if (g_io_channel_read_chars (source, &c, 1, &len, NULL) != G_IO_STATUS_NORMAL) return TRUE; k = strlen (buffer); if (k + 1 < 1024) { buffer[k++] = c; buffer[k++] = '\0'; } if (c == '\n' && main_loop != NULL) g_main_loop_quit (main_loop); return TRUE; } static char * get_input_string (const char *prompt) { char buffer[512]; printf ("%s", prompt); fgets (buffer, 511, stdin); if (strchr (buffer, '\n')) *strchr (buffer, '\n') = '\0'; return g_strndup (buffer, 512); } static void authentication_callback (gconstpointer in, gsize in_size, gpointer out, gsize out_size, gpointer user_data) { GnomeVFSModuleCallbackAuthenticationIn *in_real; GnomeVFSModuleCallbackAuthenticationOut *out_real; g_return_if_fail (sizeof (GnomeVFSModuleCallbackAuthenticationIn) == in_size && sizeof (GnomeVFSModuleCallbackAuthenticationOut) == out_size); g_return_if_fail (in != NULL); g_return_if_fail (out != NULL); in_real = (GnomeVFSModuleCallbackAuthenticationIn *)in; out_real = (GnomeVFSModuleCallbackAuthenticationOut *)out; printf ("Authenticate for uri: %s realm: %s\n", in_real->uri, in_real->realm); out_real->username = get_input_string ("Username:\n"); out_real->password = get_input_string ("Password:\n"); } int main (int argc, char **argv) { int exit = 0; char *buffer = g_new (char, 1024) ; GIOChannel *ioc; guint watch_id = 0; GOptionContext *ctx = NULL; GError *error = NULL; /* default to interactive on a terminal */ interactive = isatty (0); ctx = g_option_context_new("test-vfs"); g_option_context_add_main_entries(ctx, options, NULL); if (!g_option_context_parse(ctx, &argc, &argv, &error)) { g_printerr("main: %s\n", error->message); g_error_free(error); g_option_context_free(ctx); return 1; } g_option_context_free(ctx); files = g_hash_table_new (g_str_hash, g_str_equal); if (noninteractive) interactive = FALSE; if (interactive) vfserr = stderr; else vfserr = stdout; if (!gnome_vfs_init ()) { fprintf (vfserr, "Cannot initialize gnome-vfs.\n"); return 1; } gnome_vfs_module_callback_push (GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION, authentication_callback, NULL, NULL); if (argc == 1) cur_dir = g_get_current_dir (); else cur_dir = g_strdup(argv[1]); if (cur_dir && !G_IS_DIR_SEPARATOR (cur_dir [strlen (cur_dir) - 1])) cur_dir = g_strconcat (cur_dir, G_DIR_SEPARATOR_S, NULL); if (interactive == TRUE) { main_loop = g_main_loop_new (NULL, TRUE); ioc = g_io_channel_unix_new (0 /* stdin */); g_io_channel_set_encoding (ioc, NULL, NULL); g_io_channel_set_buffered (ioc, FALSE); watch_id = g_io_add_watch (ioc, G_IO_IN | G_IO_HUP | G_IO_ERR, callback, buffer); g_io_channel_unref (ioc); } while (!exit) { char *ptr; if (interactive) { fprintf (stdout,"\n%s > ", cur_dir); fflush (stdout); strcpy (buffer, ""); g_main_loop_run (main_loop); } else { /* In non-interactive mode we just do this evil * thingie */ buffer[0] = '\0'; fgets (buffer, 1023, stdin); if (!buffer [0]) { exit = 1; continue; } } if (!buffer || buffer [0] == '#') continue; arg_data = g_strsplit (g_strchomp (buffer), delim, -1); arg_cur = 0; if ((!arg_data || !arg_data[0]) && interactive) continue; if (!interactive) printf ("Command : '%s'\n", arg_data [0]); ptr = arg_data[arg_cur++]; if (!ptr) continue; if (g_ascii_strcasecmp (ptr, "ls") == 0) do_ls (); else if (g_ascii_strcasecmp (ptr, "cd") == 0) do_cd (); else if (g_ascii_strcasecmp (ptr, "dump") == 0) do_dump (); else if (g_ascii_strcasecmp (ptr, "type") == 0 || g_ascii_strcasecmp (ptr, "cat") == 0) do_cat (); else if (g_ascii_strcasecmp (ptr, "cp") == 0) do_cp (); else if (g_ascii_strcasecmp (ptr, "rm") == 0) do_rm (); else if (g_ascii_strcasecmp (ptr, "mkdir") == 0) do_mkdir (); else if (g_ascii_strcasecmp (ptr, "rmdir") == 0) do_rmdir (); else if (g_ascii_strcasecmp (ptr, "mv") == 0) do_mv (); else if (g_ascii_strcasecmp (ptr, "info") == 0 || g_ascii_strcasecmp (ptr, "stat") == 0) do_info (); else if (g_ascii_strcasecmp (ptr, "findtrash") == 0) do_findtrash (); else if (g_ascii_strcasecmp (ptr, "ssl") == 0) do_ssl (); else if (g_ascii_strcasecmp (ptr, "sync") == 0) fprintf (vfserr, "a shell is like a boat, it lists or syncs (RMS)\n"); else if (g_ascii_strcasecmp (ptr,"help") == 0 || g_ascii_strcasecmp (ptr,"?") == 0 || g_ascii_strcasecmp (ptr,"info") == 0 || g_ascii_strcasecmp (ptr,"man") == 0) list_commands (); else if (g_ascii_strcasecmp (ptr,"exit") == 0 || g_ascii_strcasecmp (ptr,"quit") == 0 || g_ascii_strcasecmp (ptr,"q") == 0 || g_ascii_strcasecmp (ptr,"bye") == 0) exit = 1; /* File ops */ else if (g_ascii_strcasecmp (ptr, "open") == 0) do_open (); else if (g_ascii_strcasecmp (ptr, "create") == 0) do_create (); else if (g_ascii_strcasecmp (ptr, "close") == 0) do_close (); else if (g_ascii_strcasecmp (ptr, "handleinfo") == 0) do_handleinfo (); else if (g_ascii_strcasecmp (ptr, "read") == 0) do_read (); else if (g_ascii_strcasecmp (ptr, "seek") == 0) do_seek (); else fprintf (vfserr, "Unknown command '%s'", ptr); g_strfreev (arg_data); arg_data = NULL; } if (interactive) { g_source_remove (watch_id); g_main_loop_unref (main_loop); main_loop = NULL; } g_free (buffer); g_free (cur_dir); close_files (); return 0; } gnome-vfs-2.24.4/test/test-dns-sd.c0000644000175000001440000001261511334251016013712 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-dns-ds.c - Test program for the GNOME Virtual File System. Copyright (C) 2004 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include static GMainLoop *main_loop; static void print_browse_result (GnomeVFSDNSSDBrowseHandle *handle, GnomeVFSDNSSDServiceStatus status, const GnomeVFSDNSSDService *service, gpointer callback_data) { g_print ("status: %s, service: '%s', type: %s, domain: %s\n", status == GNOME_VFS_DNS_SD_SERVICE_ADDED? "added" : "removed", service->name, service->type, service->domain); } static void print_resolve_result (GnomeVFSDNSSDResolveHandle *handle, GnomeVFSResult result, const GnomeVFSDNSSDService *service, const char *host, int port, const GHashTable *text, int text_raw_len, const char *text_raw, gpointer callback_data) { if (result == GNOME_VFS_OK) g_print ("service: '%s', type: %s, domain: %s, host: %s, port: %d\n", service->name, service->type, service->domain, host, port); else g_print ("error: %d\n", result); g_main_loop_quit (main_loop); } int main (int argc, char **argv) { int i; GnomeVFSResult res; int n_services; GnomeVFSDNSSDService *services; GnomeVFSDNSSDBrowseHandle *browse_handle; GnomeVFSDNSSDResolveHandle *resolve_handle; char *domain, *type; int port, text_len; char *host; char *text; GList *list, *l, *domains; GHashTable *text_hash; if (argc < 3) { domain = "dns-sd.org"; type = "_ftp._tcp"; } else { domain = argv[1]; type = argv[2]; } fprintf (stderr, "Initializing gnome-vfs...\n"); gnome_vfs_init (); fprintf (stderr, "Getting default browse domains:"); domains = gnome_vfs_get_default_browse_domains (); for (l = domains; l != NULL; l = l->next) { g_print ("%s,", (char *)l->data); g_free (l->data); } g_print ("\n"); g_list_free (domains); fprintf (stderr, "Trying sync list\n"); res = gnome_vfs_dns_sd_list_browse_domains_sync ("dns-sd.org", 2000, &list); if (res == GNOME_VFS_OK) { for (l = list; l != NULL; l = l->next) { g_print ("search domain: %s\n", (char *)l->data); g_free (l->data); } g_list_free (list); } else { fprintf (stderr, "list error %d\n", res); } fprintf (stderr, "Trying sync resolve\n"); res = gnome_vfs_dns_sd_resolve_sync ( "Apple QuickTime Files", "_ftp._tcp", "dns-sd.org", 4000, &host, &port, &text_hash, &text_len, &text); if (res == GNOME_VFS_OK) { g_print ("host: %s, port: %d, text: %.*s\n", host, port, text_len, text); } else { fprintf (stderr, "resolve error %d\n", res); } fprintf (stderr, "Trying local resolve\n"); res = gnome_vfs_dns_sd_resolve_sync ("Alex other test", "_ftp._tcp", "local", 4000, &host, &port, NULL, &text_len, &text); if (res == GNOME_VFS_OK) { g_print ("host: %s, port: %d, text: %.*s\n", host, port, text_len, text); } else { fprintf (stderr, "resolve error %d\n", res); } fprintf (stderr, "Trying sync browsing\n"); res = gnome_vfs_dns_sd_browse_sync (domain, type, 4000, &n_services, &services); if (res == GNOME_VFS_OK) { fprintf (stderr, "Number of hits: %d\n", n_services); for (i = 0; i < n_services; i++) { fprintf (stderr, "service name: '%s' type: %s, domain: %s\n", services[i].name, services[i].type, services[i].domain); } } else { fprintf (stderr, "error %d\n", res); } main_loop = g_main_loop_new (NULL, TRUE); fprintf (stderr, "Trying async resolve\n"); res = gnome_vfs_dns_sd_resolve (&resolve_handle, "Apple QuickTime Files", "_ftp._tcp", "dns-sd.org", 4000, print_resolve_result, NULL, NULL); fprintf (stderr, "Main loop running.\n"); g_main_loop_run (main_loop); fprintf (stderr, "Trying local async resolve\n"); res = gnome_vfs_dns_sd_resolve (&resolve_handle, "Alex other test", "_ftp._tcp", "local", 4000, print_resolve_result, NULL, NULL); fprintf (stderr, "Main loop running.\n"); g_main_loop_run (main_loop); fprintf (stderr, "Trying async browsing (won't terminate)\n"); res = gnome_vfs_dns_sd_browse (&browse_handle, domain, type, print_browse_result, NULL, NULL); fprintf (stderr, "Main loop running.\n"); g_main_loop_run (main_loop); fprintf (stderr, "Main loop finished.\n"); g_main_loop_unref (main_loop); fprintf (stderr, "All done\n"); gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/test/test-symlinks.c0000644000175000001440000002142611334251016014373 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-symlinks.c: verifies that symlinks are being created properly Copyright (C) 2000 Eazel The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Seth Nickell */ #include #include #include #include #include #include #include static GMainLoop *main_loop; typedef struct { GnomeVFSResult expected_result; const char *uri; const char *target_uri; const char *target_reference; } CallbackData; static int deal_with_result (GnomeVFSResult result, GnomeVFSResult expected_result, const char *uri, const char *target_uri, const char *target_reference, gboolean unlink) { char read_buffer[1024]; const char *write_buffer = "this is test data...we should read the same thing"; GnomeVFSHandle *handle; GnomeVFSFileSize bytes_written, temp; GnomeVFSFileInfo info_uri = {NULL}; GnomeVFSFileInfo info_target = {NULL}; int return_value = 1; const gchar *result_string; GnomeVFSResult error; GnomeVFSURI *real_uri, *real_uri_target; GnomeVFSFileInfo *info; real_uri = gnome_vfs_uri_new (uri); real_uri_target = gnome_vfs_uri_new (target_uri); if (result != expected_result) { result_string = gnome_vfs_result_to_string (result); printf ("creating a link from %s to %s returned %s instead of %s.\n", uri, target_reference, result_string, gnome_vfs_result_to_string (expected_result)); return_value = 0; } else if (result == GNOME_VFS_OK) { info = gnome_vfs_file_info_new(); error = gnome_vfs_get_file_info_uri (real_uri, info, GNOME_VFS_FILE_INFO_DEFAULT); if ((error != GNOME_VFS_OK) || (info->type != GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK)) { printf ("Symlink problem: gnome_vfs_file_info returns wrong for link %s\n", uri); } else { /* our link seems to have been created correctly - lets see if its real */ error = gnome_vfs_open_uri (&handle, real_uri_target, GNOME_VFS_OPEN_WRITE); if (error == GNOME_VFS_ERROR_NOT_FOUND) error = gnome_vfs_create_uri (&handle, real_uri_target, GNOME_VFS_OPEN_WRITE, 0, GNOME_VFS_PERM_USER_ALL); if (error == GNOME_VFS_OK) { /* write stuff to our link location */ error = gnome_vfs_write (handle, write_buffer, strlen (write_buffer) + 1, &bytes_written); error = gnome_vfs_close (handle); error = gnome_vfs_open_uri (&handle, real_uri, GNOME_VFS_OPEN_READ); if (error == GNOME_VFS_OK) { error = gnome_vfs_read (handle, read_buffer, bytes_written, &temp); read_buffer[temp] = 0; error = gnome_vfs_close (handle); if (strcmp (read_buffer, write_buffer) != 0) { printf ("Symlink problem: value written is not the same as the value read!\n"); printf ("Written to %s: #%s# \nRead from link %s: #%s#\n", target_uri, write_buffer, uri, read_buffer); return_value = 0; } } } gnome_vfs_get_file_info_uri (real_uri, &info_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS); gnome_vfs_get_file_info_uri (real_uri_target, &info_target, GNOME_VFS_FILE_INFO_FOLLOW_LINKS); if (info_uri.inode != info_target.inode) { printf ("Symlink problem: link following is not working\n"); printf ("File: %s Link: %s\n", target_uri, uri); } gnome_vfs_file_info_clear (&info_uri); gnome_vfs_get_file_info_uri (real_uri, &info_uri, GNOME_VFS_FILE_INFO_DEFAULT); gnome_vfs_file_info_clear (&info_target); gnome_vfs_get_file_info_uri (real_uri_target, &info_target, GNOME_VFS_FILE_INFO_DEFAULT); if (info_uri.inode == info_target.inode) { printf ("Symlink problem: link following is happening when it shouldn't be.\n"); printf ("File: %s Link: %s\n", target_uri, uri); } gnome_vfs_file_info_clear (&info_uri); gnome_vfs_file_info_clear (&info_target); } gnome_vfs_file_info_unref (info); if (unlink) { gnome_vfs_unlink_from_uri (real_uri_target); error = gnome_vfs_unlink_from_uri (real_uri); if (error != GNOME_VFS_OK) { printf ("Problem unlinking URI %s", uri); } } } gnome_vfs_uri_unref (real_uri); gnome_vfs_uri_unref (real_uri_target); return return_value; } static void create_link_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { const char *uri, *target_uri, *target_reference; GnomeVFSResult expected_result; CallbackData *info; info = (CallbackData*) callback_data; uri = info->uri; target_uri = info->target_uri; expected_result = info->expected_result; target_reference = info->target_reference; deal_with_result (result, expected_result, uri, target_uri, target_reference, TRUE); g_free (callback_data); g_main_loop_quit (main_loop); } static int make_link (const char *uri, const char *target_reference, const char *target_uri, GnomeVFSResult expected_result, gboolean unlink) { GnomeVFSURI *real_uri, *real_uri_target; GnomeVFSResult result; int return_value = 1; real_uri = gnome_vfs_uri_new (uri); real_uri_target = gnome_vfs_uri_new (target_uri); result = gnome_vfs_create_symbolic_link (real_uri, target_reference); return_value = deal_with_result(result, expected_result, uri, target_uri, target_reference, unlink); gnome_vfs_uri_unref (real_uri); gnome_vfs_uri_unref (real_uri_target); return return_value; } static void make_link_async (const char *uri, const char *target_reference, const char *target_uri, GnomeVFSResult expected_result) { CallbackData *info; GnomeVFSAsyncHandle *handle; info = g_malloc (sizeof (CallbackData)); info->uri = uri; info->target_uri = target_uri; info->expected_result = expected_result; info->target_reference = target_reference; gnome_vfs_async_create_symbolic_link (&handle, gnome_vfs_uri_new(uri), target_reference, 0, create_link_callback, info); } static void check_broken_links (const char *uri) { GnomeVFSHandle *handle; GnomeVFSResult error; GnomeVFSURI *real_uri, *real_uri_target; real_uri = gnome_vfs_uri_new (uri); real_uri_target = gnome_vfs_uri_new ("file:///tmp/deadlink"); gnome_vfs_unlink_from_uri (real_uri_target); gnome_vfs_create_symbolic_link (real_uri, "deadlink"); error = gnome_vfs_open_uri (&handle, real_uri, GNOME_VFS_OPEN_READ); if (error != GNOME_VFS_ERROR_NOT_FOUND) { printf ("GNOME_VFS_BROKEN_SYMLINK not returned open attempting to open a broken symlink.\n"); printf ("Value returned: %d\n", error); } gnome_vfs_unlink_from_uri (real_uri); gnome_vfs_unlink_from_uri (real_uri_target); gnome_vfs_uri_unref (real_uri); gnome_vfs_uri_unref (real_uri_target); } int main (int argc, const char **argv) { GnomeVFSURI *directory, *file_to_delete; if (argc != 2) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } gnome_vfs_init (); directory = gnome_vfs_uri_new ("file:///tmp/tmp"); gnome_vfs_make_directory_for_uri (directory, GNOME_VFS_PERM_USER_ALL); make_link ("file:///tmp/link_to_ditz", "file:///tmp/ditz", "file:///tmp/ditz", GNOME_VFS_OK, TRUE); make_link ("file:///tmp/link_to_ditz_relative", "ditz", "file:///tmp/ditz", GNOME_VFS_OK, TRUE); make_link ("file:///tmp/tmp/link_to_ditz", "../ditz", "file:///tmp/ditz", GNOME_VFS_OK, FALSE); make_link ("file:///tmp/link_to_link", "tmp/link_to_ditz", "file:///tmp/tmp/link_to_ditz", GNOME_VFS_OK, TRUE); gnome_vfs_remove_directory_from_uri (directory); gnome_vfs_uri_unref (directory); file_to_delete = gnome_vfs_uri_new ("file:///tmp/ditz"); gnome_vfs_unlink_from_uri (file_to_delete); gnome_vfs_uri_unref (file_to_delete); check_broken_links("file:///tmp/link"); make_link ("file:///tmp/link_to_ditz_offfs", "http://www.a.com/ditz", "http://www.a.com/ditz", GNOME_VFS_ERROR_NOT_SUPPORTED, TRUE); make_link ("http://www.eazel.com/link_to_ditz", "file:///tmp/ditz", "file:///tmp/ditz", GNOME_VFS_ERROR_NOT_SUPPORTED, TRUE); make_link ("http://www.a.com/link_to_ditz_relative", "ditz", "http://www.a.com/ditz", GNOME_VFS_ERROR_NOT_SUPPORTED, TRUE); make_link_async ("file:///tmp/async_link", "file:///tmp/link", "file:///tmp/link", GNOME_VFS_OK); main_loop = g_main_loop_new (NULL, TRUE); g_main_loop_run (main_loop); g_main_loop_unref (main_loop); return 0; } gnome-vfs-2.24.4/test/test-parse-ls-lga.c0000644000175000001440000000523611334251016015012 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-parse-ls-lga.c - Test program for the GNOME Virtual File System. Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #include /* From modules/smb-methdo.c */ static gboolean string_compare (const char *a, const char *b) { if (a != NULL && b != NULL) { return strcmp (a, b) == 0; } else { return a == b; } } typedef struct { char *line; int ret; char *filename; char *linkname; } Test; static Test tests[] = { /* Microsoft FTP Service */ {"dr-xr-xr-x 1 owner group 0 Dec 4 2004 bla", 1, "bla", NULL}, /* vsFTPd 1.2.2 */ {"-rw-r--r-- 1 1113 0 1037 Aug 22 2001 welcome.msg", 1, "welcome.msg", NULL}, {"lrwxrwxrwx 1 0 0 19 Jul 30 2004 GNOME -> ../mirror/gnome.org", 1, "GNOME", "../mirror/gnome.org"}, /* vsFTPd 2.0.1 */ {"-rw-r--r-- 1 ftp ftp 28664404 Feb 13 00:22 ls-lR.gz", 1, "ls-lR.gz", NULL}, {"drwxr-xr-x 2 ftp ftp 48 Feb 13 12:47 2099", 1, "2099", NULL}, {NULL, -1, NULL, NULL} }; int main (int argc, char **argv) { Test *iter; gboolean one_test_failed; one_test_failed = FALSE; for (iter = tests; iter->line; iter++) { int ret; char *filename, *linkname; struct stat s; ret = gnome_vfs_parse_ls_lga (iter->line, &s, &filename, &linkname); if (ret != iter->ret || ! string_compare (iter->filename, filename) || ! string_compare (iter->linkname, linkname)) { one_test_failed = TRUE; g_critical ("parsing %s FAILED\n", iter->line); g_print ("\t%s,%s\n\t%s,%s\n", filename, iter->filename, linkname, iter->linkname); } } return one_test_failed ? EXIT_FAILURE : EXIT_SUCCESS; } gnome-vfs-2.24.4/test/test-seek.c0000644000175000001440000001401211334251016013442 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-seek.c - Test for the seek emulation functionality of the GNOME Virtual File System library. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Michael Meeks */ #include #include #include #include #include #include #include static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } static gboolean show_if_error (GnomeVFSResult result, const gchar *what) { if (result != GNOME_VFS_OK) { fprintf (stderr, "%s: `%s'\n", what, gnome_vfs_result_to_string (result)); return TRUE; } else return FALSE; } static const char * translate_vfs_seek_pos (GnomeVFSSeekPosition whence, int *unix_whence) { const char *txt; int ref_whence; switch (whence) { case GNOME_VFS_SEEK_START: txt = "seek_start"; ref_whence = SEEK_SET; break; case GNOME_VFS_SEEK_CURRENT: txt = "seek_current"; ref_whence = SEEK_CUR; break; case GNOME_VFS_SEEK_END: txt = "seek_end"; ref_whence = SEEK_END; break; default: txt = "unknown seek type"; ref_whence = SEEK_SET; g_warning ("Unknown seek type"); } if (unix_whence) *unix_whence = ref_whence; return txt; } static gboolean seek_test_chunk (GnomeVFSHandle *handle, FILE *ref, GnomeVFSFileOffset vfs_offset, GnomeVFSSeekPosition whence, GnomeVFSFileSize length) { GnomeVFSResult result; int ref_whence; translate_vfs_seek_pos (whence, &ref_whence); { /* Preliminary tell */ GnomeVFSFileSize offset = 0; long ref_off; result = gnome_vfs_tell (handle, &offset); if (show_if_error (result, "head gnome_vfs_tell")) return FALSE; ref_off = ftell (ref); if (ref_off < 0) { g_warning ("Wierd ftell failure"); return FALSE; } if (ref_off != offset) { g_warning ("Offset mismatch %d should be %d", (int)offset, (int)ref_off); return FALSE; } } { /* seek */ int fseekres; result = gnome_vfs_seek (handle, whence, vfs_offset); fseekres = fseek (ref, vfs_offset, ref_whence); if (fseekres == 0 && result != GNOME_VFS_OK) { g_warning ("seek success difference '%d - %d' - '%s'", fseekres, errno, gnome_vfs_result_to_string (result)); return FALSE; } } { /* read - leaks like a sieve on error =] */ guint8 *data, *data_ref; int bytes_read_ref; GnomeVFSFileSize bytes_read; data = g_new (guint8, length); data_ref = g_new (guint8, length); result = gnome_vfs_read (handle, data, length, &bytes_read); bytes_read_ref = fread (data_ref, 1, length, ref); if (bytes_read_ref != bytes_read) { g_warning ("read failure: vfs read %d and fread %d bytes ('%s')", (int)bytes_read, bytes_read_ref, gnome_vfs_result_to_string (result)); return FALSE; } if (result != GNOME_VFS_OK) { g_warning ("VFS read failed with '%s'", gnome_vfs_result_to_string (result)); return FALSE; } { /* Compare the data */ int i; for (i = 0; i < bytes_read; i++) if (data[i] != data_ref[i]) { g_warning ("vfs read data mismatch at byte %d, '%d' != '%d'", i, data[i], data_ref[i]); return FALSE; } } g_free (data_ref); g_free (data); } { /* Tail tell */ GnomeVFSFileSize offset; long ref_off; result = gnome_vfs_tell (handle, &offset); if (show_if_error (result, "tail gnome_vfs_tell")) return FALSE; ref_off = ftell (ref); if (ref_off < 0) { g_warning ("Wierd ftell failure"); return FALSE; } if (ref_off != offset) { g_warning ("Offset mismatch %d should be %d", (int)offset, (int)ref_off); return FALSE; } } return TRUE; } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSHandle *handle; FILE *ref; int i, failures; if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } if (argc != 3) { fprintf (stderr, "This is a program to test seek emulation on linear filesystems\n"); fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } result = gnome_vfs_open (&handle, argv[1], GNOME_VFS_OPEN_READ|GNOME_VFS_OPEN_RANDOM); show_result (result, "gnome_vfs_open", argv[1]); if (!(ref = fopen (argv[2], "r"))) { fprintf (stderr, "Failed to open '%s' to compare seek history\n", argv[2]); exit (1); } failures = 0; for (i = 0; i < 10; i++) { GnomeVFSFileSize length = (1000.0 * rand () / (RAND_MAX + 1.0)); GnomeVFSFileOffset seekpos = (1000.0 * rand () / (RAND_MAX + 1.0)); GnomeVFSSeekPosition w = (int)(2.0 * rand () / (RAND_MAX + 1.0)); if (!seek_test_chunk (handle, ref, seekpos, w, length)) { printf ("Failed: seek (offset %d, whence '%s'), read (length %d), tell = %ld\n", (int)seekpos, translate_vfs_seek_pos (w, NULL), (int)length, ftell (ref)); failures++; } } if (failures) printf ("%d tests failed\n", failures); else printf ("All test successful\n"); result = gnome_vfs_close (handle); show_result (result, "gnome_vfs_close", argv[1]); fclose (ref); return 0; } gnome-vfs-2.24.4/test/test-escape.c0000644000175000001440000003216411334251016013763 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-async-cancel.c - Test program for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Darin Adler */ #include #include #include #include #include #include #include #define TEST_ASSERT(expression, message) \ G_STMT_START { if (!(expression)) test_failed message; } G_STMT_END static void stop_after_log (const char *domain, GLogLevelFlags level, const char *message, gpointer data) { void (* saved_handler) (int); g_log_default_handler (domain, level, message, data); saved_handler = signal (SIGINT, SIG_IGN); raise (SIGINT); signal (SIGINT, saved_handler); } static void make_asserts_break (const char *domain) { g_log_set_handler (domain, (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING), stop_after_log, NULL); } static gboolean at_least_one_test_failed = FALSE; static void test_failed (const char *format, ...) { va_list arguments; char *message; va_start (arguments, format); message = g_strdup_vprintf (format, arguments); va_end (arguments); g_message ("test failed: %s", message); at_least_one_test_failed = TRUE; } static void test_escape (const char *input, const char *expected_output) { char *output; output = gnome_vfs_escape_string (input); if (strcmp (output, expected_output) != 0) { test_failed ("escaping %s resulted in %s instead of %s", input, output, expected_output); } g_free (output); } static void test_escape_path (const char *input, const char *expected_output) { char *output; output = gnome_vfs_escape_path_string (input); if (strcmp (output, expected_output) != 0) { test_failed ("escaping path %s resulted in %s instead of %s", input, output, expected_output); } g_free (output); } static void test_unescape (const char *input, const char *illegal, const char *expected_output) { char *output; output = gnome_vfs_unescape_string (input, illegal); if (expected_output == NULL) { if (output != NULL) { test_failed ("unescaping %s resulted in %s instead of NULL", input, illegal, output); } } else { if (output == NULL) { test_failed ("unescaping %s resulted in NULL instead of %s", input, illegal, expected_output); } else if (strcmp (output, expected_output) != 0) { test_failed ("unescaping %s with %s illegal resulted in %s instead of %s", input, illegal, output, expected_output); } } g_free (output); } static void test_unescape_display (const char *input, const char *expected_output) { char *output; output = gnome_vfs_unescape_string_for_display (input); if (expected_output == NULL) { if (output != NULL) { test_failed ("unescaping %s for display resulted in %s instead of NULL", input, output); } } else { if (output == NULL) { test_failed ("unescaping %s for display resulted in NULL instead of %s", input, expected_output); } else if (strcmp (output, expected_output) != 0) { test_failed ("unescaping %s for display resulted in %s instead of %s", input, output, expected_output); } } g_free (output); } int main (int argc, char **argv) { make_asserts_break ("GnomeVFS"); gnome_vfs_init (); test_escape ("", ""); test_escape ("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); test_escape ("abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyz"); test_escape ("0123456789", "0123456789"); test_escape ("-_.!~*'()", "-_.!~*'()"); test_escape ("\x01\x02\x03\x04\x05\x06\x07", "%01%02%03%04%05%06%07"); test_escape ("\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F", "%08%09%0A%0B%0C%0D%0E%0F"); test_escape (" \"#$%&+,/", "%20%22%23%24%25%26%2B%2C%2F"); test_escape (":;<=>?@", "%3A%3B%3C%3D%3E%3F%40"); test_escape ("[\\]^`", "%5B%5C%5D%5E%60"); test_escape ("{|}\x7F", "%7B%7C%7D%7F"); test_escape ("\x80\x81\x82\x83\x84\x85\x86\x87", "%80%81%82%83%84%85%86%87"); test_escape ("\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F", "%88%89%8A%8B%8C%8D%8E%8F"); test_escape ("\x90\x91\x92\x93\x94\x95\x96\x97", "%90%91%92%93%94%95%96%97"); test_escape ("\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F", "%98%99%9A%9B%9C%9D%9E%9F"); test_escape ("\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7", "%A0%A1%A2%A3%A4%A5%A6%A7"); test_escape ("\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF", "%A8%A9%AA%AB%AC%AD%AE%AF"); test_escape ("\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7", "%B0%B1%B2%B3%B4%B5%B6%B7"); test_escape ("\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF", "%B8%B9%BA%BB%BC%BD%BE%BF"); test_escape ("\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7", "%C0%C1%C2%C3%C4%C5%C6%C7"); test_escape ("\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF", "%C8%C9%CA%CB%CC%CD%CE%CF"); test_escape ("\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7", "%D0%D1%D2%D3%D4%D5%D6%D7"); test_escape ("\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF", "%D8%D9%DA%DB%DC%DD%DE%DF"); test_escape ("\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7", "%E0%E1%E2%E3%E4%E5%E6%E7"); test_escape ("\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF", "%E8%E9%EA%EB%EC%ED%EE%EF"); test_escape ("\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7", "%F0%F1%F2%F3%F4%F5%F6%F7"); test_escape ("\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF", "%F8%F9%FA%FB%FC%FD%FE%FF"); test_escape_path ("", ""); test_escape_path ("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); test_escape_path ("abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyz"); test_escape_path ("0123456789", "0123456789"); test_escape_path ("-_.!~*'()/", "-_.!~*'()/"); test_escape_path ("\x01\x02\x03\x04\x05\x06\x07", "%01%02%03%04%05%06%07"); test_escape_path ("\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F", "%08%09%0A%0B%0C%0D%0E%0F"); test_escape_path (" \"#$%&+,", "%20%22%23%24%25&%2B%2C"); test_escape_path (":;<=>?@", "%3A%3B%3C=%3E%3F%40"); test_escape_path ("[\\]^`", "%5B%5C%5D%5E%60"); test_escape_path ("{|}\x7F", "%7B%7C%7D%7F"); test_escape_path ("\x80\x81\x82\x83\x84\x85\x86\x87", "%80%81%82%83%84%85%86%87"); test_escape_path ("\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F", "%88%89%8A%8B%8C%8D%8E%8F"); test_escape_path ("\x90\x91\x92\x93\x94\x95\x96\x97", "%90%91%92%93%94%95%96%97"); test_escape_path ("\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F", "%98%99%9A%9B%9C%9D%9E%9F"); test_escape_path ("\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7", "%A0%A1%A2%A3%A4%A5%A6%A7"); test_escape_path ("\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF", "%A8%A9%AA%AB%AC%AD%AE%AF"); test_escape_path ("\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7", "%B0%B1%B2%B3%B4%B5%B6%B7"); test_escape_path ("\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF", "%B8%B9%BA%BB%BC%BD%BE%BF"); test_escape_path ("\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7", "%C0%C1%C2%C3%C4%C5%C6%C7"); test_escape_path ("\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF", "%C8%C9%CA%CB%CC%CD%CE%CF"); test_escape_path ("\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7", "%D0%D1%D2%D3%D4%D5%D6%D7"); test_escape_path ("\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF", "%D8%D9%DA%DB%DC%DD%DE%DF"); test_escape_path ("\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7", "%E0%E1%E2%E3%E4%E5%E6%E7"); test_escape_path ("\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF", "%E8%E9%EA%EB%EC%ED%EE%EF"); test_escape_path ("\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7", "%F0%F1%F2%F3%F4%F5%F6%F7"); test_escape_path ("\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF", "%F8%F9%FA%FB%FC%FD%FE%FF"); test_unescape ("", NULL, ""); test_unescape ("", "", ""); test_unescape ("", "/", ""); test_unescape ("", "/:", ""); test_unescape ("/", "/", "/"); test_unescape ("%2f", NULL, "/"); test_unescape ("%2F", NULL, "/"); test_unescape ("%2F", "/", NULL); test_unescape ("%", NULL, NULL); test_unescape ("%1", NULL, NULL); test_unescape ("%aa", NULL, "\xAA"); test_unescape ("%ag", NULL, NULL); test_unescape ("%g", NULL, NULL); test_unescape ("%%", NULL, NULL); test_unescape ("%1%1", NULL, NULL); test_unescape ("ABCDEFGHIJKLMNOPQRSTUVWXYZ", NULL, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); test_unescape ("abcdefghijklmnopqrstuvwxyz", NULL, "abcdefghijklmnopqrstuvwxyz"); test_unescape ("0123456789", NULL, "0123456789"); test_unescape ("-_.!~*'()", NULL, "-_.!~*'()"); test_unescape ("%01%02%03%04%05%06%07", NULL, "\x01\x02\x03\x04\x05\x06\x07"); test_unescape ("%08%09%0A%0B%0C%0D%0E%0F", NULL, "\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F"); test_unescape ("%20%22%23%24%25%26%2B%2C%2F", NULL, " \"#$%&+,/"); test_unescape ("%3A%3B%3C%3D%3E%3F%40", NULL, ":;<=>?@"); test_unescape ("%5B%5C%5D%5E%60", NULL, "[\\]^`"); test_unescape ("%7B%7C%7D%7F", NULL, "{|}\x7F"); test_unescape ("%80%81%82%83%84%85%86%87", NULL, "\x80\x81\x82\x83\x84\x85\x86\x87"); test_unescape ("%88%89%8A%8B%8C%8D%8E%8F", NULL, "\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F"); test_unescape ("%90%91%92%93%94%95%96%97", NULL, "\x90\x91\x92\x93\x94\x95\x96\x97"); test_unescape ("%98%99%9A%9B%9C%9D%9E%9F", NULL, "\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F"); test_unescape ("%A0%A1%A2%A3%A4%A5%A6%A7", NULL, "\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7"); test_unescape ("%A8%A9%AA%AB%AC%AD%AE%AF", NULL, "\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF"); test_unescape ("%B0%B1%B2%B3%B4%B5%B6%B7", NULL, "\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7"); test_unescape ("%B8%B9%BA%BB%BC%BD%BE%BF", NULL, "\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF"); test_unescape ("%C0%C1%C2%C3%C4%C5%C6%C7", NULL, "\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7"); test_unescape ("%C8%C9%CA%CB%CC%CD%CE%CF", NULL, "\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF"); test_unescape ("%D0%D1%D2%D3%D4%D5%D6%D7", NULL, "\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7"); test_unescape ("%D8%D9%DA%DB%DC%DD%DE%DF", NULL, "\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF"); test_unescape ("%E0%E1%E2%E3%E4%E5%E6%E7", NULL, "\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7"); test_unescape ("%E8%E9%EA%EB%EC%ED%EE%EF", NULL, "\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF"); test_unescape ("%F0%F1%F2%F3%F4%F5%F6%F7", NULL, "\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7"); test_unescape ("%F8%F9%FA%FB%FC%FD%FE%FF", NULL, "\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"); test_unescape_display ("ABC%00DEF", "ABC%00DEF"); test_unescape_display ("%20%22%23%24%25%26%2B%00%2C%2F", " \"#$%&+%00,/"); test_unescape_display ("", ""); test_unescape_display ("%1%1", "%1%1"); test_unescape_display ("/", "/"); test_unescape_display ("%2f", "/"); test_unescape_display ("%2F", "/"); test_unescape_display ("%", "%"); test_unescape_display ("%1", "%1"); test_unescape_display ("%aa", "\xAA"); test_unescape_display ("%ag", "%ag"); test_unescape_display ("%g", "%g"); test_unescape_display ("%%", "%%"); test_unescape_display ("%%20", "% "); test_unescape_display ("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); test_unescape_display ("abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyz"); test_unescape_display ("0123456789", "0123456789"); test_unescape_display ("-_.!~*'()", "-_.!~*'()"); test_unescape_display ("%01%02%03%04%05%06%07", "\x01\x02\x03\x04\x05\x06\x07"); test_unescape_display ("%08%09%0A%0B%0C%0D%0E%0F", "\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F"); test_unescape_display ("%20%22%23%24%25%26%2B%2C%2F", " \"#$%&+,/"); test_unescape_display ("%3A%3B%3C%3D%3E%3F%40", ":;<=>?@"); test_unescape_display ("%5B%5C%5D%5E%60", "[\\]^`"); test_unescape_display ("%7B%7C%7D%7F", "{|}\x7F"); test_unescape_display ("%80%81%82%83%84%85%86%87", "\x80\x81\x82\x83\x84\x85\x86\x87"); test_unescape_display ("%88%89%8A%8B%8C%8D%8E%8F", "\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F"); test_unescape_display ("%90%91%92%93%94%95%96%97", "\x90\x91\x92\x93\x94\x95\x96\x97"); test_unescape_display ("%98%99%9A%9B%9C%9D%9E%9F", "\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F"); test_unescape_display ("%A0%A1%A2%A3%A4%A5%A6%A7", "\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7"); test_unescape_display ("%A8%A9%AA%AB%AC%AD%AE%AF", "\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF"); test_unescape_display ("%B0%B1%B2%B3%B4%B5%B6%B7", "\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7"); test_unescape_display ("%B8%B9%BA%BB%BC%BD%BE%BF", "\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF"); test_unescape_display ("%C0%C1%C2%C3%C4%C5%C6%C7", "\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7"); test_unescape_display ("%C8%C9%CA%CB%CC%CD%CE%CF", "\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF"); test_unescape_display ("%D0%D1%D2%D3%D4%D5%D6%D7", "\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7"); test_unescape_display ("%D8%D9%DA%DB%DC%DD%DE%DF", "\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF"); test_unescape_display ("%E0%E1%E2%E3%E4%E5%E6%E7", "\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7"); test_unescape_display ("%E8%E9%EA%EB%EC%ED%EE%EF", "\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF"); test_unescape_display ("%F0%F1%F2%F3%F4%F5%F6%F7", "\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7"); test_unescape_display ("%F8%F9%FA%FB%FC%FD%FE%FF", "\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"); /* Report to "make check" on whether it all worked or not. */ return at_least_one_test_failed ? EXIT_FAILURE : EXIT_SUCCESS; } gnome-vfs-2.24.4/test/test-async-directory.c0000644000175000001440000001701411334251016015637 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-async-directory.c - Test program for asynchronous directory reading with the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include static GMainLoop *main_loop; static gint items_per_notification = 1; static gboolean measure_speed = FALSE; static gboolean read_files = FALSE; static GOptionEntry options[] = { { "chunk-size", 'c', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_INT, &items_per_notification, "Number of items to send for every notification", "NUM_ITEMS" }, { "measure-speed", 'm', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &measure_speed, "Meaure speed without displaying anything", NULL }, { "read-files", 'r', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &read_files, "Test file reading", NULL }, { NULL } }; static const gchar * type_to_string (GnomeVFSFileType type) { switch (type) { case GNOME_VFS_FILE_TYPE_UNKNOWN: return "Unknown"; case GNOME_VFS_FILE_TYPE_REGULAR: return "Regular"; case GNOME_VFS_FILE_TYPE_DIRECTORY: return "Directory"; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: return "Symbolic Link"; case GNOME_VFS_FILE_TYPE_FIFO: return "FIFO"; case GNOME_VFS_FILE_TYPE_SOCKET: return "Socket"; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: return "Character device"; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: return "Block device"; default: return "???"; } } static void test_read_file_close_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { } static void test_read_file_succeeded (GnomeVFSAsyncHandle *handle) { gnome_vfs_async_close (handle, test_read_file_close_callback, NULL); } static void test_read_file_failed (GnomeVFSAsyncHandle *handle, GnomeVFSResult result) { gnome_vfs_async_close (handle, test_read_file_close_callback, NULL); } /* A read is complete, so we might or might not be done. */ static void test_read_file_read_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer buffer, GnomeVFSFileSize bytes_requested, GnomeVFSFileSize bytes_read, gpointer callback_data) { /* Check for a failure. */ if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { test_read_file_failed (handle, result); return; } /* If at the end of the file, we win! */ test_read_file_succeeded (handle); } static char buffer[256]; /* Start reading a chunk. */ static void test_read_file_read_chunk (GnomeVFSAsyncHandle *handle) { gnome_vfs_async_read (handle, buffer, 10, test_read_file_read_callback, handle); } /* Once the open is finished, read a first chunk. */ static void test_read_file_open_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { if (result != GNOME_VFS_OK) { test_read_file_failed (handle, result); return; } test_read_file_read_chunk (handle); } /* Set up the read handle and start reading. */ static GnomeVFSAsyncHandle * test_read_file_async (GnomeVFSURI *uri) { GnomeVFSAsyncHandle *result; gnome_vfs_async_open_uri (&result, uri, GNOME_VFS_OPEN_READ, 0, test_read_file_open_callback, NULL); return result; } typedef struct { const char *parent_uri; int num_entries_read; } CallbackData; static volatile int async_task_counter; static void directory_load_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, GList *list, guint entries_read, gpointer callback_data) { CallbackData *data; GnomeVFSFileInfo *info; GnomeVFSURI *parent_uri; GnomeVFSURI *uri; GList *node; guint i; data = (CallbackData *)callback_data; if (!measure_speed) { printf ("Directory load callback: %s, %d entries, callback_data `%s'\n", gnome_vfs_result_to_string (result), entries_read, (gchar *) data->parent_uri); } parent_uri = gnome_vfs_uri_new (data->parent_uri); for (i = 0, node = list; i < entries_read && node != NULL; i++, node = node->next) { info = node->data; if (!measure_speed) { printf (" File `%s'%s (%s, %s), " "size %"GNOME_VFS_SIZE_FORMAT_STR", mode %04o\n", info->name, (info->flags & GNOME_VFS_FILE_FLAGS_SYMLINK) ? " [link]" : "", type_to_string (info->type), gnome_vfs_file_info_get_mime_type (info), info->size, info->permissions); fflush (stdout); } if (read_files) { if ((info->type & GNOME_VFS_FILE_TYPE_REGULAR) != 0) { uri = gnome_vfs_uri_append_file_name (parent_uri, info->name); test_read_file_async (uri); gnome_vfs_uri_unref (uri); } if (!measure_speed) { printf ("reading a bit of %s\n", info->name); } } } data->num_entries_read += entries_read; gnome_vfs_uri_unref (parent_uri); if (result != GNOME_VFS_OK) { if (--async_task_counter == 0) { g_main_loop_quit (main_loop); } } } int main (int argc, char **argv) { GnomeVFSAsyncHandle *handle; gchar *text_uri; GTimer *timer; CallbackData callback_data; GOptionContext *ctx = NULL; GError *error = NULL; g_printf("Initializing gnome-libs..."); ctx = g_option_context_new("test-vfs"); g_option_context_add_main_entries(ctx, options, NULL); if (!g_option_context_parse(ctx, &argc, &argv, &error)) { g_printerr("main: %s\n", error->message); g_error_free(error); g_option_context_free(ctx); return 1; } g_option_context_free(ctx); if (argc != 2 || argv[1] == NULL) { g_printerr("Usage: %s [] \n", argv[0]); return 1; } text_uri = g_strdup(argv[1]); puts ("Initializing gnome-vfs..."); gnome_vfs_init (); printf ("%d item(s) per notification\n", items_per_notification); if (measure_speed) { timer = g_timer_new (); g_timer_start (timer); } else { timer = NULL; } callback_data.num_entries_read = 0; callback_data.parent_uri = text_uri; async_task_counter = 1; gnome_vfs_async_load_directory (&handle, text_uri, (GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS), items_per_notification, 0, directory_load_callback, &callback_data); if (!measure_speed) puts ("main loop running."); main_loop = g_main_loop_new (NULL, TRUE); g_main_loop_run (main_loop); g_main_loop_unref (main_loop); if (measure_speed) { gdouble elapsed_seconds; g_timer_stop (timer); elapsed_seconds = g_timer_elapsed (timer, NULL); printf ("%.5f seconds for %d entries, %.5f entries/sec.\n", elapsed_seconds, callback_data.num_entries_read, (double) callback_data.num_entries_read / elapsed_seconds); } if (!measure_speed) puts ("GTK+ main loop finished."); fflush (stdout); puts ("All done"); gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/test/test-directory-visit.c0000644000175000001440000000574511334251016015670 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-directory-visit.c - Test program for the directory visiting functions of the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include static const gchar * type_to_string (GnomeVFSFileType type) { switch (type) { case GNOME_VFS_FILE_TYPE_UNKNOWN: return "Unknown"; case GNOME_VFS_FILE_TYPE_REGULAR: return "Regular"; case GNOME_VFS_FILE_TYPE_DIRECTORY: return "Directory"; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: return "Symbolic Link"; case GNOME_VFS_FILE_TYPE_FIFO: return "FIFO"; case GNOME_VFS_FILE_TYPE_SOCKET: return "Socket"; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: return "Character device"; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: return "Block device"; default: return "???"; } } static gboolean directory_visit_callback (const gchar *rel_path, GnomeVFSFileInfo *info, gboolean recursing_will_loop, gpointer data, gboolean *recurse) { printf ("directory_visit_callback -- rel_path `%s' data `%s'\n", rel_path, (gchar *) data); printf (" File `%s'%s (%s, %s), size %ld, mode %04o\n", info->name, GNOME_VFS_FILE_INFO_SYMLINK (info) ? " [link]" : "", type_to_string (info->type), gnome_vfs_file_info_get_mime_type (info), (glong) info->size, info->permissions); if (info->name[0] != '.' || (info->name[1] != '.' && info->name[1] != 0) || info->name[2] != 0) { if (recursing_will_loop) { printf ("Loop detected\n"); exit (1); } *recurse = TRUE; } else { *recurse = FALSE; } return TRUE; } int main (int argc, char **argv) { GnomeVFSResult result; if (argc != 2) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } gnome_vfs_init (); result = gnome_vfs_directory_visit (argv[1], (GNOME_VFS_FILE_INFO_FOLLOW_LINKS | GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE), GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK, directory_visit_callback, "stringa"); printf ("Result: %s\n", gnome_vfs_result_to_string (result)); return 0; } gnome-vfs-2.24.4/test/test-info.c0000644000175000001440000001354211334251016013455 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-info.c - Test program for the `get_file_info()' functionality of the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include #include static const gchar * type_to_string (GnomeVFSFileType type) { switch (type) { case GNOME_VFS_FILE_TYPE_UNKNOWN: return "Unknown"; case GNOME_VFS_FILE_TYPE_REGULAR: return "Regular"; case GNOME_VFS_FILE_TYPE_DIRECTORY: return "Directory"; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: return "Symbolic Link"; case GNOME_VFS_FILE_TYPE_FIFO: return "FIFO"; case GNOME_VFS_FILE_TYPE_SOCKET: return "Socket"; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: return "Character device"; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: return "Block device"; default: return "???"; } } static void print_file_info (const GnomeVFSFileInfo *info) { #define FLAG_STRING(info, which) \ (GNOME_VFS_FILE_INFO_##which (info) ? "YES" : "NO") printf ("Name : %s\n", info->name); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_TYPE) printf ("Type : %s\n", type_to_string (info->type)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME && info->symlink_name != NULL) printf ("Symlink to : %s\n", info->symlink_name); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE) printf ("MIME type : %s\n", info->mime_type); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_SIZE) printf ("Size : %" GNOME_VFS_SIZE_FORMAT_STR "\n", info->size); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT) printf ("Blocks : %" GNOME_VFS_SIZE_FORMAT_STR "\n", info->block_count); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE) printf ("I/O block size : %d\n", info->io_block_size); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_FLAGS) { printf ("Local : %s\n", FLAG_STRING (info, LOCAL)); printf ("SUID : %s\n", FLAG_STRING (info, SUID)); printf ("SGID : %s\n", FLAG_STRING (info, SGID)); printf ("Sticky : %s\n", FLAG_STRING (info, STICKY)); } if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS) printf ("Permissions : %04o\n", info->permissions); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT) printf ("Link count : %d\n", info->link_count); printf ("UID : %d\n", info->uid); printf ("GID : %d\n", info->gid); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_ATIME) printf ("Access time : %s", ctime (&info->atime)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_MTIME) printf ("Modification time : %s", ctime (&info->mtime)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_CTIME) printf ("Change time : %s", ctime (&info->ctime)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_DEVICE) printf ("Device # : %ld\n", (gulong) info->device); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_INODE) printf ("Inode # : %ld\n", (gulong) info->inode); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_ACCESS) { printf ("Readable : %s\n", (info->permissions&GNOME_VFS_PERM_ACCESS_READABLE?"YES":"NO")); printf ("Writable : %s\n", (info->permissions&GNOME_VFS_PERM_ACCESS_WRITABLE?"YES":"NO")); printf ("Executable : %s\n", (info->permissions&GNOME_VFS_PERM_ACCESS_EXECUTABLE?"YES":"NO")); } if (info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT) printf ("SELinux Context : %s\n", info->selinux_context); #undef FLAG_STRING } int main (int argc, char **argv) { GnomeVFSFileInfo *info; GnomeVFSURI *vfs_uri; GnomeVFSResult result; gchar *uri; int i=1; if (argc < 2) { fprintf (stderr, "Usage: %s [...]\n", argv[0]); return 1; } if (!gnome_vfs_init ()) { fprintf (stderr, "%s: Cannot initialize the GNOME Virtual File System.\n", argv[0]); return 1; } while (i < argc) { const char *path; uri = argv[i]; g_print("Getting info for \"%s\".\n", uri); info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info (uri, info, (GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS | GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT | GNOME_VFS_FILE_INFO_FOLLOW_LINKS)); if (result != GNOME_VFS_OK) { fprintf (stderr, "%s: %s: %s\n", argv[0], uri, gnome_vfs_result_to_string (result)); i++; return result; } print_file_info (info); gnome_vfs_file_info_unref (info); vfs_uri = gnome_vfs_uri_new (uri); path = gnome_vfs_uri_get_path (vfs_uri); printf ("Path: %s\n", path ? path : ""); printf (gnome_vfs_uri_is_local (vfs_uri) ? "File is local\n" : "File is not local\n"); gnome_vfs_uri_unref (vfs_uri); i++; } return 0; } gnome-vfs-2.24.4/test/test-dirop.c0000644000175000001440000000477111334251016013643 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-unlink.c - Test program for unlink operation in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000 Eazel Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ettore Perazzoli Ian McKellar */ #include #include #include #include #include #include #include static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSURI *uri; gchar *text_uri; if (argc != 3 && argc != 4) { printf ("Usage: %s make [mode]\n %s remove) \n", argv[0], argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } uri = gnome_vfs_uri_new (argv[2]); if (uri == NULL) { fprintf (stderr, "URI not valid.\n"); return 1; } text_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); if(!strcmp(argv[1], "make")) { int mode = 0755; if (argc == 4) { mode = strtol (argv[3], (char **)NULL, 8); } result = gnome_vfs_make_directory_for_uri (uri, mode); show_result (result, "make_directory", text_uri); } else if(!strcmp(argv[1], "remove")) { result = gnome_vfs_remove_directory_from_uri (uri); show_result (result, "remove_directory", text_uri); } else { fprintf (stderr, "Unknown directory operation `%s'\n", argv[1]); } g_free (text_uri); return 0; } gnome-vfs-2.24.4/test/test-acl.c0000644000175000001440000001075011334251016013257 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-acl.c - ACL Handling for the GNOME Virtual File System. Test Code Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include static gboolean at_least_one_test_failed = FALSE; #define TEST_ASSERT(__xpr__) \ G_STMT_START {if (!(__xpr__)) {test_failed ("%s", G_STRLOC);} } G_STMT_END static void test_failed (const char *format, ...) { va_list arguments; char *message; va_start (arguments, format); message = g_strdup_vprintf (format, arguments); va_end (arguments); g_print ("test failed: %s\n", message); at_least_one_test_failed = TRUE; } static void stop_after_log (const char *domain, GLogLevelFlags level, const char *message, gpointer data) { void (* saved_handler) (int); g_log_default_handler (domain, level, message, data); saved_handler = signal (SIGINT, SIG_IGN); raise (SIGINT); signal (SIGINT, saved_handler); } static void make_asserts_break (const char *domain) { g_log_set_handler (domain, (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING), stop_after_log, NULL); } static void auto_test () { GnomeVFSACLPerm pset_a[4] = { GNOME_VFS_ACL_READ, GNOME_VFS_ACL_WRITE, GNOME_VFS_ACL_EXECUTE, 0}; GnomeVFSACLPerm pset_b[1] = {0}; GnomeVFSACL *acl; GnomeVFSACE *a, *b; GList *list, *iter; gboolean bl; int n; g_print ("Testing ACE Object\n"); a = gnome_vfs_ace_new (GNOME_VFS_ACL_USER, "a", pset_a); b = gnome_vfs_ace_new (GNOME_VFS_ACL_USER, "a", NULL); TEST_ASSERT (a != NULL); TEST_ASSERT (b != NULL); bl = gnome_vfs_ace_equal (a, b); TEST_ASSERT (bl == TRUE); gnome_vfs_ace_set_id (b, "b"); bl = gnome_vfs_ace_equal (a, b); TEST_ASSERT (bl == FALSE); TEST_ASSERT (gnome_vfs_ace_check_perm (a, GNOME_VFS_ACL_READ)); TEST_ASSERT (gnome_vfs_ace_check_perm (a, GNOME_VFS_ACL_WRITE)); TEST_ASSERT (gnome_vfs_ace_check_perm (a, GNOME_VFS_ACL_EXECUTE)); TEST_ASSERT (!gnome_vfs_ace_check_perm (b, GNOME_VFS_ACL_READ)); TEST_ASSERT (!gnome_vfs_ace_check_perm (b, GNOME_VFS_ACL_WRITE)); TEST_ASSERT (!gnome_vfs_ace_check_perm (b, GNOME_VFS_ACL_EXECUTE)); gnome_vfs_ace_copy_perms (a, b); TEST_ASSERT (gnome_vfs_ace_check_perm (b, GNOME_VFS_ACL_READ)); TEST_ASSERT (gnome_vfs_ace_check_perm (b, GNOME_VFS_ACL_WRITE)); TEST_ASSERT (gnome_vfs_ace_check_perm (b, GNOME_VFS_ACL_EXECUTE)); gnome_vfs_ace_set_perms (a, pset_b); TEST_ASSERT (!gnome_vfs_ace_check_perm (a, GNOME_VFS_ACL_READ)); TEST_ASSERT (!gnome_vfs_ace_check_perm (a, GNOME_VFS_ACL_WRITE)); TEST_ASSERT (!gnome_vfs_ace_check_perm (a, GNOME_VFS_ACL_EXECUTE)); g_print ("Testing ACL Object\n"); acl = gnome_vfs_acl_new (); TEST_ASSERT (acl != NULL); gnome_vfs_acl_set (acl, a); gnome_vfs_acl_set (acl, b); list = gnome_vfs_acl_get_ace_list (acl); for (iter = list, n = 0; iter; iter = iter->next) { TEST_ASSERT (GNOME_VFS_IS_ACE (iter->data)); bl = gnome_vfs_ace_equal (GNOME_VFS_ACE (iter->data), a) | gnome_vfs_ace_equal (GNOME_VFS_ACE (iter->data), b); n++; TEST_ASSERT (bl == TRUE); } TEST_ASSERT (n == 2); g_object_unref (a); g_object_unref (b); gnome_vfs_acl_free_ace_list (list); g_object_unref (acl); } int main (int argc, char **argv) { make_asserts_break ("GnomeVFS"); gnome_vfs_init (); if (argc == 1) { g_print ("ACL auto test mode\n"); auto_test (); } gnome_vfs_shutdown (); return at_least_one_test_failed ? EXIT_FAILURE : EXIT_SUCCESS; } gnome-vfs-2.24.4/test/test-find-directory.c0000644000175000001440000000454711334251016015451 00000000000000/* test-mime.c - Test for the gnome_vfs_find_directory call Virtual File System Library Copyright (C) 2000 Eazel The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Pavel Cisler */ #include #include #include #include #include #include #include int main (int argc, char **argv) { GnomeVFSURI *uri; GnomeVFSURI *result; GnomeVFSResult error; char *path; gboolean create; create = FALSE; if (!gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } if (argc == 1) { fprintf (stderr, "Usage: %s [-create] near_uri \n", *argv); return 1; } ++argv; if (strcmp (*argv, "-create") == 0) { create = TRUE; ++argv; } uri = gnome_vfs_uri_new (*argv); error = gnome_vfs_find_directory (uri, GNOME_VFS_DIRECTORY_KIND_TRASH, &result, create, TRUE, 0777); if (error == GNOME_VFS_OK) { path = gnome_vfs_uri_to_string (result, GNOME_VFS_URI_HIDE_NONE); g_print ("found trash at %s\n", path); g_free (path); error = gnome_vfs_find_directory (uri, GNOME_VFS_DIRECTORY_KIND_TRASH, &result, FALSE, FALSE, 0777); if (error == GNOME_VFS_OK) { path = gnome_vfs_uri_to_string (result, GNOME_VFS_URI_HIDE_NONE); g_print ("found it again in a cached entry at %s\n", path); g_free (path); } else { g_print ("error %s finding cached trash entry near %s\n", gnome_vfs_result_to_string (error), *argv); } } else { g_print ("error %s finding trash near %s\n", gnome_vfs_result_to_string (error), *argv); } return 0; } gnome-vfs-2.24.4/test/test-sync-write.c0000644000175000001440000000475111334251016014630 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-sync.c - Test program for synchronous operation of the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Ian McKellar */ #include #include #include #include #include static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSHandle *handle; gchar buffer[1024]; GnomeVFSFileSize bytes_read; GnomeVFSURI *uri; gchar *text_uri; if (argc != 2) { printf ("Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } uri = gnome_vfs_uri_new (argv[1]); if (uri == NULL) { fprintf (stderr, "URI not valid.\n"); return 1; } text_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); result = gnome_vfs_open_uri (&handle, uri, GNOME_VFS_OPEN_WRITE); show_result (result, "open", text_uri); while( result==GNOME_VFS_OK && !feof(stdin)) { GnomeVFSFileSize temp; bytes_read = fread(buffer, 1, sizeof buffer - 1, stdin); if(!bytes_read) break; buffer[bytes_read] = 0; result = gnome_vfs_write (handle, buffer, bytes_read, &temp); show_result (result, "write", text_uri); } result = gnome_vfs_close (handle); show_result (result, "close", text_uri); g_free (text_uri); return 0; } gnome-vfs-2.24.4/test/test.input0000644000175000001440000004311011334251016013433 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 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 Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gnome-vfs-2.24.4/test/test-sync-create.c0000644000175000001440000000502711334251016014736 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-sync.c - Test program for synchronous operation of the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Ian McKellar */ #include #include #include #include #include #define BUFFER_SIZE 1024 static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSHandle *handle; gchar buffer[BUFFER_SIZE+1]; GnomeVFSFileSize bytes_read; GnomeVFSURI *uri; gchar *text_uri; if (argc != 2) { printf ("Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } uri = gnome_vfs_uri_new (argv[1]); if (uri == NULL) { fprintf (stderr, "URI not valid.\n"); return 1; } text_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); result = gnome_vfs_create_uri (&handle, uri, GNOME_VFS_OPEN_WRITE, FALSE, 0644); show_result (result, "create", text_uri); while( result==GNOME_VFS_OK && !feof(stdin)) { GnomeVFSFileSize temp; bytes_read = fread(buffer, 1, BUFFER_SIZE, stdin); if(!bytes_read) break; buffer[bytes_read] = 0; result = gnome_vfs_write (handle, buffer, bytes_read, &temp); show_result (result, "write", text_uri); } result = gnome_vfs_close (handle); show_result (result, "close", text_uri); g_free (text_uri); return 0; } gnome-vfs-2.24.4/test/test-sync.c0000644000175000001440000000523611334251016013477 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-sync.c - Test program for synchronous operation of the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include #include static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) exit (1); } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSHandle *handle; gchar buffer[1024]; GnomeVFSFileSize bytes_read; GnomeVFSURI *uri; gchar *text_uri; gchar *out; if (argc != 2) { printf ("Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } uri = gnome_vfs_uri_new (argv[1]); if (uri == NULL) { fprintf (stderr, "URI not valid.\n"); return 1; } text_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); result = gnome_vfs_open_uri (&handle, uri, GNOME_VFS_OPEN_READ); show_result (result, "open", text_uri); while( result==GNOME_VFS_OK ) { result = gnome_vfs_read (handle, buffer, sizeof buffer - 1, &bytes_read); show_result (result, "read", text_uri); buffer[bytes_read] = 0; write (1,buffer,bytes_read); if(!bytes_read) break; } result = gnome_vfs_file_control (handle, "file:test", &out); show_result (result, "file_control", text_uri); if (result == GNOME_VFS_OK) { g_print ("file_control file:test: %s\n", out); } result = gnome_vfs_close (handle); show_result (result, "close", text_uri); g_free (text_uri); return 0; } gnome-vfs-2.24.4/test/test.cmds0000644000175000001440000000132011334251016013217 00000000000000# setup the environment mkdir /tmp/test cp test.input /tmp/test/test.input cd /tmp/test # simple tests on the file filing system cp test.input t mv t t2 cp t2 t open #1 t read #1 16 seek #1 0 read #1 16 open #2 t2 read #2 16 close #1 close #2 rm t rm t2 # gzip as far as it goes ( no where ) # cd /tmp/test # cp test.input /tmp/test/t.gz#gzip: # open #1 /tmp/test/t.gz#gzip: # read #1 16 # close #1 # rm t.gz # efs cd /tmp/test mkdir /tmp/test/t.efs#efs:/ cp test.input /tmp/test/t.efs#efs:/t cp /tmp/test/test.input /tmp/test/t.efs#efs:/t2 cd /tmp/test/t.efs#efs:/ open #1 t ls open #2 t2 read #1 16 read #2 16 ls close #1 close #2 cd /tmp/test rm t.efs # cleanup rm /tmp/test/test.input rmdir /tmp/test quit gnome-vfs-2.24.4/test/test-module-selftest.c0000644000175000001440000000671611334251016015643 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-module-selftest.c - Test program for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000, 2001 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Mike Fleming */ /* * This program executes module self-test code */ #include #include #include #include #include #include #include #include /* List of modules that have self-test code */ static const char *self_test_modules[] = { "http", NULL }; static void stop_after_log (const char *domain, GLogLevelFlags level, const char *message, gpointer data) { void (* saved_handler) (int); g_log_default_handler (domain, level, message, data); saved_handler = signal (SIGINT, SIG_IGN); raise (SIGINT); signal (SIGINT, saved_handler); } static void make_asserts_break (const char *domain) { g_log_set_handler (domain, (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING), stop_after_log, NULL); } typedef gboolean (*TestFunc)(void); /* Note that, while this initialized gnome-vfs, it does * not guarentee that gnome-vfs actually loads and initializes * the modules in question */ int main (int argc, char **argv) { int i; GModule *module; TestFunc test_func; gboolean result; gboolean running_result; make_asserts_break ("GLib"); make_asserts_break ("GnomeVFS"); /* Initialize the libraries we use. */ gnome_vfs_init (); running_result = TRUE; for (i=0 ; self_test_modules[i] != NULL ; i++) { char *module_path; char *dummy_uri_string; GnomeVFSURI *uri; printf ("Module self-test: '%s'\n", self_test_modules[i]); module_path = g_module_build_path (MODULES_PATH, self_test_modules[i]); module = g_module_open (module_path, G_MODULE_BIND_LAZY); g_free (module_path); module_path = NULL; if (module == NULL) { fprintf (stderr, "Couldn't load module '%s'\n", self_test_modules[i]); continue; } g_module_symbol (module, "vfs_module_self_test", (gpointer *) &test_func); if (test_func == NULL) { fprintf (stderr, "Module had no self-test func '%s'\n", self_test_modules[i]); continue; } dummy_uri_string = g_strdup_printf ("%s:///", self_test_modules[i]); /* force normal initializing of the module by creating a URI * for that scheme */ uri = gnome_vfs_uri_new (dummy_uri_string); gnome_vfs_uri_unref (uri); g_free (dummy_uri_string); result = test_func(); fprintf (stderr, "%s: %s\n", self_test_modules[i], result ? "PASS" : "FAIL"); running_result = running_result && result; } exit (running_result ? 0 : -1); } gnome-vfs-2.24.4/test/test-performance.c0000644000175000001440000000073011334251016015016 00000000000000#include #include #include #include #include int main (int argc, char **argv) { int i; GTimer *timer = g_timer_new (); g_type_init (); gnome_vfs_init (); /* start threads */ g_timer_start (timer); for (i = 0; i < 10; i++) { gnome_vfs_mime_info_reload (); } fprintf (stderr, "mime parse took %g(ms)\n", g_timer_elapsed (timer, NULL) * 100); return 0; } gnome-vfs-2.24.4/test/test-monitor.c0000644000175000001440000000652611334251016014215 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-monitor.c - Test program for file monitoringu in the GNOME Virtual File System. Copyright (C) 2001 Ian McKellar The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ian McKellar */ #include #include #include #include #include static GMainLoop *main_loop; static gboolean timeout_cb (gpointer data) { static int i = 0; if (i == 0) { unlink ("/tmp/test-monitor"); g_spawn_command_line_sync ("touch /tmp/test-monitor", NULL, NULL, NULL, NULL); } if (i == 1) { unlink ("/tmp/test-monitor"); } i++; return TRUE; } static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); if (result != GNOME_VFS_OK) exit (1); } static void callback (GnomeVFSMonitorHandle *handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) { static int i = 0; g_print ("Got a callback: "); switch (event_type) { case GNOME_VFS_MONITOR_EVENT_CHANGED: g_print ("GNOME_VFS_MONITOR_EVENT_CHANGED"); break; case GNOME_VFS_MONITOR_EVENT_DELETED: g_print ("GNOME_VFS_MONITOR_EVENT_DELETED"); break; case GNOME_VFS_MONITOR_EVENT_STARTEXECUTING: g_print ("GNOME_VFS_MONITOR_EVENT_STARTEXECUTING"); break; case GNOME_VFS_MONITOR_EVENT_STOPEXECUTING: g_print ("GNOME_VFS_MONITOR_EVENT_STOPEXECUTING"); break; case GNOME_VFS_MONITOR_EVENT_CREATED: g_print ("GNOME_VFS_MONITOR_EVENT_CREATED"); break; case GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED: g_print ("GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED"); break; default: g_print ("Unknown monitor type, exiting..."); exit (1); } g_print (" (%s)", info_uri); g_print ("\n"); i++; if (i >= 2) exit (0); } int main (int argc, char **argv) { GnomeVFSResult result; gchar *text_uri = "/tmp/"; GnomeVFSMonitorHandle *handle; if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } if (argc == 2) { text_uri = argv[1]; } result = gnome_vfs_monitor_add (&handle, text_uri, GNOME_VFS_MONITOR_DIRECTORY, callback, "user data"); printf ("handle is %p\n", handle); show_result (result, "monitor_add", text_uri); g_timeout_add (1000, timeout_cb, NULL); if (result == GNOME_VFS_OK) { main_loop = g_main_loop_new (NULL, TRUE); g_main_loop_run (main_loop); g_main_loop_unref (main_loop); } g_free (text_uri); return 0; } gnome-vfs-2.24.4/test/test-volumes.c0000644000175000001440000000665611334251016014224 00000000000000#include #include #include static GMainLoop *loop; static void print_volume (GnomeVFSVolume *volume) { char *path, *uri, *name, *icon; GnomeVFSDrive *drive; path = gnome_vfs_volume_get_device_path (volume); uri = gnome_vfs_volume_get_activation_uri (volume); icon = gnome_vfs_volume_get_icon (volume); name = gnome_vfs_volume_get_display_name (volume); drive = gnome_vfs_volume_get_drive (volume); g_print ("vol(%p)[dev: %s, mount: %s, device type: %d, handles_trash: %d, icon: %s, name: %s, user_visible: %d, drive: %p]\n", volume, path?path:"(nil)", uri, gnome_vfs_volume_get_device_type (volume), gnome_vfs_volume_handles_trash (volume), icon, name, gnome_vfs_volume_is_user_visible (volume), drive); g_free (path); g_free (uri); g_free (icon); g_free (name); gnome_vfs_drive_unref (drive); } static void print_drive (GnomeVFSDrive *drive) { char *path, *uri, *name, *icon; GnomeVFSVolume *volume; path = gnome_vfs_drive_get_device_path (drive); uri = gnome_vfs_drive_get_activation_uri (drive); icon = gnome_vfs_drive_get_icon (drive); name = gnome_vfs_drive_get_display_name (drive); volume = gnome_vfs_drive_get_mounted_volume (drive); g_print ("drive(%p)[dev: %s, mount: %s, device type: %d, icon: %s, name: %s, user_visible: %d, volume: %p]\n", drive, path?path:"(nil)", uri, gnome_vfs_drive_get_device_type (drive), icon, name, gnome_vfs_drive_is_user_visible (drive), volume); g_free (path); g_free (uri); g_free (icon); g_free (name); gnome_vfs_volume_unref (volume); } static void volume_mounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume) { g_print ("Volume mounted: "); print_volume (volume); } static void volume_unmounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume) { g_print ("Volume unmounted: "); print_volume (volume); } static void drive_connected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive) { g_print ("drive connected: "); print_drive (drive); } static void drive_disconnected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive) { g_print ("drive disconnected: "); print_drive (drive); } int main (int argc, char *argv[]) { GnomeVFSVolumeMonitor *monitor; GList *l, *volumes, *drives; gnome_vfs_init (); monitor = gnome_vfs_get_volume_monitor (); g_signal_connect (monitor, "volume_mounted", G_CALLBACK (volume_mounted), NULL); g_signal_connect (monitor, "volume_unmounted", G_CALLBACK (volume_unmounted), NULL); g_signal_connect (monitor, "drive_connected", G_CALLBACK (drive_connected), NULL); g_signal_connect (monitor, "drive_disconnected", G_CALLBACK (drive_disconnected), NULL); volumes = gnome_vfs_volume_monitor_get_mounted_volumes (monitor); g_print ("Mounted volumes:\n"); for (l = volumes; l != NULL; l = l->next) { print_volume (l->data); gnome_vfs_volume_unref (l->data); } g_list_free (volumes); drives = gnome_vfs_volume_monitor_get_connected_drives (monitor); g_print ("Connected drives:\n"); for (l = drives; l != NULL; l = l->next) { print_drive (l->data); gnome_vfs_drive_unref (l->data); } g_list_free (drives); g_print ("Waiting for volume events:\n"); loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (loop); gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/test/test-long-cancel.c0000644000175000001440000001265311334251016014706 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* test-long-cancel.c - Test program for the GNOME Virtual File System. Copyright (C) 2005 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ /* This test verifies that cancels work by starting up a "simple webserver" * that just waits forever when you request anything from it. We then cancel * the request after a while and make the request return. This should cause * the request async operation to not be called, and nothing should hang. */ #include #include #include #include #include #ifndef G_OS_WIN32 #include #include #define CLOSE_SOCKET(fd) close (fd) #else #include #define CLOSE_SOCKET(fd) closesocket(fd) typedef int socklen_t; #endif #include #include #include #include #include static GMainLoop *main_loop; static int create_master_socket (int *port) { struct sockaddr_in sin; socklen_t len; int s; int val; memset ((char *)&sin, 0, sizeof (sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = 0; /* Create a socket: */ s = socket (PF_INET, SOCK_STREAM, 0); if (s < 0) { fprintf (stderr, "Error: couldn't create socket!\n"); exit (1); } val = 1; setsockopt (s, SOL_SOCKET, SO_REUSEADDR, (char *) &val, sizeof (val)); /* bind the socket: */ if (bind (s,(struct sockaddr *)&sin, sizeof (sin)) < 0) { fprintf (stderr, "Error: couldn't bind socket to port\n"); exit (1); } if (listen (s, 10) < 0) { fprintf (stderr, "Error: couldn't listen at port\n"); exit (1); } len = sizeof (sin); if (getsockname (s, (struct sockaddr *)&sin, &len) == -1) { fprintf (stderr, "Error: couldn't get port\n"); exit (1); } *port = ntohs (sin.sin_port); return s; } static int client_fd = -1; static gboolean new_client (GIOChannel *channel, GIOCondition cond, gpointer callback_data) { int fd; struct sockaddr_in addr; socklen_t addrlen; fd = g_io_channel_unix_get_fd (channel); addrlen = sizeof (addr); client_fd = accept (fd, (struct sockaddr *) &addr, &addrlen); if (client_fd == -1) { fprintf (stderr, "Error: couldn't accept client\n"); exit (1); } g_print ("Got new client\n"); return TRUE; } static void got_file_info (GnomeVFSAsyncHandle *handle, GList *results, /* GnomeVFSGetFileInfoResult* items */ gpointer callback_data) { GnomeVFSGetFileInfoResult *res; res = results->data; fprintf (stderr, "Error: got file info (%s), shouldn't happen.\n", gnome_vfs_result_to_string (res->result)); exit (1); } static gboolean long_timeout (gpointer data) { fprintf (stderr, "Error: timed out the cancel.\n"); exit (1); return FALSE; } static gboolean quit_ok_timeout (gpointer data) { fprintf (stderr, "correctly cancelled operation\n"); g_main_loop_quit (main_loop); return FALSE; } static gboolean start_cancel_timeout (gpointer data) { GnomeVFSAsyncHandle *handle; handle = data; fprintf (stderr, "cancelling request\n"); gnome_vfs_async_cancel (handle); fprintf (stderr, "cancelled\n"); if (client_fd == -1) { fprintf (stderr, "Error: hasn't gotten client request\n"); exit (1); } fprintf (stderr, "closing client\n"); CLOSE_SOCKET (client_fd); /* Wait a while to make sure get_info doesn't return after the cancel */ g_timeout_add (500, quit_ok_timeout, NULL); return FALSE; } int main (int argc, char *argv[]) { int fd, port; GIOChannel *channel; char *uri; GnomeVFSAsyncHandle *handle; GList *uris; #ifdef G_OS_WIN32 DWORD wVersionRequested = MAKEWORD(2, 2); WSADATA wsaData; if (WSAStartup (wVersionRequested, &wsaData)) { fprintf (stderr, "WSAStartup failed\n"); exit (1); } #endif fprintf (stderr, "Initializing gnome-vfs...\n"); gnome_vfs_init (); main_loop = g_main_loop_new (NULL, TRUE); fd = create_master_socket (&port); channel = g_io_channel_unix_new (fd); g_io_add_watch (channel, G_IO_IN | G_IO_HUP, new_client, NULL); g_io_channel_unref (channel); uri = g_strdup_printf ("http://127.0.0.1:%d/", port); /* uri = "http://gnome.org/"; */ fprintf (stderr, "uri: %s\n", uri); uris = g_list_prepend (NULL, gnome_vfs_uri_new (uri)); gnome_vfs_async_get_file_info (&handle, uris, GNOME_VFS_FILE_INFO_DEFAULT, GNOME_VFS_PRIORITY_DEFAULT, got_file_info, NULL); g_timeout_add (500, start_cancel_timeout, handle); g_timeout_add (10000, long_timeout, NULL); fprintf (stderr, "Main loop running.\n"); g_main_loop_run (main_loop); gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/test/test.output0000644000175000001440000000342411334251016013640 00000000000000Command : '(null)' Command : 'mkdir' Command : 'cp' Command : 'cd' Command : '(null)' Command : '(null)' Command : 'cp' Command : 'mv' Command : 'cp' Command : 'open' Command : 'read' 0 | 9 9 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 | ......GNU.GENERA Command : 'seek' Command : 'read' 0 | 9 9 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 | ......GNU.GENERA Command : 'open' Command : 'read' 0 | 9 9 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 | ......GNU.GENERA Command : 'close' Command : 'close' Command : 'rm' Command : 'rm' Command : '(null)' Command : '(null)' Command : '(null)' Command : '(null)' Command : 'cd' Command : 'mkdir' FAT VERSION: 0 BC: 2 LCB: 1: IMAP START: 0 LENGTH 0 BMAP START: 0 LENGTH 0 INODE: 1( 0): 1: FAT VERSION: 1 BC: 4 LCB: 4: IMAP START: 2 LENGTH 1 BMAP START: 3 LENGTH 1 INODE: 1( 0): 1: Command : 'cp' OPEN BC 4 READ IMAP BLOCK 0 READ BMAP BLOCK 0 FBC 4092 FAT VERSION: 1 BC: 4 LCB: 4: IMAP START: 2 LENGTH 1 BMAP START: 3 LENGTH 1 INODE: 1( 0): 1: close 0.  `File not found' Command : 'cp' close GES/messages.mo `File not found' Command : 'cd' Command : 'open' Command : 'ls' t : 1 bytes t2 : 2 bytes Command : 'open' Command : 'read' 0 | 9 9 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 | ......GNU.GENERA Command : 'read' 0 | 9 9 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 | ......GNU.GENERA Command : 'ls' t : 1 bytes t2 : 2 bytes Command : 'close' closing #1 `Unknown error' Command : 'close' closing #2 `Unknown error' Command : 'cd' Command : 'rm' Command : '(null)' Command : '(null)' Command : 'rm' Command : 'rmdir' Command : 'quit' gnome-vfs-2.24.4/Makefile.am0000644000175000001440000000124611334251016012454 00000000000000SUBDIRS_GNOME=doc schemas SUBDIRS = \ imported \ libgnomevfs \ modules \ daemon \ schemas \ devel-docs \ doc \ programs \ test \ po EXTRA_DIST = \ HACKING \ MAINTAINERS \ TODO \ autogen.sh \ gnome-vfs.spec \ gnome-vfs-zip.in \ gnome-vfs-2.0.pc.in \ gnome-vfs-module-2.0.pc.in \ gtk-doc.make \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ xdgmime.win32.diff pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gnome-vfs-2.0.pc gnome-vfs-module-2.0.pc DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc DISTCLEANFILES = intltool-extract intltool-merge intltool-update gnome-vfs-2.24.4/install-sh0000755000175000001440000003253711450333331012433 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gnome-vfs-2.24.4/missing0000755000175000001440000002623311450333331012022 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gnome-vfs-2.24.4/Makefile.in0000644000175000001440000007177511450333333012505 00000000000000# 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@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/gnome-vfs-2.0.pc.in \ $(srcdir)/gnome-vfs-module-2.0.pc.in \ $(srcdir)/gnome-vfs-zip.in $(srcdir)/gnome-vfs.spec.in \ $(top_srcdir)/configure AUTHORS COPYING COPYING.LIB ChangeLog \ INSTALL NEWS TODO config.guess config.sub depcomp install-sh \ ltmain.sh missing mkinstalldirs 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) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = gnome-vfs.spec gnome-vfs-zip gnome-vfs-2.0.pc \ gnome-vfs-module-2.0.pc CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__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)$(pkgconfigdir)" DATA = $(pkgconfig_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 ETAGS = etags CTAGS = ctags 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)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS_GNOME = doc schemas SUBDIRS = \ imported \ libgnomevfs \ modules \ daemon \ schemas \ devel-docs \ doc \ programs \ test \ po EXTRA_DIST = \ HACKING \ MAINTAINERS \ TODO \ autogen.sh \ gnome-vfs.spec \ gnome-vfs-zip.in \ gnome-vfs-2.0.pc.in \ gnome-vfs-module-2.0.pc.in \ gtk-doc.make \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ xdgmime.win32.diff pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gnome-vfs-2.0.pc gnome-vfs-module-2.0.pc DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc DISTCLEANFILES = intltool-extract intltool-merge intltool-update all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 gnome-vfs.spec: $(top_builddir)/config.status $(srcdir)/gnome-vfs.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ gnome-vfs-zip: $(top_builddir)/config.status $(srcdir)/gnome-vfs-zip.in cd $(top_builddir) && $(SHELL) ./config.status $@ gnome-vfs-2.0.pc: $(top_builddir)/config.status $(srcdir)/gnome-vfs-2.0.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ gnome-vfs-module-2.0.pc: $(top_builddir)/config.status $(srcdir)/gnome-vfs-module-2.0.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || 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)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(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 # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ 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 -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; 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) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ 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-pkgconfigDATA 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-pkgconfigDATA # 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: gnome-vfs-2.24.4/configure0000755000175000001440000244510411450333330012335 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # 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 if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="libgnomevfs/gnome-vfs.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS REBUILD SSH_PROGRAM PERL TOP_BUILDDIR 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 HTML_DIR GTKDOC_MKPDF GTKDOC_REBASE GTKDOC_CHECK SELINUX_LIBS FAM_LIBS HAVE_INOTIFY_FALSE HAVE_INOTIFY_TRUE HAVE_SOLARIS_ACL_FALSE HAVE_SOLARIS_ACL_TRUE HAVE_POSIX_ACL_FALSE HAVE_POSIX_ACL_TRUE ACL_LIBS DBUS_SERVICE_DIR LIBGNOMEVFSDAEMON_LIBS LIBGNOMEVFSDAEMON_CFLAGS LIBGNOMEVFS_LIBS LIBGNOMEVFS_CFLAGS HAL_LIBS HAL_CFLAGS USE_DAEMON_FALSE USE_DAEMON_TRUE HOWL_LIBS HOWL_CFLAGS AVAHI_LIBS AVAHI_CFLAGS HAVE_HOWL_FALSE HAVE_HOWL_TRUE HAVE_AVAHI_FALSE HAVE_AVAHI_TRUE HAVE_SSL_FALSE HAVE_SSL_TRUE LIBGNUTLS_LIBS LIBGNUTLS_CFLAGS LIBGNUTLS_CONFIG OPENSSL_LIBS OPENSSL_CFLAGS SAMBA_LIBS SAMBA_CFLAGS HAVE_SAMBA_FALSE HAVE_SAMBA_TRUE BUILD_CDEMENU_MODULE_FALSE BUILD_CDEMENU_MODULE_TRUE LIBXML_LIBS LIBXML_CFLAGS NEON_SUPPORTS_DAV NEON_LINK_FLAGS NEON_EXTRAOBJS NEONOBJS NEON_OBJEXT NEON_TARGET NEON_BUILD_BUNDLED NEON_LTLIBS NEON_LIBS NEON_CFLAGS NEON_SUPPORTS_ZLIB GSSAPI_CFLAGS GSSAPI_LIBS KRB5_CONFIG CDDA_LIBS HAVE_CDDA_FALSE HAVE_CDDA_TRUE BZ2_LIBS LIBEFS_CFLAGS LIBEFS_LIBS HAVE_LIBEFS_FALSE HAVE_LIBEFS_TRUE VFS_LIBS VFS_INCLUDEDIR VFS_LIBDIR GNOME_VFS_DIR VFS_CFLAGS ENABLE_PROFILER_FALSE ENABLE_PROFILER_TRUE ENABLE_PROFILER VFS_OFFSET_IS VFS_SIZE_IS VFS_OFFSET VFS_SIZE GCONF_SCHEMAS_INSTALL_FALSE GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMA_CONFIG_SOURCE GCONFTOOL LIBOBJS ALLOCA MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES CATOBJEXT CATALOGS MSGFMT_OPTS GETTEXT_PACKAGE WARN_CFLAGS TEST_LIBS TEST_CFLAGS MODULES_XML_GCONF_LIBS MODULES_XML_GCONF_CFLAGS MODULES_GCONF_LIBS MODULES_GCONF_CFLAGS MODULES_FILE_LIBS MODULES_FILE_CFLAGS MODULES_LIBS MODULES_CFLAGS MODULES_XML_LIBS MODULES_XML_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG LIBTOOL_EXPORT_OPTIONS XML_REQUIRED GLIB_REQUIRED GCONF_REQUIRED OS_WIN32_FALSE OS_WIN32_TRUE DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED LIBTOOL OBJDUMP DLLTOOL AS host_os host_vendor host_cpu host build_os build_vendor build_cpu build CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE ACLOCAL_AMFLAGS am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM LIBGNOMEVFS_VERSION LIBGNOMEVFS_AGE LIBGNOMEVFS_REVISION LIBGNOMEVFS_CURRENT LIBGNOMEVFS_BINARY_AGE LIBGNOMEVFS_INTERFACE_AGE LIBGNOMEVFS_MICRO_VERSION LIBGNOMEVFS_MINOR_VERSION LIBGNOMEVFS_MAJOR_VERSION target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_nls enable_compile_warnings enable_iso_c with_gconf_source with_gconf_schema_file_dir enable_schemas_install enable_profiler enable_more_warnings enable_cdda with_zlib enable_http_debug enable_samba with_samba_includes with_samba_libs enable_openssl with_openssl_includes with_openssl_libs enable_gnutls with_libgnutls_prefix enable_avahi enable_howl enable_daemon enable_hal with_hal_mount with_hal_umount with_hal_eject enable_ipv6 with_dbus_service_dir enable_fam enable_selinux with_html_dir enable_gtk_doc enable_gtk_doc_html enable_gtk_doc_pdf with_afs enable_rebuilds ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR MODULES_XML_CFLAGS MODULES_XML_LIBS MODULES_CFLAGS MODULES_LIBS MODULES_FILE_CFLAGS MODULES_FILE_LIBS MODULES_GCONF_CFLAGS MODULES_GCONF_LIBS MODULES_XML_GCONF_CFLAGS MODULES_XML_GCONF_LIBS TEST_CFLAGS TEST_LIBS LIBXML_CFLAGS LIBXML_LIBS OPENSSL_CFLAGS OPENSSL_LIBS AVAHI_CFLAGS AVAHI_LIBS HOWL_CFLAGS HOWL_LIBS HAL_CFLAGS HAL_LIBS LIBGNOMEVFS_CFLAGS LIBGNOMEVFS_LIBS LIBGNOMEVFSDAEMON_CFLAGS LIBGNOMEVFSDAEMON_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --enable-compile-warnings=[no/minimum/yes/maximum/error] Turn on compiler warnings --enable-iso-c Try to warn if code is not ISO C --disable-schemas-install Disable the schemas installation --enable-profiler Enable profiler --enable-more-warnings Maximum compiler warnings --enable-cdda Enable cdda module (not recommended) --enable-http-debug Enable HTTP method debugging --disable-samba build without samba support --disable-openssl build without openssl support --enable-gnutls build with gnutls support --disable-avahi build without avahi support --disable-howl build without howl support --enable-daemon enable gnome-vfs-daemon --enable-hal use hal, if available --enable-ipv6 enable IPv6 extensions --disable-fam build without enabling fam for file system monitoring --disable-selinux build without selinux 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]] --disable-rebuilds disable all source autogeneration rules Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-gconf-source=sourceaddress Config database for installing schema files. --with-gconf-schema-file-dir=dir Directory for installing schema files. --without-zlib disable zlib support --with-samba-includes=PREFIX Location of samba includes. --with-samba-libs=PREFIX Location of Samba libs. --with-openssl-includes=PREFIX Location of OpenSSL includes. --with-openssl-libs=PREFIX Location of OpenSSL libs. --with-libgnutls-prefix=PFX Prefix where libgnutls is installed (optional) --with-hal-mount=PROGRAM Program for mounting filesystems known to HAL (not used if gnome-mount is installed) --with-hal-umount=PROGRAM Program for unmounting filesystems known to HAL (not used if gnome-mount is installed) --with-hal-eject=PROGRAM Program for ejecting filesystems known to HAL (not used if gnome-mount is installed) --with-dbus-service-dir=PATH choose directory for dbus service files, default=PREFIX/share/dbus-1/services --with-html-dir=PATH path to installed docs --with-afs support -fstype afs Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path MODULES_XML_CFLAGS C compiler flags for MODULES_XML, overriding pkg-config MODULES_XML_LIBS linker flags for MODULES_XML, overriding pkg-config MODULES_CFLAGS C compiler flags for MODULES, overriding pkg-config MODULES_LIBS linker flags for MODULES, overriding pkg-config MODULES_FILE_CFLAGS C compiler flags for MODULES_FILE, overriding pkg-config MODULES_FILE_LIBS linker flags for MODULES_FILE, overriding pkg-config MODULES_GCONF_CFLAGS C compiler flags for MODULES_GCONF, overriding pkg-config MODULES_GCONF_LIBS linker flags for MODULES_GCONF, overriding pkg-config MODULES_XML_GCONF_CFLAGS C compiler flags for MODULES_XML_GCONF, overriding pkg-config MODULES_XML_GCONF_LIBS linker flags for MODULES_XML_GCONF, overriding pkg-config TEST_CFLAGS C compiler flags for TEST, overriding pkg-config TEST_LIBS linker flags for TEST, overriding pkg-config LIBXML_CFLAGS C compiler flags for LIBXML, overriding pkg-config LIBXML_LIBS linker flags for LIBXML, overriding pkg-config OPENSSL_CFLAGS C compiler flags for OPENSSL, overriding pkg-config OPENSSL_LIBS linker flags for OPENSSL, overriding pkg-config AVAHI_CFLAGS C compiler flags for AVAHI, overriding pkg-config AVAHI_LIBS linker flags for AVAHI, overriding pkg-config HOWL_CFLAGS C compiler flags for HOWL, overriding pkg-config HOWL_LIBS linker flags for HOWL, overriding pkg-config HAL_CFLAGS C compiler flags for HAL, overriding pkg-config HAL_LIBS linker flags for HAL, overriding pkg-config LIBGNOMEVFS_CFLAGS C compiler flags for LIBGNOMEVFS, overriding pkg-config LIBGNOMEVFS_LIBS linker flags for LIBGNOMEVFS, overriding pkg-config LIBGNOMEVFSDAEMON_CFLAGS C compiler flags for LIBGNOMEVFSDAEMON, overriding pkg-config LIBGNOMEVFSDAEMON_LIBS linker flags for LIBGNOMEVFSDAEMON, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } if eval "test \"\${$4+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_member # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_decl # 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 $as_me, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Making releases: # LIBGNOMEVFS_MICRO_VERSION += 1; # LIBGNOMEVFS_INTERFACE_AGE += 1; # if any functions have been added, set LIBGNOMEVFS_INTERFACE_AGE to 0. # if backwards compatibility has been broken, # set LIBGNOMEVFS_BINARY_AGE and LIBGNOMEVFS_INTERFACE_AGE to 0. # LIBGNOMEVFS_MAJOR_VERSION=2 LIBGNOMEVFS_MINOR_VERSION=24 LIBGNOMEVFS_MICRO_VERSION=4 LIBGNOMEVFS_INTERFACE_AGE=4 # If you need a modifier for the version number. # Normally empty, but can be used to make "fixup" releases. LIBGNOMEVFS_EXTRAVERSION= LIBGNOMEVFS_CURRENT=`expr 100 '*' $LIBGNOMEVFS_MINOR_VERSION + $LIBGNOMEVFS_MICRO_VERSION - $LIBGNOMEVFS_INTERFACE_AGE` LIBGNOMEVFS_BINARY_AGE=`expr 100 '*' $LIBGNOMEVFS_MINOR_VERSION + $LIBGNOMEVFS_MICRO_VERSION` LIBGNOMEVFS_REVISION=$LIBGNOMEVFS_INTERFACE_AGE LIBGNOMEVFS_AGE=`expr $LIBGNOMEVFS_BINARY_AGE - $LIBGNOMEVFS_INTERFACE_AGE` LIBGNOMEVFS_VERSION=$LIBGNOMEVFS_MAJOR_VERSION.$LIBGNOMEVFS_MINOR_VERSION.$LIBGNOMEVFS_MICRO_VERSION$LIBGNOMEVFS_EXTRAVERSION ac_config_headers="$ac_config_headers config.h" am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=gnome-vfs VERSION=$LIBGNOMEVFS_VERSION cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ACLOCAL_AMFLAGS="$ACLOCAL_FLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}" if test -n "$ac_macro_dir"; then ACLOCAL_AMFLAGS="-I $ac_macro_dir $ACLOCAL_AMFLAGS" fi DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # 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 am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if test "${ac_cv_search_strerror+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat 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 strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then : break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" 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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # 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 am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AS+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DLLTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 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" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $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 $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 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 test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $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 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR 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 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. 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 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" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" 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 test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" 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 DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:6357: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:6360: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:6363: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" 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; ;; 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; ;; 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 ;; 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$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 fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${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"}, \ = c,a/b,, \ && 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 lt_unset=false fi # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in 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 ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= 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 ;; beos*) lt_cv_deplibs_check_method=pass_all ;; 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' ;; 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 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' 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_cv_deplibs_check_method=pass_all ;; 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 ;; gnu*) 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]) 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)$' ;; 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 ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; 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 ;; 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 ;; *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 ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; 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 ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # 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 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 # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [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 "$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 # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # 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'" # 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 # 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" # 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 # Check to see that the pipe works correctly. pipe_works=no 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 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 # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" 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 #ifdef __cplusplus extern "C" { #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. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@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 #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" 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 pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # 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 # 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 { { 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 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 7565 "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 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* ;; 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 { { 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 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" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu 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 # 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 { { 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 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 need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" 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 DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" 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 NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" 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 LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" 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 OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" 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 OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # 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" >&5 $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 >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi 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 test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext 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; } 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 "$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" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; 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 else enable_shared=yes fi # 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=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; 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 else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null 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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF 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 # 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. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # 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' # 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 for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) 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 ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do 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 -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 fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi 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; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) 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 ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do 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 -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 fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi 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; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" 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 # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # 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 # save warnings/boilerplate of simple test code 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* 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* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # 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:8951: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8955: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-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_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; 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 lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; 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_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-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). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-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_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # 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='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # 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:9290: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9294: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" 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 # 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>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* 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 : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null 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:9395: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9399: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $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* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null 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:9450: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9454: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $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* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $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;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no 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 inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # 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'. 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 # 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. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # 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 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' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [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 ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) 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_expsym_cmds='' ;; m68k) archive_cmds='$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)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 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' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' 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' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no 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' ;; gnu* | linux* | tpf* | k*bsd*-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= 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # 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; $ECHO \"$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 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; 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; $ECHO \"$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' if test "x$supports_anon_versioning" = xyes; 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' fi case $cc_basename in xlf*) # 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' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; 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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else 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' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=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_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** 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. _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 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 ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 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 ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$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. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no 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 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")) && (substr(\$ 3,1,1) != ".")) { 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' 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 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. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${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 hardcode_direct=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 hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= 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 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 # 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. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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' 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" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # 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' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' 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' fi fi ;; amigaos*) 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_expsym_cmds='' ;; m68k) archive_cmds='$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)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-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. hardcode_libdir_flag_spec=' ' allow_undefined_flag=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. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_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=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 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 fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' 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 # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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' fi 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' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${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' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes 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 fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) 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}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes 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 ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -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. 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) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; 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_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) 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 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' 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 fi else ld_shlibs=no fi ;; os2*) 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' ;; 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' 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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${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 ${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_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' ;; *) 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' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=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 whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; 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. 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 hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) 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' 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' 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. 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_separator=':' link_all_deplibs=yes 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' 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' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds 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. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${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; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` 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 case $host_os in aix3*) version_type=linux 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 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' 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=`$ECHO "X$lib" | $Xsed -e '\''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 ;; 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 ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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 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}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; 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 ;; freebsd1*) dynamic_linker=no ;; 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 ;; 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 ;; 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' ;; 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 ;; 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 ;; # This must be Linux ELF. linux* | k*bsd*-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 save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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 # 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;/^$/d' | tr '\n' ' '` 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 # 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' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; 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' ;; 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 ;; 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 ;; 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 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 "$with_gnu_ld" = yes; 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' 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 ;; 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' ;; 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 ;; 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 ;; *) dynamic_linker=no ;; 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 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != 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, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $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 # 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 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 ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # 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 test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat 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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat 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 shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=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_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat 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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat 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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=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_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat 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 dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=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_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac 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" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11817 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #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 /* 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 void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF 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} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11913 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #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 /* 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 void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF 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} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" 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 striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $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; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which 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 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } 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 CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.35.0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5 $as_echo_n "checking for intltool >= 0.35.0... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.35.0 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi 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 $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; 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 case $host in *-*-mingw*) os_win32=yes # We do have getaddrinfo # But only on XP, so don't use it as Win2000 is still widespread # AC_CACHE_VAL(ac_cv_func_getaddrinfo, [ac_cv_func_getaddrinfo=yes]) # No dbus on Win32 (yet, at least) dbus_requirement="" # Thus also no gnome-vfs-daemon on Win32 enable_daemon_default=no ;; *) os_win32=no dbus_requirement="dbus-glib-1 >= 0.60" enable_daemon_default=yes ;; esac if test "$os_win32" = "yes"; then OS_WIN32_TRUE= OS_WIN32_FALSE='#' else OS_WIN32_TRUE='#' OS_WIN32_FALSE= fi $as_echo "#define _GNU_SOURCE 1" >>confdefs.h GCONF_REQUIRED=1.1.1 GLIB_REQUIRED=2.9.3 XML_REQUIRED=2.6.0 LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[^_].*"' 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 test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $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 pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODULES_XML" >&5 $as_echo_n "checking for MODULES_XML... " >&6; } if test -n "$MODULES_XML_CFLAGS"; then pkg_cv_MODULES_XML_CFLAGS="$MODULES_XML_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED libxml-2.0 >= \$XML_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_XML_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MODULES_XML_LIBS"; then pkg_cv_MODULES_XML_LIBS="$MODULES_XML_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED libxml-2.0 >= \$XML_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_XML_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MODULES_XML_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED" 2>&1` else MODULES_XML_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MODULES_XML_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED) were not met: $MODULES_XML_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MODULES_XML_CFLAGS and MODULES_XML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MODULES_XML_CFLAGS and MODULES_XML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MODULES_XML_CFLAGS=$pkg_cv_MODULES_XML_CFLAGS MODULES_XML_LIBS=$pkg_cv_MODULES_XML_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODULES" >&5 $as_echo_n "checking for MODULES... " >&6; } if test -n "$MODULES_CFLAGS"; then pkg_cv_MODULES_CFLAGS="$MODULES_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MODULES_LIBS"; then pkg_cv_MODULES_LIBS="$MODULES_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MODULES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED" 2>&1` else MODULES_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MODULES_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED) were not met: $MODULES_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MODULES_CFLAGS and MODULES_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MODULES_CFLAGS and MODULES_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MODULES_CFLAGS=$pkg_cv_MODULES_CFLAGS MODULES_LIBS=$pkg_cv_MODULES_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODULES_FILE" >&5 $as_echo_n "checking for MODULES_FILE... " >&6; } if test -n "$MODULES_FILE_CFLAGS"; then pkg_cv_MODULES_FILE_CFLAGS="$MODULES_FILE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_FILE_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MODULES_FILE_LIBS"; then pkg_cv_MODULES_FILE_LIBS="$MODULES_FILE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_FILE_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MODULES_FILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>&1` else MODULES_FILE_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MODULES_FILE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED) were not met: $MODULES_FILE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MODULES_FILE_CFLAGS and MODULES_FILE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MODULES_FILE_CFLAGS and MODULES_FILE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MODULES_FILE_CFLAGS=$pkg_cv_MODULES_FILE_CFLAGS MODULES_FILE_LIBS=$pkg_cv_MODULES_FILE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODULES_GCONF" >&5 $as_echo_n "checking for MODULES_GCONF... " >&6; } if test -n "$MODULES_GCONF_CFLAGS"; then pkg_cv_MODULES_GCONF_CFLAGS="$MODULES_GCONF_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_GCONF_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MODULES_GCONF_LIBS"; then pkg_cv_MODULES_GCONF_LIBS="$MODULES_GCONF_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_GCONF_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MODULES_GCONF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>&1` else MODULES_GCONF_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MODULES_GCONF_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED) were not met: $MODULES_GCONF_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MODULES_GCONF_CFLAGS and MODULES_GCONF_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MODULES_GCONF_CFLAGS and MODULES_GCONF_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MODULES_GCONF_CFLAGS=$pkg_cv_MODULES_GCONF_CFLAGS MODULES_GCONF_LIBS=$pkg_cv_MODULES_GCONF_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODULES_XML_GCONF" >&5 $as_echo_n "checking for MODULES_XML_GCONF... " >&6; } if test -n "$MODULES_XML_GCONF_CFLAGS"; then pkg_cv_MODULES_XML_GCONF_CFLAGS="$MODULES_XML_GCONF_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED libxml-2.0 >= \$XML_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_XML_GCONF_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$MODULES_XML_GCONF_LIBS"; then pkg_cv_MODULES_XML_GCONF_LIBS="$MODULES_XML_GCONF_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED libxml-2.0 >= \$XML_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_MODULES_XML_GCONF_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then MODULES_XML_GCONF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>&1` else MODULES_XML_GCONF_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$MODULES_XML_GCONF_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED libxml-2.0 >= $XML_REQUIRED gconf-2.0 >= $GCONF_REQUIRED) were not met: $MODULES_XML_GCONF_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables MODULES_XML_GCONF_CFLAGS and MODULES_XML_GCONF_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables MODULES_XML_GCONF_CFLAGS and MODULES_XML_GCONF_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else MODULES_XML_GCONF_CFLAGS=$pkg_cv_MODULES_XML_GCONF_CFLAGS MODULES_XML_GCONF_LIBS=$pkg_cv_MODULES_XML_GCONF_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TEST" >&5 $as_echo_n "checking for TEST... " >&6; } if test -n "$TEST_CFLAGS"; then pkg_cv_TEST_CFLAGS="$TEST_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gconf-2.0 >= \$GCONF_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_TEST_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$TEST_LIBS"; then pkg_cv_TEST_LIBS="$TEST_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gconf-2.0 >= \$GCONF_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_TEST_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then TEST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED" 2>&1` else TEST_PKG_ERRORS=`$PKG_CONFIG --print-errors "gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$TEST_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gconf-2.0 >= $GCONF_REQUIRED gthread-2.0 >= $GLIB_REQUIRED) were not met: $TEST_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables TEST_CFLAGS and TEST_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables TEST_CFLAGS and TEST_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else TEST_CFLAGS=$pkg_cv_TEST_CFLAGS TEST_LIBS=$pkg_cv_TEST_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi cflags_set=yes # Check whether --enable-compile-warnings was given. if test "${enable_compile_warnings+set}" = set; then : enableval=$enable_compile_warnings; else enable_compile_warnings="yes" fi warnCFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi warning_flags= realsave_CFLAGS="$CFLAGS" case "$enable_compile_warnings" in no) warning_flags= ;; minimum) warning_flags="-Wall" ;; yes) warning_flags="-Wall -Wmissing-prototypes" ;; maximum|error) warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" CFLAGS="$warning_flags $CFLAGS" for option in -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 $as_echo_n "checking whether gcc understands $option... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : has_option=yes else has_option=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5 $as_echo "$has_option" >&6; } if test $has_option = yes; then warning_flags="$warning_flags $option" fi unset has_option unset SAVE_CFLAGS done unset option if test "$enable_compile_warnings" = "error" ; then warning_flags="$warning_flags -Werror" fi ;; *) as_fn_error $? "Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" "$LINENO" 5 ;; esac CFLAGS="$realsave_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 $as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $warning_flags" >&5 $as_echo "$warning_flags" >&6; } # Check whether --enable-iso-c was given. if test "${enable_iso_c+set}" = set; then : enableval=$enable_iso_c; else enable_iso_c=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking what language compliance flags to pass to the C compiler" >&5 $as_echo_n "checking what language compliance flags to pass to the C compiler... " >&6; } complCFLAGS= if test "x$enable_iso_c" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *\ \ -ansi\ \ *) ;; *) complCFLAGS="$complCFLAGS -ansi" ;; esac case " $CFLAGS " in *\ \ -pedantic\ \ *) ;; *) complCFLAGS="$complCFLAGS -pedantic" ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $complCFLAGS" >&5 $as_echo "$complCFLAGS" >&6; } WARN_CFLAGS="$warning_flags $complCFLAGS" VFS_CFLAGS="$warnCFLAGS $complCFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sem_wait" >&5 $as_echo_n "checking for library containing sem_wait... " >&6; } if test "${ac_cv_search_sem_wait+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sem_wait (); int main () { return sem_wait (); ; return 0; } _ACEOF for ac_lib in '' rt; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_sem_wait=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_sem_wait+set}" = set; then : break fi done if test "${ac_cv_search_sem_wait+set}" = set; then : else ac_cv_search_sem_wait=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sem_wait" >&5 $as_echo "$ac_cv_search_sem_wait" >&6; } ac_res=$ac_cv_search_sem_wait if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sem_wait" >&5 $as_echo_n "checking for library containing sem_wait... " >&6; } if test "${ac_cv_search_sem_wait+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sem_wait (); int main () { return sem_wait (); ; return 0; } _ACEOF for ac_lib in '' sem; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_sem_wait=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_sem_wait+set}" = set; then : break fi done if test "${ac_cv_search_sem_wait+set}" = set; then : else ac_cv_search_sem_wait=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sem_wait" >&5 $as_echo "$ac_cv_search_sem_wait" >&6; } ac_res=$ac_cv_search_sem_wait if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking size_t in " >&5 $as_echo_n "checking size_t in ... " >&6; } if test "${ac_cv_type_size_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if STDC_HEADERS #include #include #endif int main () { size_t foo; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_size_t=yes else ac_cv_type_size_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_size_t" >&5 $as_echo "$ac_cv_type_size_t" >&6; } if test $ac_cv_type_size_t = no; then $as_echo "#define size_t unsigned" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking off_t in " >&5 $as_echo_n "checking off_t in ... " >&6; } if test "${ac_cv_type_off_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if STDC_HEADERS #include #include #endif int main () { off_t foo; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_off_t=yes else ac_cv_type_off_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_off_t" >&5 $as_echo "$ac_cv_type_off_t" >&6; } if test $ac_cv_type_off_t = no; then $as_echo "#define off_t long" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for off64_t" >&5 $as_echo_n "checking for off64_t... " >&6; } if test "${ac_cv_have_off64_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define _LARGEFILE64_SOURCE # include int main () { off64_t testoffset ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_have_off64_t=yes else ac_cv_have_off64_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_off64_t" >&5 $as_echo "$ac_cv_have_off64_t" >&6; } if test x"$ac_cv_have_off64_t" = "xyes" ; then $as_echo "#define HAVE_OFF64_T 1" >>confdefs.h fi GETTEXT_PACKAGE=gnome-vfs-2.0 cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = x""yes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat 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 bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=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_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat 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 ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=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_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat 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 dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=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_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat 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 ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=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_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat 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 dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=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_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi 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 : CATOBJEXT=.gmo 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" = x""yes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES for ac_func in ngettext do : ac_fn_c_check_func "$LINENO" "ngettext" "ac_cv_func_ngettext" if test "x$ac_cv_func_ngettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NGETTEXT 1 _ACEOF have_ngettext=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat 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 ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=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_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : have_ngettext=yes fi fi done if test x"$have_ngettext" != "xyes"; then as_fn_error $? "Your Gettext installation doesn't seem to support ngettext to handle translation of plural forms. Please install GNU Gettext" "$LINENO" 5 fi; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostent" >&5 $as_echo_n "checking for library containing gethostent... " >&6; } if test "${ac_cv_search_gethostent+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostent (); int main () { return gethostent (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostent=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_gethostent+set}" = set; then : break fi done if test "${ac_cv_search_gethostent+set}" = set; then : else ac_cv_search_gethostent=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostent" >&5 $as_echo "$ac_cv_search_gethostent" >&6; } ac_res=$ac_cv_search_gethostent if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5 $as_echo_n "checking for library containing setsockopt... " >&6; } if test "${ac_cv_search_setsockopt+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char setsockopt (); int main () { return setsockopt (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_setsockopt=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_setsockopt+set}" = set; then : break fi done if test "${ac_cv_search_setsockopt+set}" = set; then : else ac_cv_search_setsockopt=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5 $as_echo "$ac_cv_search_setsockopt" >&6; } ac_res=$ac_cv_search_setsockopt if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing login_tty" >&5 $as_echo_n "checking for library containing login_tty... " >&6; } if test "${ac_cv_search_login_tty+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char login_tty (); int main () { return login_tty (); ; return 0; } _ACEOF for ac_lib in '' util; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_login_tty=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_login_tty+set}" = set; then : break fi done if test "${ac_cv_search_login_tty+set}" = set; then : else ac_cv_search_login_tty=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_login_tty" >&5 $as_echo "$ac_cv_search_login_tty" >&6; } ac_res=$ac_cv_search_login_tty if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_LOGIN_TTY /**/" >>confdefs.h fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if test "${ac_cv_working_alloca_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if test "${ac_cv_func_alloca_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if test "${ac_cv_os_cray+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if test "${ac_cv_c_stack_direction+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction () { static char *addr = 0; auto char dummy; if (addr == 0) { addr = &dummy; return find_stack_direction (); } else return (&dummy > addr) ? 1 : -1; } int main () { return find_stack_direction () < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi for ac_func in getdtablesize open64 lseek64 statfs statvfs seteuid setegid setresuid setresgid readdir_r mbrtowc inet_pton getdelim sysctlbyname poll posix_fadvise fchmod atoll mmap do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" if test "x$ac_cv_member_struct_stat_st_blksize" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 _ACEOF fi ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" if test "x$ac_cv_member_struct_stat_st_rdev" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_RDEV 1 _ACEOF fi ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLOCKS 1 _ACEOF $as_echo "#define HAVE_ST_BLOCKS 1" >>confdefs.h else case " $LIBOBJS " in *" fileblocks.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fileblocks.$ac_objext" ;; esac fi for ac_func in setmntent endmntent hasmntopt getmntinfo do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in mntent.h sys/mnttab.h sys/vfstab.h sys/cdio.h sys/mount.h sys/mntctl.h sys/vfs.h sys/vmount.h sys/sysctl.h fstab.h fnmatch.h util.h sys/sysmacros.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Extract the first word of "gconftool-2", so it can be a program name with args. set dummy gconftool-2; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GCONFTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GCONFTOOL in [\\/]* | ?:[\\/]*) ac_cv_path_GCONFTOOL="$GCONFTOOL" # 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_GCONFTOOL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GCONFTOOL" && ac_cv_path_GCONFTOOL="no" ;; esac fi GCONFTOOL=$ac_cv_path_GCONFTOOL if test -n "$GCONFTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONFTOOL" >&5 $as_echo "$GCONFTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$GCONFTOOL" = xno; then as_fn_error $? "gconftool-2 executable not found in your path - should be installed with GConf" "$LINENO" 5 fi if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source` else GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE fi # Check whether --with-gconf-source was given. if test "${with_gconf_source+set}" = set; then : withval=$with_gconf_source; GCONF_SCHEMA_CONFIG_SOURCE="$withval" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5 $as_echo "Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; } if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' fi # Check whether --with-gconf-schema-file-dir was given. if test "${with_gconf_schema_file_dir+set}" = set; then : withval=$with_gconf_schema_file_dir; GCONF_SCHEMA_FILE_DIR="$withval" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5 $as_echo "Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; } # Check whether --enable-schemas-install was given. if test "${enable_schemas_install+set}" = set; then : enableval=$enable_schemas_install; case ${enableval} in yes|no) ;; *) as_fn_error $? "bad value ${enableval} for --enable-schemas-install" "$LINENO" 5 ;; esac fi if test "$enable_schemas_install" != no; then GCONF_SCHEMAS_INSTALL_TRUE= GCONF_SCHEMAS_INSTALL_FALSE='#' else GCONF_SCHEMAS_INSTALL_TRUE='#' GCONF_SCHEMAS_INSTALL_FALSE= fi VFS_SIZE="guint64" VFS_OFFSET="gint64" VFS_SIZE_IS="UNSIGNED_LONG_LONG" VFS_OFFSET_IS="LONG_LONG" for ac_header in sys/param.h sys/resource.h sys/vfs.h sys/mount.h sys/statfs.h sys/statvfs.h sys/param.h wctype.h sys/poll.h poll.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_member "$LINENO" "struct statfs" "f_type" "ac_cv_member_struct_statfs_f_type" "#ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif " if test "x$ac_cv_member_struct_statfs_f_type" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATFS_F_TYPE 1 _ACEOF else ac_fn_c_check_member "$LINENO" "struct statfs" "f_fstyp" "ac_cv_member_struct_statfs_f_fstyp" "#ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif " if test "x$ac_cv_member_struct_statfs_f_fstyp" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATFS_F_FSTYP 1 _ACEOF fi fi if test "$ac_cv_func_statfs" = yes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking number of arguments to statfs()" >&5 $as_echo_n "checking number of arguments to statfs()... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif int main () { struct statfs st; statfs(NULL, &st); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2" >&5 $as_echo "2" >&6; } $as_echo "#define STATFS_ARGS 2" >>confdefs.h else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif int main () { struct statfs st; statfs(NULL, &st, sizeof (st), 0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: 4" >&5 $as_echo "4" >&6; } $as_echo "#define STATFS_ARGS 4" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } as_fn_error $? "unable to determine number of arguments to statfs()" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 $as_echo_n "checking for mbstate_t... " >&6; } if test "${ac_cv_type_mbstate_t+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default # include int main () { mbstate_t x; return sizeof x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_mbstate_t=yes else ac_cv_type_mbstate_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5 $as_echo "$ac_cv_type_mbstate_t" >&6; } if test $ac_cv_type_mbstate_t = yes; then $as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h else $as_echo "#define mbstate_t int" >>confdefs.h fi for ac_func in dirname do : ac_fn_c_check_func "$LINENO" "dirname" "ac_cv_func_dirname" if test "x$ac_cv_func_dirname" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DIRNAME 1 _ACEOF for ac_header in libgen.h do : ac_fn_c_check_header_mongrel "$LINENO" "libgen.h" "ac_cv_header_libgen_h" "$ac_includes_default" if test "x$ac_cv_header_libgen_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBGEN_H 1 _ACEOF fi done else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dirname" >&5 $as_echo_n "checking for library containing dirname... " >&6; } if test "${ac_cv_search_dirname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dirname (); int main () { return dirname (); ; return 0; } _ACEOF for ac_lib in '' gen; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_dirname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_dirname+set}" = set; then : break fi done if test "${ac_cv_search_dirname+set}" = set; then : else ac_cv_search_dirname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dirname" >&5 $as_echo "$ac_cv_search_dirname" >&6; } ac_res=$ac_cv_search_dirname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi done ENABLE_PROFILER= # Check whether --enable-profiler was given. if test "${enable_profiler+set}" = set; then : enableval=$enable_profiler; ENABLE_PROFILER=1 $as_echo "#define ENABLE_PROFILER 1" >>confdefs.h fi if test "$ENABLE_PROFILER" = 1; then CFLAGS="-g -O -gdwarf-2 -finstrument-functions -D__NO_STRING_INLINES" LDFLAGS="/gnome/PROFILE/lib/libprofiler.so -lpthread" fi if test "$ENABLE_PROFILER" = 1; then ENABLE_PROFILER_TRUE= ENABLE_PROFILER_FALSE='#' else ENABLE_PROFILER_TRUE='#' ENABLE_PROFILER_FALSE= fi # Check whether --enable-more-warnings was given. if test "${enable_more_warnings+set}" = set; then : enableval=$enable_more_warnings; set_more_warnings="$enableval" else if test -f $srcdir/CVSVERSION; then set_more_warnings=yes else set_more_warnings=no fi fi if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then echo "enable compile warnings = $set_more_warnings" VFS_CFLAGS="-Wall \ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith" for option in -fno-strict-aliasing -Wno-strict-aliasing -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$VFS_CFLAGS $option $CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 $as_echo_n "checking whether gcc understands $option... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : has_option=yes else has_option=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$SAVE_CFLAGS" if test $has_option = yes; then VFS_CFLAGS="$VFS_CFLAGS $option" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5 $as_echo "$has_option" >&6; } unset has_option unset SAVE_CFLAGS done unset option fi GNOME_VFS_DIR=`(cd $srcdir; pwd)` VFS_LIBS="-lgnomevfs $VFS_GLIB_LIBS" VFS_LIBDIR='-L${libdir}' VFS_INCLUDEDIR='-I${includedir} -I${libdir}/vfs/include'" $VFS_GLIB_CFLAGS" if false; then HAVE_LIBEFS_TRUE= HAVE_LIBEFS_FALSE='#' else HAVE_LIBEFS_TRUE='#' HAVE_LIBEFS_FALSE= fi LIBEFS_LIBS="" LIBEFS_CFLAGS="" have_socket=no for ac_func in socket do : ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" if test "x$ac_cv_func_socket" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SOCKET 1 _ACEOF have_socket=yes fi done if test $have_socket = no; then # socket is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_socket" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -l$lib" >&5 $as_echo_n "checking for socket in -l$lib... " >&6; } if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$lib $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 socket (); int main () { return socket (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : LIBS="$LIBS -l$lib" have_socket=yes $as_echo "#define HAVE_SOCKET 1" >>confdefs.h break fi done fi for ac_func in inet_ntop do : ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" if test "x$ac_cv_func_inet_ntop" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INET_NTOP 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bzCompressInit in -lbz2" >&5 $as_echo_n "checking for bzCompressInit in -lbz2... " >&6; } if test "${ac_cv_lib_bz2_bzCompressInit+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbz2 $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 bzCompressInit (); int main () { return bzCompressInit (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_bz2_bzCompressInit=yes else ac_cv_lib_bz2_bzCompressInit=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_bz2_bzCompressInit" >&5 $as_echo "$ac_cv_lib_bz2_bzCompressInit" >&6; } if test "x$ac_cv_lib_bz2_bzCompressInit" = x""yes; then : $as_echo "#define HAVE_OLDER_BZIP2 1" >>confdefs.h fi for ac_header in bzlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" if test "x$ac_cv_header_bzlib_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BZLIB_H 1 _ACEOF BZ2_LIBS="$BZ2_LIBS -lbz2" else as_fn_error $? "Gnome-vfs requires libbz2 to compile." "$LINENO" 5 fi done if test $have_socket = yes; then av_struct_linger=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct linger is available" >&5 $as_echo_n "checking struct linger is available... " >&6; } if test "$cross_compiling" = yes; then : av_struct_linger=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct linger li; main () { li.l_onoff = 1; li.l_linger = 120; exit (0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : $as_echo "#define HAVE_STRUCT_LINGER 1" >>confdefs.h av_struct_linger=yes else av_struct_linger=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $av_struct_linger" >&5 $as_echo "$av_struct_linger" >&6; } fi have_cdda=no # Check whether --enable-cdda was given. if test "${enable_cdda+set}" = set; then : enableval=$enable_cdda; if test "x$enable_cdda" != "xno"; then for ac_header in cdda_interface.h cdda_paranoia.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF CDDA_LIBS="$CDDA_LIBS -lcdda_paranoia -lcdda_interface" have_cdda=yes fi done if test "$have_cdda" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cdparanoia uses FreeBSD's libcam" >&5 $as_echo_n "checking whether cdparanoia uses FreeBSD's libcam... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void) { struct cdrom_drive cd; void *v = (void *) cd.dev; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_CDDA_WITH_LIBCAM 1" >>confdefs.h cdda_with_libcam=yes else cdda_with_libcam=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cdda_with_libcam" >&5 $as_echo "$cdda_with_libcam" >&6; } fi fi fi if test $have_cdda = yes; then HAVE_CDDA_TRUE= HAVE_CDDA_FALSE='#' else HAVE_CDDA_TRUE='#' HAVE_CDDA_FALSE= fi have_gssapi=no # Extract the first word of "krb5-config", so it can be a program name with args. set dummy krb5-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 test "${ac_cv_path_KRB5_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $KRB5_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_KRB5_CONFIG="$KRB5_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/kerberos/bin" for as_dir in $as_dummy 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_KRB5_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_KRB5_CONFIG" && ac_cv_path_KRB5_CONFIG="none" ;; esac fi KRB5_CONFIG=$ac_cv_path_KRB5_CONFIG if test -n "$KRB5_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KRB5_CONFIG" >&5 $as_echo "$KRB5_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$KRB5_CONFIG" != "xnone"; then GSSAPI_LIBS="`${KRB5_CONFIG} --libs gssapi`" GSSAPI_CFLAGS="`${KRB5_CONFIG} --cflags gssapi`" saved_CPPFLAGS="$CPPFLAGS" saved_LIBS="$LIBS" LIBS="$LIBS $GSSAPI_LIBS" CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS" # MIT and Heimdal put gssapi.h in different places for ac_header in gssapi/gssapi.h gssapi.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF for ac_func in gss_init_sec_context do : ac_fn_c_check_func "$LINENO" "gss_init_sec_context" "ac_cv_func_gss_init_sec_context" if test "x$ac_cv_func_gss_init_sec_context" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GSS_INIT_SEC_CONTEXT 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: GSSAPI authentication support enabled" >&5 $as_echo "$as_me: GSSAPI authentication support enabled" >&6;} $as_echo "#define HAVE_GSSAPI 1" >>confdefs.h for ac_header in gssapi/gssapi_generic.h do : ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi_generic.h" "ac_cv_header_gssapi_gssapi_generic_h" "$ac_includes_default" if test "x$ac_cv_header_gssapi_gssapi_generic_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GSSAPI_GSSAPI_GENERIC_H 1 _ACEOF fi done have_gssapi=yes # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE ac_fn_c_check_decl "$LINENO" "GSS_C_NT_HOSTBASED_SERVICE" "ac_cv_have_decl_GSS_C_NT_HOSTBASED_SERVICE" " #ifdef HAVE_GSSAPI_GSSAPI_H #include #else #include #endif " if test "x$ac_cv_have_decl_GSS_C_NT_HOSTBASED_SERVICE" = x""yes; then : else $as_echo "#define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name" >>confdefs.h fi fi done break fi done LIBS="$saved_LIBS" CPPFLAGS="$saved_CPPFLAGS" fi case $ac_cv_prog_cc_stdc in #( no) : ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if test "${ac_cv_prog_cc_c99+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } if test "${ac_cv_prog_cc_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 fi case $ac_cv_prog_cc_stdc in #( no) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; #( '') : { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi # Check for Darwin, which needs extra cpp and linker flags. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Darwin" >&5 $as_echo_n "checking for Darwin... " >&6; } if test "${ne_cv_os_macosx+set}" = set; then : $as_echo_n "(cached) " >&6 else case `uname -s 2>/dev/null` in Darwin) ne_cv_os_macosx=yes ;; *) ne_cv_os_macosx=no ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ne_cv_os_macosx" >&5 $as_echo "$ne_cv_os_macosx" >&6; } if test $ne_cv_os_macosx = yes; then CPPFLAGS="$CPPFLAGS -no-cpp-precomp" LDFLAGS="$LDFLAGS -flat_namespace" fi # 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 test "${ac_cv_sizeof_int+set}" = set; 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; } 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 test "${ac_cv_sizeof_long+set}" = set; 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 long long" >&5 $as_echo_n "checking size of long long... " >&6; } if test "${ac_cv_sizeof_long_long+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long_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 long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 $as_echo "$ac_cv_sizeof_long_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF if test "$GCC" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc -Wformat -Werror sanity" >&5 $as_echo_n "checking for gcc -Wformat -Werror sanity... " >&6; } if test "${ne_cv_cc_werror+set}" = set; then : $as_echo_n "(cached) " >&6 else # See whether a simple test program will compile without errors. ne_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -Wformat -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int i = 42; printf("%d", i); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ne_cv_cc_werror=yes else ne_cv_cc_werror=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS=$ne_save_CPPFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ne_cv_cc_werror" >&5 $as_echo "$ne_cv_cc_werror" >&6; } ne_fmt_trycompile=$ne_cv_cc_werror else ne_fmt_trycompile=no fi # These checks are done whether or not the bundled neon build # is used. for ac_header in errno.h stdarg.h string.h stdlib.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # 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 size_t" >&5 $as_echo_n "checking size of size_t... " >&6; } if test "${ac_cv_sizeof_size_t+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : else if test "$ac_cv_type_size_t" = 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 (size_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 $as_echo "$ac_cv_sizeof_size_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SIZE_T $ac_cv_sizeof_size_t _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print size_t" >&5 $as_echo_n "checking how to print size_t... " >&6; } if test "${ne_cv_fmt_size_t+set}" = set; then : $as_echo_n "(cached) " >&6 else ne_cv_fmt_size_t=none if test $ne_fmt_trycompile = yes; then oflags="$CPPFLAGS" # Consider format string mismatches as errors CPPFLAGS="$CPPFLAGS -Wformat -Werror" for str in u lu qu; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { size_t i = 1; printf("%$str", i); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ne_cv_fmt_size_t=$str; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CPPFLAGS=$oflags else # Best guess. Don't have to be too precise since we probably won't # get a warning message anyway. case $ac_cv_sizeof_size_t in $ac_cv_sizeof_int) ne_cv_fmt_size_t="u" ;; $ac_cv_sizeof_long) ne_cv_fmt_size_t="lu" ;; $ac_cv_sizeof_long_long) ne_cv_fmt_size_t="llu" ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ne_cv_fmt_size_t" >&5 $as_echo "$ne_cv_fmt_size_t" >&6; } if test "x$ne_cv_fmt_size_t" = "xnone"; then as_fn_error $? "format string for size_t not found" "$LINENO" 5 fi cat >>confdefs.h <<_ACEOF #define NE_FMT_SIZE_T "$ne_cv_fmt_size_t" _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 off_t" >&5 $as_echo_n "checking size of off_t... " >&6; } if test "${ac_cv_sizeof_off_t+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" "$ac_includes_default"; then : else if test "$ac_cv_type_off_t" = 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 (off_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_off_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 $as_echo "$ac_cv_sizeof_off_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_OFF_T $ac_cv_sizeof_off_t _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print off_t" >&5 $as_echo_n "checking how to print off_t... " >&6; } if test "${ne_cv_fmt_off_t+set}" = set; then : $as_echo_n "(cached) " >&6 else ne_cv_fmt_off_t=none if test $ne_fmt_trycompile = yes; then oflags="$CPPFLAGS" # Consider format string mismatches as errors CPPFLAGS="$CPPFLAGS -Wformat -Werror" for str in d ld qd; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { off_t i = 1; printf("%$str", i); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ne_cv_fmt_off_t=$str; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CPPFLAGS=$oflags else # Best guess. Don't have to be too precise since we probably won't # get a warning message anyway. case $ac_cv_sizeof_off_t in $ac_cv_sizeof_int) ne_cv_fmt_off_t="d" ;; $ac_cv_sizeof_long) ne_cv_fmt_off_t="ld" ;; $ac_cv_sizeof_long_long) ne_cv_fmt_off_t="lld" ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ne_cv_fmt_off_t" >&5 $as_echo "$ne_cv_fmt_off_t" >&6; } if test "x$ne_cv_fmt_off_t" = "xnone"; then as_fn_error $? "format string for off_t not found" "$LINENO" 5 fi cat >>confdefs.h <<_ACEOF #define NE_FMT_OFF_T "$ne_cv_fmt_off_t" _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 ssize_t" >&5 $as_echo_n "checking size of ssize_t... " >&6; } if test "${ac_cv_sizeof_ssize_t+set}" = set; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ssize_t))" "ac_cv_sizeof_ssize_t" "$ac_includes_default"; then : else if test "$ac_cv_type_ssize_t" = 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 (ssize_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_ssize_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ssize_t" >&5 $as_echo "$ac_cv_sizeof_ssize_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SSIZE_T $ac_cv_sizeof_ssize_t _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print ssize_t" >&5 $as_echo_n "checking how to print ssize_t... " >&6; } if test "${ne_cv_fmt_ssize_t+set}" = set; then : $as_echo_n "(cached) " >&6 else ne_cv_fmt_ssize_t=none if test $ne_fmt_trycompile = yes; then oflags="$CPPFLAGS" # Consider format string mismatches as errors CPPFLAGS="$CPPFLAGS -Wformat -Werror" for str in d ld qd; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { ssize_t i = 1; printf("%$str", i); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ne_cv_fmt_ssize_t=$str; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CPPFLAGS=$oflags else # Best guess. Don't have to be too precise since we probably won't # get a warning message anyway. case $ac_cv_sizeof_ssize_t in $ac_cv_sizeof_int) ne_cv_fmt_ssize_t="d" ;; $ac_cv_sizeof_long) ne_cv_fmt_ssize_t="ld" ;; $ac_cv_sizeof_long_long) ne_cv_fmt_ssize_t="lld" ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ne_cv_fmt_ssize_t" >&5 $as_echo "$ne_cv_fmt_ssize_t" >&6; } if test "x$ne_cv_fmt_ssize_t" = "xnone"; then as_fn_error $? "format string for ssize_t not found" "$LINENO" 5 fi cat >>confdefs.h <<_ACEOF #define NE_FMT_SSIZE_T "$ne_cv_fmt_ssize_t" _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if test "${ac_cv_c_bigendian+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } if test "${ac_cv_func_strerror_r_char_p+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # strerror_r is not declared. Choose between # systems that have relatively inaccessible declarations for the # function. BeOS and DEC UNIX 4.0 fall in this category, but the # former has a strerror_r that returns char*, while the latter # has a strerror_r that returns `int'. # This test should segfault on the DEC system. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default extern char *strerror_r (); int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); return ! isalpha (x); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 $as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi neon_bundled_srcdir=imported/neon neon_bundled_builddir=imported/neon # INLINED This was NEON_COMMON # Define the current versions. NE_VERSION_MAJOR=0 NE_VERSION_MINOR=25 NE_VERSION_PATCH=4 NE_VERSION_TAG= # libtool library interface versioning. Release policy dictates that # for neon 0.x.y, each x brings an incompatible interface change, and # each y brings no interface change, and since this policy has been # followed since 0.1, x == CURRENT, y == RELEASE, 0 == AGE. For # 1.x.y, this will become N + x == CURRENT, y == RELEASE, x == AGE, # where N is constant (and equal to CURRENT + 1 from the final 0.x # release) NEON_INTERFACE_VERSION="${NE_VERSION_MINOR}:${NE_VERSION_PATCH}:0" NEON_VERSION="${NE_VERSION_MAJOR}.${NE_VERSION_MINOR}.${NE_VERSION_PATCH}${NE_VERSION_TAG}" cat >>confdefs.h <<_ACEOF #define NEON_VERSION "${NEON_VERSION}" _ACEOF cat >>confdefs.h <<_ACEOF #define NE_VERSION_MAJOR (${NE_VERSION_MAJOR}) _ACEOF cat >>confdefs.h <<_ACEOF #define NE_VERSION_MINOR (${NE_VERSION_MINOR}) _ACEOF cat >>confdefs.h <<_ACEOF #define NE_VERSION_PATCH (${NE_VERSION_PATCH}) _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: using bundled neon ($NEON_VERSION)" >&5 $as_echo "$as_me: using bundled neon ($NEON_VERSION)" >&6;} NEON_BUILD_BUNDLED="yes" for ac_header in strings.h sys/time.h limits.h sys/select.h arpa/inet.h \ signal.h sys/socket.h netinet/in.h netinet/tcp.h netdb.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" if test "x$ac_cv_func_strcasecmp" = x""yes; then : $as_echo "#define HAVE_STRCASECMP 1" >>confdefs.h else case " $LIBOBJS " in *" strcasecmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strcasecmp.$ac_objext" ;; esac fi for ac_func in signal setvbuf setsockopt stpcpy do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include " if test "x$ac_cv_member_struct_tm_tm_gmtoff" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TM_TM_GMTOFF 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no timezone handling in date parsing on this platform" >&5 $as_echo "$as_me: WARNING: no timezone handling in date parsing on this platform" >&2;} fi # Check whether --with-zlib was given. if test "${with_zlib+set}" = set; then : withval=$with_zlib; ne_use_zlib=$withval else ne_use_zlib=yes fi NEON_SUPPORTS_ZLIB=no if test "$ne_use_zlib" = "yes"; then ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5 $as_echo_n "checking for inflate in -lz... " >&6; } if test "${ac_cv_lib_z_inflate+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $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 inflate (); int main () { return inflate (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_inflate=yes else ac_cv_lib_z_inflate=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_z_inflate" >&5 $as_echo "$ac_cv_lib_z_inflate" >&6; } if test "x$ac_cv_lib_z_inflate" = x""yes; then : NEON_LIBS="$NEON_LIBS -lz" NEON_CFLAGS="$NEON_CFLAGS -DNEON_ZLIB" NEON_SUPPORTS_ZLIB=yes neon_zlib_message="found in -lz" else neon_zlib_message="zlib not found" fi else neon_zlib_message="zlib not found" fi else neon_zlib_message="zlib disabled" fi # Conditionally enable ACL support { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ACL support in neon" >&5 $as_echo_n "checking whether to enable ACL support in neon... " >&6; } if test "x$neon_no_acl" = "xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } NEON_EXTRAOBJS="$NEON_EXTRAOBJS ne_acl" fi NEON_SUPPORTS_SSL=yes $as_echo "#define NEON_SSL 1" >>confdefs.h if test "x$have_gssapi" = "xyes"; then NEON_CFLAGS="$NEON_CFLAGS $GSSAPI_CFLAGS" NEON_LIBS="$NEON_LIBS $GSSAPI_LIBS" fi NEON_CFLAGS="$CFLAGS -I.. -I../.. -I$srcdir/$neon_bundled_srcdir" NEON_NEED_XML_PARSER=yes neon_library_message="included libneon (${NEON_VERSION})" # INLINED This was NEON_BUILD_LIBTOOL NEON_TARGET=libneon.la NEON_OBJEXT=lo # Using the default set of object files to build. # Add the extension to EXTRAOBJS ne="$NEON_EXTRAOBJS" NEON_EXTRAOBJS= for o in $ne; do NEON_EXTRAOBJS="$NEON_EXTRAOBJS $o.$NEON_OBJEXT" done NEON_SUPPORTS_DAV=yes NEONOBJS="$NEONOBJS \$(NEON_DAVOBJS)" # Turn on DAV locking please then. $as_echo "#define USE_DAV_LOCKS 1" >>confdefs.h #xml parser stuff pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML" >&5 $as_echo_n "checking for LIBXML... " >&6; } if test -n "$LIBXML_CFLAGS"; then pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= \$XML_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= $XML_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= $XML_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBXML_LIBS"; then pkg_cv_LIBXML_LIBS="$LIBXML_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= \$XML_REQUIRED\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= $XML_REQUIRED") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= $XML_REQUIRED" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBXML_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= $XML_REQUIRED" 2>&1` else LIBXML_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= $XML_REQUIRED" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBXML_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libxml-2.0 >= $XML_REQUIRED) were not met: $LIBXML_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBXML_CFLAGS and LIBXML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables LIBXML_CFLAGS and LIBXML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS LIBXML_LIBS=$pkg_cv_LIBXML_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi NEON_CFLAGS="$NEON_CFLAGS $LIBXML_CFLAGS" NEON_LIBS="$NEON_LIBS $LIBXML_LIBS" $as_echo "#define HAVE_LIBXML 1" >>confdefs.h neon_xml_parser=libxml2 # Check whether --enable-http-debug was given. if test "${enable_http_debug+set}" = set; then : enableval=$enable_http_debug; else enable_http_debug=no fi if test "$enable_http_debug" = "yes"; then $as_echo "#define DEBUG_HTTP_ENABLE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: HTTP module debugging ENABLED" >&5 $as_echo "$as_me: HTTP module debugging ENABLED" >&6;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris platform" >&5 $as_echo_n "checking for Solaris platform... " >&6; } case $host in *solaris*) build_cdemenu_module=yes ;; *) build_cdemenu_module=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_cdemenu_module" >&5 $as_echo "$build_cdemenu_module" >&6; } if test "$build_cdemenu_module" = "yes"; then BUILD_CDEMENU_MODULE_TRUE= BUILD_CDEMENU_MODULE_FALSE='#' else BUILD_CDEMENU_MODULE_TRUE='#' BUILD_CDEMENU_MODULE_FALSE= fi # Check whether --enable-samba was given. if test "${enable_samba+set}" = set; then : enableval=$enable_samba; fi msg_samba="no" if test "x$enable_samba" != "xno"; then # Check whether --with-samba-includes was given. if test "${with_samba_includes+set}" = set; then : withval=$with_samba_includes; with_samba_includes="$withval" else with_samba_includes="/usr/include" fi have_samba_includes="no" if test "x${with_samba_includes}" != "xno"; then CPPFLAGS_save="$CPPFLAGS" echo "before test, samba_includes: ${samba_includes}" CPPFLAGS="$CPPFLAGS -I$with_samba_includes" ac_fn_c_check_header_mongrel "$LINENO" "libsmbclient.h" "ac_cv_header_libsmbclient_h" "$ac_includes_default" if test "x$ac_cv_header_libsmbclient_h" = x""yes; then : samba_includes="yes" fi CPPFLAGS="$CPPFLAGS_save" if test "x{samba_includes}" != "xno" -a "x${samba_includes}" != "x"; then have_samba_includes="yes" if test "${with_samba_includes}" != "/usr/include" ; then SAMBA_CFLAGS="-I$with_samba_includes" else SAMBA_CFLAGS="" fi CPPFLAGS="$CPPFLAGS -I$with_samba_includes" ac_fn_c_check_member "$LINENO" "SMBCCTX" "flags" "ac_cv_member_SMBCCTX_flags" "#include " if test "x$ac_cv_member_SMBCCTX_flags" = x""yes; then : $as_echo "#define HAVE_SAMBA_FLAGS /**/" >>confdefs.h fi ac_fn_c_check_member "$LINENO" "SMBCCTX" "close" "ac_cv_member_SMBCCTX_close" "#include " if test "x$ac_cv_member_SMBCCTX_close" = x""yes; then : $as_echo "#define HAVE_SAMBA_OLD_CLOSE /**/" >>confdefs.h fi CPPFLAGS="$CPPFLAGS_save" else SAMBA_CFLAGS="" fi fi echo "have_samba_includes: ${have_samba_includes}" # Check whether --with-samba-libs was given. if test "${with_samba_libs+set}" = set; then : withval=$with_samba_libs; with_samba_libs="$withval" else with_samba_libs="/usr/lib" fi if test "x${with_samba_libs}" != "xno" -a "x${have_samba_includes}" != "xno"; then LDFLAGS_save="$LDFLAGS" LDFLAGS="$LDFLAGS -L$with_samba_libs" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for smbc_new_context in -lsmbclient" >&5 $as_echo_n "checking for smbc_new_context in -lsmbclient... " >&6; } if test "${ac_cv_lib_smbclient_smbc_new_context+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsmbclient $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 smbc_new_context (); int main () { return smbc_new_context (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_smbclient_smbc_new_context=yes else ac_cv_lib_smbclient_smbc_new_context=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_smbclient_smbc_new_context" >&5 $as_echo "$ac_cv_lib_smbclient_smbc_new_context" >&6; } if test "x$ac_cv_lib_smbclient_smbc_new_context" = x""yes; then : samba_libs="yes" else samba_libs="no" fi LDFLAGS="$LDFLAGS_save" if test "x${samba_libs}" != "xno"; then $as_echo "#define HAVE_SAMBA /**/" >>confdefs.h msg_samba="yes" if test x$with_samba_libs != x/usr/lib; then SAMBA_LIBS="-L$with_samba_libs -lsmbclient" else SAMBA_LIBS="-lsmbclient" fi else SAMBA_CFLAGS="" SAMBA_LIBS="" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Samba 3.0 libraries" >&5 $as_echo_n "checking for Samba 3.0 libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $msg_samba" >&5 $as_echo "$msg_samba" >&6; } fi if test $msg_samba = yes; then HAVE_SAMBA_TRUE= HAVE_SAMBA_FALSE='#' else HAVE_SAMBA_TRUE='#' HAVE_SAMBA_FALSE= fi have_ssl=false # Check whether --enable-openssl was given. if test "${enable_openssl+set}" = set; then : enableval=$enable_openssl; fi if test "x$enable_openssl" != "xno"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5 $as_echo_n "checking for OPENSSL... " >&6; } if test -n "$OPENSSL_CFLAGS"; then pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$OPENSSL_LIBS"; then pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl" 2>&1` else OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$OPENSSL_PKG_ERRORS" >&5 # Check whether --with-openssl-includes was given. if test "${with_openssl_includes+set}" = set; then : withval=$with_openssl_includes; with_openssl_includes="$withval" else with_openssl_includes="/usr/include" fi have_openssl_includes="no" if test "x${with_openssl_includes}" != "xno"; then CPPFLAGS_save="$CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL includes" >&5 $as_echo_n "checking for OpenSSL includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"\"" >&5 $as_echo "\"\"" >&6; } CPPFLAGS="$CPPFLAGS -I$with_openssl_includes" for ac_header in openssl/ssl.h openssl/x509.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF openssl_includes="yes" fi done CPPFLAGS="$CPPFLAGS_save" if test "x${openssl_includes}" != "xno" -a "x${openssl_includes}" != "x"; then have_openssl_includes="yes" if test "${with_openssl_includes}" != "/usr/include" ; then OPENSSL_CFLAGS="-I$with_openssl_includes" else OPENSSL_CFLAGS="" fi else OPENSSL_CFLAGS="" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL includes" >&5 $as_echo_n "checking for OpenSSL includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_ssl=false fi # Check whether --with-openssl-libs was given. if test "${with_openssl_libs+set}" = set; then : withval=$with_openssl_libs; with_openssl_libs="$withval" else with_openssl_libs="/usr/lib" fi msg_openssl="no" if test "x${with_openssl_libs}" != "xno" -a "x${have_openssl_includes}" != "xno"; then LDFLAGS_save="$LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL libraries" >&5 $as_echo_n "checking for OpenSSL libraries... " >&6; } if test "${openssl_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else LDFLAGS="$LDFLAGS -L$with_openssl_libs -lssl -lcrypto -ldl" 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 SSL_read (); int main () { return SSL_read (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : openssl_libs="yes" else openssl_libs="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$LDFLAGS_save" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $openssl_libs" >&5 $as_echo "$openssl_libs" >&6; } if test "x${openssl_libs}" != "xno"; then $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h msg_openssl="yes" if test x$with_openssl_libs != x/usr/lib; then OPENSSL_LIBS="-L$with_openssl_libs -lssl -lcrypto" else OPENSSL_LIBS="-lssl -lcrypto" fi have_ssl=true $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h else OPENSSL_CFLAGS="" OPENSSL_LIBS="" have_ssl=false fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL libraries" >&5 $as_echo_n "checking for OpenSSL libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } # Check whether --with-openssl-includes was given. if test "${with_openssl_includes+set}" = set; then : withval=$with_openssl_includes; with_openssl_includes="$withval" else with_openssl_includes="/usr/include" fi have_openssl_includes="no" if test "x${with_openssl_includes}" != "xno"; then CPPFLAGS_save="$CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL includes" >&5 $as_echo_n "checking for OpenSSL includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"\"" >&5 $as_echo "\"\"" >&6; } CPPFLAGS="$CPPFLAGS -I$with_openssl_includes" for ac_header in openssl/ssl.h openssl/x509.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF openssl_includes="yes" fi done CPPFLAGS="$CPPFLAGS_save" if test "x${openssl_includes}" != "xno" -a "x${openssl_includes}" != "x"; then have_openssl_includes="yes" if test "${with_openssl_includes}" != "/usr/include" ; then OPENSSL_CFLAGS="-I$with_openssl_includes" else OPENSSL_CFLAGS="" fi else OPENSSL_CFLAGS="" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL includes" >&5 $as_echo_n "checking for OpenSSL includes... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_ssl=false fi # Check whether --with-openssl-libs was given. if test "${with_openssl_libs+set}" = set; then : withval=$with_openssl_libs; with_openssl_libs="$withval" else with_openssl_libs="/usr/lib" fi msg_openssl="no" if test "x${with_openssl_libs}" != "xno" -a "x${have_openssl_includes}" != "xno"; then LDFLAGS_save="$LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL libraries" >&5 $as_echo_n "checking for OpenSSL libraries... " >&6; } if test "${openssl_libs+set}" = set; then : $as_echo_n "(cached) " >&6 else LDFLAGS="$LDFLAGS -L$with_openssl_libs -lssl -lcrypto -ldl" 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 SSL_read (); int main () { return SSL_read (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : openssl_libs="yes" else openssl_libs="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$LDFLAGS_save" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $openssl_libs" >&5 $as_echo "$openssl_libs" >&6; } if test "x${openssl_libs}" != "xno"; then $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h msg_openssl="yes" if test x$with_openssl_libs != x/usr/lib; then OPENSSL_LIBS="-L$with_openssl_libs -lssl -lcrypto" else OPENSSL_LIBS="-lssl -lcrypto" fi have_ssl=true $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h else OPENSSL_CFLAGS="" OPENSSL_LIBS="" have_ssl=false fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL libraries" >&5 $as_echo_n "checking for OpenSSL libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_ssl=true $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h fi fi # Check whether --enable-gnutls was given. if test "${enable_gnutls+set}" = set; then : enableval=$enable_gnutls; fi if test "x$enable_gnutls" = "xyes"; then if test "x${OPENSSL_LIBS}" != "x"; then as_fn_error $? "*** Can't use both openssl and gnutls at the same time. Please pick one only. ***" "$LINENO" 5 else ac_fn_c_check_header_mongrel "$LINENO" "gcrypt.h" "ac_cv_header_gcrypt_h" "$ac_includes_default" if test "x$ac_cv_header_gcrypt_h" = x""yes; then : else as_fn_error $? "*** Need gcrypt.h to compile with GnuTLS support ***" "$LINENO" 5 fi # Check whether --with-libgnutls-prefix was given. if test "${with_libgnutls_prefix+set}" = set; then : withval=$with_libgnutls_prefix; libgnutls_config_prefix="$withval" else libgnutls_config_prefix="" fi if test x$libgnutls_config_prefix != x ; then libgnutls_config_args="$libgnutls_config_args --prefix=$libgnutls_config_prefix" if test x${LIBGNUTLS_CONFIG+set} != xset ; then LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config fi fi # Extract the first word of "libgnutls-config", so it can be a program name with args. set dummy libgnutls-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 test "${ac_cv_path_LIBGNUTLS_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $LIBGNUTLS_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGNUTLS_CONFIG="$LIBGNUTLS_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIBGNUTLS_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBGNUTLS_CONFIG" && ac_cv_path_LIBGNUTLS_CONFIG="no" ;; esac fi LIBGNUTLS_CONFIG=$ac_cv_path_LIBGNUTLS_CONFIG if test -n "$LIBGNUTLS_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_CONFIG" >&5 $as_echo "$LIBGNUTLS_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_libgnutls_version=1.0.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgnutls - version >= $min_libgnutls_version" >&5 $as_echo_n "checking for libgnutls - version >= $min_libgnutls_version... " >&6; } no_libgnutls="" if test "$LIBGNUTLS_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags` LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs` libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" rm -f conf.libgnutlstest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_check_version(NULL), "$libgnutls_config_version" ) ) { printf("\n*** 'libgnutls-config --version' returned %s, but LIBGNUTLS (%s)\n", "$libgnutls_config_version", gnutls_check_version(NULL) ); printf("*** was found! If libgnutls-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_check_version(NULL), LIBGNUTLS_VERSION ) ) { printf("\n*** LIBGNUTLS header file (version %s) does not match\n", LIBGNUTLS_VERSION); printf("*** library (version %s)\n", gnutls_check_version(NULL) ); } else { if ( gnutls_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS (%s) was found.\n", gnutls_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS, but you can also set the LIBGNUTLS_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_libgnutls=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GNUTLS 1" >>confdefs.h have_ssl=true else if test -f conf.libgnutlstest ; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$LIBGNUTLS_CONFIG" = "no" ; then echo "*** The libgnutls-config script installed by LIBGNUTLS could not be found" echo "*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_CONFIG environment variable to the" echo "*** full path to libgnutls-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { return !!gnutls_check_version(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong" echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed" echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_CFLAGS="" LIBGNUTLS_LIBS="" : fi rm -f conf.libgnutlstest if test "x${LIBGNUTLS_LIBS}" = "x"; then # Check whether --with-libgnutls-prefix was given. if test "${with_libgnutls_prefix+set}" = set; then : withval=$with_libgnutls_prefix; libgnutls_config_prefix="$withval" else libgnutls_config_prefix="" fi if test x$libgnutls_config_prefix != x ; then libgnutls_config_args="$libgnutls_config_args --prefix=$libgnutls_config_prefix" if test x${LIBGNUTLS_CONFIG+set} != xset ; then LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config fi fi # Extract the first word of "libgnutls-config", so it can be a program name with args. set dummy libgnutls-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 test "${ac_cv_path_LIBGNUTLS_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $LIBGNUTLS_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGNUTLS_CONFIG="$LIBGNUTLS_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIBGNUTLS_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBGNUTLS_CONFIG" && ac_cv_path_LIBGNUTLS_CONFIG="no" ;; esac fi LIBGNUTLS_CONFIG=$ac_cv_path_LIBGNUTLS_CONFIG if test -n "$LIBGNUTLS_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_CONFIG" >&5 $as_echo "$LIBGNUTLS_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_libgnutls_version=0.5.1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgnutls - version >= $min_libgnutls_version" >&5 $as_echo_n "checking for libgnutls - version >= $min_libgnutls_version... " >&6; } no_libgnutls="" if test "$LIBGNUTLS_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags` LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs` libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" rm -f conf.libgnutlstest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_check_version(NULL), "$libgnutls_config_version" ) ) { printf("\n*** 'libgnutls-config --version' returned %s, but LIBGNUTLS (%s)\n", "$libgnutls_config_version", gnutls_check_version(NULL) ); printf("*** was found! If libgnutls-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_check_version(NULL), LIBGNUTLS_VERSION ) ) { printf("\n*** LIBGNUTLS header file (version %s) does not match\n", LIBGNUTLS_VERSION); printf("*** library (version %s)\n", gnutls_check_version(NULL) ); } else { if ( gnutls_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS (%s) was found.\n", gnutls_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS, but you can also set the LIBGNUTLS_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_libgnutls=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GNUTLS 1" >>confdefs.h $as_echo "#define GNUTLS_COMPAT 1" >>confdefs.h have_ssl=true else if test -f conf.libgnutlstest ; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$LIBGNUTLS_CONFIG" = "no" ; then echo "*** The libgnutls-config script installed by LIBGNUTLS could not be found" echo "*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_CONFIG environment variable to the" echo "*** full path to libgnutls-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { return !!gnutls_check_version(NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong" echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed" echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_CFLAGS="" LIBGNUTLS_LIBS="" as_fn_error $? "Unable to find GNUTLS" "$LINENO" 5 fi rm -f conf.libgnutlstest fi fi fi if test x$have_ssl = xtrue; then msg_ssl="yes" else msg_ssl="no" fi if test x$have_ssl = xtrue; then HAVE_SSL_TRUE= HAVE_SSL_FALSE='#' else HAVE_SSL_TRUE='#' HAVE_SSL_FALSE= fi if false; then HAVE_AVAHI_TRUE= HAVE_AVAHI_FALSE='#' else HAVE_AVAHI_TRUE='#' HAVE_AVAHI_FALSE= fi if false; then HAVE_HOWL_TRUE= HAVE_HOWL_FALSE='#' else HAVE_HOWL_TRUE='#' HAVE_HOWL_FALSE= fi # Check whether --enable-avahi was given. if test "${enable_avahi+set}" = set; then : enableval=$enable_avahi; fi msg_avahi=no if test "x$enable_avahi" != "xno"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVAHI" >&5 $as_echo_n "checking for AVAHI... " >&6; } if test -n "$AVAHI_CFLAGS"; then pkg_cv_AVAHI_CFLAGS="$AVAHI_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"avahi-glib >= 0.6 avahi-client >= 0.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "avahi-glib >= 0.6 avahi-client >= 0.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_AVAHI_CFLAGS=`$PKG_CONFIG --cflags "avahi-glib >= 0.6 avahi-client >= 0.6" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$AVAHI_LIBS"; then pkg_cv_AVAHI_LIBS="$AVAHI_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"avahi-glib >= 0.6 avahi-client >= 0.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "avahi-glib >= 0.6 avahi-client >= 0.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_AVAHI_LIBS=`$PKG_CONFIG --libs "avahi-glib >= 0.6 avahi-client >= 0.6" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then AVAHI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "avahi-glib >= 0.6 avahi-client >= 0.6" 2>&1` else AVAHI_PKG_ERRORS=`$PKG_CONFIG --print-errors "avahi-glib >= 0.6 avahi-client >= 0.6" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$AVAHI_PKG_ERRORS" >&5 if false; then HAVE_AVAHI_TRUE= HAVE_AVAHI_FALSE='#' else HAVE_AVAHI_TRUE='#' HAVE_AVAHI_FALSE= fi elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if false; then HAVE_AVAHI_TRUE= HAVE_AVAHI_FALSE='#' else HAVE_AVAHI_TRUE='#' HAVE_AVAHI_FALSE= fi else AVAHI_CFLAGS=$pkg_cv_AVAHI_CFLAGS AVAHI_LIBS=$pkg_cv_AVAHI_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if true; then HAVE_AVAHI_TRUE= HAVE_AVAHI_FALSE='#' else HAVE_AVAHI_TRUE='#' HAVE_AVAHI_FALSE= fi $as_echo "#define HAVE_AVAHI /**/" >>confdefs.h msg_avahi=yes fi fi # Check whether --enable-howl was given. if test "${enable_howl+set}" = set; then : enableval=$enable_howl; fi msg_howl=no if test "x$msg_avahi" = "xno" -a "x$enable_howl" != "xno"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HOWL" >&5 $as_echo_n "checking for HOWL... " >&6; } if test -n "$HOWL_CFLAGS"; then pkg_cv_HOWL_CFLAGS="$HOWL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"howl >= 0.9.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "howl >= 0.9.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_HOWL_CFLAGS=`$PKG_CONFIG --cflags "howl >= 0.9.6" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$HOWL_LIBS"; then pkg_cv_HOWL_LIBS="$HOWL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"howl >= 0.9.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "howl >= 0.9.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_HOWL_LIBS=`$PKG_CONFIG --libs "howl >= 0.9.6" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then HOWL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "howl >= 0.9.6" 2>&1` else HOWL_PKG_ERRORS=`$PKG_CONFIG --print-errors "howl >= 0.9.6" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$HOWL_PKG_ERRORS" >&5 if false; then HAVE_HOWL_TRUE= HAVE_HOWL_FALSE='#' else HAVE_HOWL_TRUE='#' HAVE_HOWL_FALSE= fi elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if false; then HAVE_HOWL_TRUE= HAVE_HOWL_FALSE='#' else HAVE_HOWL_TRUE='#' HAVE_HOWL_FALSE= fi else HOWL_CFLAGS=$pkg_cv_HOWL_CFLAGS HOWL_LIBS=$pkg_cv_HOWL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if true; then HAVE_HOWL_TRUE= HAVE_HOWL_FALSE='#' else HAVE_HOWL_TRUE='#' HAVE_HOWL_FALSE= fi $as_echo "#define HAVE_HOWL /**/" >>confdefs.h msg_howl=yes fi fi msg_daemon=no # Check whether --enable-daemon was given. if test "${enable_daemon+set}" = set; then : enableval=$enable_daemon; case $enableval in yes) if test "$os_win32" = "yes"; then as_fn_error $? "can't enable gnome-vfs-daemon on Win32" "$LINENO" 5 fi ENABLE_DAEMON=yes ;; no) ENABLE_DAEMON=no ;; *) as_fn_error $? "bad value $enableval for --enable-daemon" "$LINENO" 5 ;; esac else ENABLE_DAEMON=$enable_daemon_default fi if test "$ENABLE_DAEMON" = "yes"; then $as_echo "#define USE_DAEMON 1" >>confdefs.h msg_daemon=yes fi if test "$ENABLE_DAEMON" = "yes"; then USE_DAEMON_TRUE= USE_DAEMON_FALSE='#' else USE_DAEMON_TRUE='#' USE_DAEMON_FALSE= fi msg_hal=no # Check whether --enable-hal was given. if test "${enable_hal+set}" = set; then : enableval=$enable_hal; case $enableval in yes) ENABLE_HAL=yes ;; no) ENABLE_HAL=no ;; *) as_fn_error $? "bad value $enableval for --enable-hal" "$LINENO" 5 ;; esac else ENABLE_HAL=yes fi if test "$ENABLE_HAL" = "yes"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HAL" >&5 $as_echo_n "checking for HAL... " >&6; } if test -n "$HAL_CFLAGS"; then pkg_cv_HAL_CFLAGS="$HAL_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"hal >= 0.5.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "hal >= 0.5.7") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_HAL_CFLAGS=`$PKG_CONFIG --cflags "hal >= 0.5.7" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$HAL_LIBS"; then pkg_cv_HAL_LIBS="$HAL_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"hal >= 0.5.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "hal >= 0.5.7") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_HAL_LIBS=`$PKG_CONFIG --libs "hal >= 0.5.7" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then HAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "hal >= 0.5.7" 2>&1` else HAL_PKG_ERRORS=`$PKG_CONFIG --print-errors "hal >= 0.5.7" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$HAL_PKG_ERRORS" >&5 USE_HAL="" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } USE_HAL="" else HAL_CFLAGS=$pkg_cv_HAL_CFLAGS HAL_LIBS=$pkg_cv_HAL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } USE_HAL="hal >= 0.5.7, hal-storage >= 0.5.7, dbus-1 >= 0.32, dbus-glib-1 >= 0.32" $as_echo "#define USE_HAL 1" >>confdefs.h msg_hal=yes fi else USE_HAL="" fi if test "$USE_HAL" != ""; then # Check whether --with-hal-mount was given. if test "${with_hal_mount+set}" = set; then : withval=$with_hal_mount; with_hal_mount="$withval" else with_hal_mount="none" fi if test "x$with_hal_mount" != "xnone"; then cat >>confdefs.h <<_ACEOF #define HAL_MOUNT "$with_hal_mount" _ACEOF fi # Check whether --with-hal-umount was given. if test "${with_hal_umount+set}" = set; then : withval=$with_hal_umount; with_hal_umount="$withval" else with_hal_umount="none" fi if test "x$with_hal_umount" != "xnone"; then cat >>confdefs.h <<_ACEOF #define HAL_UMOUNT "$with_hal_umount" _ACEOF fi # Check whether --with-hal-eject was given. if test "${with_hal_eject+set}" = set; then : withval=$with_hal_eject; with_hal_eject="$withval" else with_hal_eject="none" fi if test "x$with_hal_eject" != "xnone"; then cat >>confdefs.h <<_ACEOF #define HAL_EJECT "$with_hal_eject" _ACEOF fi fi need_lib_resolve=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search" >&5 $as_echo_n "checking for res_search... " >&6; } 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 res_search (); int main () { return res_search (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; 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; } saved_LIBS="$LIBS" LIBS="$LIBS -lresolv" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5 $as_echo_n "checking for res_search in -lresolv... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main() { res_search (0, 0, 0, 0, 0); return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : RESOLVER_LIBS="-lresolv" need_lib_resolve=yes { $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; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$saved_LIBS" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_ninit()" >&5 $as_echo_n "checking for res_ninit()... " >&6; } if test "${have_res_ninit+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef linux #define _BSD_SOURCE 1 #endif #include int main () { int foo = res_ninit (&_res); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : have_res_ninit=yes else have_res_ninit=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_res_ninit" >&5 $as_echo "$have_res_ninit" >&6; } if test "x$have_res_ninit" = "xyes"; then $as_echo "#define HAVE_RES_NINIT 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_ninit in -lbind" >&5 $as_echo_n "checking for res_ninit in -lbind... " >&6; } if test "${ac_cv_lib_bind_res_ninit+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbind $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 res_ninit (); int main () { return res_ninit (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_bind_res_ninit=yes else ac_cv_lib_bind_res_ninit=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_bind_res_ninit" >&5 $as_echo "$ac_cv_lib_bind_res_ninit" >&6; } if test "x$ac_cv_lib_bind_res_ninit" = x""yes; then : $as_echo "#define HAVE_RES_NINIT 1" >>confdefs.h RESOLVER_LIBS="-lbind", { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_ninit in -lresolv" >&5 $as_echo_n "checking for res_ninit in -lresolv... " >&6; } if test "${ac_cv_lib_resolv_res_ninit+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $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 res_ninit (); int main () { return res_ninit (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_resolv_res_ninit=yes else ac_cv_lib_resolv_res_ninit=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_resolv_res_ninit" >&5 $as_echo "$ac_cv_lib_resolv_res_ninit" >&6; } if test "x$ac_cv_lib_resolv_res_ninit" = x""yes; then : $as_echo "#define HAVE_RES_NINIT 1" >>confdefs.h if test "x$need_lib_resolv" = "xno"; then RESOLVER_LIBS="-lresolv" fi fi fi fi have_getaddrinfo=no have_resolver=no ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" if test "x$ac_cv_func_getaddrinfo" = x""yes; then : have_getaddrinfo=yes; have_resolver=yes fi if test "x$have_getaddrinfo" != "xyes"; then # getaddrinfo is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_getaddrinfo" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -l$lib" >&5 $as_echo_n "checking for getaddrinfo in -l$lib... " >&6; } if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$lib $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 getaddrinfo (); int main () { return getaddrinfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : LIBS="$LIBS -l$lib" have_getaddrinfo=yes have_resolver=yes break fi done fi if test "x$have_getaddrinfo" = "xyes"; then $as_echo "#define USE_GETADDRINFO 1" >>confdefs.h $as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include "confdefs.h" #include #include #include #include int main () { struct addrinfo hints; hints.ai_flags = AI_ADDRCONFIG; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_AI_ADDRCONFIG 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x$have_resolver" = "xno"; then ac_fn_c_check_func "$LINENO" "gethostbyname_r" "ac_cv_func_gethostbyname_r" if test "x$ac_cv_func_gethostbyname_r" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glibc gethostbyname_r" >&5 $as_echo_n "checking for glibc gethostbyname_r... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { struct hostent result_buf; char buf[1024]; struct hostent* result; int h_errnop; gethostbyname_r ("localhost", &result_buf, buf, sizeof(buf), &result, &h_errnop); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GETHOSTBYNAME_R_GLIBC 1" >>confdefs.h $as_echo "#define USE_GETHOSTBYNAME_R 1" >>confdefs.h have_resolver=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris/Irix gethostbyname_r" >&5 $as_echo_n "checking for Solaris/Irix gethostbyname_r... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { struct hostent result; char buf[1024]; int h_errnop; gethostbyname_r ("localhost", &result, buf, sizeof(buf), &h_errnop); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GETHOSTBYNAME_R_SOLARIS 1" >>confdefs.h $as_echo "#define USE_GETHOSTBYNAME_R 1" >>confdefs.h have_resolver=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HP-UX gethostbyname_r" >&5 $as_echo_n "checking for HP-UX gethostbyname_r... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { struct hostent result; char buf[1024]; gethostbyname_r ("localhost", &result, buf); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GETHOSTBYNAME_R_HPUX 1" >>confdefs.h $as_echo "#define USE_GETHOSTBYNAME_R 1" >>confdefs.h have_resolver=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } #hpux fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext #solaris fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext #glibc fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi #check func fi if test x$have_resolver = "xno" ; then have_gethostbyname=no ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = x""yes; then : have_gethostbyname=yes fi if test $have_gethostbyname = no; then # gethostbyname is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_gethostbyname" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -l$lib" >&5 $as_echo_n "checking for gethostbyname in -l$lib... " >&6; } if eval "test \"\${$as_ac_Lib+set}\"" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$lib $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 gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : LIBS="$LIBS -l$lib" have_gethostbyname=yes have_resolver=yes $as_echo "#define USE_GETHOSTBYNAME 1" >>confdefs.h break fi done fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ipv6" >&5 $as_echo_n "checking whether to enable ipv6... " >&6; } # Check whether --enable-ipv6 was given. if test "${enable_ipv6+set}" = set; then : enableval=$enable_ipv6; else enable_ipv6=yes fi if test $enable_ipv6 = yes; then save_libs=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _WIN32 #include #include #else #include #include #endif int main () { socket(AF_INET6, SOCK_STREAM, 0) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_ipv6=yes $as_echo "#define ENABLE_IPV6 /**/" >>confdefs.h else have_ipv6=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipv6" >&5 $as_echo "$have_ipv6" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGNOMEVFS" >&5 $as_echo_n "checking for LIBGNOMEVFS... " >&6; } if test -n "$LIBGNOMEVFS_CFLAGS"; then pkg_cv_LIBGNOMEVFS_CFLAGS="$LIBGNOMEVFS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED libxml-2.0 >= \$XML_REQUIRED gnome-mime-data-2.0 \$dbus_requirement\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNOMEVFS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBGNOMEVFS_LIBS"; then pkg_cv_LIBGNOMEVFS_LIBS="$LIBGNOMEVFS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED gmodule-no-export-2.0 >= \$GLIB_REQUIRED gthread-2.0 >= \$GLIB_REQUIRED gobject-2.0 >= \$GLIB_REQUIRED gconf-2.0 >= \$GCONF_REQUIRED libxml-2.0 >= \$XML_REQUIRED gnome-mime-data-2.0 \$dbus_requirement\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNOMEVFS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBGNOMEVFS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement" 2>&1` else LIBGNOMEVFS_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBGNOMEVFS_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQUIRED gmodule-no-export-2.0 >= $GLIB_REQUIRED gthread-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libxml-2.0 >= $XML_REQUIRED gnome-mime-data-2.0 $dbus_requirement) were not met: $LIBGNOMEVFS_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBGNOMEVFS_CFLAGS and LIBGNOMEVFS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables LIBGNOMEVFS_CFLAGS and LIBGNOMEVFS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else LIBGNOMEVFS_CFLAGS=$pkg_cv_LIBGNOMEVFS_CFLAGS LIBGNOMEVFS_LIBS=$pkg_cv_LIBGNOMEVFS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi LIBGNOMEVFS_CFLAGS="$LIBGNOMEVFS_CFLAGS $OPENSSL_CFLAGS $LIBGNUTLS_CFLAGS $HOWL_CFLAGS $AVAHI_CFLAGS" LIBGNOMEVFS_LIBS="$LIBGNOMEVFS_LIBS $OPENSSL_LIBS $LIBGNUTLS_LIBS $HOWL_LIBS $AVAHI_LIBS $RESOLVER_LIBS" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGNOMEVFSDAEMON" >&5 $as_echo_n "checking for LIBGNOMEVFSDAEMON... " >&6; } if test -n "$LIBGNOMEVFSDAEMON_CFLAGS"; then pkg_cv_LIBGNOMEVFSDAEMON_CFLAGS="$LIBGNOMEVFSDAEMON_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 \$USE_HAL\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 $USE_HAL") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNOMEVFSDAEMON_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 $USE_HAL" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBGNOMEVFSDAEMON_LIBS"; then pkg_cv_LIBGNOMEVFSDAEMON_LIBS="$LIBGNOMEVFSDAEMON_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 \$USE_HAL\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 $USE_HAL") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBGNOMEVFSDAEMON_LIBS=`$PKG_CONFIG --libs "glib-2.0 $USE_HAL" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBGNOMEVFSDAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 $USE_HAL" 2>&1` else LIBGNOMEVFSDAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 $USE_HAL" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBGNOMEVFSDAEMON_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (glib-2.0 $USE_HAL) were not met: $LIBGNOMEVFSDAEMON_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBGNOMEVFSDAEMON_CFLAGS and LIBGNOMEVFSDAEMON_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables LIBGNOMEVFSDAEMON_CFLAGS and LIBGNOMEVFSDAEMON_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else LIBGNOMEVFSDAEMON_CFLAGS=$pkg_cv_LIBGNOMEVFSDAEMON_CFLAGS LIBGNOMEVFSDAEMON_LIBS=$pkg_cv_LIBGNOMEVFSDAEMON_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # Check whether --with-dbus_service_dir was given. if test "${with_dbus_service_dir+set}" = set; then : withval=$with_dbus_service_dir; with_dbus_service_dir="$withval" else with_dbus_service_dir=$datadir/dbus-1/services fi DBUS_SERVICE_DIR=$with_dbus_service_dir for ac_header in sys/un.h stropts.h termios.h utmp.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Check for PTY handling functions. for ac_func in getpt posix_openpt grantpt unlockpt ptsname ptsname_r do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Pull in the right libraries for various functions which might not be # bundled into an exploded libc. ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair" if test "x$ac_cv_func_socketpair" = x""yes; then : have_socketpair=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socketpair in -lsocket" >&5 $as_echo_n "checking for socketpair in -lsocket... " >&6; } if test "${ac_cv_lib_socket_socketpair+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $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 socketpair (); int main () { return socketpair (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_socketpair=yes else ac_cv_lib_socket_socketpair=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_socket_socketpair" >&5 $as_echo "$ac_cv_lib_socket_socketpair" >&6; } if test "x$ac_cv_lib_socket_socketpair" = x""yes; then : have_socketpair=1; LIBS="$LIBS -lsocket" fi fi if test x$have_socketpair = x1 ; then $as_echo "#define HAVE_SOCKETPAIR 1" >>confdefs.h fi acl_backends="" ACL_LIBS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getxattr in -lattr" >&5 $as_echo_n "checking for getxattr in -lattr... " >&6; } if test "${ac_cv_lib_attr_getxattr+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lattr $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 getxattr (); int main () { return getxattr (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_attr_getxattr=yes else ac_cv_lib_attr_getxattr=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_attr_getxattr" >&5 $as_echo "$ac_cv_lib_attr_getxattr" >&6; } if test "x$ac_cv_lib_attr_getxattr" = x""yes; then : ACL_LIBS="$ACL_LIBS -lattr" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get_file in -lacl" >&5 $as_echo_n "checking for acl_get_file in -lacl... " >&6; } if test "${ac_cv_lib_acl_acl_get_file+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lacl $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 acl_get_file (); int main () { return acl_get_file (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_acl_acl_get_file=yes else ac_cv_lib_acl_acl_get_file=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_acl_acl_get_file" >&5 $as_echo "$ac_cv_lib_acl_acl_get_file" >&6; } if test "x$ac_cv_lib_acl_acl_get_file" = x""yes; then : ACL_LIBS="$ACL_LIBS -lacl" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl in -lsec" >&5 $as_echo_n "checking for acl in -lsec... " >&6; } if test "${ac_cv_lib_sec_acl+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsec $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 acl (); int main () { return acl (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_sec_acl=yes else ac_cv_lib_sec_acl=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_sec_acl" >&5 $as_echo "$ac_cv_lib_sec_acl" >&6; } if test "x$ac_cv_lib_sec_acl" = x""yes; then : ACL_LIBS="$ACL_LIBS -lsec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL" >&5 $as_echo_n "checking for Solaris ACL... " >&6; } if test "${gvfs_cv_HAVE_SOLARIS_ACLS+set}" = set; then : $as_echo_n "(cached) " >&6 else acl_LIBS=$LIBS LIBS="$LIBS -lsec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return acl ("/", GETACL, 0, NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gvfs_cv_HAVE_SOLARIS_ACLS=yes else gvfs_cv_HAVE_SOLARIS_ACLS=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$acl_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gvfs_cv_HAVE_SOLARIS_ACLS" >&5 $as_echo "$gvfs_cv_HAVE_SOLARIS_ACLS" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for POSIX ACL" >&5 $as_echo_n "checking for POSIX ACL... " >&6; } if test "${gvfs_cv_HAVE_POSIX_ACLS+set}" = set; then : $as_echo_n "(cached) " >&6 else acl_LIBS=$LIBS LIBS="$LIBS -lacl" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry (acl, entry_id, entry_p); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gvfs_cv_HAVE_POSIX_ACLS=yes else gvfs_cv_HAVE_POSIX_ACLS=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$acl_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gvfs_cv_HAVE_POSIX_ACLS" >&5 $as_echo "$gvfs_cv_HAVE_POSIX_ACLS" >&6; } if test x"$gvfs_cv_HAVE_SOLARIS_ACLS" = x"yes" ; then have_solaris_acl_support=yes acl_backends="solaris" $as_echo "#define HAVE_SOLARIS_ACL 1" >>confdefs.h for ac_header in pwd.h grp.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi if test x"$gvfs_cv_HAVE_POSIX_ACLS" = x"yes" ; then have_posix_acl_support=yes acl_backends="posix" $as_echo "#define HAVE_POSIX_ACL 1" >>confdefs.h for ac_func in acl_extended_file do : ac_fn_c_check_func "$LINENO" "acl_extended_file" "ac_cv_func_acl_extended_file" if test "x$ac_cv_func_acl_extended_file" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ACL_EXTENDED_FILE 1 _ACEOF fi done for ac_header in pwd.h do : ac_fn_c_check_header_mongrel "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "$ac_includes_default" if test "x$ac_cv_header_pwd_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PWD_H 1 _ACEOF fi done if test "$ac_cv_header_pwd_h" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for posix getpwuid_r" >&5 $as_echo_n "checking for posix getpwuid_r... " >&6; } if test "${ac_cv_func_posix_getpwuid_r+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { char buffer[10000]; struct passwd pwd, *pwptr = &pwd; int error; errno = 0; error = getpwuid_r (0, &pwd, buffer, sizeof (buffer), &pwptr); return (error < 0 && errno == ENOSYS) || error == ENOSYS; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_posix_getpwuid_r=yes else ac_cv_func_posix_getpwuid_r=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_posix_getpwuid_r" >&5 $as_echo "$ac_cv_func_posix_getpwuid_r" >&6; } if test "$ac_cv_func_posix_getpwuid_r" = yes; then $as_echo "#define HAVE_POSIX_GETPWUID_R 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nonposix getpwuid_r" >&5 $as_echo_n "checking for nonposix getpwuid_r... " >&6; } if test "${ac_cv_func_nonposix_getpwuid_r+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char buffer[10000]; struct passwd pwd; getpwuid_r (0, &pwd, buffer, sizeof (buffer)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_nonposix_getpwuid_r=yes else ac_cv_func_nonposix_getpwuid_r=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_nonposix_getpwuid_r" >&5 $as_echo "$ac_cv_func_nonposix_getpwuid_r" >&6; } if test "$ac_cv_func_nonposix_getpwuid_r" = yes; then $as_echo "#define HAVE_NONPOSIX_GETPWUID_R 1" >>confdefs.h fi fi fi for ac_header in grp.h do : ac_fn_c_check_header_mongrel "$LINENO" "grp.h" "ac_cv_header_grp_h" "$ac_includes_default" if test "x$ac_cv_header_grp_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GRP_H 1 _ACEOF fi done for ac_func in getgrgid_r do : ac_fn_c_check_func "$LINENO" "getgrgid_r" "ac_cv_func_getgrgid_r" if test "x$ac_cv_func_getgrgid_r" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETGRGID_R 1 _ACEOF fi done for ac_func in getgrnam_r do : ac_fn_c_check_func "$LINENO" "getgrnam_r" "ac_cv_func_getgrnam_r" if test "x$ac_cv_func_getgrnam_r" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETGRNAM_R 1 _ACEOF fi done for ac_func in getpwnam_r do : ac_fn_c_check_func "$LINENO" "getpwnam_r" "ac_cv_func_getpwnam_r" if test "x$ac_cv_func_getpwnam_r" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPWNAM_R 1 _ACEOF fi done fi if test x"$have_posix_acl_support" = x"yes"; then HAVE_POSIX_ACL_TRUE= HAVE_POSIX_ACL_FALSE='#' else HAVE_POSIX_ACL_TRUE='#' HAVE_POSIX_ACL_FALSE= fi if test x"$have_solaris_acl_support" = x"yes"; then HAVE_SOLARIS_ACL_TRUE= HAVE_SOLARIS_ACL_FALSE='#' else HAVE_SOLARIS_ACL_TRUE='#' HAVE_SOLARIS_ACL_FALSE= fi fs_monitor_backends="" inotify_support=no for ac_header in sys/inotify.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/inotify.h" "ac_cv_header_sys_inotify_h" "$ac_includes_default" if test "x$ac_cv_header_sys_inotify_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_INOTIFY_H 1 _ACEOF inotify_support=yes fi done if test "$inotify_support" = "yes"; then HAVE_INOTIFY_TRUE= HAVE_INOTIFY_FALSE='#' else HAVE_INOTIFY_TRUE='#' HAVE_INOTIFY_FALSE= fi if test "$inotify_support" = "yes"; then fs_monitor_backends="inotify " fi should_disable_fam=no # Check whether --enable-fam was given. if test "${enable_fam+set}" = set; then : enableval=$enable_fam; if test "x$enable_fam" = "xno"; then should_disable_fam=yes echo "Not building FAM support" fi fi FAM_MISSING_WARNING="Gnome-vfs depends on FAM to provide notification when files are altered (either through filesystem polling, or a kernel notification mechanism). If Gnome-vfs is built without FAM support, directories viewed with Nautilus or other applications will not remain in synch with the actual filesystem when they are altered by external processes. Particularly if you are a distributor please compile Nautilus with FAM support. FAM is available from http://oss.sgi.com/projects/fam/. A patch to add Linux Kernel 2.4 directory notify support to FAM (highly desirable) is available from http://people.redhat.com/alexl/files/" FAM_LIBS= if test "x$should_disable_fam" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FAMOpen in -lfam" >&5 $as_echo_n "checking for FAMOpen in -lfam... " >&6; } if test "${ac_cv_lib_fam_FAMOpen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lfam $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 FAMOpen (); int main () { return FAMOpen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_fam_FAMOpen=yes else ac_cv_lib_fam_FAMOpen=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_fam_FAMOpen" >&5 $as_echo "$ac_cv_lib_fam_FAMOpen" >&6; } if test "x$ac_cv_lib_fam_FAMOpen" = x""yes; then : for ac_header in fam.h do : ac_fn_c_check_header_mongrel "$LINENO" "fam.h" "ac_cv_header_fam_h" "$ac_includes_default" if test "x$ac_cv_header_fam_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FAM_H 1 _ACEOF $as_echo "#define HAVE_FAM /**/" >>confdefs.h FAM_LIBS="-lfam" fs_monitor_backends="${fs_monitor_backends}fam" else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** FAM support will not be built (header files not found) $FAM_MISSING_WARNING ***" >&5 $as_echo "$as_me: WARNING: *** FAM support will not be built (header files not found) $FAM_MISSING_WARNING ***" >&2;} fi done else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** FAM support will not be built (FAM library not found) $FAM_MISSING_WARNING ***" >&5 $as_echo "$as_me: WARNING: *** FAM support will not be built (FAM library not found) $FAM_MISSING_WARNING ***" >&2;} fi fi # Check whether --enable-selinux was given. if test "${enable_selinux+set}" = set; then : enableval=$enable_selinux; fi msg_selinux=no SELINUX_LIBS= if test "x$enable_selinux" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_selinux_enabled in -lselinux" >&5 $as_echo_n "checking for is_selinux_enabled in -lselinux... " >&6; } if test "${ac_cv_lib_selinux_is_selinux_enabled+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lselinux $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 is_selinux_enabled (); int main () { return is_selinux_enabled (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_selinux_is_selinux_enabled=yes else ac_cv_lib_selinux_is_selinux_enabled=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_selinux_is_selinux_enabled" >&5 $as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; } if test "x$ac_cv_lib_selinux_is_selinux_enabled" = x""yes; then : for ac_header in selinux/selinux.h do : ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default" if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SELINUX_SELINUX_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lgetfilecon_raw" >&5 $as_echo_n "checking for library containing lgetfilecon_raw... " >&6; } if test "${ac_cv_search_lgetfilecon_raw+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lgetfilecon_raw (); int main () { return lgetfilecon_raw (); ; return 0; } _ACEOF for ac_lib in '' selinux; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_lgetfilecon_raw=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_lgetfilecon_raw+set}" = set; then : break fi done if test "${ac_cv_search_lgetfilecon_raw+set}" = set; then : else ac_cv_search_lgetfilecon_raw=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lgetfilecon_raw" >&5 $as_echo "$ac_cv_search_lgetfilecon_raw" >&6; } ac_res=$ac_cv_search_lgetfilecon_raw if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_SELINUX 1" >>confdefs.h SELINUX_LIBS="-lselinux" msg_selinux=yes fi fi done fi 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 test "${ac_cv_path_GTKDOC_CHECK+set}" = set; 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 test "${ac_cv_path_GTKDOC_REBASE+set}" = set; 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 ;; 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 test -n "$GTKDOC_REBASE" && break done test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" # 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 test "${ac_cv_path_GTKDOC_MKPDF+set}" = set; 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" # 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 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; } # 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 # 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 if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test x$enable_gtk_doc = xyes; then ENABLE_GTK_DOC_TRUE= ENABLE_GTK_DOC_FALSE='#' else ENABLE_GTK_DOC_TRUE='#' ENABLE_GTK_DOC_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='#' else GTK_DOC_USE_REBASE_TRUE='#' GTK_DOC_USE_REBASE_FALSE= fi # Check whether --with-afs was given. if test "${with_afs+set}" = set; then : withval=$with_afs; $as_echo "#define AFS /**/" >>confdefs.h CPPFLAGS="$CPPFLAGS -I/usr/afsws/include" LIBS="$LIBS -L/usr/afsws/lib -L/usr/afsws/lib/afs -lsys -lrx -llwp" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get filesystem type" >&5 $as_echo_n "checking how to get filesystem type... " >&6; } fstype=no # The order of these tests is important. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : $as_echo "#define FSTYPE_STATVFS /**/" >>confdefs.h fstype=SVR4 fi rm -f conftest.err conftest.i conftest.$ac_ext if test $fstype = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_SYS_PARAM_H #include #endif #include #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : $as_echo "#define FSTYPE_USG_STATFS /**/" >>confdefs.h fstype=SVR3 fi rm -f conftest.err conftest.i conftest.$ac_ext fi if test $fstype = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_SYS_PARAM_H #include #endif #include #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : $as_echo "#define FSTYPE_AIX_STATFS /**/" >>confdefs.h fstype=AIX fi rm -f conftest.err conftest.i conftest.$ac_ext fi if test $fstype = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : $as_echo "#define FSTYPE_MNTENT /**/" >>confdefs.h fstype=4.3BSD fi rm -f conftest.err conftest.i conftest.$ac_ext fi if test $fstype = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "f_type;" >/dev/null 2>&1; then : $as_echo "#define FSTYPE_STATFS /**/" >>confdefs.h fstype=4.4BSD/OSF1 fi rm -f conftest* fi if test $fstype = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : $as_echo "#define FSTYPE_GETMNT /**/" >>confdefs.h fstype=Ultrix fi rm -f conftest.err conftest.i conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fstype" >&5 $as_echo "$fstype" >&6; } TOP_BUILDDIR="`pwd`" # Check whether --enable-rebuilds was given. if test "${enable_rebuilds+set}" = set; then : enableval=$enable_rebuilds; else enable_rebuilds=yes fi # define a MAINT-like variable REBUILD which is set if Perl # is found, so autogenerated sources can be rebuilt for ac_prog in perl5 perl 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 test "${ac_cv_prog_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PERL"; then ac_cv_prog_PERL="$PERL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PERL="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PERL=$ac_cv_prog_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PERL" && break done # Extract the first word of "ssh", so it can be a program name with args. set dummy ssh; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_SSH_PROGRAM+set}" = set; then : $as_echo_n "(cached) " >&6 else case $SSH_PROGRAM in [\\/]* | ?:[\\/]*) ac_cv_path_SSH_PROGRAM="$SSH_PROGRAM" # 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_SSH_PROGRAM="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SSH_PROGRAM" && ac_cv_path_SSH_PROGRAM=""ssh"" ;; esac fi SSH_PROGRAM=$ac_cv_path_SSH_PROGRAM if test -n "$SSH_PROGRAM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SSH_PROGRAM" >&5 $as_echo "$SSH_PROGRAM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi REBUILD=\# if test "x$enable_rebuilds" = "xyes" && \ test -n "$PERL" && \ $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then REBUILD= fi ac_config_files="$ac_config_files Makefile gnome-vfs.spec gnome-vfs-zip libgnomevfs/gnome-vfs-file-size.h libgnomevfs/gnome-vfs-version.h libgnomevfs/Makefile imported/Makefile imported/fnmatch/Makefile imported/neon/Makefile modules/Makefile daemon/Makefile schemas/Makefile devel-docs/Makefile devel-docs/gnome-vfs-tutorial/Makefile po/Makefile.in programs/Makefile test/Makefile test/vfs-run doc/Makefile doc/version.xml gnome-vfs-2.0.pc gnome-vfs-module-2.0.pc" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then as_fn_error $? "conditional \"OS_WIN32\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then as_fn_error $? "conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_PROFILER_TRUE}" && test -z "${ENABLE_PROFILER_FALSE}"; then as_fn_error $? "conditional \"ENABLE_PROFILER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBEFS_TRUE}" && test -z "${HAVE_LIBEFS_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBEFS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_CDDA_TRUE}" && test -z "${HAVE_CDDA_FALSE}"; then as_fn_error $? "conditional \"HAVE_CDDA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUILD_CDEMENU_MODULE_TRUE}" && test -z "${BUILD_CDEMENU_MODULE_FALSE}"; then as_fn_error $? "conditional \"BUILD_CDEMENU_MODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SAMBA_TRUE}" && test -z "${HAVE_SAMBA_FALSE}"; then as_fn_error $? "conditional \"HAVE_SAMBA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SSL_TRUE}" && test -z "${HAVE_SSL_FALSE}"; then as_fn_error $? "conditional \"HAVE_SSL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVAHI_TRUE}" && test -z "${HAVE_AVAHI_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVAHI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_HOWL_TRUE}" && test -z "${HAVE_HOWL_FALSE}"; then as_fn_error $? "conditional \"HAVE_HOWL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVAHI_TRUE}" && test -z "${HAVE_AVAHI_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVAHI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVAHI_TRUE}" && test -z "${HAVE_AVAHI_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVAHI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVAHI_TRUE}" && test -z "${HAVE_AVAHI_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVAHI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_HOWL_TRUE}" && test -z "${HAVE_HOWL_FALSE}"; then as_fn_error $? "conditional \"HAVE_HOWL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_HOWL_TRUE}" && test -z "${HAVE_HOWL_FALSE}"; then as_fn_error $? "conditional \"HAVE_HOWL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_HOWL_TRUE}" && test -z "${HAVE_HOWL_FALSE}"; then as_fn_error $? "conditional \"HAVE_HOWL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_DAEMON_TRUE}" && test -z "${USE_DAEMON_FALSE}"; then as_fn_error $? "conditional \"USE_DAEMON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_POSIX_ACL_TRUE}" && test -z "${HAVE_POSIX_ACL_FALSE}"; then as_fn_error $? "conditional \"HAVE_POSIX_ACL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SOLARIS_ACL_TRUE}" && test -z "${HAVE_SOLARIS_ACL_FALSE}"; then as_fn_error $? "conditional \"HAVE_SOLARIS_ACL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_INOTIFY_TRUE}" && test -z "${HAVE_INOTIFY_FALSE}"; then as_fn_error $? "conditional \"HAVE_INOTIFY\" 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 : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # 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 sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac 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 # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "gnome-vfs.spec") CONFIG_FILES="$CONFIG_FILES gnome-vfs.spec" ;; "gnome-vfs-zip") CONFIG_FILES="$CONFIG_FILES gnome-vfs-zip" ;; "libgnomevfs/gnome-vfs-file-size.h") CONFIG_FILES="$CONFIG_FILES libgnomevfs/gnome-vfs-file-size.h" ;; "libgnomevfs/gnome-vfs-version.h") CONFIG_FILES="$CONFIG_FILES libgnomevfs/gnome-vfs-version.h" ;; "libgnomevfs/Makefile") CONFIG_FILES="$CONFIG_FILES libgnomevfs/Makefile" ;; "imported/Makefile") CONFIG_FILES="$CONFIG_FILES imported/Makefile" ;; "imported/fnmatch/Makefile") CONFIG_FILES="$CONFIG_FILES imported/fnmatch/Makefile" ;; "imported/neon/Makefile") CONFIG_FILES="$CONFIG_FILES imported/neon/Makefile" ;; "modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; "daemon/Makefile") CONFIG_FILES="$CONFIG_FILES daemon/Makefile" ;; "schemas/Makefile") CONFIG_FILES="$CONFIG_FILES schemas/Makefile" ;; "devel-docs/Makefile") CONFIG_FILES="$CONFIG_FILES devel-docs/Makefile" ;; "devel-docs/gnome-vfs-tutorial/Makefile") CONFIG_FILES="$CONFIG_FILES devel-docs/gnome-vfs-tutorial/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "programs/Makefile") CONFIG_FILES="$CONFIG_FILES programs/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/vfs-run") CONFIG_FILES="$CONFIG_FILES test/vfs-run" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/version.xml") CONFIG_FILES="$CONFIG_FILES doc/version.xml" ;; "gnome-vfs-2.0.pc") CONFIG_FILES="$CONFIG_FILES gnome-vfs-2.0.pc" ;; "gnome-vfs-module-2.0.pc") CONFIG_FILES="$CONFIG_FILES gnome-vfs-module-2.0.pc" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":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 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 # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 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. # # 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. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Assembler program. AS=$AS # DLL creation program. DLLTOOL=$DLLTOOL # Object dumper program. OBJDUMP=$OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # 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 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 of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # 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 library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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 # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # 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 # DIR into the resulting binary. hardcode_direct=$hardcode_direct # 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. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _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 COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # 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_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}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # 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 () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -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 file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # 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 "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi chmod u+x test/vfs-run profiler_enabled=no test "$ENABLE_PROFILER" = 1 && profiler_enabled=yes echo echo "Gnome VFS configuration summary:" echo " IPv6 support: $have_ipv6 SSL support: $msg_ssl Avahi support: $msg_avahi Howl support: $msg_howl HAL support: $msg_hal Enable gnome-vfs-daemon: $msg_daemon SELinux support: $msg_selinux File ACL backends: $acl_backends Gtk Doc: $enable_gtk_doc FS monitor backends: $fs_monitor_backends Samba method: $msg_samba CDDA method: $have_cdda Enable profiler: $profiler_enabled " gnome-vfs-2.24.4/gnome-vfs.spec.in0000644000175000001440000000722611334251016013606 00000000000000%define localstatedir /var/lib Name: @PACKAGE@ Summary: The GNOME virtual file-system libraries Version: @VERSION@ Release: 1_cvs License: LGPL Group: System Environment/Libraries Source: ftp://ftp.gnome.org/pub/GNOME/stable/sources/%name/%name-%{version}.tar.gz URL: http://www.gnome.org/ BuildRoot: /var/tmp/%{name}-root Requires: control-center Requires: glib2 >= @GLIB_REQUIRED@ Requires: GConf2 >= @GCONF_REQUIRED@ BuildRequires: gnome-libs-devel, control-center-devel BuildRequires: bonobo-activation-devel >= @BONOBO_ACTIVATION_REQUIRED@ BuildRequires: bonobo-devel >= @BONOBO_REQUIRED@ BuildRequires: GConf2-devel >= @GCONF_REQUIRED@ BuildRequires: gtk2-devel >= @GTK_REQUIRED@ BuildRequires: ORBit-devel >= @ORBIT_REQUIRED@ BuildRequires: libxml2 >= @XML_REQUIRED@ %description GNOME VFS is the GNOME virtual file system. It is the foundation of the Nautilus file manager. It provides a modular architecture and ships with several modules that implement support for file systems, http, ftp and others. It provides a URI-based API, a backend supporting asynchronous file operations, a MIME type manipulation library and other features. %package devel Summary: Libraries and include files for developing GNOME VFS applications. Group: Development/Libraries Requires: %name = %{version} Requires: glib-devel Requires: bonobo-devel %description devel This package provides the necessary development libraries for writing GNOME VFS modules and applications that use the GNOME VFS APIs. %prep %setup -q %build %ifarch alpha MYARCH_FLAGS="--host=alpha-redhat-linux" %endif # Needed for snapshot releases. MYCFLAGS="$RPM_OPT_FLAGS" if [ ! -f configure ]; then CFLAGS="$MYCFLAGS" ./autogen.sh $MYARCH_FLAGS \ --enable-more-warnings --prefix=%{_prefix} \ --localstatedir=%{localstatedir} --sysconfdir=%{_sysconfdir} \ --mandir=%{_mandir} --libdir=%{_libdir} \ --includedir=%{_includedir} --bindir=%{_bindir} fi CFLAGS="$MYCFLAGS" ./configure $MYARCH_FLAGS --enable-more-warnings \ --prefix=%{_prefix} --localstatedir=%{localstatedir} \ --sysconfdir=%{_sysconfdir} --mandir=%{_mandir} \ --libdir=%{_libdir} --includedir=%{_includedir} \ --bindir=%{_bindir} make %install rm -rf $RPM_BUILD_ROOT make -k sysconfdir=$RPM_BUILD_ROOT%{_sysconfdir} \ prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \ libdir=$RPM_BUILD_ROOT%{_libdir} bindir=$RPM_BUILD_ROOT\%{_bindir} \ includedir=$RPM_BUILD_ROOT%{_includedir} install %find_lang %name %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files -f %{name}.lang %defattr(-, root, root) %doc AUTHORS COPYING ChangeLog NEWS README %config %{_sysconfdir}/gnome-vfs-2.0/modules/*.conf %config %{_sysconfdir}/gnome-vfs-2.0/vfolders/*.vfolder-info %{_libdir}/*.so.* %{_libdir}/*.so %{_libdir}/vfs/extfs/* %{_libdir}/gnome-vfs-2.0/modules/*.so %{_libdir}/bonobo/monikers/*.so %{_libdir}/bonobo/servers/*.server %{_prefix}/share/gtk-doc/html/gnome-vfs/*.html %{_prefix}/share/locale/*/LC_MESSAGES/*.mo %files devel %defattr(-, root, root) %{_includedir}/gnome-vfs-2.0/libgnomevfs/*.h %{_includedir}/gnome-vfs-module-2.0/libgnomevfs/*.h %{_libdir}/gnome-vfs-2.0/include/*.h %{_libdir}/*.a %{_libdir}/*.la %{_libdir}/gnome-vfs-2.0/modules/*.a %{_libdir}/gnome-vfs-2.0/modules/*.la %{_libdir}/bonobo/monikers/*.a %{_libdir}/bonobo/monikers/*.la %{_libdir}/pkgconfig/*.pc %changelog * Sun Dec 15 2001 Ross Golder - fixed broken Name: * Sun Oct 21 2001 Gregory Leblanc - some messing around with Requires: and BuildRequires - cleaned up %files quite a bit (still not quite as good as it could be) - removed a bunch of unnecessary %defines gnome-vfs-2.24.4/AUTHORS0000644000175000001440000000405011334251016011464 00000000000000Main VFS engine: Ettore Perazzoli VFS engine contributors: Elliot Lee Miguel de Icaza Maciej Stachowiak Darin Adler John Sullivan Pavel Cisler Gene Ragan Rebecca Schulman Seth Nickel Ian McKellar Michael Meeks Dan Winship Mathieu Lacage "file" method: Ettore Perazzoli Pavel Cisler "gzip", "extfs" methods: Ettore Perazzoli "http" methods: Ettore Perazzoli Mike Fleming "ftp" method: Ian McKellar "bzip" method: Cody Russell "gconf" method: Dave Camp "pipe" and "translate" methods: Elliot Lee "nfs" method: Grahame Bowland Ian McKellar MIME API and the MIME capplet: John Sullivan Pavel Cisler Maciej Stachowiak Gene Ragan Rebecca Schulman Aaron Brick Misc changes: J Shane Culpepper Ali Abdin Seth Nickell Chris Toshok Glynn Foster Martin Baulig Jarkko Ranta Eskil Heyn Olsen Andy Hertzfeld Kjartan Maraas Christophe Merlet Ramiro Estrugo Don Melton Robin * Slomkowski Robey Pointer Rolf Grossmann Kenneth Christiansen Lutz Müller Matt Bissiri Yukihiro Nakai Ross Golder gnome-vfs-2.24.4/modules/0000755000175000001440000000000011450333532012150 500000000000000gnome-vfs-2.24.4/modules/sftp-method.c0000644000175000001440000026557211334251016014504 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */ /* sftp-method.c - Gnome VFS module for SFTP * * Copyright (C) 2002 Bradford Hovinen * Portions copyright (C) 2001, 2002 Damien Miller * * 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. * * Author: Bradford Hovinen */ /* Portions of this file are derived from OpenSSH. * * Copyright notice for derived sources follows: * * Copyright (c) 2001,2002 Damien Miller. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "sftp.h" #include static size_t default_req_len = 32*1024; static guint max_req = 8; #ifdef HAVE_GRANTPT /* We only use this on systems with unix98 ptys */ #define USE_PTY 1 #endif typedef struct { gchar *hash_name; gint in_fd; gint out_fd; gint tty_fd; GIOChannel *error_channel; pid_t ssh_pid; guint msg_id; guint version; guint ref_count; guint close_timeout_id; GMutex *mutex; guint event_id; GnomeVFSResult status; } SftpConnection; typedef struct { GnomeVFSMethodHandle method_handle; gchar *sftp_handle; gint sftp_handle_len; SftpConnection *connection; guint64 offset; GnomeVFSFileInfo *info; guint info_alloc; guint info_read_ptr; guint info_write_ptr; char *path; GnomeVFSFileInfoOptions dir_options; } SftpOpenHandle; static GHashTable *sftp_connection_table = NULL; G_LOCK_DEFINE_STATIC (sftp_connection_table); #define SFTP_CONNECTION(p) ((SftpConnection *) (p)) #define SFTP_OPEN_HANDLE(p) ((SftpOpenHandle *) (p)) #define SFTP_CLOSE_TIMEOUT (10 * 60 * 1000) /* Ten minutes */ #define INIT_DIR_INFO_ALLOC 16 #define INIT_BUFFER_ALLOC 128 #ifdef FULL_TRACE # ifndef PARTIAL_TRACE # define PARTIAL_TRACE # endif # ifndef MINIMAL_TRACE # define MINIMAL_TRACE # endif # define DEBUG4(x) x #else # define DEBUG4(x) #endif #ifdef PARTIAL_TRACE # ifndef MINIMAL_TRACE # define MINIMAL_TRACE # endif # define DEBUG2(x) x #else # define DEBUG2(x) #endif #ifdef MINIMAL_TRACE # define DEBUG(x) x #else # define DEBUG(x) #endif #define URI_TO_PATH(uri,path) \ path = gnome_vfs_unescape_string (gnome_vfs_uri_get_path (uri), NULL); \ if (path == NULL || !strcmp (path, "")) { \ g_free (path); \ path = g_strdup ("/"); \ } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context); static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); static void sftp_connection_ref (SftpConnection *connection); static gboolean sftp_connection_process_errors (GIOChannel *channel, GIOCondition cond, GnomeVFSResult *status); typedef struct { char *base; char *read_ptr; char *write_ptr; gint alloc; } Buffer; /* Inspired by atomicio() from OpenSSH */ typedef ssize_t (*read_write_fn) (int, void *, size_t); static gssize atomic_io (read_write_fn f, gint fd, gpointer buffer_in, gsize size) { gssize pos = 0, res; guchar *buffer; long int __result; buffer = buffer_in; while (pos < size) { do __result = (long int) (f (fd, buffer, size - pos)); while (__result == -1L && errno == EINTR); res = __result; if (res < 0) return -1; else if (res == 0) return pos; buffer += res; pos += res; } return pos; } static void buffer_init (Buffer *buf) { g_return_if_fail (buf != NULL); buf->base = g_new0 (gchar, INIT_BUFFER_ALLOC); buf->read_ptr = buf->base + sizeof (guint); buf->write_ptr = buf->base + sizeof (guint); buf->alloc = INIT_BUFFER_ALLOC; } static void buffer_free (Buffer *buf) { g_return_if_fail (buf != NULL); if (buf->base == NULL) { g_critical ("No initialized buffers present. Something is being double-freed"); return; } g_free (buf->base); buf->base = buf->read_ptr = buf->write_ptr = NULL; buf->alloc = 0; } static void buffer_check_alloc (Buffer *buf, guint32 size) { guint32 r_len, w_len; g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Allocating %p to %d", buf, size)); while (buf->write_ptr - buf->base + size > buf->alloc) { buf->alloc *= 2; r_len = buf->read_ptr - buf->base; w_len = buf->write_ptr - buf->base; buf->base = g_realloc (buf->base, buf->alloc); buf->read_ptr = buf->base + r_len; buf->write_ptr = buf->base + w_len; } } static void buffer_clear (Buffer *buf) { g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Clearing %p", buf)); buf->read_ptr = buf->write_ptr = buf->base + sizeof (guint); } static void buffer_read (Buffer *buf, gpointer data, guint32 size) { guint32 len; g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Reading %d from %p to %p", size, buf, data)); if (buf->write_ptr - buf->read_ptr < size) g_critical ("Could not read %d bytes", size); len = MIN (size, buf->write_ptr - buf->read_ptr); memcpy (data, buf->read_ptr, len); buf->read_ptr += len; } static void buffer_write (Buffer *buf, gconstpointer data, guint32 size) { g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Writing %d from %p to %p", size, data, buf)); buffer_check_alloc (buf, size); memcpy (buf->write_ptr, data, size); buf->write_ptr += size; } static GnomeVFSResult buffer_send (Buffer *buf, int fd) { guint bytes_written = 0; guint32 len = buf->write_ptr - buf->read_ptr; guint32 w_len = GINT32_TO_BE (len); GnomeVFSResult res = GNOME_VFS_OK; g_return_val_if_fail (buf != NULL, GNOME_VFS_ERROR_INTERNAL); g_return_val_if_fail (buf->base != NULL, GNOME_VFS_ERROR_INTERNAL); DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Sending message of length %d from %p to %d", G_STRFUNC, len, buf, fd)); buf->read_ptr -= sizeof (guint32); *((guint32 *) buf->read_ptr) = w_len; if ((bytes_written = atomic_io ((read_write_fn) write, fd, buf->read_ptr, buf->write_ptr - buf->read_ptr)) < 0) { g_critical ("Could not write entire buffer: %s", g_strerror (errno)); res = GNOME_VFS_ERROR_IO; } else { if (bytes_written == buf->write_ptr - buf->read_ptr) buf->read_ptr = buf->write_ptr = buf->base + sizeof (guint32); else buf->read_ptr += bytes_written; res = GNOME_VFS_OK; } DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: %d bytes written", G_STRFUNC, bytes_written)); return res; } static GnomeVFSResult buffer_recv (Buffer *buf, int fd) { guint32 r_len, len, bytes_read; g_return_val_if_fail (buf != NULL, GNOME_VFS_ERROR_INTERNAL); g_return_val_if_fail (buf->base != NULL, GNOME_VFS_ERROR_INTERNAL); DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Receiving message from %d to %p", G_STRFUNC, fd, buf)); bytes_read = atomic_io (read, fd, &r_len, sizeof (guint32)); if (bytes_read == -1) { DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Could not read length: %s", G_STRFUNC, g_strerror (errno))); return GNOME_VFS_ERROR_IO; } else if (bytes_read == 0) { DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Connection closed: %d", G_STRFUNC, fd)); return GNOME_VFS_ERROR_IO; } len = GINT32_TO_BE (r_len); DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Message is of length %d", G_STRFUNC, len)); /* 256K was the max allowed in OpenSSH */ if (len > 256 * 1024) { g_critical ("Message length too long: %d", len); return GNOME_VFS_ERROR_IO; } buffer_check_alloc (buf, len); if ((bytes_read = atomic_io (read, fd, buf->write_ptr, len)) == -1) { g_critical ("Could not read data: %s", g_strerror (errno)); return GNOME_VFS_ERROR_IO; } DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: %d bytes read", G_STRFUNC, bytes_read)); buf->write_ptr += bytes_read; return GNOME_VFS_OK; } static gchar buffer_read_gchar (Buffer *buf) { gchar data; g_return_val_if_fail (buf != NULL, 0); g_return_val_if_fail (buf->base != NULL, 0); buffer_read (buf, &data, sizeof (gchar)); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Read byte %d from %p", data, buf)); return data; } static gint32 buffer_read_gint32 (Buffer *buf) { gint32 data; g_return_val_if_fail (buf != NULL, 0); g_return_val_if_fail (buf->base != NULL, 0); buffer_read (buf, &data, sizeof (gint32)); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Read word %d from %p", GINT32_TO_BE (data), buf)); return GINT32_TO_BE (data); } static gint64 buffer_read_gint64 (Buffer *buf) { gint64 data; g_return_val_if_fail (buf != NULL, 0); g_return_val_if_fail (buf->base != NULL, 0); buffer_read (buf, &data, sizeof (gint64)); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Read doubleword %lld from %p", GINT64_TO_BE (data), buf)); return GINT64_TO_BE (data); } static gpointer buffer_read_block (Buffer *buf, gint32 *p_len) { gint32 len; gpointer data; g_return_val_if_fail (buf != NULL, NULL); g_return_val_if_fail (buf->base != NULL, NULL); if (p_len == NULL) p_len = &len; *p_len = buffer_read_gint32 (buf); data = g_new (gchar, *p_len); buffer_read (buf, data, *p_len); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Read block of length %d from %p", *p_len, buf)); return data; } static gchar * buffer_read_string (Buffer *buf, gint32 *p_len) { gint32 len; gchar *data; g_return_val_if_fail (buf != NULL, NULL); g_return_val_if_fail (buf->base != NULL, NULL); if (p_len == NULL) p_len = &len; *p_len = buffer_read_gint32 (buf); data = g_new (gchar, *p_len + 1); buffer_read (buf, data, *p_len); data[*p_len] = '\0'; DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Read string of length %d from %p: %s", *p_len, buf, data)); return data; } /* Derived from OpenSSH, sftp-client.c:decode_stat */ static void buffer_read_file_info (Buffer *buf, GnomeVFSFileInfo *info) { gint32 flags; g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); flags = buffer_read_gint32 (buf); info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; if (flags & SSH2_FILEXFER_ATTR_SIZE) { info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SIZE; info->size = buffer_read_gint64 (buf); } if (flags & SSH2_FILEXFER_ATTR_UIDGID) { /* Deprecated in recent SFTP drafts, it isn't really useful * since it doesn't relate to the local UID/GID info. * * We skip the buffer, but ignore the contents. */ buffer_read_gint32 (buf); /* UID */ buffer_read_gint32 (buf); /* GID */ } /* TODO SSH_FILEXFER_ATTR_OWNERGROUP */ if (flags & SSH2_FILEXFER_ATTR_PERMISSIONS) { info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; info->permissions = buffer_read_gint32 (buf); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Permissions is %x", G_STRFUNC, info->permissions)); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_TYPE; if (S_ISREG (info->permissions)) info->type = GNOME_VFS_FILE_TYPE_REGULAR; else if (S_ISDIR (info->permissions)) info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; else if (S_ISFIFO (info->permissions)) info->type = GNOME_VFS_FILE_TYPE_FIFO; else if (S_ISSOCK (info->permissions)) info->type = GNOME_VFS_FILE_TYPE_SOCKET; else if (S_ISCHR (info->permissions)) info->type = GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE; else if (S_ISBLK (info->permissions)) info->type = GNOME_VFS_FILE_TYPE_BLOCK_DEVICE; else if (S_ISLNK (info->permissions)) info->type = GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK; else info->type = GNOME_VFS_FILE_TYPE_UNKNOWN; info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_FLAGS; info->flags = (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) ? GNOME_VFS_FILE_FLAGS_SYMLINK : GNOME_VFS_FILE_FLAGS_NONE; } if (flags & SSH2_FILEXFER_ATTR_ACMODTIME) { info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_ATIME | GNOME_VFS_FILE_INFO_FIELDS_MTIME; info->atime = buffer_read_gint32 (buf); info->mtime = buffer_read_gint32 (buf); } info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE; info->io_block_size = default_req_len * max_req; DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Read file info from %p", buf)); } static void buffer_write_gchar (Buffer *buf, gchar data) { g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Writing byte %d to %p", data, buf)); buffer_write (buf, &data, sizeof (gchar)); } static void buffer_write_gint32 (Buffer *buf, gint32 data) { gint32 w_data; g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Writing word %d to %p", data, buf)); w_data = GINT32_TO_BE (data); buffer_write (buf, &w_data, sizeof (gint32)); } static void buffer_write_gint64 (Buffer *buf, gint64 data) { gint64 w_data; g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Writing doubleword %lld to %p", data, buf)); w_data = GINT64_TO_BE (data); buffer_write (buf, &w_data, sizeof (gint64)); } static void buffer_write_block (Buffer *buf, gconstpointer ptr, gint32 len) { g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Writing block of length %d to %p", len, buf)); buffer_write_gint32 (buf, len); buffer_write (buf, ptr, len); } static void buffer_write_string (Buffer *buf, const gchar *data) { gint32 len; g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); len = strlen (data); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Writing string of length %d to %p: %s", len, buf, data)); buffer_write_block (buf, data, len); } /* Derived from OpenSSH, sftp-client.c:encode_stat */ static void buffer_write_file_info (Buffer *buf, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask) { guint flags = 0; g_return_if_fail (buf != NULL); g_return_if_fail (buf->base != NULL); DEBUG4 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Writing file info to %p", buf)); if (mask & GNOME_VFS_SET_FILE_INFO_PERMISSIONS) flags |= SSH2_FILEXFER_ATTR_PERMISSIONS; if (mask & GNOME_VFS_SET_FILE_INFO_TIME) flags |= SSH2_FILEXFER_ATTR_ACMODTIME; buffer_write_gint32 (buf, flags); if (mask & GNOME_VFS_SET_FILE_INFO_PERMISSIONS) buffer_write_gint32 (buf, info->permissions & 0777); if (mask & GNOME_VFS_SET_FILE_INFO_TIME) { buffer_write_gint32 (buf, info->atime); buffer_write_gint32 (buf, info->mtime); } } static GnomeVFSResult sftp_status_to_vfs_result (guint status) { switch (status) { case SSH2_FX_OK: return GNOME_VFS_OK; case SSH2_FX_EOF: return GNOME_VFS_ERROR_EOF; case SSH2_FX_NO_SUCH_FILE: return GNOME_VFS_ERROR_NOT_FOUND; case SSH2_FX_PERMISSION_DENIED: return GNOME_VFS_ERROR_NOT_PERMITTED; case SSH2_FX_NO_CONNECTION: return GNOME_VFS_ERROR_LOGIN_FAILED; case SSH2_FX_FAILURE: return GNOME_VFS_ERROR_GENERIC; case SSH2_FX_BAD_MESSAGE: return GNOME_VFS_ERROR_INTERNAL; case SSH2_FX_CONNECTION_LOST: return GNOME_VFS_ERROR_IO; case SSH2_FX_OP_UNSUPPORTED: return GNOME_VFS_ERROR_NOT_SUPPORTED; default: return GNOME_VFS_ERROR_GENERIC; } } /* Derived from OpenSSH, sftp-client.c:get_status */ static GnomeVFSResult iobuf_read_result (int fd, guint expected_id) { Buffer msg; guint type, id, status; buffer_init (&msg); buffer_recv (&msg, fd); type = buffer_read_gchar (&msg); id = buffer_read_gint32 (&msg); if (id != expected_id) g_critical ("ID mismatch (%u != %u)", id, expected_id); if (type != SSH2_FXP_STATUS) g_critical ("Expected SSH2_FXP_STATUS(%u) packet, got %u", SSH2_FXP_STATUS, type); status = buffer_read_gint32 (&msg); buffer_free (&msg); DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Result is %d", status)); return sftp_status_to_vfs_result (status); } /* Derived from OpenSSH, sftp-client.c:get_handle */ static GnomeVFSResult iobuf_read_handle (int fd, gchar **handle, guint expected_id, guint32 *len) { Buffer msg; gchar type; guint id, status; buffer_init (&msg); buffer_recv (&msg, fd); type = buffer_read_gchar (&msg); id = buffer_read_gint32 (&msg); if (id != expected_id) g_critical ("ID mismatch (%u != %u)", id, expected_id); if (type == SSH2_FXP_STATUS) { *handle = NULL; status = buffer_read_gint32 (&msg); buffer_free (&msg); return sftp_status_to_vfs_result (status); } else if (type != SSH2_FXP_HANDLE) g_critical ("Expected SSH2_FXP_HANDLE(%u) packet, got %u", SSH2_FXP_HANDLE, type); *handle = buffer_read_block (&msg, (gint32 *)len); buffer_free (&msg); DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Handle is %s", *handle)); return GNOME_VFS_OK; } /* Derived from OpenSSH, sftp-client.c:get_decode_stat */ /* this neither includes the name nor the MIME type, * which are set in update_mime_type_and_name_from_path */ static GnomeVFSResult iobuf_read_file_info (int fd, GnomeVFSFileInfo *info, guint expected_id) { Buffer msg; gchar type; guint id, status; GnomeVFSResult res; buffer_init (&msg); buffer_recv (&msg, fd); type = buffer_read_gchar (&msg); id = buffer_read_gint32 (&msg); if (id != expected_id) { g_warning ("ID mismatch (%u != %u)", id, expected_id); res = GNOME_VFS_ERROR_PROTOCOL_ERROR; } else if (type == SSH2_FXP_STATUS) { status = buffer_read_gint32 (&msg); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Reading file info failed with SSH2_FXP_STATUS(%u), status %u", G_STRFUNC, type, status)); res = sftp_status_to_vfs_result (status); } else if (type == SSH2_FXP_ATTRS) { buffer_read_file_info (&msg, info); res = GNOME_VFS_OK; } else { g_warning ("Expected SSH2_FXP_STATUS(%u) or SSH2_FXP_ATTRS(%u) packet, got %u", SSH2_FXP_STATUS, SSH2_FXP_ATTRS, type); res = GNOME_VFS_ERROR_PROTOCOL_ERROR; } buffer_free (&msg); return res; } /* Derived from OpenSSH, sftp-client.c:send_read_request */ static GnomeVFSResult iobuf_send_read_request (int fd, guint id, guint64 offset, guint len, const char *handle, guint handle_len) { Buffer msg; GnomeVFSResult res; buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_READ); buffer_write_gint32 (&msg, id); buffer_write_block (&msg, handle, handle_len); buffer_write_gint64 (&msg, offset); buffer_write_gint32 (&msg, len); res = buffer_send (&msg, fd); buffer_free (&msg); return res; } /* Derived from OpenSSH, sftp-client.c:send_string_request */ static void iobuf_send_string_request (int fd, guint id, guint code, const char *s, guint len) { Buffer msg; buffer_init (&msg); buffer_write_gchar (&msg, code); buffer_write_gint32 (&msg, id); buffer_write_block (&msg, s, len); buffer_send (&msg, fd); buffer_free (&msg); } /* Derived from OpenSSH, sftp-client.c:send_string_attrs_request */ static void iobuf_send_string_request_with_file_info (int fd, guint id, guint code, const char *s, guint len, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask) { Buffer msg; buffer_init (&msg); buffer_write_gchar (&msg, code); buffer_write_gint32 (&msg, id); buffer_write_block (&msg, s, len); buffer_write_file_info (&msg, info, mask); buffer_send (&msg, fd); buffer_free (&msg); } static char* get_user_from_string_or_password_line (const char *user_string, const char *password_line) { char *chr, *user = NULL; if (!g_str_has_prefix (password_line, "Enter passphrase for key")) { chr = strchr (password_line, '@'); if (chr != NULL) { user = g_strndup (password_line, chr - password_line); } } if (user == NULL) { user = g_strdup (user_string); } return user; } static char* get_object_from_password_line (const char *password_line) { char *chr, *ptr, *object = NULL; if (g_str_has_prefix (password_line, "Enter passphrase for key")) { ptr = strchr (password_line, '\''); if (ptr != NULL) { ptr += 1; chr = strchr (ptr, '\''); if (chr != NULL) { object = g_strndup (ptr, chr-ptr); } else { object = g_strdup (ptr); } } } return object; } static char* get_server_from_uri_or_password_line (const GnomeVFSURI *uri, const char *password_line) { if (!g_str_has_prefix (password_line, "Enter passphrase for key")) { return g_strdup ( (char *)gnome_vfs_uri_get_host_name (uri)); } return NULL; } static char* get_authtype_from_password_line (const char *password_line) { if (g_str_has_prefix (password_line, "Enter passphrase for key")) { return g_strdup ("publickey"); } return g_strdup ("password"); } static gboolean invoke_fill_auth (const GnomeVFSURI *uri, const char *password_line, char **password_out) { gboolean invoked; GnomeVFSModuleCallbackFillAuthenticationIn in_args; GnomeVFSModuleCallbackFillAuthenticationOut out_args; memset (&in_args, 0, sizeof (in_args)); in_args.protocol = "sftp"; in_args.uri = gnome_vfs_uri_to_string (uri, 0); in_args.object = get_object_from_password_line (password_line); in_args.authtype = get_authtype_from_password_line (password_line); in_args.domain = NULL; in_args.port = gnome_vfs_uri_get_host_port (uri); in_args.server = get_server_from_uri_or_password_line (uri, password_line); in_args.username = get_user_from_string_or_password_line (gnome_vfs_uri_get_user_name (uri), password_line); memset (&out_args, 0, sizeof (out_args)); invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); if (invoked && out_args.valid) { *password_out = g_strdup (out_args.password); g_free (out_args.username); g_free (out_args.domain); g_free (out_args.password); } else { *password_out = NULL; } g_free (in_args.uri); g_free (in_args.username); g_free (in_args.object); g_free (in_args.server); g_free (in_args.authtype); return invoked && out_args.valid; } static gboolean invoke_full_auth (const GnomeVFSURI *uri, gboolean done_auth, const char *password_line, const char *user_name, char **password_out, char **keyring_out, char **user_out, char **object_out, char **authtype_out, gboolean *save_password_out, gboolean *abort_auth_out) { GnomeVFSModuleCallbackFullAuthenticationIn in_args; GnomeVFSModuleCallbackFullAuthenticationOut out_args; gboolean invoked; memset (&in_args, 0, sizeof (in_args)); in_args.uri = gnome_vfs_uri_to_string (uri, 0); in_args.flags = GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD | GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED; in_args.default_user = get_user_from_string_or_password_line (user_name, password_line); if (gnome_vfs_uri_get_user_name (uri) == NULL) { in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME; } else { in_args.username = g_strdup (in_args.default_user); } if (done_auth) { in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED; } in_args.protocol = "sftp"; in_args.object = get_object_from_password_line (password_line); in_args.authtype = get_authtype_from_password_line (password_line); in_args.domain = NULL; in_args.port = gnome_vfs_uri_get_host_port (uri); in_args.server = get_server_from_uri_or_password_line (uri, password_line); memset (&out_args, 0, sizeof (out_args)); invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); if (invoked && !out_args.abort_auth) { if (out_args.save_password) { *keyring_out = g_strdup (out_args.keyring); *object_out = get_object_from_password_line (password_line); *authtype_out = get_authtype_from_password_line (password_line); } *user_out = g_strdup (out_args.username); *password_out = g_strdup (out_args.password); *save_password_out = out_args.save_password; g_free (out_args.username); g_free (out_args.domain); g_free (out_args.password); g_free (out_args.keyring); } else { *user_out = NULL; *password_out = NULL; } *abort_auth_out = out_args.abort_auth; g_free (in_args.uri); g_free (in_args.username); g_free (in_args.default_user); g_free (in_args.object); g_free (in_args.server); g_free (in_args.authtype); return invoked && !out_args.abort_auth; } static void invoke_save_auth (const GnomeVFSURI *uri, char *keyring, char *user, char *object, char *authtype, char *password) { GnomeVFSModuleCallbackSaveAuthenticationIn save_in_args; GnomeVFSModuleCallbackSaveAuthenticationOut save_out_args; memset (&save_in_args, 0, sizeof (save_in_args)); save_in_args.uri = gnome_vfs_uri_to_string (uri, 0); save_in_args.server = (char *)gnome_vfs_uri_get_host_name (uri); save_in_args.port = gnome_vfs_uri_get_host_port (uri); save_in_args.protocol = "sftp"; save_in_args.keyring = keyring; save_in_args.username = user; save_in_args.object = object; save_in_args.authtype = authtype; save_in_args.password = password; memset (&save_out_args, 0, sizeof (save_out_args)); gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, &save_in_args, sizeof (save_in_args), &save_out_args, sizeof (save_out_args)); g_free (save_in_args.uri); } typedef enum { SFTP_VENDOR_INVALID = 0, SFTP_VENDOR_OPENSSH, SFTP_VENDOR_SSH } SFTPClientVendor; static SFTPClientVendor get_sftp_client_vendor (void) { char *ssh_stderr; char *args[3]; gint ssh_exitcode; SFTPClientVendor res = SFTP_VENDOR_INVALID; args[0] = g_strdup (SSH_PROGRAM); args[1] = g_strdup ("-V"); args[2] = NULL; if (g_spawn_sync (NULL, args, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL, NULL, NULL, NULL, &ssh_stderr, &ssh_exitcode, NULL)) { if (ssh_stderr == NULL) res = SFTP_VENDOR_INVALID; else if ((strstr (ssh_stderr, "OpenSSH") != NULL) || (strstr (ssh_stderr, "Sun_SSH") != NULL)) res = SFTP_VENDOR_OPENSSH; else if (strstr (ssh_stderr, "SSH Secure Shell") != NULL) res = SFTP_VENDOR_SSH; else res = SFTP_VENDOR_INVALID; } g_free (ssh_stderr); g_free (args[0]); g_free (args[1]); return res; } /* Derived from OpenSSH, sftp.c:main */ static GnomeVFSResult sftp_connect (SftpConnection **connection, const GnomeVFSURI *uri) { GnomeVFSResult res; GIOChannel *error_channel = NULL; GIOChannel *tty_channel = NULL; int in_fd, out_fd, err_fd, tty_fd; pid_t ssh_pid; gint port; guint last_arg, i; gboolean full_auth; gboolean done_auth; gboolean save_password = FALSE; Buffer msg; gchar type; char *user_name = NULL; char *password = NULL; char *keyring = NULL; char *object = NULL; char *authtype = NULL; GError *error = NULL; gchar *args[20]; /* Enough for now, extend if you add more args */ gboolean invoked; GnomeVFSModuleCallbackQuestionIn in_args; GnomeVFSModuleCallbackQuestionOut out_args; SFTPClientVendor client_vendor; DEBUG (gchar *tmp); client_vendor = get_sftp_client_vendor (); done_auth = FALSE; full_auth = FALSE; user_name = g_strdup (gnome_vfs_uri_get_user_name (uri)); if (user_name == NULL) { user_name = g_strdup (g_get_user_name ()); } password = g_strdup (gnome_vfs_uri_get_password (uri)); port = gnome_vfs_uri_get_host_port (uri); /* required if the user decides to login with another user name. * In this case, we'll have to re-spawn the SSH client */ tty_retry: /* Fill in the first few args */ last_arg = 0; args[last_arg++] = g_strdup (SSH_PROGRAM); if (client_vendor == SFTP_VENDOR_OPENSSH) { args[last_arg++] = g_strdup ("-oForwardX11 no"); args[last_arg++] = g_strdup ("-oForwardAgent no"); args[last_arg++] = g_strdup ("-oClearAllForwardings yes"); args[last_arg++] = g_strdup ("-oProtocol 2"); args[last_arg++] = g_strdup ("-oNoHostAuthenticationForLocalhost yes"); #ifndef USE_PTY args[last_arg++] = g_strdup ("-oBatchMode yes"); #endif } else if (client_vendor == SFTP_VENDOR_SSH) { args[last_arg++] = g_strdup ("-x"); } else { for (i = 0; i < last_arg; i++) { g_free (args[i]); } return GNOME_VFS_ERROR_INTERNAL; } /* Make sure the last few arguments are clear */ for (i = last_arg; i < sizeof (args) / sizeof (const gchar *); ++i) args[i] = NULL; if (port != 0) { args[last_arg++] = g_strdup ("-p"); args[last_arg++] = g_strdup_printf ("%d", port); } if (user_name != NULL) { args[last_arg++] = g_strdup ("-l"); args[last_arg++] = g_strdup (user_name); } args[last_arg++] = g_strdup ("-s"); if (client_vendor == SFTP_VENDOR_SSH) { args[last_arg++] = g_strdup ("sftp"); args[last_arg++] = g_strdup (gnome_vfs_uri_get_host_name (uri)); } else { args[last_arg++] = g_strdup (gnome_vfs_uri_get_host_name (uri)); args[last_arg++] = g_strdup ("sftp"); } args[last_arg++] = NULL; DEBUG (tmp = g_strjoinv (" ", args)); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Command line is %s", G_STRFUNC, tmp)); DEBUG (g_free (tmp)); tty_fd = -1; #ifdef USE_PTY tty_fd = gnome_vfs_pty_open(&ssh_pid, GNOME_VFS_PTY_REAP_CHILD, NULL, args[0], args+1, NULL, 300, 300, &out_fd, &in_fd, &err_fd); if (tty_fd == -1) { *connection = NULL; for (i = 0; i < last_arg; i++) { g_free (args[i]); } g_free (user_name); return GNOME_VFS_ERROR_INTERNAL; } #else if (!g_spawn_async_with_pipes (NULL, args, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &ssh_pid, &out_fd, &in_fd, &err_fd, &error)) { g_critical ("Could not launch ssh: %s", error->message); *connection = NULL; for (i = 0; i < last_arg; i++) { g_free (args[i]); } g_free (user_name); return GNOME_VFS_ERROR_INTERNAL; } #endif error_channel = g_io_channel_unix_new (err_fd); g_io_channel_set_flags (error_channel, g_io_channel_get_flags (error_channel) | G_IO_FLAG_NONBLOCK, NULL); for (i = 0; i < last_arg; i++) { g_free (args[i]); } buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_INIT); buffer_write_gint32 (&msg, SSH2_FILEXFER_VERSION); buffer_send (&msg, out_fd); tty_channel = NULL; if (tty_fd != -1) { tty_channel = g_io_channel_unix_new (tty_fd); g_io_channel_set_encoding (tty_channel, NULL, NULL); g_io_channel_set_flags (tty_channel, g_io_channel_get_flags (tty_channel) | G_IO_FLAG_NONBLOCK, NULL); } while (tty_fd != -1) { fd_set ifds; struct timeval tv; int ret; int prompt_fd; GIOChannel *prompt_channel; GIOStatus io_status; char buffer[1024]; gsize len; char *choices[3]; char *pos; char *startpos; char *endpos; char *hostname = NULL; char *fingerprint = NULL; gboolean aborted = FALSE; if (client_vendor == SFTP_VENDOR_SSH) { prompt_fd = err_fd; prompt_channel = error_channel; } else { prompt_fd = tty_fd; prompt_channel = tty_channel; } FD_ZERO (&ifds); FD_SET (in_fd, &ifds); FD_SET (prompt_fd, &ifds); tv.tv_sec = 20; tv.tv_usec = 0; ret = select (MAX (in_fd, prompt_fd)+1, &ifds, NULL, NULL, &tv); if (ret <= 0) { /* Timeout */ res = GNOME_VFS_ERROR_TIMEOUT; goto bail; } if (FD_ISSET (in_fd, &ifds)) { break; } g_assert (FD_ISSET (prompt_fd, &ifds)); error = NULL; io_status = g_io_channel_read_chars (prompt_channel, buffer, sizeof(buffer)-1, &len, &error); if (io_status == G_IO_STATUS_NORMAL) { char *new_user_name = NULL; char *new_password = NULL; /* * If the input URI contains a username * if the input URI contains a password, we attempt one login and return GNOME_VFS_ERROR_ACCESS_DENIED on failure. * if the input URI contains no password, we query the user until he provides a correct one, or he cancels. * * If the input URI contains no username * (a) the user is queried for a user name and a password, with the default login being his * local login name. * * (b) if the user decides to change his remote login name, we go to tty_retry because we need a * new SSH session, attempting one login with his provided credentials, and if that fails proceed * with (a), but use his desired remote login name as default. * * The "password" variable is only used for the very first login attempt, * or for the first re-login attempt when the user decided to change his name. * Otherwise, we "new_password" and "new_user_name" is used, as output variable * for user and keyring input. */ buffer[len] = 0; if (g_str_has_suffix (buffer, "password: ") || g_str_has_suffix (buffer, "Password: ") || g_str_has_suffix (buffer, "Password:") || g_str_has_prefix (buffer, "Enter passphrase for key")) { if (!done_auth && password != NULL) { g_io_channel_write_chars (tty_channel, password, -1, &len, NULL); g_io_channel_write_chars (tty_channel, "\n", 1, &len, NULL); g_io_channel_flush (tty_channel, NULL); } else if (!done_auth && gnome_vfs_uri_get_password (uri) == NULL && invoke_fill_auth (uri, buffer, &new_password) && new_password != NULL) { g_io_channel_write_chars (tty_channel, new_password, -1, &len, NULL); g_io_channel_write_chars (tty_channel, "\n", 1, &len, NULL); g_io_channel_flush (tty_channel, NULL); g_free (password); password = new_password; } else if (gnome_vfs_uri_get_password (uri) == NULL && invoke_full_auth (uri, done_auth, buffer, user_name, &new_password, &keyring, &new_user_name, &object, &authtype, &save_password, &aborted) && new_password != NULL) { if (new_user_name == NULL) { new_user_name = g_strdup (g_get_user_name ()); } g_assert (user_name != NULL); g_assert (new_user_name != NULL); /* if the user changed the login name, we have to re-invoke SSH */ if (strcmp (user_name, new_user_name) != 0) { buffer_free (&msg); if (error_channel != NULL) { g_io_channel_unref (error_channel); } if (tty_channel != NULL) { g_io_channel_unref (tty_channel); } g_free (user_name); user_name = new_user_name; g_free (password); password = new_password; done_auth = FALSE; goto tty_retry; } full_auth = TRUE; g_io_channel_write_chars (tty_channel, new_password, -1, &len, NULL); g_io_channel_write_chars (tty_channel, "\n", 1, &len, NULL); g_io_channel_flush (tty_channel, NULL); g_free (new_user_name); g_free (password); password = new_password; } else if (aborted) { res = GNOME_VFS_ERROR_CANCELLED; goto bail; } else { res = GNOME_VFS_ERROR_ACCESS_DENIED; goto bail; } done_auth = TRUE; } else if (g_str_has_prefix (buffer, "The authenticity of host '") || strstr (buffer, "Key fingerprint:") != NULL) { if (g_str_has_prefix (buffer, "The authenticity of host '")) { /* OpenSSH */ pos = strchr (&buffer[26], '\''); if (pos == NULL) { res = GNOME_VFS_ERROR_GENERIC; goto bail; } hostname = g_strndup (&buffer[26], pos - (&buffer[26])); startpos = strstr (pos, " key fingerprint is "); if (startpos == NULL) { res = GNOME_VFS_ERROR_GENERIC; g_free (hostname); goto bail; } startpos = startpos + 20; endpos = strchr (startpos, '.'); if (endpos == NULL) { res = GNOME_VFS_ERROR_GENERIC; g_free (hostname); goto bail; } fingerprint = g_strndup (startpos, endpos - startpos); } else if (strstr (buffer, "Key fingerprint:") != NULL) { /* SSH.com*/ hostname = g_strdup (gnome_vfs_uri_get_host_name (uri)); startpos = strstr (buffer, "Key fingerprint:"); if (startpos == NULL) { g_free (hostname); res = GNOME_VFS_ERROR_GENERIC; goto bail; } startpos = startpos + 18; endpos = strchr (startpos, '\r'); fingerprint = g_strndup (startpos, endpos - startpos); } else { res = GNOME_VFS_ERROR_GENERIC; goto bail; } in_args.primary_message = g_strdup_printf (_("The identity of the remote computer (%s) is unknown."), hostname); in_args.secondary_message = g_strdup_printf (_("This happens when you log in to a computer the first time.\n\n" "The identity sent by the remote computer is %s. " "If you want to be absolutely sure it is safe to continue, contact the system administrator."), fingerprint); g_free (hostname); g_free (fingerprint); in_args.choices = choices; in_args.choices[0] = (char *) _("Log In Anyway"); in_args.choices[1] = (char *) _("Cancel Login"); in_args.choices[2] = NULL; invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_QUESTION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); if (invoked) { if (out_args.answer == 0) { g_io_channel_write_chars (tty_channel, "yes\n", -1, &len, NULL); } else { g_io_channel_write_chars (tty_channel, "no\n", -1, &len, NULL); g_free (in_args.primary_message); g_free (in_args.secondary_message); res = GNOME_VFS_ERROR_ACCESS_DENIED; goto bail; } g_io_channel_flush (tty_channel, NULL); buffer[0]='\0'; } else { g_io_channel_write_chars (tty_channel, "no\n", -1, &len, NULL); g_io_channel_flush (tty_channel, NULL); buffer[0]='\0'; g_free (in_args.primary_message); g_free (in_args.secondary_message); res = GNOME_VFS_ERROR_ACCESS_DENIED; goto bail; } g_free (in_args.primary_message); g_free (in_args.secondary_message); } } } if ((res = buffer_recv (&msg, in_fd)) != GNOME_VFS_OK) { /* Could not read the response; check the error stream for ssh errors */ sftp_connection_process_errors (error_channel, G_IO_IN, &res); /* If no error came over the pipe, then this looks like a generic I/O error */ if (res == GNOME_VFS_OK) res = GNOME_VFS_ERROR_IO; } else if ((type = buffer_read_gchar (&msg)) != SSH2_FXP_VERSION) { /* Response given was not correct. Give up with a protocol error */ DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Protocol error: message type is %d", G_STRFUNC, type)); res = GNOME_VFS_ERROR_PROTOCOL_ERROR; } else { /* Everything's A-OK. Set up the connection and go */ if (full_auth == TRUE && save_password == TRUE) { invoke_save_auth (uri, keyring, user_name, object, authtype, password); } if (!g_thread_supported ()) g_thread_init (NULL); *connection = g_new0 (SftpConnection, 1); (*connection)->ref_count = 1; (*connection)->in_fd = in_fd; (*connection)->out_fd = out_fd; (*connection)->tty_fd = tty_fd; (*connection)->error_channel = error_channel; g_io_channel_ref (error_channel); (*connection)->ssh_pid = ssh_pid; (*connection)->version = buffer_read_gint32 (&msg); (*connection)->mutex = g_mutex_new (); (*connection)->msg_id = 1; (*connection)->status = GNOME_VFS_OK; (*connection)->event_id = g_io_add_watch ((*connection)->error_channel, G_IO_IN, (GIOFunc) sftp_connection_process_errors, &(*connection)->status); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Version is %d", (*connection)->version)); } bail: buffer_free (&msg); g_free (password); g_free (keyring); g_free (user_name); g_free (object); g_free (authtype); if (error_channel != NULL) { g_io_channel_unref (error_channel); } if (tty_channel != NULL) { g_io_channel_unref (tty_channel); } if (res != GNOME_VFS_OK) { close (in_fd); close (out_fd); close (err_fd); if (tty_fd != -1) close (tty_fd); *connection = NULL; /* TODO: Do we leak error_channel and connection? */ } return res; } static GnomeVFSResult sftp_get_connection (SftpConnection **connection, const GnomeVFSURI *uri) { gchar *hash_name; GnomeVFSResult res; const gchar *user_name; const gchar *host_name; g_return_val_if_fail (connection != NULL, GNOME_VFS_ERROR_INTERNAL); g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_INTERNAL); G_LOCK (sftp_connection_table); if (sftp_connection_table == NULL) sftp_connection_table = g_hash_table_new (g_str_hash, g_str_equal); user_name = gnome_vfs_uri_get_user_name (uri); host_name = gnome_vfs_uri_get_host_name (uri); if (host_name == NULL) { res = GNOME_VFS_ERROR_HOST_NOT_FOUND; goto bail; } if (user_name != NULL) hash_name = g_strconcat (user_name, "@", host_name, NULL); else hash_name = g_strdup (host_name); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Getting connection to %s", G_STRFUNC, hash_name)); *connection = g_hash_table_lookup (sftp_connection_table, hash_name); if (*connection == NULL) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Connection not found. Opening new one.", G_STRFUNC)); res = sftp_connect (connection, uri); if (res == GNOME_VFS_OK) { if (*connection == NULL) { res = GNOME_VFS_ERROR_INTERNAL; g_free (hash_name); goto bail; } g_mutex_lock ((*connection)->mutex); (*connection)->hash_name = hash_name; g_hash_table_insert (sftp_connection_table, hash_name, *connection); } else { g_free (hash_name); } } #if 0 else if (!g_mutex_trylock ((*connection)->mutex)) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Connection found but locked. Opening new one.", G_STRFUNC)); res = sftp_connect (connection, uri); g_mutex_lock ((*connection)->mutex); // Don't insert this one in the table; it'll go away // when done } #endif else { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Connection found. Locking", G_STRFUNC)); g_mutex_lock ((*connection)->mutex); sftp_connection_ref ((*connection)); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Lock acquired", G_STRFUNC)); g_free (hash_name); res = GNOME_VFS_OK; } bail: G_UNLOCK (sftp_connection_table); return res; } static gboolean sftp_connection_close (SftpConnection *conn) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Closing connection %p.", conn)); close (conn->in_fd); close (conn->out_fd); if (conn->tty_fd != -1) close (conn->tty_fd); g_source_remove (conn->event_id); g_io_channel_shutdown (conn->error_channel, FALSE, NULL); g_io_channel_unref (conn->error_channel); g_free (conn->hash_name); g_free (conn); return TRUE; } static gboolean sftp_connection_process_errors (GIOChannel *channel, GIOCondition cond, GnomeVFSResult *status) { gchar *str, *str1; GError *error = NULL; GIOStatus io_status; g_return_val_if_fail (status != NULL, FALSE); if (cond != G_IO_IN) return TRUE; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); io_status = g_io_channel_read_line (channel, &str, NULL, NULL, &error); switch (io_status) { case G_IO_STATUS_ERROR: DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Could not read error message: %s", G_STRFUNC, error->message)); *status = GNOME_VFS_ERROR_IO; break; case G_IO_STATUS_EOF: DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Subprocess closed the connection", G_STRFUNC)); *status = GNOME_VFS_ERROR_EOF; return FALSE; case G_IO_STATUS_AGAIN: DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: No error", G_STRFUNC)); *status = GNOME_VFS_OK; break; case G_IO_STATUS_NORMAL: /* Keep reading error messages until no more are available */ while (io_status == G_IO_STATUS_NORMAL) { io_status = g_io_channel_read_line (channel, &str1, NULL, NULL, &error); if (io_status == G_IO_STATUS_NORMAL) { g_free (str); str = str1; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Error message was %s", G_STRFUNC, str)); } } if (strstr (str, "Permission denied") != NULL) *status = GNOME_VFS_ERROR_LOGIN_FAILED; else if (strstr (str, "Name or service not known") != NULL) *status = GNOME_VFS_ERROR_HOST_NOT_FOUND; else if (strstr (str, "Connection refused") != NULL) *status = GNOME_VFS_ERROR_ACCESS_DENIED; else if (strstr (str, "No route to host") != NULL) *status = GNOME_VFS_ERROR_HOST_NOT_FOUND; else if (strstr (str, "Host key verification failed") != NULL) { *status = GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE; } break; } g_free (str); return TRUE; } static gint sftp_connection_get_id (SftpConnection *conn) { gint id; g_return_val_if_fail (conn != NULL, 0); id = conn->msg_id++; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Message id %d", G_STRFUNC, id)); return id; } static void sftp_connection_lock (SftpConnection *conn) { g_mutex_lock (conn->mutex); } static void sftp_connection_unlock (SftpConnection *conn) { g_mutex_unlock (conn->mutex); } /* caller must have a lock on the connection */ static void sftp_connection_ref (SftpConnection *conn) { ++conn->ref_count; if (conn->close_timeout_id > 0) { g_source_remove (conn->close_timeout_id); conn->close_timeout_id = 0; } } static gboolean close_and_remove_connection (SftpConnection *conn) { sftp_connection_lock (conn); conn->close_timeout_id = 0; if (conn->ref_count != 0) { sftp_connection_unlock (conn); return FALSE; } G_LOCK (sftp_connection_table); g_hash_table_remove (sftp_connection_table, conn->hash_name); G_UNLOCK (sftp_connection_table); sftp_connection_unlock (conn); sftp_connection_close (conn); return FALSE; } /* caller must have a lock on the connection */ static void sftp_connection_unref (SftpConnection *conn) { if (--conn->ref_count == 0 && conn->close_timeout_id == 0) { conn->close_timeout_id = g_timeout_add (SFTP_CLOSE_TIMEOUT, (GSourceFunc) close_and_remove_connection, conn); } } /* Portions of the below functions inspired by functions in OpenSSH sftp-client.c */ #if 0 static GnomeVFSResult get_real_path (SftpConnection *conn, const gchar *path, gchar **realpath) { Buffer msg; guint type, recv_id, count, id; guint status; GnomeVFSResult res; id = sftp_connection_get_id (conn); iobuf_send_string_request (conn->out_fd, id, SSH2_FXP_REALPATH, path, strlen (path)); buffer_init (&msg); res = buffer_recv (&msg, conn->in_fd); if (res != GNOME_VFS_OK) { g_critical ("Error receiving message: %d", res); buffer_free (&msg); return res; } type = buffer_read_gchar (&msg); recv_id = buffer_read_gint32 (&msg); if (type == SSH2_FXP_STATUS) { status = buffer_read_gint32 (&msg); buffer_free (&msg); *realpath = NULL; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Bad status (%d).", G_STRFUNC, status)); return sftp_status_to_vfs_result (status); } else if (recv_id != id || type != SSH2_FXP_NAME) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Bad message id or type (%d, %d).", G_STRFUNC, recv_id, type)); buffer_free (&msg); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } count = buffer_read_gint32 (&msg); if (count == 0) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: File not found: %s", G_STRFUNC, path)); buffer_free (&msg); return GNOME_VFS_ERROR_NOT_FOUND; } else if (count != 1) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Bad count (%d).", G_STRFUNC, count)); buffer_free (&msg); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } *realpath = buffer_read_string (&msg, NULL); buffer_free (&msg); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "Real path is %s", *realpath)); return GNOME_VFS_OK; } #endif /* 0 */ static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { SftpConnection *conn; SftpOpenHandle *handle; GnomeVFSResult res; GnomeVFSFileInfo info; Buffer msg; guint id; gint32 sftp_mode; gchar *sftp_handle; gint sftp_handle_len; gchar *path; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; URI_TO_PATH (uri, path); id = sftp_connection_get_id (conn); buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_OPEN); buffer_write_gint32 (&msg, id); buffer_write_string (&msg, path); sftp_mode = 0; if (mode & GNOME_VFS_OPEN_READ) sftp_mode |= SSH2_FXF_READ; if (mode & GNOME_VFS_OPEN_WRITE) sftp_mode |= SSH2_FXF_WRITE; if ((mode & GNOME_VFS_OPEN_TRUNCATE) || ((mode & GNOME_VFS_OPEN_WRITE) && !(mode & GNOME_VFS_OPEN_RANDOM))) sftp_mode |= SSH2_FXF_TRUNC; buffer_write_gint32 (&msg, sftp_mode); memset (&info, 0, sizeof (GnomeVFSFileInfo)); buffer_write_file_info (&msg, &info, GNOME_VFS_SET_FILE_INFO_NONE); buffer_send (&msg, conn->out_fd); buffer_free (&msg); res = iobuf_read_handle (conn->in_fd, &sftp_handle, id, (guint32 *)&sftp_handle_len); if (res == GNOME_VFS_OK) { handle = g_new0 (SftpOpenHandle, 1); handle->sftp_handle = sftp_handle; handle->sftp_handle_len = sftp_handle_len; handle->path = path; handle->connection = conn; *method_handle = (GnomeVFSMethodHandle *) handle; sftp_connection_unlock (conn); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return GNOME_VFS_OK; } else { *method_handle = NULL; g_free (path); sftp_connection_unref (conn); sftp_connection_unlock (conn); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return res; } } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { SftpConnection *conn; SftpOpenHandle *handle; GnomeVFSResult res; GnomeVFSFileInfo info; Buffer msg; int id; int ssh_mode; gchar *sftp_handle; guint sftp_handle_len; gchar *path; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; URI_TO_PATH (uri, path); id = sftp_connection_get_id (conn); buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_OPEN); buffer_write_gint32 (&msg, id); buffer_write_string (&msg, path); ssh_mode = SSH2_FXF_CREAT; if (mode & GNOME_VFS_OPEN_READ) ssh_mode |= SSH2_FXF_READ; if (mode & GNOME_VFS_OPEN_WRITE) ssh_mode |= SSH2_FXF_WRITE; if (exclusive) { ssh_mode |= SSH2_FXF_EXCL; } else { /* It might be ok to unconditionnally add this truncation flag, * but I'm not 100% sure that SSH2_FXF_EXCL takes precedence * over SSH2_FXF_TRUNC, so better be safe than sorry ;) */ ssh_mode |= SSH2_FXF_TRUNC; } buffer_write_gint32 (&msg, ssh_mode); memset (&info, 0, sizeof (GnomeVFSFileInfo)); info.permissions = perm; buffer_write_file_info (&msg, &info, GNOME_VFS_SET_FILE_INFO_PERMISSIONS); buffer_send (&msg, conn->out_fd); buffer_free (&msg); res = iobuf_read_handle (conn->in_fd, &sftp_handle, id, &sftp_handle_len); if (res == GNOME_VFS_OK) { handle = g_new0 (SftpOpenHandle, 1); handle->sftp_handle = sftp_handle; handle->sftp_handle_len = sftp_handle_len; handle->path = path; handle->connection = conn; *method_handle = (GnomeVFSMethodHandle *) handle; sftp_connection_unlock (conn); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return GNOME_VFS_OK; } else { *method_handle = NULL; g_free (path); sftp_connection_unref (conn); sftp_connection_unlock (conn); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return res; } } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { SftpOpenHandle *handle; guint id, status; Buffer msg; guint i; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); handle = SFTP_OPEN_HANDLE (method_handle); buffer_init (&msg); sftp_connection_lock (handle->connection); id = sftp_connection_get_id (handle->connection); buffer_write_gchar (&msg, SSH2_FXP_CLOSE); buffer_write_gint32 (&msg, id); buffer_write_block (&msg, handle->sftp_handle, handle->sftp_handle_len); buffer_send (&msg, handle->connection->out_fd); status = iobuf_read_result (handle->connection->in_fd, id); buffer_free (&msg); sftp_connection_unref (handle->connection); sftp_connection_unlock (handle->connection); for (i = handle->info_read_ptr; i < handle->info_write_ptr; ++i) g_free (handle->info[i].name); g_free (handle->info); g_free (handle->sftp_handle); g_free (handle->path); g_free (handle); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return status; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer_in, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { SftpOpenHandle *handle; Buffer msg; char type; int recv_id, status; guint req_ptr, req_svc_ptr, req_svc; guint len; guchar *buffer; guchar *curr_ptr; GnomeVFSResult result; gboolean got_eof; guint outstanding; int queue_len; struct ReadRequest { gint id; guint req_len; guchar *ptr; }; struct ReadRequest *read_req; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); got_eof = FALSE; handle = SFTP_OPEN_HANDLE (method_handle); *bytes_read = 0; req_ptr = 0; /* Queue head */ req_svc_ptr = 0; /* Queue tail */ curr_ptr = buffer_in; buffer = buffer_in; outstanding = 0; /* This must be at least one larger than max_req so we don't wrap around the compares. * This means we always leave one unused element between the head and tail. */ queue_len = max_req + 1; read_req = g_new0 (struct ReadRequest, queue_len); buffer_init (&msg); sftp_connection_lock (handle->connection); while ((*bytes_read < num_bytes) || (outstanding > 0)) { /* Request as many blocks as we can without overfilling the queue (i.e. max_req) */ while (curr_ptr < buffer + num_bytes && (req_ptr + 1) % queue_len != req_svc_ptr) { read_req[req_ptr].id = sftp_connection_get_id (handle->connection); read_req[req_ptr].req_len = MIN ((buffer + num_bytes) - curr_ptr, default_req_len); read_req[req_ptr].ptr = curr_ptr; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: (%d) Sending read request %d, length %d, pointer %p", G_STRFUNC, req_ptr, read_req[req_ptr].id, read_req[req_ptr].req_len, read_req[req_ptr].ptr)); outstanding++; iobuf_send_read_request (handle->connection->out_fd, read_req[req_ptr].id, handle->offset + (read_req[req_ptr].ptr - buffer), read_req[req_ptr].req_len, handle->sftp_handle, handle->sftp_handle_len); curr_ptr += read_req[req_ptr].req_len; req_ptr = (req_ptr + 1) % queue_len; } buffer_clear (&msg); result = buffer_recv (&msg, handle->connection->in_fd); outstanding--; if (result != GNOME_VFS_OK) { buffer_free (&msg); sftp_connection_unlock (handle->connection); return result; } type = buffer_read_gchar (&msg); recv_id = buffer_read_gint32 (&msg); /* Look for the id received among sent ids */ for (req_svc = req_svc_ptr; req_svc != req_ptr; req_svc = (req_svc + 1) % queue_len) { if (read_req[req_svc].id == recv_id) { break; } } if (req_svc == req_ptr) { /* Didn't find the id -- unexpected reply */ DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Unexpected id %d", G_STRFUNC, recv_id)); buffer_free (&msg); g_free (read_req); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } switch (type) { case SSH2_FXP_STATUS: status = buffer_read_gint32 (&msg); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Got status message %d", G_STRFUNC, status)); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: req_svc = %d, req_ptr = %d", G_STRFUNC, req_svc, req_ptr)); if (status != SSH2_FX_EOF) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: status return %d", G_STRFUNC, sftp_status_to_vfs_result (status))); buffer_free (&msg); g_free (read_req); sftp_connection_unlock (handle->connection); return sftp_status_to_vfs_result (status); } if (read_req[req_svc].ptr == buffer) got_eof = TRUE; /* We hit an EOF, so make sure we don't try any more reads after this */ num_bytes = MIN (num_bytes, read_req[req_svc].ptr - buffer); /* Kill this request */ read_req[req_svc].id = 0; break; case SSH2_FXP_DATA: len = buffer_read_gint32 (&msg); buffer_read (&msg, read_req[req_svc].ptr, len); *bytes_read += len; if (len < read_req[req_svc].req_len) { /* Missing data. Request that part */ read_req[req_svc].id = sftp_connection_get_id (handle->connection); read_req[req_svc].req_len -= len; read_req[req_svc].ptr += len; outstanding++; iobuf_send_read_request (handle->connection->out_fd, read_req[req_svc].id, handle->offset + (read_req[req_svc].ptr - buffer), read_req[req_svc].req_len, handle->sftp_handle, handle->sftp_handle_len); } else read_req[req_svc].id = 0; break; default: buffer_free (&msg); g_free (read_req); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } /* Pop finished requests from the tail */ while (req_svc_ptr != req_ptr && read_req[req_svc_ptr].id == 0) { req_svc_ptr = (req_svc_ptr + 1) % queue_len; } } handle->offset += *bytes_read; buffer_free (&msg); g_free (read_req); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); sftp_connection_unlock (handle->connection); if (got_eof) return GNOME_VFS_ERROR_EOF; return GNOME_VFS_OK; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer_in, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { SftpOpenHandle *handle; Buffer msg; char type; int recv_id, status; guint req_ptr, req_svc, req_svc_ptr; guint curr_offset; const guchar *buffer; int queue_len; struct WriteRequest { gint id; guint req_len; guint offset; }; struct WriteRequest *write_req; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); handle = SFTP_OPEN_HANDLE (method_handle); /* This must be at least one larger than max_req so we don't wrap around the compares. * This means we always leave one unused element between the head and tail. */ queue_len = max_req + 1; write_req = g_new0 (struct WriteRequest, queue_len); buffer_init (&msg); *bytes_written = 0; curr_offset = 0; buffer = buffer_in; req_ptr = 0; req_svc_ptr = 0; sftp_connection_lock (handle->connection); while (*bytes_written < num_bytes) { while (curr_offset < num_bytes && (req_ptr + 1) % queue_len != req_svc_ptr) { write_req[req_ptr].id = sftp_connection_get_id (handle->connection); write_req[req_ptr].req_len = MIN (num_bytes - curr_offset, default_req_len); write_req[req_ptr].offset = curr_offset; curr_offset += write_req[req_ptr].req_len; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: (%d) Sending write request %d, length %d, offset %d", G_STRFUNC, req_ptr, write_req[req_ptr].id, write_req[req_ptr].req_len, write_req[req_ptr].offset)); buffer_clear (&msg); buffer_write_gchar (&msg, SSH2_FXP_WRITE); buffer_write_gint32 (&msg, write_req[req_ptr].id); buffer_write_block (&msg, handle->sftp_handle, handle->sftp_handle_len); buffer_write_gint64 (&msg, handle->offset + write_req[req_ptr].offset); buffer_write_block (&msg, buffer + write_req[req_ptr].offset, write_req[req_ptr].req_len); buffer_send (&msg, handle->connection->out_fd); req_ptr = (req_ptr + 1) % queue_len; } buffer_clear (&msg); buffer_recv (&msg, handle->connection->in_fd); type = buffer_read_gchar (&msg); recv_id = buffer_read_gint32 (&msg); if (type != SSH2_FXP_STATUS) { buffer_free (&msg); g_free (write_req); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } status = buffer_read_gint32 (&msg); if (status != SSH2_FX_OK) { buffer_free (&msg); g_free (write_req); sftp_connection_unlock (handle->connection); return sftp_status_to_vfs_result (status); } /* Look for the id received among sent ids */ for (req_svc = req_svc_ptr; req_svc != req_ptr; req_svc = (req_svc + 1) % queue_len) { if (write_req[req_svc].id == recv_id) { break; } } if (req_svc == req_ptr) { /* Didn't find the id -- unexpected reply */ DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Unexpected id %d", G_STRFUNC, recv_id)); buffer_free (&msg); g_free (write_req); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } write_req[req_svc].id = 0; *bytes_written += write_req[req_svc].req_len; /* Pop finished requests from the tail */ while (req_svc_ptr != req_ptr && write_req[req_svc_ptr].id == 0) { req_svc_ptr = (req_svc_ptr + 1) % queue_len; } } handle->offset += *bytes_written; buffer_free (&msg); g_free (write_req); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); sftp_connection_unlock (handle->connection); return GNOME_VFS_OK; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { SftpOpenHandle *handle; GnomeVFSFileInfo file_info = { 0, }; GnomeVFSResult res; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); handle = SFTP_OPEN_HANDLE (method_handle); switch (whence) { case GNOME_VFS_SEEK_START: handle->offset = offset; break; case GNOME_VFS_SEEK_CURRENT: handle->offset += offset; break; case GNOME_VFS_SEEK_END: res = do_get_file_info_from_handle (method, method_handle, &file_info, GNOME_VFS_FILE_INFO_DEFAULT, context); if (res != GNOME_VFS_OK) return res; handle->offset = file_info.size + offset; break; } DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return GNOME_VFS_OK; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { SftpOpenHandle *handle; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); handle = SFTP_OPEN_HANDLE (method_handle); *offset_return = handle->offset; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return GNOME_VFS_OK; } static char * sftp_readlink (SftpConnection *connection, const char *path) { Buffer msg; guint recv_id; char type; unsigned int id; char *ret; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); id = sftp_connection_get_id (connection); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Requesting symlink target for %s", G_STRFUNC, path)); buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_READLINK); buffer_write_gint32 (&msg, id); buffer_write_string (&msg, path); buffer_send (&msg, connection->out_fd); buffer_clear (&msg); buffer_recv (&msg, connection->in_fd); type = buffer_read_gchar (&msg); recv_id = buffer_read_gint32 (&msg); ret = NULL; if (recv_id != id) g_critical ("%s: ID mismatch (%u != %u)", G_STRFUNC, recv_id, id); else if (type == SSH2_FXP_NAME) { int count; count = buffer_read_gint32 (&msg); if (count == 1) { ret = buffer_read_string (&msg, NULL); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Symlink resolved to %s", G_STRFUNC, ret)); } else { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Readlink failed, got unexpected filename count (%d, 1 expected)", G_STRFUNC, count)); } } else if (type == SSH2_FXP_STATUS) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Readlink failed, SSH2_FXP_STATUS response", G_STRFUNC)); } else { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Readlink failed, bad response (%d)", G_STRFUNC, type)); } buffer_free (&msg); return ret; } static void update_mime_type_and_name_from_path (GnomeVFSFileInfo *file_info, const char *path, GnomeVFSFileInfoOptions options) { if (file_info->name != NULL) g_free (file_info->name); if (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE) g_free (file_info->mime_type); /* always use the original path as filename, even if the stat info * refers to the actual target */ if (!strcmp (path, "/")) file_info->name = g_strdup (path); else file_info->name = g_path_get_basename (path); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; if (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE && file_info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) /* only relevant for broken symlinks, or if symlinks are not followed */ file_info->mime_type = g_strdup ("x-special/symlink"); else if (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME && file_info->symlink_name != NULL && (options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR) file_info->mime_type = g_strdup (gnome_vfs_mime_type_from_name_or_default (file_info->symlink_name, GNOME_VFS_MIME_TYPE_UNKNOWN)); else if (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR) file_info->mime_type = g_strdup (gnome_vfs_mime_type_from_name_or_default (file_info->name, GNOME_VFS_MIME_TYPE_UNKNOWN)); else file_info->mime_type = g_strdup (gnome_vfs_mime_type_from_mode_or_default (file_info->permissions, GNOME_VFS_MIME_TYPE_UNKNOWN)); } /* from gnome-vfs-utils.c */ #define MAX_SYMLINKS_FOLLOWED 32 static GnomeVFSResult get_file_info_for_path (SftpConnection *conn, const char *path, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options) { GnomeVFSResult res; unsigned int id; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); if (conn->version == 0) { /* SSH2_FXP_STAT_VERSION_0 doesn't allow our symlink semantics */ DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Server with protocol version 0 detected, LSTAT unsupported.", G_STRFUNC)); return GNOME_VFS_ERROR_NOT_SUPPORTED; } id = sftp_connection_get_id (conn); iobuf_send_string_request (conn->out_fd, id, SSH2_FXP_LSTAT, path, strlen (path)); res = iobuf_read_file_info (conn->in_fd, file_info, id); if (res != GNOME_VFS_OK) return res; if (options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS && file_info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) { char *target_path; GnomeVFSFileInfo *target_info, *last_valid_target_info; unsigned int followed_symlinks; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Got GNOME_VFS_FILE_INFO_FOLLOW_LINKS, encountered symlink, resolving.", G_STRFUNC)); followed_symlinks = 0; target_info = gnome_vfs_file_info_new (); last_valid_target_info = NULL; target_path = NULL; /* resolve either to last existant symlink (s_1->...->s_n)->NULL * or to first file which is not a symlink (s_1->...->s_n->t) */ while (1) { char *next_target_reference; char *tmp; if (++followed_symlinks > MAX_SYMLINKS_FOLLOWED) { DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Too many symlinks while resolving %s.", G_STRFUNC, target_path)); res = GNOME_VFS_ERROR_TOO_MANY_LINKS; /* we signal failure but still fill the file_info as good as we can. * Is this allowed? */ break; } next_target_reference = sftp_readlink (conn, target_path != NULL ? target_path : path); DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Resolved %s to %s", G_STRFUNC, target_path != NULL ? target_path : path, next_target_reference)); if (next_target_reference == NULL) { DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Resultion of %s to %s failed, target probably nonexistant.", G_STRFUNC, target_path, next_target_reference)); break; } tmp = target_path; target_path = gnome_vfs_resolve_symlink (target_path != NULL ? target_path : path, next_target_reference); g_free (tmp); id = sftp_connection_get_id (conn); iobuf_send_string_request (conn->out_fd, id, SSH2_FXP_LSTAT, target_path, strlen (target_path)); res = iobuf_read_file_info (conn->in_fd, target_info, id); if (res != GNOME_VFS_OK || (target_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) == 0) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Resultion of %s to %s failed, could not get file info.", G_STRFUNC, target_path, next_target_reference)); res = GNOME_VFS_OK; break; } if (last_valid_target_info == NULL) last_valid_target_info = gnome_vfs_file_info_new (); else gnome_vfs_file_info_clear (last_valid_target_info); gnome_vfs_file_info_copy (last_valid_target_info, target_info); if (target_info->type != GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) { DEBUG2 (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Aborting symlink resolution, %s is no symlink.", G_STRFUNC, target_path)); break; } gnome_vfs_file_info_clear (target_info); } DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Resolved %s -> %s", G_STRFUNC, path, target_path)); if (last_valid_target_info != NULL) { gnome_vfs_file_info_clear (file_info); gnome_vfs_file_info_copy (file_info, last_valid_target_info); gnome_vfs_file_info_unref (last_valid_target_info); } gnome_vfs_file_info_unref (target_info); GNOME_VFS_FILE_INFO_SET_SYMLINK (file_info, TRUE); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME; file_info->symlink_name = target_path; } else if (file_info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) { file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME; file_info->symlink_name = sftp_readlink (conn, path); GNOME_VFS_FILE_INFO_SET_SYMLINK (file_info, TRUE); } update_mime_type_and_name_from_path (file_info, path, options); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return res; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res; char *path; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter (no exit notify)", G_STRFUNC)); res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; URI_TO_PATH (uri, path); res = get_file_info_for_path (conn, path, file_info, options); g_free (path); sftp_connection_unref (conn); sftp_connection_unlock (conn); return res; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { SftpOpenHandle *handle; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter (no exit notify)", G_STRFUNC)); handle = SFTP_OPEN_HANDLE (method_handle); /* we can't use FSTAT, because it always follows the symlink, but doesn't return the target file name. * So we fall back to our home-brewn LSTAT/readlink code. */ return get_file_info_for_path (handle->connection, handle->path, file_info, options); } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return FALSE; } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { SftpConnection *conn; SftpOpenHandle *handle; GnomeVFSResult res; gchar *sftp_handle; Buffer msg; guint id, sftp_handle_len; gchar *path; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; id = sftp_connection_get_id (conn); URI_TO_PATH (uri, path); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Opening %s", G_STRFUNC, path)); buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_OPENDIR); buffer_write_gint32 (&msg, id); buffer_write_string (&msg, path); buffer_send (&msg, conn->out_fd); buffer_free (&msg); res = iobuf_read_handle (conn->in_fd, &sftp_handle, id, &sftp_handle_len); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Result is %d", G_STRFUNC, res)); if (res == GNOME_VFS_OK) { handle = g_new0 (SftpOpenHandle, 1); handle->sftp_handle = sftp_handle; handle->sftp_handle_len = sftp_handle_len; handle->connection = conn; handle->info = g_new0 (GnomeVFSFileInfo, INIT_DIR_INFO_ALLOC); handle->info_alloc = INIT_DIR_INFO_ALLOC; handle->info_read_ptr = 0; handle->info_write_ptr = 0; handle->path = path; handle->dir_options = options; *method_handle = (GnomeVFSMethodHandle *) handle; sftp_connection_unlock (conn); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Opened directory %p", G_STRFUNC, handle)); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return GNOME_VFS_OK; } else { /* For some reason, some servers report EOF when the directory doesn't exist. *shrug* */ if (res == GNOME_VFS_ERROR_EOF) res = GNOME_VFS_ERROR_NOT_FOUND; g_free (path); sftp_connection_unref (conn); sftp_connection_unlock (conn); *method_handle = NULL; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return res; } } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { return do_close (method, method_handle, context); } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { SftpOpenHandle *handle; guint id, recv_id; gint status, count, i; Buffer msg; gchar type; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); handle = SFTP_OPEN_HANDLE (method_handle); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Reading directory %p", G_STRFUNC, handle)); if (handle->info_read_ptr < handle->info_write_ptr) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Found directory entry %s in cache", G_STRFUNC, handle->info[handle->info_read_ptr].name)); gnome_vfs_file_info_copy (file_info, &(handle->info[handle->info_read_ptr++])); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); return GNOME_VFS_OK; } sftp_connection_lock (handle->connection); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: No entries in cache", G_STRFUNC)); id = sftp_connection_get_id (handle->connection); buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_READDIR); buffer_write_gint32 (&msg, id); buffer_write_block (&msg, handle->sftp_handle, handle->sftp_handle_len); buffer_send (&msg, handle->connection->out_fd); buffer_clear (&msg); buffer_recv (&msg, handle->connection->in_fd); type = buffer_read_gchar (&msg); recv_id = buffer_read_gint32 (&msg); if (recv_id != id) { buffer_free (&msg); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } if (type == SSH2_FXP_STATUS) { status = buffer_read_gint32 (&msg); buffer_free (&msg); if (status == SSH2_FX_EOF || SSH2_FX_OK) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: End of directory reached (EOF status)", G_STRFUNC)); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_EOF; } else { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Error status %d", G_STRFUNC, status)); do_close (method, method_handle, context); sftp_connection_unlock (handle->connection); return sftp_status_to_vfs_result (status); } } else if (type == SSH2_FXP_NAME) { count = buffer_read_gint32 (&msg); if (count == 0) { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: End of directory reached (count 0)", G_STRFUNC)); buffer_free (&msg); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_EOF; } DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Count is %d", G_STRFUNC, count)); if (handle->info_write_ptr + count > handle->info_alloc) { if (handle->info_read_ptr > 0) { memmove (&(handle->info[handle->info_read_ptr]), handle->info, sizeof (GnomeVFSFileInfo) * (handle->info_write_ptr - handle->info_read_ptr)); handle->info_write_ptr -= handle->info_read_ptr; handle->info_read_ptr = 0; } while (handle->info_write_ptr + count > handle->info_alloc) { handle->info_alloc *= 2; handle->info = g_renew (GnomeVFSFileInfo, handle->info, handle->info_alloc); memset (&(handle->info[handle->info_write_ptr]), 0, sizeof (GnomeVFSFileInfo) * (handle->info_alloc - handle->info_write_ptr)); } } for (i = 0; i < count; i++) { GnomeVFSFileInfo *info; char *filename, *longname; char *path; info = &(handle->info[handle->info_write_ptr]); filename = buffer_read_string (&msg, NULL); longname = buffer_read_string (&msg, NULL); buffer_read_file_info (&msg, info); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: %d, filename is %s", G_STRFUNC, i, filename)); if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE && info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) { path = g_build_filename (handle->path, filename, NULL); get_file_info_for_path (handle->connection, path, info, handle->dir_options); g_free (path); } else update_mime_type_and_name_from_path (info, filename, handle->dir_options); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: %d, MIME type is %s", G_STRFUNC, i, info->mime_type)); g_free (filename); g_free (longname); handle->info_write_ptr++; } } else { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Got wrong packet type (%d)", G_STRFUNC, type)); buffer_free (&msg); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_PROTOCOL_ERROR; } buffer_free (&msg); if (handle->info_read_ptr < handle->info_write_ptr) { gnome_vfs_file_info_copy (file_info, &(handle->info[handle->info_read_ptr])); g_free (handle->info[handle->info_read_ptr].name); handle->info[handle->info_read_ptr].name = NULL; g_free (handle->info[handle->info_read_ptr].mime_type); handle->info[handle->info_read_ptr].mime_type = NULL; handle->info_read_ptr++; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); sftp_connection_unlock (handle->connection); return GNOME_VFS_OK; } else { DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit", G_STRFUNC)); sftp_connection_unlock (handle->connection); return GNOME_VFS_ERROR_EOF; } } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res; gchar *path; guint id; GnomeVFSFileInfo info; res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; id = sftp_connection_get_id (conn); URI_TO_PATH (uri, path); memset (&info, 0, sizeof (GnomeVFSFileInfo)); iobuf_send_string_request_with_file_info (conn->out_fd, id, SSH2_FXP_MKDIR, path, strlen (path), &info, GNOME_VFS_SET_FILE_INFO_NONE); g_free (path); res = iobuf_read_result (conn->in_fd, id); sftp_connection_unref (conn); sftp_connection_unlock (conn); if (res == GNOME_VFS_ERROR_GENERIC && gnome_vfs_uri_exists (uri)) { res = GNOME_VFS_ERROR_FILE_EXISTS; } return res; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res; gchar *path; guint id; res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; id = sftp_connection_get_id (conn); URI_TO_PATH (uri, path); iobuf_send_string_request (conn->out_fd, id, SSH2_FXP_RMDIR, path, strlen (path)); g_free (path); res = iobuf_read_result (conn->in_fd, id); sftp_connection_unref (conn); sftp_connection_unlock (conn); return res; } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res; gboolean same_fs; Buffer msg; guint id; gchar *old_path, *new_path; same_fs = FALSE; do_check_same_fs (method, old_uri, new_uri, &same_fs, NULL); if (!same_fs) { return GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; } res = sftp_get_connection (&conn, old_uri); if (res != GNOME_VFS_OK) return res; URI_TO_PATH (old_uri, old_path); URI_TO_PATH (new_uri, new_path); id = sftp_connection_get_id (conn); /* if force_replace is specified, try to remove new_uri */ if (force_replace) { iobuf_send_string_request (conn->out_fd, id, SSH2_FXP_REMOVE, new_path, strlen (new_path)); res = iobuf_read_result (conn->in_fd, id); if (res != GNOME_VFS_OK && res != GNOME_VFS_ERROR_NOT_FOUND) goto bail; } buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_RENAME); buffer_write_gint32 (&msg, id); buffer_write_string (&msg, old_path); buffer_write_string (&msg, new_path); buffer_send (&msg, conn->out_fd); buffer_free (&msg); res = iobuf_read_result (conn->in_fd, id); bail: g_free (old_path); g_free (new_path); sftp_connection_unref (conn); sftp_connection_unlock (conn); return res; } static GnomeVFSResult do_rename (GnomeVFSMethod *method, GnomeVFSURI *old_uri, const gchar *new_name, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res; char *old_dirname; Buffer msg; guint id; gchar *old_path, *new_path; res = sftp_get_connection (&conn, old_uri); if (res != GNOME_VFS_OK) return res; URI_TO_PATH (old_uri, old_path); old_dirname = g_path_get_dirname (old_path); new_path = g_build_filename (old_dirname, new_name, NULL); if (new_path == NULL) { g_free (old_path); sftp_connection_unref (conn); sftp_connection_unlock (conn); return GNOME_VFS_ERROR_INVALID_URI; } g_free (old_dirname); id = sftp_connection_get_id (conn); buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_RENAME); buffer_write_gint32 (&msg, id); buffer_write_string (&msg, old_path); buffer_write_string (&msg, new_path); buffer_send (&msg, conn->out_fd); buffer_free (&msg); g_free (old_path); g_free (new_path); res = iobuf_read_result (conn->in_fd, id); sftp_connection_unref (conn); sftp_connection_unlock (conn); return res; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res; gchar *path; guint id; res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; id = sftp_connection_get_id (conn); URI_TO_PATH (uri, path); iobuf_send_string_request (conn->out_fd, id, SSH2_FXP_REMOVE, path, strlen (path)); g_free (path); res = iobuf_read_result (conn->in_fd, id); sftp_connection_unref (conn); sftp_connection_unlock (conn); return res; } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { const gchar *a_host_name, *b_host_name; const gchar *a_user_name, *b_user_name; g_return_val_if_fail (a != NULL, GNOME_VFS_ERROR_INTERNAL); g_return_val_if_fail (b != NULL, GNOME_VFS_ERROR_INTERNAL); a_host_name = gnome_vfs_uri_get_host_name (a); b_host_name = gnome_vfs_uri_get_host_name (b); a_user_name = gnome_vfs_uri_get_user_name (a); b_user_name = gnome_vfs_uri_get_user_name (b); g_return_val_if_fail (a_host_name != NULL, GNOME_VFS_ERROR_INVALID_URI); g_return_val_if_fail (b_host_name != NULL, GNOME_VFS_ERROR_INVALID_URI); /* TODO this is wrong because we can't * tell what login name is used for NULL * user names, but at least this check is * I/O-less. * We could also look up the connections * for both URIs and check whether their * actual login name (i.e. the user name * passed with -l to the SSH client) * matches. */ if (a_user_name == NULL) a_user_name = ""; if (b_user_name == NULL) b_user_name = ""; if (same_fs_return != NULL) *same_fs_return = ((!strcmp (a_host_name, b_host_name)) && (!strcmp (a_user_name, b_user_name))); return GNOME_VFS_OK; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res = GNOME_VFS_OK; guint id; gchar *path; DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Enter", G_STRFUNC)); if ((mask & ~(GNOME_VFS_SET_FILE_INFO_NAME | GNOME_VFS_SET_FILE_INFO_PERMISSIONS | GNOME_VFS_SET_FILE_INFO_OWNER | GNOME_VFS_SET_FILE_INFO_TIME)) != 0) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (mask & (GNOME_VFS_SET_FILE_INFO_PERMISSIONS | GNOME_VFS_SET_FILE_INFO_OWNER | GNOME_VFS_SET_FILE_INFO_TIME)) { res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; id = sftp_connection_get_id (conn); URI_TO_PATH (uri, path); iobuf_send_string_request_with_file_info (conn->out_fd, id, SSH2_FXP_SETSTAT, path, strlen (path), info, mask); g_free (path); res = iobuf_read_result (conn->in_fd, id); sftp_connection_unref (conn); sftp_connection_unlock (conn); } if (res == GNOME_VFS_OK && (mask & GNOME_VFS_SET_FILE_INFO_NAME)) res = do_rename (method, uri, info->name, context); DEBUG (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, "%s: Exit: %d", G_STRFUNC, res)); return res; } static GnomeVFSResult do_create_symlink (GnomeVFSMethod *method, GnomeVFSURI *uri, const gchar *target, GnomeVFSContext *context) { SftpConnection *conn; GnomeVFSResult res; GnomeVFSURI *target_uri; Buffer msg; guint id; char *path; char *real_target; gboolean same_fs; res = sftp_get_connection (&conn, uri); if (res != GNOME_VFS_OK) return res; if (conn->version < 3) { sftp_connection_unref (conn); sftp_connection_unlock (conn); return GNOME_VFS_ERROR_NOT_SUPPORTED; } URI_TO_PATH (uri, path); real_target = NULL; target_uri = gnome_vfs_uri_new (target); if (target_uri != NULL) { same_fs = FALSE; do_check_same_fs (method, uri, target_uri, &same_fs, NULL); if (!same_fs) { g_free (path); gnome_vfs_uri_unref (target_uri); sftp_connection_unref (conn); sftp_connection_unlock (conn); return GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; } URI_TO_PATH (target_uri, real_target); gnome_vfs_uri_unref (target_uri); } if (real_target == NULL) real_target = g_strdup (target); id = sftp_connection_get_id (conn); buffer_init (&msg); buffer_write_gchar (&msg, SSH2_FXP_SYMLINK); buffer_write_gint32 (&msg, id); buffer_write_string (&msg, real_target); buffer_write_string (&msg, path); buffer_send (&msg, conn->out_fd); buffer_free (&msg); res = iobuf_read_result (conn->in_fd, id); sftp_connection_unref (conn); sftp_connection_unlock (conn); if (res == GNOME_VFS_ERROR_GENERIC && gnome_vfs_uri_exists (uri)) { res = GNOME_VFS_ERROR_FILE_EXISTS; } g_free (path); g_free (real_target); return res; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, NULL, /* truncate_handle */ do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, NULL, /* truncate */ NULL, /* find_directory */ do_create_symlink, NULL, /* monitor_add */ NULL /* monitor_cancel */ }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { return &method; } static gboolean close_thunk (gpointer key, gpointer value, gpointer user_data) { sftp_connection_close (SFTP_CONNECTION (value)); return TRUE; } void vfs_module_shutdown (GnomeVFSMethod *method) { G_LOCK (sftp_connection_table); if (sftp_connection_table != NULL) { g_hash_table_foreach_remove (sftp_connection_table, (GHRFunc) close_thunk, NULL); } G_UNLOCK (sftp_connection_table); } gnome-vfs-2.24.4/modules/ftp-method.c0000644000175000001440000023231111354402652014310 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */ /* ftp-method.c - VFS modules for FTP Copyright (C) 2000 Ian McKellar, Eazel Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ian McKellar */ /* see RFC 959 for protocol details */ #include /* Keep above any network includes for FreeBSD. */ #include /* Keep above for FreeBSD. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* for sscanf */ #include /* for atoi */ #include #ifdef HAVE_STRINGS_H #include #endif #include #ifdef HAVE_GSSAPI_H #include #endif #ifdef HAVE_GSSAPI_GSSAPI_H #include #endif #ifdef HAVE_GSSAPI_GSSAPI_GENERIC_H #include #endif #define PROT_C 1 /* in the clear */ #define PROT_S 2 /* safe */ #define PROT_P 3 /* private */ #define REAP_TIMEOUT (15 * 1000) /* milliseconds */ #define CONNECTION_CACHE_MIN_LIFETIME (30 * 1000) /* milliseconds */ #define DIRLIST_CACHE_TIMEOUT 30 /* seconds */ /* maximum size of response we're expecting to get */ #define MAX_RESPONSE_SIZE 4096 /* macros for the checking of FTP response codes */ #define IS_100(X) ((X) >= 100 && (X) < 200) #define IS_200(X) ((X) >= 200 && (X) < 300) #define IS_300(X) ((X) >= 300 && (X) < 400) #define IS_400(X) ((X) >= 400 && (X) < 500) #define IS_500(X) ((X) >= 500 && (X) < 600) typedef struct { char *ip; /* Saved ip to get the same resolv each time */ gchar *server_type; /* the response from TYPE */ char *user; char *password; time_t last_use; GList *spare_connections; int num_connections; int num_monitors; GHashTable *cached_dirlists; /* path -> FtpCachedDirlist */ } FtpConnectionPool; typedef struct { char *dirlist; time_t read_time; } FtpCachedDirlist; typedef struct { GnomeVFSMethodHandle method_handle; GnomeVFSSocketBuffer *socket_buf; GnomeVFSURI *uri; gchar *cwd; GString *response_buffer; gchar *response_message; gint response_code; GnomeVFSSocketBuffer *data_socketbuf; guint32 my_ip; GnomeVFSFileOffset offset; enum { FTP_NOTHING, FTP_READ, FTP_WRITE, FTP_READDIR } operation; gchar *server_type; /* the response from TYPE */ GnomeVFSResult fivefifty; /* the result to return for an FTP 550 */ const char *list_cmd; /* the command to be used for LIST */ #ifdef HAVE_GSSAPI gboolean use_gssapi; gss_ctx_id_t gcontext; int clevel; #endif FtpConnectionPool *pool; } FtpConnection; typedef struct { GnomeVFSURI *uri; gchar *dirlist; gchar *dirlistptr; gchar *server_type; /* the response from TYPE */ GnomeVFSFileInfoOptions file_info_options; } FtpDirHandle; /* Gconf key's "use_http_proxy" is for FTP as well, it should be renamed */ static const char USE_PROXY_KEY[] = "/system/http_proxy/use_http_proxy"; static const char PROXY_FTP_HOST_KEY[] = "/system/proxy/ftp_host"; static const char PROXY_FTP_PORT_KEY[] = "/system/proxy/ftp_port"; static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context); static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri); static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context); guint ftp_connection_uri_hash (gconstpointer c); gint ftp_connection_uri_equal (gconstpointer c, gconstpointer d); static GnomeVFSResult ftp_connection_acquire (GnomeVFSURI *uri, FtpConnection **connection, GnomeVFSContext *context); static void ftp_connection_release (FtpConnection *conn, gboolean error_release); static GnomeVFSResult get_list_command (FtpConnection *conn, GnomeVFSContext *context); static const int control_port = 21; /* FTP Proxy */ static gchar *proxy_host = NULL; static int proxy_port = 0; /* A GHashTable of FtpConnectionPool */ static GHashTable *connection_pools = NULL; G_LOCK_DEFINE_STATIC (connection_pools); static gint connection_pool_timeout = 0; static gint total_connections = 0; static gint allocated_connections = 0; #if ENABLE_FTP_DEBUG #define ftp_debug(c,g) FTP_DEBUG((c),(g),__FILE__, __LINE__, __PRETTY_FUNCTION__) static void FTP_DEBUG (FtpConnection *conn, gchar *text, gchar *file, gint line, gchar *func) { if (conn) { g_print ("[%p] %s:%d (%s) [ftp conn=%p]\n %s\n", g_thread_self(), file, line, func, conn, text); } else { g_print ("[%p] %s:%d (%s) [ftp]\n %s\n", g_thread_self(), file, line, func, text); } g_free (text); } #else #define ftp_debug(c,g) #endif static GnomeVFSCancellation * get_cancellation (GnomeVFSContext *context) { if (context) { return gnome_vfs_context_get_cancellation (context); } return NULL; } static GnomeVFSResult ftp_response_to_vfs_result (FtpConnection *conn) { gint response = conn->response_code; switch (response) { case 421: case 426: return GNOME_VFS_ERROR_CANCELLED; case 425: /*FIXME this looks like a bad mapping. * 425 is "could not open data connection" which * probably doesn't have anything to do with file permissions */ return GNOME_VFS_ERROR_ACCESS_DENIED; case 530: case 331: case 332: case 532: return GNOME_VFS_ERROR_LOGIN_FAILED; case 450: case 451: case 551: return GNOME_VFS_ERROR_NOT_FOUND; case 504: return GNOME_VFS_ERROR_BAD_PARAMETERS; case 550: return conn->fivefifty; case 452: case 552: return GNOME_VFS_ERROR_NO_SPACE; case 553: return GNOME_VFS_ERROR_BAD_FILE; } /* is this the correct interpretation of this error? */ if (IS_100 (response)) return GNOME_VFS_OK; if (IS_200 (response)) return GNOME_VFS_OK; /* is this the correct interpretation of this error? */ if (IS_300 (response)) return GNOME_VFS_OK; if (IS_400 (response)) return GNOME_VFS_ERROR_GENERIC; if (IS_500 (response)) return GNOME_VFS_ERROR_INTERNAL; return GNOME_VFS_ERROR_GENERIC; } #ifdef HAVE_GSSAPI static const char *radixN = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; static char pad = '='; static char * radix_decode (const unsigned char *inbuf, int *len) { int i, D = 0; char *p; unsigned char c = 0; GString *s; s = g_string_new (NULL); for (i=0; inbuf[i] && inbuf[i] != pad; i++) { if ((p = strchr(radixN, inbuf[i])) == NULL) { g_string_free (s, TRUE); return NULL; } D = p - radixN; switch (i&3) { case 0: c = D<<2; break; case 1: g_string_append_c (s, c | D>>4); c = (D&15)<<4; break; case 2: g_string_append_c (s, c | D>>2); c = (D&3)<<6; break; case 3: g_string_append_c (s, c | D); } } switch (i&3) { case 1: g_string_free (s, TRUE); return NULL; case 2: if (D&15) { g_string_free (s, TRUE); return NULL; } if (strcmp((char *)&inbuf[i], "==")) { g_string_free (s, TRUE); return NULL; } break; case 3: if (D&3) { g_string_free (s, TRUE); return NULL; } if (strcmp((char *)&inbuf[i], "=")) { g_string_free (s, TRUE); return NULL; } } *len = s->len; return g_string_free (s, FALSE); } static char * radix_encode (unsigned char inbuf[], int len) { int i = 0; unsigned char c = 0; GString *s; s = g_string_new (NULL); for (i=0; i < len; i++) switch (i%3) { case 0: g_string_append_c (s, radixN[inbuf[i]>>2]); c = (inbuf[i]&3)<<4; break; case 1: g_string_append_c (s, radixN[c|inbuf[i]>>4]); c = (inbuf[i]&15)<<2; break; case 2: g_string_append_c (s, radixN[c|inbuf[i]>>6]); g_string_append_c (s, radixN[inbuf[i]&63]); c = 0; } if (i%3) g_string_append_c (s, radixN[c]); switch (i%3) { case 1: g_string_append_c (s, pad); case 2: g_string_append_c (s, pad); } g_string_append_c (s, '\0'); return g_string_free (s, FALSE); } #endif /* HAVE_GSSAPI */ static GnomeVFSResult read_response_line (FtpConnection *conn, gchar **line, GnomeVFSCancellation *cancellation) { GnomeVFSFileSize bytes = MAX_RESPONSE_SIZE, bytes_read; gchar *ptr, *buf = g_malloc (MAX_RESPONSE_SIZE+1); gint line_length; GnomeVFSResult result = GNOME_VFS_OK; while (!strstr (conn->response_buffer->str, "\r\n")) { /* we don't have a full line. Lets read some... */ /*ftp_debug (conn,g_strdup_printf ("response `%s' is incomplete", conn->response_buffer->str));*/ bytes_read = 0; result = gnome_vfs_socket_buffer_read (conn->socket_buf, buf, bytes, &bytes_read, cancellation); buf[bytes_read] = '\0'; /*ftp_debug (conn,g_strdup_printf ("read `%s'", buf));*/ conn->response_buffer = g_string_append (conn->response_buffer, buf); if (result != GNOME_VFS_OK) { g_free (buf); return result; } } g_free (buf); ptr = strstr (conn->response_buffer->str, "\r\n"); line_length = ptr - conn->response_buffer->str; *line = g_strndup (conn->response_buffer->str, line_length); g_string_erase (conn->response_buffer, 0 , line_length + 2); return result; } static GnomeVFSResult get_response (FtpConnection *conn, GnomeVFSCancellation *cancellation) { /* all that should be pending is a response to the last command */ GnomeVFSResult result; /*ftp_debug (conn,g_strdup_printf ("get_response(%p)", conn));*/ while (TRUE) { gchar *line = NULL; result = read_response_line (conn, &line, cancellation); if (result != GNOME_VFS_OK) { g_free (line); return result; } #ifdef HAVE_GSSAPI if (conn->use_gssapi) { /* This is a GSSAPI-protected response message */ int conf_state, decoded_response_len; char *decoded_response; gss_buffer_desc encrypted_buf, decrypted_buf; gss_qop_t maj_stat, min_stat; conf_state = (line[0] == '6' && line[1] == '3' && line[2] == '1'); /* BASE64-decode the response */ decoded_response = radix_decode ((guchar *)line + 4, &decoded_response_len); g_free (line); if (decoded_response == NULL) { return GNOME_VFS_ERROR_GENERIC; } /* Unseal the GSSAPI-protected response */ encrypted_buf.value = decoded_response; encrypted_buf.length = decoded_response_len; maj_stat = gss_unseal (&min_stat, conn->gcontext, & encrypted_buf, &decrypted_buf, &conf_state, NULL); g_free (decoded_response); if (maj_stat != GSS_S_COMPLETE) { g_warning ("failed unsealing reply"); return GNOME_VFS_ERROR_GENERIC; } line = g_strdup_printf ("%s\r\n", (char *)decrypted_buf.value); gss_release_buffer (&min_stat, &decrypted_buf); } #endif /* HAVE_GSSAPI */ /* response needs to be at least: "### x" - I think*/ if (g_ascii_isdigit (line[0]) && g_ascii_isdigit (line[1]) && g_ascii_isdigit (line[2]) && g_ascii_isspace (line[3])) { conn->response_code = (line[0] - '0') * 100 + (line[1] - '0') * 10 + (line[2] - '0'); if (conn->response_message) g_free (conn->response_message); conn->response_message = g_strdup (line+4); ftp_debug (conn,g_strdup_printf ("got response %d (%s)", conn->response_code, conn->response_message)); g_free (line); return ftp_response_to_vfs_result (conn); } /* hmm - not a valid line - lets ignore it :-) */ g_free (line); } return GNOME_VFS_OK; /* should never be reached */ } static GnomeVFSResult do_control_write (FtpConnection *conn, gchar *command, GnomeVFSCancellation *cancellation) { gchar *actual_command; GnomeVFSFileSize bytes, bytes_written; GnomeVFSResult result; actual_command = g_strdup_printf ("%s\r\n", command); #ifdef HAVE_GSSAPI if (conn->use_gssapi) { gss_buffer_desc in_buf, out_buf; gss_qop_t maj_stat, min_stat; int conf_state; char *base64; /* The session is protected with GSSAPI, so the command must be sealed properly */ in_buf.value = actual_command; in_buf.length = strlen (actual_command) + 1; maj_stat = gss_seal (&min_stat, conn->gcontext, (conn->clevel == PROT_P), GSS_C_QOP_DEFAULT, &in_buf, &conf_state, &out_buf); g_free (actual_command); if (maj_stat != GSS_S_COMPLETE) { g_warning ("Error sealing the command %s", actual_command); return GNOME_VFS_ERROR_GENERIC; } else if ((conn->clevel == PROT_P) && !conf_state) { g_warning ("GSSAPI didn't encrypt the message"); return GNOME_VFS_ERROR_GENERIC; } /* Encode the command in BASE64 */ base64 = radix_encode (out_buf.value, out_buf.length); gss_release_buffer (&min_stat, &out_buf); actual_command = g_strdup_printf ("%s %s\r\n", (conn->clevel == PROT_P) ? "ENC" : "MIC", base64); g_free (base64); } #endif /* HAVE_GSSAPI */ bytes = strlen (actual_command); result = gnome_vfs_socket_buffer_write (conn->socket_buf, actual_command, bytes, &bytes_written, cancellation); #if 1 ftp_debug (conn, g_strdup_printf ("sent \"%s\\r\\n\"", command)); #endif gnome_vfs_socket_buffer_flush (conn->socket_buf, cancellation); if(result != GNOME_VFS_OK) { g_free (actual_command); return result; } if(bytes != bytes_written) { g_free (actual_command); return result; } g_free (actual_command); return result; } static GnomeVFSResult do_basic_command (FtpConnection *conn, gchar *command, GnomeVFSCancellation *cancellation) { GnomeVFSResult result = do_control_write (conn, command, cancellation); if (result != GNOME_VFS_OK) { return result; } result = get_response (conn, cancellation); return result; } static GnomeVFSResult do_path_command (FtpConnection *conn, gchar *command, GnomeVFSURI *uri, GnomeVFSCancellation *cancellation) { char *unescaped; gchar *basename, *path, *actual_command, *cwd_command; GnomeVFSResult result; int end; /* Execute a CD and then a command using the basename rather * than the full path. Useful for some (buggy?) systems. */ unescaped = gnome_vfs_unescape_string (uri->text, G_DIR_SEPARATOR_S); if (unescaped == NULL || unescaped[0] == '\0') { g_free (unescaped); unescaped = g_strdup ("/"); } /* Remove trailing slashes */ end = strlen(unescaped) - 1; if (end > 0 && unescaped[end] == '/') { unescaped[end] = 0; } basename = g_path_get_basename (unescaped); path = g_path_get_dirname (unescaped); g_free (unescaped); cwd_command = g_strconcat ("CWD ", path, NULL); g_free (path); result = do_basic_command (conn, cwd_command, cancellation); g_free (cwd_command); if (result != GNOME_VFS_OK) { g_free (basename); return result; } actual_command = g_strconcat (command, " ", basename, NULL); g_free (basename); result = do_basic_command (conn, actual_command, cancellation); g_free (actual_command); return result; } static GnomeVFSResult do_path_command_completely (gchar *command, GnomeVFSURI *uri, GnomeVFSContext *context, GnomeVFSResult fivefifty) { FtpConnection *conn; GnomeVFSResult result; GnomeVFSCancellation *cancellation; cancellation = get_cancellation (context); result = ftp_connection_acquire (uri, &conn, context); if (result != GNOME_VFS_OK) { return result; } conn->fivefifty = fivefifty; result = do_path_command (conn, command, uri, cancellation); ftp_connection_release (conn, result != GNOME_VFS_OK); return result; } static GnomeVFSResult do_transfer_command (FtpConnection *conn, gchar *command, GnomeVFSContext *context) { char *host = NULL; gint port; GnomeVFSResult result; GnomeVFSInetConnection *data_connection; GnomeVFSSocket *socket; GnomeVFSCancellation *cancellation; struct sockaddr_in my_ip; socklen_t my_ip_len; cancellation = get_cancellation (context); /* Image mode (binary to the uninitiated) */ result = do_basic_command (conn, "TYPE I", cancellation); if (result != GNOME_VFS_OK) { return result; } /* FIXME bugzilla.eazel.com 1464: implement non-PASV mode */ /* send PASV */ result = do_basic_command (conn, "PASV", cancellation); if (result != GNOME_VFS_OK) { return result; } /* parse response */ { gint a1, a2, a3, a4, p1, p2; gchar *ptr, *response = g_strdup (conn->response_message); ptr = strchr (response, '('); if (!ptr || (sscanf (ptr+1,"%d,%d,%d,%d,%d,%d", &a1, &a2, &a3, &a4, &p1, &p2) != 6)) { g_free (response); return GNOME_VFS_ERROR_CORRUPTED_DATA; } host = g_strdup_printf ("%d.%d.%d.%d", a1, a2, a3, a4); port = p1*256 + p2; g_free (response); } /* connect */ result = gnome_vfs_inet_connection_create (&data_connection, host, port, cancellation); g_free (host); if (result != GNOME_VFS_OK) { return result; } my_ip_len = sizeof (my_ip); if (getsockname( gnome_vfs_inet_connection_get_fd (data_connection), (struct sockaddr*)&my_ip, &my_ip_len) == 0) { conn->my_ip = my_ip.sin_addr.s_addr; } socket = gnome_vfs_inet_connection_to_socket (data_connection); conn->data_socketbuf = gnome_vfs_socket_buffer_new (socket); if (conn->offset) { gchar *tmpstring; tmpstring = g_strdup_printf ("REST %"GNOME_VFS_OFFSET_FORMAT_STR, conn->offset); result = do_basic_command (conn, tmpstring, cancellation); g_free (tmpstring); if (result != GNOME_VFS_OK) { gnome_vfs_socket_buffer_destroy (conn->data_socketbuf, TRUE, cancellation); conn->data_socketbuf = NULL; return result; } } result = do_control_write (conn, command, cancellation); if (result != GNOME_VFS_OK) { gnome_vfs_socket_buffer_destroy (conn->data_socketbuf, TRUE, cancellation); conn->data_socketbuf = NULL; return result; } result = get_response (conn, cancellation); if (result != GNOME_VFS_OK) { gnome_vfs_socket_buffer_destroy (conn->data_socketbuf, TRUE, cancellation); conn->data_socketbuf = NULL; return result; } return result; } static GnomeVFSResult do_path_transfer_command (FtpConnection *conn, gchar *command, GnomeVFSURI *uri, GnomeVFSContext *context) { char *unescaped; gchar *basename, *path, *cwd_command, *actual_command; GnomeVFSResult result; int end; unescaped = gnome_vfs_unescape_string (uri->text, G_DIR_SEPARATOR_S); if (unescaped == NULL || unescaped[0] == '\0') { g_free (unescaped); unescaped = g_strdup ("/"); } /* Remove trailing slashes */ end = strlen(unescaped) - 1; if (end > 0 && unescaped[end] == '/') { unescaped[end] = 0; } basename = g_path_get_basename (unescaped); path = g_path_get_dirname (unescaped); g_free (unescaped); cwd_command = g_strconcat ("CWD ", path, NULL); g_free (path); result = do_basic_command (conn, cwd_command, get_cancellation (context)); g_free (cwd_command); if (result != GNOME_VFS_OK) { g_free (basename); return result; } actual_command = g_strconcat (command, " ", basename, NULL); g_free (basename); result = do_transfer_command (conn, actual_command, context); g_free (actual_command); return result; } static GnomeVFSResult end_transfer (FtpConnection *conn, GnomeVFSCancellation *cancellation) { GnomeVFSResult result; /*ftp_debug (conn, g_strdup ("end_transfer()"));*/ if (conn->data_socketbuf) { gnome_vfs_socket_buffer_flush (conn->data_socketbuf, cancellation); gnome_vfs_socket_buffer_destroy (conn->data_socketbuf, TRUE, cancellation); conn->data_socketbuf = NULL; } result = get_response (conn, cancellation); return result; } static void save_authn_info (GnomeVFSURI *uri, char *user, char *pass, char *keyring) { GnomeVFSModuleCallbackSaveAuthenticationIn in_args; GnomeVFSModuleCallbackSaveAuthenticationOut out_args; memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); in_args.keyring = keyring; in_args.uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); in_args.server = (char *)gnome_vfs_uri_get_host_name (uri); in_args.port = gnome_vfs_uri_get_host_port (uri); in_args.username = user; in_args.password = pass; in_args.protocol = "ftp"; gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_free (in_args.uri); } /* * Returns FALSE if callback was not handled (*aborted * will be FALSE, user will be "anonymous") * * Returns TRUE if callback invocation succeeded, *aborted * will be set to TRUE only if the user didn't cancel */ static gboolean query_user_for_authn_info (GnomeVFSURI *uri, char **user, char **pass, char **keyring, gboolean *save, gboolean *aborted, gboolean no_username) { GnomeVFSModuleCallbackFullAuthenticationIn in_args; GnomeVFSModuleCallbackFullAuthenticationOut out_args; gboolean ret; ret = *aborted = FALSE; memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); in_args.uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); in_args.server = (char *)gnome_vfs_uri_get_host_name (uri); in_args.port = gnome_vfs_uri_get_host_port (uri); if (*user != NULL && *user[0] != 0) { in_args.username = *user; } in_args.protocol = "ftp"; in_args.flags = GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED | GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD; if (no_username) { in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME; in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED; } in_args.default_user = in_args.username; ret = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); if (!ret) { /* No callback, try anon login */ *user = g_strdup ("anonymous"); *pass = g_strdup ("nobody@gnome.org"); goto error; } *aborted = out_args.abort_auth; if (out_args.abort_auth) { goto error; } g_free (*user); g_free (*pass); if (out_args.out_flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED) { *user = g_strdup ("anonymous"); *pass = g_strdup ("nobody@gnome.org"); } else { *user = g_strdup (out_args.username); *pass = g_strdup (out_args.password); } *save = FALSE; if (out_args.save_password) { *save = TRUE; g_free (*keyring); *keyring = g_strdup (out_args.keyring); } error: g_free (in_args.uri); g_free (in_args.object); g_free (out_args.username); g_free (out_args.domain); g_free (out_args.password); g_free (out_args.keyring); return ret; } static gboolean query_keyring_for_authn_info (GnomeVFSURI *uri, char **user, char **pass) { GnomeVFSModuleCallbackFillAuthenticationIn in_args; GnomeVFSModuleCallbackFillAuthenticationOut out_args; gboolean ret; ret = FALSE; memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); in_args.uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); in_args.server = (char *)gnome_vfs_uri_get_host_name (uri); in_args.port = gnome_vfs_uri_get_host_port (uri); if (*user != NULL && *user[0] != 0) { in_args.username = *user; } in_args.protocol = "ftp"; ret = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); if (!ret) { goto error; } ret = out_args.valid; if (!ret) { goto error; } g_free (*user); g_free (*pass); *user = g_strdup (out_args.username); *pass = g_strdup (out_args.password); error: g_free (in_args.uri); g_free (in_args.object); g_free (out_args.username); g_free (out_args.domain); g_free (out_args.password); return ret; } #ifdef HAVE_GSSAPI static GnomeVFSResult ftp_kerberos_login (FtpConnection *conn, const char *user, char *saved_ip, GnomeVFSCancellation *cancellation) { char *tmpstring; struct gss_channel_bindings_struct chan; gss_buffer_desc send_tok, recv_tok, *token_ptr; gss_qop_t maj_stat, min_stat; gss_name_t target_name; struct in_addr my_ip; char *decoded_token; char *encoded_token; int len; GnomeVFSResult result; result = do_basic_command (conn, "AUTH GSSAPI", cancellation); if (result != GNOME_VFS_OK) { return result; } if (conn->response_code != 334) { return GNOME_VFS_ERROR_LOGIN_FAILED; } if (inet_aton (saved_ip, &my_ip) == 0) { return GNOME_VFS_ERROR_GENERIC; } chan.initiator_addrtype = GSS_C_AF_INET; /* OM_uint32 */ chan.initiator_address.length = 4; chan.initiator_address.value = &my_ip.s_addr; chan.acceptor_addrtype = GSS_C_AF_INET; /* OM_uint32 */ chan.acceptor_address.length = 4; chan.acceptor_address.value = &conn->my_ip; chan.application_data.length = 0; chan.application_data.value = 0; send_tok.value = g_strdup_printf ("host@%s", saved_ip); send_tok.length = strlen (send_tok.value) + 1; maj_stat = gss_import_name (&min_stat, &send_tok, GSS_C_NT_HOSTBASED_SERVICE, &target_name); g_free (send_tok.value); if (maj_stat != GSS_S_COMPLETE) { g_warning ("gss_import_name failed"); return GNOME_VFS_ERROR_GENERIC; } token_ptr = GSS_C_NO_BUFFER; conn->gcontext = GSS_C_NO_CONTEXT; decoded_token = NULL; do { maj_stat = gss_init_sec_context (&min_stat, GSS_C_NO_CREDENTIAL, &conn->gcontext, target_name, GSS_C_NO_OID, GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG, 0, &chan, token_ptr, NULL, &send_tok, NULL, NULL); g_free (decoded_token); if (maj_stat != GSS_S_CONTINUE_NEEDED && maj_stat != GSS_S_COMPLETE) { gss_release_name (&min_stat, &target_name); return GNOME_VFS_ERROR_GENERIC; } if (send_tok.length != 0) { /* Encode the GSSAPI-generated token which will be sent to the remote server in order to perform authentication. */ encoded_token = radix_encode (send_tok.value, send_tok.length); /* Sent the BASE64-encoded, GSSAPI-generated authentication token to the remote server via the ADAT command. */ tmpstring = g_strdup_printf ("ADAT %s", encoded_token); g_free (encoded_token); result = do_basic_command (conn, tmpstring, cancellation); g_free (tmpstring); if (result != GNOME_VFS_OK) { gss_release_name (&min_stat, &target_name); gss_release_buffer (&min_stat, &send_tok); return GNOME_VFS_ERROR_GENERIC; } if (conn->response_code != 235) { /* If the remote server does not support the ADAT command, use plain-text login. */ gss_release_name (&min_stat, &target_name); gss_release_buffer (&min_stat, &send_tok); return GNOME_VFS_ERROR_LOGIN_FAILED; } decoded_token = radix_decode ((guchar *)conn->response_message + 5, &len); if (decoded_token == NULL) { gss_release_name (&min_stat, &target_name); gss_release_buffer (&min_stat, &send_tok); return GNOME_VFS_ERROR_GENERIC; } token_ptr = &recv_tok; recv_tok.value = decoded_token; recv_tok.length = len; /* decoded_token is freed in the next iteration */ } } while (maj_stat == GSS_S_CONTINUE_NEEDED); gss_release_buffer (&min_stat, &send_tok); gss_release_name (&min_stat, &target_name); conn->use_gssapi = TRUE; conn->clevel = PROT_S; tmpstring = g_strdup_printf ("USER %s", g_get_user_name ()); result = do_basic_command (conn, tmpstring, cancellation); g_free (tmpstring); if (IS_500 (conn->response_code)) { conn->use_gssapi = FALSE; return GNOME_VFS_ERROR_GENERIC; } return GNOME_VFS_OK; } #endif /* HAVE_GSSAPI */ static GnomeVFSResult ftp_login (FtpConnection *conn, const char *user, const char *password, GnomeVFSCancellation *cancellation) { gchar *tmpstring; GnomeVFSResult result; if (!proxy_host) { tmpstring = g_strdup_printf ("USER %s", user); } else { /* Using FTP proxy */ tmpstring = g_strdup_printf ("USER %s@%s", user, gnome_vfs_uri_get_host_name (conn->uri)); } result = do_basic_command (conn, tmpstring, cancellation); g_free (tmpstring); if (IS_300 (conn->response_code)) { tmpstring = g_strdup_printf ("PASS %s", password); result = do_basic_command (conn, tmpstring, cancellation); g_free (tmpstring); } return result; } static GnomeVFSResult try_connection (GnomeVFSURI *uri, char **saved_ip, FtpConnection *conn, GnomeVFSCancellation *cancellation) { GnomeVFSInetConnection* inet_connection; GnomeVFSResult result; gint port = control_port; const char *host; if (proxy_host) { port = proxy_port; } else if (gnome_vfs_uri_get_host_port (uri)) { port = gnome_vfs_uri_get_host_port (uri); } if (*saved_ip != NULL) { host = *saved_ip; } else { if (!proxy_host) { host = gnome_vfs_uri_get_host_name (uri); } else { /* Use FTP proxy */ host = proxy_host; } } if (host == NULL) { return GNOME_VFS_ERROR_INVALID_HOST_NAME; } result = gnome_vfs_inet_connection_create (&inet_connection, host, port, cancellation); if (result != GNOME_VFS_OK) { return result; } if (*saved_ip == NULL) { *saved_ip = gnome_vfs_inet_connection_get_ip (inet_connection); } conn->socket_buf = gnome_vfs_inet_connection_to_socket_buffer (inet_connection); if (conn->socket_buf == NULL) { gnome_vfs_inet_connection_destroy (inet_connection, NULL); return GNOME_VFS_ERROR_GENERIC; } conn->offset = 0; result = get_response (conn, cancellation); return result; } static GnomeVFSResult try_kerberos (GnomeVFSURI *uri, char **saved_ip, FtpConnection *conn, const char *user, gboolean *connection_failed, GnomeVFSCancellation *cancellation) { GnomeVFSResult result; /* Even without kerberos we do this login so we can see if the connection fails. The connection will be reused if we succeed */ *connection_failed = FALSE; if (conn->socket_buf == NULL) { result = try_connection (uri, saved_ip, conn, cancellation); if (result != GNOME_VFS_OK) { *connection_failed = TRUE; return result; } } #ifdef HAVE_GSSAPI result = ftp_kerberos_login (conn, user, *saved_ip, cancellation); if (result != GNOME_VFS_OK) { /* if login failed, don't free socket buf. Its reused for normal login */ if (result != GNOME_VFS_ERROR_LOGIN_FAILED) { gnome_vfs_socket_buffer_destroy (conn->socket_buf, TRUE, cancellation); conn->socket_buf = NULL; } return result; } return result; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } static GnomeVFSResult try_login (GnomeVFSURI *uri, char **saved_ip, FtpConnection *conn, gchar *user, gchar *pass, GnomeVFSCancellation *cancellation) { GnomeVFSResult result; if (conn->socket_buf == NULL) { result = try_connection (uri, saved_ip, conn, cancellation); if (result != GNOME_VFS_OK) { return result; } } result = ftp_login (conn, user, pass, cancellation); if (result != GNOME_VFS_OK) { /* login failed */ gnome_vfs_socket_buffer_destroy (conn->socket_buf, TRUE, cancellation); conn->socket_buf = NULL; return result; } return result; } static void toggle_winnt_into_unix_mode(FtpConnection *conn, GnomeVFSCancellation *cancellation) { do_basic_command (conn, "SITE DIRSTYLE", cancellation); if (conn->response_message != NULL && strstr(conn->response_message, "is on") != NULL) { /* * msdos directory mode was already off, but * we just toggled it on. toggle it back off again */ do_basic_command(conn, "SITE DIRSTYLE", cancellation); } /* server should now be in unix directory style */ } static GnomeVFSResult ftp_connection_create (FtpConnectionPool *pool, FtpConnection **connptr, GnomeVFSURI *uri, GnomeVFSContext *context) { FtpConnection *conn; GnomeVFSResult result; gchar *user; gchar *pass; GnomeVFSCancellation *cancellation; gchar *keyring = NULL; gboolean save_authn = FALSE; gboolean uri_has_username; gboolean got_connection; gboolean ret; gboolean connection_failed; gboolean aborted = FALSE; cancellation = get_cancellation (context); conn = g_new0 (FtpConnection, 1); conn->pool = pool; conn->uri = gnome_vfs_uri_dup (uri); conn->response_buffer = g_string_new (""); conn->response_code = -1; conn->fivefifty = GNOME_VFS_ERROR_NOT_FOUND; user = NULL; pass = NULL; result = try_kerberos (uri, &pool->ip, conn, gnome_vfs_uri_get_user_name (uri), &connection_failed, cancellation); if (connection_failed) { gnome_vfs_uri_unref (conn->uri); g_string_free (conn->response_buffer, TRUE); g_free (conn); g_free (user); g_free (pass); return result; } else if (result == GNOME_VFS_OK) { /* Logged in successfully using kerberos */ } else if (pool->user != NULL && pool->password != NULL) { result = try_login (uri, &pool->ip, conn, pool->user, pool->password, cancellation); if (result != GNOME_VFS_OK) { gnome_vfs_uri_unref (conn->uri); g_string_free (conn->response_buffer, TRUE); g_free (conn); g_free (user); g_free (pass); return result; } } else if (gnome_vfs_uri_get_user_name (uri) == NULL || /* If name set, do this if no password or anon ftp */ (strcmp (gnome_vfs_uri_get_user_name (uri), "anonymous") != 0 && gnome_vfs_uri_get_password (uri) == NULL)) { got_connection = FALSE; uri_has_username = FALSE; if (gnome_vfs_uri_get_user_name (uri) != NULL) { user = g_strdup (gnome_vfs_uri_get_user_name (uri)); uri_has_username = TRUE; } pool->num_connections++; G_UNLOCK (connection_pools); ret = query_keyring_for_authn_info (uri, &user, &pass); G_LOCK (connection_pools); pool->num_connections--; if (ret) { result = try_login (uri, &pool->ip, conn, user, pass, cancellation); g_free (user); g_free (pass); user = NULL; pass = NULL; if (result == GNOME_VFS_OK) { got_connection = TRUE; } else if (uri_has_username) { user = g_strdup (gnome_vfs_uri_get_user_name (uri)); } } if (!got_connection) { while (TRUE) { pool->num_connections++; G_UNLOCK (connection_pools); ret = query_user_for_authn_info (uri, &user, &pass, &keyring, &save_authn, &aborted, !uri_has_username); G_LOCK (connection_pools); pool->num_connections--; if (aborted) { gnome_vfs_uri_unref (conn->uri); g_string_free (conn->response_buffer, TRUE); g_free (conn); g_free (user); g_free (pass); g_free (keyring); return GNOME_VFS_ERROR_CANCELLED; } g_string_free (conn->response_buffer, TRUE); conn->response_buffer = g_string_new (""); conn->response_code = -1; result = try_login (uri, &pool->ip, conn, user, pass, cancellation); if (result == GNOME_VFS_OK) { break; } if (result != GNOME_VFS_ERROR_LOGIN_FAILED || !ret /* if callback was not handled, and anonymous login failed, don't run into endless loop */) { gnome_vfs_uri_unref (conn->uri); g_string_free (conn->response_buffer, TRUE); g_free (conn); g_free (user); g_free (pass); g_free (keyring); return result; } } } } else { user = g_strdup (gnome_vfs_uri_get_user_name (uri)); pass = g_strdup (gnome_vfs_uri_get_password (uri)); if (pass == NULL) { pass = g_strdup ("nobody@gnome.org"); } result = try_login (uri, &pool->ip, conn, user, pass, cancellation); if (result != GNOME_VFS_OK) { gnome_vfs_uri_unref (conn->uri); g_string_free (conn->response_buffer, TRUE); g_free (conn); g_free (user); g_free (pass); return result; } } /* okay, we should be connected now */ if (save_authn) { pool->num_connections++; G_UNLOCK (connection_pools); save_authn_info (uri, user, pass, keyring); G_LOCK (connection_pools); pool->num_connections--; g_free (keyring); } if (pool->user == NULL) { pool->user = user; pool->password = pass; } else { g_free (user); g_free (pass); } /* Image mode (binary to the uninitiated) */ do_basic_command (conn, "TYPE I", cancellation); /* Get the system type */ if (pool->server_type == NULL) { do_basic_command (conn, "SYST", cancellation); pool->server_type = g_strdup (conn->response_message); } /* if this is a windows server, toggle it into NT mode */ if (strncmp (pool->server_type, "Windows_NT", 10) == 0) { toggle_winnt_into_unix_mode(conn, cancellation); } conn->server_type = g_strdup (pool->server_type); *connptr = conn; ftp_debug (conn, g_strdup ("created")); total_connections++; pool->num_connections++; return GNOME_VFS_OK; } /* Call with lock held */ static void ftp_connection_destroy (FtpConnection *conn, GnomeVFSCancellation *cancellation) { if (conn->pool != NULL) conn->pool->num_connections--; if (conn->socket_buf) gnome_vfs_socket_buffer_destroy (conn->socket_buf, TRUE, cancellation); gnome_vfs_uri_unref (conn->uri); g_free (conn->cwd); if (conn->response_buffer) g_string_free(conn->response_buffer, TRUE); g_free (conn->response_message); g_free (conn->server_type); if (conn->data_socketbuf) gnome_vfs_socket_buffer_destroy (conn->data_socketbuf, TRUE, cancellation); #ifdef HAVE_GSSAPI if (conn->gcontext != GSS_C_NO_CONTEXT) { gss_qop_t maj_stat, min_stat; gss_buffer_desc output_tok; maj_stat = gss_delete_sec_context (&min_stat, &conn->gcontext, &output_tok); if (maj_stat == GSS_S_COMPLETE) { gss_release_buffer (&min_stat, &output_tok); } conn->gcontext = GSS_C_NO_CONTEXT; } #endif g_free (conn); total_connections--; } /* g_str_hash and g_str_equal don't take null arguments */ static guint my_str_hash (const char *c) { if (c) return g_str_hash (c); return 0; } static gboolean my_str_equal (const char *c, const char *d) { if ((c && !d) || (d &&!c)) return FALSE; if (!c && !d) return TRUE; return strcmp (c,d) == 0; } /* hash the bits of a GnomeVFSURI that distingush FTP connections */ guint ftp_connection_uri_hash (gconstpointer c) { GnomeVFSURI *uri = (GnomeVFSURI *) c; return my_str_hash (gnome_vfs_uri_get_host_name (uri)) + my_str_hash (gnome_vfs_uri_get_user_name (uri)) + my_str_hash (gnome_vfs_uri_get_password (uri)) + gnome_vfs_uri_get_host_port (uri); } /* test the equality of the bits of a GnomeVFSURI that distingush FTP * connections */ gint ftp_connection_uri_equal (gconstpointer c, gconstpointer d) { GnomeVFSURI *uri1 = (GnomeVFSURI *)c; GnomeVFSURI *uri2 = (GnomeVFSURI *) d; return my_str_equal (gnome_vfs_uri_get_host_name(uri1), gnome_vfs_uri_get_host_name (uri2)) && my_str_equal (gnome_vfs_uri_get_user_name (uri1), gnome_vfs_uri_get_user_name (uri2)) && my_str_equal (gnome_vfs_uri_get_password (uri1), gnome_vfs_uri_get_password (uri2)) && gnome_vfs_uri_get_host_port (uri1) == gnome_vfs_uri_get_host_port (uri2); } static void ftp_cached_dirlist_free (FtpCachedDirlist *dirlist) { g_free (dirlist->dirlist); g_free (dirlist); } /* Call with lock held */ static FtpConnectionPool * ftp_connection_pool_lookup (GnomeVFSURI *uri) { FtpConnectionPool *pool; pool = g_hash_table_lookup (connection_pools, uri); if (pool == NULL) { pool = g_new0 (FtpConnectionPool, 1); pool->cached_dirlists = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)ftp_cached_dirlist_free); g_hash_table_insert (connection_pools, gnome_vfs_uri_dup (uri), pool); } return pool; } static void invalidate_dirlist_cache (GnomeVFSURI *uri) { FtpConnectionPool *pool; G_LOCK (connection_pools); pool = ftp_connection_pool_lookup (uri); g_hash_table_remove (pool->cached_dirlists, uri->text != NULL ? uri->text : "/"); G_UNLOCK (connection_pools); } static void invalidate_parent_dirlist_cache (GnomeVFSURI *uri) { GnomeVFSURI *parent; parent = gnome_vfs_uri_get_parent (uri); invalidate_dirlist_cache (parent); gnome_vfs_uri_unref (parent); } static GnomeVFSResult ftp_connection_acquire (GnomeVFSURI *uri, FtpConnection **connection, GnomeVFSContext *context) { FtpConnection *conn = NULL; GnomeVFSResult result = GNOME_VFS_OK; GnomeVFSCancellation *cancellation; FtpConnectionPool *pool; struct timeval tv; cancellation = get_cancellation (context); G_LOCK (connection_pools); pool = ftp_connection_pool_lookup (uri); if (pool->spare_connections) { /* spare connection(s) found */ conn = (FtpConnection *) pool->spare_connections->data; /* update the uri as it may be different */ if (conn->uri) { gnome_vfs_uri_unref (conn->uri); } conn->uri = gnome_vfs_uri_dup (uri); pool->spare_connections = g_list_remove (pool->spare_connections, conn); /* Reset offset */ conn->offset = 0; /* make sure connection hasn't timed out */ result = do_basic_command (conn, "PWD", cancellation); if (result != GNOME_VFS_OK) { ftp_connection_destroy (conn, cancellation); result = ftp_connection_create (pool, &conn, uri, context); } } else { result = ftp_connection_create (pool, &conn, uri, context); } gettimeofday (&tv, NULL); pool->last_use = tv.tv_sec; G_UNLOCK (connection_pools); *connection = conn; if (result == GNOME_VFS_OK) { allocated_connections++; } return result; } static void ftp_connection_pool_free (FtpConnectionPool *pool) { g_assert (pool->num_connections == 0); g_assert (pool->num_monitors == 0); g_assert (pool->spare_connections == NULL); g_free (pool->ip); g_free (pool->user); g_free (pool->password); g_free (pool->server_type); g_hash_table_destroy (pool->cached_dirlists); g_free (pool); } /* Call with lock held */ static gboolean ftp_connection_pool_reap (gpointer key, gpointer value, gpointer user_data) { FtpConnectionPool *pool; gboolean *continue_timeout; struct timeval tv; GList *l; pool = (FtpConnectionPool *)value; continue_timeout = (gboolean *)user_data; /* Never reap spare connections if used recently */ gettimeofday (&tv, NULL); if (tv.tv_sec >= pool->last_use && tv.tv_sec <= pool->last_use + CONNECTION_CACHE_MIN_LIFETIME) { if (pool->spare_connections != NULL) { *continue_timeout = TRUE; } if (pool->num_connections == 0 && pool->num_monitors <= 0) { *continue_timeout = TRUE; } return FALSE; } for (l = pool->spare_connections; l != NULL; l = l->next) { ftp_connection_destroy (l->data, NULL); } g_list_free (pool->spare_connections); pool->spare_connections = NULL; if (pool->num_connections == 0 && pool->num_monitors <= 0) { gnome_vfs_uri_unref (key); ftp_connection_pool_free (pool); return TRUE; } return FALSE; } static gboolean ftp_connection_pools_reap (gpointer data) { gboolean continue_timeout; G_LOCK (connection_pools); continue_timeout = FALSE; g_hash_table_foreach_remove (connection_pools, ftp_connection_pool_reap, &continue_timeout); if (!continue_timeout) connection_pool_timeout = 0; G_UNLOCK (connection_pools); return continue_timeout; } static void ftp_connection_release (FtpConnection *conn, gboolean error_release) { FtpConnectionPool *pool; g_return_if_fail (conn); /* reset the 550 result */ conn->fivefifty = GNOME_VFS_ERROR_NOT_FOUND; G_LOCK (connection_pools); pool = conn->pool; if (error_release) { ftp_connection_destroy (conn, NULL); } else { pool->spare_connections = g_list_prepend (pool->spare_connections, conn); } allocated_connections--; if (connection_pool_timeout == 0) { connection_pool_timeout = g_timeout_add (REAP_TIMEOUT, ftp_connection_pools_reap, NULL); } G_UNLOCK(connection_pools); } gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return FALSE; } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { GnomeVFSResult result; FtpConnection *conn; if ((mode & GNOME_VFS_OPEN_READ) && (mode & GNOME_VFS_OPEN_WRITE)) { return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } if (!(mode & GNOME_VFS_OPEN_READ) && !(mode & GNOME_VFS_OPEN_WRITE)) { return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } result = ftp_connection_acquire (uri, &conn, context); if (result != GNOME_VFS_OK) return result; if (mode & GNOME_VFS_OPEN_READ) { conn->operation = FTP_READ; result = do_path_transfer_command (conn, "RETR", uri, context); } else if (mode & GNOME_VFS_OPEN_WRITE) { invalidate_parent_dirlist_cache (uri); conn->operation = FTP_WRITE; conn->fivefifty = GNOME_VFS_ERROR_ACCESS_DENIED; result = do_path_transfer_command (conn, "STOR", uri, context); conn->fivefifty = GNOME_VFS_ERROR_NOT_FOUND; } if (result == GNOME_VFS_OK) { *method_handle = (GnomeVFSMethodHandle *) conn; } else { *method_handle = NULL; ftp_connection_release (conn, TRUE); } return result; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { GnomeVFSResult result; FtpConnection *conn; gchar *chmod_command; if ((mode & GNOME_VFS_OPEN_READ) && (mode & GNOME_VFS_OPEN_WRITE)) { return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } if (!(mode & GNOME_VFS_OPEN_READ) && !(mode & GNOME_VFS_OPEN_WRITE)) { return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } result = ftp_connection_acquire (uri, &conn, context); if (result != GNOME_VFS_OK) return result; /* Exclusive set: we have to fail if the file exists */ if (exclusive) { conn->operation = FTP_READ; result = do_path_transfer_command (conn, "RETR", uri, context); /* File exists or an error occurred */ if (result != GNOME_VFS_ERROR_NOT_FOUND) { ftp_connection_release (conn, TRUE); /* Return the error if there is one, otherwise the file exists */ return (result == GNOME_VFS_OK) ? GNOME_VFS_ERROR_FILE_EXISTS : result; } } result = do_open(method, method_handle, uri, mode, context); if (result != GNOME_VFS_OK) { ftp_connection_release (conn, TRUE); return result; } /* This is a not-standard command and FTP server may not support it, * so eventual errors will be ignored */ chmod_command = g_strdup_printf("SITE CHMOD %o", perm); do_path_command (conn, chmod_command, uri, get_cancellation (context)); g_free (chmod_command); ftp_connection_release (conn, TRUE); return result; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FtpConnection *conn = (FtpConnection *) method_handle; GnomeVFSResult result; GnomeVFSCancellation *cancellation; cancellation = get_cancellation (context); result = end_transfer (conn, cancellation); ftp_connection_release (conn, result != GNOME_VFS_OK); return result; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FtpConnection *conn = (FtpConnection * )method_handle; GnomeVFSResult result; GnomeVFSCancellation *cancellation; cancellation = get_cancellation (context); result = gnome_vfs_socket_buffer_read (conn->data_socketbuf, buffer, num_bytes, bytes_read, cancellation); if (*bytes_read == 0) { result = GNOME_VFS_ERROR_EOF; } if (result == GNOME_VFS_OK) { conn->offset += *bytes_read; } return result; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { FtpConnection *conn = (FtpConnection *) method_handle; GnomeVFSResult result; GnomeVFSCancellation *cancellation; cancellation = get_cancellation (context); if (conn->operation != FTP_WRITE) return GNOME_VFS_ERROR_NOT_PERMITTED; result = gnome_vfs_socket_buffer_write (conn->data_socketbuf, buffer, num_bytes, bytes_written, cancellation); if (result == GNOME_VFS_OK) { conn->offset += *bytes_written; } return result; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FtpConnection *conn = (FtpConnection * )method_handle; GnomeVFSResult result; GnomeVFSFileOffset real_offset; GnomeVFSFileOffset orig_offset; GnomeVFSCancellation *cancellation; cancellation = get_cancellation (context); /* Calculate real offset */ switch (whence) { case GNOME_VFS_SEEK_START: real_offset = offset; break; case GNOME_VFS_SEEK_CURRENT: real_offset = conn->offset + offset; break; case GNOME_VFS_SEEK_END: return GNOME_VFS_ERROR_NOT_SUPPORTED; default: return GNOME_VFS_ERROR_GENERIC; } /* We need to stop the data transfer first */ result = end_transfer (conn, cancellation); /* Do not check for result != GNOME_VFS_OK because we know the error: * 426 Failure writing network stream. */ /* Save the original offset */ orig_offset = conn->offset; /* Try to restart the transfer now with the new offset */ conn->offset = real_offset; switch (conn->operation) { case FTP_READ: result = do_path_transfer_command (conn, "RETR", conn->uri, context); break; case FTP_WRITE: result = do_path_transfer_command (conn, "STOR", conn->uri, context); break; default: return GNOME_VFS_ERROR_GENERIC; } /* Restore the original offset if there is any error */ if (result != GNOME_VFS_OK) conn->offset = orig_offset; return result; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FtpConnection *conn = (FtpConnection * )method_handle; *offset_return = conn->offset; return GNOME_VFS_OK; } /* parse one directory listing from the string pointed to by ls. Parse * only one line from that string. Fill in the appropriate fields of file_info. * return TRUE if a directory entry was found, FALSE otherwise */ /** * return TRUE if entry found, FALSE otherwise */ static gboolean netware_ls_to_file_info (gchar *ls, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options) { const char *mime_type; /* check parameters */ g_return_val_if_fail (file_info != NULL, FALSE); /* start by knowing nothing */ file_info->valid_fields = 0; /* If line starts with "total" then we should skip it */ if (strncmp (ls, "total", 5) == 0) { return FALSE; } /* First char is 'd' for directory, '-' for regular file */ file_info->type = GNOME_VFS_FILE_TYPE_UNKNOWN; if (strlen (ls) >= 1) { if (ls[0] == 'd') { file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; } else if (ls[0] == '-') { file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; } else { g_warning ("netware_ls_to_file_info: unknown file type '%c'", ls[0]); } } file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_TYPE; /* Next is a listing of Netware permissions */ /* ignored */ /* Following the permissions is the "owner/creator" of the file */ /* file info structure requires a UID, which of course is not available */ /* ignored */ /* following type, permissions, and owner is the size, right justified up * to but not including column 50. */ /* if we start at column 35, that allows 15 chars for size--that should be * enough :) */ if (strlen (ls) > 35) { file_info->size = strtol (ls + 35, NULL, 0); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SIZE; } /* columns 51-63 contain modification date of file/directory */ file_info->mtime = 0; if (strlen (ls) >= 51) { char *mtime_str = g_strndup (ls + 51, 12); GDate *mtime_date; /* mtime_str is one of two formats... * 1) "mmm dd hh:mm" (24hr time) * 2) "mmm dd yyyy" */ mtime_date = g_date_new (); if (index (mtime_str, ':') != NULL) { /* separate time */ char *date_str = g_strndup (mtime_str, 6); g_date_set_parse (mtime_date, date_str); g_free (date_str); } else { g_date_set_parse (mtime_date, mtime_str); } if (!g_date_valid (mtime_date)) { g_warning ("netware_ls_to_file_info: cannot parse date '%s'", mtime_str); } else { struct tm mtime_parts; g_date_to_struct_tm (mtime_date, &mtime_parts); mtime_parts.tm_hour = 0; mtime_parts.tm_min = 0; mtime_parts.tm_sec = 0; mtime_parts.tm_isdst = -1; if (index (mtime_str, ':')) { /* get the time */ int h, mn; if (sscanf (mtime_str + 7, "%2d:%2d", &h, &mn) == 2) { mtime_parts.tm_hour = h; mtime_parts.tm_min = mn; } else { g_warning ("netware_ls_to_file_info: invalid time '%s'", mtime_str + 7); } } file_info->mtime = mktime (&mtime_parts); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MTIME; } g_date_free (mtime_date); g_free (mtime_str); } /* just in case client doesn't check valid_fields */ file_info->atime = file_info->mtime; file_info->ctime = file_info->mtime; /* finally, the file/directory name (column 64) */ if (strlen (ls) >= 64) { int i; i = strcspn (ls + 64, "\r\n"); file_info->name = g_strndup (ls + 64, i); } else { file_info->name = NULL; } /* mime type */ if (file_info->type == GNOME_VFS_FILE_TYPE_REGULAR) { mime_type = gnome_vfs_mime_type_from_name_or_default ( file_info->name, GNOME_VFS_MIME_TYPE_UNKNOWN); } else { mime_type = gnome_vfs_mime_type_from_mode (S_IFDIR); } file_info->mime_type = g_strdup (mime_type); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; /* fill in other structures with meaningful data, even though * it may not be valid */ file_info->permissions = GNOME_VFS_PERM_USER_ALL | GNOME_VFS_PERM_GROUP_ALL | GNOME_VFS_PERM_OTHER_ALL; file_info->flags = GNOME_VFS_FILE_FLAGS_NONE; return TRUE; } static gboolean unix_ls_to_file_info (gchar *ls, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options) { struct stat s; gchar *filename = NULL, *linkname = NULL; const char *mime_type; gnome_vfs_parse_ls_lga (ls, &s, &filename, &linkname); if (filename) { gnome_vfs_stat_to_file_info (file_info, &s); /* FIXME: This is a hack, but we can't change the above API until after Gnome 1.4. Ideally, we would give the stat_to_file_info function this information. Also, there may be more fields here that are not valid that we haven't dealt with. */ file_info->valid_fields &= ~(GNOME_VFS_FILE_INFO_FIELDS_DEVICE | GNOME_VFS_FILE_INFO_FIELDS_INODE | GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE); /* We want large reads on FTP */ file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE; file_info->io_block_size = 32*1024; file_info->name = g_path_get_basename (filename); if(*(file_info->name) == '\0') { g_free (file_info->name); file_info->name = g_strdup ("/"); } if(linkname) { file_info->symlink_name = linkname; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME | GNOME_VFS_FILE_INFO_FIELDS_FLAGS; file_info->flags |= GNOME_VFS_FILE_FLAGS_SYMLINK; } if (file_info->type == GNOME_VFS_FILE_TYPE_REGULAR) { mime_type = gnome_vfs_mime_type_from_name_or_default (file_info->name, GNOME_VFS_MIME_TYPE_UNKNOWN); } else { mime_type = gnome_vfs_mime_type_from_mode_or_default (s.st_mode, GNOME_VFS_MIME_TYPE_UNKNOWN); } /*ftp_debug (conn, g_strdup_printf ("mimetype = %s", mime_type));*/ file_info->mime_type = g_strdup (mime_type); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; /*ftp_debug (conn, g_strdup_printf ("info got name `%s'", file_info->name));*/ g_free (filename); return TRUE; } else { return FALSE; } } #if 0 static GnomeVFSResult internal_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FtpConnection *conn; /* FIXME bugzilla.eazel.com 1463 */ GnomeVFSResult result; GnomeVFSFileSize num_bytes = 1024, bytes_read; gchar buffer[num_bytes+1]; result = ftp_connection_acquire(uri, &conn); if (result != GNOME_VFS_OK) { return result; } if(strstr(conn->server_type,"MACOS")) { /* don't ask for symlinks from MacOS servers */ do_path_transfer_command (conn, "LIST -ld", uri, context); } else { do_path_transfer_command (conn, "LIST -ldL", uri, context); } result = gnome_vfs_socket_buffer_read (conn->data_socketbuf, buffer, num_bytes, &bytes_read); if (result != GNOME_VFS_OK) { /*ftp_debug (conn, g_strdup ("gnome_vfs_socket_buffer_read failed"));*/ ftp_connection_release (conn, TRUE); return result; } result = end_transfer (conn); /* FIXME bugzilla.eazel.com 2793: check return? */ ftp_connection_release (conn, TRUE); if (result != GNOME_VFS_OK) { /*ftp_debug (conn,g_strdup ("LIST for get_file_info failed."));*/ return result; } if (bytes_read>0) { buffer[bytes_read] = '\0'; file_info->valid_fields = 0; /* make sure valid_fields is 0 */ if (ls_to_file_info (buffer, file_info)) { return GNOME_VFS_OK; } } return GNOME_VFS_ERROR_NOT_FOUND; } #endif static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSURI *parent = gnome_vfs_uri_get_parent (uri); GnomeVFSResult result; if (parent == NULL) { FtpConnectionPool *pool; FtpConnection *conn; gboolean was_cached; /* this is a request for info about the root directory */ G_LOCK (connection_pools); pool = ftp_connection_pool_lookup (uri); was_cached = pool->server_type != NULL; G_UNLOCK (connection_pools); if (was_cached) { result = GNOME_VFS_OK; } else { /* is the host there? */ result = ftp_connection_acquire (uri, &conn, context); if (result != GNOME_VFS_OK) { /* doesn't look like it */ return result; } ftp_connection_release (conn, FALSE); } file_info->name = g_strdup ("/"); file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->mime_type = g_strdup ("x-directory/normal"); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } else { GnomeVFSMethodHandle *method_handle; gchar *name; name = gnome_vfs_uri_extract_short_name (uri); if (name == NULL) { gnome_vfs_uri_unref (parent); return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = do_open_directory (method, &method_handle, parent, options, context); gnome_vfs_uri_unref (parent); if (result != GNOME_VFS_OK) { g_free (name); return result; } while (1) { gnome_vfs_file_info_clear (file_info); result = do_read_directory (method, method_handle, file_info, context); if (result != GNOME_VFS_OK) { result = GNOME_VFS_ERROR_NOT_FOUND; break; } if (file_info->name != NULL && strcmp (file_info->name, name) == 0) { break; } } g_free (name); do_close_directory (method, method_handle, context); /* maybe it was a hidden directory not included in ls output * (IIS virtual directory), so try to CWD to it. */ if (result == GNOME_VFS_ERROR_NOT_FOUND) { FtpConnection *connection; if (ftp_connection_acquire (uri, &connection, context) == GNOME_VFS_OK) { result = do_path_command (connection, "CWD", uri, get_cancellation (context)); ftp_connection_release (connection, FALSE); } if (result == GNOME_VFS_OK) { char *unescaped; char *basename; unescaped = gnome_vfs_unescape_string (uri->text, G_DIR_SEPARATOR_S); basename = g_path_get_basename (unescaped); g_free (unescaped); if (basename != NULL) { file_info->name = basename; file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->mime_type = g_strdup ("x-directory/normal"); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } else { result = GNOME_VFS_ERROR_NOT_FOUND; } } else { result = GNOME_VFS_ERROR_NOT_FOUND; } } } return result; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { return do_get_file_info (method, ((FtpConnection *)method_handle)->uri, file_info, options, context); } /* Tries out all suitable LIST parameter combinations until one succeeds. * If there is an unexpected error, it is returned and has to be handled * by the caller. Note that a successful LIST command also means that the * list is actually requested, which also has to be handled by the caller. * */ static GnomeVFSResult get_list_command (FtpConnection *conn, GnomeVFSContext *context) { GnomeVFSResult result; static const char * const osx_candidates[] = { "LIST -a", NULL }; static const char * const non_osx_candidates[] = { "LIST -aL", "LIST -a", "LIST -L", NULL }; const char * const *candidates; if (strstr(conn->server_type, "MACOS")) { candidates = osx_candidates; } else { candidates = non_osx_candidates; } do { result = do_transfer_command (conn, (char *) *candidates, context); } while (*++candidates != NULL && result == GNOME_VFS_ERROR_BAD_PARAMETERS); if (result == GNOME_VFS_OK) { /* we found the best suitable candidate for this server. */ g_assert (candidates != NULL); conn->list_cmd = *candidates; } else { /* all commands failed, or an unexpected error occured, * just use "LIST". */ result = do_transfer_command (conn, "LIST", context); conn->list_cmd = "LIST"; } return result; } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { #define BUFFER_SIZE 1024 FtpConnection *conn; GnomeVFSResult result; GnomeVFSFileSize num_bytes = BUFFER_SIZE, bytes_read; gchar buffer[BUFFER_SIZE+1]; GString *dirlist = g_string_new (""); char *dirlist_str; GnomeVFSCancellation *cancellation; FtpDirHandle *handle; char *server_type; FtpConnectionPool *pool; FtpCachedDirlist *cached_dirlist; struct timeval tv; dirlist_str = NULL; server_type = NULL; cancellation = get_cancellation (context); G_LOCK (connection_pools); pool = ftp_connection_pool_lookup (uri); cached_dirlist = g_hash_table_lookup (pool->cached_dirlists, uri->text != NULL ? uri->text : "/"); if (cached_dirlist != NULL) { gettimeofday (&tv, NULL); if (tv.tv_sec >= cached_dirlist->read_time && tv.tv_sec <= (cached_dirlist->read_time + DIRLIST_CACHE_TIMEOUT)) { dirlist_str = g_strdup (cached_dirlist->dirlist); server_type = g_strdup (pool->server_type); } } G_UNLOCK (connection_pools); if (dirlist_str != NULL) { result = GNOME_VFS_OK; goto has_cache; } result = ftp_connection_acquire (uri, &conn, context); if (result != GNOME_VFS_OK) { g_string_free (dirlist, TRUE); return result; } /* LIST does not return an error if called on a file, but CWD * should. This allows us to have proper gnome-vfs semantics. * does the cwd break other things though? ie, are * connections stateless? */ conn->fivefifty = GNOME_VFS_ERROR_NOT_A_DIRECTORY; result = do_path_command (conn, "CWD", uri, cancellation); if (result != GNOME_VFS_OK) { ftp_connection_release (conn, TRUE); g_string_free (dirlist, TRUE); return result; } if (conn->list_cmd != NULL) { result = do_transfer_command (conn, (char *) conn->list_cmd, context); } else { result = get_list_command (conn, context); } if (result != GNOME_VFS_OK) { ftp_connection_release (conn, TRUE); g_string_free (dirlist, TRUE); return result; } while (result == GNOME_VFS_OK) { result = gnome_vfs_socket_buffer_read (conn->data_socketbuf, buffer, num_bytes, &bytes_read, cancellation); if (result == GNOME_VFS_OK && bytes_read > 0) { buffer[bytes_read] = '\0'; dirlist = g_string_append (dirlist, buffer); } else { break; } } result = end_transfer (conn, cancellation); dirlist_str = g_string_free (dirlist, FALSE); server_type = g_strdup (conn->server_type); ftp_connection_release (conn, FALSE); if (result != GNOME_VFS_OK) { g_free (server_type); g_free (dirlist_str); return result; } G_LOCK (connection_pools); pool = ftp_connection_pool_lookup (uri); cached_dirlist = g_new0 (FtpCachedDirlist, 1); cached_dirlist->dirlist = g_strdup (dirlist_str); gettimeofday (&tv, NULL); cached_dirlist->read_time = tv.tv_sec; g_hash_table_replace (pool->cached_dirlists, g_strdup (uri->text != NULL ? uri->text : "/"), cached_dirlist); G_UNLOCK (connection_pools); has_cache: handle = g_new0 (FtpDirHandle, 1); handle->dirlist = dirlist_str; handle->dirlistptr = handle->dirlist; handle->file_info_options = options; handle->uri = gnome_vfs_uri_dup (uri); handle->server_type = server_type; *method_handle = (GnomeVFSMethodHandle *)handle; return result; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FtpDirHandle *handle = (FtpDirHandle *) method_handle; gnome_vfs_uri_unref (handle->uri); g_free (handle->dirlist); g_free (handle->server_type); g_free (handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { FtpDirHandle *handle = (FtpDirHandle *) method_handle; if (!handle->dirlistptr || *(handle->dirlistptr) == '\0') { return GNOME_VFS_ERROR_EOF; } while (TRUE) { gboolean success; if (strncmp (handle->server_type, "NETWARE", 7) == 0) { success = netware_ls_to_file_info (handle->dirlistptr, file_info, handle->file_info_options); } else { success = unix_ls_to_file_info (handle->dirlistptr, file_info, handle->file_info_options); } /* permissions aren't valid */ file_info->valid_fields &= ~GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; if (handle->file_info_options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS && file_info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) { GnomeVFSURI *uri; GnomeVFSFileInfo *symlink_info; GnomeVFSResult res; int n_symlinks; uri = gnome_vfs_uri_append_file_name (handle->uri, file_info->name); symlink_info = gnome_vfs_file_info_dup (file_info); n_symlinks = 0; do { GnomeVFSURI *link_uri; char *symlink_name; if (n_symlinks > 8) { res = GNOME_VFS_ERROR_TOO_MANY_LINKS; break; } if (symlink_info->symlink_name == NULL) { res = GNOME_VFS_ERROR_BAD_PARAMETERS; break; } symlink_name = gnome_vfs_escape_path_string (symlink_info->symlink_name); gnome_vfs_file_info_clear (symlink_info); link_uri = gnome_vfs_uri_resolve_relative (uri, symlink_name); g_free (symlink_name); if (strcmp (gnome_vfs_uri_get_host_name (uri), gnome_vfs_uri_get_host_name (link_uri)) != 0) { /* Links must be in the same host */ res = GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; break; } res = do_get_file_info (method, link_uri, symlink_info, handle->file_info_options & ~GNOME_VFS_FILE_INFO_FOLLOW_LINKS, context); gnome_vfs_uri_unref (uri); uri = link_uri; if (res != GNOME_VFS_OK) { break; } n_symlinks++; } while (symlink_info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK); if (res == GNOME_VFS_OK) { char *real_name; real_name = g_strdup (file_info->name); gnome_vfs_file_info_clear (file_info); gnome_vfs_file_info_copy (file_info, symlink_info); GNOME_VFS_FILE_INFO_SET_SYMLINK (file_info, TRUE); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME | GNOME_VFS_FILE_INFO_FIELDS_FLAGS; file_info->symlink_name = gnome_vfs_unescape_string (uri->text != NULL ? uri->text : "/", "/"); g_free (file_info->name); file_info->name = real_name; } gnome_vfs_uri_unref (uri); gnome_vfs_file_info_unref (symlink_info); } if (*(handle->dirlistptr) == '\0') { return GNOME_VFS_ERROR_EOF; } /* go till we find \r\n */ while (handle->dirlistptr && *handle->dirlistptr && *handle->dirlistptr != '\r' && *handle->dirlistptr != '\n') { handle->dirlistptr++; } /* go past \r\n */ while (handle->dirlistptr && g_ascii_isspace (*handle->dirlistptr)) { handle->dirlistptr++; } if (success) break; } return GNOME_VFS_OK; } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { *same_fs_return = ftp_connection_uri_equal (a,b); return GNOME_VFS_OK; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { GnomeVFSResult result; gchar *chmod_command; result = do_path_command_completely ("CWD", uri, context, /* If the directory doesn't exist @result will be !GNOME_VFS_OK, * in this case we don't return and proceed with MKD */ !GNOME_VFS_OK); if (result == GNOME_VFS_OK) { return GNOME_VFS_ERROR_FILE_EXISTS; } result = do_path_command_completely ("MKD", uri, context, GNOME_VFS_ERROR_ACCESS_DENIED); if (result == GNOME_VFS_OK) { invalidate_parent_dirlist_cache (uri); /* try to set the permissions */ /* this is a non-standard extension, so we'll just do our * best. We can ignore error codes. */ chmod_command = g_strdup_printf("SITE CHMOD %o", perm); do_path_command_completely (chmod_command, uri, context, GNOME_VFS_ERROR_ACCESS_DENIED); g_free(chmod_command); } else if (result != GNOME_VFS_ERROR_CANCELLED && gnome_vfs_uri_exists (uri)) { result = GNOME_VFS_ERROR_FILE_EXISTS; } return result; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { invalidate_parent_dirlist_cache (uri); return do_path_command_completely ("RMD", uri, context, GNOME_VFS_ERROR_ACCESS_DENIED); } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { GnomeVFSResult result; GnomeVFSFileInfo *p_file_info; GnomeVFSCancellation *cancellation; cancellation = get_cancellation (context); if (!force_replace) { p_file_info = gnome_vfs_file_info_new (); result = do_get_file_info (method, new_uri, p_file_info, GNOME_VFS_FILE_INFO_DEFAULT, context); gnome_vfs_file_info_unref (p_file_info); p_file_info = NULL; if (result == GNOME_VFS_OK) { return GNOME_VFS_ERROR_FILE_EXISTS; } } if (ftp_connection_uri_equal (old_uri, new_uri)) { FtpConnection *conn; GnomeVFSResult result; result = ftp_connection_acquire (old_uri, &conn, context); if (result != GNOME_VFS_OK) { return result; } result = do_path_command (conn, "RNFR", old_uri, cancellation); if (result == GNOME_VFS_OK) { conn->fivefifty = GNOME_VFS_ERROR_ACCESS_DENIED; result = do_path_command (conn, "RNTO", new_uri, cancellation); conn->fivefifty = GNOME_VFS_ERROR_NOT_FOUND; } ftp_connection_release (conn, result != GNOME_VFS_OK); invalidate_parent_dirlist_cache (old_uri); invalidate_parent_dirlist_cache (new_uri); return result; } else { return GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; } } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { invalidate_parent_dirlist_cache (uri); return do_path_command_completely ("DELE", uri, context, GNOME_VFS_ERROR_ACCESS_DENIED); } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { GnomeVFSURI *parent_uri, *new_uri; GnomeVFSResult result; /* FIXME: For now, we only support changing the name. */ if ((mask & ~(GNOME_VFS_SET_FILE_INFO_NAME)) != 0) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } /* FIXME bugzilla.eazel.com 645: Make sure this returns an * error for incoming names with "/" characters in them, * instead of moving the file. */ /* Share code with do_move. */ parent_uri = gnome_vfs_uri_get_parent (uri); if (parent_uri == NULL) { return GNOME_VFS_ERROR_NOT_FOUND; } new_uri = gnome_vfs_uri_append_file_name (parent_uri, info->name); gnome_vfs_uri_unref (parent_uri); result = do_move (method, uri, new_uri, FALSE, context); gnome_vfs_uri_unref (new_uri); return result; } static GnomeVFSResult do_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { FtpConnectionPool *pool; if (monitor_type == GNOME_VFS_MONITOR_DIRECTORY) { G_LOCK (connection_pools); pool = ftp_connection_pool_lookup (uri); pool->num_monitors++; *method_handle_return = (GnomeVFSMethodHandle *)pool; G_UNLOCK (connection_pools); return GNOME_VFS_OK; } return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { FtpConnectionPool *pool; pool = (FtpConnectionPool *)method_handle; G_LOCK (connection_pools); pool->num_monitors--; if (connection_pool_timeout == 0) { connection_pool_timeout = g_timeout_add (REAP_TIMEOUT, ftp_connection_pools_reap, NULL); } G_UNLOCK (connection_pools); return GNOME_VFS_OK; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, NULL, /* truncate */ do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, NULL, /* truncate */ NULL, /* find_directory */ NULL, /* create_symbolic_link */ do_monitor_add, do_monitor_cancel, NULL /* do_file_control */ }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { GConfClient *gclient; connection_pools = g_hash_table_new (ftp_connection_uri_hash, ftp_connection_uri_equal); gclient = gconf_client_get_default (); if (gclient) { if (gconf_client_get_bool (gclient, USE_PROXY_KEY, NULL)) { /* Using FTP proxy */ proxy_host = gconf_client_get_string (gclient, PROXY_FTP_HOST_KEY, NULL); /* Don't use blank hostname */ if (proxy_host && *proxy_host == 0) { g_free (proxy_host); proxy_host = NULL; } proxy_port = gconf_client_get_int (gclient, PROXY_FTP_PORT_KEY, NULL); } else proxy_host = NULL; } return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { if (proxy_host) { g_free (proxy_host); } } gnome-vfs-2.24.4/modules/network-method.c0000644000175000001440000007712511334251016015214 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* network-method.c - The Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Alexander Larsson */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PATH_GCONF_GNOME_VFS_SMB "/system/smb" #define PATH_GCONF_GNOME_VFS_SMB_WORKGROUP "/system/smb/workgroup" #define PATH_GCONF_GNOME_VFS_DNS_SD "/system/dns_sd" #define PATH_GCONF_GNOME_VFS_DNS_SD_DISPLAY_LOCAL "/system/dns_sd/display_local" #define PATH_GCONF_GNOME_VFS_DNS_SD_EXTRA_DOMAINS "/system/dns_sd/extra_domains" #define DEFAULT_WORKGROUP_NAME "X-GNOME-DEFAULT-WORKGROUP" typedef struct { char *display_name; char *icon; char *target_uri; char *filename; } NetworkLink; typedef struct { char *prefix; GnomeVFSURI *base_uri; GnomeVFSMonitorHandle *monitor_handle; } NetworkRedirect; typedef struct { char *file_name; /* not escaped */ char *contents; } NetworkFile; typedef struct { int dummy; } NetworkMonitor; typedef enum { NETWORK_LOCAL_DISABLED, NETWORK_LOCAL_MERGED, NETWORK_LOCAL_SEPARATE } NetworkLocalSetting; static gboolean have_smb; /* gconf settings */ static char *current_workgroup; static NetworkLocalSetting gconf_local_setting; static char *gconf_extra_domains; static GList *current_dns_sd_domains = NULL; static GList *active_links; static GList *active_redirects; static GList *active_monitors; G_LOCK_DEFINE_STATIC (network); static void refresh_link_lists (void); typedef struct { GnomeVFSHandle *handle; char *prefix; char *data; int len; int pos; } FileHandle; static FileHandle * file_handle_new (char *data) { FileHandle *result; result = g_new0 (FileHandle, 1); if (data) { result->data = g_strdup (data); result->len = strlen (data); result->pos = 0; } return result; } static FileHandle * file_handle_new_from_handle (GnomeVFSHandle *handle, const char *prefix) { FileHandle *result; result = g_new0 (FileHandle, 1); result->handle = handle; result->prefix = g_strdup (prefix); return result; } static void file_handle_destroy (FileHandle *handle) { if (handle->handle) { gnome_vfs_close (handle->handle); } g_free (handle->prefix); g_free (handle->data); g_free (handle); } static NetworkLocalSetting parse_network_local_setting (const char *setting) { if (setting == NULL) return NETWORK_LOCAL_DISABLED; if (strcmp (setting, "separate") == 0) return NETWORK_LOCAL_SEPARATE; if (strcmp (setting, "merged") == 0) return NETWORK_LOCAL_MERGED; return NETWORK_LOCAL_DISABLED; } static char * get_data_for_link (const char *uri, const char *display_name, const char *icon) { char *data; data = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=FSDevice\n" "Icon=%s\n" "URL=%s\n", display_name, icon, uri); return data; } /* Called with lock held */ static void do_link_event (const char *filename, GnomeVFSMonitorEventType event_type) { NetworkMonitor *monitor; GnomeVFSURI *uri, *base_uri; GList *l; /* Need to shortcut this to handle calls before initialization finished */ if (active_monitors == NULL) return; base_uri = gnome_vfs_uri_new ("network://"); uri = gnome_vfs_uri_append_file_name (base_uri, filename); gnome_vfs_uri_unref (base_uri); for (l = active_monitors; l != NULL; l = l->next) { monitor = l->data; gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)monitor, uri, event_type); } gnome_vfs_uri_unref (uri); } /* Call with lock held */ static void remove_link (const char *filename) { GList *l; NetworkLink *link, *found; found = NULL; for (l = active_links; l != NULL; l = l->next) { link = l->data; if (strcmp (link->filename, filename) == 0) { found = link; active_links = g_list_remove_link (active_links, l); do_link_event (found->filename, GNOME_VFS_MONITOR_EVENT_DELETED); break; } } if (found) { g_free (found->filename); g_free (found->target_uri); g_free (found->display_name); g_free (found->icon); g_free (found); } } /* Call with lock held */ static void add_link (const char *filename, const char *target_uri, const char *display_name, const char *icon) { NetworkLink *link; link = g_new0 (NetworkLink, 1); link->filename = g_strdup (filename); link->target_uri = g_strdup (target_uri); link->display_name = g_strdup (display_name); link->icon = g_strdup (icon); active_links = g_list_prepend (active_links, link); do_link_event (filename, GNOME_VFS_MONITOR_EVENT_CREATED); } /* Call with lock held */ static void add_dns_sd_domain (const char *domain) { char *filename, *link_uri; filename = g_strconcat ("dnssdlink-", domain, NULL); link_uri = g_strdup_printf ("dns-sd://%s/", domain); add_link (filename, link_uri, domain, "gnome-fs-network"); g_free (filename); g_free (link_uri); } /* Call with lock held */ static void remove_dns_sd_domain (const char *domain) { char *filename; filename = g_strconcat ("dnssdlink-", domain, NULL); remove_link (filename); g_free (filename); } /* Call with lock held */ static void add_dns_sd_domains (const char *domain_list) { char **domains; int i; if (domain_list == NULL) return; domains = g_strsplit (domain_list, ",", 0); for (i = 0; domains[i] != NULL; i++) { add_dns_sd_domain (domains[i]); } g_strfreev (domains); } /* Call with lock held */ static void remove_dns_sd_domains (const char *domain_list) { char **domains; int i; if (domain_list == NULL) return; domains = g_strsplit (domain_list, ",", 0); for (i = 0; domains[i] != NULL; i++) { remove_dns_sd_domain (domains[i]); } g_strfreev (domains); } static void add_redirect (const char *prefix, const char *base_uri) { NetworkRedirect *redirect; redirect = g_new0 (NetworkRedirect, 1); redirect->prefix = g_strdup (prefix); redirect->base_uri = gnome_vfs_uri_new (base_uri); G_LOCK (network); active_redirects = g_list_prepend (active_redirects, redirect); G_UNLOCK (network); } /* Call with lock held */ static NetworkLink * find_network_link (const char *filename) { GList *l; NetworkLink *link; for (l = active_links; l != NULL; l = l->next) { link = l->data; if (strcmp (filename, link->filename) == 0) return link; } return NULL; } static char * network_link_create_data (NetworkLink *link) { return get_data_for_link (link->target_uri, link->display_name, link->icon); } /* Call with lock held */ static NetworkRedirect * find_network_redirect (const char *filename) { GList *l; NetworkRedirect *redirect; for (l = active_redirects; l != NULL; l = l->next) { redirect = l->data; if (g_str_has_prefix (filename, redirect->prefix)) return redirect; } return NULL; } static GnomeVFSURI * network_redirect_get_uri (NetworkRedirect *redirect, const char *filename) { g_assert (g_str_has_prefix (filename, redirect->prefix)); return gnome_vfs_uri_append_file_name (redirect->base_uri, filename + strlen (redirect->prefix)); } static void network_monitor_callback (GnomeVFSMonitorHandle *handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) { NetworkMonitor *monitor; NetworkRedirect *redirect; GList *l; GnomeVFSURI *uri, *base_uri; char *short_name; char *new_name; redirect = user_data; uri = gnome_vfs_uri_new (info_uri); short_name = gnome_vfs_uri_extract_short_name (uri); gnome_vfs_uri_unref (uri); new_name = g_strconcat (redirect->prefix, short_name, NULL); base_uri = gnome_vfs_uri_new ("network://"); uri = gnome_vfs_uri_append_file_name (base_uri, new_name); gnome_vfs_uri_unref (base_uri); G_LOCK (network); for (l = active_monitors; l != NULL; l = l->next) { monitor = l->data; gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)monitor, uri, event_type); } G_UNLOCK (network); gnome_vfs_uri_unref (uri); } /* Call with lock held */ static void network_monitor_add (NetworkMonitor *monitor) { GnomeVFSResult res; GnomeVFSMonitorHandle *handle; NetworkRedirect *redirect; char *uri; GList *l; if (active_monitors == NULL) { for (l = active_redirects; l != NULL; l = l->next) { redirect = l->data; uri = gnome_vfs_uri_to_string (redirect->base_uri, 0); res = gnome_vfs_monitor_add (&handle, uri, GNOME_VFS_MONITOR_DIRECTORY, network_monitor_callback, redirect); g_free (uri); if (res == GNOME_VFS_OK) { redirect->monitor_handle = handle; } } } active_monitors = g_list_prepend (active_monitors, monitor); } static void network_monitor_remove (NetworkMonitor *monitor) { NetworkRedirect *redirect; GList *l; if (active_monitors == NULL) { return; } active_monitors = g_list_remove (active_monitors, monitor); if (active_monitors == NULL) { /* This was the last monitor */ for (l = active_redirects; l != NULL; l = l->next) { redirect = l->data; if (redirect->monitor_handle) { gnome_vfs_monitor_cancel (redirect->monitor_handle); redirect->monitor_handle = NULL; } } } } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { FileHandle *file_handle; NetworkLink *link; NetworkRedirect *redirect; char *name, *data; GnomeVFSResult res; GnomeVFSHandle *redirect_handle; GnomeVFSURI *redirect_uri; char *redirect_prefix; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); if (mode & GNOME_VFS_OPEN_WRITE) { return GNOME_VFS_ERROR_NOT_PERMITTED; } if (strcmp (uri->text, "/") == 0) { return GNOME_VFS_ERROR_NOT_PERMITTED; } name = gnome_vfs_uri_extract_short_name (uri); G_LOCK (network); redirect_uri = NULL; redirect_prefix = NULL; file_handle = NULL; link = find_network_link (name); if (link != NULL) { data = network_link_create_data (link); file_handle = file_handle_new (data); g_free (data); } else { redirect = find_network_redirect (name); if (redirect != NULL) { redirect_uri = network_redirect_get_uri (redirect, name); redirect_prefix = g_strdup (redirect->prefix); } } g_free (name); G_UNLOCK (network); if (redirect_uri != NULL) { res = gnome_vfs_open_uri (&redirect_handle, redirect_uri, mode); gnome_vfs_uri_unref (redirect_uri); if (res != GNOME_VFS_OK) { return res; } file_handle = file_handle_new_from_handle (redirect_handle, redirect_prefix); } g_free (redirect_prefix); if (file_handle == NULL) { return GNOME_VFS_ERROR_NOT_FOUND; } *method_handle = (GnomeVFSMethodHandle *) file_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *file_handle; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; file_handle_destroy (file_handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *file_handle; int read_len; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; if (file_handle->handle) { return gnome_vfs_read (file_handle->handle, buffer, num_bytes, bytes_read); } else { *bytes_read = 0; if (file_handle->pos >= file_handle->len) { return GNOME_VFS_ERROR_EOF; } read_len = MIN (num_bytes, file_handle->len - file_handle->pos); memcpy (buffer, file_handle->data + file_handle->pos, read_len); *bytes_read = read_len; file_handle->pos += read_len; return GNOME_VFS_OK; } } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; if (file_handle->handle) { return gnome_vfs_seek (file_handle->handle, whence, offset); } else { switch (whence) { case GNOME_VFS_SEEK_START: file_handle->pos = offset; break; case GNOME_VFS_SEEK_CURRENT: file_handle->pos += offset; break; case GNOME_VFS_SEEK_END: file_handle->pos = file_handle->len + offset; break; } if (file_handle->pos < 0) { file_handle->pos = 0; } if (file_handle->pos > file_handle->len) { file_handle->pos = file_handle->len; } return GNOME_VFS_OK; } } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; if (file_handle->handle) { return gnome_vfs_tell (file_handle->handle, offset_return); } else { *offset_return = file_handle->pos; return GNOME_VFS_OK; } } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_truncate (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize where, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } typedef struct { GnomeVFSDirectoryHandle *handle; char *prefix; } DirectoryHandleRedirect; typedef struct { GnomeVFSFileInfoOptions options; GList *filenames; GList *handles; } DirectoryHandle; static DirectoryHandle * directory_handle_new (GnomeVFSFileInfoOptions options) { DirectoryHandle *result; result = g_new0 (DirectoryHandle, 1); result->options = options; result->filenames = NULL; return result; } static void free_directory_handle_redirect (DirectoryHandleRedirect *redir) { gnome_vfs_directory_close (redir->handle); g_free (redir->prefix); g_free (redir); } static void directory_handle_destroy (DirectoryHandle *dir_handle) { g_list_foreach (dir_handle->handles, (GFunc)free_directory_handle_redirect, NULL); g_list_foreach (dir_handle->filenames, (GFunc)g_free, NULL); g_list_free (dir_handle->filenames); g_free (dir_handle); } static void directory_handle_add_filename (DirectoryHandle *dir_handle, char *filename) { dir_handle->filenames = g_list_prepend (dir_handle->filenames, g_strdup (filename)); } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { DirectoryHandle *dir_handle; NetworkLink *link; NetworkRedirect *redirect; GList *uris, *l, *p, *prefixes; GnomeVFSResult res; GnomeVFSURI *redirect_uri; DirectoryHandleRedirect *redirect_dir_handle; refresh_link_lists (); dir_handle = directory_handle_new (options); G_LOCK (network); for (l = active_links; l != NULL; l = l->next) { link = l->data; directory_handle_add_filename (dir_handle, link->filename); } uris = NULL; prefixes = NULL; for (l = active_redirects; l != NULL; l = l->next) { redirect = l->data; uris = g_list_prepend (uris, gnome_vfs_uri_dup (redirect->base_uri)); prefixes = g_list_prepend (prefixes, strdup (redirect->prefix)); } G_UNLOCK (network); for (l = uris, p = prefixes; l != NULL; l = l->next, p = p->next) { GnomeVFSDirectoryHandle *handle; redirect_uri = l->data; res = gnome_vfs_directory_open_from_uri (&handle, redirect_uri, options); if (res == GNOME_VFS_OK) { redirect_dir_handle = g_new0 (DirectoryHandleRedirect, 1); redirect_dir_handle->handle = handle; redirect_dir_handle->prefix = g_strdup (p->data); dir_handle->handles = g_list_prepend (dir_handle->handles, redirect_dir_handle); } gnome_vfs_uri_unref (redirect_uri); g_free (p->data); } g_list_free (uris); g_list_free (prefixes); *method_handle = (GnomeVFSMethodHandle *) dir_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { DirectoryHandle *dir_handle; dir_handle = (DirectoryHandle *) method_handle; directory_handle_destroy (dir_handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { DirectoryHandle *handle; DirectoryHandleRedirect *redirect_handle; GnomeVFSResult res; GList *entry; char *prefixed_name; handle = (DirectoryHandle *) method_handle; if (handle->filenames != NULL) { entry = handle->filenames; handle->filenames = g_list_remove_link (handle->filenames, entry); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; file_info->name = g_strdup (entry->data); g_free (entry->data); g_list_free_1 (entry); file_info->mime_type = g_strdup ("application/x-desktop"); file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } while (handle->handles != NULL) { redirect_handle = handle->handles->data; res = gnome_vfs_directory_read_next (redirect_handle->handle, file_info); if (res == GNOME_VFS_OK) { prefixed_name = g_strconcat (redirect_handle->prefix, file_info->name, NULL); g_free (file_info->name); file_info->name = prefixed_name; } if (res != GNOME_VFS_OK) { free_directory_handle_redirect (redirect_handle); handle->handles = g_list_remove_link (handle->handles, handle->handles); continue; } return res; } return GNOME_VFS_ERROR_EOF; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { NetworkLink *link; NetworkRedirect *redirect; char *name; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; if (strcmp (uri->text, "/") == 0) { file_info->name = g_strdup ("/"); file_info->mime_type = g_strdup ("x-directory/normal"); file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } name = gnome_vfs_uri_extract_short_name (uri); link = find_network_link (name); if (link != NULL) { g_free (name); file_info->name = gnome_vfs_uri_extract_short_name (uri); file_info->mime_type = g_strdup ("application/x-desktop"); file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } redirect = find_network_redirect (name); if (redirect != NULL) { GnomeVFSURI *redirect_uri; GnomeVFSResult res; char *prefixed_name; redirect_uri = network_redirect_get_uri (redirect, name); res = gnome_vfs_get_file_info_uri (redirect_uri, file_info, options); g_free (name); if (res == GNOME_VFS_OK) { prefixed_name = g_strconcat (redirect->prefix, file_info->name, NULL); g_free (file_info->name); file_info->name = prefixed_name; } gnome_vfs_uri_unref (redirect_uri); return res; } g_free (name); return GNOME_VFS_ERROR_NOT_FOUND; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *file_handle; GnomeVFSResult res; char *prefixed_name; file_handle = (FileHandle *) method_handle; if (file_handle->handle) { res = gnome_vfs_get_file_info_from_handle (file_handle->handle, file_info, options); if (res == GNOME_VFS_OK) { prefixed_name = g_strconcat (file_handle->prefix, file_info->name, NULL); g_free (file_info->name); file_info->name = prefixed_name; } return res; } else { file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; file_info->mime_type = g_strdup ("application/x-desktop"); file_info->size = file_handle->len; file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_SIZE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; return GNOME_VFS_OK; } } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return TRUE; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_find_directory (GnomeVFSMethod *method, GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_create_symbolic_link (GnomeVFSMethod *method, GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } /* When checking whether two locations are on the same file system, we are doing this to determine whether we can recursively move or do other sorts of transfers. When a symbolic link is the "source", its location is the location of the link file, because we want to know about transferring the link, whereas for symbolic links that are "targets", we use the location of the object being pointed to, because that is where we will be moving/copying to. */ static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, gboolean *same_fs_return, GnomeVFSContext *context) { return TRUE; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_file_control (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, const char *operation, gpointer operation_data, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { if (monitor_type == GNOME_VFS_MONITOR_DIRECTORY && (strcmp (uri->text, "") == 0 || strcmp (uri->text, "/") == 0)) { NetworkMonitor *monitor; monitor = g_new0 (NetworkMonitor, 1); G_LOCK (network); network_monitor_add (monitor); G_UNLOCK (network); *method_handle_return = (GnomeVFSMethodHandle *)monitor; return GNOME_VFS_OK; } return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { NetworkMonitor *monitor; monitor = (NetworkMonitor *)method_handle; G_LOCK (network); network_monitor_remove (monitor); G_UNLOCK (network); g_free (monitor); return GNOME_VFS_OK; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, do_truncate, do_find_directory, do_create_symbolic_link, do_monitor_add, do_monitor_cancel, do_file_control }; static void notify_gconf_extra_domains_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { G_LOCK (network); remove_dns_sd_domains (gconf_extra_domains); g_free (gconf_extra_domains); gconf_extra_domains = gconf_client_get_string (client, PATH_GCONF_GNOME_VFS_DNS_SD_EXTRA_DOMAINS, NULL); add_dns_sd_domains (gconf_extra_domains); G_UNLOCK (network); } static void notify_gconf_value_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { G_LOCK (network); g_free (current_workgroup); current_workgroup = gconf_client_get_string (client, PATH_GCONF_GNOME_VFS_SMB_WORKGROUP, NULL); if (current_workgroup == NULL || !current_workgroup[0]) { g_free (current_workgroup); current_workgroup = g_strdup (DEFAULT_WORKGROUP_NAME); } G_UNLOCK (network); } static void diff_sorted_lists (GList *list1, GList *list2, GCompareFunc compare, GList **added, GList **removed) { int order; *added = *removed = NULL; while (list1 != NULL && list2 != NULL) { order = (*compare) (list1->data, list2->data); if (order < 0) { *removed = g_list_prepend (*removed, list1->data); list1 = list1->next; } else if (order > 0) { *added = g_list_prepend (*added, list2->data); list2 = list2->next; } else { /* same item */ list1 = list1->next; list2 = list2->next; } } while (list1 != NULL) { *removed = g_list_prepend (*removed, list1->data); list1 = list1->next; } while (list2 != NULL) { *added = g_list_prepend (*added, list2->data); list2 = list2->next; } } static void refresh_link_lists (void) { char hostname[256]; GList *added, *removed, *node; char *domain, *dot; GList *domains, *l; GnomeVFSResult res; domain = NULL; if (gethostname (hostname, sizeof(hostname)) == 0) { dot = strchr (hostname, '.'); if (dot != NULL && dot[0] != 0 && dot[1] != 0) { domain = dot + 1; } } domains = NULL; if (domain != NULL) res = gnome_vfs_dns_sd_list_browse_domains_sync (domain, 2000, &domains); else res = GNOME_VFS_OK; if (res == GNOME_VFS_OK) { G_LOCK (network); diff_sorted_lists (current_dns_sd_domains, domains, (GCompareFunc) strcmp, &added, &removed); for (l = removed; l != NULL; l = l->next) { domain = l->data; remove_dns_sd_domain (domain); node = g_list_find_custom (current_dns_sd_domains, domain, (GCompareFunc)strcmp); if (node) { g_free (node->data); current_dns_sd_domains = g_list_delete_link (current_dns_sd_domains, node); } } for (l = added; l != NULL; l = l->next) { domain = l->data; add_dns_sd_domain (domain); current_dns_sd_domains = g_list_prepend (current_dns_sd_domains, g_strdup (domain)); } if (added != NULL) current_dns_sd_domains = g_list_sort (current_dns_sd_domains, (GCompareFunc) strcmp); g_list_free (added); g_list_free (removed); g_list_foreach (domains, (GFunc)g_free, domains); g_list_free (domains); G_UNLOCK (network); } } GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { GConfClient *gconf_client; GnomeVFSURI *uri; char *workgroup_uri, *workgroup_escaped, *setting; gconf_client = gconf_client_get_default (); gconf_client_add_dir (gconf_client, PATH_GCONF_GNOME_VFS_SMB, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gconf_client_add_dir (gconf_client, PATH_GCONF_GNOME_VFS_DNS_SD, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); current_workgroup = gconf_client_get_string (gconf_client, PATH_GCONF_GNOME_VFS_SMB_WORKGROUP, NULL); if (current_workgroup == NULL || !current_workgroup[0]) { g_free (current_workgroup); current_workgroup = g_strdup (DEFAULT_WORKGROUP_NAME); } setting = gconf_client_get_string (gconf_client, PATH_GCONF_GNOME_VFS_DNS_SD_DISPLAY_LOCAL, NULL); gconf_local_setting = parse_network_local_setting (setting); g_free (setting); /* TODO: catch changes to gconf */ switch (gconf_local_setting) { case NETWORK_LOCAL_MERGED: add_redirect ("dnssd-local-", "dns-sd://local/"); break; case NETWORK_LOCAL_SEPARATE: add_dns_sd_domain ("local"); break; default: break; } gconf_extra_domains = gconf_client_get_string (gconf_client, PATH_GCONF_GNOME_VFS_DNS_SD_EXTRA_DOMAINS, NULL); add_dns_sd_domains (gconf_extra_domains); gconf_client_notify_add (gconf_client, PATH_GCONF_GNOME_VFS_DNS_SD_EXTRA_DOMAINS, notify_gconf_extra_domains_changed, NULL, NULL, NULL); gconf_client_notify_add (gconf_client, PATH_GCONF_GNOME_VFS_SMB_WORKGROUP, notify_gconf_value_changed, NULL, NULL, NULL); g_object_unref (gconf_client); uri = gnome_vfs_uri_new ("smb://"); have_smb = uri != NULL; if (uri != NULL) { gnome_vfs_uri_unref (uri); } if (have_smb) { if (current_workgroup != NULL) { workgroup_escaped = gnome_vfs_escape_string (current_workgroup); workgroup_uri = g_strdup_printf ("smb://%s/", workgroup_escaped); add_redirect ("smb-workgroup-", workgroup_uri); g_free (workgroup_uri); g_free (workgroup_escaped); } add_link ("smblink-root", "smb://", _("Windows Network"), "gnome-fs-network"); } return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { } gnome-vfs-2.24.4/modules/cdda-cddb.h0000644000175000001440000001165611334251016014034 00000000000000/***************************************************************** cdda-cddb.h Based on code from libcdaudio 0.5.0 (Copyright (C)1998 Tony Arcieri) All changes copyright (c) 1998 by Mike Oliphant - oliphant@ling.ed.ac.uk http://www.ling.ed.ac.uk/~oliphant/grip 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, USA. *****************************************************************/ #ifndef CDDA_CDDB_H #define CDDA_CDDB_H #include #include #define size16 short #define size32 int #include #define CURRENT_CDDBREVISION 2 #define MAX_TRACKS 100 /* CDDB hello structure */ struct CDDBHello { /* Program */ char hello_program[256]; /* Program version */ char hello_version[256]; }; /* Used for keeping track of times */ struct disc_timeval { int minutes; int seconds; }; /* Track specific information */ struct track_info { struct disc_timeval track_length; struct disc_timeval track_pos; int track_frames; int track_start; }; /* Disc information such as current track, amount played, etc */ typedef struct { int disc_present; /* Is disc present? */ int disc_mode; /* Current disc mode */ struct disc_timeval track_time; /* Current track time */ struct disc_timeval disc_time; /* Current disc time */ struct disc_timeval disc_length; /* Total disc length */ int disc_frame; /* Current frame */ int disc_track; /* Current track */ int disc_totaltracks; /* Number of tracks on disc */ struct track_info track[MAX_TRACKS]; /* Track specific information */ } disc_info; /* HTTP proxy server structure */ typedef struct _proxy_server { char name[256]; int port; } ProxyServer; /* CDDB server structure */ typedef struct _cddb_server { char name[256]; char cgi_prog[256]; int port; int use_proxy; ProxyServer *proxy; } CDDBServer; #define CDDA_CDDB_LEVEL "3" /* Current CDDB protocol level supported */ /* CDDB entry */ typedef struct _cddb_entry { unsigned int entry_id; int entry_genre; } CDDBEntry; /* CDDB hello structure */ typedef struct _cddb_hello { /* Program */ char hello_program[256]; /* Program version */ char hello_version[256]; } CDDBHello; #define MAX_INEXACT_MATCHES 16 /* An entry in the query list */ struct query_list_entry { int list_genre; int list_id; char list_title[64]; char list_artist[64]; }; /* CDDB query structure */ typedef struct _cddb_query { int query_match; int query_matches; struct query_list_entry query_list[MAX_INEXACT_MATCHES]; } CDDBQuery; /* Match values returned by a query */ #define MATCH_NOMATCH 0 #define MATCH_EXACT 1 #define MATCH_INEXACT 2 /* Track database structure */ typedef struct _track_data { char track_name[256]; /* Track name */ char track_artist[256]; /* Track artist */ char track_extended[4096]; /* Extended information */ } TrackData; /* Disc database structure */ typedef struct _disc_data { unsigned int data_id; /* CD id */ char data_title[256]; /* Disc title */ char data_artist[256]; /* We may be able to extract this */ char data_extended[4096]; /* Extended information */ int data_genre; /* Disc genre */ int data_year; /* Disc year */ char data_playlist[256]; /* Playlist info */ gboolean data_multi_artist; /* Is CD multi-artist? */ TrackData data_track[MAX_TRACKS]; /* Track names */ } DiscData; /* Encode list structure */ typedef struct _encode_track { int track_num; int start_frame; int end_frame; char song_name[80]; char song_artist[80]; char disc_name[80]; char disc_artist[80]; int song_year; int id3_genre; int mins; int secs; int discid; } EncodeTrack; unsigned int CDDBDiscid(cdrom_drive *drive); char *CDDBGenre(int genre); int CDDBGenreValue(char *genre); gboolean CDDBDoQuery(cdrom_drive *cd_desc, CDDBServer *server, CDDBHello *hello,CDDBQuery *query); gboolean CDDBRead(cdrom_drive *cd_desc,CDDBServer *server, CDDBHello *hello,CDDBEntry *entry, DiscData *data); gboolean CDDBRead(cdrom_drive *cd_desc,CDDBServer *server, CDDBHello *hello,CDDBEntry *entry, DiscData *data); gboolean CDDBStatDiscData(cdrom_drive *cd_desc); int CDDBReadDiscData(cdrom_drive *cd_desc, DiscData *outdata); int CDDBWriteDiscData(cdrom_drive *drive, DiscData *ddata,FILE *outfile, gboolean gripext); void CDDBParseTitle(char *buf,char *title,char *artist,char *sep); char *ChopWhite(char *buf); gboolean CDDBLookupDisc (CDDBServer *server, cdrom_drive *drive, DiscData *disc_data); int CDStat(int cd_desc, disc_info *disc, gboolean read_toc); #endif gnome-vfs-2.24.4/modules/Makefile.am0000644000175000001440000001242711334251016014127 00000000000000NULL = INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_srcdir)/imported/neon \ $(MODULES_XML_GCONF_CFLAGS) \ $(MODULES_FILE_CFLAGS) \ $(HOWL_CFLAGS) \ $(AVAHI_CFLAGS) \ $(LIBEFS_CFLAGS) \ $(SAMBA_CFLAGS) \ $(GSSAPI_CFLAGS) \ $(VFS_CFLAGS) \ -D_FILE_OFFSET_BITS=64 \ -D_BSD_SOURCE \ -D_LARGEFILE64_SOURCE \ -D_POSIX_PTHREAD_SEMANTICS \ -D_REENTRANT \ -DSSH_PROGRAM=\"$(SSH_PROGRAM)\" \ -DG_DISABLE_DEPRECATED \ -DGNOME_VFS_PREFIX=\"$(prefix)\" \ -DGNOME_VFS_DATADIR=\"$(datadir)\" \ -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ -DGNOME_VFS_SYSCONFDIR=\"$(sysconfdir)\"\ -DG_LOG_DOMAIN=\"gnome-vfs-modules\" \ $(NULL) EXTRA_DIST = \ $(HTTP_NEON_SOURCES) \ default-modules.conf \ smb-module.conf \ cdda-module.conf \ ssl-modules.conf \ inotify-helper.c \ inotify-helper.h \ inotify-kernel.h \ inotify-kernel.c \ inotify-missing.h \ inotify-missing.c \ inotify-sub.h \ inotify-sub.c \ inotify-path.h \ inotify-path.c \ inotify-diag.h \ inotify-diag.c ### Module setup if HAVE_CDDA CDDA_LTLIBS = libcdda.la else CDDA_LTLIBS = endif if HAVE_SAMBA SMB_LTLIBS = libsmb.la else SMB_LTLIBS = endif if OS_WIN32 PLATFROM_SPECIFIC_LTLIBS = else PLATFROM_SPECIFIC_LTLIBS = libcomputer.la libdns-sd.la libnetwork.la libnntp.la libsftp.la libhttp.la libftp.la endif module_flags = -export_dynamic -avoid-version -module -no-undefined modulesdir = $(libdir)/gnome-vfs-2.0/modules modules_LTLIBRARIES = \ $(CDDA_LTLIBS) \ libfile.la \ libvfs-test.la \ libbzip2.la \ libgzip.la \ $(SMB_LTLIBS) \ libtar.la \ $(PLATFROM_SPECIFIC_LTLIBS) \ $(NULL) # Not currently supported # libnfs.la modulesconfdir=$(sysconfdir)/gnome-vfs-2.0/modules if HAVE_CDDA CDDA_CONF = cdda-module.conf endif if HAVE_SAMBA SMB_CONF = smb-module.conf endif if HAVE_SSL SSL_CONF = ssl-modules.conf endif modulesconf_DATA = default-modules.conf $(CDDA_CONF) $(SMB_CONF) $(SSL_CONF) ### `cdda' method libcdda_la_SOURCES = \ cdda-method.c \ cdda-cddb.c \ cdda-cddb.h \ cdda-cdrom-extensions.h libcdda_la_LDFLAGS = $(module_flags) libcdda_la_LIBADD = $(MODULES_LIBS) $(CDDA_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `computer' method libcomputer_la_SOURCES = computer-method.c libcomputer_la_LDFLAGS = $(module_flags) libcomputer_la_LIBADD = $(MODULES_FILE_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `dns-sd' method libdns_sd_la_SOURCES = dns-sd-method.c libdns_sd_la_LDFLAGS = $(module_flags) libdns_sd_la_LIBADD = $(MODULES_LIBS) $(HOWL_LIBS) $(AVAHI_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `file' method if HAVE_INOTIFY FILE_ADD_SOURCES = inotify-kernel.c inotify-missing.c inotify-path.c inotify-sub.c inotify-helper.c inotify-diag.c else FILE_ADD_SOURCES = endif libfile_la_SOURCES = \ file-method.c \ fstype.c \ file-method-acl.h \ file-method-acl.c \ $(FILE_ADD_SOURCES) \ $(NULL) libfile_la_LDFLAGS = $(module_flags) libfile_la_LIBADD = $(ACL_LIBS) $(FAM_LIBS) $(MODULES_FILE_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `network' method libnetwork_la_SOURCES = network-method.c libnetwork_la_LDFLAGS = $(module_flags) libnetwork_la_LIBADD = $(MODULES_FILE_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `nntp' method libnntp_la_SOURCES = nntp-method.c nntp-method.h libnntp_la_LDFLAGS = $(module_flags) libnntp_la_LIBADD = $(MODULES_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `smb' method libsmb_la_SOURCES = smb-method.c libsmb_la_LDFLAGS = $(module_flags) libsmb_la_LIBADD = $(SAMBA_LIBS) $(MODULES_GCONF_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `sftp' method libsftp_la_SOURCES = sftp-method.c sftp.h libsftp_la_LDFLAGS = $(module_flags) libsftp_la_LIBADD = $(MODULES_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `test' method libvfs_test_la_SOURCES = test-method.c libvfs_test_la_LDFLAGS = $(module_flags) libvfs_test_la_LIBADD = $(MODULES_XML_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `gzip' method libgzip_la_SOURCES = gzip-method.c libgzip_la_LDFLAGS = $(module_flags) libgzip_la_LIBADD = $(MODULES_LIBS) -lz ../libgnomevfs/libgnomevfs-2.la ### `bzip2' method libbzip2_la_SOURCES = bzip2-method.c libbzip2_la_LDFLAGS = $(module_flags) libbzip2_la_LIBADD = $(MODULES_LIBS) $(BZ2_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `ftp' method libftp_la_SOURCES = ftp-method.c libftp_la_LDFLAGS = $(module_flags) libftp_la_LIBADD = $(MODULES_GCONF_LIBS) $(GSSAPI_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `nfs' method #libnfs_la_SOURCES = \ # nfs-method.c \ # nfs-method.h \ # nfs-method_mount_xdr.c \ # nfs-method_nfs_prot_xdr.c \ # nfs-method_mount.h \ # nfs-method_nfs_prot.h #libnfs_la_LDFLAGS = $(module_flags) ### `http' method libhttp_la_SOURCES = \ http-neon-method.c \ http-proxy.h \ http-proxy.c $(NULL) libhttp_la_LDFLAGS = $(module_flags) libhttp_la_LIBADD = \ $(MODULES_GCONF_LIBS) \ $(OPENSSL_LIBS) \ ../imported/neon/libneon.la \ ../libgnomevfs/libgnomevfs-2.la libtar_la_SOURCES = tar-method.c tarpet.h libtar_la_LDFLAGS = $(module_flags) libtar_la_LIBADD = $(MODULES_LIBS) ../libgnomevfs/libgnomevfs-2.la #if HAVE_LIBEFS #vefsmoduledir = $(modulesdir) #vefsmodule_LTLIBRARIES = libvefs.la # #libvefs_la_SOURCES = \ # efs-method.c #libvefs_la_LIBADD = $(LIBEFS_LIBS) $(MODULES_LIBS) #endif gnome-vfs-2.24.4/modules/http-proxy.h0000644000175000001440000000243611334251016014401 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* http-proxy.h Copyright (C) 2001 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: See http-proxy.c */ #ifndef HTTP_PROXY_H #define HTTP_RROXY_H typedef struct { char *host; guint port; char *username; char *password; } HttpProxyInfo; gboolean proxy_for_uri (GnomeVFSToplevelURI * toplevel_uri, HttpProxyInfo *proxy_info); void proxy_init (void); void proxy_shutdown (void); #endif gnome-vfs-2.24.4/modules/gzip-method.c0000644000175000001440000004547511334251016014477 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gzip-method.c - GZIP access method for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include #include #include #include #include #include #include #include struct _GZipMethodHandle { GnomeVFSURI *uri; GnomeVFSHandle *parent_handle; GnomeVFSOpenMode open_mode; time_t modification_time; GnomeVFSResult last_vfs_result; gint last_z_result; z_stream zstream; guchar *buffer; guint32 crc; }; typedef struct _GZipMethodHandle GZipMethodHandle; #define GZIP_MAGIC_1 0x1f #define GZIP_MAGIC_2 0x8b #define GZIP_FLAG_ASCII 0x01 /* bit 0 set: file probably ascii text */ #define GZIP_FLAG_HEAD_CRC 0x02 /* bit 1 set: header CRC present */ #define GZIP_FLAG_EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ #define GZIP_FLAG_ORIG_NAME 0x08 /* bit 3 set: original file name present */ #define GZIP_FLAG_COMMENT 0x10 /* bit 4 set: file comment present */ #define GZIP_FLAG_RESERVED 0xE0 /* bits 5..7: reserved */ #define GZIP_HEADER_SIZE 10 #define GZIP_FOOTER_SIZE 8 #define Z_BUFSIZE 16384 static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context); static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context); static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context); static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context); static GnomeVFSResult do_get_file_info(GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri); static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, NULL, /* seek */ NULL, /* tell */ NULL, /* truncate_handle FIXME bugzilla.eazel.com 1175 */ NULL, /* open_directory */ NULL, /* close_directory */ NULL, /* read_directory */ do_get_file_info, NULL, /* get_file_info_from_handle */ do_is_local, NULL, /* make_directory */ NULL, /* remove_directory */ NULL, /* move */ NULL, /* unlink */ NULL, /* check_same_fs */ NULL, /* set_file_info */ NULL, /* truncate */ NULL, /* find_directory */ NULL /* create_symbolic_link */ }; #define RETURN_IF_FAIL(action) \ G_STMT_START{ \ GnomeVFSResult __tmp_result; \ \ __tmp_result = (action); \ if (__tmp_result != GNOME_VFS_OK) \ return __tmp_result; \ }G_STMT_END #define VALID_URI(u) ((u)->parent!=NULL&&(((u)->text==NULL)||((u)->text[0]=='\0')||(((u)->text[0]=='/')&&((u)->text[1]=='\0')))) /* GZip handle creation/destruction. */ static GZipMethodHandle * gzip_method_handle_new (GnomeVFSHandle *parent_handle, time_t modification_time, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode) { GZipMethodHandle *new; new = g_new (GZipMethodHandle, 1); new->parent_handle = parent_handle; new->modification_time = modification_time; new->uri = gnome_vfs_uri_ref (uri); new->open_mode = open_mode; new->buffer = NULL; new->crc = crc32 (0, Z_NULL, 0); return new; } static void gzip_method_handle_destroy (GZipMethodHandle *handle) { gnome_vfs_uri_unref (handle->uri); g_free (handle->buffer); g_free (handle); } /* GZip method initialization for compression/decompression. */ static gboolean gzip_method_handle_init_for_inflate (GZipMethodHandle *handle) { handle->zstream.zalloc = NULL; handle->zstream.zfree = NULL; handle->zstream.opaque = NULL; g_free (handle->buffer); handle->buffer = g_malloc (Z_BUFSIZE); handle->zstream.next_in = handle->buffer; handle->zstream.avail_in = 0; if (inflateInit2 (&handle->zstream, -MAX_WBITS) != Z_OK) { g_free (handle->buffer); return FALSE; } handle->last_z_result = Z_OK; handle->last_vfs_result = GNOME_VFS_OK; return TRUE; } static gboolean gzip_method_handle_init_for_deflate (GZipMethodHandle *handle) { handle->zstream.zalloc = NULL; handle->zstream.zfree = NULL; handle->zstream.opaque = NULL; g_free (handle->buffer); handle->buffer = g_malloc (Z_BUFSIZE); handle->zstream.next_out = handle->buffer; handle->zstream.avail_out = Z_BUFSIZE; /* FIXME bugzilla.eazel.com 1174: We want this to be user-configurable. */ if (deflateInit2 (&handle->zstream, Z_DEFAULT_COMPRESSION, Z_DEFLATED, -MAX_WBITS, MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY) != Z_OK) { g_free (handle->buffer); return FALSE; } handle->last_z_result = Z_OK; handle->last_vfs_result = GNOME_VFS_OK; return TRUE; } static GnomeVFSResult result_from_z_result (gint z_result) { switch (z_result) { case Z_OK: case Z_STREAM_END: /* FIXME bugzilla.eazel.com 1173: Is this right? */ return GNOME_VFS_OK; case Z_DATA_ERROR: return GNOME_VFS_ERROR_CORRUPTED_DATA; default: return GNOME_VFS_ERROR_INTERNAL; } } /* Functions to skip data in the file. */ static GnomeVFSResult skip_string (GnomeVFSHandle *handle) { GnomeVFSResult result; guchar c; GnomeVFSFileSize bytes_read; do { result = gnome_vfs_read (handle, &c, 1, &bytes_read); RETURN_IF_FAIL (result); if (bytes_read != 1) return GNOME_VFS_ERROR_WRONG_FORMAT; } while (c != 0); return GNOME_VFS_OK; } static gboolean skip (GnomeVFSHandle *handle, GnomeVFSFileSize num_bytes) { GnomeVFSResult result; guchar *tmp; GnomeVFSFileSize bytes_read; tmp = g_alloca (num_bytes); result = gnome_vfs_read (handle, tmp, num_bytes, &bytes_read); RETURN_IF_FAIL (result); if (bytes_read != num_bytes) return GNOME_VFS_ERROR_WRONG_FORMAT; return TRUE; } /* Utility function to write a gulong value. */ static GnomeVFSResult write_guint32 (GnomeVFSHandle *handle, guint32 value) { guint i; guchar buffer[4]; GnomeVFSFileSize bytes_written; for (i = 0; i < 4; i++) { buffer[i] = value & 0xff; value >>= 8; } return gnome_vfs_write (handle, buffer, 4, &bytes_written); } /* GZIP Header functions. */ static GnomeVFSResult read_gzip_header (GnomeVFSHandle *handle, time_t *modification_time) { GnomeVFSResult result; guchar buffer[GZIP_HEADER_SIZE]; GnomeVFSFileSize bytes_read; guint mode; guint flags; result = gnome_vfs_read (handle, buffer, GZIP_HEADER_SIZE, &bytes_read); RETURN_IF_FAIL (result); if (bytes_read != GZIP_HEADER_SIZE) return GNOME_VFS_ERROR_WRONG_FORMAT; if (buffer[0] != GZIP_MAGIC_1 || buffer[1] != GZIP_MAGIC_2) return GNOME_VFS_ERROR_WRONG_FORMAT; mode = buffer[2]; if (mode != 8) /* Mode: deflate */ return GNOME_VFS_ERROR_WRONG_FORMAT; flags = buffer[3]; if (flags & GZIP_FLAG_RESERVED) return GNOME_VFS_ERROR_WRONG_FORMAT; if (flags & GZIP_FLAG_EXTRA_FIELD) { guchar tmp[2]; GnomeVFSFileSize bytes_read; if (gnome_vfs_read (handle, tmp, 2, &bytes_read) || bytes_read != 2) return GNOME_VFS_ERROR_WRONG_FORMAT; if (! skip (handle, tmp[0] | (tmp[0] << 8))) return GNOME_VFS_ERROR_WRONG_FORMAT; } if (flags & GZIP_FLAG_ORIG_NAME) RETURN_IF_FAIL (skip_string (handle)); if (flags & GZIP_FLAG_COMMENT) RETURN_IF_FAIL (skip_string (handle)); if (flags & GZIP_FLAG_HEAD_CRC) RETURN_IF_FAIL (skip (handle, 2)); *modification_time = (buffer[4] | (buffer[5] << 8) | (buffer[6] << 16) | (buffer[7] << 24)); return GNOME_VFS_OK; } static GnomeVFSResult write_gzip_header (GnomeVFSHandle *handle, time_t modification_time) { GnomeVFSResult result; guchar buffer[GZIP_HEADER_SIZE]; GnomeVFSFileSize bytes_written; buffer[0] = GZIP_MAGIC_1; /* magic 1 */ buffer[1] = GZIP_MAGIC_2; /* magic 2 */ buffer[2] = Z_DEFLATED; /* method */ buffer[3] = 0; /* flags */ buffer[4] = (guchar) ((modification_time >> 0) & 0xFF); /* time 1 */ buffer[5] = (guchar) ((modification_time >> 8) & 0xFF); /* time 2 */ buffer[6] = (guchar) ((modification_time >> 16) & 0xFF); /* time 3 */ buffer[7] = (guchar) ((modification_time >> 24) & 0xFF); /* time 4 */ buffer[8] = 0; /* xflags */ buffer[9] = 3; /* OS (Unix) */ result = gnome_vfs_write (handle, buffer, GZIP_HEADER_SIZE, &bytes_written); RETURN_IF_FAIL (result); if (bytes_written != GZIP_HEADER_SIZE) return GNOME_VFS_ERROR_IO; return GNOME_VFS_OK; } static GnomeVFSResult flush_write (GZipMethodHandle *gzip_handle) { GnomeVFSHandle *parent_handle; GnomeVFSResult result; gboolean done; z_stream *zstream; gint z_result; zstream = &gzip_handle->zstream; zstream->avail_in = 0; /* (Should be zero already anyway.) */ parent_handle = gzip_handle->parent_handle; done = FALSE; z_result = Z_OK; while (z_result == Z_OK || z_result == Z_STREAM_END) { GnomeVFSFileSize bytes_written; GnomeVFSFileSize len; len = Z_BUFSIZE - zstream->avail_out; result = gnome_vfs_write (parent_handle, gzip_handle->buffer, len, &bytes_written); RETURN_IF_FAIL (result); zstream->next_out = gzip_handle->buffer; zstream->avail_out = Z_BUFSIZE; if (done) break; z_result = deflate(zstream, Z_FINISH); /* Ignore the second of two consecutive flushes. */ if (z_result == Z_BUF_ERROR) z_result = Z_OK; /* Deflate has finished flushing only when it hasn't used up all the available space in the output buffer. */ done = (zstream->avail_out != 0 || z_result == Z_STREAM_END); } result = write_guint32 (parent_handle, gzip_handle->crc); RETURN_IF_FAIL (result); result = write_guint32 (parent_handle, zstream->total_in); RETURN_IF_FAIL (result); if (z_result == Z_OK || z_result == Z_STREAM_END) return GNOME_VFS_OK; else return result_from_z_result (z_result); } /* Open. */ /* TODO: - Check that there is no subpath. */ static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, GnomeVFSContext *context) { GnomeVFSHandle *parent_handle; GnomeVFSURI *parent_uri; GnomeVFSResult result; GZipMethodHandle *gzip_handle; time_t modification_time; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); /* Check that the URI is valid. */ if (!VALID_URI(uri)) return GNOME_VFS_ERROR_INVALID_URI; parent_uri = uri->parent; if (open_mode & GNOME_VFS_OPEN_RANDOM) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = gnome_vfs_open_uri (&parent_handle, parent_uri, open_mode); RETURN_IF_FAIL (result); if (open_mode & GNOME_VFS_OPEN_READ) { result = read_gzip_header (parent_handle, &modification_time); if (result != GNOME_VFS_OK) { gnome_vfs_close (parent_handle); return result; } gzip_handle = gzip_method_handle_new (parent_handle, modification_time, uri, open_mode); if (! gzip_method_handle_init_for_inflate (gzip_handle)) { gnome_vfs_close (parent_handle); gzip_method_handle_destroy (gzip_handle); return GNOME_VFS_ERROR_INTERNAL; } } else { /* GNOME_VFS_OPEN_WRITE */ modification_time = time (NULL); result = write_gzip_header (parent_handle, modification_time); RETURN_IF_FAIL (result); /* FIXME bugzilla.eazel.com 1172: need to set modification_time */ gzip_handle = gzip_method_handle_new (parent_handle, modification_time, uri, open_mode); if (! gzip_method_handle_init_for_deflate (gzip_handle)) { gnome_vfs_close (parent_handle); gzip_method_handle_destroy (gzip_handle); return GNOME_VFS_ERROR_INTERNAL; } } *method_handle = (GnomeVFSMethodHandle *) gzip_handle; return GNOME_VFS_OK; } /* Create. */ static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); return GNOME_VFS_ERROR_NOT_SUPPORTED; /* FIXME bugzilla.eazel.com 1170 */ } /* Close. */ static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { GZipMethodHandle *gzip_handle; GnomeVFSResult result; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); gzip_handle = (GZipMethodHandle *) method_handle; if (gzip_handle->open_mode & GNOME_VFS_OPEN_WRITE) result = flush_write (gzip_handle); else result = GNOME_VFS_OK; if (result == GNOME_VFS_OK) result = gnome_vfs_close (gzip_handle->parent_handle); gzip_method_handle_destroy (gzip_handle); return result; } /* Read. */ static GnomeVFSResult fill_buffer (GZipMethodHandle *gzip_handle, GnomeVFSFileSize num_bytes) { GnomeVFSResult result; GnomeVFSFileSize count; z_stream *zstream; zstream = &gzip_handle->zstream; if (zstream->avail_in > 0) return GNOME_VFS_OK; result = gnome_vfs_read (gzip_handle->parent_handle, gzip_handle->buffer, Z_BUFSIZE, &count); if (result != GNOME_VFS_OK) { if (zstream->avail_out == num_bytes) return result; gzip_handle->last_vfs_result = result; } else { zstream->next_in = gzip_handle->buffer; zstream->avail_in = count; } return GNOME_VFS_OK; } /* FIXME bugzilla.eazel.com 1165: TODO: - Concatenated GZIP file handling. */ static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { GZipMethodHandle *gzip_handle; GnomeVFSResult result; z_stream *zstream; int z_result; guchar *crc_start; *bytes_read = 0; crc_start = buffer; gzip_handle = (GZipMethodHandle *) method_handle; zstream = &gzip_handle->zstream; if (gzip_handle->last_z_result != Z_OK) { if (gzip_handle->last_z_result == Z_STREAM_END) { *bytes_read = 0; return GNOME_VFS_ERROR_EOF; } else return result_from_z_result (gzip_handle->last_z_result); } else if (gzip_handle->last_vfs_result != GNOME_VFS_OK) { return gzip_handle->last_vfs_result; } zstream->next_out = buffer; zstream->avail_out = num_bytes; while (zstream->avail_out != 0) { result = fill_buffer (gzip_handle, num_bytes); RETURN_IF_FAIL (result); z_result = inflate (&gzip_handle->zstream, Z_NO_FLUSH); if (z_result == Z_STREAM_END) { gzip_handle->last_z_result = z_result; break; } else if (z_result != Z_OK) { /* FIXME bugzilla.eazel.com 1165: Concatenated GZIP files? */ gzip_handle->last_z_result = z_result; } if (gzip_handle->last_z_result != Z_OK && zstream->avail_out == num_bytes) return result_from_z_result (gzip_handle->last_z_result); } gzip_handle->crc = crc32 (gzip_handle->crc, crc_start, (guint) (zstream->next_out - crc_start)); *bytes_read = num_bytes - zstream->avail_out; return GNOME_VFS_OK; } /* Write. */ static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { GZipMethodHandle *gzip_handle; GnomeVFSResult result; z_stream *zstream; gint z_result; gzip_handle = (GZipMethodHandle *) method_handle; zstream = &gzip_handle->zstream; /* This cast sucks. It is not my fault, though. :-) */ zstream->next_in = (gpointer) buffer; zstream->avail_in = num_bytes; result = GNOME_VFS_OK; while (zstream->avail_in != 0 && result == GNOME_VFS_OK) { if (zstream->avail_out == 0) { GnomeVFSFileSize written; zstream->next_out = gzip_handle->buffer; result = gnome_vfs_write (gzip_handle->parent_handle, gzip_handle->buffer, Z_BUFSIZE, &written); if (result != GNOME_VFS_OK) break; zstream->avail_out += written; } z_result = deflate (zstream, Z_NO_FLUSH); result = result_from_z_result (z_result); } gzip_handle->crc = crc32 (gzip_handle->crc, buffer, num_bytes); *bytes_written = num_bytes - zstream->avail_in; return result; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSResult result; if (!VALID_URI(uri)) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_get_file_info_uri(uri->parent, file_info, options); if(result == GNOME_VFS_OK) { gint namelen = strlen(file_info->name); /* work out the name */ /* FIXME bugzilla.eazel.com 2790: handle uppercase */ if(namelen > 3 && file_info->name[namelen-1] == 'z' && file_info->name[namelen-2] == 'g' && file_info->name[namelen-3] == '.') file_info->name[namelen-3] = '\0'; /* we can't tell the size without uncompressing it */ /*file_info->valid_fields &= ~GNOME_VFS_FILE_INFO_FIELDS_SIZE;*/ /* guess the mime type of the file inside */ /* FIXME bugzilla.eazel.com 2791: guess mime based on contents */ file_info->mime_type = g_strdup(gnome_vfs_mime_type_from_name(file_info->name)); } return result; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { g_return_val_if_fail (uri != NULL, FALSE); return gnome_vfs_uri_is_local (uri->parent); } /* Init. */ GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { } gnome-vfs-2.24.4/modules/Makefile.in0000644000175000001440000010767511450333332014153 00000000000000# 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@ subdir = modules 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__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)$(modulesdir)" \ "$(DESTDIR)$(modulesconfdir)" LTLIBRARIES = $(modules_LTLIBRARIES) am__DEPENDENCIES_1 = libbzip2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libbzip2_la_OBJECTS = bzip2-method.lo libbzip2_la_OBJECTS = $(am_libbzip2_la_OBJECTS) libbzip2_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libbzip2_la_LDFLAGS) $(LDFLAGS) -o $@ libcdda_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libcdda_la_OBJECTS = cdda-method.lo cdda-cddb.lo libcdda_la_OBJECTS = $(am_libcdda_la_OBJECTS) libcdda_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libcdda_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_CDDA_TRUE@am_libcdda_la_rpath = -rpath $(modulesdir) libcomputer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libcomputer_la_OBJECTS = computer-method.lo libcomputer_la_OBJECTS = $(am_libcomputer_la_OBJECTS) libcomputer_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libcomputer_la_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_FALSE@am_libcomputer_la_rpath = -rpath $(modulesdir) libdns_sd_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libdns_sd_la_OBJECTS = dns-sd-method.lo libdns_sd_la_OBJECTS = $(am_libdns_sd_la_OBJECTS) libdns_sd_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libdns_sd_la_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_FALSE@am_libdns_sd_la_rpath = -rpath $(modulesdir) libfile_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) ../libgnomevfs/libgnomevfs-2.la am__libfile_la_SOURCES_DIST = file-method.c fstype.c file-method-acl.h \ file-method-acl.c inotify-kernel.c inotify-missing.c \ inotify-path.c inotify-sub.c inotify-helper.c inotify-diag.c @HAVE_INOTIFY_TRUE@am__objects_1 = inotify-kernel.lo \ @HAVE_INOTIFY_TRUE@ inotify-missing.lo inotify-path.lo \ @HAVE_INOTIFY_TRUE@ inotify-sub.lo inotify-helper.lo \ @HAVE_INOTIFY_TRUE@ inotify-diag.lo am__objects_2 = am_libfile_la_OBJECTS = file-method.lo fstype.lo file-method-acl.lo \ $(am__objects_1) $(am__objects_2) libfile_la_OBJECTS = $(am_libfile_la_OBJECTS) libfile_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libfile_la_LDFLAGS) $(LDFLAGS) -o $@ libftp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libftp_la_OBJECTS = ftp-method.lo libftp_la_OBJECTS = $(am_libftp_la_OBJECTS) libftp_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libftp_la_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_FALSE@am_libftp_la_rpath = -rpath $(modulesdir) libgzip_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libgzip_la_OBJECTS = gzip-method.lo libgzip_la_OBJECTS = $(am_libgzip_la_OBJECTS) libgzip_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgzip_la_LDFLAGS) $(LDFLAGS) -o $@ libhttp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ../imported/neon/libneon.la ../libgnomevfs/libgnomevfs-2.la am_libhttp_la_OBJECTS = http-neon-method.lo http-proxy.lo libhttp_la_OBJECTS = $(am_libhttp_la_OBJECTS) libhttp_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libhttp_la_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_FALSE@am_libhttp_la_rpath = -rpath $(modulesdir) libnetwork_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libnetwork_la_OBJECTS = network-method.lo libnetwork_la_OBJECTS = $(am_libnetwork_la_OBJECTS) libnetwork_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libnetwork_la_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_FALSE@am_libnetwork_la_rpath = -rpath $(modulesdir) libnntp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libnntp_la_OBJECTS = nntp-method.lo libnntp_la_OBJECTS = $(am_libnntp_la_OBJECTS) libnntp_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libnntp_la_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_FALSE@am_libnntp_la_rpath = -rpath $(modulesdir) libsftp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libsftp_la_OBJECTS = sftp-method.lo libsftp_la_OBJECTS = $(am_libsftp_la_OBJECTS) libsftp_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libsftp_la_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_FALSE@am_libsftp_la_rpath = -rpath $(modulesdir) libsmb_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libsmb_la_OBJECTS = smb-method.lo libsmb_la_OBJECTS = $(am_libsmb_la_OBJECTS) libsmb_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libsmb_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_SAMBA_TRUE@am_libsmb_la_rpath = -rpath $(modulesdir) libtar_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libtar_la_OBJECTS = tar-method.lo libtar_la_OBJECTS = $(am_libtar_la_OBJECTS) libtar_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libtar_la_LDFLAGS) $(LDFLAGS) -o $@ libvfs_test_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ ../libgnomevfs/libgnomevfs-2.la am_libvfs_test_la_OBJECTS = test-method.lo libvfs_test_la_OBJECTS = $(am_libvfs_test_la_OBJECTS) libvfs_test_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libvfs_test_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libbzip2_la_SOURCES) $(libcdda_la_SOURCES) \ $(libcomputer_la_SOURCES) $(libdns_sd_la_SOURCES) \ $(libfile_la_SOURCES) $(libftp_la_SOURCES) \ $(libgzip_la_SOURCES) $(libhttp_la_SOURCES) \ $(libnetwork_la_SOURCES) $(libnntp_la_SOURCES) \ $(libsftp_la_SOURCES) $(libsmb_la_SOURCES) \ $(libtar_la_SOURCES) $(libvfs_test_la_SOURCES) DIST_SOURCES = $(libbzip2_la_SOURCES) $(libcdda_la_SOURCES) \ $(libcomputer_la_SOURCES) $(libdns_sd_la_SOURCES) \ $(am__libfile_la_SOURCES_DIST) $(libftp_la_SOURCES) \ $(libgzip_la_SOURCES) $(libhttp_la_SOURCES) \ $(libnetwork_la_SOURCES) $(libnntp_la_SOURCES) \ $(libsftp_la_SOURCES) $(libsmb_la_SOURCES) \ $(libtar_la_SOURCES) $(libvfs_test_la_SOURCES) DATA = $(modulesconf_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_srcdir)/imported/neon \ $(MODULES_XML_GCONF_CFLAGS) \ $(MODULES_FILE_CFLAGS) \ $(HOWL_CFLAGS) \ $(AVAHI_CFLAGS) \ $(LIBEFS_CFLAGS) \ $(SAMBA_CFLAGS) \ $(GSSAPI_CFLAGS) \ $(VFS_CFLAGS) \ -D_FILE_OFFSET_BITS=64 \ -D_BSD_SOURCE \ -D_LARGEFILE64_SOURCE \ -D_POSIX_PTHREAD_SEMANTICS \ -D_REENTRANT \ -DSSH_PROGRAM=\"$(SSH_PROGRAM)\" \ -DG_DISABLE_DEPRECATED \ -DGNOME_VFS_PREFIX=\"$(prefix)\" \ -DGNOME_VFS_DATADIR=\"$(datadir)\" \ -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ -DGNOME_VFS_SYSCONFDIR=\"$(sysconfdir)\"\ -DG_LOG_DOMAIN=\"gnome-vfs-modules\" \ $(NULL) EXTRA_DIST = \ $(HTTP_NEON_SOURCES) \ default-modules.conf \ smb-module.conf \ cdda-module.conf \ ssl-modules.conf \ inotify-helper.c \ inotify-helper.h \ inotify-kernel.h \ inotify-kernel.c \ inotify-missing.h \ inotify-missing.c \ inotify-sub.h \ inotify-sub.c \ inotify-path.h \ inotify-path.c \ inotify-diag.h \ inotify-diag.c @HAVE_CDDA_FALSE@CDDA_LTLIBS = ### Module setup @HAVE_CDDA_TRUE@CDDA_LTLIBS = libcdda.la @HAVE_SAMBA_FALSE@SMB_LTLIBS = @HAVE_SAMBA_TRUE@SMB_LTLIBS = libsmb.la @OS_WIN32_FALSE@PLATFROM_SPECIFIC_LTLIBS = libcomputer.la libdns-sd.la libnetwork.la libnntp.la libsftp.la libhttp.la libftp.la @OS_WIN32_TRUE@PLATFROM_SPECIFIC_LTLIBS = module_flags = -export_dynamic -avoid-version -module -no-undefined modulesdir = $(libdir)/gnome-vfs-2.0/modules modules_LTLIBRARIES = \ $(CDDA_LTLIBS) \ libfile.la \ libvfs-test.la \ libbzip2.la \ libgzip.la \ $(SMB_LTLIBS) \ libtar.la \ $(PLATFROM_SPECIFIC_LTLIBS) \ $(NULL) # Not currently supported # libnfs.la modulesconfdir = $(sysconfdir)/gnome-vfs-2.0/modules @HAVE_CDDA_TRUE@CDDA_CONF = cdda-module.conf @HAVE_SAMBA_TRUE@SMB_CONF = smb-module.conf @HAVE_SSL_TRUE@SSL_CONF = ssl-modules.conf modulesconf_DATA = default-modules.conf $(CDDA_CONF) $(SMB_CONF) $(SSL_CONF) ### `cdda' method libcdda_la_SOURCES = \ cdda-method.c \ cdda-cddb.c \ cdda-cddb.h \ cdda-cdrom-extensions.h libcdda_la_LDFLAGS = $(module_flags) libcdda_la_LIBADD = $(MODULES_LIBS) $(CDDA_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `computer' method libcomputer_la_SOURCES = computer-method.c libcomputer_la_LDFLAGS = $(module_flags) libcomputer_la_LIBADD = $(MODULES_FILE_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `dns-sd' method libdns_sd_la_SOURCES = dns-sd-method.c libdns_sd_la_LDFLAGS = $(module_flags) libdns_sd_la_LIBADD = $(MODULES_LIBS) $(HOWL_LIBS) $(AVAHI_LIBS) ../libgnomevfs/libgnomevfs-2.la @HAVE_INOTIFY_FALSE@FILE_ADD_SOURCES = ### `file' method @HAVE_INOTIFY_TRUE@FILE_ADD_SOURCES = inotify-kernel.c inotify-missing.c inotify-path.c inotify-sub.c inotify-helper.c inotify-diag.c libfile_la_SOURCES = \ file-method.c \ fstype.c \ file-method-acl.h \ file-method-acl.c \ $(FILE_ADD_SOURCES) \ $(NULL) libfile_la_LDFLAGS = $(module_flags) libfile_la_LIBADD = $(ACL_LIBS) $(FAM_LIBS) $(MODULES_FILE_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `network' method libnetwork_la_SOURCES = network-method.c libnetwork_la_LDFLAGS = $(module_flags) libnetwork_la_LIBADD = $(MODULES_FILE_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `nntp' method libnntp_la_SOURCES = nntp-method.c nntp-method.h libnntp_la_LDFLAGS = $(module_flags) libnntp_la_LIBADD = $(MODULES_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `smb' method libsmb_la_SOURCES = smb-method.c libsmb_la_LDFLAGS = $(module_flags) libsmb_la_LIBADD = $(SAMBA_LIBS) $(MODULES_GCONF_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `sftp' method libsftp_la_SOURCES = sftp-method.c sftp.h libsftp_la_LDFLAGS = $(module_flags) libsftp_la_LIBADD = $(MODULES_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `test' method libvfs_test_la_SOURCES = test-method.c libvfs_test_la_LDFLAGS = $(module_flags) libvfs_test_la_LIBADD = $(MODULES_XML_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `gzip' method libgzip_la_SOURCES = gzip-method.c libgzip_la_LDFLAGS = $(module_flags) libgzip_la_LIBADD = $(MODULES_LIBS) -lz ../libgnomevfs/libgnomevfs-2.la ### `bzip2' method libbzip2_la_SOURCES = bzip2-method.c libbzip2_la_LDFLAGS = $(module_flags) libbzip2_la_LIBADD = $(MODULES_LIBS) $(BZ2_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `ftp' method libftp_la_SOURCES = ftp-method.c libftp_la_LDFLAGS = $(module_flags) libftp_la_LIBADD = $(MODULES_GCONF_LIBS) $(GSSAPI_LIBS) ../libgnomevfs/libgnomevfs-2.la ### `nfs' method #libnfs_la_SOURCES = \ # nfs-method.c \ # nfs-method.h \ # nfs-method_mount_xdr.c \ # nfs-method_nfs_prot_xdr.c \ # nfs-method_mount.h \ # nfs-method_nfs_prot.h #libnfs_la_LDFLAGS = $(module_flags) ### `http' method libhttp_la_SOURCES = \ http-neon-method.c \ http-proxy.h \ http-proxy.c libhttp_la_LDFLAGS = $(module_flags) libhttp_la_LIBADD = \ $(MODULES_GCONF_LIBS) \ $(OPENSSL_LIBS) \ ../imported/neon/libneon.la \ ../libgnomevfs/libgnomevfs-2.la libtar_la_SOURCES = tar-method.c tarpet.h libtar_la_LDFLAGS = $(module_flags) libtar_la_LIBADD = $(MODULES_LIBS) ../libgnomevfs/libgnomevfs-2.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(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 modules/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/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): install-modulesLTLIBRARIES: $(modules_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(modulesdir)" || $(MKDIR_P) "$(DESTDIR)$(modulesdir)" @list='$(modules_LTLIBRARIES)'; test -n "$(modulesdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(modulesdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(modulesdir)"; \ } uninstall-modulesLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(modules_LTLIBRARIES)'; test -n "$(modulesdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(modulesdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(modulesdir)/$$f"; \ done clean-modulesLTLIBRARIES: -test -z "$(modules_LTLIBRARIES)" || rm -f $(modules_LTLIBRARIES) @list='$(modules_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 libbzip2.la: $(libbzip2_la_OBJECTS) $(libbzip2_la_DEPENDENCIES) $(libbzip2_la_LINK) -rpath $(modulesdir) $(libbzip2_la_OBJECTS) $(libbzip2_la_LIBADD) $(LIBS) libcdda.la: $(libcdda_la_OBJECTS) $(libcdda_la_DEPENDENCIES) $(libcdda_la_LINK) $(am_libcdda_la_rpath) $(libcdda_la_OBJECTS) $(libcdda_la_LIBADD) $(LIBS) libcomputer.la: $(libcomputer_la_OBJECTS) $(libcomputer_la_DEPENDENCIES) $(libcomputer_la_LINK) $(am_libcomputer_la_rpath) $(libcomputer_la_OBJECTS) $(libcomputer_la_LIBADD) $(LIBS) libdns-sd.la: $(libdns_sd_la_OBJECTS) $(libdns_sd_la_DEPENDENCIES) $(libdns_sd_la_LINK) $(am_libdns_sd_la_rpath) $(libdns_sd_la_OBJECTS) $(libdns_sd_la_LIBADD) $(LIBS) libfile.la: $(libfile_la_OBJECTS) $(libfile_la_DEPENDENCIES) $(libfile_la_LINK) -rpath $(modulesdir) $(libfile_la_OBJECTS) $(libfile_la_LIBADD) $(LIBS) libftp.la: $(libftp_la_OBJECTS) $(libftp_la_DEPENDENCIES) $(libftp_la_LINK) $(am_libftp_la_rpath) $(libftp_la_OBJECTS) $(libftp_la_LIBADD) $(LIBS) libgzip.la: $(libgzip_la_OBJECTS) $(libgzip_la_DEPENDENCIES) $(libgzip_la_LINK) -rpath $(modulesdir) $(libgzip_la_OBJECTS) $(libgzip_la_LIBADD) $(LIBS) libhttp.la: $(libhttp_la_OBJECTS) $(libhttp_la_DEPENDENCIES) $(libhttp_la_LINK) $(am_libhttp_la_rpath) $(libhttp_la_OBJECTS) $(libhttp_la_LIBADD) $(LIBS) libnetwork.la: $(libnetwork_la_OBJECTS) $(libnetwork_la_DEPENDENCIES) $(libnetwork_la_LINK) $(am_libnetwork_la_rpath) $(libnetwork_la_OBJECTS) $(libnetwork_la_LIBADD) $(LIBS) libnntp.la: $(libnntp_la_OBJECTS) $(libnntp_la_DEPENDENCIES) $(libnntp_la_LINK) $(am_libnntp_la_rpath) $(libnntp_la_OBJECTS) $(libnntp_la_LIBADD) $(LIBS) libsftp.la: $(libsftp_la_OBJECTS) $(libsftp_la_DEPENDENCIES) $(libsftp_la_LINK) $(am_libsftp_la_rpath) $(libsftp_la_OBJECTS) $(libsftp_la_LIBADD) $(LIBS) libsmb.la: $(libsmb_la_OBJECTS) $(libsmb_la_DEPENDENCIES) $(libsmb_la_LINK) $(am_libsmb_la_rpath) $(libsmb_la_OBJECTS) $(libsmb_la_LIBADD) $(LIBS) libtar.la: $(libtar_la_OBJECTS) $(libtar_la_DEPENDENCIES) $(libtar_la_LINK) -rpath $(modulesdir) $(libtar_la_OBJECTS) $(libtar_la_LIBADD) $(LIBS) libvfs-test.la: $(libvfs_test_la_OBJECTS) $(libvfs_test_la_DEPENDENCIES) $(libvfs_test_la_LINK) -rpath $(modulesdir) $(libvfs_test_la_OBJECTS) $(libvfs_test_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bzip2-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdda-cddb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cdda-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/computer-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dns-sd-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-method-acl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstype.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftp-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gzip-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http-neon-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http-proxy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify-diag.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify-helper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify-kernel.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify-missing.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify-path.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inotify-sub.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/network-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nntp-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sftp-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smb-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tar-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-method.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-modulesconfDATA: $(modulesconf_DATA) @$(NORMAL_INSTALL) test -z "$(modulesconfdir)" || $(MKDIR_P) "$(DESTDIR)$(modulesconfdir)" @list='$(modulesconf_DATA)'; test -n "$(modulesconfdir)" || 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)$(modulesconfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(modulesconfdir)" || exit $$?; \ done uninstall-modulesconfDATA: @$(NORMAL_UNINSTALL) @list='$(modulesconf_DATA)'; test -n "$(modulesconfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(modulesconfdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(modulesconfdir)" && 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 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(modulesdir)" "$(DESTDIR)$(modulesconfdir)"; 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 clean-modulesLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-modulesLTLIBRARIES install-modulesconfDATA 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 -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-modulesLTLIBRARIES uninstall-modulesconfDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-modulesLTLIBRARIES 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-html \ install-html-am install-info install-info-am install-man \ install-modulesLTLIBRARIES install-modulesconfDATA 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-modulesLTLIBRARIES \ uninstall-modulesconfDATA $(NULL) #if HAVE_LIBEFS #vefsmoduledir = $(modulesdir) #vefsmodule_LTLIBRARIES = libvefs.la # #libvefs_la_SOURCES = \ # efs-method.c #libvefs_la_LIBADD = $(LIBEFS_LIBS) $(MODULES_LIBS) #endif # 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: gnome-vfs-2.24.4/modules/inotify-missing.c0000644000175000001440000001035211334251016015362 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* inotify-helper.c - Gnome VFS Monitor based on inotify. Copyright (C) 2005 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: John McCutchan */ #include "config.h" #include #include #include #include "inotify-missing.h" #include "inotify-path.h" #define SCAN_MISSING_TIME 4000 /* 1/4 Hz */ static gboolean im_debug_enabled = FALSE; #define IM_W if (im_debug_enabled) g_warning /* We put ih_sub_t's that are missing on this list */ static GList *missing_sub_list = NULL; static gboolean im_scan_missing (gpointer user_data); static gboolean scan_missing_running = FALSE; static void (*missing_cb)(ih_sub_t *sub) = NULL; G_LOCK_EXTERN (inotify_lock); /* inotify_lock must be held before calling */ void im_startup (void (*callback)(ih_sub_t *sub)) { static gboolean initialized = FALSE; if (!initialized) { initialized = TRUE; missing_cb = callback; } } /* inotify_lock must be held before calling */ void im_add (ih_sub_t *sub) { if (g_list_find (missing_sub_list, sub)) { IM_W("asked to add %s to missing list but it's already on the list!\n", sub->pathname); return; } IM_W("adding %s to missing list\n", sub->dirname); missing_sub_list = g_list_prepend (missing_sub_list, sub); /* If the timeout is turned off, we turn it back on */ if (!scan_missing_running) { scan_missing_running = TRUE; g_timeout_add (SCAN_MISSING_TIME, im_scan_missing, NULL); } } /* inotify_lock must be held before calling */ void im_rm (ih_sub_t *sub) { GList *link; link = g_list_find (missing_sub_list, sub); if (!link) { IM_W("asked to remove %s from missing list but it isn't on the list!\n", sub->pathname); return; } IM_W("removing %s from missing list\n", sub->dirname); missing_sub_list = g_list_remove_link (missing_sub_list, link); g_list_free_1 (link); } /* Scans the list of missing subscriptions checking if they * are available yet. */ static gboolean im_scan_missing (gpointer user_data) { GList *nolonger_missing = NULL; GList *l; G_LOCK(inotify_lock); IM_W("scanning missing list with %d items\n", g_list_length (missing_sub_list)); for (l = missing_sub_list; l; l = l->next) { ih_sub_t *sub = l->data; gboolean not_m = FALSE; IM_W("checking %p\n", sub); g_assert (sub); g_assert (sub->dirname); not_m = ip_start_watching (sub); if (not_m) { missing_cb (sub); IM_W("removed %s from missing list\n", sub->dirname); /* We have to build a list of list nodes to remove from the * missing_sub_list. We do the removal outside of this loop. */ nolonger_missing = g_list_prepend (nolonger_missing, l); } } for (l = nolonger_missing; l ; l = l->next) { GList *llink = l->data; missing_sub_list = g_list_remove_link (missing_sub_list, llink); g_list_free_1 (llink); } g_list_free (nolonger_missing); /* If the missing list is now empty, we disable the timeout */ if (missing_sub_list == NULL) { scan_missing_running = FALSE; G_UNLOCK(inotify_lock); return FALSE; } else { G_UNLOCK(inotify_lock); return TRUE; } } /* inotify_lock must be held */ void im_diag_dump (GIOChannel *ioc) { GList *l; g_io_channel_write_chars (ioc, "missing list:\n", -1, NULL, NULL); for (l = missing_sub_list; l; l = l->next) { ih_sub_t *sub = l->data; g_io_channel_write_chars (ioc, sub->pathname, -1, NULL, NULL); g_io_channel_write_chars (ioc, "\n", -1, NULL, NULL); } } gnome-vfs-2.24.4/modules/cdda-module.conf0000644000175000001440000000001311334251016015104 00000000000000cdda: cdda gnome-vfs-2.24.4/modules/dns-sd-method.c0000644000175000001440000006635711334251016014720 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* dnssd-method.c - dns-sd browsing Copyright (C) 2004 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Alexander Larsson */ #include #include #include #include #include #ifdef HAVE_AVAHI #include #include #include #include #include #include #endif #ifdef HAVE_HOWL /* Need to work around howl exporting its config file... */ #undef PACKAGE #undef VERSION #include #endif #include #include #include #include #include #include #include #include #define BROWSE_TIMEOUT_MSEC 5000 #define RESOLVE_TIMEOUT_MSEC 5000 #define LOCAL_SYNC_BROWSE_DELAY_MSEC 200 static struct { char *type; char *method; char *icon; gpointer handle; } dns_sd_types[] = { {"_ftp._tcp", "ftp", "gnome-fs-ftp"}, {"_webdav._tcp", "dav", "gnome-fs-share"}, {"_webdavs._tcp", "davs", "gnome-fs-share"}, {"_sftp-ssh._tcp", "sftp", "gnome-fs-ssh"}, }; #if defined (HAVE_HOWL) || defined (HAVE_AVAHI) G_LOCK_DEFINE_STATIC (local); static gboolean started_local = FALSE; static GList *local_files = NULL; static GList *local_monitors = NULL; #endif /* HAVE_HOWL || HAVE_AVAHI */ typedef struct { char *data; int len; int pos; } FileHandle; static FileHandle * file_handle_new (char *data) { FileHandle *result; result = g_new (FileHandle, 1); result->data = g_strdup (data); result->len = strlen (data); result->pos = 0; return result; } static void file_handle_destroy (FileHandle *handle) { g_free (handle->data); g_free (handle); } static char * get_data_for_link (const char *uri, const char *display_name, const char *icon) { char *data; data = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=FSDevice\n" "Icon=%s\n" "URL=%s\n", display_name, icon, uri); return data; } static gboolean decode_filename (const char *filename, char **service, char **type, char **domain) { const char *p; char *end; GString *string; *service = NULL; *type = NULL; *domain = NULL; string = g_string_new (NULL); p = filename; while (*p && *p != '.') { if (*p == '\\') { p++; switch (*p) { case 's': g_string_append_c (string, '/'); break; case '\\': g_string_append_c (string, '\\'); break; case '.': g_string_append_c (string, '.'); break; default: g_string_free (string, TRUE); return FALSE; } } else { g_string_append_c (string, *p); } p++; } *service = g_string_free (string, FALSE); if (*p == 0) goto error; p++; end = strchr (p, '.'); if (end == NULL) goto error; end = strchr (end+1, '.'); if (end == NULL) goto error; *end = 0; *type = g_strdup (p); p = end + 1; if (*p == 0 || *p == '.') goto error; *domain = g_strdup (p); return TRUE; error: g_free (*service); g_free (*type); return FALSE; } static char * encode_filename (const char *service, const char *type, const char *domain) { GString *string; const char *p; string = g_string_new (NULL); p = service; while (*p) { if (*p == '\\') g_string_append (string, "\\\\"); else if (*p == '.') g_string_append (string, "\\."); else if (*p == '/') g_string_append (string, "\\s"); else g_string_append_c (string, *p); p++; } g_string_append_c (string, '.'); g_string_append (string, type); g_string_append_c (string, '.'); g_string_append (string, domain); return g_string_free (string, FALSE); } #if defined (HAVE_HOWL) || defined (HAVE_AVAHI) static void call_monitors (gboolean add, char *filename) { GnomeVFSURI *info_uri, *base_uri; GList *l; if (local_monitors == NULL) return; base_uri = gnome_vfs_uri_new ("dns-sd://local/"); info_uri = gnome_vfs_uri_append_file_name (base_uri, filename); gnome_vfs_uri_unref (base_uri); /* This queues an idle, so there are no reentrancy issues */ for (l = local_monitors; l != NULL; l = l->next) { gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)l->data, info_uri, add?GNOME_VFS_MONITOR_EVENT_CREATED:GNOME_VFS_MONITOR_EVENT_DELETED); } gnome_vfs_uri_unref (info_uri); } static void local_browse (gboolean add, const char *name, const char *type_in, const char *domain_in) { char *filename; GList *l; char *type; char *domain; int len; /* We don't want last dots in the domain or type */ type = g_strdup (type_in); domain = g_strdup (domain_in); len = strlen (type); if (len > 0 && type[len-1] == '.') type[len-1] = 0; len = strlen (domain); if (len > 0 && domain[len-1] == '.') domain[len-1] = 0; filename = encode_filename (name, type, domain); g_free (type); g_free (domain); if (filename == NULL) return; for (l = local_files; l != NULL; l = l->next) { if (strcmp (l->data, filename) == 0) { if (!add) { g_free (l->data); local_files = g_list_delete_link (local_files, l); call_monitors (FALSE, filename); } g_free (filename); return; } } if (add) { local_files = g_list_prepend (local_files, filename); call_monitors (TRUE, filename); } else { g_free (filename); } } static void local_browse_callback (GnomeVFSDNSSDBrowseHandle *handle, GnomeVFSDNSSDServiceStatus status, const GnomeVFSDNSSDService *service, gpointer callback_data) { G_LOCK (local); local_browse (status == GNOME_VFS_DNS_SD_SERVICE_ADDED, service->name, service->type, service->domain); G_UNLOCK (local); } #endif /* HAVE_HOWL || HAVE_AVAHI */ #ifdef HAVE_AVAHI static void avahi_client_callback (AvahiClient *client, AvahiClientState state, void *user_data) { AvahiSimplePoll *poll; poll = user_data; if (state == AVAHI_CLIENT_FAILURE) { avahi_simple_poll_quit (poll); } } static void local_browse_callback_sync (AvahiServiceBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name, const char *type, const char *domain, AvahiLookupResultFlags flags, void *user_data) { AvahiSimplePoll *poll = user_data; if (event == AVAHI_BROWSER_NEW) local_browse (TRUE, name, type, domain); else if (event == AVAHI_BROWSER_REMOVE) local_browse (FALSE, name, type, domain); else if (event == AVAHI_BROWSER_ALL_FOR_NOW) avahi_simple_poll_quit (poll); } static void stop_poll_timeout (AvahiTimeout *timeout, void *user_data) { AvahiSimplePoll *poll = user_data; avahi_simple_poll_quit (poll); } static void init_local (void) { int i; GnomeVFSResult res; if (!started_local) { AvahiSimplePoll *simple_poll; const AvahiPoll *poll; AvahiClient *client = NULL; AvahiServiceBrowser **sb; struct timeval tv; int error; started_local = TRUE; for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) { GnomeVFSDNSSDBrowseHandle *handle; res = gnome_vfs_dns_sd_browse (&handle, "local", dns_sd_types[i].type, local_browse_callback, NULL, NULL); if (res == GNOME_VFS_OK) { dns_sd_types[i].handle = handle; } } simple_poll = avahi_simple_poll_new (); if (simple_poll == NULL) { g_warning ("Failed to create simple poll object"); return; } poll = avahi_simple_poll_get (simple_poll); client = avahi_client_new (poll, 0, avahi_client_callback, simple_poll, &error); /* Check wether creating the client object succeeded */ if (client == NULL) { g_warning ("Failed to create client: %s\n", avahi_strerror (error)); avahi_simple_poll_free (simple_poll); return; } sb = g_new0 (AvahiServiceBrowser *, G_N_ELEMENTS (dns_sd_types)); for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) { sb[i] = avahi_service_browser_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, dns_sd_types[i].type, "local", AVAHI_LOOKUP_USE_MULTICAST, local_browse_callback_sync, simple_poll); } avahi_elapse_time (&tv, LOCAL_SYNC_BROWSE_DELAY_MSEC, 0); poll->timeout_new (poll, &tv, stop_poll_timeout, (void *)simple_poll); /* Run the main loop util reply or timeout */ for (;;) if (avahi_simple_poll_iterate (simple_poll, -1) != 0) break; for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) { if (sb[i] != NULL) { avahi_service_browser_free (sb[i]); } } avahi_client_free (client); avahi_simple_poll_free (simple_poll); } } #endif /* HAVE_AVAHI */ #ifdef HAVE_HOWL static sw_result local_browse_callback_sync (sw_discovery discovery, sw_discovery_oid id, sw_discovery_browse_status status, sw_uint32 interface_index, sw_const_string name, sw_const_string type, sw_const_string domain, sw_opaque extra) { if (status == SW_DISCOVERY_BROWSE_ADD_SERVICE) local_browse (TRUE, name, type, domain); else if (status == SW_DISCOVERY_BROWSE_REMOVE_SERVICE) local_browse (FALSE, name, type, domain); return SW_OKAY; } static void init_local (void) { int i; GnomeVFSResult res; if (!started_local) { sw_discovery session; sw_salt salt; sw_ulong timeout; struct timeval end_tv, tv; sw_discovery_oid *sync_handles; int timeout_msec; sw_result swres; started_local = TRUE; for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) { GnomeVFSDNSSDBrowseHandle *handle; res = gnome_vfs_dns_sd_browse (&handle, "local", dns_sd_types[i].type, local_browse_callback, NULL, NULL); if (res == GNOME_VFS_OK) { dns_sd_types[i].handle = handle; } } if ((swres = sw_discovery_init (&session)) != SW_OKAY) { g_warning ("dns-sd: howl init failed: %d\n", (int)swres); return; } if (sw_discovery_salt (session, &salt) != SW_OKAY) { g_warning ("dns-sd: couldn't get salt\n"); sw_discovery_fina (session); return; } sync_handles = g_new0 (sw_discovery_oid, G_N_ELEMENTS (dns_sd_types)); for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) { sw_discovery_browse (session, 0, dns_sd_types[i].type, "local", local_browse_callback_sync, NULL, &(sync_handles[i])); } gettimeofday (&end_tv, NULL); tv = end_tv; timeout_msec = LOCAL_SYNC_BROWSE_DELAY_MSEC; end_tv.tv_sec += timeout_msec / 1000; end_tv.tv_usec += (timeout_msec % 1000) * 1000; end_tv.tv_sec += end_tv.tv_usec / 1000000; end_tv.tv_usec %= 1000000; do { timeout = timeout_msec; sw_salt_step (salt, &timeout); gettimeofday (&tv, NULL); timeout_msec = (end_tv.tv_sec - tv.tv_sec) * 1000 + (end_tv.tv_usec - tv.tv_usec) / 1000; } while (timeout_msec > 0); for (i = 0; i < G_N_ELEMENTS (dns_sd_types); i++) { if (sync_handles[i] != 0) { sw_discovery_cancel (session, sync_handles[i]); } } sw_discovery_fina (session); } } #endif /* HAVE_HOWL */ static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { FileHandle *file_handle; char *name; char *type; char *domain; char *filename; char *link_uri; char *host; char *data; char *path, *s, *user, *pwd, *user_and_pwd; int port; int i; GnomeVFSResult res; GHashTable *text; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); if (mode & GNOME_VFS_OPEN_WRITE) { return GNOME_VFS_ERROR_NOT_PERMITTED; } if (strcmp (uri->text, "/") == 0) { return GNOME_VFS_ERROR_IS_DIRECTORY; } if (gnome_vfs_uri_get_host_name (uri) == NULL) { return GNOME_VFS_ERROR_INVALID_HOST_NAME; } filename = gnome_vfs_unescape_string (uri->text, G_DIR_SEPARATOR_S); if (filename[0] != '/' || !decode_filename (filename+1, &name, &type, &domain)) { g_free (filename); return GNOME_VFS_ERROR_NOT_FOUND; } g_free (filename); for (i=0; i < G_N_ELEMENTS (dns_sd_types); i++) { if (strcmp (type, dns_sd_types[i].type) == 0) { break; } } if (i == G_N_ELEMENTS (dns_sd_types)) { g_free (name); g_free (type); g_free (domain); return GNOME_VFS_ERROR_NOT_FOUND; } res = gnome_vfs_dns_sd_resolve_sync (name, type, domain, RESOLVE_TIMEOUT_MSEC, &host, &port, &text, NULL, NULL); g_free (type); g_free (domain); if (res != GNOME_VFS_OK) { g_free (name); return GNOME_VFS_ERROR_NOT_FOUND; } path = "/"; user_and_pwd = NULL; if (text != NULL) { s = g_hash_table_lookup (text, "path"); if (s != NULL) path = s; user = g_hash_table_lookup (text, "u"); pwd = g_hash_table_lookup (text, "p"); if (user != NULL) { if (pwd != NULL) { user_and_pwd = g_strdup_printf ("%s:%s@", user, pwd); } else { user_and_pwd = g_strdup_printf ("%s@", user); } } } if (strchr (host, ':')) /* must be an ipv6 address, follow rfc2732 */ link_uri = g_strdup_printf ("%s://%s[%s]:%d%s", dns_sd_types[i].method, user_and_pwd?user_and_pwd:"", host, port, path); else link_uri = g_strdup_printf ("%s://%s%s:%d%s", dns_sd_types[i].method, user_and_pwd?user_and_pwd:"", host, port, path); g_free (user_and_pwd); /* TODO: Escape / in name */ data = get_data_for_link (link_uri, name, dns_sd_types[i].icon); g_free (name); if (text) g_hash_table_destroy (text); file_handle = file_handle_new (data); g_free (data); *method_handle = (GnomeVFSMethodHandle *) file_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *file_handle; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; file_handle_destroy (file_handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *file_handle; int read_len; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; *bytes_read = 0; if (file_handle->pos >= file_handle->len) { return GNOME_VFS_ERROR_EOF; } read_len = MIN (num_bytes, file_handle->len - file_handle->pos); memcpy (buffer, file_handle->data + file_handle->pos, read_len); *bytes_read = read_len; file_handle->pos += read_len; return GNOME_VFS_OK; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; switch (whence) { case GNOME_VFS_SEEK_START: file_handle->pos = offset; break; case GNOME_VFS_SEEK_CURRENT: file_handle->pos += offset; break; case GNOME_VFS_SEEK_END: file_handle->pos = file_handle->len + offset; break; } if (file_handle->pos < 0) { file_handle->pos = 0; } if (file_handle->pos > file_handle->len) { file_handle->pos = file_handle->len; } return GNOME_VFS_OK; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; *offset_return = file_handle->pos; return GNOME_VFS_OK; } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_truncate (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize where, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } typedef struct { GnomeVFSFileInfoOptions options; GList *filenames; } DirectoryHandle; static DirectoryHandle * directory_handle_new (GnomeVFSFileInfoOptions options) { DirectoryHandle *result; result = g_new (DirectoryHandle, 1); result->options = options; result->filenames = NULL; return result; } static void directory_handle_destroy (DirectoryHandle *dir_handle) { g_list_foreach (dir_handle->filenames, (GFunc)g_free, NULL); g_list_free (dir_handle->filenames); g_free (dir_handle); } static void directory_handle_add_filename (DirectoryHandle *dir_handle, char *file) { if (file != NULL) { dir_handle->filenames = g_list_prepend (dir_handle->filenames, g_strdup (file)); } } #if defined (HAVE_HOWL) || defined (HAVE_AVAHI) static void directory_handle_add_filenames (DirectoryHandle *dir_handle, GList *files) { while (files != NULL) { directory_handle_add_filename (dir_handle, files->data); files = files->next; } } #endif /* HAVE_HOWL || HAVE_AVAHI */ static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { DirectoryHandle *dir_handle; const char *domain; int i; GnomeVFSResult res; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); if (strcmp (uri->text, "") != 0 && strcmp (uri->text, "/") != 0) { return GNOME_VFS_ERROR_NOT_A_DIRECTORY; } domain = gnome_vfs_uri_get_host_name (uri); if (domain == NULL) { return GNOME_VFS_ERROR_INVALID_HOST_NAME; } dir_handle = directory_handle_new (options); if (strcmp (domain, "local") == 0) { #if defined (HAVE_HOWL) || defined (HAVE_AVAHI) G_LOCK (local); init_local (); directory_handle_add_filenames (dir_handle, local_files); G_UNLOCK (local); #endif /* HAVE_HOWL || HAVE_AVAHI */ } else { for (i=0; i < G_N_ELEMENTS (dns_sd_types); i++) { int n_services; GnomeVFSDNSSDService *services; int j; char *filename; res = gnome_vfs_dns_sd_browse_sync (domain, dns_sd_types[i].type, BROWSE_TIMEOUT_MSEC, &n_services, &services); if (res == GNOME_VFS_OK) { for (j = 0; j < n_services; j++) { filename = encode_filename (services[j].name, services[j].type, services[j].domain); if (filename) directory_handle_add_filename (dir_handle, filename); g_free (services[j].name); g_free (services[j].type); g_free (services[j].domain); } g_free (services); } } } *method_handle = (GnomeVFSMethodHandle *) dir_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { DirectoryHandle *dir_handle; dir_handle = (DirectoryHandle *) method_handle; directory_handle_destroy (dir_handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { DirectoryHandle *handle; GList *entry; handle = (DirectoryHandle *) method_handle; if (handle->filenames == NULL) { return GNOME_VFS_ERROR_EOF; } entry = handle->filenames; handle->filenames = g_list_remove_link (handle->filenames, entry); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; file_info->name = g_strdup (entry->data); g_free (entry->data); g_list_free_1 (entry); file_info->mime_type = g_strdup ("application/x-desktop"); file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; if (strcmp (uri->text, "") == 0 || strcmp (uri->text, "/") == 0) { file_info->name = g_strdup ("/"); file_info->mime_type = g_strdup ("x-directory/normal"); file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; } else { file_info->name = gnome_vfs_uri_extract_short_name (uri); file_info->mime_type = g_strdup ("application/x-desktop"); file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; } file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; file_info->mime_type = g_strdup ("application/x-desktop"); file_info->size = file_handle->len; file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_SIZE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; return GNOME_VFS_OK; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return TRUE; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_find_directory (GnomeVFSMethod *method, GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_create_symbolic_link (GnomeVFSMethod *method, GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } /* When checking whether two locations are on the same file system, we are doing this to determine whether we can recursively move or do other sorts of transfers. When a symbolic link is the "source", its location is the location of the link file, because we want to know about transferring the link, whereas for symbolic links that are "targets", we use the location of the object being pointed to, because that is where we will be moving/copying to. */ static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, gboolean *same_fs_return, GnomeVFSContext *context) { return TRUE; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_file_control (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, const char *operation, gpointer operation_data, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { const char *domain; domain = gnome_vfs_uri_get_host_name (uri); if (domain == NULL) { return GNOME_VFS_ERROR_INVALID_HOST_NAME; } if (strcmp (domain, "local") != 0) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } #if defined (HAVE_HOWL) || defined (HAVE_AVAHI) if (strcmp (uri->text, "") == 0 || strcmp (uri->text, "/") == 0) { int *handle; G_LOCK (local); init_local (); handle = g_new0 (int, 1); local_monitors = g_list_prepend (local_monitors, handle); G_UNLOCK (local); *method_handle_return = (GnomeVFSMethodHandle *)handle; return GNOME_VFS_OK; } else #endif /* HAVE_HOWL || HAVE_AVAHI */ return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { #if defined (HAVE_HOWL) || defined (HAVE_AVAHI) G_LOCK (local); local_monitors = g_list_remove (local_monitors, method_handle); g_free (method_handle); G_UNLOCK (local); return GNOME_VFS_OK; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif /* HAVE_HOWL || HAVE_AVAHI */ } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, do_truncate, do_find_directory, do_create_symbolic_link, do_monitor_add, do_monitor_cancel, do_file_control }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { } gnome-vfs-2.24.4/modules/nntp-method.c0000644000175000001440000016740411334251016014502 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */ /* nntp-method.c - VFS module for NNTP Copyright (C) 2001 Andy Hertzfeld The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. based on Ian McKellar's (yakk@yakk.net) ftp method for gnome-vfs presents a high level, file-oriented view of a newsgroup, integrating file fragments and organizing them in folders Author: Andy Hertzfeld December 2001 */ #ifdef HAVE_CONFIG_H #include #endif #include /* for atoi */ #include /* for sscanf */ #include #include #include #include #include #ifdef HAVE_GCONF #include #endif #include #include #include #include #include #include #include #include #include #include #include #include "nntp-method.h" #define MAX_RESPONSE_SIZE 4096 #define READ_BUFFER_SIZE 16384 /* these parameters should eventually be fetched from gconf */ #define MAX_MESSAGE_COUNT 2400 #define MIN_FILE_SIZE_THRESHOLD 4095 /* macros for the checking of NNTP response codes */ #define IS_100(X) ((X) >= 100 && (X) < 200) #define IS_200(X) ((X) >= 200 && (X) < 300) #define IS_300(X) ((X) >= 300 && (X) < 400) #define IS_400(X) ((X) >= 400 && (X) < 500) #define IS_500(X) ((X) >= 500 && (X) < 600) static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context); static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri); static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context); guint nntp_connection_uri_hash (gconstpointer c); int nntp_connection_uri_equal (gconstpointer c, gconstpointer d); static GnomeVFSResult nntp_connection_acquire (GnomeVFSURI *uri, NNTPConnection **connection, GnomeVFSContext *context); static void nntp_connection_release (NNTPConnection *conn); static GList* assemble_files_from_overview (NNTPConnection *conn, char *command); static const char *anon_user = "anonymous"; static const char *anon_pass = "nobody@gnome.org"; static const int nntp_port = 119; /* A GHashTable of GLists of NNTPConnections */ static GHashTable *spare_connections = NULL; G_LOCK_DEFINE_STATIC (spare_connections); static int total_connections = 0; static int allocated_connections = 0; /* single element cache of file objects for a given newsgroup */ static char* current_newsgroup_name = NULL; static GList* current_newsgroup_files = NULL; static GnomeVFSResult nntp_response_to_vfs_result (NNTPConnection *conn) { int response = conn->response_code; switch (response) { case 421: case 426: return GNOME_VFS_ERROR_CANCELLED; case 425: return GNOME_VFS_ERROR_ACCESS_DENIED; case 530: case 331: case 332: case 532: return GNOME_VFS_ERROR_LOGIN_FAILED; case 450: case 451: case 550: case 551: return GNOME_VFS_ERROR_NOT_FOUND; case 452: case 552: return GNOME_VFS_ERROR_NO_SPACE; case 553: return GNOME_VFS_ERROR_BAD_FILE; } /* is this the correct interpretation of this error? */ if (IS_100 (response)) return GNOME_VFS_OK; if (IS_200 (response)) return GNOME_VFS_OK; /* is this the correct interpretation of this error? */ if (IS_300 (response)) return GNOME_VFS_OK; if (IS_400 (response)) return GNOME_VFS_ERROR_GENERIC; if (IS_500 (response)) return GNOME_VFS_ERROR_INTERNAL; return GNOME_VFS_ERROR_GENERIC; } static GnomeVFSResult read_response_line(NNTPConnection *conn, char **line) { GnomeVFSFileSize bytes = MAX_RESPONSE_SIZE, bytes_read; char *ptr, *buf = g_malloc (MAX_RESPONSE_SIZE+1); int line_length; GnomeVFSResult result = GNOME_VFS_OK; while (!strstr (conn->response_buffer->str, "\r\n")) { /* we don't have a full line. Lets read some... */ bytes_read = 0; result = gnome_vfs_socket_buffer_read (conn->socketbuf, buf, bytes, &bytes_read, NULL); buf[bytes_read] = '\0'; conn->response_buffer = g_string_append (conn->response_buffer, buf); if (result != GNOME_VFS_OK) { g_warning ("Error `%s' during read\n", gnome_vfs_result_to_string(result)); g_free (buf); return result; } } g_free (buf); ptr = strstr (conn->response_buffer->str, "\r\n"); line_length = ptr - conn->response_buffer->str; *line = g_strndup (conn->response_buffer->str, line_length); g_string_erase (conn->response_buffer, 0 , line_length + 2); return result; } static GnomeVFSResult get_response (NNTPConnection *conn) { /* all that should be pending is a response to the last command */ GnomeVFSResult result; while (TRUE) { char *line = NULL; result = read_response_line (conn, &line); if (result != GNOME_VFS_OK) { g_free (line); g_warning ("Error reading response line."); return result; } /* response needs to be at least: "### x" - I think*/ if (g_ascii_isdigit (line[0]) && g_ascii_isdigit (line[1]) && g_ascii_isdigit (line[2]) && g_ascii_isspace (line[3])) { conn->response_code = g_ascii_digit_value (line[0]) * 100 + g_ascii_digit_value (line[1]) * 10 + g_ascii_digit_value (line[2]); if (conn->response_message) g_free (conn->response_message); conn->response_message = g_strdup (line+4); g_free (line); return nntp_response_to_vfs_result (conn); } /* hmm - not a valid line - lets ignore it :-) */ g_free (line); } return GNOME_VFS_OK; /* should never be reached */ } static GnomeVFSResult do_control_write (NNTPConnection *conn, char *command) { char *actual_command = g_strdup_printf ("%s\r\n", command); GnomeVFSFileSize bytes = strlen (actual_command), bytes_written; GnomeVFSResult result = gnome_vfs_socket_buffer_write (conn->socketbuf, actual_command, bytes, &bytes_written, NULL); gnome_vfs_socket_buffer_flush (conn->socketbuf, NULL); g_free (actual_command); return result; } static void nntp_connection_reset_buffer (NNTPConnection *conn) { g_string_erase (conn->response_buffer, 0, strlen(conn->response_buffer->str)); } static GnomeVFSResult do_basic_command (NNTPConnection *conn, char *command) { GnomeVFSResult result; nntp_connection_reset_buffer (conn); result = do_control_write(conn, command); if (result != GNOME_VFS_OK) { return result; } result = get_response (conn); return result; } /* the following routines manage the connection with the news server */ /* create a new connection */ static GnomeVFSResult nntp_connection_create (NNTPConnection **connptr, GnomeVFSURI *uri, GnomeVFSContext *context) { NNTPConnection *conn = g_new (NNTPConnection, 1); GnomeVFSResult result; char *tmpstring; int port = nntp_port; const char *user = anon_user; const char *pass = anon_pass; conn->uri = gnome_vfs_uri_dup (uri); conn->response_buffer = g_string_new (""); conn->response_message = NULL; conn->response_code = -1; conn->anonymous = TRUE; /* allocate the read buffer */ conn->buffer = g_malloc(READ_BUFFER_SIZE); conn->buffer_size = READ_BUFFER_SIZE; conn->amount_in_buffer = 0; conn->buffer_offset = 0; conn->request_in_progress = FALSE; if (gnome_vfs_uri_get_host_port (uri)) { port = gnome_vfs_uri_get_host_port (uri); } if (gnome_vfs_uri_get_user_name (uri)) { user = gnome_vfs_uri_get_user_name (uri); conn->anonymous = FALSE; } if (gnome_vfs_uri_get_password (uri)) { pass = gnome_vfs_uri_get_password (uri); } result = gnome_vfs_inet_connection_create (&conn->inet_connection, gnome_vfs_uri_get_host_name (uri), port, context ? gnome_vfs_context_get_cancellation(context) : NULL); if (result != GNOME_VFS_OK) { g_warning ("gnome_vfs_inet_connection_create (\"%s\", %d) = \"%s\"", gnome_vfs_uri_get_host_name (uri), gnome_vfs_uri_get_host_port (uri), gnome_vfs_result_to_string (result)); g_string_free (conn->response_buffer, TRUE); g_free (conn); return result; } conn->socketbuf = gnome_vfs_inet_connection_to_socket_buffer (conn->inet_connection); if (conn->socketbuf == NULL) { g_warning ("gnome_vfs_inet_connection_get_socket_buffer () failed"); gnome_vfs_inet_connection_destroy (conn->inet_connection, NULL); g_string_free (conn->response_buffer, TRUE); g_free (conn); return GNOME_VFS_ERROR_GENERIC; } result = get_response (conn); if (result != GNOME_VFS_OK) { g_warning ("nntp server (%s:%d) said `%d %s'", gnome_vfs_uri_get_host_name (uri), gnome_vfs_uri_get_host_port (uri), conn->response_code, conn->response_message); g_string_free (conn->response_buffer, TRUE); g_free (conn); return result; } if (!conn->anonymous) { tmpstring = g_strdup_printf ("AUTHINFO user %s", user); result = do_basic_command (conn, tmpstring); g_free (tmpstring); if (IS_300 (conn->response_code)) { tmpstring = g_strdup_printf ("AUTHINFO pass %s", pass); result = do_basic_command (conn, tmpstring); g_free (tmpstring); } if (result != GNOME_VFS_OK) { /* login failed */ g_warning ("NNTP server said: \"%d %s\"\n", conn->response_code, conn->response_message); gnome_vfs_socket_buffer_destroy (conn->socketbuf, FALSE, context ? gnome_vfs_context_get_cancellation(context) : NULL); gnome_vfs_inet_connection_destroy (conn->inet_connection, NULL); g_free (conn); return result; } } *connptr = conn; total_connections++; /* g_message("successfully logged into server, total connections: %d", total_connections); */ return GNOME_VFS_OK; } /* destroy the connection object and deallocate the associated resources */ static void nntp_connection_destroy (NNTPConnection *conn) { GnomeVFSResult result; if (conn->inet_connection) { result = do_basic_command(conn, "QUIT"); gnome_vfs_inet_connection_destroy (conn->inet_connection, NULL); } if (conn->socketbuf) gnome_vfs_socket_buffer_destroy (conn->socketbuf, FALSE, NULL); gnome_vfs_uri_unref (conn->uri); if (conn->response_buffer) g_string_free(conn->response_buffer, TRUE); g_free (conn->response_message); g_free (conn->server_type); g_free (conn->buffer); g_free (conn); total_connections--; } /* hash routines for managing the pool of connections */ /* g_str_hash and g_str_equal seem to fail with null arguments */ static int my_str_hash (const char *c) { if (c) return g_str_hash (c); else return 0; } static int my_str_equal (gconstpointer c, gconstpointer d) { if ((c && !d) || (d &&!c)) return FALSE; if (!c && !d) return TRUE; return g_str_equal (c,d); } /* hash the bits of a GnomeVFSURI that distingush NNTP connections */ guint nntp_connection_uri_hash (gconstpointer c) { GnomeVFSURI *uri = (GnomeVFSURI *) c; return my_str_hash (gnome_vfs_uri_get_host_name (uri)) + my_str_hash (gnome_vfs_uri_get_user_name (uri)) + my_str_hash (gnome_vfs_uri_get_password (uri)) + gnome_vfs_uri_get_host_port (uri); } /* test the equality of the bits of a GnomeVFSURI that distingush NNTP * connections */ int nntp_connection_uri_equal (gconstpointer c, gconstpointer d) { GnomeVFSURI *uri1 = (GnomeVFSURI *)c; GnomeVFSURI *uri2 = (GnomeVFSURI *) d; return my_str_equal (gnome_vfs_uri_get_host_name(uri1), gnome_vfs_uri_get_host_name (uri2)) && my_str_equal (gnome_vfs_uri_get_user_name (uri1), gnome_vfs_uri_get_user_name (uri2)) && my_str_equal (gnome_vfs_uri_get_password (uri1), gnome_vfs_uri_get_password (uri2)) && gnome_vfs_uri_get_host_port (uri1) == gnome_vfs_uri_get_host_port (uri2); } static GnomeVFSResult nntp_connection_acquire (GnomeVFSURI *uri, NNTPConnection **connection, GnomeVFSContext *context) { GList *possible_connections; NNTPConnection *conn = NULL; GnomeVFSResult result = GNOME_VFS_OK; G_LOCK (spare_connections); if (spare_connections == NULL) { spare_connections = g_hash_table_new (nntp_connection_uri_hash, nntp_connection_uri_equal); } possible_connections = g_hash_table_lookup (spare_connections, uri); if (possible_connections) { /* spare connection(s) found */ conn = (NNTPConnection *) possible_connections->data; possible_connections = g_list_remove (possible_connections, conn); if(!g_hash_table_lookup (spare_connections, uri)) { /* uri will be used as a key in the hashtable */ uri = gnome_vfs_uri_dup (uri); } g_hash_table_insert (spare_connections, uri, possible_connections); /* make sure connection hasn't timed out */ result = do_basic_command(conn, "MODE READER"); if (result != GNOME_VFS_OK) { nntp_connection_destroy (conn); result = nntp_connection_create (&conn, uri, context); } } else { result = nntp_connection_create (&conn, uri, context); } G_UNLOCK (spare_connections); *connection = conn; if(result == GNOME_VFS_OK) allocated_connections++; return result; } static void nntp_connection_release (NNTPConnection *conn) { GList *possible_connections; GnomeVFSURI *uri; g_return_if_fail (conn); G_LOCK (spare_connections); if (spare_connections == NULL) spare_connections = g_hash_table_new (nntp_connection_uri_hash, nntp_connection_uri_equal); possible_connections = g_hash_table_lookup (spare_connections, conn->uri); possible_connections = g_list_append (possible_connections, conn); if (g_hash_table_lookup (spare_connections, conn->uri)) { uri = conn->uri; /* no need to duplicate uri */ } else { /* uri will be used as key */ uri = gnome_vfs_uri_dup (conn->uri); } g_hash_table_insert (spare_connections, uri, possible_connections); allocated_connections--; G_UNLOCK(spare_connections); } /* the following routines are the code for assembling the file list from the newsgroup headers. */ /* Here are the folder name filtering routines, which attempt to remove track numbers and other extraneous * info from folder names, to make folder grouping work better. First, there are some character classifying * helper routines */ static gboolean is_number_or_space (char test_char) { return g_ascii_isspace (test_char) || g_ascii_isdigit (test_char) || test_char == '_' || test_char == '-' || test_char == '/'; } static gboolean all_numbers_or_spaces (char *left_ptr, char *right_ptr) { char *current_char_ptr; char current_char; current_char_ptr = left_ptr; while (current_char_ptr < right_ptr) { current_char = *current_char_ptr++; if (!is_number_or_space(current_char)) { return FALSE; } } return TRUE; } /* each of the next set of routines implement a specific filtering operation */ static void remove_numbers_between_dashes(char *input_str) { char *left_ptr, *right_ptr; int length_to_end, segment_size; left_ptr = strchr (input_str, '-'); while (left_ptr != NULL) { right_ptr = strchr(left_ptr + 1, '-'); if (right_ptr != NULL) { segment_size = right_ptr - left_ptr; if (all_numbers_or_spaces(left_ptr, right_ptr) && segment_size > 1) { length_to_end = strlen(right_ptr + 1) + 1; g_memmove(left_ptr, right_ptr + 1, length_to_end); } else { left_ptr = right_ptr; } } else { right_ptr = input_str + strlen(input_str) - 1; if (all_numbers_or_spaces(left_ptr, right_ptr)) { *left_ptr = '\0'; } break; } } } static void remove_number_at_end (char *input_str) { char *space_ptr, *next_char; gboolean is_digits; space_ptr = strrchr(input_str, ' '); next_char = space_ptr + 1; if (space_ptr != NULL) { is_digits = TRUE; while (*next_char != '\0') { if (!is_number_or_space (*next_char)) { is_digits = FALSE; break; } next_char += 1; } if (is_digits) { *space_ptr = '\0'; } } } static char* trim_nonalpha_chars (char *input_str) { char *left_ptr, *right_ptr; /* first handle the end of the string */ right_ptr = input_str + strlen(input_str) - 1; while (!g_ascii_isalnum (*right_ptr) && right_ptr > input_str) { right_ptr -= 1; } right_ptr += 1; *right_ptr = '\0'; /* now handle the beginning */ left_ptr = input_str; while (*left_ptr && !g_ascii_isalnum(*left_ptr)) { left_ptr++; } return left_ptr; } static void remove_of_expressions (char *input_str) { char *left_ptr, *right_ptr; int length_to_end; gboolean found_number; left_ptr = strstr (input_str, "of"); if (left_ptr == NULL) { left_ptr = strstr (input_str, "OF"); } if (left_ptr == NULL) { left_ptr = strstr (input_str, "/"); } if (left_ptr != NULL) { found_number = FALSE; right_ptr = left_ptr + 2; left_ptr = left_ptr - 1; while (is_number_or_space(*left_ptr) && left_ptr >= input_str) { found_number = found_number || g_ascii_isdigit(*left_ptr); left_ptr -= 1; } while (is_number_or_space(*right_ptr)) { found_number = found_number || g_ascii_isdigit(*right_ptr); right_ptr += 1; } if (found_number) { length_to_end = strlen(right_ptr); if (length_to_end > 0) { g_memmove(left_ptr + 1, right_ptr, length_to_end + 1); } else { left_ptr += 1; *left_ptr = '\0'; } } } } /* here is the main folder name filtering routine, which returns a new string containing the filtered * version of the passed-in folder name */ static char * filter_folder_name(char *folder_name) { char *temp_str, *save_str, *result_str; char *colon_ptr, *left_ptr, *right_ptr; int length_to_end; temp_str = g_strdup(folder_name); save_str = temp_str; temp_str = g_strstrip(temp_str); /* if there is a colon, strip everything before it */ colon_ptr = strchr(temp_str, ':'); if (colon_ptr != NULL) { temp_str = colon_ptr + 1; } /* remove everything in brackets */ left_ptr = strrchr(temp_str, '['); if (left_ptr != NULL) { right_ptr = strchr(left_ptr, ']'); if (right_ptr != NULL && right_ptr > left_ptr) { length_to_end = strlen(right_ptr + 1) + 1; g_memmove(left_ptr, right_ptr + 1, length_to_end); } } /* eliminate "n of m" expressions */ remove_of_expressions(temp_str); /* remove numbers at end of the string */ remove_number_at_end(temp_str); /* remove numbers between dashes */ remove_numbers_between_dashes(temp_str); /* trim leading and trailing non-alphanumeric characters */ temp_str = trim_nonalpha_chars(temp_str); /* truncate if necessary */ if (strlen(temp_str) > 30) { left_ptr = temp_str + 29; while (g_ascii_isalpha(*left_ptr)) { left_ptr += 1; } *left_ptr = '\0'; } /* return the result */ result_str = g_strdup(temp_str); g_free(save_str); return result_str; } /* parse dates by allowing gnome-vfs to do most of the work */ static void remove_commas(char *source_str) { char *ptr; ptr = source_str; while (*ptr != '\0') { if (*ptr == ',') { g_memmove(ptr, ptr+1, strlen(ptr)); } else { ptr += 1; } } } static gboolean is_number(char *input_str) { char *cur_char; cur_char = input_str; while (*cur_char) { if (!g_ascii_isdigit(*cur_char)) { return FALSE; } cur_char += 1; } return TRUE; } static void parse_date_string (const char* date_string, time_t *t) { struct stat s; char *filename, *linkname; char *temp_str, *mapped_date; gboolean result; char **date_parts; int offset; filename = NULL; linkname = NULL; /* remove commas from day, and flip the day and month */ date_parts = g_strsplit(date_string, " ", 0); if (is_number(date_parts[0])) { offset = 0; } else { offset = 1; remove_commas(date_parts[0]); } temp_str = date_parts[offset]; date_parts[offset] = date_parts[offset + 1]; date_parts[offset + 1] = temp_str; mapped_date = g_strjoinv(" ", date_parts); temp_str = g_strdup_printf("-rw-rw-rw- 1 500 500 %s x", mapped_date); g_strfreev(date_parts); g_free (mapped_date); result = gnome_vfs_parse_ls_lga (temp_str, &s, &filename, &linkname); if (!result) { g_message("error parsing %s, %s", date_string, temp_str); } if (filename != NULL) { g_free (filename); } if (linkname != NULL) { g_free (linkname); } g_free(temp_str); *t = s.st_mtime; } /* parse_header takes a message header an extracts the subject and id, and then * parses the subject to get the file name and fragment sequence number */ static gboolean parse_header(const char* header_str, char** filename, char** folder_name, char** message_id, int* message_size, int* part_number, int* total_parts, time_t *mod_date) { char* temp_str, *file_start; char* left_paren, *right_paren, *slash_pos; int slash_bump; char **header_parts; gboolean has_count; *part_number = -1; *total_parts = -1; *message_size = 0; *filename = NULL; *folder_name = NULL; *message_id = NULL; slash_pos = NULL; header_parts = g_strsplit(header_str, "\t", 0); temp_str = g_strdup(header_parts[1]); *message_id = g_strdup(header_parts[4]); if (header_parts[6] != NULL) { *message_size = atoi(header_parts[6]); } parse_date_string(header_parts[3], mod_date); g_strfreev(header_parts); /* find the parentheses and extra the part number and total part count */ has_count = FALSE; left_paren = strchr(temp_str,'('); right_paren = strchr(temp_str, ')'); /* if we could't find parentheses, try braces */ if (left_paren == NULL) { left_paren = strchr(temp_str,'['); right_paren = strchr(temp_str, ']'); } while (!has_count && left_paren != NULL && right_paren != NULL) { slash_pos = strchr(left_paren, '/'); slash_bump = 1; if (slash_pos == NULL) { slash_pos = strchr(left_paren, '-'); } if (slash_pos == NULL) { slash_pos = strstr(left_paren, " of "); slash_bump = 4; } if (slash_pos != NULL) { has_count = TRUE; *slash_pos = '\0'; *right_paren = '\0'; *part_number = atoi (left_paren + 1); *total_parts = atoi (slash_pos + slash_bump); } else { left_paren = strchr(right_paren + 1, '('); right_paren = strchr(right_paren + 1, ')'); } } if (!has_count) { *part_number = 1; *total_parts = 1; } /* isolate the filename and copy it to the result */ if (has_count) { *left_paren = '\0'; file_start = strrchr (temp_str, '-'); if (file_start == NULL) { g_free (*message_id); g_free (temp_str); return FALSE; } *filename = g_strdup (g_strstrip (file_start + 1)); *file_start = '\0'; *folder_name = filter_folder_name (temp_str); } else { *filename = g_strdup (temp_str); } g_free(temp_str); return TRUE; } /* create a new file fragment structure */ static nntp_fragment* nntp_fragment_new(int fragment_number, char* fragment_id, int fragment_size) { nntp_fragment* new_fragment = (nntp_fragment*) g_malloc (sizeof (nntp_fragment)); new_fragment->fragment_number = fragment_number; new_fragment->fragment_id = g_strdup (fragment_id); new_fragment->fragment_size = fragment_size; new_fragment->bytes_read = 0; return new_fragment; } /* deallocate the passed in file fragment */ static void nntp_fragment_destroy(nntp_fragment* fragment) { g_free(fragment->fragment_id); g_free(fragment); } /* utility routine to map slashes to dashes in the passed in string so we never return * a filename with slashes */ static char * map_slashes(char *str) { char *current_ptr; current_ptr = str; while (*current_ptr != '\0') { if (*current_ptr == '/') { *current_ptr = '-'; } current_ptr += 1; } return str; } /* allocate a file object */ static nntp_file* nntp_file_new(char* file_name, char *folder_name, int total_parts) { nntp_file* new_file = (nntp_file*) g_malloc (sizeof (nntp_file)); if (strlen(map_slashes(file_name)) < 1) { file_name = "(Empty)"; } new_file->file_name = map_slashes(g_strdup(file_name)); new_file->folder_name = g_strdup(folder_name); new_file->file_type = NULL; new_file->part_list = NULL; new_file->file_size = 0; new_file->total_parts = total_parts; new_file->is_directory = FALSE; return new_file; } /* deallocate a file object */ static void nntp_file_destroy (nntp_file* file) { GList *current_part; g_free(file->file_name); g_free(file->folder_name); current_part = file->part_list; while (current_part != NULL) { if (file->is_directory) { nntp_file_destroy((nntp_file*) current_part->data); } else { nntp_fragment_destroy((nntp_fragment*) current_part->data); } current_part = current_part->next; } g_list_free(file->part_list); g_free(file); } /* look up a fragment in a file */ static nntp_fragment* nntp_file_look_up_fragment (nntp_file *file, int fragment_number) { nntp_fragment *fragment; GList *current_fragment = file->part_list; while (current_fragment != NULL) { fragment = (nntp_fragment*) current_fragment->data; if (fragment->fragment_number == fragment_number) { return fragment; } current_fragment = current_fragment->next; } return NULL; } /* compute the total size of a file by adding up the size of its fragments, then scale down by 3/4 to account for * the uu or base64 encoding */ static int nntp_file_get_total_size (nntp_file *file) { nntp_fragment *fragment; int total_size; GList *current_fragment; total_size = 0; current_fragment = file->part_list; while (current_fragment != NULL) { fragment = (nntp_fragment*) current_fragment->data; total_size += fragment->fragment_size - 800; /* subtract out average header size */ current_fragment = current_fragment->next; } return 3 * total_size / 4; } /* add a fragment to a file */ static void nntp_file_add_part (nntp_file *file, int fragment_number, char* fragment_id, int fragment_size) { /* make sure we don't already have this fragment */ /* note: this isn't good for threads, where more than one message has the same subject line, * so we really should collect them instead of discarding all but the first */ if (nntp_file_look_up_fragment (file, fragment_number) == NULL) { nntp_fragment* fragment = nntp_fragment_new (fragment_number, fragment_id, fragment_size); file->part_list = g_list_append (file->part_list, fragment); } } /* look up a file object in the file list from its name; avoid lookup if same as last time (soon) */ static nntp_file* look_up_file (GList *file_list, char *filename, gboolean is_directory) { nntp_file* file; GList* current_file = file_list; while (current_file != NULL) { file = (nntp_file*) current_file->data; if (g_ascii_strcasecmp( file->file_name, filename) == 0 && file->is_directory == is_directory) { return file; } current_file = current_file->next; } return NULL; } /* start reading the article associated with the passed in fragment */ static GnomeVFSResult start_loading_article (NNTPConnection *conn, nntp_fragment *fragment) { GnomeVFSResult result; char *command_str; char *line = NULL; /* issue the command to fetch the article */ command_str = g_strdup_printf("BODY %s", fragment->fragment_id); result = do_control_write(conn, command_str); g_free(command_str); if (result != GNOME_VFS_OK) { return result; } /* read the response command, and check that it's the right number (eventually) */ result = read_response_line (conn, &line); g_free(line); if (result != GNOME_VFS_OK) { return result; } conn->request_in_progress = TRUE; return GNOME_VFS_OK; } /* utility routine to uudecode the passed in text. Translate every four 6-bit bytes to 3 8 bit ones */ static int uu_decode_text(char *text_buffer, int text_len) { int input_index, output_index; int byte_0, byte_1, byte_2, byte_3; input_index = 1; /* skip length byte */ output_index = 0; while (input_index < text_len) { byte_0 = text_buffer[input_index] - 32; byte_1 = text_buffer[input_index + 1] - 32; byte_2 = text_buffer[input_index + 2] - 32; byte_3 = text_buffer[input_index + 3] - 32; text_buffer[output_index] = ((byte_0 << 2) & 252) | ((byte_1 >> 4) & 3); text_buffer[output_index + 1] = ((byte_1 << 4) & 240) | ((byte_2 >> 2) & 15); text_buffer[output_index + 2] = ((byte_2 << 6) & 192) | (byte_3 & 63); input_index += 4; output_index += 3; } return output_index; } /* utility to decode the passed in text using base 64 */ static int base_64_map(char input_char) { if (input_char >= 'A' && input_char <= 'Z') { return input_char - 'A'; } if (input_char >= 'a' && input_char <= 'z') { return 26 + input_char - 'a'; } if (input_char >= '0' && input_char <= '9') { return 52 + input_char - '0'; } if (input_char == '+') { return 62; } if (input_char == '/') { return 63; } if (input_char == '=') { return 0; } /* not a valid character, so return -1 */ return -1; } static int base_64_decode_text(char* text_buffer, int text_len) { int input_index, output_index; int byte_0, byte_1, byte_2, byte_3; input_index = 1; /* skip length byte */ output_index = 0; while (input_index < text_len) { byte_0 = base_64_map(text_buffer[input_index]); byte_1 = base_64_map(text_buffer[input_index + 1]); byte_2 = base_64_map(text_buffer[input_index + 2]); byte_3 = base_64_map(text_buffer[input_index + 3]); /* if we hit a return, we're done */ if (text_buffer[input_index] < 32) { return output_index; } /* if there are any unmappable characters, skip this line */ if (byte_0 < 0 || byte_1 < 0 || byte_2 < 0 || byte_3 < 0) { return 0; } /* shift the bits into place and output them */ text_buffer[output_index] = ((byte_0 << 2) & 252) | ((byte_1 >> 4) & 3); text_buffer[output_index + 1] = ((byte_1 << 4) & 240) | ((byte_2 >> 2) & 15); text_buffer[output_index + 2] = ((byte_2 << 6) & 192) | (byte_3 & 63); input_index += 4; output_index += 3; } return output_index; } /* utility that returns true if all the characters in the passed in line are valide for uudecoding */ static gboolean line_in_decode_range(char* input_line) { char *line_ptr; char current_char; line_ptr = input_line; while (*line_ptr != '\0') { current_char = *line_ptr++; if (current_char < 32 || current_char > 95) { return FALSE; } } return TRUE; } /* fill the buffer from the passed in article fragment. If the first line flag is set, * test to see if uudecoding is required. */ static GnomeVFSResult load_from_article (NNTPConnection *conn, nntp_fragment *fragment, gboolean first_line_flag) { GnomeVFSResult result; char *line = NULL; char *dest_ptr; int buffer_offset; int line_len; /* loop, loading the article into the buffer */ buffer_offset = 0; while (buffer_offset < conn->buffer_size - 1024) { result = read_response_line (conn, &line); if (first_line_flag && !conn->uu_decode_mode && !conn->base_64_decode_mode) { /* FIXME: should apply additional checks here for the permission flags, etc */ if (strncmp(line, "begin ", 6) == 0) { conn->uu_decode_mode = TRUE; g_free (line); buffer_offset = 0; continue; } else if (strncmp(line, "Content-Transfer-Encoding: base64", 33) == 0) { conn->base_64_decode_mode = TRUE; g_free (line); buffer_offset = 0; continue; } else if (line[0] == 'M' && strlen(line) == 61 && line_in_decode_range(line)) { conn->uu_decode_mode = TRUE; buffer_offset = 0; } } if (line[0] != '.' && line[1] != '\r') { line_len = strlen(line); if (buffer_offset + line_len > conn->buffer_size) { g_message("Error! exceeded buffer! %d", buffer_offset + line_len); line_len = conn->buffer_size - buffer_offset; } dest_ptr = (char*) conn->buffer + buffer_offset; g_memmove(dest_ptr, line, line_len); if (conn->uu_decode_mode) { line_len = uu_decode_text(dest_ptr, line_len); buffer_offset += line_len; fragment->bytes_read += line_len; } else if (conn->base_64_decode_mode) { line_len = base_64_decode_text(dest_ptr, line_len); buffer_offset += line_len; fragment->bytes_read += line_len; } else { buffer_offset += line_len + 1; dest_ptr += line_len; *dest_ptr = '\n'; fragment->bytes_read += line_len + 1; } } else { g_free(line); conn->request_in_progress = FALSE; break; } g_free(line); } conn->amount_in_buffer = buffer_offset; conn->buffer_offset = 0; return GNOME_VFS_OK; } /* load data from the current file fragment, advancing to a new one if necessary */ static GnomeVFSResult load_file_fragment(NNTPConnection *connection) { nntp_fragment *fragment; GnomeVFSResult result; gboolean first_line_flag; first_line_flag = FALSE; if (!connection->request_in_progress) { if (connection->current_fragment == NULL) { connection->current_fragment = connection->current_file->part_list; first_line_flag = TRUE; } else { connection->current_fragment = connection->current_fragment->next; if (connection->current_fragment == NULL) { connection->eof_flag = TRUE; return GNOME_VFS_ERROR_EOF; } } fragment = (nntp_fragment *) connection->current_fragment->data; result = start_loading_article(connection, fragment); } if (connection->current_fragment == NULL) { connection->eof_flag = TRUE; return GNOME_VFS_ERROR_EOF; } fragment = (nntp_fragment *) connection->current_fragment->data; result = load_from_article(connection, fragment, first_line_flag); return result; } /* calculate the size of the data remaining in the buffer */ static int bytes_in_buffer(NNTPConnection *connection) { return connection->amount_in_buffer - connection->buffer_offset; } /* utility routine to move bytes from the fragment to the application */ static int copy_bytes_from_buffer(NNTPConnection *connection, gpointer destination_buffer, int bytes_to_read, GnomeVFSFileSize *bytes_read) { int size_to_move; size_to_move = bytes_in_buffer(connection); if (size_to_move == 0) { return 0; } if (bytes_to_read < size_to_move) { size_to_move = bytes_to_read; } /* move the bytes from the buffer */ g_memmove(destination_buffer, ((char*) connection->buffer) + connection->buffer_offset, size_to_move); /* update the counts */ connection->buffer_offset += size_to_move; *bytes_read += size_to_move; return size_to_move; } /* read a byte range from the active connection */ static GnomeVFSResult nntp_file_read(NNTPConnection *connection, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read) { int bytes_to_read; GnomeVFSResult result; /* loop, loading fragments and copying data until the request is fulfilled or * we're out of fragments */ bytes_to_read = num_bytes; *bytes_read = 0; while (bytes_to_read > 0) { bytes_to_read -= copy_bytes_from_buffer(connection, ((char*) buffer) + *bytes_read, bytes_to_read, bytes_read); if (bytes_to_read > bytes_in_buffer(connection)) { if (connection->eof_flag) { /* don't return EOF here as it will cause the last part to be discarded */ return GNOME_VFS_OK; } result = load_file_fragment(connection); } } return GNOME_VFS_OK; } /* deallocate the passed in file list */ static void free_nntp_file_list (GList *file_list) { GList* current_file; if (file_list == NULL) { return; } current_file = file_list; while (current_file != NULL) { nntp_file_destroy ((nntp_file*) current_file->data); current_file = current_file->next; } g_list_free (file_list); } /* utility to obtain authorization info from gnome-vfs */ static void get_auth_info (NNTPConnection *conn, char** user, char** password) { GnomeVFSResult res; GnomeVFSModuleCallbackAuthenticationIn in_args; GnomeVFSModuleCallbackAuthenticationOut out_args; *user = NULL; *password = NULL; memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); in_args.uri = gnome_vfs_uri_to_string(conn->uri, 0); res = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_free(in_args.uri); *user = out_args.username; *password = out_args.password; } /* key routine to load the newsgroup overview and return a list of nntp_file objects. * It maintains a cache to avoid reloading. * * FIXME: for now, we use a single element cache, but eventually we want to cache multiple newsgroups * also, we eventually want to reload it if enough time has passed */ static GnomeVFSResult get_files_from_newsgroup (NNTPConnection *conn, const char* newsgroup_name, GList** result_file_list) { GnomeVFSResult result; char *group_command, *tmpstring; int first_message, last_message, total_messages; char *command_str; GList *file_list; gchar *user, *pass; /* see if we can load it from the cache */ if (current_newsgroup_name != NULL && g_ascii_strcasecmp (newsgroup_name, current_newsgroup_name) == 0) { *result_file_list = current_newsgroup_files; return GNOME_VFS_OK; } *result_file_list = NULL; /* we don't have it in the cache, so load it from the server */ if (current_newsgroup_name != NULL) { free_nntp_file_list (current_newsgroup_files); g_free (current_newsgroup_name); current_newsgroup_name = NULL; } group_command = g_strdup_printf ("GROUP %s", newsgroup_name); result = do_basic_command (conn, group_command); g_free (group_command); if (result != GNOME_VFS_OK || conn->response_code != 211) { /* if we're anonymous, prompt for a password and try that */ if (conn->anonymous) { get_auth_info(conn, &user, &pass); if (user != NULL) { conn->anonymous = FALSE; tmpstring = g_strdup_printf ("AUTHINFO user %s", user); result = do_basic_command (conn, tmpstring); g_free (tmpstring); if (IS_300 (conn->response_code)) { tmpstring = g_strdup_printf ("AUTHINFO pass %s", pass); result = do_basic_command (conn, tmpstring); g_free (tmpstring); group_command = g_strdup_printf ("GROUP %s", newsgroup_name); result = do_basic_command (conn, group_command); g_free (group_command); } } g_free (user); g_free (pass); } if (result != GNOME_VFS_OK || conn->response_code != 211) { g_message ("couldnt set group to %s, code %d", newsgroup_name, conn->response_code); return GNOME_VFS_ERROR_NOT_FOUND; /* could differentiate error better */ } } sscanf (conn->response_message, "%d %d %d", &total_messages, &first_message, &last_message); /* read in the header and build the file list for the connection */ if ((last_message - first_message) > MAX_MESSAGE_COUNT) { first_message = last_message - MAX_MESSAGE_COUNT; } command_str = g_strdup_printf ("XOVER %d-%d", first_message, last_message); file_list = assemble_files_from_overview (conn, command_str); g_free (command_str); current_newsgroup_name = g_strdup (newsgroup_name); current_newsgroup_files = file_list; *result_file_list = file_list; return GNOME_VFS_OK; } /* utility to strip leading and trailing slashes from a string. It frees the input string and * returns a new one */ static char* strip_slashes (char* source_string) { char *temp_str, *result_str; int last_offset; temp_str = source_string; if (temp_str[0] == '/') { temp_str += 1; } last_offset = strlen(temp_str) - 1; if (temp_str[last_offset] == '/') { temp_str[last_offset] = '\0'; } result_str = g_strdup(temp_str); g_free(source_string); return result_str; } /* parse the uri to extract the newsgroup name and the file name */ static void extract_newsgroup_and_filename(GnomeVFSURI *uri, char** newsgroup, char **directory, char **filename) { char *dirname, *slash_pos; *filename = gnome_vfs_unescape_string(gnome_vfs_uri_extract_short_name (uri), ""); *directory = NULL; dirname = strip_slashes(gnome_vfs_uri_extract_dirname(uri)); *newsgroup = gnome_vfs_unescape_string (dirname, ""); slash_pos = strchr (*newsgroup, '/'); if (slash_pos != NULL) { *slash_pos = '\0'; *directory = g_strdup (slash_pos + 1); } g_free (dirname); } /* fetch the nntp_file object from the passed in uri */ static nntp_file* nntp_file_from_uri (NNTPConnection *conn, GnomeVFSURI *uri) { GnomeVFSResult result; char *newsgroup_name, *file_name, *directory_name; nntp_file *file; GList *file_list; /* extract the newsgroup name */ extract_newsgroup_and_filename(uri, &newsgroup_name, &directory_name, &file_name); /* load the (cached) file list */ result = get_files_from_newsgroup (conn, newsgroup_name, &file_list); if (file_list == NULL) { file = NULL; } else { /* parse the uri into the newsgroup and file */ if (directory_name != NULL) { file = look_up_file (file_list, directory_name, TRUE); if (file != NULL) { file = look_up_file (file->part_list, file_name, FALSE); } } else { file = look_up_file (file_list, file_name, FALSE); } } g_free(newsgroup_name); g_free(file_name); g_free(directory_name); return file; } /* determine if a file has all of it's fragments */ static gboolean has_all_fragments (nntp_file *file) { return g_list_length (file->part_list) >= file->total_parts; } /* add a file fragment to the file list, creating a new file object if necessary */ static GList *add_file_fragment(GList* file_list, char* filename, char* folder_name, char* fragment_id, int fragment_size, int part_number, int part_total, time_t mod_date) { nntp_file *base_file; /* don't use part 0 */ if (part_number == 0) { return file_list; } /* get the file object associated with the filename if any */ base_file = look_up_file(file_list, filename, FALSE); if (base_file == NULL) { base_file = nntp_file_new(filename, folder_name, part_total); base_file->mod_date = mod_date; file_list = g_list_append(file_list, base_file); } /* add the fragment to the file */ nntp_file_add_part(base_file, part_number, fragment_id, fragment_size); return file_list; } /* remove any partial files from the file list */ static GList *remove_partial_files (GList *file_list) { nntp_file* file; GList* next_file; GList* current_file = file_list; while (current_file != NULL) { next_file = current_file->next; file = (nntp_file*) current_file->data; if (!has_all_fragments (file)) { file_list = g_list_remove_link (file_list, current_file); nntp_file_destroy (file); } current_file = next_file; } return file_list; } /* loop through the file list to update the size fields */ static void update_file_sizes(GList *file_list) { nntp_file* file; GList* current_file = file_list; while (current_file != NULL) { file = (nntp_file*) current_file->data; file->file_size = nntp_file_get_total_size(file); current_file = current_file->next; } } /* the following set of routines are used to group the files into psuedo-directories by using * a hash table containing lists of nntp_file objects. */ /* add the passed in file's foldername to the hash table */ static void add_file_to_folder (GHashTable *folders, nntp_file *file) { GList *folder_contents; if (file->folder_name == NULL) { return; } folder_contents = g_hash_table_lookup (folders, file->folder_name); if (folder_contents != NULL) { folder_contents = g_list_append (folder_contents, file); } else { folder_contents = g_list_append (NULL, file); g_hash_table_insert (folders, g_strdup(file->folder_name), folder_contents); } } /* remove non-singleton files that are contained in folders from the file list */ static void remove_file_from_list (gpointer key, gpointer value, gpointer callback_data) { GList *element_list; GList** file_list_ptr; file_list_ptr = (GList**) callback_data; element_list = (GList*) value; /* if there is more than one element in the list, remove all of them from the file list */ if (element_list != NULL && g_list_length(element_list) > 1) { while (element_list != NULL) { *file_list_ptr = g_list_remove(*file_list_ptr, element_list->data); element_list = element_list->next; } } } static void remove_contained_files(GHashTable *folders, GList** file_list_ptr) { /* iterate through the passed in hash table to find the files to remove */ g_hash_table_foreach (folders, remove_file_from_list, file_list_ptr); } /* utility routine to calculate a folder's mod-date by inspecting the dates of it's constituents */ static void calculate_folder_mod_date (nntp_file *folder) { time_t latest_mod_date; GList *current_file; nntp_file* current_file_data; latest_mod_date = 0; current_file = folder->part_list; while (current_file != NULL) { current_file_data = (nntp_file*) current_file->data; if (current_file_data->mod_date > latest_mod_date) { latest_mod_date = current_file_data->mod_date; } current_file = current_file->next; } folder->mod_date = latest_mod_date; } /* generate folder objects from the entries in the hash table */ static void generate_folder_from_element (gpointer key, gpointer value, gpointer callback_data) { GList *element_list; int number_of_elements; nntp_file *new_folder; char* key_as_string; GList** file_list_ptr; file_list_ptr = (GList**) callback_data; element_list = (GList*) value; key_as_string = (char*) key; number_of_elements = g_list_length(element_list); if (number_of_elements > 1) { if (strlen(key_as_string) == 0) { key_as_string = "Unknown Title"; } new_folder = nntp_file_new (key_as_string, NULL, number_of_elements); new_folder->is_directory = TRUE; new_folder->file_type = g_strdup ("x-directory/normal"); new_folder->part_list = g_list_copy (element_list); calculate_folder_mod_date (new_folder); *file_list_ptr = g_list_append (*file_list_ptr, new_folder); } } static void generate_folders(GHashTable *folders, GList** file_list_ptr) { /* iterate through the passed in hash table to generate a folder for each non-singleton entry */ g_hash_table_foreach (folders, generate_folder_from_element, file_list_ptr); } /* helper routine to deallocate hash table elements */ static gboolean destroy_element (gpointer key, gpointer value, gpointer data) { g_free(key); g_list_free((GList*) value); return TRUE; } /* deallocate the data structures associate with the folder hash table */ static void destroy_folder_hash(GHashTable *folders) { /* iterate through the hash table to destroy the lists it contains, before destroying *the table itself */ g_hash_table_foreach_remove (folders, destroy_element, NULL); g_hash_table_destroy(folders); } /* walk through the file list and try to generate folders to group files with similar subjects */ static GList* assemble_folders (GList *file_list) { GList *current_item; nntp_file *current_file; GHashTable *folders; GList* file_list_ptr; /* need indirection for file list head */ file_list_ptr = file_list; /* make a pass through the files grouping the ones with matching foldernames. Use a hash * table for fast lookups */ folders = g_hash_table_new (g_str_hash, g_str_equal); current_item = file_list_ptr; while (current_item != NULL) { current_file = (nntp_file*) current_item->data; if (current_file->folder_name != NULL) { add_file_to_folder (folders, current_file); } current_item = current_item->next; } /* make a pass through the folder list to remove contained files from the file list */ remove_contained_files (folders, &file_list_ptr); /* generate folders from the hash table (not singletons) */ generate_folders (folders, &file_list_ptr); /* deallocate resources now that we're done */ destroy_folder_hash (folders); return file_list_ptr; } /* this is the main loop for assembling the files. It issues the passed in * overview command and then reads the headers one at a time, processing the * fragments into a list of files */ static GList* assemble_files_from_overview (NNTPConnection *conn, char *command) { GnomeVFSResult result; char *line = NULL; int message_size; int part_number, total_parts; char* filename, *folder_name, *message_id; GList *file_list; time_t mod_date; file_list = NULL; /* issue the overview command to the server */ result = do_control_write (conn, command); if (result != GNOME_VFS_OK) { return file_list; } /* read the response command, and check that it's the right number (eventually) */ result = read_response_line (conn, &line); g_free(line); if (result != GNOME_VFS_OK) { return file_list; } while (TRUE) { result = read_response_line (conn, &line); if (line[0] != '.' && line[1] != '\r') { if (parse_header (line, &filename, &folder_name, &message_id, &message_size, &part_number, &total_parts, &mod_date)) { file_list = add_file_fragment (file_list, filename, folder_name, message_id, message_size, part_number, total_parts, mod_date); g_free (filename); g_free (folder_name); g_free (message_id); } } else { break; } g_free(line); } file_list = remove_partial_files (file_list); update_file_sizes (file_list); file_list = assemble_folders (file_list); return file_list; } /* newsgroup files aren't local */ gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return FALSE; } static void prepare_to_read_file (NNTPConnection *conn, nntp_file *file) { conn->current_file = file; conn->current_fragment = NULL; conn->buffer_offset = 0; conn->amount_in_buffer = 0; conn->eof_flag = FALSE; conn->uu_decode_mode = FALSE; conn->base_64_decode_mode = FALSE; nntp_connection_reset_buffer (conn); } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { GnomeVFSResult result; NNTPConnection *conn; nntp_file *file; const char* basename; /* we can save allocating a connection to search for the .directory file */ basename = gnome_vfs_uri_extract_short_name(uri); if (strcmp(basename, ".directory") == 0) { return GNOME_VFS_ERROR_NOT_FOUND; } result = nntp_connection_acquire (uri, &conn, context); if (result != GNOME_VFS_OK) return result; /* make sure we have the file */ file = nntp_file_from_uri(conn, uri); if (file == NULL) { nntp_connection_release (conn); return GNOME_VFS_ERROR_NOT_FOUND; } else { prepare_to_read_file (conn, file); } if (result == GNOME_VFS_OK) { *method_handle = (GnomeVFSMethodHandle *) conn; } else { *method_handle = NULL; nntp_connection_release (conn); } return result; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { NNTPConnection *conn = (NNTPConnection *) method_handle; nntp_connection_release (conn); return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { NNTPConnection *conn = (NNTPConnection * )method_handle; return nntp_file_read(conn, buffer, num_bytes, bytes_read); } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { const char* host_name; const char* temp_str, *first_slash; GnomeVFSURI *parent = gnome_vfs_uri_get_parent (uri); GnomeVFSResult result; host_name = gnome_vfs_uri_get_host_name(uri); if (host_name == NULL) { return GNOME_VFS_ERROR_INVALID_HOST_NAME; } /* if it's the top level newsgroup, treat it like a directory */ temp_str = gnome_vfs_uri_get_path(uri); first_slash = strchr(temp_str + 1, '/'); if (parent == NULL || first_slash == NULL) { /* this is a request for info about the root directory */ file_info->name = g_strdup("/"); file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->mime_type = g_strdup ("x-directory/normal"); file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_GROUP_READ | GNOME_VFS_PERM_OTHER_READ; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } else { GnomeVFSMethodHandle *method_handle; char *name; result = do_open_directory (method, &method_handle, parent, options, context); gnome_vfs_uri_unref (parent); if (result != GNOME_VFS_OK) { return result; } name = gnome_vfs_uri_extract_short_name (uri); while (result == GNOME_VFS_OK) { result = do_read_directory (method, method_handle, file_info, context); if (result == GNOME_VFS_OK) { if (file_info->name && !strcmp (file_info->name, name)) { g_free (name); do_close_directory( method, method_handle, context); return GNOME_VFS_OK; } gnome_vfs_file_info_clear (file_info); } } do_close_directory(method, method_handle, context); } return GNOME_VFS_ERROR_NOT_FOUND; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { return do_get_file_info (method, ((NNTPConnection *)method_handle)->uri, file_info, options, context); } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { char *newsgroup_name; char *directory_name, *mapped_dirname; NNTPConnection *conn; GnomeVFSResult result; nntp_file *file; GList *file_list; newsgroup_name = gnome_vfs_uri_extract_dirname (uri); directory_name = g_strdup (gnome_vfs_uri_extract_short_name (uri)); if (strcmp (newsgroup_name, "/") == 0 || strlen(newsgroup_name) == 0) { g_free (newsgroup_name); newsgroup_name = directory_name; directory_name = NULL; } if (newsgroup_name == NULL) { g_free(directory_name); return GNOME_VFS_ERROR_NOT_FOUND; } newsgroup_name = strip_slashes (newsgroup_name); result = nntp_connection_acquire (uri, &conn, context); if (result != GNOME_VFS_OK) { g_free (newsgroup_name); g_free (directory_name); return result; } /* get the files from the newsgroup */ result = get_files_from_newsgroup (conn, newsgroup_name, &file_list); if (result != GNOME_VFS_OK) { g_free (newsgroup_name); g_free (directory_name); nntp_connection_release(conn); return result; } if (directory_name == NULL) { conn->next_file = file_list; } else { if (file_list == NULL) { file = NULL; } else { mapped_dirname = gnome_vfs_unescape_string (directory_name, ""); file = look_up_file (file_list, mapped_dirname, TRUE); g_free (mapped_dirname); } if (file == NULL) { g_message ("couldnt find file %s", directory_name); return GNOME_VFS_ERROR_NOT_FOUND; } if (file->is_directory) { conn->next_file = file->part_list; } else { conn->next_file = NULL; } } if (result != GNOME_VFS_OK) { g_message ("couldnt set group!"); nntp_connection_release (conn); g_free (newsgroup_name); g_free (directory_name); return result; } *method_handle = (GnomeVFSMethodHandle *) conn; g_free (newsgroup_name); g_free (directory_name); return result; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { NNTPConnection *conn = (NNTPConnection *) method_handle; nntp_connection_release (conn); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { NNTPConnection *conn = (NNTPConnection *) method_handle; nntp_file *file_data; const char* mime_string; if (!conn->next_file) return GNOME_VFS_ERROR_EOF; /* fill out the information for the current file, and bump the pointer */ gnome_vfs_file_info_clear(file_info); /* implement the size threshold by skipping files smaller than the threshold */ file_data = (nntp_file*) conn->next_file->data; while (file_data->file_size < MIN_FILE_SIZE_THRESHOLD && !file_data->is_directory) { conn->next_file = conn->next_file->next; if (conn->next_file == NULL) { return GNOME_VFS_ERROR_EOF; } else { file_data = (nntp_file*) conn->next_file->data; } } file_info->name = g_strdup(file_data->file_name); file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_GROUP_READ | GNOME_VFS_PERM_USER_WRITE |GNOME_VFS_PERM_OTHER_READ; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS | GNOME_VFS_FILE_INFO_FIELDS_MTIME; /* handle the case when it's a directory */ if (file_data->is_directory) { file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->mime_type = g_strdup ("x-directory/normal"); file_info->mtime = file_data->mod_date; file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_GROUP_READ | GNOME_VFS_PERM_USER_WRITE | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_USER_EXEC | GNOME_VFS_PERM_GROUP_EXEC | GNOME_VFS_PERM_OTHER_EXEC; } else { file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->mtime = file_data->mod_date; /* figure out the mime type from the extension; if it's unrecognized, use "text/plain" * instead of "application/octet-stream" */ mime_string = gnome_vfs_mime_type_from_name(file_data->file_name); if (strcmp(mime_string, "application/octet-stream") == 0) { file_info->mime_type = g_strdup("text/plain"); } else { file_info->mime_type = g_strdup(mime_string); } file_info->size = file_data->file_size; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SIZE; } conn->next_file = conn->next_file->next; return GNOME_VFS_OK; } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { *same_fs_return = nntp_connection_uri_equal (a,b); return GNOME_VFS_OK; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, NULL, /* create */ do_close, do_read, NULL, /* write */ NULL, /* seek */ NULL, /* tell */ NULL, /* truncate */ do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, NULL, /* make_directory */ NULL, /* remove directory */ NULL, /* move */ NULL, /* unlink */ do_check_same_fs, NULL, /* set_file_info */ NULL, /* truncate */ NULL, /* find_directory */ NULL /* create_symbolic_link */ }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { #ifdef HAVE_GCONF char *argv[] = {"vfs-nntp-method"}; int argc = 1; /* Ensure GConf is initialized. If more modules start to rely on * GConf, then this should probably be moved into a more * central location */ if (!gconf_is_initialized ()) { /* auto-initializes OAF if necessary */ gconf_init (argc, argv, NULL); } #endif return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { } gnome-vfs-2.24.4/modules/inotify-path.c0000644000175000001440000002214411334251016014647 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* inotify-helper.c - Gnome VFS Monitor based on inotify. Copyright (C) 2006 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: John McCutchan */ #include "config.h" /* Don't put conflicting kernel types in the global namespace: */ #define __KERNEL_STRICT_NAMES #include #include #include #include #include #include "inotify-kernel.h" #include "inotify-path.h" #include "inotify-missing.h" #define IP_INOTIFY_MASK (IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_DELETE|IN_CREATE|IN_DELETE_SELF|IN_UNMOUNT|IN_MOVE_SELF) typedef struct ip_watched_dir_s { char *path; /* TODO: We need to maintain a tree of watched directories * so that we can deliver move/delete events to sub folders. * Or the application could do it... */ struct ip_watched_dir_s *parent; GList * children; /* Inotify state */ gint32 wd; /* List of inotify subscriptions */ GList *subs; } ip_watched_dir_t; static gboolean ip_debug_enabled = FALSE; #define IP_W if (ip_debug_enabled) g_warning /* path -> ip_watched_dir */ static GHashTable * path_dir_hash = NULL; /* ih_sub_t * -> ip_watched_dir * * * Each subscription is attached to a watched directory or it is on * the missing list */ static GHashTable * sub_dir_hash = NULL; /* This hash holds GLists of ip_watched_dir_t *'s * We need to hold a list because symbolic links can share * the same wd */ static GHashTable * wd_dir_hash = NULL; static ip_watched_dir_t * ip_watched_dir_new (const char *path, int wd); static void ip_watched_dir_free (ip_watched_dir_t *dir); static void ip_event_callback (ik_event_t *event); static void (*event_callback)(ik_event_t *event, ih_sub_t *sub); gboolean ip_startup (void (*cb)(ik_event_t *event, ih_sub_t *sub)) { static gboolean initialized = FALSE; static gboolean result = FALSE; if (initialized == TRUE) { return result; } initialized = TRUE; event_callback = cb; result = ik_startup (ip_event_callback); if (!result) { return FALSE; } path_dir_hash = g_hash_table_new(g_str_hash, g_str_equal); sub_dir_hash = g_hash_table_new(g_direct_hash, g_direct_equal); wd_dir_hash = g_hash_table_new(g_direct_hash, g_direct_equal); return TRUE; } static void ip_map_path_dir (const char *path, ip_watched_dir_t *dir) { g_assert (path && dir); g_hash_table_insert(path_dir_hash, dir->path, dir); } static void ip_map_sub_dir (ih_sub_t *sub, ip_watched_dir_t *dir) { /* Associate subscription and directory */ g_assert (dir && sub); g_hash_table_insert (sub_dir_hash, sub, dir); dir->subs = g_list_prepend (dir->subs, sub); } static void ip_map_wd_dir (gint32 wd, ip_watched_dir_t *dir) { g_assert (wd >= 0 && dir); GList *dir_list = g_hash_table_lookup (wd_dir_hash, GINT_TO_POINTER(wd)); dir_list = g_list_prepend (dir_list, dir); g_hash_table_replace(wd_dir_hash, GINT_TO_POINTER(dir->wd), dir_list); } gboolean ip_start_watching (ih_sub_t *sub) { gint32 wd; int err; ip_watched_dir_t *dir; g_assert (sub); g_assert (!sub->cancelled); g_assert (sub->dirname); IP_W("Starting to watch %s\n", sub->dirname); dir = g_hash_table_lookup (path_dir_hash, sub->dirname); if (dir) { IP_W("Already watching\n"); goto out; } IP_W("Trying to add inotify watch "); wd = ik_watch (sub->dirname, IP_INOTIFY_MASK|IN_ONLYDIR|sub->extra_flags, &err); if (wd < 0) { IP_W("Failed\n"); return FALSE; } else { /* Create new watched directory and associate it with the * wd hash and path hash */ IP_W("Success\n"); dir = ip_watched_dir_new (sub->dirname, wd); ip_map_wd_dir (wd, dir); ip_map_path_dir (sub->dirname, dir); } out: ip_map_sub_dir (sub, dir); return TRUE; } static void ip_unmap_path_dir (const char *path, ip_watched_dir_t *dir) { g_assert (path && dir); g_hash_table_remove (path_dir_hash, dir->path); } static void ip_unmap_wd_dir (gint32 wd, ip_watched_dir_t *dir) { GList *dir_list = g_hash_table_lookup (wd_dir_hash, GINT_TO_POINTER(wd)); if (!dir_list) return; g_assert (wd >= 0 && dir); dir_list = g_list_remove (dir_list, dir); if (dir_list == NULL) { g_hash_table_remove (wd_dir_hash, GINT_TO_POINTER(dir->wd)); } else { g_hash_table_replace (wd_dir_hash, GINT_TO_POINTER(dir->wd), dir_list); } } static void ip_unmap_wd (gint32 wd) { GList *dir_list = g_hash_table_lookup (wd_dir_hash, GINT_TO_POINTER(wd)); if (!dir_list) return; g_assert (wd >= 0); g_hash_table_remove (wd_dir_hash, GINT_TO_POINTER(wd)); g_list_free (dir_list); } static void ip_unmap_sub_dir (ih_sub_t *sub, ip_watched_dir_t *dir) { g_assert (sub && dir); g_hash_table_remove (sub_dir_hash, sub); dir->subs = g_list_remove (dir->subs, sub); } static void ip_unmap_all_subs (ip_watched_dir_t *dir) { GList *l = NULL; for (l = dir->subs; l; l = l->next) { ih_sub_t *sub = l->data; g_hash_table_remove (sub_dir_hash, sub); } g_list_free (dir->subs); dir->subs = NULL; } gboolean ip_stop_watching (ih_sub_t *sub) { ip_watched_dir_t *dir = NULL; dir = g_hash_table_lookup (sub_dir_hash, sub); if (!dir) { return TRUE; } ip_unmap_sub_dir (sub, dir); /* No one is subscribing to this directory any more */ if (dir->subs == NULL) { ik_ignore (dir->path, dir->wd); ip_unmap_wd_dir (dir->wd, dir); ip_unmap_path_dir (dir->path, dir); ip_watched_dir_free (dir); } return TRUE; } static ip_watched_dir_t * ip_watched_dir_new (const char *path, gint32 wd) { ip_watched_dir_t *dir = g_new0(ip_watched_dir_t, 1); dir->path = g_strdup(path); dir->wd = wd; return dir; } static void ip_watched_dir_free (ip_watched_dir_t * dir) { g_assert (dir->subs == NULL); g_free(dir->path); g_free(dir); } static void ip_wd_delete (gpointer data, gpointer user_data) { ip_watched_dir_t *dir = data; GList *l = NULL; for (l = dir->subs; l; l = l->next) { ih_sub_t *sub = l->data; /* Add subscription to missing list */ im_add (sub); } ip_unmap_all_subs (dir); /* Unassociate the path and the directory */ ip_unmap_path_dir (dir->path, dir); ip_watched_dir_free (dir); } static void ip_event_dispatch (GList *dir_list, GList *pair_dir_list, ik_event_t *event) { GList *dirl; if (!event) return; /* TODO: * * Figure out how we will deliver move events */ for (dirl = dir_list; dirl; dirl = dirl->next) { GList *subl; ip_watched_dir_t *dir = dirl->data; for (subl = dir->subs; subl; subl = subl->next) { ih_sub_t *sub = subl->data; /* If the event and the subscription have a filename * they need to match before the event could be delivered. */ if (event->name && sub->filename) { if (strcmp (event->name, sub->filename)) continue; /* If the event doesn't have a filename, but the subscription does * we shouldn't deliever the event */ } else if (sub->filename) continue; event_callback (event, sub); } } if (!event->pair) return; for (dirl = pair_dir_list; dirl; dirl = dirl->next) { GList *subl; ip_watched_dir_t *dir = dirl->data; for (subl = dir->subs; subl; subl = subl->next) { ih_sub_t *sub = subl->data; /* If the event and the subscription have a filename * they need to match before the event could be delivered. */ if (event->pair->name && sub->filename) { if (strcmp (event->pair->name, sub->filename)) continue; /* If the event doesn't have a filename, but the subscription does * we shouldn't deliever the event */ } else if (sub->filename) continue; event_callback (event->pair, sub); } } } static void ip_event_callback (ik_event_t *event) { GList *dir_list = NULL; GList *pair_dir_list = NULL; dir_list = g_hash_table_lookup (wd_dir_hash, GINT_TO_POINTER(event->wd)); /* We can ignore IN_IGNORED events */ if (event->mask & IN_IGNORED) { ik_event_free (event); return; } if (event->pair) pair_dir_list = g_hash_table_lookup (wd_dir_hash, GINT_TO_POINTER(event->pair->wd)); if (event->mask & IP_INOTIFY_MASK) ip_event_dispatch (dir_list, pair_dir_list, event); /* We have to manage the missing list when we get a DELETE/UNMOUNT event. */ if (event->mask & IN_DELETE_SELF || event->mask & IN_MOVE_SELF || event->mask & IN_UNMOUNT) { /* Add all subscriptions to missing list */ g_list_foreach (dir_list, ip_wd_delete, NULL); /* Unmap all directories attached to this wd */ ip_unmap_wd (event->wd); } ik_event_free (event); } gnome-vfs-2.24.4/modules/http-proxy.c0000644000175000001440000003700311334251016014372 00000000000000/* ************************************************************************* */ /* FIXME: Move this to gnome-vfs-proxy () so we can reuse that in ftp too */ /* Proxy Stuff .. not cleaned yet, completely taken from the old http module Ettore Perazzoli (core HTTP) Ian McKellar (WebDAV/PUT) Michael Fleming (Caching, Cleanup) */ #include /* Keep above any network includes for FreeBSD. */ #include /* Keep above for FreeBSD. */ #include #include #include #include #include #include #include /* for atoi */ #include #include #include #include #include #include "http-proxy.h" /* #define DEBUG_HTTP(x) (g_print x) */ #define DEBUG_HTTP(x) /* Standard HTTP proxy port */ #define DEFAULT_HTTP_PROXY_PORT 8080 /* GConf paths and keys */ #define PATH_GCONF_GNOME_VFS "/system/http_proxy" #define ITEM_GCONF_HTTP_PROXY_PORT "port" #define ITEM_GCONF_HTTP_PROXY_HOST "host" #define KEY_GCONF_HTTP_PROXY_PORT (PATH_GCONF_GNOME_VFS "/" ITEM_GCONF_HTTP_PROXY_PORT) #define KEY_GCONF_HTTP_PROXY_HOST (PATH_GCONF_GNOME_VFS "/" ITEM_GCONF_HTTP_PROXY_HOST) #define ITEM_GCONF_USE_HTTP_PROXY "use_http_proxy" #define KEY_GCONF_USE_HTTP_PROXY (PATH_GCONF_GNOME_VFS "/" ITEM_GCONF_USE_HTTP_PROXY) #define KEY_GCONF_HTTP_AUTH_USER (PATH_GCONF_GNOME_VFS "/" "authentication_user") #define KEY_GCONF_HTTP_AUTH_PW (PATH_GCONF_GNOME_VFS "/" "authentication_password") #define KEY_GCONF_HTTP_USE_AUTH (PATH_GCONF_GNOME_VFS "/" "use_authentication") #define KEY_GCONF_HTTP_PROXY_IGNORE_HOSTS (PATH_GCONF_GNOME_VFS "/" "ignore_hosts") /* Global variables used by the HTTP proxy config */ static GConfClient *gl_client = NULL; static GMutex *gl_mutex = NULL; /* This mutex protects preference values * and ensures serialization of authentication * hook callbacks */ static gchar *gl_http_proxy = NULL; static GSList *gl_ignore_hosts = NULL; /* Elements are strings. */ static GSList *gl_ignore_addrs = NULL; /* Elements are ProxyHostAddrs */ static gchar *proxy_username = NULL; static gchar *proxy_password = NULL; /* Store IP addresses that may represent network or host addresses and may be * IPv4 or IPv6. */ typedef enum { PROXY_IPv4 = 4, PROXY_IPv6 = 6 } ProxyAddrType; typedef struct { ProxyAddrType type; struct in_addr addr; struct in_addr mask; #ifdef ENABLE_IPV6 struct in6_addr addr6; struct in6_addr mask6; #endif } ProxyHostAddr; #ifdef ENABLE_IPV6 static void ipv6_network_addr(const struct in6_addr *addr, const struct in6_addr *mask, struct in6_addr *res); /*Check whether the node is IPv6 enabled.*/ static gboolean have_ipv6(void) { int s; s = socket(AF_INET6, SOCK_STREAM, 0); if (s != -1) { close(s); return TRUE; } return FALSE; } # endif /* FIXME: should be done using AC_REPLACE_FUNCS */ #ifndef HAVE_INET_PTON static int inet_pton(int af, const char *hostname, void *pton) { struct in_addr in; if (!inet_aton(hostname, &in)) return 0; memcpy(pton, &in, sizeof(in)); return 1; } #endif #ifdef ENABLE_IPV6 static void ipv6_network_addr(const struct in6_addr *addr, const struct in6_addr *mask, struct in6_addr *res) { gint i; for (i = 0; i < 16; ++i) { res->s6_addr[i] = addr->s6_addr[i] & mask->s6_addr[i]; } } #endif /** * host_port_from_string * splits a : formatted string into its separate components */ static gboolean host_port_from_string(const char *http_proxy, char **p_proxy_host, guint * p_proxy_port) { char *port_part; port_part = strchr(http_proxy, ':'); if (port_part && '\0' != ++port_part && p_proxy_port) { *p_proxy_port = (guint) strtoul(port_part, NULL, 10); } else if (p_proxy_port) { *p_proxy_port = DEFAULT_HTTP_PROXY_PORT; } if (p_proxy_host) { if (port_part != http_proxy) { *p_proxy_host = g_strndup(http_proxy, port_part - http_proxy - 1); } else { return FALSE; } } return TRUE; } static gboolean proxy_should_for_hostname(const char *hostname) { #ifdef ENABLE_IPV6 struct in6_addr in6, net6; #endif struct in_addr in; GSList *elt; ProxyHostAddr *addr; /* IPv4 address */ if (inet_pton(AF_INET, hostname, &in) > 0) { for (elt = gl_ignore_addrs; elt; elt = g_slist_next(elt)) { addr = (ProxyHostAddr *) (elt->data); if (addr->type == PROXY_IPv4 && (in.s_addr & addr->mask.s_addr) == addr->addr.s_addr) { DEBUG_HTTP(("Host %s using direct connection.", hostname)); return FALSE; } } } #ifdef ENABLE_IPV6 else if (have_ipv6() && inet_pton(AF_INET6, hostname, &in6)) { for (elt = gl_ignore_addrs; elt; elt = g_slist_next(elt)) { addr = (ProxyHostAddr *) (elt->data); ipv6_network_addr(&in6, &addr->mask6, &net6); if (addr->type == PROXY_IPv6 && IN6_ARE_ADDR_EQUAL(&net6, &addr->addr6)) { DEBUG_HTTP(("Host %s using direct connection.", hostname)); return FALSE; } /* Handle IPv6-wrapped IPv4 addresses. */ else if (addr->type == PROXY_IPv4 && IN6_IS_ADDR_V4MAPPED(&net6)) { guint32 v4addr; v4addr = net6.s6_addr[12] << 24 | net6. s6_addr[13] << 16 | net6. s6_addr[14] << 8 | net6.s6_addr[15]; if ((v4addr & addr->mask.s_addr) != addr->addr.s_addr) { DEBUG_HTTP(("Host %s using direct connection.", hostname)); return FALSE; } } } } #endif /* All hostnames (foo.bar.com) -- independent of IPv4 or IPv6 */ /* If there are IPv6 addresses in the ignore_hosts list but we do not * have IPv6 available at runtime, then those addresses will also fall * through to here (and harmlessly fail to match). */ else { gchar *hn = g_ascii_strdown(hostname, -1); for (elt = gl_ignore_hosts; elt; elt = g_slist_next(elt)) { if (*(gchar *) (elt->data) == '*') { if (g_str_has_suffix(hn, (gchar *) (elt->data) + 1)) { DEBUG_HTTP(("Host %s using direct connection.", hn)); g_free(hn); return FALSE; } } else if (strcmp(hn, elt->data) == 0) { DEBUG_HTTP(("Host %s using direct connection.", hn)); g_free(hn); return FALSE; } } g_free(hn); } return TRUE; } /** * proxy_for_uri * Retrives an appropriate HTTP proxy for a given toplevel uri * Currently, only a single HTTP proxy is implemented (there's no way for * specifying non-proxy domain names's). Returns FALSE if the connect should * take place directly */ gboolean proxy_for_uri (GnomeVFSToplevelURI *toplevel_uri, HttpProxyInfo *proxy_info) { gboolean ret; ret = proxy_should_for_hostname (toplevel_uri->host_name); g_mutex_lock (gl_mutex); if (ret && gl_http_proxy != NULL) { ret = host_port_from_string(gl_http_proxy, &(proxy_info->host), &(proxy_info->port)); if (ret) { proxy_info->username = proxy_username; proxy_info->password = proxy_password; } } else { ret = FALSE; } g_mutex_unlock(gl_mutex); return ret; } /* * Here's how the gconf gnome-vfs HTTP proxy variables * are intended to be used * * /system/http_proxy/use_http_proxy * Type: boolean * If set to TRUE, the client should use an HTTP proxy to connect to all * servers (except those specified in the ignore_hosts key -- see below). * The proxy is specified in other gconf variables below. * * /system/http_proxy/host * Type: string * The hostname of the HTTP proxy this client should use. If * use-http-proxy is TRUE, this should be set. If it is not set, the * application should behave as if use-http-proxy is was set to FALSE. * * /system/http_proxy/port * Type: int * The port number on the HTTP proxy host that the client should connect to * If use_http_proxy and host are set but this is not set, the application * should use a default port value of 8080 * * /system/http_proxy/authentication-user * Type: string * Username to pass to an authenticating HTTP proxy. * * /system/http_proxy/authentication_password * Type: string * Password to pass to an authenticating HTTP proxy. * * /system/http_proxy/use-authentication * Type: boolean * TRUE if the client should pass http-proxy-authorization-user and * http-proxy-authorization-password an HTTP proxy * * /system/http_proxy/ignore_hosts * Type: list of strings * A list of hosts (hostnames, wildcard domains, IP addresses, and CIDR * network addresses) that should be accessed directly. */ static void parse_ignore_host(gpointer data, gpointer user_data) { gchar *hostname, *input, *netmask; gboolean ip_addr = FALSE, has_error = FALSE; struct in_addr host; #ifdef ENABLE_IPV6 struct in6_addr host6, mask6; gint i; #endif ProxyHostAddr *elt; input = (gchar *) data; elt = g_new0(ProxyHostAddr, 1); if ((netmask = strchr(input, '/')) != NULL) { hostname = g_strndup(input, netmask - input); ++netmask; } else { hostname = g_ascii_strdown(input, -1); } if (inet_pton(AF_INET, hostname, &host) > 0) { ip_addr = TRUE; elt->type = PROXY_IPv4; elt->addr.s_addr = host.s_addr; if (netmask) { gchar *endptr; gint width = strtol(netmask, &endptr, 10); if (*endptr != '\0' || width < 0 || width > 32) { has_error = TRUE; } elt->mask.s_addr = htonl(~0 << width); elt->addr.s_addr &= elt->mask.s_addr; } else { elt->mask.s_addr = 0xffffffff; } } #ifdef ENABLE_IPV6 else if (have_ipv6() && inet_pton(AF_INET6, hostname, &host6) > 0) { ip_addr = TRUE; elt->type = PROXY_IPv6; for (i = 0; i < 16; ++i) { elt->addr6.s6_addr[i] = host6.s6_addr[i]; } if (netmask) { gchar *endptr; gint width = strtol(netmask, &endptr, 10); if (*endptr != '\0' || width < 0 || width > 128) { has_error = TRUE; } for (i = 0; i < 16; ++i) { elt->mask6.s6_addr[i] = 0; } for (i = 0; i < width / 8; i++) { elt->mask6.s6_addr[i] = 0xff; } elt->mask6.s6_addr[i] = (0xff << (8 - width % 8)) & 0xff; ipv6_network_addr(&elt->addr6, &mask6, &elt->addr6); } else { for (i = 0; i < 16; ++i) { elt->mask6.s6_addr[i] = 0xff; } } } #endif if (ip_addr) { if (!has_error) { gchar *dst = g_new0(gchar, INET_ADDRSTRLEN); gl_ignore_addrs = g_slist_append(gl_ignore_addrs, elt); DEBUG_HTTP(("Host %s/%s does not go through proxy.", hostname, inet_ntop(AF_INET, &elt->mask, dst, INET_ADDRSTRLEN))); g_free(dst); } g_free(hostname); } else { /* It is a hostname. */ gl_ignore_hosts = g_slist_append(gl_ignore_hosts, hostname); DEBUG_HTTP(("Host %s does not go through proxy.", hostname)); g_free(elt); } } static void construct_gl_http_proxy(gboolean use_proxy) { g_free(gl_http_proxy); gl_http_proxy = NULL; g_slist_foreach(gl_ignore_hosts, (GFunc) g_free, NULL); g_slist_free(gl_ignore_hosts); gl_ignore_hosts = NULL; g_slist_foreach(gl_ignore_addrs, (GFunc) g_free, NULL); g_slist_free(gl_ignore_addrs); gl_ignore_addrs = NULL; if (use_proxy) { char *proxy_host; int proxy_port; GSList *ignore; proxy_host = gconf_client_get_string(gl_client, KEY_GCONF_HTTP_PROXY_HOST, NULL); proxy_port = gconf_client_get_int(gl_client, KEY_GCONF_HTTP_PROXY_PORT, NULL); if (proxy_host && proxy_host[0] != '\0') { if (0 != proxy_port && 0xffff >= (unsigned) proxy_port) { gl_http_proxy = g_strdup_printf("%s:%u", proxy_host, (unsigned) proxy_port); } else { gl_http_proxy = g_strdup_printf("%s:%u", proxy_host, (unsigned) DEFAULT_HTTP_PROXY_PORT); } DEBUG_HTTP(("New HTTP proxy: '%s'", gl_http_proxy)); } else { DEBUG_HTTP(("HTTP proxy unset")); } g_free(proxy_host); proxy_host = NULL; ignore = gconf_client_get_list(gl_client, KEY_GCONF_HTTP_PROXY_IGNORE_HOSTS, GCONF_VALUE_STRING, NULL); g_slist_foreach(ignore, (GFunc) parse_ignore_host, NULL); g_slist_foreach(ignore, (GFunc) g_free, NULL); g_slist_free(ignore); ignore = NULL; } } static void set_proxy_auth(gboolean use_proxy_auth) { char *auth_user; char *auth_pw; auth_user = gconf_client_get_string(gl_client, KEY_GCONF_HTTP_AUTH_USER, NULL); auth_pw = gconf_client_get_string(gl_client, KEY_GCONF_HTTP_AUTH_PW, NULL); if (use_proxy_auth) { /* Christian Kellner: Here are the only changes I made to the proxy sub- * system */ proxy_username = (auth_user != NULL ? g_strdup(auth_user) : NULL); proxy_password = (auth_pw != NULL ? g_strdup(auth_pw) : NULL); DEBUG_HTTP(("New HTTP proxy auth user: '%s'", auth_user)); } else { if (proxy_username != NULL) g_free(proxy_username); if (proxy_password != NULL) g_free(proxy_password); proxy_username = proxy_password = NULL; DEBUG_HTTP(("HTTP proxy auth unset")); } g_free(auth_user); g_free(auth_pw); } /** * sig_gconf_value_changed * GGconf notify function for when HTTP proxy GConf key has changed. */ static void notify_gconf_value_changed(GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer data) { const char *key; key = gconf_entry_get_key(entry); if (strcmp(key, KEY_GCONF_USE_HTTP_PROXY) == 0 || strcmp(key, KEY_GCONF_HTTP_PROXY_IGNORE_HOSTS) == 0 || strcmp(key, KEY_GCONF_HTTP_PROXY_HOST) == 0 || strcmp(key, KEY_GCONF_HTTP_PROXY_PORT) == 0) { gboolean use_proxy_value; g_mutex_lock(gl_mutex); /* Check and see if we are using the proxy */ use_proxy_value = gconf_client_get_bool(gl_client, KEY_GCONF_USE_HTTP_PROXY, NULL); construct_gl_http_proxy(use_proxy_value); g_mutex_unlock(gl_mutex); } else if (strcmp(key, KEY_GCONF_HTTP_AUTH_USER) == 0 || strcmp(key, KEY_GCONF_HTTP_AUTH_PW) == 0 || strcmp(key, KEY_GCONF_HTTP_USE_AUTH) == 0) { gboolean use_proxy_auth; g_mutex_lock(gl_mutex); use_proxy_auth = gconf_client_get_bool(gl_client, KEY_GCONF_HTTP_USE_AUTH, NULL); set_proxy_auth(use_proxy_auth); g_mutex_unlock(gl_mutex); } } void proxy_init(void) { GError *gconf_error = NULL; gboolean use_proxy; gboolean use_proxy_auth; gl_client = gconf_client_get_default(); gl_mutex = g_mutex_new(); gconf_client_add_dir(gl_client, PATH_GCONF_GNOME_VFS, GCONF_CLIENT_PRELOAD_ONELEVEL, &gconf_error); if (gconf_error) { DEBUG_HTTP(("GConf error during client_add_dir '%s'", gconf_error->message)); g_error_free(gconf_error); gconf_error = NULL; } gconf_client_notify_add(gl_client, PATH_GCONF_GNOME_VFS, notify_gconf_value_changed, NULL, NULL, &gconf_error); if (gconf_error) { DEBUG_HTTP(("GConf error during notify_error '%s'", gconf_error->message)); g_error_free(gconf_error); gconf_error = NULL; } /* Load the http proxy setting */ use_proxy = gconf_client_get_bool(gl_client, KEY_GCONF_USE_HTTP_PROXY, &gconf_error); if (gconf_error != NULL) { DEBUG_HTTP(("GConf error during client_get_bool '%s'", gconf_error->message)); g_error_free(gconf_error); gconf_error = NULL; } else { construct_gl_http_proxy(use_proxy); } use_proxy_auth = gconf_client_get_bool(gl_client, KEY_GCONF_HTTP_USE_AUTH, &gconf_error); if (gconf_error != NULL) { DEBUG_HTTP(("GConf error during client_get_bool '%s'", gconf_error->message)); g_error_free(gconf_error); gconf_error = NULL; } else { set_proxy_auth(use_proxy_auth); } } void proxy_shutdown(void) { g_object_unref(G_OBJECT(gl_client)); } /* End of the proxy stuff */ /* ************************************************************************** */ gnome-vfs-2.24.4/modules/inotify-path.h0000644000175000001440000000220311334251016014646 00000000000000/* Copyright (C) 2005 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors:. John McCutchan */ #ifndef __INOTIFY_PATH_H #define __INOTIFY_PATH_H #include "inotify-kernel.h" #include "inotify-sub.h" gboolean ip_startup (void (*event_cb)(ik_event_t *event, ih_sub_t *sub)); gboolean ip_start_watching (ih_sub_t *sub); gboolean ip_stop_watching (ih_sub_t *sub); #endif gnome-vfs-2.24.4/modules/sftp.h0000644000175000001440000000610611334251016013215 00000000000000/* $OpenBSD: sftp.h,v 1.4 2002/02/13 00:59:23 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * draft-ietf-secsh-filexfer-01.txt */ /* version */ #define SSH2_FILEXFER_VERSION 3 /* client to server */ #define SSH2_FXP_INIT 1 #define SSH2_FXP_OPEN 3 #define SSH2_FXP_CLOSE 4 #define SSH2_FXP_READ 5 #define SSH2_FXP_WRITE 6 #define SSH2_FXP_LSTAT 7 #define SSH2_FXP_STAT_VERSION_0 7 #define SSH2_FXP_FSTAT 8 #define SSH2_FXP_SETSTAT 9 #define SSH2_FXP_FSETSTAT 10 #define SSH2_FXP_OPENDIR 11 #define SSH2_FXP_READDIR 12 #define SSH2_FXP_REMOVE 13 #define SSH2_FXP_MKDIR 14 #define SSH2_FXP_RMDIR 15 #define SSH2_FXP_REALPATH 16 #define SSH2_FXP_STAT 17 #define SSH2_FXP_RENAME 18 #define SSH2_FXP_READLINK 19 #define SSH2_FXP_SYMLINK 20 /* server to client */ #define SSH2_FXP_VERSION 2 #define SSH2_FXP_STATUS 101 #define SSH2_FXP_HANDLE 102 #define SSH2_FXP_DATA 103 #define SSH2_FXP_NAME 104 #define SSH2_FXP_ATTRS 105 #define SSH2_FXP_EXTENDED 200 #define SSH2_FXP_EXTENDED_REPLY 201 /* attributes */ #define SSH2_FILEXFER_ATTR_SIZE 0x00000001 #define SSH2_FILEXFER_ATTR_UIDGID 0x00000002 #define SSH2_FILEXFER_ATTR_PERMISSIONS 0x00000004 #define SSH2_FILEXFER_ATTR_ACMODTIME 0x00000008 #define SSH2_FILEXFER_ATTR_EXTENDED 0x80000000 /* portable open modes */ #define SSH2_FXF_READ 0x00000001 #define SSH2_FXF_WRITE 0x00000002 #define SSH2_FXF_APPEND 0x00000004 #define SSH2_FXF_CREAT 0x00000008 #define SSH2_FXF_TRUNC 0x00000010 #define SSH2_FXF_EXCL 0x00000020 /* status messages */ #define SSH2_FX_OK 0 #define SSH2_FX_EOF 1 #define SSH2_FX_NO_SUCH_FILE 2 #define SSH2_FX_PERMISSION_DENIED 3 #define SSH2_FX_FAILURE 4 #define SSH2_FX_BAD_MESSAGE 5 #define SSH2_FX_NO_CONNECTION 6 #define SSH2_FX_CONNECTION_LOST 7 #define SSH2_FX_OP_UNSUPPORTED 8 #define SSH2_FX_MAX 8 gnome-vfs-2.24.4/modules/inotify-diag.c0000644000175000001440000000356511334251016014625 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* inotify-helper.c - Gnome VFS Monitor based on inotify. Copyright (C) 2005 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: John McCutchan */ #include "config.h" #include #include #include #include #include #include "inotify-missing.h" #include "inotify-path.h" #include "inotify-diag.h" #define DIAG_DUMP_TIME 20000 /* 20 seconds */ G_LOCK_EXTERN (inotify_lock); static gboolean id_dump (gpointer userdata) { G_LOCK (inotify_lock); GIOChannel *ioc = NULL; pid_t pid = getpid(); char *fname = g_strdup_printf("/tmp/gvfsid.%d", pid); ioc = g_io_channel_new_file (fname, "w", NULL); g_free (fname); if (!ioc) { G_UNLOCK (inotify_lock); return TRUE; } im_diag_dump (ioc); g_io_channel_shutdown (ioc, TRUE, NULL); g_io_channel_unref (ioc); G_UNLOCK (inotify_lock); return TRUE; } void id_startup () { if (!g_getenv ("GNOME_VFS_INOTIFY_DIAG")) { return; } g_timeout_add (DIAG_DUMP_TIME, id_dump, NULL); } gnome-vfs-2.24.4/modules/http-neon-method.c0000644000175000001440000022321111334251016015424 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* http-neon-method.c - The HTTP method implementation for the GNOME Virtual File System using the neon http/webdav library. Copyright (C) 2004 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* neon header files */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* for getenv */ #include #include #include #include "http-proxy.h" #define DEFAULT_USER_AGENT "gnome-vfs/" VERSION /* Custom User-Agent environment variable */ #define CUSTOM_USER_AGENT_VARIABLE "GNOME_VFS_HTTP_USER_AGENT" /* Standard HTTP[S] port. */ #define DEFAULT_HTTP_PORT 80 #define DEFAULT_HTTPS_PORT 443 #define HTTP_DIR_MIME_TYPE "x-directory/webdav" /* ************************************************************************** */ /* module interfaces */ GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args); void vfs_module_shutdown (GnomeVFSMethod *method); /* ************************************************************************** */ /* DEBUGING stuff */ #ifdef DEBUG_HTTP_ENABLE void http_debug_printf(const char *func, const char *fmt, ...) G_GNUC_PRINTF (2,3); #define DEBUG_HTTP_3(fmt, ...) http_debug_printf (__PRETTY_FUNCTION__, fmt, ##__VA_ARGS__) #define DEBUG_HTTP_2(fmt, ...) http_debug_printf (__PRETTY_FUNCTION__, fmt, ##__VA_ARGS__) #define DEBUG_HTTP(fmt, ...) http_debug_printf (__PRETTY_FUNCTION__, fmt, ##__VA_ARGS__) #define DEBUG_HTTP_FUNC(_enter) http_debug_printf (_enter ? "+++" : "---", "%s",__PRETTY_FUNCTION__) #define DEBUG_HTTP_CONTEXT(c) http_debug_printf (__PRETTY_FUNCTION__, \ "[Context] Session :%p, path: %s, dav_mode %d", \ c->session, c->path, c->dav_mode) void http_debug_printf (const char *func, const char *fmt, ...) { va_list args; gchar * out; g_assert (fmt); va_start (args, fmt); out = g_strdup_vprintf (fmt, args); g_print ("HTTP:[%p] %s {in %s}\n", g_thread_self (), out, func); g_free (out); va_end (args); } #else /* DEBUG_HTTP_ENABLE */ #define DEBUG_HTTP_3(fmt, ...) #define DEBUG_HTTP_2(fmt, ...) #define DEBUG_HTTP(fmt, ...) #define DEBUG_HTTP_CONTEXT(c) #define DEBUG_HTTP_FUNC(_enter) #endif /* ************************************************************************** */ /* Http status responses and result mapping */ typedef enum { /* Successful 2xx. */ HTTP_STATUS_OK = 200, HTTP_STATUS_CREATED = 201, HTTP_STATUS_ACCEPTED = 202, HTTP_STATUS_NON_AUTHORITATIVE = 203, HTTP_STATUS_NO_CONTENT = 204, HTTP_STATUS_RESET_CONTENT = 205, HTTP_STATUS_PARTIAL_CONTENTS = 206, /* Redirection 3xx. */ HTTP_STATUS_MULTIPLE_CHOICES = 300, HTTP_STATUS_MOVED_PERMANENTLY = 301, HTTP_STATUS_MOVED_TEMPORARILY = 302, HTTP_STATUS_SEE_OTHER = 303, HTTP_STATUS_NOT_MODIFIED = 304, HTTP_STATUS_USE_PROXY = 305, /* Client error 4xx. */ HTTP_STATUS_BAD_REQUEST = 400, HTTP_STATUS_UNAUTHORIZED = 401, HTTP_STATUS_PAYMENT_REQUIRED = 402, HTTP_STATUS_FORBIDDEN = 403, HTTP_STATUS_NOT_FOUND = 404, HTTP_STATUS_METHOD_NOT_ALLOWED = 405, HTTP_STATUS_NOT_ACCEPTABLE = 406, HTTP_STATUS_PROXY_AUTH_REQUIRED = 407, HTTP_STATUS_REQUEST_TIMEOUT = 408, HTTP_STATUS_CONFLICT = 409, HTTP_STATUS_GONE = 410, HTTP_STATUS_LENGTH_REQUIRED = 411, HTTP_STATUS_PRECONDITION_FAILED = 412, HTTP_STATUS_REQENTITY_TOO_LARGE = 413, HTTP_STATUS_REQURI_TOO_LARGE = 414, HTTP_STATUS_UNSUPPORTED_MEDIA = 415, HTTP_STATUS_LOCKED = 423, /* Server errors 5xx. */ HTTP_STATUS_INTERNAL = 500, HTTP_STATUS_NOT_IMPLEMENTED = 501, HTTP_STATUS_BAD_GATEWAY = 502, HTTP_STATUS_UNAVAILABLE = 503, HTTP_STATUS_GATEWAY_TIMEOUT = 504, HTTP_STATUS_UNSUPPORTED_VERSION = 505, HTTP_STATUS_INSUFFICIENT_STORAGE = 507 } HttpStatus; static GnomeVFSResult resolve_result (int result, ne_request *request) { const ne_status *status = ne_get_status (request); switch (result) { case NE_ERROR: if (ne_gnomevfs_last_error (request) != GNOME_VFS_OK) { DEBUG_HTTP ("gle: %s", gnome_vfs_result_to_string (ne_gnomevfs_last_error (request))); return ne_gnomevfs_last_error (request); } case NE_OK: break; case NE_AUTH: case NE_PROXYAUTH: return GNOME_VFS_ERROR_ACCESS_DENIED; case NE_REDIRECT: case NE_RETRY: g_assert_not_reached (); break; case NE_LOOKUP: return GNOME_VFS_ERROR_HOST_NOT_FOUND; case NE_TIMEOUT: return GNOME_VFS_ERROR_TIMEOUT; case NE_CONNECT: if (ne_gnomevfs_last_error (request) != GNOME_VFS_OK) { DEBUG_HTTP ("gle: %s", gnome_vfs_result_to_string (ne_gnomevfs_last_error (request))); return ne_gnomevfs_last_error (request); } case NE_FAILED: default: return GNOME_VFS_ERROR_GENERIC; } if (status->klass == 2) return (GNOME_VFS_OK); /* mostly taken from the old http-method.c source code */ switch (status->code) { /* If this mapping is not true it should be handled inside the specific function */ case HTTP_STATUS_PRECONDITION_FAILED: return GNOME_VFS_ERROR_FILE_EXISTS; case HTTP_STATUS_UNAUTHORIZED: case HTTP_STATUS_FORBIDDEN: case HTTP_STATUS_PROXY_AUTH_REQUIRED: return GNOME_VFS_ERROR_ACCESS_DENIED; case HTTP_STATUS_NOT_FOUND: return GNOME_VFS_ERROR_NOT_FOUND; case HTTP_STATUS_METHOD_NOT_ALLOWED: case HTTP_STATUS_BAD_REQUEST: case HTTP_STATUS_NOT_IMPLEMENTED: case HTTP_STATUS_UNSUPPORTED_VERSION: return GNOME_VFS_ERROR_NOT_SUPPORTED; case HTTP_STATUS_CONFLICT: return GNOME_VFS_ERROR_NOT_FOUND; case HTTP_STATUS_LOCKED: return GNOME_VFS_ERROR_LOCKED; case HTTP_STATUS_INSUFFICIENT_STORAGE: return GNOME_VFS_ERROR_NO_SPACE; default: return GNOME_VFS_ERROR_GENERIC; } return GNOME_VFS_ERROR_GENERIC; } #define IS_REDIRECT(_X) ((_X) == 301 || (_X) == 302 || \ (_X) == 303 || (_X) == 307) #define IS_AUTH_REQ(_X) ((_X) == 401 || (_X) == 407) #define IS_AUTH_FAILED(_X) ((_X) == 401 || (_X) == 407 || (_X) == 403) /* ************************************************************************** */ /* Utility functions */ typedef enum { DAV_CLASS_NOT_SET = -1, NO_DAV = 0, DAV_CLASS_1 = 1, DAV_CLASS_2 = 2 } DavClass; typedef struct { char *scheme; gboolean ssl; char *alias; gboolean is_dav; } MethodSchemes; static const MethodSchemes supported_schemes[] = { {"http", FALSE, "http", FALSE}, {"dav", FALSE, "http", TRUE}, {"https", TRUE, "https", FALSE}, {"davs", TRUE, "https", TRUE}, {NULL, FALSE, NULL} }; static char * resolve_alias (const char *scheme) { const MethodSchemes *iter; if (scheme == NULL) return NULL; for (iter = supported_schemes; iter->scheme; iter++) { if (! g_ascii_strcasecmp (iter->scheme, scheme)) break; } if (iter == NULL) return NULL; return iter->alias; } static gboolean scheme_is_dav (GnomeVFSURI *uri) { const char *scheme; scheme = gnome_vfs_uri_get_scheme (uri); if (scheme == NULL) return FALSE; if (! g_ascii_strcasecmp (scheme, "dav") || ! g_ascii_strcasecmp (scheme, "davs")) return TRUE; return FALSE; } static guint http_session_uri_hash (gconstpointer v) { GnomeVFSURI *uri; guint hash; uri = (GnomeVFSURI *) v; hash = g_str_hash (gnome_vfs_uri_get_host_name (uri)); hash += g_str_hash (resolve_alias (gnome_vfs_uri_get_scheme (uri))); hash += gnome_vfs_uri_get_host_port (uri); if (gnome_vfs_uri_get_user_name (uri)) hash += g_str_hash (gnome_vfs_uri_get_user_name (uri)); return hash; } #if 0 static gboolean g_str_equal_allow_nulls (const char *s1, const char *s2) { return g_str_equal (s1 == NULL ? "" : s1, s2 == NULL ? "" : s2); } /* Allow all certificates. */ static int ignore_verify (void *ud, int fs, const ne_ssl_certificate *cert) { return 0; } #endif static gboolean http_session_uri_equal (gconstpointer v, gconstpointer v2) { GnomeVFSURI *a, *b; char *sa, *sb; a = (GnomeVFSURI *) v; b = (GnomeVFSURI *) v2; sa = resolve_alias (gnome_vfs_uri_get_scheme (a)); sb = resolve_alias (gnome_vfs_uri_get_scheme (b)); return (g_str_equal (sa, sb) && g_str_equal (gnome_vfs_uri_get_host_name (a), gnome_vfs_uri_get_host_name (b)) && gnome_vfs_uri_get_host_port (a) == gnome_vfs_uri_get_host_port (b)); } /* ************************************************************************** */ /* Authentication */ /* Review: tune these values ? */ #define AC_CLEANUP ((60 * 1000)) #define AI_LIFETIME AC_CLEANUP / 1000 G_LOCK_DEFINE (auth_cache); static GHashTable *auth_cache_basic; static GHashTable *auth_cache_proxy; static guint cleanup_id; static guint module_refcount = 0; typedef struct { enum { AUTH_BASIC, AUTH_PROXY } type; GnomeVFSURI *uri; gboolean updated; gboolean save; char *username; char *password; char *realm; char *keyring; GTimeVal last_used; } HttpAuthInfo; static HttpAuthInfo * http_auth_info_new (int type, GnomeVFSURI *uri, char *username, char *password) { HttpAuthInfo *ai; ai = g_new0 (HttpAuthInfo, 1); ai->type = type; ai->uri = gnome_vfs_uri_ref (uri); ai->updated = FALSE; ai->save = FALSE; if (username) ai->username = g_strdup (username); if (password) ai->password = g_strdup (password); return ai; } static void http_auth_info_free (HttpAuthInfo *info) { if (info->username) g_free (info->username); if (info->password) g_free (info->password); if (info->realm) g_free (info->realm); if (info->keyring) g_free (info->keyring); if (info->uri) gnome_vfs_uri_unref (info->uri); g_free (info); } static void http_auth_info_copy (HttpAuthInfo *dest, HttpAuthInfo *src) { dest->type = src->type; if (dest->uri) gnome_vfs_uri_unref (dest->uri); if (src->uri) dest->uri = gnome_vfs_uri_ref (src->uri); else dest->uri = NULL; if (dest->username) g_free (dest->username); if (src->username) dest->username = g_strdup (src->username); else dest->username = NULL; if (dest->password) g_free (dest->password); if (src->password) dest->password = g_strdup (src->password); else dest->password = NULL; dest->save = src->save; dest->updated = src->updated; } static gboolean http_auth_cache_info_check (gpointer key, gpointer value, gpointer data) { HttpAuthInfo *info = value; gboolean *restart_timeout = data; GTimeVal now; g_get_current_time (&now); if (now.tv_sec > info->last_used.tv_sec + AI_LIFETIME) { DEBUG_HTTP ("[AuthCache] Removing auth entry!"); return TRUE; } *restart_timeout = TRUE; return FALSE; } static gboolean http_auth_cache_cleanup (gpointer *data) { gboolean restart_timeout; DEBUG_HTTP ("[AuthCache] Cleanup!"); restart_timeout = FALSE; G_LOCK (auth_cache); g_hash_table_foreach_remove (auth_cache_proxy, http_auth_cache_info_check, &restart_timeout); g_hash_table_foreach_remove (auth_cache_basic, http_auth_cache_info_check, &restart_timeout); if (restart_timeout == FALSE) cleanup_id = 0; G_UNLOCK (auth_cache); return restart_timeout; } static void http_auth_cache_init (void) { auth_cache_proxy = g_hash_table_new_full (http_session_uri_hash, http_session_uri_equal, NULL, (GDestroyNotify) http_auth_info_free); auth_cache_basic = g_hash_table_new_full (http_session_uri_hash, http_session_uri_equal, NULL, (GDestroyNotify) http_auth_info_free); } static void http_auth_cache_shutdown (void) { g_hash_table_destroy (auth_cache_proxy); g_hash_table_destroy (auth_cache_basic); } static gboolean query_cache_for_authentication (HttpAuthInfo *info) { HttpAuthInfo *aic = NULL; gboolean res = FALSE; G_LOCK (auth_cache); if (info->type == AUTH_BASIC) { DEBUG_HTTP ("[Auth] Basic queried"); aic = g_hash_table_lookup (auth_cache_basic, info->uri); } else { DEBUG_HTTP ("[Auth] proxy queried"); aic = g_hash_table_lookup (auth_cache_proxy, info->uri); } if (aic != NULL) { http_auth_info_copy (info, aic); g_get_current_time (&(info->last_used)); res = TRUE; DEBUG_HTTP ("[Auth] hit!"); } G_UNLOCK (auth_cache); return res; } static void store_auth_info_in_cache (HttpAuthInfo *info) { HttpAuthInfo *copy; copy = g_new0 (HttpAuthInfo, 1); http_auth_info_copy (copy, info); copy->updated = FALSE; g_get_current_time (&(copy->last_used)); G_LOCK (auth_cache); if (info->type == AUTH_BASIC) { DEBUG_HTTP ("[Auth] Basic stored [%s/%s]", info->username, info->password); g_hash_table_replace (auth_cache_basic, copy->uri, copy); } else { DEBUG_HTTP ("[Auth] PROXY stored [%s/%s]", info->username, info->password); g_hash_table_replace (auth_cache_proxy, copy->uri, copy); } if (cleanup_id == 0) { cleanup_id = g_timeout_add (AC_CLEANUP, (GSourceFunc) http_auth_cache_cleanup, NULL); } G_UNLOCK (auth_cache); } static gboolean query_keyring_for_authentication (HttpAuthInfo *info) { GnomeVFSModuleCallbackFillAuthenticationIn in_args; GnomeVFSModuleCallbackFillAuthenticationOut out_args; gboolean ret; memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); DEBUG_HTTP ("[Auth] Query Keyring!"); in_args.uri = gnome_vfs_uri_to_string (info->uri, GNOME_VFS_URI_HIDE_NONE); in_args.protocol = "http"; in_args.authtype = (info->type == AUTH_BASIC ? "basic" : "proxy"); in_args.object = info->realm; in_args.server = (char *) gnome_vfs_uri_get_host_name (info->uri); in_args.port = gnome_vfs_uri_get_host_port (info->uri); in_args.username = info->username; ret = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_free (in_args.uri); if (!ret) return FALSE; if ((ret = out_args.valid) == TRUE) { if (info->username) g_free (info->username); if (info->password) g_free (info->password); info->username = out_args.username; info->password = out_args.password; info->updated = TRUE; info->save = FALSE; DEBUG_HTTP ("[Auth] Keyring hit!"); } else { g_free (out_args.username); g_free (out_args.password); } g_free (out_args.domain); return ret; } static gboolean query_user_for_authentication (HttpAuthInfo *info, int attempt) { GnomeVFSModuleCallbackFullAuthenticationIn in_args; GnomeVFSModuleCallbackFullAuthenticationOut out_args; GnomeVFSToplevelURI *toplevel_uri; gboolean ret; DEBUG_HTTP ("[Auth] Query User!"); memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); toplevel_uri = gnome_vfs_uri_get_toplevel (info->uri); in_args.uri = gnome_vfs_uri_to_string (info->uri, GNOME_VFS_URI_HIDE_NONE); in_args.protocol = "http"; in_args.authtype = info->type == AUTH_BASIC ? "basic" : "proxy"; in_args.object = (char *) info->realm; in_args.server = (char *) toplevel_uri->host_name; in_args.port = toplevel_uri->host_port; in_args.username = info->username; in_args.default_user = in_args.username; in_args.flags = GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD | GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED; if (attempt > 0) { in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED; } if (info->username == NULL) in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME; ret = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_free (in_args.uri); g_free (out_args.domain); if (!ret) { ret = FALSE; goto error; } if ((ret = !out_args.abort_auth)) { info->keyring = out_args.keyring; if (info->username) g_free (info->username); if (info->password) g_free (info->password); info->username = out_args.username; info->password = out_args.password; ret = TRUE; if (out_args.save_password) { info->save = TRUE; info->keyring = out_args.keyring; } else { g_free (out_args.keyring); } /* Review: should we always store auth info in local cache even if it is stored in keyring ? */ info->updated = TRUE; return TRUE; } error: g_free (out_args.username); g_free (out_args.password); g_free (out_args.keyring); return ret; } static int neon_session_supply_auth (void *userdata, const char *realm, int attempt, char *username, char *password) { HttpAuthInfo *info; info = (HttpAuthInfo *) userdata; /* use information in uri if possible */ if (attempt == 0 && info->username && info->password) { g_strlcpy (username, info->username, NE_ABUFSIZ); g_strlcpy (password, info->password, NE_ABUFSIZ); DEBUG_HTTP ("[Auth] Using auth info from uri!"); return 0; } if (attempt == 0 && query_cache_for_authentication (info)) { g_strlcpy (username, info->username, NE_ABUFSIZ); g_strlcpy (password, info->password, NE_ABUFSIZ); DEBUG_HTTP ("[Auth] Cache hit!"); return 0; } if (info->realm == NULL) info->realm = g_strdup (realm); if (attempt == 0 && query_keyring_for_authentication (info)) { g_strlcpy (username, info->username, NE_ABUFSIZ); g_strlcpy (password, info->password, NE_ABUFSIZ); DEBUG_HTTP ("[Auth] keyring hit!"); return 0; } if (query_user_for_authentication (info, attempt)) { g_strlcpy (username, info->username, NE_ABUFSIZ); g_strlcpy (password, info->password, NE_ABUFSIZ); DEBUG_HTTP ("[Auth] Trying user info!"); return 0; } DEBUG_HTTP ("[Auth] FAILED!"); return 1; } static int neon_session_save_auth (ne_request *req, void *userdata, const ne_status *status) { GnomeVFSModuleCallbackSaveAuthenticationIn in_args; GnomeVFSModuleCallbackSaveAuthenticationOut out_args; gboolean ret; HttpAuthInfo *info; info = (HttpAuthInfo *) userdata; ret = FALSE; if (info->updated != TRUE) { DEBUG_HTTP ("[Auth] Auth info not updated"); return 0; } info->updated = FALSE; if (status && IS_AUTH_FAILED (status->code)) { return 0; } store_auth_info_in_cache (info); if (info->save != TRUE) { return 0; } DEBUG_HTTP ("[Auth] Storing auth in keyring!"); memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); in_args.keyring = info->keyring; in_args.uri = gnome_vfs_uri_to_string (info->uri, GNOME_VFS_URI_HIDE_NONE); in_args.server = (char *) gnome_vfs_uri_get_host_name (info->uri); in_args.port = gnome_vfs_uri_get_host_port (info->uri); in_args.username = info->username; in_args.password = info->password; in_args.protocol = "http"; in_args.authtype = info->type == AUTH_BASIC ? "basic" : "proxy"; in_args.object = info->realm; gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); info->save = FALSE; return 0; } /* ************************************************************************** */ /* Header parsing utilities */ static gboolean header_value_to_number (const char *header_value, gulong *number) { gulong result; const char *p = header_value; if (header_value == NULL) { return FALSE; } for (result = 0; g_ascii_isdigit (*p); p++) result = 10 * result + (*p - '0'); if (*p) return FALSE; *number = result; return TRUE; } static char * strip_semicolon (const char *value) { char *p = strchr (value, ';'); if (p != NULL) { return g_strndup (value, p - value); } else { return g_strdup (value); } } static DavClass parse_dav_header (const char *value) { char *tokens = ne_strdup(value), *pnt = tokens; DavClass dav_class = DAV_CLASS_NOT_SET; DEBUG_HTTP_3 ("parsing dav: %s", tokens); do { char *tok = ne_qtoken (&pnt, ',', "\"'"); if (!tok) break; tok = ne_shave(tok, " \r\t"); if (strcmp (tok, "1") == 0) { dav_class = 1; } else if (strcmp(tok, "2") == 0) { dav_class = 1; } DEBUG_HTTP_3 ("DAV Level: %d", dav_class); } while (pnt != NULL); ne_free (tokens); return dav_class; } typedef enum { ALLOW_NOT_SET = 0, ALLOW_OPTIONS = (1 << 0), ALLOW_GET = (1 << 1), ALLOW_HEAD = (1 << 2), ALLOW_POST = (1 << 3), ALLOW_PUT = (1 << 4), ALLOW_DELETE = (1 << 5), ALLOW_TRACE = (1 << 6), ALLOW_PROPFIND = (1 << 7), ALLOW_PROPPATCH = (1 << 8), ALLOW_MKCOL = (1 << 9), ALLOW_COPY = (1 << 10), ALLOW_MOVE = (1 << 11), ALLOW_LOCK = (1 << 12), ALLOW_UNLOCK = (1 << 13) } HttpMethods; static struct HttpMethod { char *string; HttpMethods type; } const http_all_methods [] = { {"OPTIONS", ALLOW_OPTIONS}, {"GET", ALLOW_GET}, {"HEAD", ALLOW_HEAD}, {"POST", ALLOW_POST}, {"PUT", ALLOW_PUT}, {"DELETE", ALLOW_DELETE}, {"TRACE", ALLOW_TRACE}, {"PROPFIND", ALLOW_PROPFIND}, {"PROPPATCH", ALLOW_PROPPATCH}, {"MKCOL", ALLOW_MKCOL}, {"COPY", ALLOW_COPY}, {"MOVE", ALLOW_MOVE}, {"LOCK", ALLOW_LOCK}, {"UNLOCK", ALLOW_UNLOCK}, {NULL, ALLOW_NOT_SET} }; static GHashTable *http_methods = NULL; static void quick_allow_lookup_init (void) { const struct HttpMethod *iter; http_methods = g_hash_table_new (g_str_hash, g_str_equal); for (iter = http_all_methods; iter->string; iter++) { g_hash_table_insert (http_methods, iter->string, (struct HttpMethod *)iter); } } static void quit_allow_lookup_destroy (void) { g_hash_table_destroy (http_methods); } static HttpMethods parse_allow_header (const char *value) { char *tokens = ne_strdup (value), *pnt = tokens; HttpMethods methods; struct HttpMethod *method; DEBUG_HTTP_3 ("parsing allow: %s", pnt); methods = ALLOW_NOT_SET; do { char *tok = ne_qtoken (&pnt, ',', "\"'"); if (!tok) break; tok = ne_shave(tok, " \r\t"); method = g_hash_table_lookup (http_methods, tok); if (method == NULL) continue; DEBUG_HTTP_3 ("setting %s to yes", method->string); methods |= method->type; } while (pnt != NULL); ne_free (tokens); return methods; } /* function for setting the etag value we dont use it at the moment static void set_etag (void **etag, const char *value) { if (value != NULL) *etag = g_strdup (value); else *etag = NULL; } */ static void std_headers_to_file_info (ne_request *req, GnomeVFSFileInfo *info) { const char *value; time_t time; gboolean result; gulong size; value = ne_get_response_header (req, "Last-Modified"); if (value != NULL && gnome_vfs_atotm (value, &time)) { info->mtime = time; info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MTIME; } value = ne_get_response_header (req, "Content-Length"); result = header_value_to_number (value, &size); if (result == TRUE) { info->size = size; info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SIZE; } value = ne_get_response_header (req, "Content-Type"); if (value != NULL) { g_free (info->mime_type); info->mime_type = strip_semicolon (value); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } value = ne_get_response_header (req, "Date"); if (value != NULL && gnome_vfs_atotm (value, &time)) { info->atime = time; info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_ATIME; } } /* ************************************************************************** */ /* Propfind request handlers */ static const ne_propname file_info_props[] = { {"DAV:", "getlastmodified"}, {"DAV:", "creationdate"}, {"DAV:", "resourcetype"}, {"DAV:", "getcontenttype"}, {"DAV:", "getcontentlength"}, /* {"DAV:", "getetag"}, */ /* {"http://apache.org/dav/props/", "executable"}, */ {NULL} }; typedef struct { const char *path; GnomeVFSFileInfo *target; gboolean include_target; GList *children; char *etag; } PropfindContext; static void propfind_context_init (PropfindContext *pfctx) { pfctx->path = NULL; pfctx->target = NULL; pfctx->include_target = TRUE; pfctx->children = NULL; pfctx->etag = NULL; } static void propfind_context_clear (PropfindContext *pfctx) { GList *l; if (pfctx->target != NULL) { gnome_vfs_file_info_unref (pfctx->target); pfctx->target = NULL; } if (pfctx->children) { l = gnome_vfs_file_info_list_unref (pfctx->children); g_list_free (l); pfctx->children = NULL; } if (pfctx->etag) { g_free (pfctx->etag); pfctx->etag = NULL; } } static void propfind_result (void *userdata, const char *href, const ne_prop_result_set *set) { GnomeVFSFileInfo *info; PropfindContext *ctx; const char *value; time_t time; gulong size; ne_uri uri; char *unesc_path, *unesc_ctx_path; ctx = (PropfindContext *) userdata; if (ne_uri_parse (href, &uri)) return; if (uri.path == NULL) { ne_uri_free (&uri); return; } DEBUG_HTTP_2 ("href: %s", href); info = gnome_vfs_file_info_new (); unesc_path = ne_path_unescape (uri.path); info->name = g_path_get_basename (unesc_path); unesc_ctx_path = ne_path_unescape (ctx->path); DEBUG_HTTP_2 ("Comparing: \n\t[%s] \n\t[%s]", ctx->path, uri.path); if (ne_path_compare (unesc_ctx_path, unesc_path) == 0) { DEBUG_HTTP_3 ("target"); ctx->target = info; /* Set the etag on target */ /* We are not requesting the etag information at * the moment so don't even check for it value = ne_propset_value (set, &file_info_props[5]); if (value != NULL) ctx->etag = g_strdup (value); */ } else { ctx->children = g_list_append (ctx->children, info); } NE_FREE (unesc_ctx_path); NE_FREE (unesc_path); ne_uri_free (&uri); /* getlastmodified */ value = ne_propset_value (set, &file_info_props[0]); if (value && gnome_vfs_atotm (value, &time)) { info->mtime = time; info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MTIME; } /* creationdate */ value = ne_propset_value (set, &file_info_props[1]); if (value && gnome_vfs_atotm (value, &time)) { info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_CTIME; } /* resourctype */ value = ne_propset_value (set, &file_info_props[2]); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_TYPE; if (value != NULL && strstr (value, "collection")) { info->mime_type = g_strdup (HTTP_DIR_MIME_TYPE); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; return; } else { info->type = GNOME_VFS_FILE_TYPE_REGULAR; } /*** The following properties only apply to files ***/ /* getcontenttype */ /* We only evaluate the getcontenttype filed if it hasn't already * been set (i.e. to HTTP_DIR_MIME_TYPE) so we can indicate the * directory mime-type */ if (! (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE)) { value = ne_propset_value (set, &file_info_props[3]); } else { value = NULL; } if (! value) { value = gnome_vfs_mime_type_from_name (info->name); } if (value) { info->mime_type = g_strdup (value); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } /* getcontentlength */ value = ne_propset_value (set, &file_info_props[4]); if (value && header_value_to_number (value, &size)) { info->size = size; info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SIZE; } } /* ************************************************************************** */ /* neon session pool and related helper functions */ G_LOCK_DEFINE (nst_lock); static GHashTable *neon_session_table; static guint nst_tid; typedef struct { GnomeVFSURI *uri; GList *unused_sessions; GTimeVal last_used; } NeonSessionPool; static void neon_session_pool_destroy (NeonSessionPool *pool) { GList *iter; for (iter = pool->unused_sessions; iter; iter = iter->next) { ne_session *session = iter->data; ne_session_destroy (session); } g_list_free (pool->unused_sessions); gnome_vfs_uri_unref (pool->uri); g_free (pool); } static void neon_session_pool_init (void) { neon_session_table = g_hash_table_new_full (http_session_uri_hash, http_session_uri_equal, NULL, (GDestroyNotify) neon_session_pool_destroy); } static void neon_session_pool_shutdown (void) { g_hash_table_destroy (neon_session_table); } static gboolean neon_session_pool_check (gpointer key, gpointer value, gpointer data) { NeonSessionPool *pool = value; gboolean *restart_timeout = data; GTimeVal now; g_get_current_time (&now); if (now.tv_sec > pool->last_used.tv_sec + AI_LIFETIME) { DEBUG_HTTP ("[Sesssion Pool] Removing!"); return TRUE; } *restart_timeout = TRUE; return FALSE; } static gboolean neon_session_pool_cleanup (gpointer *data) { gboolean restart_timeout; restart_timeout = FALSE; DEBUG_HTTP ("[Session Pool] Cleanup!"); G_LOCK (nst_lock); g_hash_table_foreach_remove (neon_session_table, neon_session_pool_check, &restart_timeout); if (restart_timeout == FALSE) nst_tid = 0; G_UNLOCK (nst_lock); return restart_timeout; } static void neon_session_pool_insert (GnomeVFSURI *uri, ne_session *session) { NeonSessionPool *pool; G_LOCK (nst_lock); pool = g_hash_table_lookup (neon_session_table, uri); if (pool == NULL) { pool = g_new0 (NeonSessionPool, 1); pool->uri = gnome_vfs_uri_ref (uri); g_hash_table_insert (neon_session_table, uri, pool); } /* Make sure we forget the auth info so multiple users for * the same uri doesnt confict. We have our own cache to * compensate this */ ne_forget_auth (session); pool->unused_sessions = g_list_append (pool->unused_sessions, session); DEBUG_HTTP ("[Session Pool] Storing [%p] int [%p] (%d)", session, pool, g_list_length (pool->unused_sessions)); if (nst_tid == 0) { nst_tid = g_timeout_add (AC_CLEANUP, (GSourceFunc) neon_session_pool_cleanup, NULL); } G_UNLOCK (nst_lock); } static ne_session * neon_session_pool_lookup (GnomeVFSURI *uri) { NeonSessionPool *pool; ne_session *session; G_LOCK (nst_lock); DEBUG_HTTP ("[Session Pool] Searching (%d)", g_hash_table_size (neon_session_table)); session = NULL; pool = g_hash_table_lookup (neon_session_table, uri); /* search in session pool */ if (pool != NULL && pool->unused_sessions) { session = pool->unused_sessions->data; pool->unused_sessions = g_list_remove (pool->unused_sessions, session); DEBUG_HTTP ("[Session Pool] Found [%p] in [%p] (%d)", session, pool, g_list_length (pool->unused_sessions)); g_get_current_time (&(pool->last_used)); } G_UNLOCK (nst_lock); return session; } /* ************************************************************************** */ /* Additional Headers */ static int neon_return_headers (ne_request *req, void *userdata, const ne_status *status) { GnomeVFSModuleCallbackReceivedHeadersIn in_args; GnomeVFSModuleCallbackReceivedHeadersOut out_args; GList *headers; void *hiter; GnomeVFSURI *uri; ne_session *session; const char *hkey, *hval; DEBUG_HTTP_FUNC (1); session = ne_get_session (req); if (ne_get_request_private (req, "Headers Returned")) { return 0; } headers = NULL; hiter = NULL; while ((hiter = ne_response_header_iterate (req, hiter, &hkey, &hval))) { char *header; if (hkey == NULL || hval == NULL) { continue; } header = g_strdup_printf ("%s: %s", hkey, hval); headers = g_list_prepend (headers, header); } if (headers == NULL) { return 0; } uri = ne_get_session_private (session, "GnomeVFSURI"); memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); in_args.uri = uri; in_args.headers = headers; gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_list_foreach (headers, (GFunc) g_free, NULL); g_list_free (headers); ne_set_request_private (req, "Headers Returned", "TRUE"); DEBUG_HTTP_FUNC (0); return 0; } static void neon_setup_headers (ne_request *req, void *userdata, ne_buffer *header) { GnomeVFSModuleCallbackAdditionalHeadersIn in_args; GnomeVFSModuleCallbackAdditionalHeadersOut out_args; GList *iter; gboolean ret; GnomeVFSURI *uri; ne_session *session; DEBUG_HTTP_FUNC (1); session = ne_get_session (req); uri = ne_get_session_private (session, "GnomeVFSURI"); memset (&in_args, 0, sizeof (in_args)); memset (&out_args, 0, sizeof (out_args)); in_args.uri = uri; ret = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); for (iter = out_args.headers; iter; iter = iter->next) { if (ret) { ne_buffer_zappend (header, iter->data); DEBUG_HTTP_3 ("Adding header %s,", (char *) iter->data); } g_free (iter->data); } g_list_free (out_args.headers); DEBUG_HTTP_FUNC (0); } /* ************************************************************************** */ /* Http context */ typedef struct { GnomeVFSURI *uri; char *path; const char *scheme; gboolean ssl; DavClass dav_class; HttpMethods methods; ne_session *session; gboolean dav_mode; gboolean redirected; guint redir_count; } HttpContext; static GnomeVFSResult http_acquire_connection (HttpContext *context) { GnomeVFSToplevelURI *top_uri; char *user_agent; HttpAuthInfo *basic_auth; HttpProxyInfo proxy; ne_session *session; if (context->ssl == TRUE && ! ne_has_support (NE_FEATURE_SSL)) { DEBUG_HTTP ("SSL not supported!"); return GNOME_VFS_ERROR_NOT_SUPPORTED; } top_uri = gnome_vfs_uri_get_toplevel (context->uri); if (top_uri == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } session = neon_session_pool_lookup (context->uri); if (session != NULL) { ne_set_session_private (session, "GnomeVFSURI", context->uri); context->session = session; return GNOME_VFS_OK; } DEBUG_HTTP ("[Session] new connection %s, %d", top_uri->host_name, top_uri->host_port); /* no free connection, create one */ session = ne_session_create (context->scheme, top_uri->host_name, top_uri->host_port); if (session == NULL) { return GNOME_VFS_ERROR_INTERNAL; } ne_set_read_timeout (session, 30); user_agent = getenv (CUSTOM_USER_AGENT_VARIABLE); if (user_agent == NULL) { user_agent = DEFAULT_USER_AGENT; } ne_set_useragent (session, user_agent); basic_auth = http_auth_info_new (AUTH_BASIC, context->uri, top_uri->user_name, top_uri->password); /* Authentication */ ne_set_server_auth (session, neon_session_supply_auth, basic_auth); ne_hook_post_send (session, neon_session_save_auth, basic_auth); ne_hook_destroy_session (session, (ne_destroy_sess_fn) http_auth_info_free, basic_auth); ne_redirect_register (session); /* Headers stuff */ ne_set_session_private (session, "GnomeVFSURI", context->uri); ne_hook_pre_send (session, neon_setup_headers, NULL); ne_hook_post_send (session, neon_return_headers, NULL); if (proxy_for_uri (top_uri, &proxy)) { HttpAuthInfo *proxy_auth; DEBUG_HTTP ("using proxy"); ne_session_proxy (session, proxy.host, proxy.port); proxy_auth = http_auth_info_new (AUTH_PROXY, context->uri, proxy.username, proxy.password); ne_set_proxy_auth (session, neon_session_supply_auth, proxy_auth); ne_hook_post_send (session, neon_session_save_auth, proxy_auth); ne_hook_destroy_session (session, (ne_destroy_sess_fn) http_auth_info_free, proxy_auth); g_free (proxy.host); } context->session = session; return GNOME_VFS_OK; } static void http_context_free (HttpContext *context) { if (context->session) { neon_session_pool_insert (context->uri, context->session); context->session = NULL; } g_free (context->path); gnome_vfs_uri_unref (context->uri); g_free (context); } static void http_context_set_uri (HttpContext *context, GnomeVFSURI *uri) { char *uri_string; if (context->uri) { gnome_vfs_uri_unref (context->uri); } if (context->path != NULL) { g_free (context->path); } context->uri = gnome_vfs_uri_dup (uri); context->scheme = resolve_alias (gnome_vfs_uri_get_scheme (uri)); if (gnome_vfs_uri_get_host_port (context->uri) == 0) { if (g_str_equal (context->scheme, "https")) { gnome_vfs_uri_set_host_port (context->uri, DEFAULT_HTTPS_PORT); context->ssl = TRUE; } else { gnome_vfs_uri_set_host_port (context->uri, DEFAULT_HTTP_PORT); context->ssl = FALSE; } } uri_string = gnome_vfs_uri_to_string (context->uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD | GNOME_VFS_URI_HIDE_HOST_NAME | GNOME_VFS_URI_HIDE_HOST_PORT | GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD | GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER); if (uri_string[0] == '\0') { g_free (uri_string); uri_string = g_strdup ("/"); } context->path = uri_string; context->methods = 0; context->dav_class = DAV_CLASS_NOT_SET; } static GnomeVFSResult http_context_open (GnomeVFSURI *uri, HttpContext **context) { HttpContext *ctx; GnomeVFSResult result; if (gnome_vfs_uri_get_host_name (uri) == NULL) return GNOME_VFS_ERROR_INVALID_URI; ctx = g_new0 (HttpContext, 1); http_context_set_uri (ctx, uri); if (ctx->scheme == NULL) { http_context_free (ctx); return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = http_acquire_connection (ctx); if (result != GNOME_VFS_OK) { *context = NULL; http_context_free (ctx); return result; } /* initialize the missing bits */ ctx->dav_mode = scheme_is_dav (uri); ctx->dav_class = DAV_CLASS_NOT_SET; ctx->methods = ALLOW_NOT_SET; *context = ctx; return GNOME_VFS_OK; } static gboolean http_context_host_matches (HttpContext *context, const char *glob) { GnomeVFSToplevelURI *uri; GPatternSpec *spec; gboolean res; uri = gnome_vfs_uri_get_toplevel (context->uri); if (uri == NULL || uri->host_name == NULL || glob == NULL) return FALSE; spec = g_pattern_spec_new (glob); res = g_pattern_match_string (spec, uri->host_name); g_pattern_spec_free (spec); return res; } static GnomeVFSResult http_follow_redirect (HttpContext *context) { GnomeVFSResult result; GnomeVFSURI *new_uri; const ne_uri *redir_uri; char *redir_texturi; context->redirected = TRUE; context->redir_count++; if (context->redir_count > 7) return GNOME_VFS_ERROR_TOO_MANY_LINKS; DEBUG_HTTP ("[Redirec] Following redir [count: %d]", context->redir_count); redir_uri = ne_redirect_location (context->session); redir_texturi = ne_uri_unparse (redir_uri); new_uri = gnome_vfs_uri_new (redir_texturi); NE_FREE (redir_texturi); /* see if redirect is to another host:port pair so we need a new * connection/session */ if (! http_session_uri_equal (context->uri, new_uri)) { /* release connection */ neon_session_pool_insert (context->uri, context->session); context->session = NULL; http_context_set_uri (context, new_uri); result = http_acquire_connection (context); } else { http_context_set_uri (context, new_uri); ne_set_session_private (context->session, "GnomeVFSURI", context->uri); result = GNOME_VFS_OK; } /* uri got dupped by http_context_set_uri () */ gnome_vfs_uri_unref (new_uri); DEBUG_HTTP ("[Redirec] Redirect result: %s", gnome_vfs_result_to_string (result)); return result; } /* ************************************************************************** */ /* Http operations */ static GnomeVFSResult http_get_file_info (HttpContext *context, GnomeVFSFileInfo *info) { GnomeVFSResult result; PropfindContext pfctx; ne_propfind_handler *pfh; ne_request *req; int res; DEBUG_HTTP_CONTEXT (context); /* no dav server */ if (context->dav_mode == FALSE || context->dav_class == NO_DAV) goto head_start; propfind_context_init (&pfctx); propfind_start: pfctx.path = context->path; pfctx.include_target = TRUE; pfh = ne_propfind_create (context->session, context->path, 0); res = ne_propfind_named (pfh, file_info_props, propfind_result, &pfctx); if (res == NE_REDIRECT) { ne_propfind_destroy (pfh); result = http_follow_redirect (context); if (result == GNOME_VFS_OK) { goto propfind_start; } else { return result; } } req = ne_propfind_get_request (pfh); result = resolve_result (res, req); DEBUG_HTTP ("%d, %d", res, ne_get_status (req)->code); ne_propfind_destroy (pfh); /* Let's be very cautious here! If the server doesn't respond with a 207 here just fall back to HEAD because some server server (eg. gws) close the connection on an unknown command, most (stupid) php scripts will treat PROPFIND as GET and some servers may deny us PROFIND but allow us HEAD. The only exception is if we receive a 404 */ if (res == NE_OK) { gboolean have_result = FALSE; const ne_status *status = ne_get_status (req); if (status->code == 207) { have_result = TRUE; if (pfctx.target != NULL) { gnome_vfs_file_info_copy (info, pfctx.target); } else { result = GNOME_VFS_ERROR_NOT_FOUND; } } else if (status->code == 404) { have_result = TRUE; result = GNOME_VFS_ERROR_NOT_FOUND; } if (have_result == TRUE) { propfind_context_clear (&pfctx); return result; } } propfind_context_clear (&pfctx); DEBUG_HTTP ("!! Fallthrough to head (%s)", gnome_vfs_result_to_string (result)); head_start: req = ne_request_create (context->session, "HEAD", context->path); res = ne_request_dispatch (req); if (res == NE_REDIRECT) { ne_request_destroy (req); req = NULL; result = http_follow_redirect (context); if (result == GNOME_VFS_OK) { goto head_start; } else { return result; } } result = resolve_result (res, req); if (result == GNOME_VFS_OK) { const char *name; name = gnome_vfs_uri_get_path (context->uri); gnome_vfs_file_info_clear (info); info->name = g_path_get_basename (name); info->type = GNOME_VFS_FILE_TYPE_REGULAR; info->flags = GNOME_VFS_FILE_FLAGS_NONE; info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_TYPE; std_headers_to_file_info (req, info); /* work-around for broken icecast server */ if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE && ! g_ascii_strcasecmp (info->mime_type, "audio/mpeg")) { ne_close_connection (ne_get_session (req)); } } ne_request_destroy (req); return result; } static void assure_trailing_slash (HttpContext *context) { char *tofree; if (! ne_path_has_trailing_slash (context->path)) { tofree = context->path; context->path = g_strconcat (tofree, "/", NULL); g_free (tofree); } } static GnomeVFSResult http_list_directory (HttpContext *context, PropfindContext *pfctx) { GnomeVFSResult result; ne_propfind_handler *pfh; ne_request *req; int res; DEBUG_HTTP_CONTEXT (context); propfind_context_init (pfctx); pfctx->path = context->path; propfind_start: pfctx->include_target = TRUE; pfh = ne_propfind_create (context->session, context->path, 1); res = ne_propfind_named (pfh, file_info_props, propfind_result, pfctx); if (res == NE_REDIRECT) { ne_propfind_destroy (pfh); result = http_follow_redirect (context); if (result == GNOME_VFS_OK) { goto propfind_start; } else { return result; } } req = ne_propfind_get_request (pfh); result = resolve_result (res, req); ne_propfind_destroy (pfh); if (result == GNOME_VFS_OK && pfctx->target == NULL) { return GNOME_VFS_ERROR_NOT_FOUND; } return result; } static GnomeVFSResult http_options (HttpContext *hctx) { GnomeVFSResult result; ne_request *req; int res; options_start: req = ne_request_create (hctx->session, "OPTIONS", hctx->path); res = ne_request_dispatch (req); if (res == NE_REDIRECT) { ne_request_destroy (req); result = http_follow_redirect (hctx); if (result == GNOME_VFS_OK) { goto options_start; } else { return result; } } result = resolve_result (res, req); if (result == GNOME_VFS_OK) { const char *value; value = ne_get_response_header (req, "DAV"); if (value != NULL) { hctx->dav_class = parse_dav_header (value); } value = ne_get_response_header (req, "Allow"); if (value != NULL) { hctx->methods = parse_allow_header (value); } } ne_request_destroy (req); return result; } static void end_response (void *userdata, void *response, const ne_status *status, const char *description) { guint *error = userdata; if (status && status->klass != 2) { *error = status->klass; } } static int dav_request (ne_request *req, gboolean allow_redirect) { ne_207_parser *p207; ne_xml_parser *p; guint error; int res; ne_status *status; p = ne_xml_create(); p207 = ne_207_create (p, &error); error = 0; ne_207_set_response_handlers (p207, NULL /*start response */, end_response); ne_207_set_propstat_handlers (p207, NULL, NULL /* end_propstat */); ne_add_response_body_reader (req, ne_accept_207, ne_xml_parse_v, p); res = ne_request_dispatch (req); status = (ne_status *) ne_get_status (req); if (status->code == 207) { if (ne_xml_failed (p)) res = NE_ERROR; if (error != 0) { status->code = error; status->klass = error % 100; } } else if (status->klass != 2 && (!allow_redirect || res != NE_REDIRECT)) { return NE_ERROR; } return res; } /* ************************************************************************** */ /* File operations */ typedef struct { HttpContext *context; GnomeVFSOpenMode mode; GnomeVFSFileInfo *info; GnomeVFSFileOffset offset; char *etag; /* Whether we do/can ranged gets or not */ gboolean can_range; gboolean use_range; union { ne_request *read; GByteArray *write; } transfer; enum { TRANSFER_IDLE, TRANSFER_READ, TRANSFER_WRITE, TRANSFER_ERROR } transfer_state; GnomeVFSResult last_error; } HttpFileHandle; static GnomeVFSResult http_file_handle_new (GnomeVFSURI *uri, HttpFileHandle **handle_out, GnomeVFSOpenMode mode) { HttpFileHandle *handle; HttpContext *hctx; GnomeVFSResult result; result = http_context_open (uri, &hctx); if (result != GNOME_VFS_OK) return result; handle = g_new0 (HttpFileHandle, 1); handle->context = hctx; handle->mode = mode; handle->transfer_state = TRANSFER_IDLE; handle->info = gnome_vfs_file_info_new (); *handle_out = handle; return GNOME_VFS_OK; } static void http_transfer_abort (HttpFileHandle *handle) { if (handle->transfer_state == TRANSFER_READ) { ne_end_request (handle->transfer.read); /* We need a new connection :( */ ne_close_connection(handle->context->session); ne_request_destroy (handle->transfer.read); handle->transfer_state = TRANSFER_IDLE; handle->transfer.read = NULL; } else if (handle->transfer_state == TRANSFER_WRITE) { g_byte_array_free (handle->transfer.write, TRUE); } } #define is_transfering(_t) (_t == TRANSFER_READ || _t == TRANSFER_WRITE) static void http_file_handle_destroy (HttpFileHandle *handle) { if (is_transfering (handle->transfer_state)) http_transfer_abort (handle); if (handle->context) { http_context_free (handle->context); } gnome_vfs_file_info_unref (handle->info); g_free (handle); } static GnomeVFSResult http_transfer_start_write (HttpFileHandle *handle) { GnomeVFSResult result; HttpContext *hctx; hctx = handle->context; /* Check to see if we have any file information. If not fetch it!*/ if (handle->info->valid_fields == 0) { result = http_get_file_info (hctx, handle->info); if (result != GNOME_VFS_OK) { return result; } } if (handle->info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { result = GNOME_VFS_ERROR_IS_DIRECTORY; return result; } /* write seeks only for zero length files (eg newly created ones) */ if (handle->mode & GNOME_VFS_OPEN_RANDOM && !((handle->info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) || handle->info->size != 0)) { result = GNOME_VFS_ERROR_NOT_SUPPORTED; return result; } handle->transfer.write = g_byte_array_new (); handle->transfer_state = TRANSFER_WRITE; return GNOME_VFS_OK; } static GnomeVFSResult http_transfer_start_read (HttpFileHandle *handle) { GnomeVFSResult result; HttpContext *hctx; ne_request *req; int res; const ne_status *status; if (handle->transfer_state == TRANSFER_READ) return GNOME_VFS_OK; hctx = handle->context; get_start: req = ne_request_create (hctx->session, "GET", hctx->path); if (handle->use_range) { handle->can_range = TRUE; ne_print_request_header (req, "Range", "bytes=%"GNOME_VFS_OFFSET_FORMAT_STR"-", handle->offset); ne_add_request_header (req, "Accept-Ranges", "bytes"); } get_retry: res = ne_begin_request (req); result = resolve_result (res, req); status = ne_get_status (req); DEBUG_HTTP ("[GET] %s, %d, %d", gnome_vfs_result_to_string (result), res, status->code); if (res != NE_OK && res != NE_REDIRECT) { handle->transfer_state = TRANSFER_ERROR; handle->last_error = result; ne_request_destroy (req); return result; } if (IS_REDIRECT (status->code) || IS_AUTH_REQ (status->code)) { /* We are not interested in the body */ res = ne_discard_response (req); if (res < 0) { handle->transfer_state = TRANSFER_ERROR; result = GNOME_VFS_ERROR_IO; handle->last_error = result; ne_request_destroy (req); return result; } res = ne_end_request (req); if (res == NE_RETRY) { goto get_retry; } ne_request_destroy (req); req = NULL; if (res == NE_REDIRECT) { result = http_follow_redirect (hctx); if (result == GNOME_VFS_OK) goto get_start; } } if (result == GNOME_VFS_OK) { /* 2xx .. success */ std_headers_to_file_info (req, handle->info); if (handle->use_range && status->code != 206) { DEBUG_HTTP ("[GET] {ranged} disabled"); handle->can_range = FALSE; } /* If we are in a GET we invoke the callback of received headers right before reading the data because we might be in a stream and we wanna have the headers callbac invoked ASAP */ neon_return_headers (req, NULL, status); handle->transfer_state = TRANSFER_READ; handle->transfer.read = req; } return result; } static GnomeVFSResult http_transfer_start (HttpFileHandle *handle) { if (handle->mode & GNOME_VFS_OPEN_READ) { return http_transfer_start_read (handle); } else { return http_transfer_start_write (handle); } return GNOME_VFS_ERROR_INTERNAL; } /* TRUE means we can range, ie server is sane, FALSE means FAIL */ static gboolean i_can_haz_range_cause_serverz_not_br0ken (HttpContext *hctx) { gboolean br0ken = FALSE; if (http_context_host_matches (hctx, "*youtube.*")) { DEBUG_HTTP ("Youtube detected! Cannot use ranged gets"); br0ken = TRUE; } return br0ken == FALSE; } /* ************************************************************************** */ static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { HttpContext *hctx; HttpFileHandle *handle; GnomeVFSResult result; DEBUG_HTTP_FUNC (1); _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); if (mode & GNOME_VFS_OPEN_READ) { if (mode & GNOME_VFS_OPEN_WRITE) return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } else { if (!(mode & GNOME_VFS_OPEN_WRITE)) return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } result = http_file_handle_new (uri, &handle, mode); if (result != GNOME_VFS_OK) return result; hctx = handle->context; if (mode & GNOME_VFS_OPEN_WRITE) { if ((result = http_options (hctx)) != GNOME_VFS_OK) { http_file_handle_destroy (handle); return result; } /* OPTIONS worked fine! Now are we allowed to put ? Note: It is not asured that the PUT is in the OPTIONS response even if we would be allowed to do a PUT but we do not have any other options to the tell. If I looked correctly nautilus does a DELETE and do_create anyway. */ if (!(hctx->methods & ALLOW_PUT)) { http_file_handle_destroy (handle); result = GNOME_VFS_ERROR_READ_ONLY; return result; } } else { handle->use_range = i_can_haz_range_cause_serverz_not_br0ken (hctx); DEBUG_HTTP ("Use range: %s\n", handle->use_range ? "on" : "off"); } result = http_transfer_start (handle); if (result != GNOME_VFS_OK) { http_file_handle_destroy (handle); handle = NULL; } *method_handle = (GnomeVFSMethodHandle *) handle; DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { HttpFileHandle *handle; HttpContext *hctx; GnomeVFSResult result; int res; ne_request *req; DEBUG_HTTP_FUNC (1); _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); if ((mode & GNOME_VFS_OPEN_READ)) return GNOME_VFS_ERROR_INVALID_OPEN_MODE; result = http_file_handle_new (uri, &handle, mode); if (result != GNOME_VFS_OK) return result; hctx = handle->context; put_start: req = ne_request_create (hctx->session, "PUT", hctx->path); /* Apache seems to not handle "If-None-Match: *" correctly so we don't use them */ #if 0 if (exclusive == TRUE) ne_add_request_header (req, "If-None-Match", "*"); #endif if (exclusive == TRUE) { result = http_get_file_info (hctx, handle->info); if (result != GNOME_VFS_ERROR_NOT_FOUND) { http_file_handle_destroy (handle); ne_request_destroy (req); return GNOME_VFS_ERROR_FILE_EXISTS; } } ne_set_request_body_buffer (req, NULL, 0); res = ne_request_dispatch (req); if (res == NE_REDIRECT) { ne_request_destroy (req); req = NULL; result = http_follow_redirect (hctx); if (result == GNOME_VFS_OK) { goto put_start; } else { return result; } } result = resolve_result (res, req); ne_request_destroy (req); if (result == GNOME_VFS_OK && mode != GNOME_VFS_OPEN_NONE) { handle->info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SIZE; handle->info->size = 0; handle->info->type = GNOME_VFS_FILE_TYPE_REGULAR; handle->info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_TYPE; result = http_transfer_start (handle); } if (result != GNOME_VFS_OK) { http_file_handle_destroy (handle); handle = NULL; } *method_handle = (GnomeVFSMethodHandle *) handle; DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { GnomeVFSResult result; HttpFileHandle *handle; HttpContext *ctx; int res; DEBUG_HTTP_FUNC (1); _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); handle = (HttpFileHandle *) method_handle; ctx = handle->context; result = GNOME_VFS_OK; if (handle->transfer_state == TRANSFER_WRITE && handle->transfer.write->len != 0) { ne_request *req; guint8 *data; guint len; req = ne_request_create (ctx->session, "PUT", ctx->path); data = handle->transfer.write->data; len = handle->transfer.write->len; DEBUG_HTTP ("[PUT] Filesize: %d", len); ne_set_request_body_buffer (req, (char *)data, len); res = ne_request_dispatch (req); result = resolve_result (res, req); DEBUG_HTTP ("[PUT] returned: %d, %d (%s)", res, ne_get_status (req)->code, gnome_vfs_result_to_string (result)); ne_request_destroy (req); } http_file_handle_destroy (handle); DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { GnomeVFSResult result; HttpFileHandle *handle; ssize_t n; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); handle = (HttpFileHandle *) method_handle; result = GNOME_VFS_OK; if (handle->mode & GNOME_VFS_OPEN_WRITE) return GNOME_VFS_ERROR_INVALID_OPEN_MODE; if (handle->transfer_state == TRANSFER_ERROR) { return handle->last_error; } if (handle->transfer_state == TRANSFER_IDLE) { result = http_transfer_start (handle); if (result != GNOME_VFS_OK) return result; } n = ne_read_response_block (handle->transfer.read, buffer, num_bytes); if (n < 1) { if (n == 0) { ne_end_request (handle->transfer.read); result = GNOME_VFS_ERROR_EOF; handle->transfer_state = TRANSFER_IDLE; } else { result = GNOME_VFS_ERROR_IO; handle->transfer_state = TRANSFER_ERROR; } ne_request_destroy (handle->transfer.read); handle->transfer.read = NULL; handle->last_error = result; handle->offset = 0; *bytes_read = 0; DEBUG_HTTP ("[read] error during read: %s", gnome_vfs_result_to_string (result)); return result; } /* cast is valid because n must be greater than 0 */ *bytes_read = n; DEBUG_HTTP ("[read] bytes read %" GNOME_VFS_SIZE_FORMAT_STR, *bytes_read); handle->offset += *bytes_read; return result; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { HttpFileHandle *handle; GByteArray *ba; const guint8 *pos; gint over_len; int i; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); handle = (HttpFileHandle *) method_handle; if (handle->mode & GNOME_VFS_OPEN_READ) return GNOME_VFS_ERROR_READ_ONLY; if (num_bytes == 0) return GNOME_VFS_OK; ba = handle->transfer.write; while (ba->len < handle->offset) { guint8 null = 0; ba = g_byte_array_append (ba, &null, 1); DEBUG_HTTP ("[write] zero fill"); } pos = buffer; over_len = MIN (ba->len - handle->offset, num_bytes); DEBUG_HTTP ("over_len %d", over_len); for (i = over_len; i > 0; i--) { ba->data[handle->offset] = *pos; pos++; handle->offset++; DEBUG_HTTP ("%s, %" GNOME_VFS_SIZE_FORMAT_STR ", %" GNOME_VFS_OFFSET_FORMAT_STR, (char *) pos, num_bytes, handle->offset); } DEBUG_HTTP ("[write] %" GNOME_VFS_OFFSET_FORMAT_STR ", %d, %" GNOME_VFS_SIZE_FORMAT_STR, handle->offset, ba->len, num_bytes); ba = g_byte_array_append (ba, pos, num_bytes - over_len); handle->offset += num_bytes; if (bytes_written != NULL) *bytes_written = num_bytes; handle->transfer.write = ba; /* FIXME: set file size info here ?? */ return GNOME_VFS_OK; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { GnomeVFSResult result; HttpFileHandle *handle; GnomeVFSFileOffset new_position; DEBUG_HTTP_FUNC (1); _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); handle = (HttpFileHandle *) method_handle; if (handle->mode & GNOME_VFS_OPEN_READ && handle->can_range != TRUE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = GNOME_VFS_OK; switch (whence) { case GNOME_VFS_SEEK_START: new_position = offset; break; case GNOME_VFS_SEEK_END: /* We need to know the file size for that */ if (!(handle->info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE)) { DEBUG_HTTP ("[seek] do not know file-size not seeking ..."); return GNOME_VFS_ERROR_NOT_SUPPORTED; } new_position = handle->info->size + offset; break; case GNOME_VFS_SEEK_CURRENT: new_position = handle->offset + offset; break; default: return GNOME_VFS_ERROR_NOT_SUPPORTED; } /* FIXME: is this error correct ? */ if (new_position < 0) { DEBUG_HTTP ("seeking to %" GNOME_VFS_OFFSET_FORMAT_STR, new_position); return GNOME_VFS_ERROR_NOT_SUPPORTED; } /* if we shall seek to where we already are just * return OK */ if (handle->offset == new_position) { return GNOME_VFS_OK; } handle->offset = new_position; if (handle->transfer_state == TRANSFER_READ) { http_transfer_abort (handle); } DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { HttpFileHandle *handle; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); handle = (HttpFileHandle *) method_handle; *offset_return = handle->offset; return GNOME_VFS_OK; } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { HttpFileHandle *handle; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); handle = (HttpFileHandle *) method_handle; if (handle->mode & GNOME_VFS_OPEN_READ) return GNOME_VFS_ERROR_READ_ONLY; return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSResult result; HttpContext *hctx; PropfindContext *pfctx; DEBUG_HTTP_FUNC (1); if (scheme_is_dav (uri) == FALSE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = http_context_open (uri, &hctx); if (result != GNOME_VFS_OK) return result; assure_trailing_slash (hctx); result = http_options (hctx); if (result != GNOME_VFS_OK || hctx->dav_class == NO_DAV) { http_context_free (hctx); if (result != GNOME_VFS_OK) return result; return GNOME_VFS_ERROR_NOT_A_DIRECTORY; } pfctx = g_new0 (PropfindContext, 1); result = http_list_directory (hctx, pfctx); http_context_free (hctx); if (result == GNOME_VFS_ERROR_NOT_SUPPORTED || (result == GNOME_VFS_OK && pfctx->target->type != GNOME_VFS_FILE_TYPE_DIRECTORY)) { result = GNOME_VFS_ERROR_NOT_A_DIRECTORY; } if (result != GNOME_VFS_OK) { propfind_context_clear (pfctx); g_free (pfctx); } else { *method_handle = (GnomeVFSMethodHandle *) pfctx; } DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { PropfindContext *pfctx; DEBUG_HTTP_FUNC (1); _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); pfctx = (PropfindContext *) method_handle; propfind_context_clear (pfctx); g_free (pfctx); DEBUG_HTTP_FUNC (0); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { PropfindContext *pfctx; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); pfctx = (PropfindContext *) method_handle; if (pfctx->children) { GnomeVFSFileInfo *info = pfctx->children->data; gnome_vfs_file_info_copy (file_info, info); pfctx->children = g_list_remove (pfctx->children, info); gnome_vfs_file_info_unref (info); return GNOME_VFS_OK; } return GNOME_VFS_ERROR_EOF; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSResult result; HttpContext *hctx; DEBUG_HTTP_FUNC (1); result = http_context_open (uri, &hctx); if (result != GNOME_VFS_OK) return result; result = http_get_file_info (hctx, file_info); http_context_free (hctx); DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { HttpFileHandle *handle; GnomeVFSResult result; DEBUG_HTTP_FUNC (1); _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); handle = (HttpFileHandle *) method_handle; if (handle->transfer_state == TRANSFER_READ) { gnome_vfs_file_info_copy (file_info, handle->info); return GNOME_VFS_OK; } result = http_get_file_info (handle->context, handle->info); if (result == GNOME_VFS_OK) { gnome_vfs_file_info_copy (file_info, handle->info); } /* Review: updated the file size in info to the length of the write buffer. ? */ return result; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return FALSE; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { GnomeVFSResult result; HttpContext *hctx; GnomeVFSURI *uri_parent; ne_request *req; int res; DEBUG_HTTP_FUNC (1); if (scheme_is_dav (uri) == FALSE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } uri_parent = gnome_vfs_uri_get_parent (uri); result = http_context_open (uri_parent, &hctx); if (result != GNOME_VFS_OK) return result; result = http_options (hctx); if (result != GNOME_VFS_OK || (hctx->dav_class == NO_DAV)) { if (result == GNOME_VFS_OK) result = GNOME_VFS_ERROR_NOT_SUPPORTED; goto out; } http_context_set_uri (hctx, uri); mkcol_start: req = ne_request_create (hctx->session, "MKCOL", hctx->path); res = ne_request_dispatch (req); if (res == NE_REDIRECT) { result = http_follow_redirect (hctx); if (result == GNOME_VFS_OK) ne_request_destroy (req); req = NULL; goto mkcol_start; } else if (res == NE_OK) { const ne_status *status = ne_get_status (req); if (status->code == 409) result = GNOME_VFS_ERROR_NOT_FOUND; else if (status->code == 405) result = GNOME_VFS_ERROR_FILE_EXISTS; } else { result = resolve_result (res, req); } ne_request_destroy (req); out: gnome_vfs_uri_unref (uri_parent); http_context_free (hctx); DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { GnomeVFSResult result; HttpContext *hctx; PropfindContext pfctx; ne_request *req; int res; DEBUG_HTTP_FUNC (1); if (scheme_is_dav (uri) == FALSE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = http_context_open (uri, &hctx); if (result != GNOME_VFS_OK) return result; assure_trailing_slash (hctx); propfind_context_init (&pfctx); result = http_list_directory (hctx, &pfctx); if (result != GNOME_VFS_OK) { goto out; } if (pfctx.target->type != GNOME_VFS_FILE_TYPE_DIRECTORY) { result = GNOME_VFS_ERROR_NOT_A_DIRECTORY; goto out; } if (pfctx.children != NULL) { result = GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY; } req = ne_request_create (hctx->session, "DELETE", hctx->path); res = dav_request (req, FALSE); result = resolve_result (res, req); ne_request_destroy (req); out: propfind_context_clear (&pfctx); http_context_free (hctx); DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSURI * resolve_schema_alias (GnomeVFSURI *uri) { GnomeVFSURI *resolved; resolved = gnome_vfs_uri_dup (uri); g_free (resolved->method_string); resolved->method_string = g_strdup (resolve_alias (gnome_vfs_uri_get_scheme (uri))); return resolved; } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { GnomeVFSResult result; HttpContext *hctx; char *dest; ne_request *req; int res; GnomeVFSURI *dest_uri; DEBUG_HTTP_FUNC (1); if (scheme_is_dav (old_uri) == FALSE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (! http_session_uri_equal (old_uri, new_uri)) { return GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; } result = http_context_open (old_uri, &hctx); if (result != GNOME_VFS_OK) return result; dest_uri = resolve_schema_alias (new_uri); dest = gnome_vfs_uri_to_string (dest_uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); gnome_vfs_uri_unref (dest_uri); head_start: req = ne_request_create (hctx->session, "MOVE", hctx->path); ne_add_request_header (req, "Destination", dest); ne_add_request_header (req, "Overwrite", force_replace ? "T" : "F"); res = dav_request (req, TRUE); if (res == NE_REDIRECT) { result = http_follow_redirect (hctx); if (result == GNOME_VFS_OK) { ne_request_destroy (req); req = NULL; goto head_start; } } else { result = resolve_result (res, req); } ne_request_destroy (req); http_context_free (hctx); DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { GnomeVFSResult result; HttpContext *hctx; GnomeVFSFileInfo *file_info; ne_request *req; int res; DEBUG_HTTP_FUNC (1); result = http_context_open (uri, &hctx); if (result != GNOME_VFS_OK) return result; file_info = gnome_vfs_file_info_new (); result = http_get_file_info (hctx, file_info); if (result != GNOME_VFS_OK) { goto out; } if (file_info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { result = GNOME_VFS_ERROR_IS_DIRECTORY; goto out; } req = ne_request_create (hctx->session, "DELETE", hctx->path); res = dav_request (req, FALSE); result = resolve_result (res, req); ne_request_destroy (req); out: http_context_free (hctx); gnome_vfs_file_info_unref (file_info); DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { *same_fs_return = http_session_uri_equal (a, b); return GNOME_VFS_OK; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { GnomeVFSURI *parent_uri, *new_uri; GnomeVFSResult result; DEBUG_HTTP_FUNC (1); if ((mask & ~(GNOME_VFS_SET_FILE_INFO_NAME)) != 0) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } parent_uri = gnome_vfs_uri_get_parent (uri); if (parent_uri == NULL) { return GNOME_VFS_ERROR_NOT_FOUND; } new_uri = gnome_vfs_uri_append_file_name (parent_uri, info->name); gnome_vfs_uri_unref (parent_uri); result = do_move (method, uri, new_uri, FALSE, context); gnome_vfs_uri_unref (new_uri); DEBUG_HTTP_FUNC (0); return result; } static GnomeVFSResult do_truncate (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize where, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_find_directory (GnomeVFSMethod *method, GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_create_symbolic_link (GnomeVFSMethod *method, GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_file_control (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, const char *operation, gpointer operation_data, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } /* ************************************************************************** */ static GnomeVFSMethod http_method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, do_truncate, do_find_directory, do_create_symbolic_link, do_monitor_add, do_monitor_cancel, do_file_control }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { if (module_refcount++ == 0) { proxy_init (); /* ne_debug_init (stdout, 0xfffe); */ neon_session_pool_init (); http_auth_cache_init (); quick_allow_lookup_init (); } return &http_method; } void vfs_module_shutdown (GnomeVFSMethod *method) { if (--module_refcount == 0) { quit_allow_lookup_destroy (); http_auth_cache_shutdown (); neon_session_pool_shutdown (); proxy_shutdown (); } } gnome-vfs-2.24.4/modules/cdda-cdrom-extensions.h0000644000175000001440000002722211334251016016435 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* fm-cdrom-extension.c - CDROM handliong constants copied from . Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Gene Z. Ragan */ #ifndef CDDA_CDROM_EXTENSIONS_H #define CDDA_CDROM_EXTENSIONS_H /******************************************************* * The CD-ROM IOCTL commands -- these should be supported by * all the various cdrom drivers. For the CD-ROM ioctls, we * will commandeer byte 0x53, or 'S'. *******************************************************/ #define CDROMPAUSE 0x5301 /* Pause Audio Operation */ #define CDROMRESUME 0x5302 /* Resume paused Audio Operation */ #define CDROMPLAYMSF 0x5303 /* Play Audio MSF (struct cdrom_msf) */ #define CDROMPLAYTRKIND 0x5304 /* Play Audio Track/index (struct cdrom_ti) */ #define CDROMREADTOCHDR 0x5305 /* Read TOC header (struct cdrom_tochdr) */ #define CDROMREADTOCENTRY 0x5306 /* Read TOC entry (struct cdrom_tocentry) */ #define CDROMSTOP 0x5307 /* Stop the cdrom drive */ #define CDROMSTART 0x5308 /* Start the cdrom drive */ #define CDROMEJECT 0x5309 /* Ejects the cdrom media */ #define CDROMVOLCTRL 0x530a /* Control output volume (struct cdrom_volctrl) */ #define CDROMSUBCHNL 0x530b /* Read subchannel data (struct cdrom_subchnl) */ #define CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes) (struct cdrom_read) */ #define CDROMREADMODE1 0x530d /* Read CDROM mode 1 data (2048 Bytes) (struct cdrom_read) */ #define CDROMREADAUDIO 0x530e /* (struct cdrom_read_audio) */ #define CDROMEJECT_SW 0x530f /* enable(1)/disable(0) auto-ejecting */ #define CDROMMULTISESSION 0x5310 /* Obtain the start-of-last-session address of multi session disks (struct cdrom_multisession) */ #define CDROM_GET_MCN 0x5311 /* Obtain the "Universal Product Code" if available (struct cdrom_mcn) */ #define CDROM_GET_UPC CDROM_GET_MCN /* This one is depricated, but here anyway for compatability */ #define CDROMRESET 0x5312 /* hard-reset the drive */ #define CDROMVOLREAD 0x5313 /* Get the drive's volume setting (struct cdrom_volctrl) */ #define CDROMREADRAW 0x5314 /* read data in raw mode (2352 Bytes) (struct cdrom_read) */ /* * These ioctls are used only used in aztcd.c and optcd.c */ #define CDROMREADCOOKED 0x5315 /* read data in cooked mode */ #define CDROMSEEK 0x5316 /* seek msf address */ /* * This ioctl is only used by the scsi-cd driver. It is for playing audio in logical block addressing mode. */ #define CDROMPLAYBLK 0x5317 /* (struct cdrom_blk) */ /* * These ioctls are only used in optcd.c */ #define CDROMREADALL 0x5318 /* read all 2646 bytes */ /* * These ioctls are (now) only in ide-cd.c for controlling * drive spindown time. They should be implemented in the * Uniform driver, via generic packet commands, GPCMD_MODE_SELECT_10, * GPCMD_MODE_SENSE_10 and the GPMODE_POWER_PAGE... * -Erik */ #define CDROMGETSPINDOWN 0x531d #define CDROMSETSPINDOWN 0x531e /* * These ioctls are implemented through the uniform CD-ROM driver * They _will_ be adopted by all CD-ROM drivers, when all the CD-ROM * drivers are eventually ported to the uniform CD-ROM driver interface. */ #define CDROMCLOSETRAY 0x5319 /* pendant of CDROMEJECT */ #define CDROM_SET_OPTIONS 0x5320 /* Set behavior options */ #define CDROM_CLEAR_OPTIONS 0x5321 /* Clear behavior options */ #define CDROM_SELECT_SPEED 0x5322 /* Set the CD-ROM speed */ #define CDROM_SELECT_DISC 0x5323 /* Select disc (for juke-boxes) */ #define CDROM_MEDIA_CHANGED 0x5325 /* Check is media changed */ #define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */ #define CDROM_DISC_STATUS 0x5327 /* Get disc type, etc. */ #define CDROM_CHANGER_NSLOTS 0x5328 /* Get number of slots */ #define CDROM_LOCKDOOR 0x5329 /* lock or unlock door */ #define CDROM_DEBUG 0x5330 /* Turn debug messages on/off */ #define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ /* This ioctl is only used by sbpcd at the moment */ #define CDROMAUDIOBUFSIZ 0x5382 /* set the audio buffer size */ /* DVD-ROM Specific ioctls */ #define DVD_READ_STRUCT 0x5390 /* Read structure */ #define DVD_WRITE_STRUCT 0x5391 /* Write structure */ #define DVD_AUTH 0x5392 /* Authentication */ #define CDROM_SEND_PACKET 0x5393 /* send a packet to the drive */ #define CDROM_NEXT_WRITABLE 0x5394 /* get next writable block */ #define CDROM_LAST_WRITTEN 0x5395 /* get last block written on disc */ /* Some generally useful CD-ROM information -- mostly based on the above */ #define CD_MINS 74 /* max. minutes per CD, not really a limit */ #define CD_SECS 60 /* seconds per minute */ #define CD_FRAMES 75 /* frames per second */ #define CD_SYNC_SIZE 12 /* 12 sync bytes per raw data frame */ #define CD_MSF_OFFSET 150 /* MSF numbering offset of first frame */ #define CD_CHUNK_SIZE 24 /* lowest-level "data bytes piece" */ #define CD_NUM_OF_CHUNKS 98 /* chunks per frame */ #define CD_FRAMESIZE_SUB 96 /* subchannel data "frame" size */ #define CD_HEAD_SIZE 4 /* header (address) bytes per raw data frame */ #define CD_SUBHEAD_SIZE 8 /* subheader bytes per raw XA data frame */ #define CD_EDC_SIZE 4 /* bytes EDC per most raw data frame types */ #define CD_ZERO_SIZE 8 /* bytes zero per yellow book mode 1 frame */ #define CD_ECC_SIZE 276 /* bytes ECC per most raw data frame types */ #define CD_FRAMESIZE 2048 /* bytes per frame, "cooked" mode */ #define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */ #define CD_FRAMESIZE_RAWER 2646 /* The maximum possible returned bytes */ /* most drives don't deliver everything: */ #define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /*2340*/ #define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /*2336*/ #define CD_XA_HEAD (CD_HEAD_SIZE+CD_SUBHEAD_SIZE) /* "before data" part of raw XA frame */ #define CD_XA_TAIL (CD_EDC_SIZE+CD_ECC_SIZE) /* "after data" part of raw XA frame */ #define CD_XA_SYNC_HEAD (CD_SYNC_SIZE+CD_XA_HEAD) /* sync bytes + header of XA frame */ /* CD-ROM address types (cdrom_tocentry.cdte_format) */ #define CDROM_LBA 0x01 /* "logical block": first frame is #0 */ #define CDROM_MSF 0x02 /* "minute-second-frame": binary, not bcd here! */ /* bit to tell whether track is data or audio (cdrom_tocentry.cdte_ctrl) */ #define CDROM_DATA_TRACK 0x04 /* The leadout track is always 0xAA, regardless of # of tracks on disc */ #define CDROM_LEADOUT 0xAA /* audio states (from SCSI-2, but seen with other drives, too) */ #define CDROM_AUDIO_INVALID 0x00 /* audio status not supported */ #define CDROM_AUDIO_PLAY 0x11 /* audio play operation in progress */ #define CDROM_AUDIO_PAUSED 0x12 /* audio play operation paused */ #define CDROM_AUDIO_COMPLETED 0x13 /* audio play successfully completed */ #define CDROM_AUDIO_ERROR 0x14 /* audio play stopped due to error */ #define CDROM_AUDIO_NO_STATUS 0x15 /* no current audio status to return */ /* capability flags used with the uniform CD-ROM driver */ #define CDC_CLOSE_TRAY 0x1 /* caddy systems _can't_ close */ #define CDC_OPEN_TRAY 0x2 /* but _can_ eject. */ #define CDC_LOCK 0x4 /* disable manual eject */ #define CDC_SELECT_SPEED 0x8 /* programmable speed */ #define CDC_SELECT_DISC 0x10 /* select disc from juke-box */ #define CDC_MULTI_SESSION 0x20 /* read sessions>1 */ #define CDC_MCN 0x40 /* Medium Catalog Number */ #define CDC_MEDIA_CHANGED 0x80 /* media changed */ #define CDC_PLAY_AUDIO 0x100 /* audio functions */ #define CDC_RESET 0x200 /* hard reset device */ #define CDC_IOCTLS 0x400 /* driver has non-standard ioctls */ #define CDC_DRIVE_STATUS 0x800 /* driver implements drive status */ #define CDC_GENERIC_PACKET 0x1000 /* driver implements generic packets */ #define CDC_CD_R 0x2000 /* drive is a CD-R */ #define CDC_CD_RW 0x4000 /* drive is a CD-RW */ #define CDC_DVD 0x8000 /* drive is a DVD */ #define CDC_DVD_R 0x10000 /* drive can write DVD-R */ #define CDC_DVD_RAM 0x20000 /* drive can write DVD-RAM */ /* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */ #define CDS_NO_INFO 0 /* if not implemented */ #define CDS_NO_DISC 1 #define CDS_TRAY_OPEN 2 #define CDS_DRIVE_NOT_READY 3 #define CDS_DISC_OK 4 /* return values for the CDROM_DISC_STATUS ioctl */ /* can also return CDS_NO_[INFO|DISC], from above */ #define CDS_AUDIO 100 #define CDS_DATA_1 101 #define CDS_DATA_2 102 #define CDS_XA_2_1 103 #define CDS_XA_2_2 104 #define CDS_MIXED 105 /* User-configurable behavior options for the uniform CD-ROM driver */ #define CDO_AUTO_CLOSE 0x1 /* close tray on first open() */ #define CDO_AUTO_EJECT 0x2 /* open tray on last release() */ #define CDO_USE_FFLAGS 0x4 /* use O_NONBLOCK information on open */ #define CDO_LOCK 0x8 /* lock tray on open files */ #define CDO_CHECK_TYPE 0x10 /* check type on open for data */ /* Special codes used when specifying changer slots. */ #define CDSL_NONE ((int) (~0U>>1)-1) #define CDSL_CURRENT ((int) (~0U>>1)) /* For partition based multisession access. IDE can handle 64 partitions * per drive - SCSI CD-ROM's use minors to differentiate between the * various drives, so we can't do multisessions the same way there. * Use the -o session=x option to mount on them. */ #define CD_PART_MAX 64 #define CD_PART_MASK (CD_PART_MAX - 1) /******************************************************* * CDROM IOCTL structures *******************************************************/ /* Address in MSF format */ struct cdrom_msf0 { u_char minute; u_char second; u_char frame; }; /* Address in either MSF or logical format */ union cdrom_addr { struct cdrom_msf0 msf; int lba; }; /* This struct is used by the CDROMSUBCHNL ioctl */ struct cdrom_subchnl { u_char cdsc_format; u_char cdsc_audiostatus; u_char cdsc_adr: 4; u_char cdsc_ctrl: 4; u_char cdsc_trk; u_char cdsc_ind; union cdrom_addr cdsc_absaddr; union cdrom_addr cdsc_reladdr; }; /* This struct is used by the CDROMREADTOCENTRY ioctl */ struct cdrom_tocentry { u_char cdte_track; u_char cdte_adr :4; u_char cdte_ctrl :4; u_char cdte_format; union cdrom_addr cdte_addr; u_char cdte_datamode; }; /* This struct is used by the CDROMREADTOCHDR ioctl */ struct cdrom_tochdr { u_char cdth_trk0; /* start track */ u_char cdth_trk1; /* end track */ }; #endif /* CDDA_CDROM_EXTENSIONS_H */ gnome-vfs-2.24.4/modules/fstype.c0000644000175000001440000002374611334251016013557 00000000000000/* fstype.c -- determine type of filesystems that files are on Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* This code was relicensed by the FSF on May 1 2002 This file 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 file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by David MacKenzie . */ #include #include #include #include #include #ifdef STDC_HEADERS #include #endif #include #include #ifdef HAVE_LIBGEN_H #include #endif #if __STDC__ # define P_(s) s #else # define P_(s) () #endif static char *filesystem_type_uncached P_((char *path, char *relpath, struct stat *statp)); void fstype_internal_error (int level, int num, char const *fmt, ...); #ifdef FSTYPE_MNTENT /* 4.3BSD etc. */ static int xatoi P_((char *cp)); #endif #ifdef FSTYPE_MNTENT /* 4.3BSD, SunOS, HP-UX, Dynix, Irix. */ #include #if !defined(MOUNTED) # if defined(MNT_MNTTAB) /* HP-UX. */ # define MOUNTED MNT_MNTTAB # endif # if defined(MNTTABNAME) /* Dynix. */ # define MOUNTED MNTTABNAME # endif #endif #endif #ifdef FSTYPE_GETMNT /* Ultrix. */ #include #include #include #endif #ifdef FSTYPE_USG_STATFS /* SVR3. */ #include #include #endif #ifdef FSTYPE_STATVFS /* SVR4. */ #include #include #endif #ifdef FSTYPE_STATFS /* 4.4BSD. */ #include /* NetBSD needs this. */ #include #ifndef MFSNAMELEN /* NetBSD defines this. */ static char * fstype_to_string (t) short t; { #ifdef INITMOUNTNAMES /* Defined in 4.4BSD, not in NET/2. */ static char *mn[] = INITMOUNTNAMES; if (t >= 0 && t <= MOUNT_MAXTYPE) return mn[t]; else return "?"; #else /* !INITMOUNTNAMES */ switch (t) { case MOUNT_UFS: return "ufs"; case MOUNT_NFS: return "nfs"; #ifdef MOUNT_PC case MOUNT_PC: return "pc"; #endif #ifdef MOUNT_MFS case MOUNT_MFS: return "mfs"; #endif #ifdef MOUNT_LO case MOUNT_LO: return "lofs"; #endif #ifdef MOUNT_TFS case MOUNT_TFS: return "tfs"; #endif #ifdef MOUNT_TMP case MOUNT_TMP: return "tmp"; #endif #ifdef MOUNT_MSDOS case MOUNT_MSDOS: return "msdos"; #endif #ifdef MOUNT_ISO9660 case MOUNT_ISO9660: return "iso9660fs"; #endif default: return "?"; } #endif /* !INITMOUNTNAMES */ } #endif /* !MFSNAMELEN */ #endif /* FSTYPE_STATFS */ #ifdef FSTYPE_AIX_STATFS /* AIX. */ #include #include #define FSTYPE_STATFS /* Otherwise like 4.4BSD. */ #define f_type f_vfstype static char * fstype_to_string (t) short t; { switch (t) { case MNT_AIX: #if 0 /* NFS filesystems are actually MNT_AIX. */ return "aix"; #endif case MNT_NFS: return "nfs"; case MNT_JFS: return "jfs"; case MNT_CDROM: return "cdrom"; default: return "?"; } } #endif /* FSTYPE_AIX_STATFS */ #ifdef AFS #include #include #if __STDC__ /* On SunOS 4, afs/vice.h defines this to rely on a pre-ANSI cpp. */ #undef _VICEIOCTL #define _VICEIOCTL(id) ((unsigned int ) _IOW('V', id, struct ViceIoctl)) #endif #ifndef _IOW /* AFS on Solaris 2.3 doesn't get this definition. */ #include #endif static int in_afs (path) char *path; { static char space[2048]; struct ViceIoctl vi; vi.in_size = 0; vi.out_size = sizeof (space); vi.out = space; if (pioctl (path, VIOC_FILE_CELL_NAME, &vi, 1) && (errno == EINVAL || errno == ENOENT)) return 0; return 1; } #endif /* AFS */ /* Nonzero if the current filesystem's type is known. */ static int fstype_known = 0; char *filesystem_type (char *path, char *relpath, struct stat *statp); /* Return a static string naming the type of filesystem that the file PATH, described by STATP, is on. RELPATH is the file name relative to the current directory. Return "unknown" if its filesystem type is unknown. */ char * filesystem_type (char *path, char *relpath, struct stat *statp) { static char *current_fstype = NULL; static dev_t current_dev; if (current_fstype != NULL) { if (fstype_known && statp->st_dev == current_dev) return current_fstype; /* Cached value. */ g_free (current_fstype); } current_dev = statp->st_dev; current_fstype = filesystem_type_uncached (path, relpath, statp); return current_fstype; } void fstype_internal_error (int level, int num, char const *fmt, ...) { } /* Return a newly allocated string naming the type of filesystem that the file PATH, described by STATP, is on. RELPATH is the file name relative to the current directory. Return "unknown" if its filesystem type is unknown. */ static char * filesystem_type_uncached (char *path, char *relpath, struct stat *statp) { char *type = NULL; #ifdef FSTYPE_MNTENT /* 4.3BSD, SunOS, HP-UX, Dynix, Irix. */ char *table = MOUNTED; FILE *mfp; struct mntent *mnt; mfp = setmntent (table, "r"); if (mfp == NULL) { fstype_internal_error (1, errno, "%s", table); goto no_mtab; } /* Find the entry with the same device number as STATP, and return that entry's fstype. */ while (type == NULL && (mnt = getmntent (mfp))) { char *devopt; dev_t dev; struct stat disk_stats; #ifdef MNTTYPE_IGNORE if (!strcmp (mnt->mnt_type, MNTTYPE_IGNORE)) continue; #endif /* Newer systems like SunOS 4.1 keep the dev number in the mtab, in the options string. For older systems, we need to stat the directory that the filesystem is mounted on to get it. Unfortunately, the HPUX 9.x mnttab entries created by automountq contain a dev= option but the option value does not match the st_dev value of the file (maybe the lower 16 bits match?). */ #if !defined(hpux) && !defined(__hpux__) devopt = strstr (mnt->mnt_opts, "dev="); if (devopt) { if (devopt[4] == '0' && (devopt[5] == 'x' || devopt[5] == 'X')) dev = xatoi (devopt + 6); else dev = xatoi (devopt + 4); } else #endif /* not hpux */ { if (stat (mnt->mnt_dir, &disk_stats) == -1) { if (errno == EACCES) continue; else fstype_internal_error (1, errno, "error in %s: %s", table, mnt->mnt_dir); } dev = disk_stats.st_dev; } if (dev == statp->st_dev) type = mnt->mnt_type; } if (endmntent (mfp) == 0) fstype_internal_error (0, errno, "%s", table); no_mtab: #endif #ifdef FSTYPE_GETMNT /* Ultrix. */ int offset = 0; struct fs_data fsd; while (type == NULL && getmnt (&offset, &fsd, sizeof (fsd), NOSTAT_MANY, 0) > 0) { if (fsd.fd_req.dev == statp->st_dev) type = gt_names[fsd.fd_req.fstype]; } #endif #ifdef FSTYPE_USG_STATFS /* SVR3. */ struct statfs fss; char typebuf[FSTYPSZ]; if (statfs (relpath, &fss, sizeof (struct statfs), 0) == -1) { /* Don't die if a file was just removed. */ if (errno != ENOENT) fstype_internal_error (1, errno, "%s", path); } else if (!sysfs (GETFSTYP, fss.f_fstyp, typebuf)) type = typebuf; #endif #ifdef FSTYPE_STATVFS /* SVR4. */ struct statvfs fss; if (statvfs (relpath, &fss) == -1) { /* Don't die if a file was just removed. */ if (errno != ENOENT) fstype_internal_error (1, errno, "%s", path); } else type = fss.f_basetype; #endif #ifdef FSTYPE_STATFS /* 4.4BSD. */ struct statfs fss; char *p; if (S_ISLNK (statp->st_mode)) p = dirname (relpath); else p = relpath; if (statfs (p, &fss) == -1) { /* Don't die if symlink to nonexisting file, or a file that was just removed. */ if (errno != ENOENT) fstype_internal_error (1, errno, "%s", path); } else { #ifdef MFSNAMELEN /* NetBSD. */ type = fss.f_fstypename; #else type = fstype_to_string (fss.f_type); #endif } if (p != relpath) free (p); #endif #ifdef AFS if ((!type || !strcmp (type, "xx")) && in_afs (relpath)) type = "afs"; #endif /* An unknown value can be caused by an ENOENT error condition. Don't cache those values. */ fstype_known = (type != NULL); return g_strdup (type ? type : "unknown"); } #ifdef FSTYPE_MNTENT /* 4.3BSD etc. */ /* Return the value of the hexadecimal number represented by CP. No prefix (like '0x') or suffix (like 'h') is expected to be part of CP. */ static int xatoi (char *cp) { int val; val = 0; while (*cp) { if (*cp >= 'a' && *cp <= 'f') val = val * 16 + *cp - 'a' + 10; else if (*cp >= 'A' && *cp <= 'F') val = val * 16 + *cp - 'A' + 10; else if (*cp >= '0' && *cp <= '9') val = val * 16 + *cp - '0'; else break; cp++; } return val; } #endif gnome-vfs-2.24.4/modules/inotify-diag.h0000644000175000001440000000204211334251016014617 00000000000000/* inotify-helper.h - GNOME VFS Monitor using inotify Copyright (C) 2006 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: John McCutchan */ #ifndef __INOTIFY_DIAG_H #define __INOTIFY_DIAG_H void id_startup (void); #endif /* __INOTIFY_DIAG_H */ gnome-vfs-2.24.4/modules/file-method.c0000644000175000001440000021235211334251016014433 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* file-method.c - Local file access method for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ettore Perazzoli Pavel Cisler */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef G_OS_WIN32 #include #endif #include #include #include #include #include #include #include #include #ifndef G_OS_WIN32 /* We don't want the ftruncate() in mingw's unistd.h */ #include #endif #include #include #ifdef HAVE_FAM #include #endif #ifdef HAVE_SELINUX #include #endif #if defined(HAVE_LINUX_INOTIFY_H) || defined(HAVE_SYS_INOTIFY_H) #define USE_INOTIFY 1 #include "inotify-helper.h" #endif #if HAVE_SYS_STATVFS_H #include #endif #if HAVE_SYS_VFS_H #include #elif HAVE_SYS_MOUNT_H #if HAVE_SYS_PARAM_H #include #endif #include #endif #include "file-method-acl.h" #ifdef G_OS_WIN32 #include #endif #ifdef G_OS_WIN32 #define DIR_SEPARATORS "/\\" #else #define DIR_SEPARATORS "/" #endif typedef struct { GnomeVFSMethodMonitorCancelFunc cancel_func; /* Must be first */ } AnyFileMonitorHandle; #ifdef HAVE_FAM static FAMConnection *fam_connection = NULL; static gint fam_watch_id = 0; G_LOCK_DEFINE_STATIC (fam_connection); typedef struct { GnomeVFSMethodMonitorCancelFunc cancel_func; /* Must be first */ GnomeVFSURI *uri; FAMRequest request; gboolean cancelled; } FileMonitorHandle; #endif #ifdef PATH_MAX #define GET_PATH_MAX() PATH_MAX #else static int GET_PATH_MAX (void) { static unsigned int value; /* This code is copied from GNU make. It returns the maximum path length by using `pathconf'. */ if (value == 0) { long int x = pathconf(G_DIR_SEPARATOR_S, _PC_PATH_MAX); if (x > 0) value = x; else return MAXPATHLEN; } return value; } #endif #ifdef HAVE_OPEN64 #define OPEN open64 #else #define OPEN g_open #endif #if defined(HAVE_LSEEK64) && defined(HAVE_OFF64_T) #define LSEEK lseek64 #define OFF_T off64_t #else #define LSEEK lseek #define OFF_T off_t #endif #ifdef G_OS_WIN32 static int ftruncate (int fd, guint64 size) { /* FIXME: not threadsafe at all! */ LARGE_INTEGER origpos; int retval = -1; origpos.QuadPart = 0; origpos.u.LowPart = SetFilePointer ((HANDLE) _get_osfhandle (fd), 0, &origpos.u.HighPart, FILE_CURRENT); if (origpos.u.LowPart != INVALID_SET_FILE_POINTER) { LARGE_INTEGER newpos; newpos.QuadPart = size; if (SetFilePointer ((HANDLE) _get_osfhandle (fd), newpos.u.LowPart, &newpos.u.HighPart, FILE_BEGIN) != INVALID_SET_FILE_POINTER && SetEndOfFile ((HANDLE) _get_osfhandle (fd)) && SetFilePointer ((HANDLE) _get_osfhandle (fd), origpos.u.LowPart, &origpos.u.HighPart, FILE_BEGIN) != INVALID_SET_FILE_POINTER) retval = 0; } if (retval == -1) errno = EIO; return retval; } #endif static gchar * get_path_from_uri (GnomeVFSURI const *uri) { gchar *path; path = gnome_vfs_unescape_string (uri->text, DIR_SEPARATORS); if (path == NULL) { return NULL; } if (!g_path_is_absolute (path)) { g_free (path); return NULL; } #ifdef G_OS_WIN32 /* Drop slash in front of drive letter */ if (path[0] == '/' && g_ascii_isalpha (path[1]) && path[2] == ':') { gchar *tem = path; path = g_strdup (path + 1); g_free (tem); } #endif return path; } static gchar * get_base_from_uri (GnomeVFSURI const *uri) { gchar *escaped_base, *base; escaped_base = gnome_vfs_uri_extract_short_path_name (uri); base = gnome_vfs_unescape_string (escaped_base, DIR_SEPARATORS); g_free (escaped_base); return base; } typedef struct { GnomeVFSURI *uri; gint fd; } FileHandle; static FileHandle * file_handle_new (GnomeVFSURI *uri, gint fd) { FileHandle *result; result = g_new (FileHandle, 1); result->uri = gnome_vfs_uri_ref (uri); result->fd = fd; return result; } static void file_handle_destroy (FileHandle *handle) { gnome_vfs_uri_unref (handle->uri); g_free (handle); } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { FileHandle *file_handle; gint fd; mode_t unix_mode; gchar *file_name; struct stat statbuf; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); if (mode & GNOME_VFS_OPEN_READ) { if (mode & GNOME_VFS_OPEN_WRITE) unix_mode = O_RDWR; else unix_mode = O_RDONLY; } else { if (mode & GNOME_VFS_OPEN_WRITE) unix_mode = O_WRONLY; else return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } #ifdef G_OS_WIN32 unix_mode |= _O_BINARY; #endif if ((mode & GNOME_VFS_OPEN_TRUNCATE) || (!(mode & GNOME_VFS_OPEN_RANDOM) && (mode & GNOME_VFS_OPEN_WRITE))) unix_mode |= O_TRUNC; file_name = get_path_from_uri (uri); if (file_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; do fd = OPEN (file_name, unix_mode, 0); while (fd == -1 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); g_free (file_name); if (fd == -1) return gnome_vfs_result_from_errno (); #ifdef HAVE_POSIX_FADVISE if (! (mode & GNOME_VFS_OPEN_RANDOM)) { posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL); } #endif if (fstat (fd, &statbuf) != 0) return gnome_vfs_result_from_errno (); if (S_ISDIR (statbuf.st_mode)) { close (fd); return GNOME_VFS_ERROR_IS_DIRECTORY; } file_handle = file_handle_new (uri, fd); *method_handle = (GnomeVFSMethodHandle *) file_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { FileHandle *file_handle; gint fd; mode_t unix_mode; gchar *file_name; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); unix_mode = O_CREAT | O_TRUNC; #ifdef G_OS_WIN32 unix_mode |= _O_BINARY; #endif if (!(mode & GNOME_VFS_OPEN_WRITE)) return GNOME_VFS_ERROR_INVALID_OPEN_MODE; if (mode & GNOME_VFS_OPEN_READ) unix_mode |= O_RDWR; else unix_mode |= O_WRONLY; if (exclusive) unix_mode |= O_EXCL; file_name = get_path_from_uri (uri); if (file_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; do fd = OPEN (file_name, unix_mode, perm); while (fd == -1 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); g_free (file_name); if (fd == -1) return gnome_vfs_result_from_errno (); file_handle = file_handle_new (uri, fd); *method_handle = (GnomeVFSMethodHandle *) file_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *file_handle; gint close_retval; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; do close_retval = close (file_handle->fd); while (close_retval != 0 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); /* FIXME bugzilla.eazel.com 1163: Should do this even after a failure? */ file_handle_destroy (file_handle); if (close_retval != 0) { return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } static GnomeVFSResult do_forget_cache (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileOffset offset, GnomeVFSFileSize size) { FileHandle *file_handle; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; #ifdef HAVE_POSIX_FADVISE posix_fadvise (file_handle->fd, offset, size, POSIX_FADV_DONTNEED); #endif return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *file_handle; gint read_val; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; do { read_val = read (file_handle->fd, buffer, num_bytes); } while (read_val == -1 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); if (read_val == -1) { *bytes_read = 0; return gnome_vfs_result_from_errno (); } else { *bytes_read = read_val; /* Getting 0 from read() means EOF! */ if (read_val == 0) { return GNOME_VFS_ERROR_EOF; } } return GNOME_VFS_OK; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { FileHandle *file_handle; gint write_val; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; do write_val = write (file_handle->fd, buffer, num_bytes); while (write_val == -1 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); if (write_val == -1) { *bytes_written = 0; return gnome_vfs_result_from_errno (); } else { *bytes_written = write_val; return GNOME_VFS_OK; } } static gint seek_position_to_unix (GnomeVFSSeekPosition position) { switch (position) { case GNOME_VFS_SEEK_START: return SEEK_SET; case GNOME_VFS_SEEK_CURRENT: return SEEK_CUR; case GNOME_VFS_SEEK_END: return SEEK_END; default: g_warning (_("Unknown GnomeVFSSeekPosition %d"), position); return SEEK_SET; /* bogus */ } } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *file_handle; gint lseek_whence; file_handle = (FileHandle *) method_handle; lseek_whence = seek_position_to_unix (whence); if (LSEEK (file_handle->fd, offset, lseek_whence) == -1) { if (errno == ESPIPE) return GNOME_VFS_ERROR_NOT_SUPPORTED; else return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *file_handle; OFF_T offset; file_handle = (FileHandle *) method_handle; offset = LSEEK (file_handle->fd, 0, SEEK_CUR); if (offset == -1) { if (errno == ESPIPE) return GNOME_VFS_ERROR_NOT_SUPPORTED; else return gnome_vfs_result_from_errno (); } *offset_return = offset; return GNOME_VFS_OK; } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { FileHandle *file_handle; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; if (ftruncate (file_handle->fd, where) == 0) { return GNOME_VFS_OK; } else { switch (errno) { case EBADF: case EROFS: return GNOME_VFS_ERROR_READ_ONLY; case EINVAL: return GNOME_VFS_ERROR_NOT_SUPPORTED; default: return GNOME_VFS_ERROR_GENERIC; } } } static GnomeVFSResult do_truncate (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize where, GnomeVFSContext *context) { #ifndef G_OS_WIN32 gchar *path; path = get_path_from_uri (uri); if (path == NULL) return GNOME_VFS_ERROR_INVALID_URI; if (truncate (path, where) == 0) { g_free (path); return GNOME_VFS_OK; } else { g_free (path); switch (errno) { case EBADF: case EROFS: return GNOME_VFS_ERROR_READ_ONLY; case EINVAL: return GNOME_VFS_ERROR_NOT_SUPPORTED; default: return GNOME_VFS_ERROR_GENERIC; } } #else g_warning ("Not implemented: file::do_truncate()"); return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } typedef struct { GnomeVFSURI *uri; GnomeVFSFileInfoOptions options; #ifndef G_OS_WIN32 DIR *dir; struct dirent *current_entry; #else GDir *dir; #endif gchar *name_buffer; gchar *name_ptr; } DirectoryHandle; static DirectoryHandle * directory_handle_new (GnomeVFSURI *uri, #ifndef G_OS_WIN32 DIR *dir, #else GDir *dir, #endif GnomeVFSFileInfoOptions options) { DirectoryHandle *result; gchar *full_name; guint full_name_len; result = g_new (DirectoryHandle, 1); result->uri = gnome_vfs_uri_ref (uri); result->dir = dir; #ifndef G_OS_WIN32 /* Reserve extra space for readdir_r, see man page */ result->current_entry = g_malloc (sizeof (struct dirent) + GET_PATH_MAX() + 1); #endif full_name = get_path_from_uri (uri); g_assert (full_name != NULL); /* already done by caller */ full_name_len = strlen (full_name); result->name_buffer = g_malloc (full_name_len + GET_PATH_MAX () + 2); memcpy (result->name_buffer, full_name, full_name_len); if (full_name_len > 0 && !G_IS_DIR_SEPARATOR (full_name[full_name_len - 1])) result->name_buffer[full_name_len++] = G_DIR_SEPARATOR; result->name_ptr = result->name_buffer + full_name_len; g_free (full_name); result->options = options; return result; } static void directory_handle_destroy (DirectoryHandle *directory_handle) { gnome_vfs_uri_unref (directory_handle->uri); g_free (directory_handle->name_buffer); #ifndef G_OS_WIN32 g_free (directory_handle->current_entry); #endif g_free (directory_handle); } /* MIME detection code. */ static void get_mime_type (GnomeVFSFileInfo *info, const char *full_name, GnomeVFSFileInfoOptions options, struct stat *stat_buffer) { const char *mime_type; mime_type = NULL; if ((options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == 0 && (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK)) { /* we are a symlink and aren't asked to follow - * return the type for a symlink */ mime_type = "x-special/symlink"; } else { if (options & GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE) { mime_type = gnome_vfs_get_file_mime_type (full_name, stat_buffer, TRUE); } else if (options & GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE) { mime_type = gnome_vfs_get_file_mime_type (full_name, stat_buffer, FALSE); } else { mime_type = gnome_vfs_get_file_mime_type_fast (full_name, stat_buffer); } } g_assert (mime_type); info->mime_type = g_strdup (mime_type); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } #ifndef G_OS_WIN32 static gchar * read_link (const gchar *full_name) { gchar *buffer; guint size; size = 256; buffer = g_malloc (size); while (1) { int read_size; read_size = readlink (full_name, buffer, size); if (read_size < 0) { g_free (buffer); return NULL; } if (read_size < size) { buffer[read_size] = 0; return buffer; } size *= 2; buffer = g_realloc (buffer, size); } } #endif #ifdef HAVE_SELINUX /* convert a SELinux scurity context string to a g_malloc() compatible string */ static char *sec_con2g_str(char *tmp) { char *ret = tmp; if (tmp) { ret = g_strdup(tmp); freecon(tmp); } return ret; } #endif /* Get the SELinux security context */ static int get_selinux_context ( GnomeVFSFileInfo *info, const char *full_name, GnomeVFSFileInfoOptions options) { #ifdef HAVE_SELINUX if (is_selinux_enabled()) { if ((options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == 0 && (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK)) { /* we are a symlink and aren't asked to follow - * return the type for a symlink */ if (lgetfilecon_raw(full_name, &info->selinux_context) < 0) return gnome_vfs_result_from_errno (); } else { if (getfilecon_raw(full_name, &info->selinux_context) < 0) return gnome_vfs_result_from_errno (); } info->selinux_context = sec_con2g_str(info->selinux_context); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT; return GNOME_VFS_OK; } #endif return GNOME_VFS_OK; } /* Get the SELinux security context from handle */ static int get_selinux_context_from_handle ( GnomeVFSFileInfo *info, FileHandle *handle) { #ifdef HAVE_SELINUX if (is_selinux_enabled()) { if (fgetfilecon_raw(handle->fd, &info->selinux_context) >= 0) return gnome_vfs_result_from_errno (); info->selinux_context = sec_con2g_str(info->selinux_context); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT; return GNOME_VFS_OK; } #endif return GNOME_VFS_OK; } /* Set the SELinux security context */ static int set_selinux_context ( const GnomeVFSFileInfo *info, const char *full_name) { #ifdef HAVE_SELINUX if (is_selinux_enabled()) { if (setfilecon_raw(full_name, info->selinux_context) < 0) return gnome_vfs_result_from_errno (); return GNOME_VFS_OK; } #endif return GNOME_VFS_OK; } static void get_access_info (GnomeVFSFileInfo *file_info, const gchar *full_name) { /* FIXME: should check errno after calling access because we don't * want to set valid_fields if something bad happened during one * of the access calls */ #ifdef G_OS_WIN32 if (g_access (full_name, R_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_READABLE; } if (g_access (full_name, W_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_WRITABLE; } if (g_file_test (full_name, G_FILE_TEST_IS_EXECUTABLE)) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_EXECUTABLE; } #else /* Try to minimize the nr of access calls. We rely on read almost * always being allowed in normal cases to keep down the number of * calls needed */ if (g_access (full_name, R_OK|W_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_READABLE | GNOME_VFS_PERM_ACCESS_WRITABLE; if (g_access (full_name, X_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_EXECUTABLE; } } else if (g_access (full_name, R_OK|X_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_READABLE | GNOME_VFS_PERM_ACCESS_EXECUTABLE; } else { if (g_access (full_name, R_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_READABLE; } else { if (g_access (full_name, W_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_WRITABLE; } if (g_access (full_name, X_OK) == 0) { file_info->permissions |= GNOME_VFS_PERM_ACCESS_EXECUTABLE; } } } #endif file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_ACCESS; } static GnomeVFSResult get_stat_info (GnomeVFSFileInfo *file_info, const gchar *full_name, GnomeVFSFileInfoOptions options, struct stat *statptr) { struct stat statbuf; #ifndef G_OS_WIN32 gboolean is_symlink; char *link_file_path; char *symlink_name; char *symlink_dir; char *newpath; #endif gboolean recursive; recursive = FALSE; GNOME_VFS_FILE_INFO_SET_LOCAL (file_info, TRUE); if (statptr == NULL) { statptr = &statbuf; } if (g_lstat (full_name, statptr) != 0) { return gnome_vfs_result_from_errno (); } #ifndef G_OS_WIN32 is_symlink = S_ISLNK (statptr->st_mode); if ((options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) && is_symlink) { if (g_stat (full_name, statptr) != 0) { if (errno == ELOOP) { recursive = TRUE; } /* It's a broken symlink, revert to the lstat. This is sub-optimal but * acceptable because it's not a common case. */ if (g_lstat (full_name, statptr) != 0) { return gnome_vfs_result_from_errno (); } } GNOME_VFS_FILE_INFO_SET_SYMLINK (file_info, TRUE); } #endif gnome_vfs_stat_to_file_info (file_info, statptr); #ifndef G_OS_WIN32 if (is_symlink) { symlink_name = NULL; link_file_path = g_strdup (full_name); /* We will either successfully read the link name or return * NULL if read_link fails -- flag it as a valid field either * way. */ file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME; while (TRUE) { /* Deal with multiple-level symlinks by following them as * far as we can. */ g_free (symlink_name); symlink_name = read_link (link_file_path); if (symlink_name == NULL) { g_free (link_file_path); return gnome_vfs_result_from_errno (); } if ((options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) && symlink_name[0] != '/') { symlink_dir = g_path_get_dirname (link_file_path); newpath = g_build_filename (symlink_dir, symlink_name, NULL); g_free (symlink_dir); g_free (symlink_name); symlink_name = gnome_vfs_make_path_name_canonical (newpath); g_free (newpath); } if ((options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == 0 /* if we had an earlier ELOOP, don't get in an infinite loop here */ || recursive /* we don't care to follow links */ || g_lstat (symlink_name, statptr) != 0 /* we can't make out where this points to */ || !S_ISLNK (statptr->st_mode)) { /* the next level is not a link */ break; } g_free (link_file_path); link_file_path = g_strdup (symlink_name); } g_free (link_file_path); file_info->symlink_name = symlink_name; } #endif return GNOME_VFS_OK; } static GnomeVFSResult get_stat_info_from_handle (GnomeVFSFileInfo *file_info, FileHandle *handle, GnomeVFSFileInfoOptions options, struct stat *statptr) { struct stat statbuf; if (statptr == NULL) { statptr = &statbuf; } if (fstat (handle->fd, statptr) != 0) { return gnome_vfs_result_from_errno (); } gnome_vfs_stat_to_file_info (file_info, statptr); GNOME_VFS_FILE_INFO_SET_LOCAL (file_info, TRUE); return GNOME_VFS_OK; } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { gchar *directory_name; #ifndef G_OS_WIN32 DIR *dir; #else GDir *dir; #endif directory_name = get_path_from_uri (uri); if (directory_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; #ifndef G_OS_WIN32 dir = opendir (directory_name); #else dir = g_dir_open (directory_name, 0, NULL); #endif g_free (directory_name); if (dir == NULL) return gnome_vfs_result_from_errno (); *method_handle = (GnomeVFSMethodHandle *) directory_handle_new (uri, dir, options); return GNOME_VFS_OK; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { DirectoryHandle *directory_handle; directory_handle = (DirectoryHandle *) method_handle; #ifndef G_OS_WIN32 closedir (directory_handle->dir); #else g_dir_close (directory_handle->dir); #endif directory_handle_destroy (directory_handle); return GNOME_VFS_OK; } #ifndef HAVE_READDIR_R G_LOCK_DEFINE_STATIC (readdir); #endif static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { #ifndef G_OS_WIN32 struct dirent *result; #else const gchar *result; #endif struct stat statbuf; gchar *full_name; DirectoryHandle *handle; handle = (DirectoryHandle *) method_handle; errno = 0; #ifdef HAVE_READDIR_R if (readdir_r (handle->dir, handle->current_entry, &result) != 0) { /* Work around a Solaris bug. * readdir64_r returns -1 instead of 0 at EOF. */ if (errno == 0) { return GNOME_VFS_ERROR_EOF; } return gnome_vfs_result_from_errno (); } #else G_LOCK (readdir); errno = 0; #ifndef G_OS_WIN32 result = readdir (handle->dir); #else result = g_dir_read_name (handle->dir); #endif if (result == NULL && errno != 0) { GnomeVFSResult ret = gnome_vfs_result_from_errno (); G_UNLOCK (readdir); return ret; } #ifndef G_OS_WIN32 if (result != NULL) { memcpy (handle->current_entry, result, sizeof (struct dirent)); } #endif G_UNLOCK (readdir); #endif if (result == NULL) { return GNOME_VFS_ERROR_EOF; } #ifndef G_OS_WIN32 file_info->name = g_strdup (result->d_name); strcpy (handle->name_ptr, result->d_name); #else file_info->name = g_strdup (result); strcpy (handle->name_ptr, result); #endif full_name = handle->name_buffer; if (handle->options & GNOME_VFS_FILE_INFO_NAME_ONLY) { return GNOME_VFS_OK; } if (handle->options & GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT) { /* Attempt to get selinux contet, ignore error (see below) */ get_selinux_context(file_info, full_name, handle->options); } if (get_stat_info (file_info, full_name, handle->options, &statbuf) != GNOME_VFS_OK) { /* Return OK - this should not terminate the directory iteration * and we will know from the valid_fields that we don't have the * stat info. */ return GNOME_VFS_OK; } if (handle->options & GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS) { get_access_info (file_info, full_name); } if (handle->options & GNOME_VFS_FILE_INFO_GET_MIME_TYPE) { get_mime_type (file_info, full_name, handle->options, &statbuf); } if (handle->options & GNOME_VFS_FILE_INFO_GET_ACL) { file_get_acl (full_name, file_info, &statbuf, context); } return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSResult result; gchar *full_name; struct stat statbuf; full_name = get_path_from_uri (uri); if (full_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; file_info->name = get_base_from_uri (uri); g_assert (file_info->name != NULL); result = get_stat_info (file_info, full_name, options, &statbuf); if (result != GNOME_VFS_OK) { g_free (full_name); return result; } if (options & GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT) { get_selinux_context (file_info, full_name, options); } if (options & GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS) { get_access_info (file_info, full_name); } if (options & GNOME_VFS_FILE_INFO_GET_MIME_TYPE) { get_mime_type (file_info, full_name, options, &statbuf); } if (options & GNOME_VFS_FILE_INFO_GET_ACL) { file_get_acl (full_name, file_info, &statbuf, context); } g_free (full_name); return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *file_handle; gchar *full_name; struct stat statbuf; GnomeVFSResult result; file_handle = (FileHandle *) method_handle; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; full_name = get_path_from_uri (file_handle->uri); if (full_name == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } file_info->name = get_base_from_uri (file_handle->uri); g_assert (file_info->name != NULL); result = get_stat_info_from_handle (file_info, file_handle, options, &statbuf); if (result != GNOME_VFS_OK) { g_free (full_name); return result; } if (options & GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT) { result = get_selinux_context_from_handle (file_info, file_handle); if (result != GNOME_VFS_OK) { g_free (full_name); return result; } } if (options & GNOME_VFS_FILE_INFO_GET_MIME_TYPE) { get_mime_type (file_info, full_name, options, &statbuf); } if (options & GNOME_VFS_FILE_INFO_GET_ACL) { file_get_acl (full_name, file_info, &statbuf, context); } g_free (full_name); return GNOME_VFS_OK; } extern char *filesystem_type (char *path, char *relpath, struct stat *statp); G_LOCK_DEFINE_STATIC (fstype); static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { struct stat statbuf; gboolean is_local; gchar *path; g_return_val_if_fail (uri != NULL, FALSE); path = get_path_from_uri (uri); if (path == NULL) return TRUE; /* GNOME_VFS_ERROR_INVALID_URI */ if (g_stat (path, &statbuf) == 0) { char *type; G_LOCK (fstype); type = filesystem_type (path, path, &statbuf); is_local = ((strcmp (type, "nfs") != 0) && (strcmp (type, "afs") != 0) && (strcmp (type, "autofs") != 0) && (strcmp (type, "unknown") != 0) && (strcmp (type, "novfs") != 0) && (strcmp (type, "ncpfs") != 0)); G_UNLOCK (fstype); } else { /* Assume non-existent files are local */ is_local = TRUE; } g_free (path); return is_local; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { gint retval; gchar *full_name; full_name = get_path_from_uri (uri); if (full_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; retval = g_mkdir (full_name, perm); g_free (full_name); if (retval != 0) { return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { gchar *full_name; gint retval; full_name = get_path_from_uri (uri); if (full_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; retval = g_rmdir (full_name); g_free (full_name); if (retval != 0) { return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } #undef DEBUG_FIND_DIRECTORY /* Get rid of debugging code once we know the logic works. */ #define TRASH_DIRECTORY_NAME_BASE ".Trash" #define MAX_TRASH_SEARCH_DEPTH 5 /* mkdir_recursive * Works like mkdir, except it creates all the levels of directories in @path. */ static int mkdir_recursive (const char *path, int permission_bits) { struct stat stat_buffer; const char *dir_separator_scanner; char *current_path; /* try creating a director for each level */ for (dir_separator_scanner = path;; dir_separator_scanner++) { /* advance to the next directory level */ for (;;dir_separator_scanner++) { if (!*dir_separator_scanner) { break; } if (G_IS_DIR_SEPARATOR (*dir_separator_scanner)) { break; } } if (dir_separator_scanner - path > 0) { current_path = g_strndup (path, dir_separator_scanner - path); g_mkdir (current_path, permission_bits); if (g_stat (current_path, &stat_buffer) != 0) { /* we failed to create a directory and it wasn't there already; * bail */ g_free (current_path); return -1; } g_free (current_path); } if (!*dir_separator_scanner) { break; } } return 0; } static char * append_to_path (const char *path, const char *name) { return g_build_filename (path, name, NULL); } static char * append_trash_path (const char *path) { char *per_user_part; char *retval; per_user_part = g_strconcat (TRASH_DIRECTORY_NAME_BASE "-", g_get_user_name (), NULL); retval = g_build_filename (path, per_user_part, NULL); g_free (per_user_part); return retval; } static char * find_trash_in_hierarchy (const char *start_dir, dev_t near_device_id, GnomeVFSContext *context) { char *trash_path; struct stat stat_buffer; if (gnome_vfs_context_check_cancellation (context)) return NULL; /* check if there is a trash in this directory */ trash_path = append_trash_path (start_dir); if (g_lstat (trash_path, &stat_buffer) == 0 && S_ISDIR (stat_buffer.st_mode)) { /* found it, we are done */ g_assert (near_device_id == stat_buffer.st_dev); return trash_path; } g_free (trash_path); return NULL; } static GList *cached_trash_directories; G_LOCK_DEFINE_STATIC (cached_trash_directories); /* Element used to store chached Trash entries in the local, in-memory Trash item cache. */ typedef struct { char *path; char *device_mount_point; dev_t device_id; } TrashDirectoryCachedItem; typedef struct { dev_t device_id; } FindByDeviceIDParameters; static int match_trash_item_by_device_id (gconstpointer item, gconstpointer data) { const TrashDirectoryCachedItem *cached_item; FindByDeviceIDParameters *parameters; cached_item = (const TrashDirectoryCachedItem *)item; parameters = (FindByDeviceIDParameters *)data; return cached_item->device_id == parameters->device_id ? 0 : -1; } static char * try_creating_trash_in (const char *path, guint permissions) { char *trash_path; trash_path = append_trash_path (path); if (mkdir_recursive (trash_path, permissions) == 0) { #ifdef DEBUG_FIND_DIRECTORY g_print ("created trash in %s\n", trash_path); #endif return trash_path; } #ifdef DEBUG_FIND_DIRECTORY g_print ("failed to create trash in %s\n", trash_path); #endif g_free (trash_path); return NULL; } static char * find_disk_top_directory (const char *item_on_disk, dev_t near_device_id, GnomeVFSContext *context) { char *disk_top_directory; struct stat stat_buffer; disk_top_directory = g_strdup (item_on_disk); /* Walk up in the hierarchy, finding the top-most point that still * matches our device ID -- the root directory of the volume. */ for (;;) { char *previous_search_directory; char *last_slash; previous_search_directory = g_strdup (disk_top_directory); last_slash = strrchr (disk_top_directory, '/'); if (last_slash == NULL) { g_free (previous_search_directory); break; } *last_slash = '\0'; if (g_stat (disk_top_directory, &stat_buffer) < 0 || stat_buffer.st_dev != near_device_id) { /* we ran past the root of the disk we are exploring */ g_free (disk_top_directory); disk_top_directory = previous_search_directory; break; } /* FIXME bugzilla.eazel.com 2733: This must result in * a cancelled error, but there's no way for the * caller to know that. We probably have to add a * GnomeVFSResult to this function. */ if (gnome_vfs_context_check_cancellation (context)) { g_free (previous_search_directory); g_free (disk_top_directory); return NULL; } } return disk_top_directory; } #define TRASH_ENTRY_CACHE_PARENT ".gnome/gnome-vfs" #define TRASH_ENTRY_CACHE_NAME ".trash_entry_cache" #define NON_EXISTENT_TRASH_ENTRY "-" /* Save the localy cached Trashed paths on disk in the user's home * directory. */ static void save_trash_entry_cache (void) { int cache_file; char *cache_file_parent, *cache_file_path; GList *p; char *buffer, *escaped_path, *escaped_mount_point; cache_file_parent = append_to_path (g_get_home_dir (), TRASH_ENTRY_CACHE_PARENT); cache_file_path = append_to_path (cache_file_parent, TRASH_ENTRY_CACHE_NAME); if (mkdir_recursive (cache_file_parent, 0777) != 0) { g_warning ("failed to create trash item cache file"); return; } cache_file = g_open (cache_file_path, O_CREAT | O_TRUNC | O_RDWR, 0666); if (cache_file < 0) { g_warning ("failed to create trash item cache file"); return; } for (p = cached_trash_directories; p != NULL; p = p->next) { /* Use proper escaping to not confuse paths with spaces in them */ escaped_path = gnome_vfs_escape_path_string ( ((TrashDirectoryCachedItem *)p->data)->path); escaped_mount_point = gnome_vfs_escape_path_string( ((TrashDirectoryCachedItem *)p->data)->device_mount_point); buffer = g_strdup_printf ("%s %s\n", escaped_mount_point, escaped_path); write (cache_file, buffer, strlen (buffer)); #ifdef DEBUG_FIND_DIRECTORY g_print ("saving trash item cache %s\n", buffer); #endif g_free (buffer); g_free (escaped_mount_point); g_free (escaped_path); } close (cache_file); g_free (cache_file_path); g_free (cache_file_parent); } typedef struct { const char *mount_point; const char *trash_path; dev_t device_id; gboolean done; } UpdateOneCachedEntryContext; /* Updates one entry in the local Trash item cache to reflect the * location we just found or in which we created a new Trash. */ static void update_one_cached_trash_entry (gpointer element, gpointer cast_to_context) { UpdateOneCachedEntryContext *context; TrashDirectoryCachedItem *item; context = (UpdateOneCachedEntryContext *)cast_to_context; item = (TrashDirectoryCachedItem *)element; if (context->done) { /* We already took care of business in a previous iteration. */ return; } if (strcmp (context->mount_point, item->device_mount_point) == 0) { /* This is the item we are looking for, update it. */ g_free (item->path); item->path = g_strdup (context->trash_path); item->device_id = context->device_id; /* no more work */ context->done = TRUE; } } static void add_local_cached_trash_entry (dev_t near_device_id, const char *trash_path, const char *mount_point) { TrashDirectoryCachedItem *new_cached_item; UpdateOneCachedEntryContext update_context; /* First check if we already have an entry for this mountpoint, * if so, update it. */ update_context.mount_point = mount_point; update_context.trash_path = trash_path; update_context.device_id = near_device_id; update_context.done = FALSE; g_list_foreach (cached_trash_directories, update_one_cached_trash_entry, &update_context); if (update_context.done) { /* Sucessfully updated, no more work left. */ return; } /* Save the new trash item to the local cache. */ new_cached_item = g_new (TrashDirectoryCachedItem, 1); new_cached_item->path = g_strdup (trash_path); new_cached_item->device_mount_point = g_strdup (mount_point); new_cached_item->device_id = near_device_id; cached_trash_directories = g_list_prepend (cached_trash_directories, new_cached_item); } static void add_cached_trash_entry (dev_t near_device_id, const char *trash_path, const char *mount_point) { add_local_cached_trash_entry (near_device_id, trash_path, mount_point); /* write out the local cache */ save_trash_entry_cache (); } static void destroy_cached_trash_entry (TrashDirectoryCachedItem *entry) { g_free (entry->path); g_free (entry->device_mount_point); g_free (entry); } /* Read the cached entries for the file cache into the local Trash item cache. */ static void read_saved_cached_trash_entries (void) { char *cache_file_path; FILE *cache_file; char buffer[2048]; char escaped_mount_point[PATH_MAX], escaped_trash_path[PATH_MAX]; char *mount_point, *trash_path; struct stat stat_buffer; gboolean removed_item; /* empty the old locally cached entries */ g_list_foreach (cached_trash_directories, (GFunc)destroy_cached_trash_entry, NULL); g_list_free (cached_trash_directories); cached_trash_directories = NULL; /* read in the entries from disk */ cache_file_path = g_build_filename (g_get_home_dir (), TRASH_ENTRY_CACHE_PARENT, TRASH_ENTRY_CACHE_NAME, NULL); cache_file = g_fopen (cache_file_path, "r"); if (cache_file != NULL) { removed_item = FALSE; for (;;) { if (fgets (buffer, sizeof (buffer), cache_file) == NULL) { break; } mount_point = NULL; trash_path = NULL; if (sscanf (buffer, "%s %s", escaped_mount_point, escaped_trash_path) == 2) { /* the paths are saved in escaped form */ trash_path = gnome_vfs_unescape_string (escaped_trash_path, DIR_SEPARATORS); mount_point = gnome_vfs_unescape_string (escaped_mount_point, DIR_SEPARATORS); if (trash_path != NULL && mount_point != NULL && (strcmp (trash_path, NON_EXISTENT_TRASH_ENTRY) != 0 && g_lstat (trash_path, &stat_buffer) == 0) && g_stat (mount_point, &stat_buffer) == 0) { /* We know the trash exist and we checked that it's really * there - this is a good entry, copy it into the local cache. * We don't want to rely on old non-existing trash entries, as they * could have changed now, and they stick around filling up the cache, * and slowing down startup. */ add_local_cached_trash_entry (stat_buffer.st_dev, trash_path, mount_point); #ifdef DEBUG_FIND_DIRECTORY g_print ("read trash item cache entry %s %s\n", trash_path, mount_point); #endif } else { removed_item = TRUE; } } g_free (trash_path); g_free (mount_point); } fclose (cache_file); /* Save cache to get rid of stuff from on-disk cache */ if (removed_item) { save_trash_entry_cache (); } } g_free (cache_file_path); } /* Create a Trash directory on the same disk as @full_name_near. */ static char * create_trash_near (const char *full_name_near, dev_t near_device_id, const char *disk_top_directory, guint permissions, GnomeVFSContext *context) { return try_creating_trash_in (disk_top_directory, permissions); } static gboolean cached_trash_entry_exists (const TrashDirectoryCachedItem *entry) { struct stat stat_buffer; return g_lstat (entry->path, &stat_buffer) == 0; } /* Search through the local cache looking for an entry that matches a given * device ID. If @check_disk specified, check if the entry we found actually exists. */ static char * find_locally_cached_trash_entry_for_device_id (dev_t device_id, gboolean check_disk) { GList *matching_item; FindByDeviceIDParameters tmp; const char *trash_path; tmp.device_id = device_id; matching_item = g_list_find_custom (cached_trash_directories, &tmp, match_trash_item_by_device_id); if (matching_item == NULL) { return NULL; } trash_path = ((TrashDirectoryCachedItem *)matching_item->data)->path; if (trash_path == NULL) { /* we already know that this disk does not contain a trash directory */ #ifdef DEBUG_FIND_DIRECTORY g_print ("cache indicates no trash for %s \n", trash_path); #endif return g_strdup (NON_EXISTENT_TRASH_ENTRY); } if (check_disk) { /* We found something, make sure it still exists. */ if (strcmp (((TrashDirectoryCachedItem *)matching_item->data)->path, NON_EXISTENT_TRASH_ENTRY) != 0 && !cached_trash_entry_exists ((TrashDirectoryCachedItem *)matching_item->data)) { /* The cached item doesn't really exist, make a new one * and delete the cached entry */ #ifdef DEBUG_FIND_DIRECTORY g_print ("entry %s doesn't exist, removing \n", ((TrashDirectoryCachedItem *)matching_item->data)->path); #endif destroy_cached_trash_entry ((TrashDirectoryCachedItem *)matching_item->data); cached_trash_directories = g_list_remove (cached_trash_directories, matching_item->data); return NULL; } } #ifdef DEBUG_FIND_DIRECTORY g_print ("local cache found %s \n", trash_path); #endif g_assert (matching_item != NULL); return g_strdup (trash_path); } /* Look for an entry in the file and local caches. */ static char * find_cached_trash_entry_for_device (dev_t device_id, gboolean check_disk) { if (cached_trash_directories == NULL) { if (!check_disk) { return NULL; } read_saved_cached_trash_entries (); } return find_locally_cached_trash_entry_for_device_id (device_id, check_disk); } /* Search for a Trash entry or create one. Called when there is no cached entry. */ static char * find_or_create_trash_near (const char *full_name_near, dev_t near_device_id, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { char *result; char *disk_top_directory; result = NULL; /* figure out the topmost disk directory */ disk_top_directory = find_disk_top_directory (full_name_near, near_device_id, context); if (disk_top_directory == NULL) { /* Failed to find it, don't look at this disk until we * are ready to try to create a Trash on it again. */ #ifdef DEBUG_FIND_DIRECTORY g_print ("failed to find top disk directory for %s\n", full_name_near); #endif add_cached_trash_entry (near_device_id, NON_EXISTENT_TRASH_ENTRY, disk_top_directory); return NULL; } if (find_if_needed) { /* figure out the topmost disk directory */ result = find_trash_in_hierarchy (disk_top_directory, near_device_id, context); if (result == NULL) { /* We just found out there is no Trash on the disk, * remember this for next time. */ result = g_strdup(NON_EXISTENT_TRASH_ENTRY); } } if (result == NULL && create_if_needed) { /* didn't find a Trash, create one */ result = create_trash_near (full_name_near, near_device_id, disk_top_directory, permissions, context); } if (result != NULL) { /* remember whatever we found for next time */ add_cached_trash_entry (near_device_id, result, disk_top_directory); } g_free (disk_top_directory); return result; } /* Find or create a trash directory on the same disk as @full_name_near. Check * the local and file cache for matching Trash entries first. * * This is the only entry point for the trash cache code, * we holds the lock while operating on it only here. */ static char * find_trash_directory (const char *full_name_near, dev_t near_device_id, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { char *result; G_LOCK (cached_trash_directories); /* look in the saved trash locations first */ result = find_cached_trash_entry_for_device (near_device_id, find_if_needed); if (find_if_needed) { if (result != NULL && strcmp (result, NON_EXISTENT_TRASH_ENTRY) == 0 && create_if_needed) { /* We know there is no Trash yet because we remember * from the last time we looked. * If we were asked to create one, ignore the fact that * we already looked for it, look again and create a * new trash if we find nothing. */ #ifdef DEBUG_FIND_DIRECTORY g_print ("cache indicates no trash for %s, force a creation \n", full_name_near); #endif g_free (result); result = NULL; } if (result == NULL) { /* No luck sofar. Look for the Trash on the disk, optionally create it * if we find nothing. */ result = find_or_create_trash_near (full_name_near, near_device_id, create_if_needed, find_if_needed, permissions, context); } } else if (create_if_needed) { if (result == NULL || strcmp (result, NON_EXISTENT_TRASH_ENTRY) == 0) { result = find_or_create_trash_near (full_name_near, near_device_id, create_if_needed, find_if_needed, permissions, context); } } if (result != NULL && strcmp(result, NON_EXISTENT_TRASH_ENTRY) == 0) { /* This means that we know there is no Trash */ g_free (result); result = NULL; } G_UNLOCK (cached_trash_directories); return result; } static GnomeVFSResult do_find_directory (GnomeVFSMethod *method, GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { gint retval; char *full_name_near; struct stat near_item_stat; struct stat home_volume_stat; const char *home_directory; char *target_directory_path; char *target_directory_uri; target_directory_path = NULL; *result_uri = NULL; full_name_near = get_path_from_uri (near_uri); if (full_name_near == NULL) return GNOME_VFS_ERROR_INVALID_URI; /* We will need the URI and the stat structure for the home directory. */ home_directory = g_get_home_dir (); if (gnome_vfs_context_check_cancellation (context)) { g_free (full_name_near); return GNOME_VFS_ERROR_CANCELLED; } retval = g_lstat (full_name_near, &near_item_stat); if (retval != 0) { g_free (full_name_near); return gnome_vfs_result_from_errno (); } if (gnome_vfs_context_check_cancellation (context)) { g_free (full_name_near); return GNOME_VFS_ERROR_CANCELLED; } retval = g_stat (home_directory, &home_volume_stat); if (retval != 0) { g_free (full_name_near); return gnome_vfs_result_from_errno (); } if (gnome_vfs_context_check_cancellation (context)) { g_free (full_name_near); return GNOME_VFS_ERROR_CANCELLED; } switch (kind) { case GNOME_VFS_DIRECTORY_KIND_TRASH: /* Use 0700 (S_IRWXU) for the permissions, * regardless of the requested permissions, so other * users can't view the trash files. */ permissions = S_IRWXU; if (near_item_stat.st_dev != home_volume_stat.st_dev) { /* This volume does not contain our home, we have to find/create the Trash * elsewhere on the volume. Use a heuristic to find a good place. */ if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; target_directory_path = find_trash_directory (full_name_near, near_item_stat.st_dev, create_if_needed, find_if_needed, permissions, context); if (gnome_vfs_context_check_cancellation (context)) { return GNOME_VFS_ERROR_CANCELLED; } } else { /* volume with a home directory, just create a trash in home */ target_directory_path = append_to_path (home_directory, TRASH_DIRECTORY_NAME_BASE); } break; case GNOME_VFS_DIRECTORY_KIND_DESKTOP: if (near_item_stat.st_dev != home_volume_stat.st_dev) { /* unsupported */ break; } target_directory_path = append_to_path (home_directory, "Desktop"); break; default: break; } g_free (full_name_near); if (target_directory_path == NULL) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (create_if_needed && g_access (target_directory_path, F_OK) != 0) { mkdir_recursive (target_directory_path, permissions); } if (g_access (target_directory_path, F_OK) != 0) { g_free (target_directory_path); return GNOME_VFS_ERROR_NOT_FOUND; } target_directory_uri = gnome_vfs_get_uri_from_local_path (target_directory_path); g_free (target_directory_path); *result_uri = gnome_vfs_uri_new (target_directory_uri); g_free (target_directory_uri); return GNOME_VFS_OK; } static GnomeVFSResult rename_helper (const gchar *old_full_name, const gchar *new_full_name, gboolean force_replace, GnomeVFSContext *context) { gboolean old_exists; struct stat statbuf; gint retval; gchar *temp_name; GnomeVFSHandle *temp_handle; GnomeVFSResult result; retval = g_stat (new_full_name, &statbuf); if (retval == 0) { /* Special case for files on case insensitive (vfat) filesystems: * If the old and the new name only differ by case, * try renaming via a temp file name. */ if (g_ascii_strcasecmp (old_full_name, new_full_name) == 0 && strcmp (old_full_name, new_full_name) != 0 && ! force_replace) { if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; result = gnome_vfs_create_temp (old_full_name, &temp_name, &temp_handle); if (result != GNOME_VFS_OK) return result; gnome_vfs_close (temp_handle); g_unlink (temp_name); retval = g_rename (old_full_name, temp_name); if (retval == 0) { if (g_stat (new_full_name, &statbuf) != 0 && g_rename (temp_name, new_full_name) == 0) { /* Success */ return GNOME_VFS_OK; } /* Revert the filename back to original */ retval = g_rename (temp_name, old_full_name); if (retval == 0) { return GNOME_VFS_ERROR_FILE_EXISTS; } } return gnome_vfs_result_from_errno_code (retval); } else if (! force_replace) { /* If we are not allowed to replace an existing file, * return an error. */ return GNOME_VFS_ERROR_FILE_EXISTS; } old_exists = TRUE; } else { old_exists = FALSE; } if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; #ifdef G_OS_WIN32 if (force_replace && old_exists) g_remove (new_full_name); #endif retval = g_rename (old_full_name, new_full_name); #ifndef G_OS_WIN32 /* FIXME bugzilla.eazel.com 1186: The following assumes that, * if `new_uri' and `old_uri' are on different file systems, * `rename()' will always return `EXDEV' instead of `EISDIR', * even if the old file is not a directory while the new one * is. If this is not the case, we have to stat() both the * old and new file. */ if (retval != 0 && errno == EISDIR && force_replace && old_exists) { /* The Unix version of `rename()' fails if the original file is not a directory, while the new one is. But we have been explicitly asked to replace the destination name, so if the new name points to a directory, we remove it manually. */ if (S_ISDIR (statbuf.st_mode)) { if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; retval = g_rmdir (new_full_name); if (retval != 0) { return gnome_vfs_result_from_errno (); } if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; retval = g_rename (old_full_name, new_full_name); } } #endif if (retval != 0) { return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } static GnomeVFSResult set_symlink_name_helper (const gchar *full_name, const GnomeVFSFileInfo *info) { #ifndef G_OS_WIN32 struct stat statbuf; if (info->symlink_name == NULL) { return GNOME_VFS_ERROR_BAD_PARAMETERS; } if (g_lstat (full_name, &statbuf) != 0) { return gnome_vfs_result_from_errno (); } if (!S_ISLNK (statbuf.st_mode)) { return GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK; } if (g_unlink (full_name) != 0) { return gnome_vfs_result_from_errno (); } if (symlink (info->symlink_name, full_name) != 0) { /* TODO should we try to restore the old symlink? */ return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { gchar *old_full_name; gchar *new_full_name; GnomeVFSResult result; old_full_name = get_path_from_uri (old_uri); if (old_full_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; new_full_name = get_path_from_uri (new_uri); if (new_full_name == NULL) { g_free (old_full_name); return GNOME_VFS_ERROR_INVALID_URI; } result = rename_helper (old_full_name, new_full_name, force_replace, context); g_free (old_full_name); g_free (new_full_name); return result; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { gchar *full_name; gint retval; full_name = get_path_from_uri (uri); if (full_name == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } retval = g_unlink (full_name); g_free (full_name); if (retval != 0) { return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } static GnomeVFSResult do_create_symbolic_link (GnomeVFSMethod *method, GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { #ifndef G_OS_WIN32 const char *link_scheme, *target_scheme; char *link_full_name, *target_full_name; GnomeVFSResult result; GnomeVFSURI *target_uri; g_assert (target_reference != NULL); g_assert (uri != NULL); /* what we actually want is a function that takes a const char * and * tells whether it is a valid URI */ target_uri = gnome_vfs_uri_new (target_reference); if (target_uri == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } link_scheme = gnome_vfs_uri_get_scheme (uri); g_assert (link_scheme != NULL); target_scheme = gnome_vfs_uri_get_scheme (target_uri); if (target_scheme == NULL) { target_scheme = "file"; } if ((strcmp (link_scheme, "file") == 0) && (strcmp (target_scheme, "file") == 0)) { /* symlink between two places on the local filesystem */ if (strncmp (target_reference, "file", 4) != 0) { /* target_reference wasn't a full URI */ target_full_name = strdup (target_reference); } else { target_full_name = get_path_from_uri (target_uri); } link_full_name = get_path_from_uri (uri); if (symlink (target_full_name, link_full_name) != 0) { result = gnome_vfs_result_from_errno (); } else { result = GNOME_VFS_OK; } g_free (target_full_name); g_free (link_full_name); } else { /* FIXME bugzilla.eazel.com 2792: do a URI link */ result = GNOME_VFS_ERROR_NOT_SUPPORTED; } gnome_vfs_uri_unref (target_uri); return result; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } /* When checking whether two locations are on the same file system, we are doing this to determine whether we can recursively move or do other sorts of transfers. When a symbolic link is the "source", its location is the location of the link file, because we want to know about transferring the link, whereas for symbolic links that are "targets", we use the location of the object being pointed to, because that is where we will be moving/copying to. */ static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, gboolean *same_fs_return, GnomeVFSContext *context) { gchar *full_name_source, *full_name_target; struct stat s_source, s_target; gint retval; full_name_source = get_path_from_uri (source_uri); retval = g_lstat (full_name_source, &s_source); g_free (full_name_source); if (retval != 0) return gnome_vfs_result_from_errno (); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; full_name_target = get_path_from_uri (target_uri); retval = g_stat (full_name_target, &s_target); g_free (full_name_target); if (retval != 0) return gnome_vfs_result_from_errno (); *same_fs_return = (s_source.st_dev == s_target.st_dev); return GNOME_VFS_OK; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { gchar *full_name; full_name = get_path_from_uri (uri); if (full_name == NULL) return GNOME_VFS_ERROR_INVALID_URI; if (mask & GNOME_VFS_SET_FILE_INFO_NAME) { GnomeVFSResult result; gchar *dir, *encoded_dir; gchar *new_name; encoded_dir = gnome_vfs_uri_extract_dirname (uri); dir = gnome_vfs_unescape_string (encoded_dir, DIR_SEPARATORS); g_free (encoded_dir); g_assert (dir != NULL); new_name = g_build_filename (dir, info->name, NULL); result = rename_helper (full_name, new_name, FALSE, context); g_free (dir); g_free (full_name); full_name = new_name; if (result != GNOME_VFS_OK) { g_free (full_name); return result; } } if (mask & GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT) { GnomeVFSResult result = set_selinux_context(info, full_name); if (result < 0) { g_free(full_name); return result; } } if (gnome_vfs_context_check_cancellation (context)) { g_free (full_name); return GNOME_VFS_ERROR_CANCELLED; } if (mask & GNOME_VFS_SET_FILE_INFO_PERMISSIONS) { if (chmod (full_name, info->permissions) != 0) { g_free (full_name); return gnome_vfs_result_from_errno (); } } if (gnome_vfs_context_check_cancellation (context)) { g_free (full_name); return GNOME_VFS_ERROR_CANCELLED; } if (mask & GNOME_VFS_SET_FILE_INFO_OWNER) { #ifndef G_OS_WIN32 if (chown (full_name, info->uid, info->gid) != 0) { g_free (full_name); return gnome_vfs_result_from_errno (); } #else g_warning ("Not implemented: GNOME_VFS_SET_FILE_INFO_OWNER"); #endif } if (gnome_vfs_context_check_cancellation (context)) { g_free (full_name); return GNOME_VFS_ERROR_CANCELLED; } if (mask & GNOME_VFS_SET_FILE_INFO_TIME) { struct utimbuf utimbuf; utimbuf.actime = info->atime; utimbuf.modtime = info->mtime; if (utime (full_name, &utimbuf) != 0) { g_free (full_name); return gnome_vfs_result_from_errno (); } } if (gnome_vfs_context_check_cancellation (context)) { g_free (full_name); return GNOME_VFS_ERROR_CANCELLED; } if (mask & GNOME_VFS_SET_FILE_INFO_ACL) { GnomeVFSResult result; result = file_set_acl (full_name, info, context); if (result != GNOME_VFS_OK) { g_free (full_name); return result; } } if (mask & GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME) { GnomeVFSResult result; result = set_symlink_name_helper (full_name, info); if (result != GNOME_VFS_OK) { g_free (full_name); return result; } } g_free (full_name); return GNOME_VFS_OK; } #ifdef HAVE_FAM static gboolean fam_do_iter_unlocked (void) { while (fam_connection != NULL && FAMPending(fam_connection)) { FAMEvent ev; FileMonitorHandle *handle; gboolean cancelled; GnomeVFSMonitorEventType event_type; if (FAMNextEvent(fam_connection, &ev) != 1) { FAMClose(fam_connection); g_free(fam_connection); g_source_remove (fam_watch_id); fam_watch_id = 0; fam_connection = NULL; return FALSE; } handle = (FileMonitorHandle *)ev.userdata; cancelled = handle->cancelled; event_type = -1; switch (ev.code) { case FAMChanged: event_type = GNOME_VFS_MONITOR_EVENT_CHANGED; break; case FAMDeleted: event_type = GNOME_VFS_MONITOR_EVENT_DELETED; break; case FAMStartExecuting: event_type = GNOME_VFS_MONITOR_EVENT_STARTEXECUTING; break; case FAMStopExecuting: event_type = GNOME_VFS_MONITOR_EVENT_STOPEXECUTING; break; case FAMCreated: event_type = GNOME_VFS_MONITOR_EVENT_CREATED; break; case FAMAcknowledge: if (handle->cancelled) { gnome_vfs_uri_unref (handle->uri); g_free (handle); } break; case FAMExists: case FAMEndExist: case FAMMoved: /* Not supported */ break; } if (event_type != -1 && !cancelled) { GnomeVFSURI *info_uri; gchar *info_str; /* * FAM can send events with either a absolute or * relative (from the monitored URI) path, so check if * the filename starts with '/'. */ if (ev.filename[0] == '/') { info_str = gnome_vfs_get_uri_from_local_path (ev.filename); info_uri = gnome_vfs_uri_new (info_str); g_free (info_str); } else info_uri = gnome_vfs_uri_append_file_name (handle->uri, ev.filename); /* This queues an idle, so there are no reentrancy issues */ gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)handle, info_uri, event_type); gnome_vfs_uri_unref (info_uri); } } return TRUE; } static gboolean fam_callback (GIOChannel *source, GIOCondition condition, gpointer data) { gboolean res; G_LOCK (fam_connection); res = fam_do_iter_unlocked (); G_UNLOCK (fam_connection); return res; } static gboolean monitor_setup (void) { GIOChannel *ioc; G_LOCK (fam_connection); if (fam_connection == NULL) { fam_connection = g_malloc0(sizeof(FAMConnection)); if (FAMOpen2(fam_connection, "gnome-vfs user") != 0) { #ifdef DEBUG_FAM g_print ("FAMOpen failed, FAMErrno=%d\n", FAMErrno); #endif g_free(fam_connection); fam_connection = NULL; G_UNLOCK (fam_connection); return FALSE; } ioc = g_io_channel_unix_new (FAMCONNECTION_GETFD(fam_connection)); fam_watch_id = g_io_add_watch (ioc, G_IO_IN | G_IO_HUP | G_IO_ERR, fam_callback, fam_connection); g_io_channel_unref (ioc); } G_UNLOCK (fam_connection); return TRUE; } #endif #ifdef HAVE_FAM static GnomeVFSResult fam_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { FileMonitorHandle *handle = (FileMonitorHandle *)method_handle; if (!monitor_setup ()) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (handle->cancelled) return GNOME_VFS_OK; handle->cancelled = TRUE; G_LOCK (fam_connection); /* We need to queue up incoming messages to avoid blocking on write if there are many monitors being canceled */ fam_do_iter_unlocked (); if (fam_connection == NULL) { G_UNLOCK (fam_connection); return GNOME_VFS_ERROR_NOT_SUPPORTED; } FAMCancelMonitor (fam_connection, &handle->request); G_UNLOCK (fam_connection); return GNOME_VFS_OK; } static GnomeVFSResult fam_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { FileMonitorHandle *handle; char *filename; if (!monitor_setup ()) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } filename = get_path_from_uri (uri); if (filename == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } handle = g_new0 (FileMonitorHandle, 1); handle->cancel_func = fam_monitor_cancel; handle->uri = uri; handle->cancelled = FALSE; gnome_vfs_uri_ref (uri); G_LOCK (fam_connection); /* We need to queue up incoming messages to avoid blocking on write if there are many monitors being added */ fam_do_iter_unlocked (); if (fam_connection == NULL) { G_UNLOCK (fam_connection); g_free (handle); gnome_vfs_uri_unref (uri); g_free (filename); return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (monitor_type == GNOME_VFS_MONITOR_FILE) { FAMMonitorFile (fam_connection, filename, &handle->request, handle); } else { FAMMonitorDirectory (fam_connection, filename, &handle->request, handle); } G_UNLOCK (fam_connection); *method_handle_return = (GnomeVFSMethodHandle *)handle; g_free (filename); return GNOME_VFS_OK; } #endif #ifdef USE_INOTIFY static GnomeVFSResult inotify_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { ih_sub_t *sub = (ih_sub_t *)method_handle; if (sub->cancelled) return GNOME_VFS_OK; ih_sub_cancel (sub); ih_sub_free (sub); return GNOME_VFS_OK; } static GnomeVFSResult inotify_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { ih_sub_t *sub; sub = ih_sub_new (uri, monitor_type); if (sub == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } sub->cancel_func = inotify_monitor_cancel; if (ih_sub_add (sub) == FALSE) { ih_sub_free (sub); *method_handle_return = NULL; return GNOME_VFS_ERROR_INVALID_URI; } *method_handle_return = (GnomeVFSMethodHandle *)sub; return GNOME_VFS_OK; } #endif static GnomeVFSResult do_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { #ifdef USE_INOTIFY /* For remote files, always prefer FAM */ if (do_is_local (method, uri) && ih_startup ()) { return inotify_monitor_add (method, method_handle_return, uri, monitor_type); } #endif #ifdef HAVE_FAM return fam_monitor_add (method, method_handle_return, uri, monitor_type); #endif return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { AnyFileMonitorHandle *handle; handle = (AnyFileMonitorHandle *)method_handle; if (handle != NULL) { return (handle->cancel_func) (method, method_handle); } return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_file_control (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, const char *operation, gpointer operation_data, GnomeVFSContext *context) { if (strcmp (operation, "file:test") == 0) { *(char **)operation_data = g_strdup ("test ok"); return GNOME_VFS_OK; } return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_get_volume_free_space (GnomeVFSMethod *method, const GnomeVFSURI *uri, GnomeVFSFileSize *free_space) { #ifndef G_OS_WIN32 GnomeVFSFileSize free_blocks, block_size; int statfs_result; const char *path; char *unescaped_path; #if HAVE_STATVFS struct statvfs statfs_buffer; #else struct statfs statfs_buffer; #endif *free_space = 0; path = gnome_vfs_uri_get_path (uri); if (path == NULL || *path != '/') { return GNOME_VFS_ERROR_INVALID_URI; } unescaped_path = gnome_vfs_unescape_string (path, G_DIR_SEPARATOR_S); #if HAVE_STATVFS statfs_result = statvfs (unescaped_path, &statfs_buffer); block_size = statfs_buffer.f_frsize; #else #if STATFS_ARGS == 2 statfs_result = statfs (unescaped_path, &statfs_buffer); #elif STATFS_ARGS == 4 statfs_result = statfs (unescaped_path, &statfs_buffer, sizeof (statfs_buffer), 0); #endif block_size = statfs_buffer.f_bsize; #endif if (statfs_result != 0) { g_free (unescaped_path); return gnome_vfs_result_from_errno (); } /* CF: I assume ncpfs is linux specific, if you are on a non-linux platform * where ncpfs is available, please file a bug about it on bugzilla.gnome.org * (2004-03-08) */ #if defined(__linux__) /* ncpfs does not know the amount of available and free space */ if (statfs_buffer.f_bavail == 0 && statfs_buffer.f_bfree == 0) { /* statvfs does not contain an f_type field, we try again * with statfs. */ struct statfs statfs_buffer2; statfs_result = statfs (unescaped_path, &statfs_buffer2); g_free (unescaped_path); if (statfs_result != 0) { return gnome_vfs_result_from_errno (); } /* linux/ncp_fs.h: NCP_SUPER_MAGIC == 0x564c */ if (statfs_buffer2.f_type == 0x564c) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } } else { /* everything is copacetic... free the unescaped path */ g_free (unescaped_path); } #else g_free (unescaped_path); #endif free_blocks = statfs_buffer.f_bavail; *free_space = block_size * free_blocks; return GNOME_VFS_OK; #else /* G_OS_WIN32 */ g_warning ("Not implemented for WIN32: file-method.c:do_get_volume_free_space()"); return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, do_truncate, do_find_directory, do_create_symbolic_link, do_monitor_add, do_monitor_cancel, do_file_control, do_forget_cache, do_get_volume_free_space }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { } gnome-vfs-2.24.4/modules/tar-method.c0000644000175000001440000004157211334251016014306 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* tar-method.c - The tar method implementation for the GNOME Virtual File System. Copyright (C) 2002 Ximian, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Rachel Hestilow Abigail Brady (tarpet.h) */ #include #include #include #include #include #include #include #include #include "tarpet.h" typedef struct { union TARPET_block* blocks; guint num_blocks; GNode *info_tree; int ref_count; gchar *filename; } TarFile; typedef struct { TarFile *tar; union TARPET_block* start; union TARPET_block* current; int current_offset; int current_index; gchar *filename; gboolean is_directory; } FileHandle; #define TARPET_BLOCKSIZE (sizeof (union TARPET_block)) static GHashTable *tar_cache; G_LOCK_DEFINE_STATIC (tar_cache); #define iteration_initialize(condition, i, cond1, cond2) ((i) = (condition) ? (cond1) : (cond2)) #define iteration_check(condition, i, op1, op2, val1, val2) ((condition) ? (i op1 val1) : (i op2 val2)) #define iteration_iterate(condition, i, op1, op2) ((condition) ? (i op1) : (i op2)) #define parse_octal_field(v) (parse_octal ((v), sizeof (v))) #define IS_OCTAL_DIGIT(c) ((c) >= '0' && (c) <= '8') #define OCTAL_DIGIT(c) ((c) - '0') static int parse_octal (const char *str, int len) { int i, ret = 0; for (i = 0; i < len; i++) { if (str[i] == '\0') break; else if (!IS_OCTAL_DIGIT (str[i])) return 0; ret = ret * 8 + OCTAL_DIGIT (str[i]); } return ret; } static void split_name_with_level (const gchar *name, gchar **first, gchar **last, int level, gboolean backwards) { int i; gchar *found = NULL; int num_found = 0; if (name[strlen (name) - 1] == '/' && backwards) level++; for (iteration_initialize (backwards, i, strlen (name) - 1, 0); iteration_check (backwards, i, >=, <, 0, strlen (name)); iteration_iterate (backwards, i, --, ++)) { if (name[i] == '/') num_found++; if (num_found >= level) { found = (gchar*) name + i; break; } } if (found) { *first = g_strndup (name, found - name + 1); if (*(found + 1)) *last = g_strdup (found + 1); else *last = NULL; } else { *first = g_strdup (name); *last = NULL; } } static void split_name (const gchar *name, gchar **first, gchar **last) { split_name_with_level (name, first, last, 1, TRUE); } static GNode* real_lookup_entry (const GNode *tree, const gchar *name, int level) { GNode *node, *ret = NULL; gchar *first, *rest; split_name_with_level (name, &first, &rest, level, FALSE); for (node = tree->children; node; node = node->next) { union TARPET_block *b = (union TARPET_block*) node->data; if (!strcmp (b->raw.data, first)) { if (rest) ret = real_lookup_entry (node, name, level + 1); else ret = node; break; } else if (!strcmp (b->raw.data, name)) { ret = node; break; } } g_free (first); g_free (rest); return ret; } static GNode* tree_lookup_entry (const GNode *tree, const gchar *name) { GNode *ret; char *root = g_strdup (name); char *txt = root; if (txt[0] == '/') txt++; ret = real_lookup_entry (tree, txt, 1); if (!ret && txt[strlen (txt) - 1] != '/') { txt = g_strconcat (txt, "/", NULL); g_free (root); root = txt; ret = real_lookup_entry (tree, txt, 1); } g_free (root); if (ret && ret != tree->children) { union TARPET_block *b = ret->data; b--; if (b->p.typeflag == TARPET_TYPE_LONGFILEN) ret = ret->next; } return ret; } static TarFile* read_tar_file (GnomeVFSHandle *handle) { GArray *arr = g_array_new (TRUE, TRUE, sizeof (union TARPET_block)); GnomeVFSResult res; TarFile* ret; GnomeVFSFileSize bytes_read; int i; do { union TARPET_block b; res = gnome_vfs_read (handle, b.raw.data, TARPET_BLOCKSIZE, &bytes_read); if (res == GNOME_VFS_OK) g_array_append_val (arr, b); } while (res == GNOME_VFS_OK && bytes_read > 0); ret = g_new0 (TarFile, 1); ret->blocks = (union TARPET_block*) arr->data; ret->num_blocks = arr->len; ret->info_tree = g_node_new (NULL); for (i = 0; i < ret->num_blocks;) { gchar *dir; gchar *rest; GNode *node; int size = 0, maxsize; int orig; if (!(*ret->blocks[i].p.name)) { i++; continue; } if (ret->blocks[i].p.typeflag == TARPET_TYPE_LONGFILEN) { i++; continue; } split_name (ret->blocks[i].p.name, &dir, &rest); node = tree_lookup_entry (ret->info_tree, dir); if (!node) { node = ret->info_tree; } g_node_append (node, g_node_new (&(ret->blocks[i]))); g_free (dir); g_free (rest); maxsize = parse_octal_field (ret->blocks[i].p.size); if (maxsize) { for (orig = i; i < ret->num_blocks && size < maxsize; i++) { int wsize = TARPET_BLOCKSIZE; if ((maxsize - size) < TARPET_BLOCKSIZE) wsize = maxsize - size; size += wsize; } i++; } else { i++; } } g_array_free (arr, FALSE); return ret; } static TarFile* ensure_tarfile (GnomeVFSURI *uri) { TarFile *tar; GnomeVFSHandle *handle; gchar *parent_string; parent_string = gnome_vfs_uri_to_string (uri->parent, GNOME_VFS_URI_HIDE_NONE); G_LOCK (tar_cache); tar = g_hash_table_lookup (tar_cache, parent_string); if (!tar) { if (gnome_vfs_open_uri (&handle, uri->parent, GNOME_VFS_OPEN_READ) != GNOME_VFS_OK) return NULL; tar = read_tar_file (handle); tar->filename = parent_string; gnome_vfs_close (handle); g_hash_table_insert (tar_cache, parent_string, tar); } G_UNLOCK (tar_cache); tar->ref_count++; return tar; } static void tar_file_unref (TarFile *tar) { tar->ref_count--; if (tar->ref_count < 0) { G_LOCK (tar_cache); g_hash_table_remove (tar_cache, tar->filename); G_UNLOCK (tar_cache); g_free (tar->blocks); g_node_destroy (tar->info_tree); g_free (tar->filename); g_free (tar); } } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { TarFile *tar; FileHandle *new_handle; GNode *node; union TARPET_block *start; int i; if (!uri->parent) return GNOME_VFS_ERROR_INVALID_URI; tar = ensure_tarfile (uri); if (!tar) return GNOME_VFS_ERROR_BAD_FILE; node = tree_lookup_entry (tar->info_tree, uri->text); if (!node) { tar_file_unref (tar); return GNOME_VFS_ERROR_NOT_FOUND; } start = node->data; if (start->p.name[strlen (start->p.name) - 1] == '/') return GNOME_VFS_ERROR_IS_DIRECTORY; new_handle = g_new0 (FileHandle, 1); new_handle->tar = tar; new_handle->filename = g_strdup (uri->text); new_handle->start = start; new_handle->current = new_handle->start; new_handle->current_offset = 0; for (i = 0; i < tar->num_blocks; i++) if (start == &(tar->blocks[i])) break; new_handle->current_index = i; new_handle->is_directory = FALSE; *method_handle = (GnomeVFSMethodHandle*) new_handle; return GNOME_VFS_OK; } static void file_handle_unref (FileHandle *handle) { tar_file_unref (handle->tar); g_free (handle->filename); g_free (handle); } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *handle = (FileHandle*) method_handle; file_handle_unref (handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *handle = (FileHandle*) method_handle; int i, size = 0, maxsize; if (handle->is_directory) return GNOME_VFS_ERROR_IS_DIRECTORY; maxsize = parse_octal_field (handle->start->p.size); if (handle->current == handle->start) { handle->current_index++; handle->current_offset = TARPET_BLOCKSIZE; } for (i = handle->current_index; i < handle->tar->num_blocks && handle->current_offset < (maxsize + TARPET_BLOCKSIZE) && size < num_bytes; i++) { int wsize = TARPET_BLOCKSIZE; gpointer target_buf = (gchar*)buffer + size; if ((maxsize - (handle->current_offset - TARPET_BLOCKSIZE)) < TARPET_BLOCKSIZE && (maxsize - (handle->current_offset - TARPET_BLOCKSIZE)) > 0) wsize = maxsize - handle->current_offset + TARPET_BLOCKSIZE; else if (num_bytes < (size + wsize)) wsize = num_bytes - size; else handle->current_index = i + 1; memcpy (target_buf, handle->start->raw.data + handle->current_offset, wsize); size += wsize; handle->current_offset += wsize; } if (handle->current_index < handle->tar->num_blocks) handle->current = &handle->tar->blocks[handle->current_index]; else handle->current = NULL; *bytes_read = size; return GNOME_VFS_OK; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *handle = (FileHandle*) method_handle; GnomeVFSFileOffset current_offset; switch (whence) { case GNOME_VFS_SEEK_START: current_offset = 0; break; case GNOME_VFS_SEEK_CURRENT: current_offset = handle->current_offset; break; case GNOME_VFS_SEEK_END: current_offset = parse_octal_field (handle->start->p.size); break; default: current_offset = handle->current_offset; break; } handle->current_offset = current_offset + offset; return GNOME_VFS_OK; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *handle = (FileHandle*) method_handle; *offset_return = handle->current_offset; return GNOME_VFS_OK; } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { TarFile *tar; FileHandle *new_handle; union TARPET_block *start, *current; GNode *node; int i; if (!uri->parent) return GNOME_VFS_ERROR_INVALID_URI; tar = ensure_tarfile (uri); if (uri->text) { node = tree_lookup_entry (tar->info_tree, uri->text); if (!node) { tar_file_unref (tar); return GNOME_VFS_ERROR_NOT_FOUND; } start = node->data; if (start->p.name[strlen (start->p.name) - 1] != '/') return GNOME_VFS_ERROR_NOT_A_DIRECTORY; if (node->children) current = node->children->data; else current = NULL; } else { node = tar->info_tree; if (!node) { tar_file_unref (tar); return GNOME_VFS_ERROR_NOT_FOUND; } if (node->children) start = node->children->data; else start = NULL; current = start; } new_handle = g_new0 (FileHandle, 1); new_handle->tar = tar; new_handle->filename = g_strdup (tar->filename); new_handle->start = start; new_handle->current = current; for (i = 0; i < tar->num_blocks; i++) if (start == &(tar->blocks[i])) break; new_handle->current_index = i; new_handle->is_directory = TRUE; *method_handle = (GnomeVFSMethodHandle*) new_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *handle = (FileHandle*) method_handle; file_handle_unref (handle); return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { TarFile *tar; GNode *node; union TARPET_block *current; gchar *name; gchar *path; char *mime_type; int i; if (!uri->parent) return GNOME_VFS_ERROR_INVALID_URI; tar = ensure_tarfile (uri); if (uri->text) node = tree_lookup_entry (tar->info_tree, uri->text); else node = tar->info_tree->children; if (!node) { tar_file_unref (tar); return GNOME_VFS_ERROR_NOT_FOUND; } current = node->data; for (i = 0; i < tar->num_blocks; i++) if (&(tar->blocks[i]) == current) break; if (i && tar->blocks[i - 2].p.typeflag == TARPET_TYPE_LONGFILEN) name = g_strdup (tar->blocks[i - 1].raw.data); else name = g_strdup (current->p.name); file_info->name = g_path_get_basename (name); if (name[strlen (name) - 1] == '/') file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; else if (current->p.typeflag == TARPET_TYPE_SYMLINK) { file_info->type = GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK; file_info->symlink_name = g_strdup (current->p.linkname); } else file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->permissions = parse_octal_field (current->p.mode); file_info->uid = parse_octal_field (current->p.uid); file_info->gid = parse_octal_field (current->p.gid); file_info->size = parse_octal_field (current->p.size); file_info->mtime = parse_octal_field (current->p.mtime); file_info->atime = parse_octal_field (current->gnu.atime); file_info->ctime = parse_octal_field (current->gnu.ctime); if (file_info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) mime_type = "x-directory/normal"; else if (!(options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) && file_info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) mime_type = "x-special/symlink"; else if (!file_info->size || (options & GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE)) { path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); mime_type = (char*) gnome_vfs_get_file_mime_type (path, NULL, TRUE); g_free (path); } else { mime_type = (char*) gnome_vfs_get_mime_type_for_data ((current + 1)->raw.data, MIN (TARPET_BLOCKSIZE, file_info->size)); if (!mime_type) { path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); mime_type = (char*) gnome_vfs_get_file_mime_type (path, NULL, TRUE); g_free (path); } } file_info->mime_type = g_strdup (mime_type); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS | GNOME_VFS_FILE_INFO_FIELDS_SIZE | GNOME_VFS_FILE_INFO_FIELDS_ATIME | GNOME_VFS_FILE_INFO_FIELDS_MTIME | GNOME_VFS_FILE_INFO_FIELDS_CTIME | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_IDS; g_free (name); tar_file_unref (tar); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { FileHandle *handle = (FileHandle*) method_handle; GnomeVFSURI *uri; gchar *str; GNode *node; if (!handle->current) return GNOME_VFS_ERROR_EOF; str = g_strconcat (handle->filename, "#tar:", handle->current->p.name, NULL); uri = gnome_vfs_uri_new (str); do_get_file_info (method, uri, file_info, 0, context); node = tree_lookup_entry (handle->tar->info_tree, uri->text); if (!node) { gnome_vfs_uri_unref (uri); return GNOME_VFS_ERROR_NOT_FOUND; } if (node->next) handle->current = node->next->data; else handle->current = NULL; gnome_vfs_uri_unref (uri); return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *handle = (FileHandle*) method_handle; GnomeVFSURI *uri; uri = gnome_vfs_uri_new (handle->start->p.name); do_get_file_info (method, uri, file_info, options, context); gnome_vfs_uri_unref (uri); return GNOME_VFS_OK; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return gnome_vfs_uri_is_local (uri->parent); } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, NULL, do_close, do_read, NULL, do_seek, do_tell, NULL, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { G_LOCK (tar_cache); tar_cache = g_hash_table_new (g_str_hash, g_str_equal); G_UNLOCK (tar_cache); return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { G_LOCK (tar_cache); g_hash_table_destroy (tar_cache); G_UNLOCK (tar_cache); } gnome-vfs-2.24.4/modules/ssl-modules.conf0000644000175000001440000000001411334251016015176 00000000000000https: http gnome-vfs-2.24.4/modules/smb-method.c0000644000175000001440000022177211334251016014303 00000000000000/* smb-method.h - VFS modules for SMB * * Docs: * http://www.ietf.org/internet-drafts/draft-crhertel-smb-url-05.txt * http://samba.org/doxygen/samba/group__libsmbclient.html * http://ubiqx.org/cifs/ * * Copyright (C) 2001,2002,2003 Red Hat * * 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. * * Author: Bastien Nocera * Alexander Larsson * Nate Nielsen */ #include /* libgen first for basename */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int smbc_remove_unused_server(SMBCCTX * context, SMBCSRV * srv); typedef enum { SMB_URI_ERROR, SMB_URI_WHOLE_NETWORK, SMB_URI_WORKGROUP_LINK, SMB_URI_WORKGROUP, SMB_URI_SERVER_LINK, SMB_URI_SERVER, SMB_URI_SHARE, SMB_URI_SHARE_FILE } SmbUriType; typedef struct { char *server_name; char *share_name; char *domain; char *username; SMBCSRV *server; time_t last_time; } SmbServerCacheEntry; typedef struct { char *username; char *domain; char *password; time_t stamp; } SmbCachedUser; static GMutex *smb_lock; static SMBCCTX *smb_context = NULL; static GHashTable *server_cache = NULL; static GHashTable *user_cache = NULL; #define SMB_BLOCK_SIZE (32*1024) /* Reap unused server connections and user cache after 30 minutes */ #define CACHE_REAP_TIMEOUT (30 * 60) static guint cache_reap_timeout = 0; /* We load a default workgroup from gconf */ #define PATH_GCONF_GNOME_VFS_SMB_WORKGROUP "/system/smb/workgroup" /* The magic "default workgroup" hostname */ #define DEFAULT_WORKGROUP_NAME "X-GNOME-DEFAULT-WORKGROUP" /* Guest logins use: */ #define GUEST_LOGIN "guest" /* 5 minutes before we re-read the workgroup cache again */ #define WORKGROUP_CACHE_TIMEOUT (5*60) static GHashTable *workgroups = NULL; static time_t workgroups_timestamp = 0; /* Authentication ----------------------------------------------------------- */ #define SMB_AUTH_STATE_PREFILLED 0x00000010 /* Have asked gnome-auth for prefilled auth */ #define SMB_AUTH_STATE_GUEST 0x00000020 /* Have tried 'guest' authentication */ #define SMB_AUTH_STATE_PROMPTED 0x00000040 /* Have asked gnome-auth for to prompt user */ typedef struct _SmbAuthContext { GnomeVFSURI *uri; /* Uri being worked with. Does not own this URI */ GnomeVFSResult res; /* Current error code */ /* Internal state */ guint passes; /* Number of passes through authentication code */ guint state; /* Various flags (above) */ /* For saving passwords into gnome-keyring */ gboolean save_auth; /* Whether to save the authentication or not */ gchar *keyring; /* The keyring to save passwords in */ /* Used in chat between perform_authentication and auth_callback */ gboolean auth_called; /* Set by auth_callback */ gboolean preset_user; /* Set when we have a preset user from the URI */ gchar *for_server; /* Set by auth_callback */ gchar *for_share; /* Set by auth_callback */ gchar *use_user; /* Set by perform_authentication */ gchar *use_domain; /* Set by perform_authentication */ gchar *use_password; /* Set by perform_authentication */ gboolean cache_added; /* Set when cache is added to during authentication */ gboolean cache_used; /* Set when cache is used during authentication */ guint prompt_flags; /* Various URI flags set by initial_authentication */ } SmbAuthContext; static void init_authentication (SmbAuthContext *actx, GnomeVFSURI *uri); static int perform_authentication (SmbAuthContext *actx); static SmbAuthContext *current_auth_context = NULL; static void auth_callback (const char *server_name, const char *share_name, char *domain, int domainmaxlen, char *username, int unmaxlen, char *password, int pwmaxlen); #if 0 #define DEBUG_SMB_ENABLE #define DEBUG_SMB_LOCKS #endif #ifdef DEBUG_SMB_ENABLE #define DEBUG_SMB(x) g_print x #else #define DEBUG_SMB(x) #endif #ifdef DEBUG_SMB_LOCKS #define LOCK_SMB() {g_mutex_lock (smb_lock); g_print ("LOCK %s\n", G_STRFUNC);} #define UNLOCK_SMB() {g_print ("UNLOCK %s\n", G_STRFUNC); g_mutex_unlock (smb_lock);} #else #define LOCK_SMB() g_mutex_lock (smb_lock) #define UNLOCK_SMB() g_mutex_unlock (smb_lock) #endif static gchar* string_dup_nzero (const gchar *s) { if (!s || !s[0]) return NULL; return g_strdup (s); } static gchar* string_ndup_nzero (const gchar *s, const guint n) { if(!s || !s[0] || !n) return NULL; return g_strndup (s, n); } static const char* string_nzero (const gchar *s) { if (!s || !s[0]) return NULL; return s; } static gboolean string_compare (const char *a, const char *b) { if (a != NULL && b != NULL) { return strcmp (a, b) == 0; } else { return a == b; } } static gchar* string_realloc (gchar *dest, const gchar *src) { if (string_compare (src, dest)) return dest; g_free (dest); return string_dup_nzero (src); } static gboolean server_equal (gconstpointer v1, gconstpointer v2) { const SmbServerCacheEntry *e1, *e2; e1 = v1; e2 = v2; return (string_compare (e1->server_name, e2->server_name) && string_compare (e1->share_name, e2->share_name) && string_compare (e1->domain, e2->domain) && string_compare (e1->username, e2->username)); } static guint server_hash (gconstpointer v) { const SmbServerCacheEntry *e; guint hash; e = v; hash = 0; if (e->server_name != NULL) { hash = hash ^ g_str_hash (e->server_name); } if (e->share_name != NULL) { hash = hash ^ g_str_hash (e->share_name); } if (e->domain != NULL) { hash = hash ^ g_str_hash (e->domain); } if (e->username != NULL) { hash = hash ^ g_str_hash (e->username); } return hash; } static void server_free (SmbServerCacheEntry *entry) { g_free (entry->server_name); g_free (entry->share_name); g_free (entry->domain); g_free (entry->username); /* TODO: Should we remove the server here? */ g_free (entry); } static void user_free (SmbCachedUser *user) { g_free (user->username); g_free (user->domain); g_free (user->password); g_free (user); } static void add_old_servers (gpointer key, gpointer value, gpointer user_data) { SmbServerCacheEntry *entry; GPtrArray *array; time_t now; now = time (NULL); entry = key; array = user_data; if (now > entry->last_time + CACHE_REAP_TIMEOUT || now < entry->last_time) g_ptr_array_add (array, entry->server); } static gboolean reap_user (gpointer key, gpointer value, gpointer user_data) { SmbCachedUser *user = (SmbCachedUser*)value; time_t now = time (NULL); if (now > user->stamp + CACHE_REAP_TIMEOUT || now < user->stamp) return TRUE; return FALSE; } static gboolean cache_reap_cb (void) { GPtrArray *servers; gboolean ret; int size; int i; /* Don't deadlock here, this is callback and we're not completely * sure when we'll be called */ if (!g_mutex_trylock (smb_lock)) return TRUE; DEBUG_SMB(("LOCK %s\n", G_STRFUNC)); size = g_hash_table_size (server_cache); servers = g_ptr_array_sized_new (size); /* The remove can change the hashtable, make a copy */ g_hash_table_foreach (server_cache, add_old_servers, servers); for (i = 0; i < servers->len; i++) { smbc_remove_unused_server (smb_context, (SMBCSRV *)g_ptr_array_index (servers, i)); } g_ptr_array_free (servers, TRUE); /* Cleanup users */ g_hash_table_foreach_remove (user_cache, reap_user, NULL); ret = !(g_hash_table_size (server_cache) == 0 && g_hash_table_size (user_cache) == 0); if (!ret) cache_reap_timeout = 0; UNLOCK_SMB(); return ret; } static void schedule_cache_reap (void) { if (cache_reap_timeout == 0) { cache_reap_timeout = g_timeout_add (CACHE_REAP_TIMEOUT * 1000, (GSourceFunc)cache_reap_cb, NULL); } } static int add_cached_server (SMBCCTX *context, SMBCSRV *new, const char *server_name, const char *share_name, const char *domain, const char *username) { SmbServerCacheEntry *entry = NULL; DEBUG_SMB(("[auth] adding cached server: server: %s, share: %s, domain: %s, user: %s\n", server_name ? server_name : "", share_name ? share_name : "", domain ? domain : "", username ? username : "")); schedule_cache_reap (); entry = g_new0 (SmbServerCacheEntry, 1); entry->server = new; entry->server_name = string_dup_nzero (server_name); entry->share_name = string_dup_nzero (share_name); entry->domain = string_dup_nzero (domain); entry->username = string_dup_nzero (username); entry->last_time = time (NULL); g_hash_table_insert (server_cache, entry, entry); current_auth_context->cache_added = TRUE; return 0; } static SMBCSRV * find_cached_server (const char *server_name, const char *share_name, const char *domain, const char *username) { SmbServerCacheEntry entry; SmbServerCacheEntry *res; DEBUG_SMB(("find_cached_server: server: %s, share: %s, domain: %s, user: %s\n", server_name ? server_name : "", share_name ? share_name : "", domain ? domain : "", username ? username : "")); /* "" must be treated as NULL, because add_cached_server() uses string_dup_nzero() */ entry.server_name = (char *) string_nzero (server_name); entry.share_name = (char *) string_nzero (share_name); entry.domain = (char *) string_nzero (domain); entry.username = (char *) string_nzero (username); res = g_hash_table_lookup (server_cache, &entry); if (res != NULL) { res->last_time = time (NULL); return res->server; } return NULL; } static SMBCSRV * get_cached_server (SMBCCTX * context, const char *server_name, const char *share_name, const char *domain, const char *username) { SMBCSRV *srv; srv = find_cached_server (server_name, share_name, domain, username); if (srv != NULL) { DEBUG_SMB(("got cached server: server: %s, share: %s, domain: %s, user: %s\n", server_name ? server_name : "", share_name ? share_name : "", domain ? domain : "", username ? username : "")); current_auth_context->cache_used = TRUE; return srv; } return NULL; } static gboolean remove_server (gpointer key, gpointer value, gpointer user_data) { SmbServerCacheEntry *entry; entry = key; if (entry->server == user_data) { entry->server = NULL; return TRUE; } return FALSE; } static int remove_cached_server(SMBCCTX * context, SMBCSRV * server) { int removed; removed = g_hash_table_foreach_remove (server_cache, remove_server, server); /* return 1 if failed */ return removed == 0; } static void add_server (gpointer key, gpointer value, gpointer user_data) { SmbServerCacheEntry *entry; GPtrArray *array; entry = key; array = user_data; g_ptr_array_add (array, entry->server); } static int purge_cached(SMBCCTX * context) { int size; GPtrArray *servers; gboolean could_not_purge_all; int i; size = g_hash_table_size (server_cache); servers = g_ptr_array_sized_new (size); /* The remove can change the hashtable, make a copy */ g_hash_table_foreach (server_cache, add_server, servers); could_not_purge_all = FALSE; for (i = 0; i < servers->len; i++) { if (smbc_remove_unused_server(context, (SMBCSRV *)g_ptr_array_index (servers, i))) { /* could not be removed */ could_not_purge_all = TRUE; } } g_ptr_array_free (servers, TRUE); return could_not_purge_all; } static gboolean remove_all (gpointer key, gpointer value, gpointer user_data) { return TRUE; } static void update_workgroup_cache (void) { SmbAuthContext actx; SMBCFILE *dir = NULL; time_t t; struct smbc_dirent *dirent; t = time (NULL); if (workgroups_timestamp != 0 && workgroups_timestamp < t && t < workgroups_timestamp + WORKGROUP_CACHE_TIMEOUT) { /* Up to date */ return; } workgroups_timestamp = t; DEBUG_SMB(("update_workgroup_cache: enumerating workgroups\n")); g_hash_table_foreach_remove (workgroups, remove_all, NULL); LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { dir = smb_context->opendir (smb_context, "smb://"); actx.res = (dir != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } if (dir != NULL) { while ((dirent = smb_context->readdir (smb_context, dir)) != NULL) { if (dirent->smbc_type == SMBC_WORKGROUP && dirent->name != NULL && strlen (dirent->name) > 0) { g_hash_table_insert (workgroups, g_ascii_strdown (dirent->name, -1), GINT_TO_POINTER (1)); } else { g_warning ("non-workgroup at smb toplevel\n"); } } smb_context->closedir (smb_context, dir); } UNLOCK_SMB(); } static SmbUriType smb_uri_type (GnomeVFSURI *uri) { GnomeVFSToplevelURI *toplevel; char *first_slash; char *host_name; toplevel = (GnomeVFSToplevelURI *)uri; if (toplevel->host_name == NULL || toplevel->host_name[0] == 0) { /* smb:/// or smb:///foo */ if (uri->text == NULL || uri->text[0] == 0 || strcmp (uri->text, "/") == 0) { return SMB_URI_WHOLE_NETWORK; } if (strchr (uri->text + 1, '/')) { return SMB_URI_ERROR; } return SMB_URI_WORKGROUP_LINK; } if (uri->text == NULL || uri->text[0] == 0 || strcmp (uri->text, "/") == 0) { /* smb://foo/ */ update_workgroup_cache (); host_name = gnome_vfs_unescape_string (toplevel->host_name, G_DIR_SEPARATOR_S); if (!host_name) return SMB_URI_ERROR; if (!g_ascii_strcasecmp(host_name, DEFAULT_WORKGROUP_NAME) || g_hash_table_lookup (workgroups, host_name)) { g_free (host_name); return SMB_URI_WORKGROUP; } else { g_free (host_name); return SMB_URI_SERVER; } } first_slash = strchr (uri->text + 1, '/'); if (first_slash == NULL) { /* smb://foo/bar */ update_workgroup_cache (); host_name = gnome_vfs_unescape_string (toplevel->host_name, G_DIR_SEPARATOR_S); if (!host_name) return SMB_URI_ERROR; if (!g_ascii_strcasecmp(host_name, DEFAULT_WORKGROUP_NAME) || g_hash_table_lookup (workgroups, host_name)) { g_free (host_name); return SMB_URI_SERVER_LINK; } else { g_free (host_name); return SMB_URI_SHARE; } } return SMB_URI_SHARE_FILE; } static gboolean is_hidden_entry (char *name) { static const char *hidden_names[] = { "IPC$", "ADMIN$", "print$", "printer$" }; int i; if (name == NULL) return TRUE; for (i = 0; i < G_N_ELEMENTS (hidden_names); i++) if (g_ascii_strcasecmp (name, hidden_names[i]) == 0) return TRUE; /* Shares that end in "$" are administrative shares, and Windows hides * them by default. We have no way to say "this is a hidden file" in a * GnomeVFSFileInfo, so we'll make them visible for now. */ return FALSE; } static gboolean try_init (void) { char *path; GConfClient *gclient; gchar *workgroup; struct stat statbuf; LOCK_SMB(); /* We used to create an empty ~/.smb/smb.conf to get * default settings, but this breaks a lot of smb.conf * configurations, so we remove this again. If you really * need an empty smb.conf, put a newline in it */ path = g_build_filename (G_DIR_SEPARATOR_S, g_get_home_dir (), ".smb", "smb.conf", NULL); if (stat (path, &statbuf) == 0) { if (S_ISREG (statbuf.st_mode) && statbuf.st_size == 0) { unlink (path); } } g_free (path); smb_context = smbc_new_context (); if (smb_context != NULL) { smb_context->debug = 0; smb_context->callbacks.auth_fn = auth_callback; smb_context->callbacks.add_cached_srv_fn = add_cached_server; smb_context->callbacks.get_cached_srv_fn = get_cached_server; smb_context->callbacks.remove_cached_srv_fn = remove_cached_server; smb_context->callbacks.purge_cached_fn = purge_cached; gclient = gconf_client_get_default (); if (gclient) { workgroup = gconf_client_get_string (gclient, PATH_GCONF_GNOME_VFS_SMB_WORKGROUP, NULL); /* libsmbclient frees this on it's own, so make sure * to use simple system malloc */ if (workgroup && workgroup[0]) smb_context->workgroup = strdup (workgroup); g_free (workgroup); g_object_unref (gclient); } if (!smbc_init_context (smb_context)) { smbc_free_context (smb_context, FALSE); smb_context = NULL; } #if defined(HAVE_SAMBA_FLAGS) #if defined(SMB_CTX_FLAG_USE_KERBEROS) && defined(SMB_CTX_FLAG_FALLBACK_AFTER_KERBEROS) smb_context->flags |= SMB_CTX_FLAG_USE_KERBEROS | SMB_CTX_FLAG_FALLBACK_AFTER_KERBEROS; #endif #if defined(SMBCCTX_FLAG_NO_AUTO_ANONYMOUS_LOGON) smb_context->flags |= SMBCCTX_FLAG_NO_AUTO_ANONYMOUS_LOGON; #endif #endif } server_cache = g_hash_table_new_full (server_hash, server_equal, (GDestroyNotify)server_free, NULL); workgroups = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); user_cache = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)user_free); UNLOCK_SMB(); if (smb_context == NULL) { g_warning ("Could not initialize samba client library\n"); return FALSE; } return TRUE; } /* Authentication ----------------------------------------------------------- */ static const gchar* get_auth_display_share (SmbAuthContext *actx) { return string_compare (actx->for_share, "IPC$") ? NULL : actx->for_share; } static char* get_auth_display_uri (SmbAuthContext *actx, gboolean machine) { if (actx->uri != NULL && !machine) return gnome_vfs_uri_to_string (actx->uri, 0); else { const gchar *share = get_auth_display_share (actx); return g_strdup_printf ("smb://%s%s%s%s", actx->for_server ? actx->for_server : "", actx->for_server ? "/" : "", share && !machine ? share : "", share && !machine ? "/" : ""); } } static void update_user_cache (SmbAuthContext *actx, gboolean with_share) { SmbCachedUser *user; gchar *key; g_return_if_fail (actx->for_server != NULL); key = g_strdup_printf ("%s/%s", actx->for_server, with_share ? actx->for_share : ""); user = (SmbCachedUser*)g_hash_table_lookup (user_cache, key); DEBUG_SMB(("[auth] Saved in cache: %s = %s:%s@%s\n", key, actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "", actx->use_password ? actx->use_password : "")); if (!user) { user = g_new0 (SmbCachedUser, 1); g_hash_table_replace (user_cache, key, user); schedule_cache_reap (); } else { g_free (key); } user->domain = string_realloc (user->domain, actx->use_domain); user->username = string_realloc (user->username, actx->use_user); user->password = string_realloc (user->password, actx->use_password); user->stamp = time (NULL); } static gboolean lookup_user_cache (SmbAuthContext *actx, gboolean with_share) { SmbCachedUser *user; gchar *key; g_return_val_if_fail (actx->for_server != NULL, FALSE); key = g_strdup_printf ("%s/%s", actx->for_server, with_share ? actx->for_share : ""); user = (SmbCachedUser*)g_hash_table_lookup (user_cache, key); g_free (key); if (user) { /* If we already have a user name or domain double check that... */ if (!(actx->prompt_flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME) && !string_compare(user->username, actx->use_user)) return FALSE; if (!(actx->prompt_flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN) && !string_compare(user->domain, actx->use_domain)) return FALSE; actx->use_user = string_realloc (actx->use_user, user->username); actx->use_domain = string_realloc (actx->use_domain, user->domain); actx->use_password = string_realloc (actx->use_password, user->password); DEBUG_SMB(("[auth] Looked up in cache: %s:%s@%s\n", actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "", actx->use_password ? actx->use_password : "")); return TRUE; } return FALSE; } static gboolean initial_authentication (SmbAuthContext *actx) { /* IMPORTANT: We are IN the lock at this point */ GnomeVFSToplevelURI *toplevel_uri; SmbServerCacheEntry server_lookup; SmbServerCacheEntry *server; gboolean found_user = FALSE; char *tmp; DEBUG_SMB(("[auth] Initial authentication lookups\n")); toplevel_uri = (GnomeVFSToplevelURI*)actx->uri; actx->prompt_flags = GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME | GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN; /* Try parsing a user and domain out of the URI */ if (toplevel_uri && toplevel_uri->user_name != NULL && toplevel_uri->user_name[0] != 0) { tmp = strchr (toplevel_uri->user_name, ';'); if (tmp != NULL) { g_free (actx->use_domain); actx->use_domain = string_ndup_nzero (toplevel_uri->user_name, tmp - toplevel_uri->user_name); g_free (actx->use_user); actx->use_user = string_dup_nzero (tmp + 1); DEBUG_SMB(("[auth] User from URI: %s@%s\n", actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "")); } else { g_free (actx->use_user); actx->use_user = string_dup_nzero (toplevel_uri->user_name); g_free (actx->use_domain); actx->use_domain = NULL; DEBUG_SMB(("[auth] User from URI: %s\n", actx->use_user ? actx->use_user : "")); } if (actx->use_user != NULL) { actx->preset_user = TRUE; actx->prompt_flags &= ~GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME; } if (actx->use_domain != NULL) { actx->prompt_flags &= ~GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN; } } if (lookup_user_cache (actx, TRUE) || lookup_user_cache (actx, FALSE)) found_user = TRUE; if (found_user || actx->preset_user) { /* Lookup the server in our internal cache */ server_lookup.server_name = (char*)actx->for_server; server_lookup.share_name = (char*)actx->for_share; server_lookup.username = (char*)actx->use_user; server_lookup.domain = (char*)actx->use_domain; server = g_hash_table_lookup (server_cache, &server_lookup); if (server == NULL) { /* If a blank user, try looking up 'guest' */ if (!actx->use_user) { server_lookup.username = GUEST_LOGIN; server_lookup.domain = NULL; server = g_hash_table_lookup (server_cache, &server_lookup); } } /* Server is in cache already */ if (server != NULL) { DEBUG_SMB(("[auth] Using connection for '%s@%s' from our server cache\n", actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "")); found_user = TRUE; } } return found_user; } static gboolean prefill_authentication (SmbAuthContext *actx) { /* IMPORTANT: We are NOT IN the lock at this point */ GnomeVFSModuleCallbackFillAuthenticationIn in_args; GnomeVFSModuleCallbackFillAuthenticationOut out_args; gboolean invoked; gboolean filled = FALSE; g_return_val_if_fail (actx != NULL, FALSE); g_return_val_if_fail (actx->for_server != NULL, FALSE); memset (&in_args, 0, sizeof (in_args)); in_args.uri = get_auth_display_uri (actx, FALSE); in_args.protocol = "smb"; in_args.server = (char*)actx->for_server; in_args.object = (char*)get_auth_display_share (actx); in_args.username = (char*)actx->use_user; in_args.domain = (char*)actx->use_domain; in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0; memset (&out_args, 0, sizeof (out_args)); DEBUG_SMB(("[auth] Trying to prefill credentials for: %s\n", in_args.uri ? in_args.uri : "")); invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_free (in_args.uri); /* If that didn't work then try without the share name */ if (!invoked || !out_args.valid) { g_free (out_args.username); g_free (out_args.domain); g_free (out_args.password); memset (&in_args, 0, sizeof (in_args)); in_args.uri = get_auth_display_uri (actx, TRUE); in_args.protocol = "smb"; in_args.server = (char*)actx->for_server; in_args.object = (char*)NULL; in_args.username = (char*)actx->use_user; in_args.domain = (char*)actx->use_domain; in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0; memset (&out_args, 0, sizeof (out_args)); DEBUG_SMB(("[auth] Trying to prefill server credentials for: %s\n", in_args.uri ? in_args.uri : "")); invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); } if (invoked && out_args.valid) { /* When a preset user make sure we stick to this login */ if (!actx->preset_user || string_compare (actx->use_user, out_args.username)) { g_free (actx->use_user); actx->use_user = string_dup_nzero (out_args.username); g_free (actx->use_domain); actx->use_domain = string_dup_nzero (out_args.domain); g_free (actx->use_password); actx->use_password = g_strdup (out_args.password); filled = TRUE; DEBUG_SMB(("[auth] Prefilled credentials: %s@%s:%s\n", actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "", actx->use_password ? actx->use_password : "")); } } g_free (out_args.username); g_free (out_args.domain); g_free (out_args.password); return filled; } static gboolean prompt_authentication (SmbAuthContext *actx, gboolean *cancelled) { /* IMPORTANT: We are NOT in the lock at this point */ GnomeVFSModuleCallbackFullAuthenticationIn in_args; GnomeVFSModuleCallbackFullAuthenticationOut out_args; gboolean invoked; g_return_val_if_fail (actx != NULL, FALSE); g_return_val_if_fail (actx->for_server != NULL, FALSE); memset (&in_args, 0, sizeof (in_args)); in_args.flags = GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD | GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED; if (actx->state & SMB_AUTH_STATE_PROMPTED) in_args.flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED; in_args.flags |= actx->prompt_flags; in_args.uri = get_auth_display_uri (actx, FALSE); in_args.protocol = "smb"; in_args.server = (char*)actx->for_server; in_args.object = (char*)get_auth_display_share (actx); in_args.username = (char*)actx->use_user; in_args.domain = (char*)actx->use_domain; in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0; in_args.default_user = actx->use_user; if (string_compare (in_args.default_user, GUEST_LOGIN)) in_args.default_user = NULL; if (!in_args.default_user) in_args.default_user = (char*)g_get_user_name (); in_args.default_domain = actx->use_domain ? actx->use_domain : smb_context->workgroup; memset (&out_args, 0, sizeof (out_args)); DEBUG_SMB(("[auth] Prompting credentials for: %s\n", in_args.uri ? in_args.uri : "")); invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); if (invoked) { if (in_args.flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME) { g_free (actx->use_user); actx->use_user = string_dup_nzero (out_args.username); } if (in_args.flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN) { g_free (actx->use_domain); actx->use_domain = string_dup_nzero (out_args.domain); } g_free (actx->use_password); actx->use_password = out_args.password ? g_strdup (out_args.password) : NULL; g_free (actx->keyring); actx->save_auth = out_args.save_password; actx->keyring = actx->save_auth && out_args.keyring ? g_strdup (out_args.keyring) : NULL; DEBUG_SMB(("[auth] Prompted credentials: %s@%s:%s\n", actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "", actx->use_password ? actx->use_password : "")); } *cancelled = out_args.abort_auth; actx->state |= SMB_AUTH_STATE_PROMPTED; g_free (out_args.username); g_free (out_args.domain); g_free (out_args.password); g_free (out_args.keyring); g_free (in_args.uri); return invoked && !*cancelled; } static void save_authentication (SmbAuthContext *actx) { GnomeVFSModuleCallbackSaveAuthenticationIn in_args; GnomeVFSModuleCallbackSaveAuthenticationOut out_args; gboolean invoked; /* Add to the user cache both with and without shares */ if (actx->for_server) { update_user_cache (actx, TRUE); update_user_cache (actx, FALSE); } if (!actx->save_auth) return; /* Save with the domain name */ memset (&in_args, 0, sizeof (in_args)); in_args.uri = get_auth_display_uri (actx, TRUE); in_args.keyring = (char*)actx->keyring; in_args.protocol = "smb"; in_args.server = (char*)actx->for_server; in_args.object = NULL; in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0; in_args.authtype = NULL; in_args.username = (char*)actx->use_user; in_args.domain = (char*)actx->use_domain; in_args.password = (char*)actx->use_password; memset (&out_args, 0, sizeof (out_args)); DEBUG_SMB(("[auth] Saving credentials: %s = %s@%s:%s\n", in_args.uri ? in_args.uri : "", actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "", actx->use_password ? actx->use_password : "")); DEBUG_SMB(("[auth] Keyring: %s\n", actx->keyring ? actx->keyring : "")); invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_free (in_args.uri); /* Save without the domain name */ memset (&in_args, 0, sizeof (in_args)); in_args.uri = get_auth_display_uri (actx, FALSE); in_args.keyring = (char*)actx->keyring; in_args.protocol = "smb"; in_args.server = (char*)actx->for_server; in_args.object = (char*)get_auth_display_share (actx); in_args.port = actx->uri ? ((GnomeVFSToplevelURI*)actx->uri)->host_port : 0; in_args.authtype = NULL; in_args.username = (char*)actx->use_user; in_args.domain = (char*)actx->use_domain; in_args.password = (char*)actx->use_password; memset (&out_args, 0, sizeof (out_args)); DEBUG_SMB(("[auth] Saving credentials: %s = %s@%s:%s\n", in_args.uri ? in_args.uri : "", actx->use_user ? actx->use_user : "", actx->use_domain ? actx->use_domain : "", actx->use_password ? actx->use_password : "")); DEBUG_SMB(("[auth] Keyring: %s\n", actx->keyring ? actx->keyring : "")); invoked = gnome_vfs_module_callback_invoke (GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); g_free (in_args.uri); } static void cleanup_authentication (SmbAuthContext *actx) { /* IMPORTANT: We are IN the lock at this point */ DEBUG_SMB(("[auth] Cleaning up Authentication\n")); g_return_if_fail (actx != NULL); g_free (actx->for_server); actx->for_server = NULL; g_free (actx->for_share); actx->for_share = NULL; g_free (actx->use_user); actx->use_user = NULL; g_free (actx->use_domain); actx->use_domain = NULL; g_free (actx->use_password); actx->use_password = NULL; g_free (actx->keyring); actx->keyring = NULL; g_return_if_fail (current_auth_context == actx); current_auth_context = NULL; } /* * This is the workhorse of all the authentication and caching work. * It is called in a loop, and must be called from within the lock: * * static GnomeVFSResult * function_xxxx (GnomeVFSURI* uri) * { * SmbAuthContext actx; * * LOCK_SMB (); * init_authentication (&actx); * * while (perform_authentication (&actx) > 0) { * actx.res = gnome_vfs_result_from_errno_code (the_operation_here ()); * } * * UNLOCK_SMB(); * * return actx.err; * } * * On different passes it performs seperate operations, such as checking * the cache, prompting the user for a password, saving valid passwords, * cleaning up etc.... * * The loop must never be broken on it's own when perform_authentication * has not returned a 0 or negative return value. */ static void init_authentication (SmbAuthContext *actx, GnomeVFSURI *uri) { DEBUG_SMB(("[auth] Initializing Authentication\n")); memset (actx, 0, sizeof(*actx)); actx->uri = uri; } static int perform_authentication (SmbAuthContext *actx) { gboolean cont, auth_failed = FALSE, auth_cancelled = FALSE; int ret = -1; /* IMPORTANT: We are IN the lock at this point */ DEBUG_SMB(("[auth] perform_authentication called.\n")); switch (actx->res) { case GNOME_VFS_OK: auth_failed = FALSE; break; /* Authentication errors are special */ case GNOME_VFS_ERROR_ACCESS_DENIED: case GNOME_VFS_ERROR_NOT_PERMITTED: case GNOME_VFS_ERROR_LOGIN_FAILED: auth_failed = TRUE; break; /* Other errors mean we're done */ default: DEBUG_SMB(("[auth] Non-authentication error. Leaving auth loop.\n")); cleanup_authentication (actx); return -1; } actx->passes++; /* First pass */ if (actx->passes == 1) { DEBUG_SMB(("[auth] First authentication pass\n")); /* Our auth context is the global one for the moment */ g_return_val_if_fail (current_auth_context == NULL, GNOME_VFS_ERROR_INTERNAL); current_auth_context = actx; /* Continue with perform_authentication loop ... */ ret = 1; /* Subsequent passes */ } else { /* We should still be the global context at this point */ g_return_val_if_fail (current_auth_context == actx, GNOME_VFS_ERROR_INTERNAL); /* A successful operation. Done! */ if (!auth_failed) { DEBUG_SMB(("[auth] Operation successful\n")); save_authentication (actx); ret = 0; /* If authentication failed, but we already have a connection ... and access failed on a file, then we return the error */ } else if ((actx->cache_used && !actx->cache_added) && (!actx->uri || smb_uri_type (actx->uri) == SMB_URI_SHARE_FILE)) { DEBUG_SMB(("[auth] Not reauthenticating a open connection.\n")); ret = -1; /* A failed authentication */ } else if (actx->auth_called) { /* We need a server to perform any authentication */ g_return_val_if_fail (actx->for_server != NULL, GNOME_VFS_ERROR_INTERNAL); /* We won't be the global context for now */ current_auth_context = NULL; cont = FALSE; UNLOCK_SMB(); /* Do we have gnome-keyring credentials for this? */ if (!(actx->state & SMB_AUTH_STATE_PREFILLED)) { actx->state |= SMB_AUTH_STATE_PREFILLED; cont = prefill_authentication (actx); } /* Then we try a guest credentials... */ if (!cont && !actx->preset_user && !(actx->state & SMB_AUTH_STATE_GUEST)) { g_free (actx->use_user); actx->use_user = strdup(GUEST_LOGIN); g_free (actx->use_domain); actx->use_domain = NULL; g_free (actx->use_password); actx->use_password = strdup(""); actx->state |= SMB_AUTH_STATE_GUEST; cont = TRUE; } /* And as a last step, prompt */ if (!cont) cont = prompt_authentication (actx, &auth_cancelled); LOCK_SMB(); /* Claim the global context back */ g_return_val_if_fail (current_auth_context == NULL, GNOME_VFS_ERROR_INTERNAL); current_auth_context = actx; if (cont) ret = 1; else { ret = -1; if (auth_cancelled) { DEBUG_SMB(("[auth] Authentication cancelled by user.\n")); actx->res = GNOME_VFS_ERROR_CANCELLED; } else { DEBUG_SMB(("[auth] Authentication failed with result %s.\n", gnome_vfs_result_to_string (actx->res))); /* Note that we leave actx->res set to whatever it was set to */ } } /* Weird, don't want authentication, but failed */ } else { ret = -1; } } if (ret <= 0) cleanup_authentication (actx); return ret; /* IMPORTANT: We need to still be in the lock when returning from this func */ } static void auth_callback (const char *server_name, const char *share_name, char *domain_out, int domainmaxlen, char *username_out, int unmaxlen, char *password_out, int pwmaxlen) { /* IMPORTANT: We are IN the global lock */ SmbAuthContext *actx; SMBCSRV *server; DEBUG_SMB (("[auth] auth_callback called: server: %s share: %s\n", server_name ? server_name : "", share_name ? share_name : "")); g_return_if_fail (current_auth_context != NULL); actx = current_auth_context; /* We never authenticate for the toplevel (enumerating workgroups) */ if (!server_name || !server_name[0]) return; actx->auth_called = TRUE; /* The authentication location */ g_free (actx->for_server); actx->for_server = string_dup_nzero (server_name); g_free (actx->for_share); actx->for_share = string_dup_nzero (share_name); /* The first pass, try the cache, fill in anything we know */ if (actx->passes == 1) initial_authentication (actx); /* If we have a valid user then go for it */ if (actx->use_user) { strncpy (username_out, actx->use_user, unmaxlen); strncpy (password_out, actx->use_password ? actx->use_password : "", pwmaxlen); if (actx->use_domain) strncpy (domain_out, actx->use_domain, domainmaxlen); DEBUG_SMB(("[auth] Using credentials: %s:%s@%s\n", username_out ? username_out : "", password_out ? password_out : "", domain_out ? domain_out : "")); /* We have no credentials ... */ } else { g_assert (!actx->preset_user); if (actx->passes == 1) DEBUG_SMB(("[auth] No credentials, trying anonymous user login\n")); else DEBUG_SMB(("[auth] No credentials, returning null values\n")); strncpy (username_out, "", unmaxlen); strncpy (password_out, "", pwmaxlen); } /* Put in the default workgroup if none specified */ if (domain_out[0] == 0 && smb_context->workgroup) strncpy (domain_out, smb_context->workgroup, domainmaxlen); /* * If authentication is requested a second time on a server we've * already cached, then obviously it was invalid. Remove it. Yes, * this doesn't make much sense, but such is life with libsmbclient. */ if ((actx->state & SMB_AUTH_STATE_PROMPTED) && actx->res != GNOME_VFS_OK) { server = find_cached_server (server_name, share_name, domain_out, username_out); if (server) { DEBUG_SMB (("[auth] auth_callback. Remove the wrong server entry from server_cache.\n")); g_hash_table_foreach_remove (server_cache, remove_server, server); } } } static char * get_workgroup_data (const char *display_name, const char *name) { return g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=Link\n" "URL=smb://%s/\n" "Icon=gnome-fs-network\n", display_name, name); } static char * get_computer_data (const char *display_name, const char *name) { return g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=Link\n" "URL=smb://%s/\n" "Icon=gnome-fs-server\n", display_name, name); } static gchar * get_base_from_uri (GnomeVFSURI const *uri) { gchar *escaped_base, *base; escaped_base = gnome_vfs_uri_extract_short_path_name (uri); base = gnome_vfs_unescape_string (escaped_base, G_DIR_SEPARATOR_S); g_free (escaped_base); return base; } typedef struct { SMBCFILE *file; gboolean is_data; char *file_data; int fnum; GnomeVFSFileOffset offset; GnomeVFSFileOffset file_size; } FileHandle; static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { SmbAuthContext actx; FileHandle *handle = NULL; char *path, *name, *unescaped_name; int type; mode_t unix_mode; SMBCFILE *file = NULL; DEBUG_SMB(("do_open() %s mode %d\n", gnome_vfs_uri_to_string (uri, 0), mode)); type = smb_uri_type (uri); if (type == SMB_URI_ERROR) { return GNOME_VFS_ERROR_INVALID_URI; } if (type == SMB_URI_WHOLE_NETWORK || type == SMB_URI_WORKGROUP || type == SMB_URI_SERVER || type == SMB_URI_SHARE) { return GNOME_VFS_ERROR_IS_DIRECTORY; } if (type == SMB_URI_WORKGROUP_LINK) { if (mode & GNOME_VFS_OPEN_WRITE) { return GNOME_VFS_ERROR_READ_ONLY; } handle = g_new (FileHandle, 1); handle->is_data = TRUE; handle->offset = 0; unescaped_name = get_base_from_uri (uri); name = gnome_vfs_uri_extract_short_path_name (uri); handle->file_data = get_workgroup_data (unescaped_name, name); handle->file_size = strlen (handle->file_data); g_free (unescaped_name); g_free (name); *method_handle = (GnomeVFSMethodHandle *)handle; return GNOME_VFS_OK; } if (type == SMB_URI_SERVER_LINK) { if (mode & GNOME_VFS_OPEN_WRITE) { return GNOME_VFS_ERROR_READ_ONLY; } handle = g_new (FileHandle, 1); handle->is_data = TRUE; handle->offset = 0; unescaped_name = get_base_from_uri (uri); name = gnome_vfs_uri_extract_short_path_name (uri); handle->file_data = get_computer_data (unescaped_name, name); handle->file_size = strlen (handle->file_data); g_free (unescaped_name); g_free (name); *method_handle = (GnomeVFSMethodHandle *)handle; return GNOME_VFS_OK; } g_assert (type == SMB_URI_SHARE_FILE); if (mode & GNOME_VFS_OPEN_READ) { if (mode & GNOME_VFS_OPEN_WRITE) unix_mode = O_RDWR; else unix_mode = O_RDONLY; } else { if (mode & GNOME_VFS_OPEN_WRITE) unix_mode = O_WRONLY; else return GNOME_VFS_ERROR_INVALID_OPEN_MODE; } if ((mode & GNOME_VFS_OPEN_TRUNCATE) || (!(mode & GNOME_VFS_OPEN_RANDOM) && (mode & GNOME_VFS_OPEN_WRITE))) unix_mode |= O_TRUNC; path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); LOCK_SMB(); init_authentication (&actx, uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { file = (smb_context->open) (smb_context, path, unix_mode, 0666); actx.res = (file != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); g_free (path); if (file == NULL) return actx.res; handle = g_new (FileHandle, 1); handle->is_data = FALSE; handle->file = file; *method_handle = (GnomeVFSMethodHandle *)handle; return GNOME_VFS_OK; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *handle = (FileHandle *)method_handle; SmbAuthContext actx; GnomeVFSResult res; int r; DEBUG_SMB(("do_close()\n")); res = GNOME_VFS_OK; if (handle->is_data) { g_free (handle->file_data); } else { LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { #ifdef HAVE_SAMBA_OLD_CLOSE r = smb_context->close (smb_context, handle->file); #else r = smb_context->close_fn (smb_context, handle->file); #endif actx.res = (r >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } res = actx.res; UNLOCK_SMB(); } g_free (handle); return res; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *handle = (FileHandle *)method_handle; GnomeVFSResult res = GNOME_VFS_OK; SmbAuthContext actx; ssize_t n = 0; DEBUG_SMB(("do_read() %Lu bytes\n", num_bytes)); if (handle->is_data) { if (handle->offset >= handle->file_size) { n = 0; } else { n = MIN (num_bytes, handle->file_size - handle->offset); memcpy (buffer, handle->file_data + handle->offset, n); } } else { LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { n = smb_context->read (smb_context, handle->file, buffer, MIN (USHRT_MAX, num_bytes)); actx.res = (n >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } res = actx.res; UNLOCK_SMB(); } *bytes_read = (n < 0) ? 0 : n; if (n == 0) return GNOME_VFS_ERROR_EOF; handle->offset += n; return res; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { FileHandle *handle = (FileHandle *)method_handle; SmbAuthContext actx; ssize_t written = 0; DEBUG_SMB (("do_write() %p\n", method_handle)); if (handle->is_data) return GNOME_VFS_ERROR_READ_ONLY; LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { written = smb_context->write (smb_context, handle->file, (void *)buffer, num_bytes); actx.res = (written >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); *bytes_written = (written < 0) ? 0 : written; return actx.res; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { int type; mode_t unix_mode; char *path; SMBCFILE *file = NULL; FileHandle *handle; SmbAuthContext actx; DEBUG_SMB (("do_create() %s mode %d\n", gnome_vfs_uri_to_string (uri, 0), mode)); type = smb_uri_type (uri); if (type == SMB_URI_ERROR) return GNOME_VFS_ERROR_INVALID_URI; if (type == SMB_URI_WHOLE_NETWORK || type == SMB_URI_WORKGROUP || type == SMB_URI_SERVER || type == SMB_URI_SHARE) return GNOME_VFS_ERROR_IS_DIRECTORY; if (type == SMB_URI_WORKGROUP_LINK || type == SMB_URI_SERVER_LINK) return GNOME_VFS_ERROR_NOT_PERMITTED; unix_mode = O_CREAT | O_TRUNC; if (!(mode & GNOME_VFS_OPEN_WRITE)) return GNOME_VFS_ERROR_INVALID_OPEN_MODE; if (mode & GNOME_VFS_OPEN_READ) unix_mode |= O_RDWR; else unix_mode |= O_WRONLY; if (exclusive) unix_mode |= O_EXCL; path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); LOCK_SMB(); init_authentication (&actx, uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { file = (smb_context->open) (smb_context, path, unix_mode, perm); actx.res = (file != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); g_free (path); if (file == NULL) return actx.res; handle = g_new (FileHandle, 1); handle->is_data = FALSE; handle->file = file; *method_handle = (GnomeVFSMethodHandle *)handle; return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { struct stat st; char *path; int type, err = -1; const char *mime_type; SmbAuthContext actx; DEBUG_SMB (("do_get_file_info() %s\n", gnome_vfs_uri_to_string (uri, 0))); type = smb_uri_type (uri); if (type == SMB_URI_ERROR) { return GNOME_VFS_ERROR_INVALID_URI; } if (type == SMB_URI_WHOLE_NETWORK || type == SMB_URI_WORKGROUP || type == SMB_URI_SERVER || type == SMB_URI_SHARE) { file_info->name = get_base_from_uri (uri); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; if (type == SMB_URI_SHARE) { file_info->mime_type = g_strdup ("x-directory/smb-share"); } else { file_info->mime_type = g_strdup ("x-directory/normal"); } /* Make sure you can't write to smb:// or smb://foo. For smb://server/share we * leave this empty, since accessing the data for real can cause authentication * while e.g. browsing smb://server */ if (type != SMB_URI_SHARE) { file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; } return GNOME_VFS_OK; } if (type == SMB_URI_WORKGROUP_LINK || type == SMB_URI_SERVER_LINK) { file_info->name = get_base_from_uri (uri); file_info->valid_fields = file_info->valid_fields | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->mime_type = g_strdup ("application/x-desktop"); file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; return GNOME_VFS_OK; } g_assert (type == SMB_URI_SHARE_FILE); path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); LOCK_SMB(); init_authentication (&actx, uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { err = smb_context->stat (smb_context, path, &st); actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); g_free (path); if (err < 0) return actx.res; gnome_vfs_stat_to_file_info (file_info, &st); file_info->name = get_base_from_uri (uri); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE; file_info->io_block_size = SMB_BLOCK_SIZE; if (options & GNOME_VFS_FILE_INFO_GET_MIME_TYPE) { if (S_ISDIR(st.st_mode)) { mime_type = "x-directory/normal"; } else if (options & GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE) { mime_type = gnome_vfs_get_mime_type_common (uri); } else { mime_type = gnome_vfs_mime_type_from_name_or_default (file_info->name, NULL); } file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; file_info->mime_type = g_strdup (mime_type); } DEBUG_SMB (("do_get_file_info()\n" "name: %s\n" "smb type: %d\n" "mimetype: %s\n" "type: %d\n", file_info->name, type, file_info->mime_type, file_info->type)); return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *handle = (FileHandle *)method_handle; SmbAuthContext actx; struct stat st; int err = -1; LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { err = smb_context->fstat (smb_context, handle->file, &st); actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); if (err < 0) return actx.res; gnome_vfs_stat_to_file_info (file_info, &st); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE; file_info->io_block_size = SMB_BLOCK_SIZE; return GNOME_VFS_OK; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return FALSE; } typedef struct { GList *workgroups; SMBCFILE *dir; char *path; } DirectoryHandle; static void add_workgroup (gpointer key, gpointer value, gpointer user_data) { DirectoryHandle *directory_handle; directory_handle = user_data; directory_handle->workgroups = g_list_prepend (directory_handle->workgroups, g_strdup (key)); } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { DirectoryHandle *directory_handle; GnomeVFSURI *new_uri = NULL; const char *host_name; char *path; SmbUriType type; SMBCFILE *dir = NULL; SmbAuthContext actx; DEBUG_SMB(("do_open_directory() %s\n", gnome_vfs_uri_to_string (uri, 0))); type = smb_uri_type (uri); if (type == SMB_URI_WHOLE_NETWORK) { update_workgroup_cache (); directory_handle = g_new0 (DirectoryHandle, 1); g_hash_table_foreach (workgroups, add_workgroup, directory_handle); *method_handle = (GnomeVFSMethodHandle *) directory_handle; return GNOME_VFS_OK; } if (type == SMB_URI_ERROR || type == SMB_URI_WORKGROUP_LINK || type == SMB_URI_SERVER_LINK) { return GNOME_VFS_ERROR_NOT_A_DIRECTORY; } /* if it is the magic default workgroup name, map it to the * SMBCCTX's workgroup, which comes from the smb.conf file. */ host_name = gnome_vfs_uri_get_host_name (uri); if (type == SMB_URI_WORKGROUP && host_name != NULL && !g_ascii_strcasecmp(host_name, DEFAULT_WORKGROUP_NAME)) { new_uri = gnome_vfs_uri_dup (uri); gnome_vfs_uri_set_host_name (new_uri, smb_context->workgroup ? smb_context->workgroup : "WORKGROUP"); uri = new_uri; } path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); DEBUG_SMB(("do_open_directory() path %s\n", path)); LOCK_SMB(); init_authentication (&actx, uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { dir = smb_context->opendir (smb_context, path); actx.res = (dir != NULL) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); if (new_uri) gnome_vfs_uri_unref (new_uri); if (dir == NULL) { g_free (path); return actx.res; } /* Construct the handle */ directory_handle = g_new0 (DirectoryHandle, 1); directory_handle->dir = dir; directory_handle->path = path; *method_handle = (GnomeVFSMethodHandle *) directory_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { DirectoryHandle *directory_handle = (DirectoryHandle *) method_handle; GnomeVFSResult res; SmbAuthContext actx; GList *l; int err = -1; DEBUG_SMB(("do_close_directory: %p\n", directory_handle)); if (directory_handle == NULL) return GNOME_VFS_OK; if (directory_handle->workgroups != NULL) { for (l = directory_handle->workgroups; l != NULL; l = l->next) { g_free (l->data); } g_list_free (directory_handle->workgroups); } res = GNOME_VFS_OK; if (directory_handle->dir != NULL) { LOCK_SMB (); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { err = smb_context->closedir (smb_context, directory_handle->dir); actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } res = actx.res; UNLOCK_SMB (); } g_free (directory_handle->path); g_free (directory_handle); return res; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { DirectoryHandle *dh = (DirectoryHandle *) method_handle; struct smbc_dirent *entry = NULL; SmbAuthContext actx; struct stat st; char *statpath; char *path; char *escaped; int r = -1; GList *l; DEBUG_SMB (("do_read_directory()\n")); if (dh->dir == NULL) { if (dh->workgroups == NULL) { return GNOME_VFS_ERROR_EOF; } else { /* workgroup link */ l = dh->workgroups; dh->workgroups = g_list_remove_link (dh->workgroups, l); file_info->name = l->data; g_list_free_1 (l); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->mime_type = g_strdup ("application/x-desktop"); return GNOME_VFS_OK; } } LOCK_SMB(); do { errno = 0; init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { entry = smb_context->readdir (smb_context, dh->dir); if(entry == NULL) { if(errno == 0) actx.res = GNOME_VFS_ERROR_EOF; else actx.res = gnome_vfs_result_from_errno (); } else { actx.res = GNOME_VFS_OK; } } if (entry == NULL) { UNLOCK_SMB(); return actx.res; } } while (entry->smbc_type == SMBC_COMMS_SHARE || entry->smbc_type == SMBC_IPC_SHARE || entry->smbc_type == SMBC_PRINTER_SHARE || entry->name == NULL || strlen (entry->name) == 0 || (entry->smbc_type == SMBC_FILE_SHARE && is_hidden_entry (entry->name))); UNLOCK_SMB(); file_info->name = g_strndup (entry->name, entry->namelen); DEBUG_SMB (("do_read_directory (): read %s\n", file_info->name)); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; switch (entry->smbc_type) { case SMBC_FILE_SHARE: file_info->valid_fields = file_info->valid_fields | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->mime_type = g_strdup ("x-directory/smb-share"); break; case SMBC_WORKGROUP: case SMBC_SERVER: file_info->valid_fields = file_info->valid_fields | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->mime_type = g_strdup ("application/x-desktop"); break; case SMBC_PRINTER_SHARE: /* Ignored above for now */ file_info->valid_fields = file_info->valid_fields | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->mime_type = g_strdup ("application/x-smb-printer"); case SMBC_COMMS_SHARE: case SMBC_IPC_SHARE: break; case SMBC_DIR: case SMBC_FILE: path = dh->path; escaped = gnome_vfs_escape_string (file_info->name); if (path[strlen(path)-1] == '/') { statpath = g_strconcat (path, escaped, NULL); } else { statpath = g_strconcat (path, "/", escaped, NULL); } g_free (escaped); /* TODO: might give an auth error, but should be rare due to the succeeding opendir. If this happens and we can't auth, we should terminate the readdir to avoid multiple password dialogs */ LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { r = smb_context->stat (smb_context, statpath, &st); actx.res = (r == 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); if (r == 0) { gnome_vfs_stat_to_file_info (file_info, &st); file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE; file_info->io_block_size = SMB_BLOCK_SIZE; } g_free (statpath); file_info->valid_fields = file_info->valid_fields | GNOME_VFS_FILE_INFO_FIELDS_TYPE; if (entry->smbc_type == SMBC_DIR) { file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->mime_type = g_strdup ("x-directory/normal"); file_info->valid_fields = file_info->valid_fields | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } else { file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->mime_type = g_strdup ( gnome_vfs_mime_type_from_name(file_info->name)); file_info->valid_fields = file_info->valid_fields | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } break; case SMBC_LINK: g_warning ("smb links not supported"); /*FIXME*/ break; default: g_assert_not_reached (); } return GNOME_VFS_OK; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *handle = (FileHandle *)method_handle; SmbAuthContext actx; int meth_whence; off_t ret = (off_t) -1; if (handle->is_data) { switch (whence) { case GNOME_VFS_SEEK_START: handle->offset = MIN (offset, handle->file_size); break; case GNOME_VFS_SEEK_CURRENT: handle->offset = MIN (handle->offset + offset, handle->file_size); break; case GNOME_VFS_SEEK_END: if (offset > handle->file_size) { handle->offset = 0; } else { handle->offset = handle->file_size - offset; } break; default: return GNOME_VFS_ERROR_NOT_SUPPORTED; } return GNOME_VFS_OK; } switch (whence) { case GNOME_VFS_SEEK_START: meth_whence = SEEK_SET; break; case GNOME_VFS_SEEK_CURRENT: meth_whence = SEEK_CUR; break; case GNOME_VFS_SEEK_END: meth_whence = SEEK_END; break; default: return GNOME_VFS_ERROR_NOT_SUPPORTED; } LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { ret = smb_context->lseek (smb_context, handle->file, (off_t) offset, meth_whence); actx.res = (ret != (off_t) -1) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); return actx.res; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *handle = (FileHandle *)method_handle; SmbAuthContext actx; off_t ret = (off_t) -1; if (handle->is_data) { *offset_return = handle->offset; return GNOME_VFS_OK; } LOCK_SMB(); init_authentication (&actx, NULL); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { ret = smb_context->lseek (smb_context, handle->file, (off_t) 0, SEEK_CUR); actx.res = (ret != (off_t) -1) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); *offset_return = (ret == (off_t) -1) ? 0 : (GnomeVFSFileOffset) ret; return actx.res; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { char *path; SmbAuthContext actx; int type, err = -1; DEBUG_SMB (("do_unlink() %s\n", gnome_vfs_uri_to_string (uri, 0))); type = smb_uri_type (uri); if (type == SMB_URI_ERROR) { return GNOME_VFS_ERROR_INVALID_URI; } if (type == SMB_URI_WHOLE_NETWORK || type == SMB_URI_WORKGROUP || type == SMB_URI_SERVER || type == SMB_URI_SHARE || type == SMB_URI_WORKGROUP_LINK || type == SMB_URI_SERVER_LINK) { return GNOME_VFS_ERROR_NOT_PERMITTED; } path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); LOCK_SMB(); init_authentication (&actx, uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { err = smb_context->unlink (smb_context, path); actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); g_free (path); return actx.res; } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { char *server1; char *server2; char *path1; char *path2; char *p1, *p2; DEBUG_SMB (("do_check_same_fs()\n")); server1 = gnome_vfs_unescape_string (gnome_vfs_uri_get_host_name (a), NULL); server2 = gnome_vfs_unescape_string (gnome_vfs_uri_get_host_name (b), NULL); path1 = gnome_vfs_unescape_string (gnome_vfs_uri_get_path (a), NULL); path2 = gnome_vfs_unescape_string (gnome_vfs_uri_get_path (b), NULL); if (!server1 || !server2 || !path1 || !path2 || (strcmp (server1, server2) != 0)) { g_free (server1); g_free (server2); g_free (path1); g_free (path2); *same_fs_return = FALSE; return GNOME_VFS_OK; } p1 = path1; p2 = path2; if (*p1 == '/') { p1++; } if (*p2 == '/') { p2++; } /* Make sure both URIs are on the same share: */ while (*p1 && *p2 && *p1 == *p2 && *p1 != '/') { p1++; p2++; } if (*p1 == 0 || *p2 == 0 || *p1 != *p2) { *same_fs_return = FALSE; } else { *same_fs_return = TRUE; } g_free (server1); g_free (server2); g_free (path1); g_free (path2); return GNOME_VFS_OK; } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { char *old_path, *new_path; int errnox = 0, err = -1; gboolean tried_once; SmbAuthContext actx; int old_type, new_type; DEBUG_SMB (("do_move() %s %s\n", gnome_vfs_uri_to_string (old_uri, 0), gnome_vfs_uri_to_string (new_uri, 0))); old_type = smb_uri_type (old_uri); new_type = smb_uri_type (new_uri); if (old_type != SMB_URI_SHARE_FILE || new_type != SMB_URI_SHARE_FILE) { return GNOME_VFS_ERROR_NOT_PERMITTED; } /* Transform the URI into a completely unescaped string */ old_path = gnome_vfs_uri_to_string (old_uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); new_path = gnome_vfs_uri_to_string (new_uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); tried_once = FALSE; retry: LOCK_SMB(); init_authentication (&actx, old_uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { err = smb_context->rename (smb_context, old_path, smb_context, new_path); errnox = errno; actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); if (err < 0) { if (errnox == EXDEV) { actx.res = GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; } else if (err == EEXIST && force_replace != FALSE) { /* If the target exists and force_replace is TRUE */ LOCK_SMB(); init_authentication (&actx, new_uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { err = smb_context->unlink (smb_context, new_path); actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); if (err >= 0) { if (!tried_once) { tried_once = TRUE; goto retry; } actx.res = GNOME_VFS_ERROR_FILE_EXISTS; } } } g_free (old_path); g_free (new_path); return actx.res; } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { DEBUG_SMB(("do_truncate_handle\n")); return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { char *path; int type, err = -1; SmbAuthContext actx; type = smb_uri_type (uri); if (type == SMB_URI_ERROR) { return GNOME_VFS_ERROR_INVALID_URI; } if (type == SMB_URI_WHOLE_NETWORK || type == SMB_URI_WORKGROUP || type == SMB_URI_SERVER || type == SMB_URI_SHARE || type == SMB_URI_WORKGROUP_LINK || type == SMB_URI_SERVER_LINK) { return GNOME_VFS_ERROR_NOT_PERMITTED; } /* Transform the URI into a completely unescaped string */ path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); LOCK_SMB(); init_authentication (&actx, uri); /* Important: perform_authentication leaves and re-enters the lock! */ while (perform_authentication (&actx) > 0) { err = smb_context->mkdir (smb_context, path, perm); actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); g_free (path); return actx.res; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { char *path; int err = -1, type; SmbAuthContext actx; type = smb_uri_type (uri); if (type == SMB_URI_ERROR) { return GNOME_VFS_ERROR_INVALID_URI; } if (type == SMB_URI_WHOLE_NETWORK || type == SMB_URI_WORKGROUP || type == SMB_URI_SERVER || type == SMB_URI_SHARE || type == SMB_URI_WORKGROUP_LINK || type == SMB_URI_SERVER_LINK) { return GNOME_VFS_ERROR_NOT_PERMITTED; } /* Transform the URI into a completely unescaped string */ path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); LOCK_SMB(); init_authentication (&actx, uri); while (perform_authentication (&actx) > 0) { err = smb_context->rmdir (smb_context, path); actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); g_free (path); return actx.res; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { char *path; int err = -1, errnox = 0, type; SmbAuthContext actx; DEBUG_SMB (("do_set_file_info: mask %x\n", mask)); type = smb_uri_type (uri); if (type == SMB_URI_ERROR) { return GNOME_VFS_ERROR_INVALID_URI; } if (type == SMB_URI_WHOLE_NETWORK || type == SMB_URI_WORKGROUP || type == SMB_URI_SERVER || type == SMB_URI_SHARE || type == SMB_URI_WORKGROUP_LINK || type == SMB_URI_SERVER_LINK) { return GNOME_VFS_ERROR_NOT_PERMITTED; } path = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); if (mask & GNOME_VFS_SET_FILE_INFO_NAME) { GnomeVFSURI *parent, *new_uri; char *new_path; parent = gnome_vfs_uri_get_parent (uri); new_uri = gnome_vfs_uri_append_file_name (parent, info->name); gnome_vfs_uri_unref (parent); new_path = gnome_vfs_uri_to_string (new_uri, GNOME_VFS_URI_HIDE_USER_NAME | GNOME_VFS_URI_HIDE_PASSWORD); gnome_vfs_uri_unref (new_uri); LOCK_SMB(); init_authentication (&actx, uri); while (perform_authentication (&actx) > 0) { err = smb_context->rename (smb_context, path, smb_context, new_path); errnox = errno; actx.res = (err >= 0) ? GNOME_VFS_OK : gnome_vfs_result_from_errno (); } UNLOCK_SMB(); if (err < 0 && errnox == EXDEV) actx.res = GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; g_free (path); path = new_path; if (actx.res != GNOME_VFS_OK) { g_free (path); return actx.res; } } if (gnome_vfs_context_check_cancellation (context)) { g_free (path); return GNOME_VFS_ERROR_CANCELLED; } if (mask & GNOME_VFS_SET_FILE_INFO_PERMISSIONS) { g_free (path); return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (mask & GNOME_VFS_SET_FILE_INFO_OWNER) { g_free (path); return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (mask & GNOME_VFS_SET_FILE_INFO_TIME) { g_free (path); return GNOME_VFS_ERROR_NOT_SUPPORTED; } g_free (path); return GNOME_VFS_OK; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, NULL, /* do_truncate */ NULL, /* do_find_directory */ NULL /* do_create_symbolic_link */ }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { smb_lock = g_mutex_new (); DEBUG_SMB (("<-- smb module init called -->\n")); if (try_init ()) { return &method; } else { return NULL; } } void vfs_module_shutdown (GnomeVFSMethod *method) { LOCK_SMB(); if (smb_context != NULL) { smbc_free_context (smb_context, 1); smb_context = NULL; } UNLOCK_SMB(); g_hash_table_destroy (server_cache); g_hash_table_destroy (workgroups); g_hash_table_destroy (user_cache); g_mutex_free (smb_lock); DEBUG_SMB (("<-- smb module shutdown called -->\n")); } gnome-vfs-2.24.4/modules/file-method-acl.c0000644000175000001440000005216211334251016015171 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-acl.h - ACL Handling for the GNOME Virtual File System. Virtual File System. Copyright (C) 2005 Christian Kellner Copyright (C) 2005 Sun Microsystems The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Christian Kellner Alvaro Lopez Ortega */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #ifdef HAVE_SYS_RESOURCE_H #include #endif #ifdef HAVE_PWD_H # include #endif #ifdef HAVE_GRP_H # include #endif #ifdef HAVE_POSIX_ACL # include #define HAVE_ACL 1 #endif #ifdef HAVE_SOLARIS_ACL # include #define HAVE_ACL 1 #endif #include "file-method-acl.h" #define CMD_PERM_READ 4 #define CMD_PERM_WRITE 2 #define CMD_PERM_EXECUTE 1 #define CMD_PERM_COND_EXECUTE 8 #ifdef HAVE_ACL static char * uid_to_string (uid_t uid) { char *uid_string = NULL; #ifdef HAVE_PWD_H struct passwd *pw = NULL; gpointer buffer = NULL; gint error; #if defined (HAVE_POSIX_GETPWUID_R) || defined (HAVE_NONPOSIX_GETPWUID_R) struct passwd pwd; glong bufsize; #ifdef _SC_GETPW_R_SIZE_MAX bufsize = sysconf (_SC_GETPW_R_SIZE_MAX); #else bufsize = 64; #endif /* _SC_GETPW_R_SIZE_MAX */ do { g_free (buffer); /* why bufsize + 6 see #156446 */ buffer = g_malloc (bufsize + 6); errno = 0; #ifdef HAVE_POSIX_GETPWUID_R error = getpwuid_r (uid, &pwd, buffer, bufsize, &pw); error = error < 0 ? errno : error; #else /* HAVE_NONPOSIX_GETPWUID_R */ /* HPUX 11 falls into the HAVE_POSIX_GETPWUID_R case */ #if defined(_AIX) || defined(__hpux) error = getpwuid_r (uid, &pwd, buffer, bufsize); pw = error == 0 ? &pwd : NULL; #else /* !_AIX */ pw = getpwuid_r (uid, &pwd, buffer, bufsize); error = pw ? 0 : errno; #endif /* !_AIX */ #endif /* HAVE_NONPOSIX_GETPWUID_R */ if (pw == NULL) { if (error == 0 || error == ENOENT) { break; } } if (bufsize > 32 * 1024) { break; } bufsize *= 2; } while (pw == NULL); #endif /* HAVE_POSIX_GETPWUID_R || HAVE_NONPOSIX_GETPWUID_R */ if (pw == NULL) { setpwent (); pw = getpwuid (uid); endpwent (); } if (pw != NULL) { uid_string = g_strdup (pw->pw_name); } #endif /* HAVE_PWD_H */ if (uid_string == NULL) { uid_string = g_strdup_printf ("%d", uid); } return uid_string; } static char * gid_to_string (gid_t gid) { char *gid_string = NULL; #ifdef HAVE_GETGRGID_R struct group *gr = NULL; gpointer buffer = NULL; gint error; struct group grp; glong bufsize; #ifdef _SC_GETGR_R_SIZE_MAX bufsize = sysconf (_SC_GETGR_R_SIZE_MAX); #else bufsize = 64; #endif /* _SC_GETPW_R_SIZE_MAX */ do { g_free (buffer); /* why bufsize + 6 see #156446 */ buffer = g_malloc (bufsize + 6); error = getgrgid_r (gid, &grp, buffer, bufsize, &gr); error = error < 0 ? errno : error; if (gr == NULL) { if (error == 0 || error == ENOENT) { break; } } if (bufsize > 32 * 1024) { break; } bufsize *= 2; } while (gr == NULL); if (gr != NULL) { gid_string = g_strdup (gr->gr_name); } #endif if (gid_string == NULL) { gid_string = g_strdup_printf ("%d", gid); } return gid_string; } static uid_t string_to_uid (const char *uid) { struct passwd *passwd; passwd = getpwnam(uid); if (passwd == NULL) return 0; return passwd->pw_uid; } static gid_t string_to_gid (const char *gid) { struct group *group; group = getgrnam (gid); if (group == NULL) return 0; return group->gr_gid; } /* ************************************************************************** */ /* POSIX ACL */ #ifdef HAVE_POSIX_ACL #define POSIX_N_TAGS 3 static int permset_to_perms (acl_permset_t set, GnomeVFSACLPerm *tags) { int i; memset (tags, 0, sizeof (GnomeVFSACLPerm) * (POSIX_N_TAGS + 1)); i = 0; if (acl_get_perm (set, ACL_READ) == 1) { tags[0] = GNOME_VFS_ACL_READ; i++; } if (acl_get_perm (set, ACL_WRITE) == 1) { tags[i] = GNOME_VFS_ACL_WRITE; i++; } if (acl_get_perm (set, ACL_EXECUTE)) { tags[i] = GNOME_VFS_ACL_EXECUTE; } return i; } static acl_entry_t find_entry (acl_t acl, acl_tag_t type, id_t id) { acl_entry_t ent; acl_tag_t e_type; id_t *e_id_p; if (acl_get_entry(acl, ACL_FIRST_ENTRY, &ent) != 1) return NULL; for(;;) { acl_get_tag_type(ent, &e_type); if (type == e_type) { if (id == ACL_UNDEFINED_ID) return ent; e_id_p = acl_get_qualifier(ent); if (e_id_p == NULL) return NULL; if (*e_id_p == id) { acl_free(e_id_p); return ent; } acl_free(e_id_p); } if (acl_get_entry(acl, ACL_NEXT_ENTRY, &ent) != 1) return NULL; } } static void set_permset (acl_permset_t permset, mode_t perm) { if (perm & CMD_PERM_READ) acl_add_perm (permset, ACL_READ); else acl_delete_perm (permset, ACL_READ); if (perm & CMD_PERM_WRITE) acl_add_perm (permset, ACL_WRITE); else acl_delete_perm (permset, ACL_WRITE); if (perm & CMD_PERM_EXECUTE) acl_add_perm (permset, ACL_EXECUTE); else acl_delete_perm (permset, ACL_EXECUTE); } static int clone_entry (acl_t from_acl, acl_tag_t from_type, acl_t *to_acl, acl_tag_t to_type) { acl_entry_t from_entry; acl_entry_t to_entry; from_entry = find_entry(from_acl, from_type, ACL_UNDEFINED_ID); if (from_entry == NULL) return 1; if (acl_create_entry(to_acl, &to_entry) != 0) return -1; acl_copy_entry(to_entry, from_entry); acl_set_tag_type(to_entry, to_type); return 0; } static int posix_acl_read (GnomeVFSACL *acl, acl_t p_acl, gboolean def) { acl_entry_t entry; int res; int e_id; int n; if (p_acl == NULL) { return 0; } n = 0; e_id = ACL_FIRST_ENTRY; while ((res = acl_get_entry (p_acl, e_id, &entry)) == 1) { GnomeVFSACLPerm pset[POSIX_N_TAGS + 1]; GnomeVFSACLKind kind; GnomeVFSACE *ace; acl_permset_t e_ps; acl_tag_t e_type; void *e_qf; char *id; e_id = ACL_NEXT_ENTRY; e_type = ACL_UNDEFINED_ID; e_qf = NULL; /* prop = (def) ? GNOME_VFS_ACL_DEFAULT : GNOME_VFS_ACL_TYPE_NULL; */ /* Read "default" */ res = acl_get_tag_type (entry, &e_type); if (res == -1 || e_type == ACL_UNDEFINED_ID || e_type == ACL_MASK) { continue; } if (def == FALSE && (e_type != ACL_USER && e_type != ACL_GROUP)) { /* skip the standard unix permissions */ continue; } res = acl_get_permset (entry, &e_ps); if (res == -1) { continue; } e_qf = acl_get_qualifier (entry); id = NULL; kind = GNOME_VFS_ACL_KIND_NULL; switch (e_type) { case ACL_USER: id = uid_to_string (*(uid_t *) e_qf); /* FALLTHROUGH */ case ACL_USER_OBJ: kind = GNOME_VFS_ACL_USER; break; case ACL_GROUP: id = gid_to_string (*(gid_t *) e_qf); /* FALLTHROUGH */ case ACL_GROUP_OBJ: kind = GNOME_VFS_ACL_GROUP; break; case ACL_MASK: case ACL_OTHER: kind = GNOME_VFS_ACL_OTHER; break; } permset_to_perms (e_ps, pset); ace = gnome_vfs_ace_new (kind, id, pset); g_free (id); if (def) { g_object_set (G_OBJECT(ace), "inherit", def, NULL); } gnome_vfs_acl_set (acl, ace); g_object_unref (ace); if (e_qf) { acl_free (e_qf); } n++; } return n; } #endif /* HAVE_POSIX_ACL */ /* ************************************************************************** */ /* SOLARIS ACL */ #ifdef HAVE_SOLARIS_ACL #define SOLARIS_N_TAGS 3 static gboolean fixup_acl (GnomeVFSACL *acl, GSList *acls) { GSList *i; gboolean defaults = FALSE; gboolean user_obj = FALSE; gboolean group_obj = FALSE; gboolean other_obj = FALSE; gboolean mask_obj = FALSE; gboolean class_needed = FALSE; gboolean changed = FALSE; /* Is there some default entry? */ for (i=acls; i != NULL; i=i->next) { const char *id_str; GnomeVFSACLKind kind; GnomeVFSACE *ace = GNOME_VFS_ACE(i->data); if (!gnome_vfs_ace_get_inherit(ace)) continue; defaults = TRUE; id_str = gnome_vfs_ace_get_id (ace); kind = gnome_vfs_ace_get_kind (ace); switch (kind) { case GNOME_VFS_ACL_USER: if (id_str == NULL) user_obj = TRUE; else class_needed = TRUE; break; case GNOME_VFS_ACL_GROUP: if (id_str == NULL) group_obj = TRUE; else class_needed = TRUE; break; case GNOME_VFS_ACL_OTHER: if (id_str == NULL) other_obj = TRUE; break; case GNOME_VFS_ACL_MASK: if (id_str == NULL) mask_obj = TRUE; break; default: break; } } if (!defaults) return FALSE; /* Add the missing ACEs */ if (!user_obj) { GnomeVFSACE *ace; GnomeVFSACLPerm perms[] = {GNOME_VFS_ACL_READ, GNOME_VFS_ACL_WRITE, GNOME_VFS_ACL_EXECUTE, 0}; ace = gnome_vfs_ace_new (GNOME_VFS_ACL_USER, NULL, perms); gnome_vfs_ace_set_inherit (ace, TRUE); gnome_vfs_acl_set (acl, ace); g_slist_append(acls, ace); changed = TRUE; } if (!group_obj) { GnomeVFSACE *ace; GnomeVFSACLPerm perms[] = {0}; ace = gnome_vfs_ace_new (GNOME_VFS_ACL_GROUP, NULL, perms); gnome_vfs_ace_set_inherit (ace, TRUE); gnome_vfs_acl_set (acl, ace); changed = TRUE; } if (!other_obj) { GnomeVFSACE *ace; GnomeVFSACLPerm perms[] = {0}; ace = gnome_vfs_ace_new (GNOME_VFS_ACL_OTHER, NULL, perms); gnome_vfs_ace_set_inherit (ace, TRUE); gnome_vfs_acl_set (acl, ace); changed = TRUE; } if (class_needed && !mask_obj) { GnomeVFSACE *ace; GnomeVFSACLPerm perms[] = {GNOME_VFS_ACL_READ, GNOME_VFS_ACL_WRITE, GNOME_VFS_ACL_EXECUTE, 0}; ace = gnome_vfs_ace_new (GNOME_VFS_ACL_MASK, NULL, perms); gnome_vfs_ace_set_inherit (ace, TRUE); gnome_vfs_acl_set (acl, ace); changed = TRUE; } return changed; } static int permset_to_perms (int set, GnomeVFSACLPerm *tags) { int i; memset (tags, 0, sizeof (GnomeVFSACLPerm) * (SOLARIS_N_TAGS + 1)); i = 0; if (set & 4) { tags[i] = GNOME_VFS_ACL_READ; i++; } if (set & 2) { tags[i] = GNOME_VFS_ACL_WRITE; i++; } if (set & 1) { tags[i] = GNOME_VFS_ACL_EXECUTE; i++; } return i; } static int solaris_acl_read (GnomeVFSACL *acl, aclent_t *aclp, int aclcnt, gboolean def) { int i; aclent_t *tp; for (tp = aclp, i=0; i < aclcnt; tp++, i++) { GnomeVFSACE *ace; GnomeVFSACLKind kind; GnomeVFSACLPerm pset[SOLARIS_N_TAGS+1]; char *id; id = NULL; kind = GNOME_VFS_ACL_KIND_NULL; switch (tp->a_type) { case USER: case DEF_USER: id = uid_to_string(tp->a_id); case USER_OBJ: case DEF_USER_OBJ: kind = GNOME_VFS_ACL_USER; break; case GROUP: case DEF_GROUP: id = gid_to_string(tp->a_id); case GROUP_OBJ: case DEF_GROUP_OBJ: kind = GNOME_VFS_ACL_GROUP; break; case OTHER_OBJ: case DEF_OTHER_OBJ: kind = GNOME_VFS_ACL_OTHER; break; case CLASS_OBJ: case DEF_CLASS_OBJ: kind = GNOME_VFS_ACL_MASK; break; default: g_warning ("Unhandled Solaris ACE: %d\n", tp->a_type); } permset_to_perms (tp->a_perm, pset); ace = gnome_vfs_ace_new (kind, id, pset); if (tp->a_type & ACL_DEFAULT) gnome_vfs_ace_set_inherit (ace, TRUE); gnome_vfs_acl_set (acl, ace); g_object_unref (ace); } return 0; } static GnomeVFSResult translate_ace_into_aclent (GnomeVFSACE *ace, aclent_t *aclp) { int re; gboolean is_default = FALSE; const char *id_str; GnomeVFSACLKind kind; int id; id_str = gnome_vfs_ace_get_id (ace); kind = gnome_vfs_ace_get_kind (ace); is_default = gnome_vfs_ace_get_inherit (ace); aclp->a_perm = 0; aclp->a_id = 0; aclp->a_type = 0; /* Permissions */ if (gnome_vfs_ace_check_perm (ace, GNOME_VFS_ACL_READ)) { aclp->a_perm |= 4; } if (gnome_vfs_ace_check_perm (ace, GNOME_VFS_ACL_WRITE)) { aclp->a_perm |= 2; } if (gnome_vfs_ace_check_perm (ace, GNOME_VFS_ACL_EXECUTE)) { aclp->a_perm |= 1; } /* Kind */ id = NULL; switch (kind) { case GNOME_VFS_ACL_USER: if (id_str) { aclp->a_type = (is_default) ? DEF_USER : USER; aclp->a_id = string_to_uid (id_str); } else { aclp->a_type = (is_default) ? DEF_USER_OBJ : USER_OBJ; } break; case GNOME_VFS_ACL_GROUP: if (id_str) { aclp->a_type = (is_default) ? DEF_GROUP : GROUP; aclp->a_id = string_to_gid (id_str); } else { aclp->a_type = (is_default) ? DEF_GROUP_OBJ : GROUP_OBJ; } break; case GNOME_VFS_ACL_OTHER: aclp->a_type = (is_default) ? DEF_OTHER_OBJ : OTHER_OBJ; break; case GNOME_VFS_ACL_MASK: aclp->a_type = (is_default) ? DEF_CLASS_OBJ : CLASS_OBJ; break; default: return GNOME_VFS_ERROR_NOT_SUPPORTED; } return GNOME_VFS_OK; } #endif /* HAVE_SOLARIS_ACL */ /* ************************************************************************** */ /* Common */ static GnomeVFSResult aclerrno_to_vfserror (int acl_errno) { switch (acl_errno) { case ENOENT: case EINVAL: return GNOME_VFS_ERROR_BAD_FILE; case ENOSYS: return GNOME_VFS_ERROR_NOT_SUPPORTED; case EACCES: return GNOME_VFS_ERROR_ACCESS_DENIED; case ENAMETOOLONG: return GNOME_VFS_ERROR_NAME_TOO_LONG; case EPERM: return GNOME_VFS_ERROR_NOT_PERMITTED; case ENOSPC: return GNOME_VFS_ERROR_NO_SPACE; case EROFS: return GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM; default: break; } return GNOME_VFS_ERROR_GENERIC; } #endif /* HAVE_ACL */ GnomeVFSResult file_get_acl (const char *path, GnomeVFSFileInfo *info, struct stat *statbuf, GnomeVFSContext *context) { #ifdef HAVE_SOLARIS_ACL int re; int aclcnt; aclent_t *aclp; if (info->acl != NULL) { gnome_vfs_acl_clear (info->acl); } else { info->acl = gnome_vfs_acl_new (); } aclcnt = acl (path, GETACLCNT, 0, NULL); if (aclcnt < 0) { return aclerrno_to_vfserror (errno); } if (aclcnt < MIN_ACL_ENTRIES) { return GNOME_VFS_ERROR_INTERNAL; } aclp = (aclent_t *)malloc(sizeof (aclent_t) * aclcnt); if (aclp == NULL) { return GNOME_VFS_ERROR_NO_MEMORY; } errno = 0; re = acl (path, GETACL, aclcnt, aclp); if (re < 0) { return aclerrno_to_vfserror (errno); } re = solaris_acl_read (info->acl, aclp, aclcnt, FALSE); if (re < 0) { return GNOME_VFS_ERROR_INTERNAL; } info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_ACL; free (aclp); return GNOME_VFS_OK; #elif defined(HAVE_POSIX_ACL) acl_t p_acl; int n; if (info->acl != NULL) { gnome_vfs_acl_clear (info->acl); } else { info->acl = gnome_vfs_acl_new (); } p_acl = acl_get_file (path, ACL_TYPE_ACCESS); n = posix_acl_read (info->acl, p_acl, FALSE); if (p_acl) { acl_free (p_acl); } if (S_ISDIR (statbuf->st_mode)) { p_acl = acl_get_file (path, ACL_TYPE_DEFAULT); n += posix_acl_read (info->acl, p_acl, TRUE); if (p_acl) { acl_free (p_acl); } } if (n > 0) { info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_ACL; } else { g_object_unref (info->acl); info->acl = NULL; } return GNOME_VFS_OK; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } GnomeVFSResult file_set_acl (const char *path, const GnomeVFSFileInfo *info, GnomeVFSContext *context) { #ifdef HAVE_SOLARIS_ACL GList *acls; GList *entry; guint len; GnomeVFSResult re; aclent_t *new_aclp; aclent_t *taclp; guint aclp_i; gboolean changed; if (info->acl == NULL) return GNOME_VFS_ERROR_BAD_PARAMETERS; acls = gnome_vfs_acl_get_ace_list (info->acl); if (acls == NULL) return GNOME_VFS_OK; changed = fixup_acl (info->acl, acls); if (changed) { gnome_vfs_acl_free_ace_list (acls); acls = gnome_vfs_acl_get_ace_list (info->acl); if (acls == NULL) return GNOME_VFS_OK; } len = g_list_length (acls); if (len <= 0) return GNOME_VFS_OK; new_aclp = (aclent_t *) malloc (len * sizeof(aclent_t)); if (new_aclp == NULL) return GNOME_VFS_ERROR_NO_MEMORY; memset (new_aclp, 0, len * sizeof(aclent_t)); aclp_i = 0; taclp = new_aclp; for (entry=acls; entry != NULL; entry = entry->next) { GnomeVFSACE *ace = GNOME_VFS_ACE(entry->data); re = translate_ace_into_aclent (ace, taclp); if (re != GNOME_VFS_OK) continue; aclp_i++; taclp++; } /* Sort it out */ re = aclsort (aclp_i, 0, (aclent_t *)new_aclp); if (re == -1) { g_free (new_aclp); return GNOME_VFS_ERROR_INTERNAL; } /* Commit it to the file system */ re = acl (path, SETACL, aclp_i, (aclent_t *)new_aclp); if (re < 0) { int err = errno; g_free (new_aclp); return aclerrno_to_vfserror(err); } g_free (new_aclp); return GNOME_VFS_OK; #elif defined(HAVE_POSIX_ACL) GList *acls; GList *entry; acl_t acl_obj; acl_t acl_obj_default; if (info->acl == NULL) return GNOME_VFS_ERROR_BAD_PARAMETERS; /* POSIX ACL object */ acl_obj_default = acl_get_file (path, ACL_TYPE_DEFAULT); acl_obj = acl_get_file (path, ACL_TYPE_ACCESS); if (acl_obj == NULL) return GNOME_VFS_ERROR_GENERIC; /* Parse stored information */ acls = gnome_vfs_acl_get_ace_list (info->acl); if (acls == NULL) return GNOME_VFS_OK; for (entry=acls; entry != NULL; entry = entry->next) { GnomeVFSACE *ace = GNOME_VFS_ACE(entry->data); gboolean is_default = FALSE; const char *id_str; GnomeVFSACLKind kind; int id; int re; acl_tag_t type; mode_t perms = 0; acl_entry_t new_entry = NULL; acl_permset_t permset = NULL; id_str = gnome_vfs_ace_get_id (ace); kind = gnome_vfs_ace_get_kind (ace); is_default = gnome_vfs_ace_get_inherit (ace); /* Perms */ if (gnome_vfs_ace_check_perm (ace, GNOME_VFS_ACL_READ)) perms |= CMD_PERM_READ; else if (gnome_vfs_ace_check_perm (ace, GNOME_VFS_ACL_WRITE)) perms |= CMD_PERM_WRITE; else if (gnome_vfs_ace_check_perm (ace, GNOME_VFS_ACL_EXECUTE)) perms |= CMD_PERM_EXECUTE; /* Type */ switch (kind) { case GNOME_VFS_ACL_USER: id = string_to_uid (id_str); type = ACL_USER; break; case GNOME_VFS_ACL_GROUP: id = string_to_gid (id_str); type = ACL_GROUP; break; case GNOME_VFS_ACL_OTHER: type = ACL_OTHER; break; default: return GNOME_VFS_ERROR_NOT_SUPPORTED; } /* Add the entry */ new_entry = find_entry (acl_obj, type, id); if (new_entry == NULL) { /* new */ if (is_default) re = acl_create_entry (&acl_obj_default, &new_entry); else re = acl_create_entry (&acl_obj, &new_entry); if (re != 0) return aclerrno_to_vfserror (errno); /* e_tag */ re = acl_set_tag_type (new_entry, type); if (re != 0) return aclerrno_to_vfserror (errno); /* e_id */ re = acl_set_qualifier (new_entry, &id); if (re != 0) return aclerrno_to_vfserror (errno); } /* e_perm */ re = acl_get_permset (new_entry, &permset); if (re != 0) return aclerrno_to_vfserror (errno); set_permset (permset, perms); /* Fix it up */ if (is_default && (acl_obj_default != NULL)) { if (! find_entry (acl_obj_default, ACL_USER_OBJ, ACL_UNDEFINED_ID)) { clone_entry (acl_obj, ACL_USER_OBJ, &acl_obj_default, ACL_USER_OBJ); } if (! find_entry (acl_obj_default, ACL_GROUP_OBJ, ACL_UNDEFINED_ID)) { clone_entry (acl_obj, ACL_GROUP_OBJ, &acl_obj_default, ACL_GROUP_OBJ); } if (! find_entry (acl_obj_default, ACL_OTHER, ACL_UNDEFINED_ID)) { clone_entry (acl_obj, ACL_OTHER, &acl_obj_default, ACL_OTHER); } } if (acl_equiv_mode (acl_obj, NULL) != 0) { if (! find_entry (acl_obj, ACL_MASK, ACL_UNDEFINED_ID)) { clone_entry (acl_obj, ACL_GROUP_OBJ, &acl_obj, ACL_MASK); } if (is_default) re = acl_calc_mask (&acl_obj_default); else re = acl_calc_mask (&acl_obj); if (re != 0) return aclerrno_to_vfserror (errno); } } gnome_vfs_acl_free_ace_list (acls); return GNOME_VFS_OK; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } gnome-vfs-2.24.4/modules/inotify-missing.h0000644000175000001440000000230011334251016015361 00000000000000/* inotify-helper.h - GNOME VFS Monitor using inotify Copyright (C) 2006 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: John McCutchan */ #ifndef __INOTIFY_MISSING_H #define __INOTIFY_MISSING_H #include "inotify-sub.h" void im_startup (void (*missing_cb)(ih_sub_t *sub)); void im_add (ih_sub_t *sub); void im_rm (ih_sub_t *sub); void im_diag_dump (GIOChannel *ioc); #endif /* __INOTIFY_MISSING_H */ gnome-vfs-2.24.4/modules/computer-method.c0000644000175000001440000006264211334251016015357 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* computer-method.c - The Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Alexander Larsson */ #include #include #include #include #include #include #include #include #include typedef enum { COMPUTER_HOME_LINK, COMPUTER_ROOT_LINK, COMPUTER_DRIVE, COMPUTER_VOLUME, COMPUTER_NETWORK_LINK } ComputerFileType; typedef struct { char *file_name; /* Not encoded */ ComputerFileType type; GnomeVFSVolume *volume; GnomeVFSDrive *drive; GList *file_monitors; } ComputerFile; typedef struct { GList *files; GList *dir_monitors; } ComputerDir; typedef struct { GnomeVFSMonitorType type; ComputerFile *file; } ComputerMonitor; static ComputerDir *root_dir = NULL; G_LOCK_DEFINE_STATIC (root_dir); static ComputerFile * computer_file_new (ComputerFileType type) { ComputerFile *file; file = g_new0 (ComputerFile, 1); file->type = type; return file; } static void computer_file_free (ComputerFile *file) { GList *l; ComputerMonitor *monitor; if (file->type == COMPUTER_VOLUME) { gnome_vfs_volume_unref (file->volume); } if (file->type == COMPUTER_DRIVE) { gnome_vfs_drive_unref (file->drive); } for (l = file->file_monitors; l != NULL; l = l->next) { monitor = l->data; monitor->file = NULL; } g_list_free (file->file_monitors); g_free (file); } static GnomeVFSURI * computer_file_get_uri (ComputerFile *file) { GnomeVFSURI *uri; GnomeVFSURI *tmp; uri = gnome_vfs_uri_new ("computer:///"); if (file != NULL) { tmp = uri; uri = gnome_vfs_uri_append_file_name (uri, file->file_name); gnome_vfs_uri_unref (tmp); } return uri; } static void computer_file_add (ComputerDir *dir, ComputerFile *file) { ComputerMonitor *monitor; GList *l; GnomeVFSURI *uri; dir->files = g_list_prepend (dir->files, file); uri = computer_file_get_uri (file); for (l = dir->dir_monitors; l != NULL; l = l->next) { monitor = l->data; gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)monitor, uri, GNOME_VFS_MONITOR_EVENT_CREATED); } gnome_vfs_uri_unref (uri); } static void computer_file_remove (ComputerDir *dir, ComputerFile *file) { ComputerMonitor *monitor; GList *l; GnomeVFSURI *uri; dir->files = g_list_remove (dir->files, file); uri = computer_file_get_uri (file); for (l = dir->dir_monitors; l != NULL; l = l->next) { monitor = l->data; gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)monitor, uri, GNOME_VFS_MONITOR_EVENT_DELETED); } for (l = file->file_monitors; l != NULL; l = l->next) { monitor = l->data; gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)monitor, uri, GNOME_VFS_MONITOR_EVENT_DELETED); } gnome_vfs_uri_unref (uri); computer_file_free (file); } static void computer_file_changed (ComputerDir *dir, ComputerFile *file) { ComputerMonitor *monitor; GList *l; GnomeVFSURI *uri; uri = computer_file_get_uri (file); for (l = dir->dir_monitors; l != NULL; l = l->next) { monitor = l->data; gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)monitor, uri, GNOME_VFS_MONITOR_EVENT_CHANGED); } for (l = file->file_monitors; l != NULL; l = l->next) { monitor = l->data; gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)monitor, uri, GNOME_VFS_MONITOR_EVENT_CHANGED); } gnome_vfs_uri_unref (uri); } static ComputerFile * get_volume_file (ComputerDir *dir, GnomeVFSVolume *volume) { GList *l; ComputerFile *file; for (l = dir->files; l != NULL; l = l->next) { file = l->data; if (file->type == COMPUTER_VOLUME && file->volume == volume) { return file; } } return NULL; } static ComputerFile * get_drive_file (ComputerDir *dir, GnomeVFSDrive *drive) { GList *l; ComputerFile *file; for (l = dir->files; l != NULL; l = l->next) { file = l->data; if (file->type == COMPUTER_DRIVE && file->drive == drive) { return file; } } return NULL; } static ComputerFile * get_file (ComputerDir *dir, char *name) { GList *l; ComputerFile *file; if (!name) { return NULL; } for (l = dir->files; l != NULL; l = l->next) { file = l->data; if (strcmp (file->file_name, name) == 0) { return file; } } return NULL; } static char * build_file_name (char *name, char *extension) { char *escaped; char *ret; escaped = gnome_vfs_escape_string (name); ret = g_strconcat (escaped, extension, NULL); g_free (escaped); return ret; } static void volume_mounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume, ComputerDir *dir) { ComputerFile *file; GnomeVFSDrive *drive; char *name; G_LOCK (root_dir); if (gnome_vfs_volume_is_user_visible (volume)) { drive = gnome_vfs_volume_get_drive (volume); if (drive == NULL) { file = computer_file_new (COMPUTER_VOLUME); name = gnome_vfs_volume_get_display_name (volume); file->file_name = build_file_name (name, ".volume"); g_free (name); file->volume = gnome_vfs_volume_ref (volume); computer_file_add (dir, file); } else { file = get_drive_file (dir, drive); if (file != NULL) { computer_file_changed (dir, file); } } gnome_vfs_drive_unref (drive); } G_UNLOCK (root_dir); } static void volume_unmounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume, ComputerDir *dir) { ComputerFile *file; GnomeVFSDrive *drive; G_LOCK (root_dir); drive = gnome_vfs_volume_get_drive (volume); if (drive != NULL) { file = get_drive_file (dir, drive); if (file != NULL) { computer_file_changed (dir, file); } gnome_vfs_drive_unref (drive); } file = get_volume_file (dir, volume); if (file != NULL) { computer_file_remove (dir, file); } G_UNLOCK (root_dir); } static void drive_connected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive, ComputerDir *dir) { ComputerFile *file; char *name; G_LOCK (root_dir); file = computer_file_new (COMPUTER_DRIVE); name = gnome_vfs_drive_get_display_name (drive); file->file_name = build_file_name (name, ".drive"); g_free (name); file->drive = gnome_vfs_drive_ref (drive); computer_file_add (dir, file); G_UNLOCK (root_dir); } static void drive_disconnected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive, ComputerDir *dir) { ComputerFile *file; G_LOCK (root_dir); file = get_drive_file (dir, drive); if (file != NULL) { computer_file_remove (dir, file); } G_UNLOCK (root_dir); } static void fill_root (ComputerDir *dir) { GnomeVFSVolumeMonitor *monitor; GnomeVFSVolume *volume; GnomeVFSDrive *drive; GList *volumes, *drives, *l; ComputerFile *file; char *name; monitor = gnome_vfs_get_volume_monitor (); #if 0 /* Don't want home in computer:// */ file = computer_file_new (COMPUTER_HOME_LINK); file->file_name = g_strdup ("Home.desktop"); computer_file_add (dir, file); #endif file = computer_file_new (COMPUTER_ROOT_LINK); file->file_name = g_strdup ("Filesystem.desktop"); computer_file_add (dir, file); file = computer_file_new (COMPUTER_NETWORK_LINK); file->file_name = g_strdup ("Network.desktop"); computer_file_add (dir, file); volumes = gnome_vfs_volume_monitor_get_mounted_volumes (monitor); drives = gnome_vfs_volume_monitor_get_connected_drives (monitor); for (l = drives; l != NULL; l = l->next) { drive = l->data; file = computer_file_new (COMPUTER_DRIVE); name = gnome_vfs_drive_get_display_name (drive); file->file_name = build_file_name (name, ".drive"); g_free (name); file->drive = gnome_vfs_drive_ref (drive); computer_file_add (dir, file); } for (l = volumes; l != NULL; l = l->next) { volume = l->data; if (gnome_vfs_volume_is_user_visible (volume)) { drive = gnome_vfs_volume_get_drive (volume); if (drive == NULL) { file = computer_file_new (COMPUTER_VOLUME); name = gnome_vfs_volume_get_display_name (volume); file->file_name = build_file_name (name, ".volume"); g_free (name); file->volume = gnome_vfs_volume_ref (volume); computer_file_add (dir, file); } gnome_vfs_drive_unref (drive); } } g_list_foreach (drives, (GFunc) gnome_vfs_drive_unref, NULL); g_list_foreach (volumes, (GFunc) gnome_vfs_volume_unref, NULL); g_list_free (drives); g_list_free (volumes); g_signal_connect (monitor, "volume_mounted", G_CALLBACK (volume_mounted), dir); g_signal_connect (monitor, "volume_unmounted", G_CALLBACK (volume_unmounted), dir); g_signal_connect (monitor, "drive_connected", G_CALLBACK (drive_connected), dir); g_signal_connect (monitor, "drive_disconnected", G_CALLBACK (drive_disconnected), dir); } static ComputerDir * get_root (void) { G_LOCK (root_dir); if (root_dir == NULL) { root_dir = g_new0 (ComputerDir, 1); fill_root (root_dir); } G_UNLOCK (root_dir); return root_dir; } typedef struct { char *data; int len; int pos; } FileHandle; static FileHandle * file_handle_new (char *data) { FileHandle *result; result = g_new (FileHandle, 1); result->data = data; result->len = strlen (data); result->pos = 0; return result; } static void file_handle_destroy (FileHandle *handle) { g_free (handle->data); g_free (handle); } static char * get_data_for_volume (GnomeVFSVolume *volume) { char *uri; char *name; char *icon; char *data; uri = gnome_vfs_volume_get_activation_uri (volume); name = gnome_vfs_volume_get_display_name (volume); icon = gnome_vfs_volume_get_icon (volume); data = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=FSDevice\n" "Icon=%s\n" "URL=%s\n" "X-Gnome-Volume=%ld\n", name, icon, uri, gnome_vfs_volume_get_id (volume)); g_free (uri); g_free (name); g_free (icon); return data; } static char * get_data_for_drive (GnomeVFSDrive *drive) { char *uri; char *name; char *icon; char *data; char *tmp1, *tmp2; GList *volume_list; volume_list = gnome_vfs_drive_get_mounted_volumes (drive); if (volume_list != NULL) { GnomeVFSVolume *volume; volume = GNOME_VFS_VOLUME (volume_list->data); uri = gnome_vfs_volume_get_activation_uri (volume); tmp1 = gnome_vfs_drive_get_display_name (drive); tmp2 = gnome_vfs_volume_get_display_name (volume); if (strcmp (tmp1, tmp2) != 0) { name = g_strconcat (tmp1, ": ", tmp2, NULL); } else { name = g_strdup (tmp1); } g_free (tmp1); g_free (tmp2); icon = gnome_vfs_volume_get_icon (volume); gnome_vfs_volume_unref (volume); } else { uri = gnome_vfs_drive_get_activation_uri (drive); name = gnome_vfs_drive_get_display_name (drive); icon = gnome_vfs_drive_get_icon (drive); } data = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=FSDevice\n" "Icon=%s\n" "URL=%s\n" "X-Gnome-Drive=%ld\n", name, icon, (uri != NULL) ? uri : "", gnome_vfs_drive_get_id (drive)); g_free (uri); g_free (name); g_free (icon); return data; } static char * get_data_for_network (void) { char *data; data = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=Link\n" "Icon=gnome-fs-network\n" "URL=network://\n", _("Network")); return data; } static char * get_data_for_home (void) { char *data; char *uri; uri = gnome_vfs_get_uri_from_local_path (g_get_home_dir ()); data = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=Link\n" "Icon=gnome-fs-home\n" "URL=%s\n", _("Home"), uri); g_free (uri); return data; } static char * get_data_for_root (void) { char *data; data = g_strdup_printf ("[Desktop Entry]\n" "Encoding=UTF-8\n" "Name=%s\n" "Type=Link\n" "Icon=gnome-dev-harddisk\n" "URL=file:///\n", _("Filesystem")); return data; } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { FileHandle *file_handle; ComputerFile *file; ComputerDir *dir; char *data; char *name; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); if (mode & GNOME_VFS_OPEN_WRITE) { return GNOME_VFS_ERROR_NOT_PERMITTED; } if (strcmp (uri->text, "/") == 0) { return GNOME_VFS_ERROR_NOT_PERMITTED; } dir = get_root (); G_LOCK (root_dir); name = gnome_vfs_uri_extract_short_name (uri); file = get_file (dir, name); g_free (name); if (file == NULL) { G_UNLOCK (root_dir); return GNOME_VFS_ERROR_NOT_FOUND; } data = NULL; switch (file->type) { case COMPUTER_HOME_LINK: data = get_data_for_home (); break; case COMPUTER_ROOT_LINK: data = get_data_for_root (); break; case COMPUTER_NETWORK_LINK: data = get_data_for_network (); break; case COMPUTER_DRIVE: data = get_data_for_drive (file->drive); break; case COMPUTER_VOLUME: data = get_data_for_volume (file->volume); break; } G_UNLOCK (root_dir); file_handle = file_handle_new (data); *method_handle = (GnomeVFSMethodHandle *) file_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *file_handle; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; file_handle_destroy (file_handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *file_handle; int read_len; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; *bytes_read = 0; if (file_handle->pos >= file_handle->len) { return GNOME_VFS_ERROR_EOF; } read_len = MIN (num_bytes, file_handle->len - file_handle->pos); memcpy (buffer, file_handle->data + file_handle->pos, read_len); *bytes_read = read_len; file_handle->pos += read_len; return GNOME_VFS_OK; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; switch (whence) { case GNOME_VFS_SEEK_START: file_handle->pos = offset; break; case GNOME_VFS_SEEK_CURRENT: file_handle->pos += offset; break; case GNOME_VFS_SEEK_END: file_handle->pos = file_handle->len + offset; break; } if (file_handle->pos < 0) { file_handle->pos = 0; } if (file_handle->pos > file_handle->len) { file_handle->pos = file_handle->len; } return GNOME_VFS_OK; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; *offset_return = file_handle->pos; return GNOME_VFS_OK; } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_truncate (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize where, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } typedef struct { GnomeVFSFileInfoOptions options; GList *entries; } DirectoryHandle; static DirectoryHandle * directory_handle_new (GnomeVFSFileInfoOptions options) { DirectoryHandle *result; result = g_new (DirectoryHandle, 1); result->options = options; result->entries = NULL; return result; } static void directory_handle_destroy (DirectoryHandle *dir_handle) { g_list_foreach (dir_handle->entries, (GFunc)g_free, NULL); g_list_free (dir_handle->entries); g_free (dir_handle); } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { DirectoryHandle *dir_handle; GList *l; ComputerFile *file; ComputerDir *dir; dir_handle = directory_handle_new (options); dir = get_root (); G_LOCK (root_dir); for (l = dir->files; l != NULL; l = l->next) { file = l->data; dir_handle->entries = g_list_prepend (dir_handle->entries, g_strdup (file->file_name)); } G_UNLOCK (root_dir); *method_handle = (GnomeVFSMethodHandle *) dir_handle; return GNOME_VFS_OK; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { DirectoryHandle *dir_handle; dir_handle = (DirectoryHandle *) method_handle; directory_handle_destroy (dir_handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { DirectoryHandle *handle; GList *entry; handle = (DirectoryHandle *) method_handle; if (handle->entries == NULL) { return GNOME_VFS_ERROR_EOF; } entry = handle->entries; handle->entries = g_list_remove_link (handle->entries, entry); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; file_info->name = g_strdup (entry->data); g_free (entry->data); g_list_free_1 (entry); file_info->mime_type = g_strdup ("application/x-desktop"); file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; if (strcmp (uri->text, "/") == 0) { file_info->name = g_strdup ("/"); file_info->mime_type = g_strdup ("x-directory/normal"); file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; } else { file_info->name = gnome_vfs_uri_extract_short_name (uri); file_info->mime_type = g_strdup ("application/x-desktop"); file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; } file_info->permissions = GNOME_VFS_PERM_USER_READ | GNOME_VFS_PERM_OTHER_READ | GNOME_VFS_PERM_GROUP_READ; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS; return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *file_handle; file_handle = (FileHandle *) method_handle; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; file_info->mime_type = g_strdup ("application/x-desktop"); file_info->size = file_handle->len; file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_SIZE | GNOME_VFS_FILE_INFO_FIELDS_TYPE; return GNOME_VFS_OK; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return TRUE; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_find_directory (GnomeVFSMethod *method, GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_create_symbolic_link (GnomeVFSMethod *method, GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } /* When checking whether two locations are on the same file system, we are doing this to determine whether we can recursively move or do other sorts of transfers. When a symbolic link is the "source", its location is the location of the link file, because we want to know about transferring the link, whereas for symbolic links that are "targets", we use the location of the object being pointed to, because that is where we will be moving/copying to. */ static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, gboolean *same_fs_return, GnomeVFSContext *context) { return TRUE; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_PERMITTED; } static GnomeVFSResult do_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { ComputerDir *dir; ComputerMonitor *monitor; char *name; if (strcmp (uri->text, "/") == 0) { dir = get_root (); monitor = g_new0 (ComputerMonitor, 1); monitor->type = GNOME_VFS_MONITOR_DIRECTORY; G_LOCK (root_dir); dir->dir_monitors = g_list_prepend (dir->dir_monitors, monitor); G_UNLOCK (root_dir); } else { if (monitor_type != GNOME_VFS_MONITOR_FILE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } dir = get_root (); monitor = g_new0 (ComputerMonitor, 1); monitor->type = GNOME_VFS_MONITOR_FILE; G_LOCK (root_dir); name = gnome_vfs_uri_extract_short_name (uri); monitor->file = get_file (dir, name); g_free (name); if (monitor->file != NULL) { monitor->file->file_monitors = g_list_prepend (monitor->file->file_monitors, monitor); } G_UNLOCK (root_dir); } *method_handle_return = (GnomeVFSMethodHandle *)monitor; return GNOME_VFS_OK; } static GnomeVFSResult do_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { ComputerDir *dir; ComputerMonitor *monitor; ComputerFile *file; dir = get_root (); G_LOCK (root_dir); monitor = (ComputerMonitor *) method_handle; if (monitor->type == GNOME_VFS_MONITOR_DIRECTORY) { dir->dir_monitors = g_list_remove (dir->dir_monitors, monitor); } else { file = monitor->file; if (file != NULL) { file->file_monitors = g_list_remove (file->file_monitors, monitor); } } G_UNLOCK (root_dir); g_free (monitor); return GNOME_VFS_OK; } static GnomeVFSResult do_file_control (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, const char *operation, gpointer operation_data, GnomeVFSContext *context) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, do_truncate, do_find_directory, do_create_symbolic_link, do_monitor_add, do_monitor_cancel, do_file_control }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { } gnome-vfs-2.24.4/modules/default-modules.conf0000644000175000001440000000054611334251016016033 00000000000000# # Module configuration file for the GNOME Virtual File System. # # Syntax: # # ... : # bzip2: bzip2 computer: computer dns-sd: dns-sd file: file test: vfs-test ftp: ftp network: network nntp: nntp gzip ugzip: gzip http: http dav: http davs: http #efs: vefs #nfs: nfs sftp: sftp ssh: sftp tar: tar gnome-vfs-2.24.4/modules/inotify-kernel.c0000644000175000001440000003736211334251016015203 00000000000000/* Copyright (C) 2005 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors:. John McCutchan */ #include "config.h" #include #include #include #include #include #include #include "inotify-kernel.h" #include /* Timings for pairing MOVED_TO / MOVED_FROM events */ #define PROCESS_EVENTS_TIME 1000 /* milliseconds (1 hz) */ #define DEFAULT_HOLD_UNTIL_TIME 0 /* 0 millisecond */ #define MOVE_HOLD_UNTIL_TIME 0 /* 0 milliseconds */ static int inotify_instance_fd = -1; static GQueue *events_to_process = NULL; static GQueue *event_queue = NULL; static GHashTable * cookie_hash = NULL; static GIOChannel *inotify_read_ioc; static GPollFD ik_poll_fd; static gboolean ik_poll_fd_enabled = TRUE; static void (*user_cb)(ik_event_t *event); static gboolean ik_read_callback (gpointer user_data); static gboolean ik_process_eq_callback (gpointer user_data); static guint32 ik_move_matches = 0; static guint32 ik_move_misses = 0; static gboolean process_eq_running = FALSE; /* We use the lock from inotify-helper.c * * There are two places that we take this lock * * 1) In ik_read_callback * * 2) ik_process_eq_callback. * * * The rest of locking is taken care of in inotify-helper.c */ G_LOCK_EXTERN (inotify_lock); typedef struct ik_event_internal { ik_event_t *event; gboolean seen; gboolean sent; GTimeVal hold_until; struct ik_event_internal *pair; } ik_event_internal_t; /* In order to perform non-sleeping inotify event chunking we need * a custom GSource */ static gboolean ik_source_prepare (GSource *source, gint *timeout) { return FALSE; } static gboolean ik_source_timeout (gpointer data) { GSource *source = (GSource *)data; /* Re-active the PollFD */ g_source_add_poll (source, &ik_poll_fd); g_source_unref (source); ik_poll_fd_enabled = TRUE; return FALSE; } #define MAX_PENDING_COUNT 2 #define PENDING_THRESHOLD(qsize) ((qsize) >> 1) #define PENDING_MARGINAL_COST(p) ((unsigned int)(1 << (p))) #define MAX_QUEUED_EVENTS 2048 #define AVERAGE_EVENT_SIZE sizeof (struct inotify_event) + 16 #define TIMEOUT_MILLISECONDS 10 static gboolean ik_source_check (GSource *source) { static int prev_pending = 0, pending_count = 0; /* We already disabled the PollFD or * nothing to be read from inotify */ if (!ik_poll_fd_enabled || !(ik_poll_fd.revents & G_IO_IN)) { return FALSE; } if (pending_count < MAX_PENDING_COUNT) { unsigned int pending; if (ioctl (inotify_instance_fd, FIONREAD, &pending) == -1) goto do_read; pending /= AVERAGE_EVENT_SIZE; /* Don't wait if the number of pending events is too close * to the maximum queue size. */ if (pending > PENDING_THRESHOLD (MAX_QUEUED_EVENTS)) goto do_read; /* With each successive iteration, the minimum rate for * further sleep doubles. */ if (pending-prev_pending < PENDING_MARGINAL_COST(pending_count)) goto do_read; prev_pending = pending; pending_count++; /* We are going to wait to read the events: */ /* Remove the PollFD from the source */ g_source_remove_poll (source, &ik_poll_fd); /* To avoid threading issues we need to flag that we've done that */ ik_poll_fd_enabled = FALSE; /* Set a timeout to re-add the PollFD to the source */ g_source_ref (source); g_timeout_add (TIMEOUT_MILLISECONDS, ik_source_timeout, source); return FALSE; } do_read: /* We are ready to read events from inotify */ prev_pending = 0; pending_count = 0; return TRUE; } static gboolean ik_source_dispatch (GSource *source, GSourceFunc callback, gpointer user_data) { if (callback) { return callback(user_data); } return TRUE; } GSourceFuncs ik_source_funcs = { ik_source_prepare, ik_source_check, ik_source_dispatch, NULL }; gboolean ik_startup (void (*cb)(ik_event_t *event)) { static gboolean initialized = FALSE; GSource *source; user_cb = cb; /* Ignore multi-calls */ if (initialized) { return inotify_instance_fd >= 0; } initialized = TRUE; inotify_instance_fd = inotify_init (); if (inotify_instance_fd < 0) { return FALSE; } inotify_read_ioc = g_io_channel_unix_new(inotify_instance_fd); ik_poll_fd.fd = inotify_instance_fd; ik_poll_fd.events = G_IO_IN | G_IO_HUP | G_IO_ERR; g_io_channel_set_encoding(inotify_read_ioc, NULL, NULL); g_io_channel_set_flags(inotify_read_ioc, G_IO_FLAG_NONBLOCK, NULL); source = g_source_new (&ik_source_funcs, sizeof(GSource)); g_source_add_poll (source, &ik_poll_fd); g_source_set_callback(source, ik_read_callback, NULL, NULL); g_source_attach(source, NULL); g_source_unref (source); cookie_hash = g_hash_table_new(g_direct_hash, g_direct_equal); event_queue = g_queue_new (); events_to_process = g_queue_new (); return TRUE; } static ik_event_internal_t *ik_event_internal_new (ik_event_t *event) { ik_event_internal_t *internal_event = g_new0(ik_event_internal_t, 1); GTimeVal tv; g_assert (event); g_get_current_time (&tv); g_time_val_add (&tv, DEFAULT_HOLD_UNTIL_TIME); internal_event->event = event; internal_event->hold_until = tv; return internal_event; } static ik_event_t *ik_event_new (char *buffer) { struct inotify_event *kevent = (struct inotify_event *)buffer; g_assert (buffer); ik_event_t *event = g_new0(ik_event_t,1); event->wd = kevent->wd; event->mask = kevent->mask; event->cookie = kevent->cookie; event->len = kevent->len; if (event->len) event->name = g_strdup(kevent->name); else event->name = g_strdup(""); return event; } ik_event_t *ik_event_new_dummy (const char *name, gint32 wd, guint32 mask) { ik_event_t *event = g_new0(ik_event_t,1); event->wd = wd; event->mask = mask; event->cookie = 0; if (name) event->name = g_strdup(name); else event->name = g_strdup(""); event->len = strlen (event->name); return event; } void ik_event_free (ik_event_t *event) { if (event->pair) ik_event_free (event->pair); g_free(event->name); g_free(event); } gint32 ik_watch (const char *path, guint32 mask, int *err) { gint32 wd = -1; g_assert (path != NULL); g_assert (inotify_instance_fd >= 0); wd = inotify_add_watch (inotify_instance_fd, path, mask); if (wd < 0) { int e = errno; // FIXME: debug msg failed to add watch if (err) *err = e; return wd; } g_assert (wd >= 0); return wd; } int ik_ignore(const char *path, gint32 wd) { g_assert (wd >= 0); g_assert (inotify_instance_fd >= 0); if (inotify_rm_watch (inotify_instance_fd, wd) < 0) { //int e = errno; // failed to rm watch return -1; } return 0; } void ik_move_stats (guint32 *matches, guint32 *misses) { if (matches) *matches = ik_move_matches; if (misses) *misses = ik_move_misses; } const char *ik_mask_to_string (guint32 mask) { gboolean is_dir = mask & IN_ISDIR; mask &= ~IN_ISDIR; if (is_dir) { switch (mask) { case IN_ACCESS: return "ACCESS (dir)"; break; case IN_MODIFY: return "MODIFY (dir)"; break; case IN_ATTRIB: return "ATTRIB (dir)"; break; case IN_CLOSE_WRITE: return "CLOSE_WRITE (dir)"; break; case IN_CLOSE_NOWRITE: return "CLOSE_NOWRITE (dir)"; break; case IN_OPEN: return "OPEN (dir)"; break; case IN_MOVED_FROM: return "MOVED_FROM (dir)"; break; case IN_MOVED_TO: return "MOVED_TO (dir)"; break; case IN_DELETE: return "DELETE (dir)"; break; case IN_CREATE: return "CREATE (dir)"; break; case IN_DELETE_SELF: return "DELETE_SELF (dir)"; break; case IN_UNMOUNT: return "UNMOUNT (dir)"; break; case IN_Q_OVERFLOW: return "Q_OVERFLOW (dir)"; break; case IN_IGNORED: return "IGNORED (dir)"; break; default: return "UNKNOWN_EVENT (dir)"; break; } } else { switch (mask) { case IN_ACCESS: return "ACCESS"; break; case IN_MODIFY: return "MODIFY"; break; case IN_ATTRIB: return "ATTRIB"; break; case IN_CLOSE_WRITE: return "CLOSE_WRITE"; break; case IN_CLOSE_NOWRITE: return "CLOSE_NOWRITE"; break; case IN_OPEN: return "OPEN"; break; case IN_MOVED_FROM: return "MOVED_FROM"; break; case IN_MOVED_TO: return "MOVED_TO"; break; case IN_DELETE: return "DELETE"; break; case IN_CREATE: return "CREATE"; break; case IN_DELETE_SELF: return "DELETE_SELF"; break; case IN_UNMOUNT: return "UNMOUNT"; break; case IN_Q_OVERFLOW: return "Q_OVERFLOW"; break; case IN_IGNORED: return "IGNORED"; break; default: return "UNKNOWN_EVENT"; break; } } } static void ik_read_events (gsize *buffer_size_out, gchar **buffer_out) { static gchar *buffer = NULL; static gsize buffer_size; /* Initialize the buffer on our first call */ if (buffer == NULL) { buffer_size = AVERAGE_EVENT_SIZE; buffer_size *= MAX_QUEUED_EVENTS; buffer = g_malloc (buffer_size); if (!buffer) { *buffer_size_out = 0; *buffer_out = NULL; return; } } *buffer_size_out = 0; *buffer_out = NULL; memset(buffer, 0, buffer_size); if (g_io_channel_read_chars (inotify_read_ioc, (char *)buffer, buffer_size, buffer_size_out, NULL) != G_IO_STATUS_NORMAL) { // error reading } *buffer_out = buffer; } static gboolean ik_read_callback(gpointer user_data) { gchar *buffer; gsize buffer_size, buffer_i, events; G_LOCK(inotify_lock); ik_read_events (&buffer_size, &buffer); buffer_i = 0; events = 0; while (buffer_i < buffer_size) { struct inotify_event *event; gsize event_size; event = (struct inotify_event *)&buffer[buffer_i]; event_size = sizeof(struct inotify_event) + event->len; g_queue_push_tail (events_to_process, ik_event_internal_new (ik_event_new (&buffer[buffer_i]))); buffer_i += event_size; events++; } /* If the event process callback is off, turn it back on */ if (!process_eq_running && events) { process_eq_running = TRUE; g_timeout_add (PROCESS_EVENTS_TIME, ik_process_eq_callback, NULL); } G_UNLOCK(inotify_lock); return TRUE; } static gboolean g_timeval_lt(GTimeVal *val1, GTimeVal *val2) { if (val1->tv_sec < val2->tv_sec) return TRUE; if (val1->tv_sec > val2->tv_sec) return FALSE; /* val1->tv_sec == val2->tv_sec */ if (val1->tv_usec < val2->tv_usec) return TRUE; return FALSE; } static gboolean g_timeval_eq(GTimeVal *val1, GTimeVal *val2) { return (val1->tv_sec == val2->tv_sec) && (val1->tv_usec == val2->tv_usec); } static void ik_pair_events (ik_event_internal_t *event1, ik_event_internal_t *event2) { g_assert (event1 && event2); /* We should only be pairing events that have the same cookie */ g_assert (event1->event->cookie == event2->event->cookie); /* We shouldn't pair an event that already is paired */ g_assert (event1->pair == NULL && event2->pair == NULL); /* Pair the internal structures and the ik_event_t structures */ event1->pair = event2; event1->event->pair = event2->event; if (g_timeval_lt (&event1->hold_until, &event2->hold_until)) event1->hold_until = event2->hold_until; event2->hold_until = event1->hold_until; } static void ik_event_add_microseconds (ik_event_internal_t *event, glong ms) { g_assert (event); g_time_val_add (&event->hold_until, ms); } static gboolean ik_event_ready (ik_event_internal_t *event) { GTimeVal tv; g_assert (event); g_get_current_time (&tv); /* An event is ready if, * * it has no cookie -- there is nothing to be gained by holding it * or, it is already paired -- we don't need to hold it anymore * or, we have held it long enough */ return event->event->cookie == 0 || event->pair != NULL || g_timeval_lt(&event->hold_until, &tv) || g_timeval_eq(&event->hold_until, &tv); } static void ik_pair_moves (gpointer data, gpointer user_data) { ik_event_internal_t *event = (ik_event_internal_t *)data; if (event->seen == TRUE || event->sent == TRUE) return; if (event->event->cookie != 0) { /* When we get a MOVED_FROM event we delay sending the event by * MOVE_HOLD_UNTIL_TIME microseconds. We need to do this because a * MOVED_TO pair _might_ be coming in the near future */ if (event->event->mask & IN_MOVED_FROM) { g_hash_table_insert (cookie_hash, GINT_TO_POINTER(event->event->cookie), event); // because we don't deliver move events there is no point in waiting for the match right now. ik_event_add_microseconds (event, MOVE_HOLD_UNTIL_TIME); } else if (event->event->mask & IN_MOVED_TO) { /* We need to check if we are waiting for this MOVED_TO events cookie to pair it with * a MOVED_FROM */ ik_event_internal_t *match = NULL; match = g_hash_table_lookup (cookie_hash, GINT_TO_POINTER(event->event->cookie)); if (match) { g_hash_table_remove (cookie_hash, GINT_TO_POINTER(event->event->cookie)); ik_pair_events (match, event); } } } event->seen = TRUE; } static void ik_process_events () { g_queue_foreach (events_to_process, ik_pair_moves, NULL); while (!g_queue_is_empty (events_to_process)) { ik_event_internal_t *event = g_queue_peek_head (events_to_process); /* This must have been sent as part of a MOVED_TO/MOVED_FROM */ if (event->sent) { /* Pop event */ g_queue_pop_head (events_to_process); /* Free the internal event structure */ g_free (event); continue; } /* The event isn't ready yet */ if (!ik_event_ready (event)) { break; } /* Pop it */ event = g_queue_pop_head (events_to_process); /* Check if this is a MOVED_FROM that is also sitting in the cookie_hash */ if (event->event->cookie && event->pair == NULL && g_hash_table_lookup (cookie_hash, GINT_TO_POINTER(event->event->cookie))) { g_hash_table_remove (cookie_hash, GINT_TO_POINTER(event->event->cookie)); } if (event->pair) { /* We send out paired MOVED_FROM/MOVED_TO events in the same event buffer */ //g_assert (event->event->mask == IN_MOVED_FROM && event->pair->event->mask == IN_MOVED_TO); /* Copy the paired data */ event->pair->sent = TRUE; event->sent = TRUE; ik_move_matches++; } else if (event->event->cookie) { /* If we couldn't pair a MOVED_FROM and MOVED_TO together, we change * the event masks */ /* Changeing MOVED_FROM to DELETE and MOVED_TO to create lets us make * the gaurantee that you will never see a non-matched MOVE event */ if (event->event->mask & IN_MOVED_FROM) { event->event->mask = IN_DELETE|(event->event->mask & IN_ISDIR); ik_move_misses++; // not super accurate, if we aren't watching the destination it still counts as a miss } if (event->event->mask & IN_MOVED_TO) event->event->mask = IN_CREATE|(event->event->mask & IN_ISDIR); } /* Push the ik_event_t onto the event queue */ g_queue_push_tail (event_queue, event->event); /* Free the internal event structure */ g_free (event); } } gboolean ik_process_eq_callback (gpointer user_data) { /* Try and move as many events to the event queue */ G_LOCK(inotify_lock); ik_process_events (); while (!g_queue_is_empty (event_queue)) { ik_event_t *event = g_queue_pop_head (event_queue); user_cb (event); } if (g_queue_get_length (events_to_process) == 0) { process_eq_running = FALSE; G_UNLOCK(inotify_lock); return FALSE; } else { G_UNLOCK(inotify_lock); return TRUE; } } gnome-vfs-2.24.4/modules/inotify-kernel.h0000644000175000001440000000274411334251016015204 00000000000000/* Copyright (C) 2005 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors:. John McCutchan */ #ifndef __INOTIFY_KERNEL_H #define __INOTIFY_KERNEL_H typedef struct ik_event_s { gint32 wd; guint32 mask; guint32 cookie; guint32 len; char * name; struct ik_event_s *pair; } ik_event_t; gboolean ik_startup (void (*cb)(ik_event_t *event)); ik_event_t *ik_event_new_dummy (const char *name, gint32 wd, guint32 mask); void ik_event_free (ik_event_t *event); gint32 ik_watch(const char *path, guint32 mask, int *err); int ik_ignore(const char *path, gint32 wd); /* The miss count will probably be enflated */ void ik_move_stats (guint32 *matches, guint32 *misses); const char *ik_mask_to_string (guint32 mask); #endif gnome-vfs-2.24.4/modules/inotify-sub.h0000644000175000001440000000251111334251016014505 00000000000000/* inotify-helper.h - GNOME VFS Monitor using inotify Copyright (C) 2006 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: John McCutchan */ #ifndef __INOTIFY_SUB_H #define __INOTIFY_SUB_H typedef struct { GnomeVFSMethodMonitorCancelFunc cancel_func; /* Must be first */ GnomeVFSURI *uri; GnomeVFSMonitorType type; char *pathname; char *dirname; char *filename; guint32 extra_flags; gboolean cancelled; } ih_sub_t; ih_sub_t *ih_sub_new (GnomeVFSURI *uri, GnomeVFSMonitorType); void ih_sub_free (ih_sub_t *sub); #endif /* __INOTIFY_SUB_H */ gnome-vfs-2.24.4/modules/nntp-method.h0000644000175000001440000000421211334251016014472 00000000000000/* nntp-method.h - VFS modules for NNTP Copyright (C) 2001 Andy Hertzfeld The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. based on Ian McKellar's (yakk@yakk.net) ftp method for gnome-vfs presents a high level, file-oriented view of a newsgroup, integrating file fragments and organizing them in folders Author: Andy Hertzfeld */ #ifndef NNTP_METHOD_H #define NNTP_METHOD_H #include typedef struct { int fragment_number; char* fragment_id; int fragment_size; int bytes_read; } nntp_fragment; typedef struct { char* file_name; char* folder_name; char* file_type; int file_size; gboolean is_directory; time_t mod_date; int total_parts; GList *part_list; } nntp_file; typedef struct { GnomeVFSMethodHandle method_handle; GnomeVFSInetConnection *inet_connection; GnomeVFSSocketBuffer *socketbuf; GnomeVFSURI *uri; GString *response_buffer; gchar *response_message; gint response_code; enum { NNTP_NOTHING, NNTP_READ, NNTP_WRITE, NNTP_READDIR } operation; gchar *server_type; /* the response from TYPE */ gboolean anonymous; GList *next_file; nntp_file *current_file; GList *current_fragment; gpointer buffer; int buffer_size; int amount_in_buffer; int buffer_offset; gboolean request_in_progress; gboolean eof_flag; gboolean uu_decode_mode; gboolean base_64_decode_mode; } NNTPConnection; #endif /* NNTP_METHOD_H */ gnome-vfs-2.24.4/modules/smb-module.conf0000644000175000001440000000023111334251016014774 00000000000000# # Module configuration file for the GNOME Virtual File System. # # Syntax: # # ... : # smb: [daemon] libsmb gnome-vfs-2.24.4/modules/inotify-helper.h0000644000175000001440000000226611334251016015202 00000000000000/* inotify-helper.h - GNOME VFS Monitor using inotify Copyright (C) 2005 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: John McCutchan */ #ifndef __INOTIFY_HELPER_H #define __INOTIFY_HELPER_H #include #include "inotify-sub.h" gboolean ih_startup (void); gboolean ih_sub_add (ih_sub_t *sub); gboolean ih_sub_cancel (ih_sub_t *sub); #endif /* __INOTIFY_HELPER_H */ gnome-vfs-2.24.4/modules/cdda-method.c0000644000175000001440000006536411334251016014420 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */ /* cdda-method.c Copyright (C) 2000, Eazel Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Gene Z. Ragan */ #include #include "cdda-cddb.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef struct { GnomeVFSURI *uri; GnomeVFSFileInfo *file_info; cdrom_drive *drive; int access_count; unsigned int cddb_discid; gboolean use_cddb; DiscData disc_data; } CDDAContext; typedef struct { GnomeVFSURI *uri; gboolean inited; gboolean wrote_header; cdrom_paranoia *paranoia; long cursor; long first_sector, last_sector; } ReadHandle; CDDAContext *global_context = NULL; /* This is here to work around a broken header file. * cdda_interface.h has a statically defined array of * chars that is unused. This will break our build * due to our strict error checking. */ char **broken_header_fix = strerror_tr; static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context); static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri); static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context); static int get_data_size (cdrom_drive *drive, int track); static gboolean is_file_is_on_disc (CDDAContext *context, const GnomeVFSURI *uri); static int write_wav_header (gpointer buffer, long bytes); static const char PROXY_HOST_KEY[] = "/system/http_proxy/host"; static const char PROXY_PORT_KEY[] = "/system/http_proxy/port"; static const char USE_PROXY_KEY[] = "/system/http_proxy/use_http_proxy"; static CDDAContext * cdda_context_new (cdrom_drive *drive, GnomeVFSURI *uri) { CDDAContext *context; GConfClient *gconf_client; char *proxy_host; gboolean use_proxy; ProxyServer proxy_server; CDDBServer cddb_server; context = g_new0 (CDDAContext, 1); context->drive = drive; context->file_info = gnome_vfs_file_info_new (); context->uri = gnome_vfs_uri_ref (uri); context->access_count = 0; context->cddb_discid = CDDBDiscid (drive); /* Look up CDDB info */ gconf_client = gconf_client_get_default (); use_proxy = gconf_client_get_bool (gconf_client, USE_PROXY_KEY, NULL); if (use_proxy) { proxy_host = gconf_client_get_string (gconf_client, PROXY_HOST_KEY, NULL); proxy_server.port = gconf_client_get_int (gconf_client, PROXY_PORT_KEY, NULL); if (proxy_host != NULL) { strcpy (proxy_server.name, proxy_host); g_free (proxy_host); } else { use_proxy = FALSE; } if (proxy_server.port == 0) { proxy_server.port = 8080; } } strcpy (cddb_server.name, "freedb.freedb.org"); strcpy (cddb_server.cgi_prog, "~cddb/cddb.cgi"); cddb_server.port = 80; cddb_server.use_proxy = use_proxy; cddb_server.proxy = &proxy_server; context->use_cddb = CDDBLookupDisc (&cddb_server, drive, &context->disc_data); return context; } static void cdda_context_free (CDDAContext *context) { if (context == NULL) { return; } cdda_close (context->drive); gnome_vfs_file_info_unref (context->file_info); gnome_vfs_uri_unref (context->uri); g_free (context); context = NULL; } static void cdda_set_file_info_for_root (CDDAContext *context, GnomeVFSURI *uri) { g_assert (context); /* We don't know the io_block size */ context->file_info->io_block_size = 0; context->file_info->valid_fields -= GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE; context->file_info->name = gnome_vfs_uri_extract_short_path_name (uri); /*context->file_info->name = g_strdup (context->disc_data.data_title);*/ context->file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; context->file_info->mime_type = g_strdup ("x-directory/normal"); context->file_info->atime = time (NULL); context->file_info->ctime = time (NULL); context->file_info->mtime = time (NULL); context->file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_ATIME | GNOME_VFS_FILE_INFO_FIELDS_MTIME | GNOME_VFS_FILE_INFO_FIELDS_CTIME; }; static ReadHandle * read_handle_new (GnomeVFSURI *uri) { ReadHandle *result; result = g_new (ReadHandle, 1); result->uri = gnome_vfs_uri_ref (uri); result->inited = FALSE; result->wrote_header = FALSE; result->paranoia = NULL; result->cursor = 0; result->first_sector = 0; result->last_sector = 0; return result; } static void read_handle_destroy (ReadHandle *handle) { gnome_vfs_uri_unref (handle->uri); if (handle->paranoia == NULL) { paranoia_free (handle->paranoia); } g_free (handle); } static int get_track_index_from_uri (CDDAContext *context, GnomeVFSURI *uri) { char *base_name; int index; char *escaped_name; base_name = gnome_vfs_uri_extract_short_path_name (uri); escaped_name = gnome_vfs_unescape_string_for_display (base_name); g_free (base_name); /* Check and see if filename is in cddb data list */ for (index = 0; index < context->drive->tracks; index++) { if (strcmp (escaped_name, context->disc_data.data_track[index].track_name) == 0) { g_free (escaped_name); return index + 1; } } g_free (escaped_name); return -1; } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { GnomeVFSResult result; ReadHandle *read_handle; GnomeVFSFileInfoOptions options; char *base_name; char *dirname, *schemedir, *sep; GnomeVFSURI *dir_uri; result = GNOME_VFS_ERROR_GENERIC; *method_handle = NULL; /*g_message ("cdda do_open: %s", gnome_vfs_uri_get_path (uri));*/ /* Load in context for disc if we not yet done so. */ if (global_context == NULL) { base_name = gnome_vfs_uri_extract_short_path_name (uri); if (base_name[0] == GNOME_VFS_URI_PATH_CHR) { g_free (base_name); return result; } else { g_free (base_name); } dirname = gnome_vfs_uri_extract_dirname (uri); schemedir = g_strdup_printf ("cdda://%s", dirname); /* Remove trailing '/' if there is one */ sep = strrchr (schemedir, '/'); if (sep != NULL) { schemedir [strlen (schemedir) - 1] = '\0'; } dir_uri = gnome_vfs_uri_new (schemedir); options = 0; result = do_open_directory (method, method_handle, dir_uri, options, NULL); gnome_vfs_uri_unref (dir_uri); if (result != GNOME_VFS_OK) { /*g_message ("cdda do_open: Unable to load context");*/ return result; } } if (mode == GNOME_VFS_OPEN_READ) { /* Make sure file is present */ if (is_file_is_on_disc (global_context, uri)) { result = GNOME_VFS_OK; read_handle = read_handle_new (uri); /* Set up cdparanoia */ if (!read_handle->inited) { int track; int paranoia_mode; long offset, sec, off; track = get_track_index_from_uri (global_context, uri); if (track == -1) { return GNOME_VFS_ERROR_GENERIC; } if (!cdda_track_audiop (global_context->drive, track)) { /*g_message ("Error. Selected track is not an audio track.");*/ return GNOME_VFS_ERROR_GENERIC; } /* Calculate sector span and offset */ sec = cdda_track_firstsector (global_context->drive, track); off = cdda_track_lastsector (global_context->drive, track) - sec + 1; read_handle->first_sector = 0; read_handle->last_sector = off - 1; offset = cdda_track_firstsector (global_context->drive, track); read_handle->first_sector += offset; read_handle->last_sector += offset; read_handle->paranoia = paranoia_init (global_context->drive); /*paranoia_mode = PARANOIA_MODE_FULL^PARANOIA_MODE_NEVERSKIP;*/ paranoia_mode = PARANOIA_MODE_DISABLE; paranoia_modeset (read_handle->paranoia, paranoia_mode); cdda_verbose_set (global_context->drive, CDDA_MESSAGE_PRINTIT,CDDA_MESSAGE_FORGETIT); paranoia_seek (read_handle->paranoia, read_handle->cursor = read_handle->first_sector, SEEK_SET); read_handle->inited = TRUE; } *method_handle = (GnomeVFSMethodHandle *) read_handle; } } else if (mode == GNOME_VFS_OPEN_WRITE) { result = GNOME_VFS_ERROR_READ_ONLY; } else { result = GNOME_VFS_ERROR_INVALID_OPEN_MODE; } return result; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { ReadHandle *read_handle; /*g_message ("cdda do_close");*/ g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); read_handle = (ReadHandle *) method_handle; read_handle_destroy (read_handle); return GNOME_VFS_OK; } /* We have to pass in a callback to paranoia_read, even though we don't use it */ static void paranoia_callback (long inpos, int function) { } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { ReadHandle *read_handle; gint16 *readbuf; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); if (gnome_vfs_context_check_cancellation (context)) { return GNOME_VFS_ERROR_CANCELLED; } read_handle = (ReadHandle *) method_handle; if (read_handle == NULL) { return GNOME_VFS_ERROR_INTERNAL; } readbuf = NULL; if (!read_handle->wrote_header) { *bytes_read = write_wav_header (buffer, (read_handle->last_sector - read_handle->first_sector + 1) * CD_FRAMESIZE_RAW); read_handle->wrote_header = TRUE; return GNOME_VFS_OK; } if (read_handle->cursor <= read_handle->last_sector) { readbuf = paranoia_read (read_handle->paranoia, paranoia_callback); } else { return GNOME_VFS_ERROR_EOF; } if (readbuf == NULL) { *bytes_read = 0; return GNOME_VFS_ERROR_GENERIC; } read_handle->cursor++; memcpy (buffer, readbuf, CD_FRAMESIZE_RAW); *bytes_read = CD_FRAMESIZE_RAW; return GNOME_VFS_OK; } #if 0 static void display_toc (cdrom_drive *d) { long audiolen = 0; int i; printf ("\nTable of contents (audio tracks only):\n" "track length begin copy pre ch\n" "===========================================================\n"); for (i = 1; i <= d->tracks; i++) { if (cdda_track_audiop (d, i)) { char buffer[256]; long sec = cdda_track_firstsector (d, i); long off = cdda_track_lastsector (d, i) - sec + 1; sprintf(buffer, "%3d. %7ld [%02d:%02d.%02d] %7ld [%02d:%02d.%02d] %s %s %s", i, off,(int)(off/(60*75)),(int)((off/75)%60),(int)(off%75), sec,(int)(sec/(60*75)),(int)((sec/75)%60),(int)(sec%75), cdda_track_copyp (d,i)?" OK":" no", cdda_track_preemp (d,i)?" yes":" no", cdda_track_channels (d,i)==2?" 2":" 4"); printf ("%s\n", buffer); audiolen+=off; } } { char buffer[256]; sprintf (buffer, "TOTAL %7ld [%02d:%02d.%02d] (audio only)", audiolen, (int)(audiolen / (60 * 75)),(int)((audiolen / 75) % 60), (int)(audiolen % 75)); printf ("%s\n", buffer); } printf ("\n"); } #endif static cdrom_drive * open_cdda_device (GnomeVFSURI *uri) { const char *device_name; cdrom_drive *drive; device_name = gnome_vfs_uri_get_path (uri); drive = cdda_identify (device_name, FALSE, NULL); if (drive == NULL) { return NULL; } /* Turn off verbosity */ cdda_verbose_set (drive, CDDA_MESSAGE_PRINTIT, CDDA_MESSAGE_FORGETIT); /* Open drive */ switch (cdda_open (drive)) { case -2: case -3: case -4: case -5: g_message ("Unable to open disc. Is there an audio CD in the drive?"); return NULL; case -6: g_message ("CDDA method could not find a way to read audio from this drive."); return NULL; case 0: break; default: g_message ("Unable to open disc."); return NULL; } return drive; } static gboolean is_file_is_on_disc (CDDAContext *context, const GnomeVFSURI *uri) { int index; char *base_name; char *escaped_name; if (context == NULL) { return FALSE; } base_name = gnome_vfs_uri_extract_short_path_name (uri); escaped_name = gnome_vfs_unescape_string_for_display (base_name); g_free (base_name); for (index = 0; index < context->drive->tracks; index++) { if (strcmp (escaped_name, context->disc_data.data_track[index].track_name) == 0) { g_free (escaped_name); return TRUE; } } g_free (escaped_name); return FALSE; } static GnomeVFSResult get_file_info_for_basename (CDDAContext *context, const char *base_name) { int index; g_assert (context); if (!context->use_cddb) { return GNOME_VFS_ERROR_GENERIC; } /* Check and see if filename is in cddb data list */ for (index = 0; index < context->drive->tracks; index++) { if (strcmp (base_name, context->disc_data.data_track[index].track_name) == 0) { /* Populate file info structure */ context->file_info->io_block_size = CD_FRAMESIZE_RAW; context->file_info->name = g_strdup (base_name); context->file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; context->file_info->mime_type = g_strdup ("audio/x-wav"); context->file_info->atime = time (NULL); context->file_info->ctime = time (NULL); context->file_info->mtime = time (NULL); context->file_info->size = get_data_size (context->drive, index + 1); context->file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_SIZE | GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE | GNOME_VFS_FILE_INFO_FIELDS_ATIME | GNOME_VFS_FILE_INFO_FIELDS_MTIME | GNOME_VFS_FILE_INFO_FIELDS_CTIME; return GNOME_VFS_OK; } } return GNOME_VFS_ERROR_GENERIC; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { cdrom_drive *drive; char *base_name; gboolean use_base, use_cache; GnomeVFSResult result; char *escaped_name; /*g_message ("do_get_file_info: %s", gnome_vfs_uri_get_path (uri));*/ use_base = FALSE; use_cache = FALSE; result = GNOME_VFS_OK; /* Get basename */ base_name = gnome_vfs_uri_extract_short_path_name (uri); escaped_name = gnome_vfs_unescape_string_for_display (base_name); g_free (base_name); /* Extract path and attempt to open */ drive = open_cdda_device (uri); if (drive == NULL) { /* OK. We failed to open. Let's try the parent... */ gchar *dirname, *schemedir, *sep; GnomeVFSURI *dir_uri; dirname = gnome_vfs_uri_extract_dirname (uri); schemedir = g_strdup_printf ("cdda://%s", dirname); /* Remove trailing '/' if there is one */ sep = strrchr (schemedir, '/'); if (sep != NULL) { schemedir [strlen (schemedir) - 1] = '\0'; } dir_uri = gnome_vfs_uri_new (schemedir); drive = open_cdda_device (dir_uri); g_free (dirname); g_free (schemedir); gnome_vfs_uri_unref (dir_uri); if (drive == NULL) { g_free (escaped_name); return GNOME_VFS_ERROR_GENERIC; } use_base = TRUE; } /* Check and see if we already have opened and stashed this drive */ if (!use_base) { if (global_context != NULL) { #if defined(HAVE_CDDA_WITH_LIBCAM) if (strcmp (drive->dev->device_path, global_context->drive->dev->device_path) == 0) { #else if (strcmp (drive->cdda_device_name, global_context->drive->cdda_device_name) == 0) { #endif use_cache = TRUE; cdda_close (drive); gnome_vfs_file_info_copy (file_info, global_context->file_info); } else { /* We have a new drive. */ cdda_context_free (global_context); global_context = cdda_context_new (drive, uri); cdda_set_file_info_for_root (global_context, uri); gnome_vfs_file_info_copy (file_info, global_context->file_info); } } else { /* Create a new context */ global_context = cdda_context_new (drive, uri); cdda_set_file_info_for_root (global_context, uri); gnome_vfs_file_info_copy (file_info, global_context->file_info); } } else { cdda_context_free (global_context); global_context = cdda_context_new (drive, uri); result = get_file_info_for_basename (global_context, escaped_name); if (result == GNOME_VFS_OK) { gnome_vfs_file_info_copy (file_info, global_context->file_info); } else { cdda_context_free (global_context); global_context = NULL; } } g_free (escaped_name); return result; } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { cdrom_drive *drive; gboolean use_base, use_cache; char *base_name; char *escaped_name; g_print ("do_open_directory () in uri: %s\n", gnome_vfs_uri_get_path (uri)); use_base = FALSE; use_cache = FALSE; /* Get basename */ base_name = gnome_vfs_uri_extract_short_path_name (uri); escaped_name = gnome_vfs_unescape_string_for_display (base_name); g_free (base_name); /* Make sure we can open URI */ drive = open_cdda_device (uri); if (drive == NULL) { /* OK. We failed to open. Let's try the parent... */ gchar *dirname, *schemedir, *sep; GnomeVFSURI *dir_uri; dirname = gnome_vfs_uri_extract_dirname (uri); schemedir = g_strdup_printf ("cdda://%s", dirname); /* Remove trailing '/' if there is one */ sep = strrchr (schemedir, '/'); if (sep != NULL) { schemedir [strlen (schemedir) - 1] = '\0'; } dir_uri = gnome_vfs_uri_new (schemedir); drive = open_cdda_device (dir_uri); g_free (dirname); g_free (schemedir); gnome_vfs_uri_unref (dir_uri); if (drive == NULL) { g_free (escaped_name); return GNOME_VFS_ERROR_GENERIC; } use_base = TRUE; } if (!use_base) { /* Check for cache */ if (global_context != NULL) { #if defined(HAVE_CDDA_WITH_LIBCAM) if (strcmp (drive->dev->device_path, global_context->drive->dev->device_path) != 0) { #else if (strcmp (drive->cdda_device_name, global_context->drive->cdda_device_name) != 0) { #endif /* Clear old cache */ cdda_context_free (global_context); global_context = cdda_context_new (drive, uri); cdda_set_file_info_for_root (global_context, uri); } else { /* g_message ("Using cache"); */ cdda_close (drive); } } else { /* Allocate new context */ global_context = cdda_context_new (drive, uri); cdda_set_file_info_for_root (global_context, uri); } } else { /* This is a file. Blast cache.*/ /* g_message ("Use base: %s", escaped_name); */ cdda_context_free (global_context); global_context = NULL; *method_handle = NULL; cdda_close (drive); g_free (escaped_name); return GNOME_VFS_ERROR_GENERIC; } *method_handle = (GnomeVFSMethodHandle *) global_context; g_free (escaped_name); return GNOME_VFS_OK; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { CDDAContext *cdda_context = (CDDAContext *)method_handle; /*g_message ("cdda do_close_directory");*/ if (cdda_context == NULL) { /*g_message ("cdda do_close_directory: NULL cdda context");*/ return GNOME_VFS_ERROR_GENERIC; } cdda_context->access_count = 0; return GNOME_VFS_OK; } static int get_data_size (cdrom_drive *drive, int track) { int minutes, seconds, total_seconds, size; size = 0; if (cdda_track_audiop (drive, track)) { long sec = cdda_track_firstsector (drive, track); long off = cdda_track_lastsector (drive, track) - sec + 1; minutes = off / (60 * 75); seconds = (off / 75) % 60; total_seconds = (minutes * 60) + seconds; size = ((total_seconds * 44) * 2 * 2) * 1024; } /*g_message ("get_data_size: %d", size);*/ return size; } #if 0 static int get_data_size_from_uri (GnomeVFSURI *uri, CDDAContext *context) { int minutes, seconds, total_seconds, size, index; const char *base_name; size = -1; if (context == NULL) { return size; } base_name = gnome_vfs_uri_extract_short_path_name (uri); /* Check and see if filename is in cddb data list */ for (index = 0; index < context->drive->tracks; index++) { if (strcmp (base_name, context->disc_data.data_track[index].track_name) == 0) { if (cdda_track_audiop (context->drive, index+1)) { long sec = cdda_track_firstsector (context->drive, index+1); long off = cdda_track_lastsector (context->drive, index+1) - sec + 1; minutes = off / (60 * 75); seconds = (off / 75) % 60; total_seconds = (minutes * 60) + seconds; size = ((total_seconds * 44) * 2 * 2) * 1024; } g_free (base_name); return size; } } g_free (base_name); return size; } #endif static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { CDDAContext *cdda_context = (CDDAContext *) method_handle; /*g_message ("cdda do_read_directory");*/ if (cdda_context == NULL) { g_warning ("do_read_directory: NULL context"); return GNOME_VFS_ERROR_GENERIC; } if (cdda_context->access_count >= cdda_context->drive->tracks) { /*g_message ("do_read_directory: over access count");*/ return GNOME_VFS_ERROR_EOF; } cdda_context->access_count++; /* Populate file info */ file_info->io_block_size = CD_FRAMESIZE_RAW; file_info->size = get_data_size (cdda_context->drive, cdda_context->access_count); file_info->atime = time (NULL); file_info->ctime = time (NULL); file_info->mtime = time (NULL); if (cdda_context->use_cddb) { file_info->name = g_strdup (cdda_context->disc_data.data_track[cdda_context->access_count-1].track_name); } else { file_info->name = g_strdup_printf ("Untitled %d", cdda_context->access_count); } file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; file_info->mime_type = g_strdup ("audio/x-wav"); file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE | GNOME_VFS_FILE_INFO_FIELDS_SIZE | GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE | GNOME_VFS_FILE_INFO_FIELDS_ATIME | GNOME_VFS_FILE_INFO_FIELDS_MTIME | GNOME_VFS_FILE_INFO_FIELDS_CTIME; return GNOME_VFS_OK; } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { *same_fs_return = TRUE; return GNOME_VFS_OK; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return TRUE; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, NULL, /* do_create */ do_close, do_read, /* do_read */ NULL, /* do_write */ NULL, /* seek */ NULL, /* tell */ NULL, /* truncate */ do_open_directory, do_close_directory, do_read_directory, do_get_file_info, NULL, do_is_local, NULL, /* make directory */ NULL, /* remove directory */ NULL, /* rename */ NULL, /* unlink */ do_check_same_fs, NULL, /* do_set_file_info */ NULL, /* do_truncate */ NULL, /* do_find_directory */ NULL /* do_create_symbolic_link */ }; #if 0 static void put_num (long num, int f, int endianness, int bytes) { int i; unsigned char c; if (!endianness) { i = 0; } else { i = bytes - 1; } while (bytes--){ c = (num >> (i << 3)) & 0xff; if (write (f, &c, 1) == -1) { perror ("Could not write to output."); exit (1); } if (endianness) { i--; } else { i++; } } } #endif /* Write WAV header information into memory buffer */ #if 0 static int write_wav_header (gpointer buffer, long bytes) { char *ptr; memset (buffer, 0, CD_FRAMESIZE_RAW); ptr = buffer; *ptr = "RIFF"; ptr += 4; *ptr = bytes + 44 - 8; ptr += 4; *ptr = "WAVEfmt "; ptr += 8; *ptr = 16; ptr += 4; *ptr = 1; ptr += 2; *ptr = 2; ptr += 2; *ptr = 44100; ptr += 4; *ptr = 44100 * 2 * 2; ptr += 4; *ptr = 4; ptr += 2; *ptr = 16; ptr += 2; *ptr = "data"; ptr += 4; *ptr = bytes; ptr += 4; return 44; } #endif static int write_wav_header (gpointer buffer, long bytes) { char *ptr; int var; memset (buffer, 0, CD_FRAMESIZE_RAW); ptr = buffer; memcpy (ptr, "RIFF", 4); ptr += 4; var = bytes + 44 - 8; memcpy (ptr, &var, 4); ptr += 4; memcpy (ptr, "WAVEfmt ", 8); ptr += 8; var = 16; memcpy (ptr, &var, 4); ptr += 4; var = 1; memcpy (ptr, &var, 2); ptr += 2; var = 2; memcpy (ptr, &var, 2); ptr += 2; var = 44100; memcpy (ptr, &var, 4); ptr += 4; var = 44100 * 2 * 2; memcpy (ptr, &var, 4); ptr += 4; var = 4; memcpy (ptr, &var, 2); ptr += 2; var = 16; memcpy (ptr, &var, 2); ptr += 2; memcpy (ptr, "data", 4); ptr += 4; memcpy (ptr, &bytes, 4); ptr += 4; return 44; } GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { char *argv[] = { "gnome-vfs-cdda-module", NULL }; if (!gconf_is_initialized ()) { gconf_init (1, argv, NULL); } return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { } gnome-vfs-2.24.4/modules/tarpet.h0000644000175000001440000000436211334251016013542 00000000000000#ifndef TARPET_H #define TARPET_H /* * Tarpet - Tar struct definitions * * Placed in the public domain by Abigail Brady * * Implemented from a definition provided by Rachel Hestilow, * md5sum 7606d69d61dfc7eed10857a888136b62 * * See documentation-1.1.txt for details. * */ struct TARPET_POSIX { char name[100]; char mode[8]; char uid[8]; char gid[8]; char size[12]; char mtime[12]; char checksum[8]; char typeflag; char linkname[100]; char magic[6]; char version[2]; char username[32]; char groupname[32]; char major[8]; char minor[8]; char extend[155]; }; #define TARPET_TYPE_REGULAR '\0' #define TARPET_TYPE_REGULAR2 '0' #define TARPET_TYPE_LINK '1' #define TARPET_TYPE_SYMLINK '2' #define TARPET_TYPE_CHARDEV '3' #define TARPET_TYPE_BLOCKDEV '4' #define TARPET_TYPE_DIRECTORY '5' #define TARPET_TYPE_FIFO '6' #define TARPET_TYPE_CONTIGUOUS '7' #define TARPET_TYPE_DUMPDIR 'D' #define TARPET_TYPE_LONGLINKN 'K' #define TARPET_TYPE_LONGFILEN 'L' #define TARPET_TYPE_MULTIVOL 'M' #define TARPET_TYPE_LONGNAME 'N' #define TARPET_TYPE_SPARSE 'S' #define TARPET_TYPE_VOLUME 'V' #define TARPET_GNU_MAGIC "ustar" #define TARPET_GNU_MAGIC_OLD "ustar " #define TARPET_GNU_VERSION "00" /* * for the mode, #include and use * * S_ISUID * S_ISGID * * S_IRUSR * S_IWUSR * S_IXUSR * S_IRGRP * S_IWGRP * S_IXGRP * S_IROTH * S_IWOTH * S_IXOTH */ struct TARPET_sparsefile { char padding[12]; char numbytes[12]; }; struct TARPET_GNU_ext { char atime[12]; char ctime[12]; char offset[12]; char realsize[12]; char longnames[4]; char padding[68]; struct TARPET_sparsefile sparse[16]; char extend; }; struct TARPET_GNU_ext_old { char padding[345]; char atime[12]; char ctime[12]; char longnames[4]; char padding2; struct TARPET_sparsefile sparse[4]; char extend; char realsize[12]; }; struct TARPET_GNU_sparseheader { struct TARPET_sparsefile sparse[21]; char extend; }; struct TARPET_rawdata { char data[512]; }; union TARPET_block { struct TARPET_POSIX p; struct TARPET_GNU_ext gnu; struct TARPET_GNU_ext_old gnu_old; struct TARPET_GNU_sparseheader sparse; struct TARPET_rawdata raw; }; #endif gnome-vfs-2.24.4/modules/cdda-cddb.c0000644000175000001440000006027611334251016014031 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */ /* cdda-cddb.c Based on code from libcdaudio 0.5.0 (Copyright (C)1998 Tony Arcieri) All changes copyright (c) 1998 by Mike Oliphant - oliphant@ling.ed.ac.uk http://www.ling.ed.ac.uk/~oliphant/grip 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, USA. */ #include "cdda-cddb.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define size16 short #define size32 int #include #include "cdda-cdrom-extensions.h" /* This is here to work around a broken header file. * cdda_interface.h has a statically defined array of * chars that is unused. This will break our build * due to our strict error checking. */ char **broken_header_fix2 = strerror_tr; static int CDDBSum(int val); static int CDDBConnect(CDDBServer *server); static void CDDBDisconnect(int sock); static void CDDBSkipHTTP(int sock); static int CDDBReadLine(int sock,char *inbuffer,int len); static void CDDBMakeHello(CDDBHello *hello,char *hellobuf); static void CDDBMakeRequest(CDDBServer *server, CDDBHello *hello, char *cmd,char *outbuf,int outlen); static void CDDBProcessLine(char *inbuffer,DiscData *data, int numtracks); #if 0 static void CDDBWriteLine(char *header,int num,char *data,FILE *outfile); #endif static const char *cddb_genres[] = {"unknown","blues","classical","country", "data","folk","jazz","misc","newage", "reggae","rock","soundtrack"}; #ifdef ENABLE_IPV6 /*Check whether the node is IPv6 enabled.*/ static gboolean have_ipv6 (void) { int s; s = socket (AF_INET6, SOCK_STREAM, 0); if (s != -1) { close (s); return TRUE; } return FALSE; } #endif /* CDDB sum function */ static int CDDBSum(int val) { char *bufptr, buf[16]; int ret = 0; g_snprintf(buf,16,"%lu",(unsigned long int)val); for(bufptr = buf; *bufptr != '\0'; bufptr++) { ret += (*bufptr - '0'); } return ret; } /* Produce CDDB ID for CD currently in CD-ROM */ unsigned int CDDBDiscid (cdrom_drive *drive) { int index, tracksum = 0, discid, retval; disc_info disc; retval = CDStat (drive->ioctl_fd, &disc, TRUE); for(index = 0; index < disc.disc_totaltracks; index++) { tracksum += CDDBSum(disc.track[index].track_pos.minutes * 60 + disc.track[index].track_pos.seconds); } discid = (disc.disc_length.minutes * 60 + disc.disc_length.seconds) - (disc.track[0].track_pos.minutes * 60 + disc.track[0].track_pos.seconds); return (tracksum % 0xFF) << 24 | discid << 8 | disc.disc_totaltracks; } /* Convert numerical genre to text */ char *CDDBGenre(int genre) { if(genre>11) { return("unknown"); } return cddb_genres[genre]; } /* Convert genre from text form into an integer value */ int CDDBGenreValue(char *genre) { int pos; for (pos = 0; pos < 12; pos++) { if (!strcmp (genre,cddb_genres[pos])) { return pos; } } return 0; } /* Connect to a CDDB server */ static int CDDBConnect (CDDBServer *server) { int sock = -1; #ifdef ENABLE_IPV6 struct sockaddr_in6 sin6; struct addrinfo hints, *result, *res; /*info abt the IP of node*/ #endif struct sockaddr_in sin; struct hostent *host; char *sname; #ifdef ENABLE_IPV6 if (have_ipv6 ()) { result = NULL; memset (&sin6, 0 , sizeof (sin6)); sin6.sin6_family = AF_INET6; if (server->use_proxy) { sin6.sin6_port = htons (server->proxy->port); } else { sin6.sin6_port = htons (server->port); } } #endif memset (&sin, 0, sizeof (sin)); sin.sin_family = AF_INET; if (server->use_proxy) sin.sin_port=htons(server->proxy->port); else sin.sin_port = htons(server->port); if (server->use_proxy) sname=server->proxy->name; else sname=server->name; #ifdef ENABLE_IPV6 if (have_ipv6 ()) { memset (&hints, 0, sizeof (hints)); hints.ai_socktype = SOCK_STREAM; if ((getaddrinfo (sname, NULL, &hints, &result)) != 0) { return -1; } for (res = result; res; res = res->ai_next) { if (res->ai_family != AF_INET && res->ai_family != AF_INET6) { continue; } sock = socket (res->ai_family, SOCK_STREAM, 0); if (sock < 0) { continue; } if (res->ai_family == AF_INET) { memcpy (&sin.sin_addr, &((struct sockaddr_in *)res->ai_addr)->sin_addr, sizeof (struct in_addr)); if (connect (sock, (struct sockaddr *)&sin, sizeof (sin)) != -1) { break; } } if (res->ai_family == AF_INET6) { memcpy (&sin6.sin6_addr, &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr, sizeof (struct in6_addr)); if (connect (sock, (struct sockaddr *)&sin6, sizeof (sin6)) != -1) { break; } } close (sock); } freeaddrinfo (result); if (!res) { /* No valid address found. */ return -1; } } else #endif /*IPv4*/ { sin.sin_addr.s_addr = inet_addr (sname); #ifdef SOLARIS if (sin.sin_addr.s_addr == (unsigned long)-1) #else if (sin.sin_addr.s_addr == INADDR_NONE) #endif { host = gethostbyname (sname); if (host == NULL) { return -1; } bcopy (host->h_addr, &sin.sin_addr, host->h_length); } sock = socket (AF_INET, SOCK_STREAM, 0); if (sock < 0) { return -1; } if (connect (sock, (struct sockaddr *)&sin, sizeof (sin)) < 0) { return -1; } } return sock; } /* Disconnect from CDDB server */ static void CDDBDisconnect(int sock) { shutdown(sock,2); close(sock); } /* Skip http header */ static void CDDBSkipHTTP(int sock) { char inchar; int len; do { len=0; do { read(sock,&inchar,1); len++; /* g_message ("%c",inchar); */ } while(inchar!='\n'); } while(len>2); } /* Read a single line from the CDDB server*/ static int CDDBReadLine(int sock,char *inbuffer,int len) { int index; char inchar; char *pos; pos=inbuffer; for(index = 0; index < len; index++) { read(sock, &inchar, 1); if(inchar == '\n') { inbuffer[index] = '\0'; /* g_message ("[%s]\n",pos); */ pos=inbuffer+index; if(inbuffer[0] == '.') return 1; return 0; } inbuffer[index] = inchar; } return index; } /* Make a 'hello' string from a cddb_hello structure */ static void CDDBMakeHello(CDDBHello *hello,char *hellobuf) { g_snprintf(hellobuf,256,"&hello=private+free.the.cddb+%s+%s", hello->hello_program,hello->hello_version); } /* Make a CDDB http request string */ static void CDDBMakeRequest(CDDBServer *server, CDDBHello *hello, char *cmd,char *outbuf,int outlen) { char hellobuf[256]; CDDBMakeHello(hello,hellobuf); if(server->use_proxy) g_snprintf(outbuf,outlen, "GET http://%s/%s?cmd=%s%s&proto=%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: %s/%s\r\nAccept: text/plain\n\n", server->name,server->cgi_prog,cmd,hellobuf, /* CDDA_CDDB_LEVEL, server->name, Program, Version);*/ CDDA_CDDB_LEVEL, server->name, "Loser", "1.0"); else g_snprintf(outbuf,outlen,"GET /%s?cmd=%s%s&proto=%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: %s/%s\r\nAccept: text/plain\n\n", server->cgi_prog,cmd,hellobuf,CDDA_CDDB_LEVEL,server->name, /* Program,Version); */ "Loser", "1.0"); } /* Query the CDDB for the CD currently in the CD-ROM */ gboolean CDDBDoQuery (cdrom_drive *cd_desc, CDDBServer *server, CDDBHello *hello, CDDBQuery *query) { int socket, index; disc_info disc; char *offset_buffer, *query_buffer, *http_buffer, inbuffer[256]; int tot_len,len; socket = CDDBConnect (server); if (socket==-1) { /* g_message ("CDDBConnect failure"); */ return FALSE; } query->query_matches = 0; CDStat (cd_desc->ioctl_fd, &disc, TRUE); /* Figure out a good buffer size -- 7 chars per track, plus 256 for the rest of the query */ tot_len = (disc.disc_totaltracks * 7) + 256; offset_buffer = malloc(tot_len); len = 0; len += g_snprintf (offset_buffer + len, tot_len - len, "%d", disc.disc_totaltracks); for (index = 0; index < disc.disc_totaltracks; index++) { len += g_snprintf (offset_buffer + len, tot_len - len, "+%d", disc.track[index].track_start); } query_buffer = malloc(tot_len); g_snprintf (query_buffer, tot_len, "cddb+query+%08x+%s+%d", CDDBDiscid(cd_desc), offset_buffer, disc.disc_length.minutes * 60 + disc.disc_length.seconds); http_buffer = malloc(tot_len); CDDBMakeRequest (server, hello, query_buffer, http_buffer, tot_len); /* g_message ("Query is [%s]\n",http_buffer); */ write (socket, http_buffer, strlen (http_buffer)); free (offset_buffer); free (query_buffer); free (http_buffer); CDDBSkipHTTP (socket); *inbuffer='\0'; CDDBReadLine(socket,inbuffer,256); /* Skip the keep-alive */ if((strlen(inbuffer)<5)||!strncmp(inbuffer,"Keep",4)) { /* g_message("Skipping keepalive\n"); */ CDDBReadLine (socket,inbuffer,256); } /* g_message ("Reply is [%s]\n",inbuffer); */ switch(strtol(strtok(inbuffer," "),NULL,10)) { /* 200 - exact match */ case 200: query->query_match=MATCH_EXACT; query->query_matches=1; query->query_list[0].list_genre= CDDBGenreValue(ChopWhite(strtok(NULL," "))); sscanf(ChopWhite(strtok(NULL," ")),"%xd", &query->query_list[0].list_id); CDDBParseTitle(ChopWhite(strtok(NULL,"")),query->query_list[0].list_title, query->query_list[0].list_artist,"/"); break; /* 211 - inexact match */ case 211: query->query_match=MATCH_INEXACT; query->query_matches=0; while(query->query_matches < MAX_INEXACT_MATCHES && !CDDBReadLine(socket,inbuffer,256)) { query->query_list[query->query_matches].list_genre= CDDBGenreValue(ChopWhite(strtok(inbuffer," "))); sscanf(ChopWhite(strtok(NULL," ")),"%xd", &query->query_list[query->query_matches].list_id); CDDBParseTitle(ChopWhite(strtok(NULL,"")), query->query_list[query->query_matches].list_title, query->query_list[query->query_matches].list_artist,"/"); query->query_matches++; } break; /* No match */ default: query->query_match=MATCH_NOMATCH; CDDBDisconnect(socket); return FALSE; } CDDBDisconnect(socket); return TRUE; } /* Get rid of whitespace at the beginning or end of a string */ char *ChopWhite(char *buf) { int pos; for(pos=strlen(buf)-1;(pos>=0)&&g_ascii_isspace(buf[pos]);pos--); buf[pos+1]='\0'; for(;g_ascii_isspace(*buf);buf++); return buf; } /* Split string into title/artist */ void CDDBParseTitle(char *buf,char *title,char *artist,char *sep) { char *tmp; tmp=strtok(buf,sep); if(!tmp) return; strncpy(artist,ChopWhite(tmp),64); tmp=strtok(NULL,""); if(tmp) strncpy(title,ChopWhite(tmp),64); else strcpy(title,artist); } /* Process a line of input data */ static void CDDBProcessLine(char *inbuffer,DiscData *data, int numtracks) { int track; int len = 0; char *st; if(!g_ascii_strncasecmp(inbuffer,"DTITLE",6)) { len = strlen(data->data_title); strncpy(data->data_title+len,ChopWhite(inbuffer+7),256-len); } else if(!g_ascii_strncasecmp(inbuffer,"DYEAR",5)) { strtok(inbuffer,"="); st = strtok(NULL, ""); if(st == NULL) return; data->data_year=atoi(ChopWhite(st)); } else if(!g_ascii_strncasecmp(inbuffer,"DGENRE",6)) { strtok(inbuffer,"="); st = strtok(NULL, ""); if(st == NULL) return; data->data_genre=CDDBGenreValue(ChopWhite(st)); } else if(!g_ascii_strncasecmp(inbuffer,"TTITLE",6)) { track=atoi(strtok(inbuffer+6,"=")); if(track >= 0 && trackdata_track[track].track_name); strncpy(data->data_track[track].track_name+len, ChopWhite(strtok(NULL,"")),256-len); } } else if(!g_ascii_strncasecmp(inbuffer,"TARTIST",7)) { data->data_multi_artist=TRUE; track=atoi(strtok(inbuffer+7,"=")); if(track >= 0 && trackdata_track[track].track_artist); st = strtok(NULL, ""); if(st == NULL) return; strncpy(data->data_track[track].track_artist+len, ChopWhite(st),256-len); } } else if(!g_ascii_strncasecmp(inbuffer,"EXTD",4)) { len=strlen(data->data_extended); strncpy(data->data_extended+len,ChopWhite(inbuffer+5),4096-len); } else if(!g_ascii_strncasecmp(inbuffer,"EXTT",4)) { track=atoi(strtok(inbuffer+4,"=")); if(track >= 0 && trackdata_track[track].track_extended); st = strtok(NULL, ""); if(st == NULL) return; strncpy(data->data_track[track].track_extended+len, ChopWhite(st),4096-len); } } else if(!g_ascii_strncasecmp(inbuffer,"PLAYORDER",5)) { len=strlen(data->data_playlist); strncpy(data->data_playlist+len,ChopWhite(inbuffer+10),256-len); } } /* Read the actual CDDB entry */ gboolean CDDBRead(cdrom_drive *cd_desc, CDDBServer *server, CDDBHello *hello,CDDBEntry *entry, DiscData *data) { int socket; int index; char outbuffer[256], inbuffer[512],cmdbuffer[256]; disc_info disc; socket=CDDBConnect(server); if(socket==-1) return FALSE; memset (&disc, 0, sizeof (disc)); /* CDStat(cd_desc,&disc,TRUE); */ data->data_genre=entry->entry_genre; data->data_id=CDDBDiscid(cd_desc); *(data->data_extended)='\0'; *(data->data_title)='\0'; *(data->data_artist)='\0'; *(data->data_playlist)='\0'; data->data_multi_artist=FALSE; data->data_year=0; for(index=0;indexdata_track[index].track_name)='\0'; *(data->data_track[index].track_artist)='\0'; *(data->data_track[index].track_extended)='\0'; } g_snprintf(cmdbuffer,256,"cddb+read+%s+%08x",CDDBGenre(entry->entry_genre), entry->entry_id); CDDBMakeRequest(server,hello,cmdbuffer,outbuffer,256); write(socket,outbuffer,strlen(outbuffer)); CDDBSkipHTTP(socket); CDDBReadLine(socket,inbuffer,256); /* Skip the keep-alive */ if((strlen(inbuffer)<5)||!strncmp(inbuffer,"Keep",4)) { /* g_message ("Skipping keepalive\n"); */ CDDBReadLine(socket,inbuffer,256); } while(!CDDBReadLine(socket,inbuffer,512)) CDDBProcessLine(inbuffer,data,disc.disc_totaltracks); /* Both disc title and artist have been stuffed in the title field, so the need to be separated */ CDDBParseTitle(data->data_title,data->data_title,data->data_artist,"/"); CDDBDisconnect(socket); return 0; } /* See if a disc is in the local database */ gboolean CDDBStatDiscData(cdrom_drive *cd_desc) { int index,id; /* disc_info disc; */ struct stat st; char root_dir[256], file[256]; /* CDStat(cd_desc,&disc,TRUE); */ id=CDDBDiscid(cd_desc); g_snprintf(root_dir,256,"%s/.cddb",getenv("HOME")); if(stat(root_dir, &st) < 0) return FALSE; else { if(!S_ISDIR(st.st_mode)) return FALSE; } g_snprintf(file,256,"%s/%08x",root_dir,id); if(stat(file,&st)==0) return TRUE; for(index=0;index<12;index++) { g_snprintf(file,256,"%s/%s/%08x",root_dir,CDDBGenre(index),id); if(stat(file,&st) == 0) return TRUE; } return FALSE; } /* Read from the local database */ int CDDBReadDiscData(cdrom_drive *cd_desc,DiscData *ddata) { FILE *cddb_data = NULL; int index,genre; char root_dir[256], file[256], inbuf[512]; disc_info disc; struct stat st; g_snprintf(root_dir,256,"%s/.cddb",getenv("HOME")); if(stat(root_dir, &st) < 0) { return -1; } else { if(!S_ISDIR(st.st_mode)) { errno = ENOTDIR; return -1; } } CDStat (cd_desc->ioctl_fd, &disc, TRUE); ddata->data_id=CDDBDiscid(cd_desc); *(ddata->data_extended)='\0'; *(ddata->data_title)='\0'; *(ddata->data_artist)='\0'; *(ddata->data_playlist)='\0'; ddata->data_multi_artist=FALSE; ddata->data_year=0; for(index=0;indexdata_track[index].track_name)='\0'; *(ddata->data_track[index].track_artist)='\0'; *(ddata->data_track[index].track_extended)='\0'; } g_snprintf(file,256,"%s/%08x",root_dir,ddata->data_id); if(stat(file,&st)==0) { cddb_data=fopen(file, "r"); } else { for(genre=0;genre<12;genre++) { g_snprintf(file,256,"%s/%s/%08x",root_dir,CDDBGenre(genre), ddata->data_id); if(stat(file,&st)==0) { cddb_data=fopen(file, "r"); ddata->data_genre=genre; break; } } if(genre==12) return -1; } while(fgets(inbuf,512,cddb_data)) CDDBProcessLine(inbuf,ddata,disc.disc_totaltracks); /* Both disc title and artist have been stuffed in the title field, so the need to be separated */ CDDBParseTitle(ddata->data_title,ddata->data_title,ddata->data_artist,"/"); fclose(cddb_data); return 0; } #if 0 static void CDDBWriteLine(char *header,int num,char *data,FILE *outfile) { int len; char *offset; len=strlen(data); offset=data; for(;;) { if(len>80) { if(num==-1) fprintf(outfile,"%s=%.70s\n",header,offset); else fprintf(outfile,"%s%d=%.70s\n",header,num,offset); offset+=70; len-=70; } else { if(num==-1) fprintf(outfile,"%s=%s\n",header,offset); else fprintf(outfile,"%s%d=%s\n",header,num,offset); break; } } } #endif /* Write to the local cache */ int CDDBWriteDiscData(cdrom_drive *drive, DiscData *ddata,FILE *outfile, gboolean gripext) { #if 0 FILE *cddb_data; int track; char root_dir[256],file[256]; struct stat st; disc_info disc; //CDStat(cd_desc,&disc,TRUE); if(!outfile) { g_snprintf(root_dir,256,"%s/.cddb",getenv("HOME")); g_snprintf(file,256,"%s/%08x",root_dir,ddata->data_id); if(stat(root_dir,&st)<0) { if(errno != ENOENT) { //g_message("Stat error %d on %s\n",errno,root_dir); return -1; } else { //g_message("Creating directory %s\n",root_dir); mkdir(root_dir, 0755); } } else { if(!S_ISDIR(st.st_mode)) { //g_message("Error: %s exists, but is a file\n",root_dir); errno=ENOTDIR; return -1; } } if((cddb_data=fopen(file,"w"))==NULL) { //g_message("Error: Unable to open %s for writing\n",file); return -1; } } else cddb_data=outfile; //fprintf(cddb_data,"# xmcd CD database file generated by %s %s\n", Program,Version); fprintf(cddb_data,"# xmcd CD database file generated by Loser 1.0\n"); fputs("# \n",cddb_data); fputs("# Track frame offsets:\n",cddb_data); for (track = 0; track < disc.disc_totaltracks; track++) fprintf(cddb_data, "# %d\n",disc.track[track].track_start); fputs("# \n",cddb_data); fprintf(cddb_data,"# Disc length: %d seconds\n",disc.disc_length.minutes * 60 + disc.disc_length.seconds); fputs("# \n",cddb_data); fprintf(cddb_data,"# Revision: %s\n",CDDA_CDDB_LEVEL); //fprintf(cddb_data,"# Submitted via: %s %s\n",Program,Version); fprintf(cddb_data,"# Submitted via: Loser 1.0\n"); fputs("# \n",cddb_data); fprintf(cddb_data,"DISCID=%08x\n",ddata->data_id); fprintf(cddb_data,"DTITLE=%s / %s\n", ddata->data_artist,ddata->data_title); if(gripext&&ddata->data_year) fprintf(cddb_data,"DYEAR=%d\n",ddata->data_year); if(gripext) fprintf(cddb_data,"DGENRE=%s\n",CDDBGenre(ddata->data_genre)); for(track=0;trackdata_track[track].track_artist)) { fprintf(cddb_data,"TTITLE%d=%s\n",track, ddata->data_track[track].track_name); } else { fprintf(cddb_data,"TTITLE%d=%s / %s\n",track, ddata->data_track[track].track_name, ddata->data_track[track].track_artist); } if(gripext&&*(ddata->data_track[track].track_artist)) fprintf(cddb_data,"TARTIST%d=%s\n",track, ddata->data_track[track].track_artist); } CDDBWriteLine("EXTD",-1,ddata->data_extended,cddb_data); for(track=0;trackdata_track[track].track_extended,cddb_data); if(outfile) fprintf(cddb_data,"PLAYORDER=\n"); else { fprintf(cddb_data,"PLAYORDER=%s\n",ddata->data_playlist); fclose(cddb_data); } #endif return 0; } gboolean CDDBLookupDisc (CDDBServer *server, cdrom_drive *drive, DiscData *disc_data) { CDDBHello hello; CDDBQuery query; CDDBEntry entry; gboolean success = FALSE; /* if(server->use_proxy) { g_message ("Querying %s (through %s:%d) for disc %02x.\n", server->name, server->proxy->name, server->proxy->port, CDDBDiscid (drive)); } else { g_message ("Querying %s for disc %02x.\n",server->name, CDDBDiscid (drive)); } */ strncpy (hello.hello_program, "Loser", 256); strncpy (hello.hello_version, "1.0", 256); if (!CDDBDoQuery (drive, server, &hello, &query)) { g_message ("Query failed"); } else { switch(query.query_match) { case MATCH_INEXACT: case MATCH_EXACT: /*g_message ("Match for \"%s / %s\"\nDownloading data...\n", query.query_list[0].list_artist, query.query_list[0].list_title);*/ entry.entry_genre = query.query_list[0].list_genre; entry.entry_id = query.query_list[0].list_id; CDDBRead (drive, server, &hello, &entry, disc_data); /* g_message ("Done\n"); */ success = TRUE; /* if (CDDBWriteDiscData (drive, disc_data, NULL, TRUE) < 0) { printf ("Error saving disc data\n"); } */ break; case MATCH_NOMATCH: g_message ("No match\n"); break; } } return success; } /* Update a CD status structure... because operating system interfaces vary so does this function. */ int CDStat (int cd_desc, disc_info *disc, gboolean read_toc) { struct cdrom_tochdr cdth; struct cdrom_tocentry cdte; int readtracks,frame[MAX_TRACKS],pos; int retcode; retcode = ioctl(cd_desc, CDROM_DRIVE_STATUS, CDSL_CURRENT); /* g_message("Drive status is %d\n", retcode); */ if (retcode < 0) { /* g_message("Drive doesn't support drive status check (assume CDS_NO_INFO)\n"); */ } else if (retcode != CDS_DISC_OK && retcode != CDS_NO_INFO) { return -1; } disc->disc_present = 1; if (read_toc) { /* g_message ("Reading TOC"); */ /* Read the Table Of Contents header */ if(ioctl(cd_desc, CDROMREADTOCHDR, &cdth) < 0) { printf("Error: Failed to read disc contents\n"); return -1; } disc->disc_totaltracks = cdth.cdth_trk1; /* Read the table of contents */ for(readtracks = 0; readtracks <= disc->disc_totaltracks; readtracks++) { if(readtracks == disc->disc_totaltracks) cdte.cdte_track = CDROM_LEADOUT; else cdte.cdte_track = readtracks + 1; cdte.cdte_format = CDROM_MSF; if(ioctl(cd_desc, CDROMREADTOCENTRY, &cdte) < 0) { printf("Error: Failed to read disc contents\n"); return -1; } disc->track[readtracks].track_pos.minutes = cdte.cdte_addr.msf.minute; disc->track[readtracks].track_pos.seconds = cdte.cdte_addr.msf.second; frame[readtracks] = cdte.cdte_addr.msf.frame; } for(readtracks = 0; readtracks <= disc->disc_totaltracks; readtracks++) { disc->track[readtracks].track_start= (disc->track[readtracks].track_pos.minutes * 60 + disc->track[readtracks].track_pos.seconds) * 75 + frame[readtracks]; if(readtracks > 0) { pos = (disc->track[readtracks].track_pos.minutes * 60 + disc->track[readtracks].track_pos.seconds) - (disc->track[readtracks - 1].track_pos.minutes * 60 + disc->track[readtracks -1].track_pos.seconds); disc->track[readtracks - 1].track_length.minutes = pos / 60; disc->track[readtracks - 1].track_length.seconds = pos % 60; } } disc->disc_length.minutes= disc->track[disc->disc_totaltracks].track_pos.minutes; disc->disc_length.seconds= disc->track[disc->disc_totaltracks].track_pos.seconds; } disc->disc_track = 0; while(disc->disc_track < disc->disc_totaltracks && disc->disc_frame >= disc->track[disc->disc_track].track_start) disc->disc_track++; pos=(disc->disc_frame - disc->track[disc->disc_track - 1].track_start) / 75; disc->track_time.minutes = pos / 60; disc->track_time.seconds = pos % 60; return 0; } gnome-vfs-2.24.4/modules/inotify-sub.c0000644000175000001440000000710411334251016014503 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* inotify-helper.c - Gnome VFS Monitor based on inotify. Copyright (C) 2006 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: John McCutchan */ #include "config.h" #include #include #include #include #include "inotify-sub.h" static gboolean is_debug_enabled = FALSE; #define IS_W if (is_debug_enabled) g_warning static void ih_sub_setup (ih_sub_t *sub); ih_sub_t * ih_sub_new (GnomeVFSURI *uri, GnomeVFSMonitorType mon_type) { ih_sub_t *sub = NULL; sub = g_new0 (ih_sub_t, 1); sub->type = mon_type; sub->uri = uri; gnome_vfs_uri_ref (uri); sub->pathname = gnome_vfs_unescape_string (gnome_vfs_uri_get_path (uri), "/"); /* gnome_vfs_unescape_string returns NULL when * the uri path passed to it is invalid. */ if (!sub->pathname) { IS_W("new subscription for %s failed because of invalid characters.\n", gnome_vfs_uri_get_path (uri)); g_free (sub); gnome_vfs_uri_unref (uri); return NULL; } /* TODO: WAITING for flag to be implemented if (mon_type & GNOME_VFS_DONT_FOLLOW_SYMLINK) { sub->extra_flags |= IN_DONT_FOLLOW; } */ IS_W("new subscription for %s being setup\n", sub->pathname); ih_sub_setup (sub); return sub; } void ih_sub_free (ih_sub_t *sub) { if (sub->filename) g_free (sub->filename); if (sub->dirname) g_free (sub->dirname); g_free (sub->pathname); gnome_vfs_uri_unref (sub->uri); g_free (sub); } static gchar *ih_sub_get_uri_dirname (GnomeVFSURI *uri) { gchar *t, *out; t = gnome_vfs_uri_extract_dirname (uri); out = gnome_vfs_unescape_string (t, "/"); g_free (t); return out; } static gchar *ih_sub_get_uri_filename (GnomeVFSURI *uri) { gchar *t, *out; t = gnome_vfs_uri_extract_short_name (uri); out = gnome_vfs_unescape_string (t, "/"); g_free (t); return out; } static void ih_sub_fix_dirname (ih_sub_t *sub) { size_t len = 0; g_assert (sub->dirname); len = strlen (sub->dirname); /* We need to strip a trailing slash * to get the correct behaviour * out of the kernel */ if (sub->dirname[len] == '/') sub->dirname[len] = '\0'; } /* * XXX: Currently we just follow the gnome vfs monitor type flags when * deciding how to treat the path. In the future we could try * and determine whether the path points to a directory or a file but * that is racey. */ static void ih_sub_setup (ih_sub_t *sub) { if (sub->type & GNOME_VFS_MONITOR_DIRECTORY) { sub->dirname = g_strdup (sub->pathname); sub->filename = NULL; } else { sub->dirname = ih_sub_get_uri_dirname (sub->uri); sub->filename = ih_sub_get_uri_filename (sub->uri); } ih_sub_fix_dirname (sub); IS_W("sub->dirname = %s\n", sub->dirname); if (sub->filename) { IS_W("sub->filename = %s\n", sub->filename); } } gnome-vfs-2.24.4/modules/bzip2-method.c0000644000175000001440000003373311334251016014546 00000000000000/* * bzip2-method.c - Bzip2 access method for the GNOME Virtual File * System. * * Copyright (C) 1999 Free Software Foundation * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite * 330, Boston, MA 02111-1307, USA. * * Author: Cody Russell */ #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_OLDER_BZIP2 #define BZ2_bzDecompressInit bzDecompressInit #define BZ2_bzCompressInit bzCompressInit #define BZ2_bzDecompress bzDecompress #define BZ2_bzCompress bzCompress #endif #define BZ_BUFSIZE 5000 struct _Bzip2MethodHandle { GnomeVFSURI *uri; GnomeVFSHandle *parent_handle; GnomeVFSOpenMode open_mode; BZFILE *file; GnomeVFSResult last_vfs_result; gint last_bz_result; bz_stream bzstream; guchar *buffer; }; typedef struct _Bzip2MethodHandle Bzip2MethodHandle; static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context); static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context); static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context); static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context); static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri); static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, NULL, /* seek */ NULL, /* tell */ NULL, /* truncate_handle */ NULL, /* open_directory */ NULL, /* close_directory */ NULL, /* read_directory */ do_get_file_info, NULL, /* get_file_info_from_handle */ do_is_local, NULL, /* make_directory */ NULL, /* remove_directory */ NULL, /* move */ NULL, /* unlink */ NULL, /* set_file_info */ NULL, /* truncate */ NULL, /* find_directory */ NULL /* create_symbolic_link */ }; #define RETURN_IF_FAIL(action) \ G_STMT_START { \ GnomeVFSResult __tmp_result; \ \ __tmp_result = (action); \ if (__tmp_result != GNOME_VFS_OK) \ return __tmp_result; \ } G_STMT_END #define VALID_URI(u) ((u)->parent!=NULL&&(((u)->text==NULL)||((u)->text[0]=='\0')||(((u)->text[0]=='/')&&((u)->text[1]=='\0')))) static Bzip2MethodHandle * bzip2_method_handle_new (GnomeVFSHandle *parent_handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode) { Bzip2MethodHandle *new; new = g_new (Bzip2MethodHandle, 1); new->parent_handle = parent_handle; new->uri = gnome_vfs_uri_ref (uri); new->open_mode = open_mode; new->buffer = NULL; return new; } static void bzip2_method_handle_destroy (Bzip2MethodHandle *handle) { gnome_vfs_uri_unref (handle->uri); g_free (handle->buffer); g_free (handle); } static gboolean bzip2_method_handle_init_for_decompress (Bzip2MethodHandle *handle) { handle->bzstream.bzalloc = NULL; handle->bzstream.bzfree = NULL; handle->bzstream.opaque = NULL; g_free (handle->buffer); handle->buffer = g_malloc (BZ_BUFSIZE); handle->bzstream.next_in = (char *)handle->buffer; handle->bzstream.avail_in = 0; /* FIXME bugzilla.eazel.com 1177: Make small, and possibly verbosity, configurable! */ if (BZ2_bzDecompressInit (&handle->bzstream, 0, 0) != BZ_OK) { g_free (handle->buffer); return FALSE; } handle->last_bz_result = BZ_OK; handle->last_vfs_result = GNOME_VFS_OK; return TRUE; } static gboolean bzip2_method_handle_init_for_compress (Bzip2MethodHandle *handle) G_GNUC_UNUSED; static gboolean bzip2_method_handle_init_for_compress (Bzip2MethodHandle *handle) { handle->bzstream.bzalloc = NULL; handle->bzstream.bzfree = NULL; handle->bzstream.opaque = NULL; g_free (handle->buffer); handle->buffer = g_malloc (BZ_BUFSIZE); handle->bzstream.next_out = (char *)handle->buffer; handle->bzstream.avail_out = BZ_BUFSIZE; /* FIXME bugzilla.eazel.com 1174: We want this to be user configurable. */ if (BZ2_bzCompressInit (&handle->bzstream, 3, 0, 30) != BZ_OK) { g_free (handle->buffer); return FALSE; } handle->last_bz_result = BZ_OK; handle->last_vfs_result = GNOME_VFS_OK; return TRUE; } static GnomeVFSResult result_from_bz_result (gint bz_result) { switch (bz_result) { case BZ_OK: case BZ_STREAM_END: return GNOME_VFS_OK; case BZ_MEM_ERROR: return GNOME_VFS_ERROR_NO_MEMORY; case BZ_PARAM_ERROR: return GNOME_VFS_ERROR_BAD_PARAMETERS; case BZ_DATA_ERROR: return GNOME_VFS_ERROR_CORRUPTED_DATA; case BZ_UNEXPECTED_EOF: return GNOME_VFS_ERROR_EOF; case BZ_SEQUENCE_ERROR: return GNOME_VFS_ERROR_NOT_PERMITTED; default: return GNOME_VFS_ERROR_INTERNAL; } } static GnomeVFSResult flush_write (Bzip2MethodHandle *bzip2_handle) { GnomeVFSHandle *parent_handle; GnomeVFSResult result; gboolean done; bz_stream *bzstream; gint bz_result; bzstream = &bzip2_handle->bzstream; bzstream->avail_in = 0; parent_handle = bzip2_handle->parent_handle; done = FALSE; bz_result = BZ_OK; while (bz_result == BZ_OK || bz_result == BZ_STREAM_END) { GnomeVFSFileSize bytes_written; GnomeVFSFileSize len; len = BZ_BUFSIZE - bzstream->avail_out; result = gnome_vfs_write (parent_handle, bzip2_handle->buffer, len, &bytes_written); RETURN_IF_FAIL (result); bzstream->next_out = (char *)bzip2_handle->buffer; bzstream->avail_out = BZ_BUFSIZE; if (done) break; bz_result = BZ2_bzCompress (bzstream, BZ_FINISH); done = (bzstream->avail_out != 0 || bz_result == BZ_STREAM_END); } if (bz_result == BZ_OK || bz_result == BZ_STREAM_END) return GNOME_VFS_OK; else return result_from_bz_result (bz_result); } /* Open */ /* TODO: Check that there is no subpath. */ static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, GnomeVFSContext *context) { GnomeVFSHandle *parent_handle; GnomeVFSURI *parent_uri; GnomeVFSResult result; Bzip2MethodHandle *bzip2_handle; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); /* Check that the URI is valid. */ if (!VALID_URI(uri)) return GNOME_VFS_ERROR_INVALID_URI; if (open_mode & GNOME_VFS_OPEN_WRITE) return GNOME_VFS_ERROR_INVALID_OPEN_MODE; parent_uri = uri->parent; if (open_mode & GNOME_VFS_OPEN_RANDOM) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = gnome_vfs_open_uri (&parent_handle, parent_uri, open_mode); RETURN_IF_FAIL (result); bzip2_handle = bzip2_method_handle_new (parent_handle, uri, open_mode); if (result != GNOME_VFS_OK) { gnome_vfs_close (parent_handle); bzip2_method_handle_destroy (bzip2_handle); return result; } if (!bzip2_method_handle_init_for_decompress (bzip2_handle)) { gnome_vfs_close (parent_handle); bzip2_method_handle_destroy (bzip2_handle); return GNOME_VFS_ERROR_INTERNAL; } *method_handle = (GnomeVFSMethodHandle *) bzip2_handle; return GNOME_VFS_OK; } /* Create */ static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); _GNOME_VFS_METHOD_PARAM_CHECK (uri != NULL); return GNOME_VFS_ERROR_NOT_SUPPORTED; } /* Close */ static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { Bzip2MethodHandle *bzip2_handle; GnomeVFSResult result; _GNOME_VFS_METHOD_PARAM_CHECK (method_handle != NULL); bzip2_handle = (Bzip2MethodHandle *) method_handle; if (bzip2_handle->open_mode & GNOME_VFS_OPEN_WRITE) result = flush_write (bzip2_handle); else result = GNOME_VFS_OK; if (result == GNOME_VFS_OK) result = gnome_vfs_close (bzip2_handle->parent_handle); bzip2_method_handle_destroy (bzip2_handle); return result; } /* Read */ static GnomeVFSResult fill_buffer (Bzip2MethodHandle *bzip2_handle, GnomeVFSFileSize num_bytes) { GnomeVFSResult result; GnomeVFSFileSize count; bz_stream *bzstream; bzstream = &bzip2_handle->bzstream; if (bzstream->avail_in > 0) return GNOME_VFS_OK; result = gnome_vfs_read (bzip2_handle->parent_handle, bzip2_handle->buffer, BZ_BUFSIZE, &count); if (result != GNOME_VFS_OK) { if (bzstream->avail_out == num_bytes) return result; bzip2_handle->last_vfs_result = result; } else { bzstream->next_in = (char *)bzip2_handle->buffer; bzstream->avail_in = count; } return GNOME_VFS_OK; } /* TODO: Concatenated Bzip2 file handling. */ static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { Bzip2MethodHandle *bzip2_handle; GnomeVFSResult result; bz_stream *bzstream; int bz_result; *bytes_read = 0; bzip2_handle = (Bzip2MethodHandle *) method_handle; bzstream = &bzip2_handle->bzstream; if (bzip2_handle->last_bz_result != BZ_OK) { if (bzip2_handle->last_bz_result == BZ_STREAM_END) return GNOME_VFS_ERROR_EOF; else return result_from_bz_result (bzip2_handle->last_bz_result); } else if (bzip2_handle->last_vfs_result != GNOME_VFS_OK) { return bzip2_handle->last_vfs_result; } bzstream->next_out = buffer; bzstream->avail_out = num_bytes; while (bzstream->avail_out != 0) { result = fill_buffer (bzip2_handle, num_bytes); RETURN_IF_FAIL (result); bz_result = BZ2_bzDecompress (&bzip2_handle->bzstream); if (bzip2_handle->last_bz_result != BZ_OK && bzstream->avail_out == num_bytes) { bzip2_handle->last_bz_result = bz_result; return result_from_bz_result (bzip2_handle->last_bz_result); } *bytes_read = num_bytes - bzstream->avail_out; if (bz_result == BZ_STREAM_END) { bzip2_handle->last_bz_result = bz_result; break; } } return GNOME_VFS_OK; } /* Write. */ static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { Bzip2MethodHandle *bzip2_handle; GnomeVFSResult result; bz_stream *bzstream; gint bz_result; bzip2_handle = (Bzip2MethodHandle *) method_handle; bzstream = &bzip2_handle->bzstream; bzstream->next_in = (gpointer) buffer; bzstream->avail_in = num_bytes; result = GNOME_VFS_OK; while (bzstream->avail_in != 0 && result == GNOME_VFS_OK) { if (bzstream->avail_out == 0) { GnomeVFSFileSize written; bzstream->next_out = (char *)bzip2_handle->buffer; result = gnome_vfs_write (bzip2_handle->parent_handle, bzip2_handle->buffer, BZ_BUFSIZE, &written); if (result != GNOME_VFS_OK) break; bzstream->avail_out += written; } bz_result = BZ2_bzCompress (bzstream, BZ_RUN); result = result_from_bz_result (bz_result); } *bytes_written = num_bytes - bzstream->avail_in; return result; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { g_return_val_if_fail (uri != NULL, FALSE); return gnome_vfs_uri_is_local (uri->parent); } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSResult result; /* Check that the URI is valid. */ if (!VALID_URI(uri)) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_get_file_info_uri(uri->parent, file_info, options); if(result == GNOME_VFS_OK) { gint namelen = strlen(file_info->name); /* work out the name */ /* FIXME bugzilla.eazel.com 2790: handle uppercase */ if(namelen > 4 && file_info->name[namelen-1] == '2' && file_info->name[namelen-2] == 'z' && file_info->name[namelen-3] == 'b' && file_info->name[namelen-4] == '.') file_info->name[namelen-4] = '\0'; /* we can't tell the size without uncompressing it */ /*file_info->valid_fields &= ~GNOME_VFS_FILE_INFO_FIELDS_SIZE;*/ /* guess the mime type of the file inside */ /* FIXME bugzilla.eazel.com 2791: guess mime based on contents */ g_free(file_info->mime_type); file_info->mime_type = g_strdup(gnome_vfs_mime_type_from_name(file_info->name)); } return result; } GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { return; } gnome-vfs-2.24.4/modules/test-method.c0000644000175000001440000004076511334251016014502 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* Test-method.c: Gnome-VFS testing method Copyright (C) 2000 Eazel The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Seth Nickell (seth@eazel.com) */ /* Create a settings file and put it at PREFIX/etc/vfs/Test-conf.xml, * then point gnome-vfs clients to test: which will * translate into the "real" method (e.g. test:///home/seth). * * The delay is in milliseconds. * * Here's a sample config file (pointing to the file method): * * * * * * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define TEST_CONF_ENV_VARIABLE "GNOME_VFS_TEST_CONFIG_FILE" typedef struct { char *operation_name; int delay; gboolean skip; gboolean override_result; GnomeVFSResult overridden_result_value; } OperationSettings; #define NUM_RESULT_STRINGS 41 static gboolean properly_initialized; static guchar *test_method_name; static GList *settings_list; static const char * const result_strings[NUM_RESULT_STRINGS] = { "GNOME_VFS_OK", "GNOME_VFS_ERROR_NOT_FOUND", "GNOME_VFS_ERROR_GENERIC", "GNOME_VFS_ERROR_INTERNAL", "GNOME_VFS_ERROR_BAD_PARAMETERS", "GNOME_VFS_ERROR_NOT_SUPPORTED", "GNOME_VFS_ERROR_IO", "GNOME_VFS_ERROR_CORRUPTED_DATA", "GNOME_VFS_ERROR_WRONG_FORMAT", "GNOME_VFS_ERROR_BAD_FILE", "GNOME_VFS_ERROR_TOO_BIG", "GNOME_VFS_ERROR_NO_SPACE", "GNOME_VFS_ERROR_READ_ONLY", "GNOME_VFS_ERROR_INVALID_URI", "GNOME_VFS_ERROR_NOT_OPEN", "GNOME_VFS_ERROR_INVALID_OPEN_MODE", "GNOME_VFS_ERROR_ACCESS_DENIED", "GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES", "GNOME_VFS_ERROR_EOF", "GNOME_VFS_ERROR_NOT_A_DIRECTORY", "GNOME_VFS_ERROR_IN_PROGRESS", "GNOME_VFS_ERROR_INTERRUPTED", "GNOME_VFS_ERROR_FILE_EXISTS", "GNOME_VFS_ERROR_LOOP", "GNOME_VFS_ERROR_NOT_PERMITTED", "GNOME_VFS_ERROR_IS_DIRECTORY", "GNOME_VFS_ERROR_NO_MEMORY", "GNOME_VFS_ERROR_HOST_NOT_FOUND", "GNOME_VFS_ERROR_INVALID_HOST_NAME", "GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS", "GNOME_VFS_ERROR_LOGIN_FAILED", "GNOME_VFS_ERROR_CANCELLED", "GNOME_VFS_ERROR_DIRECTORY_BUSY", "GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY", "GNOME_VFS_ERROR_TOO_MANY_LINKS", "GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM", "GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM", "GNOME_VFS_ERROR_NAME_TOO_LONG", "GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE", "GNOME_VFS_NUM_ERRORS" }; /* Module entry points. */ GnomeVFSMethod *vfs_module_init (const char *method_name, const char *args); void vfs_module_shutdown (GnomeVFSMethod *method); static GnomeVFSURI * translate_uri (GnomeVFSURI *uri) { GnomeVFSURI *translated_uri; char *uri_text; char *translated_uri_text; char *no_method; uri_text = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); no_method = strchr (uri_text, ':'); if (test_method_name != NULL) { translated_uri_text = g_strconcat ((char *)test_method_name, no_method, NULL); } else { translated_uri_text = NULL; } if (translated_uri_text != NULL) { translated_uri = gnome_vfs_uri_new (translated_uri_text); } else { translated_uri = NULL; } g_free (translated_uri_text); g_free (uri_text); return translated_uri; } /* reads the configuration file and returns TRUE if there are special options for this execution of the operation. if TRUE is returned then result will contain the result the operation should return and perform_operation will be TRUE if the operation should execute the underlying operation anyway */ static const OperationSettings * get_operation_settings (const char *function_identifier) { static OperationSettings empty_settings; GList *node; OperationSettings *settings; for (node = settings_list; node != NULL; node = node->next) { settings = node->data; if (g_ascii_strcasecmp (settings->operation_name, function_identifier) == 0) { return settings; } } return &empty_settings; } static const OperationSettings * start_operation (const char *name, GnomeVFSURI **uri, GnomeVFSURI **saved_uri) { const OperationSettings *settings; settings = get_operation_settings (name); g_usleep (settings->delay * 1000); if (uri != NULL) { *saved_uri = *uri; *uri = translate_uri (*uri); } return settings; } static GnomeVFSResult finish_operation (const OperationSettings *settings, GnomeVFSResult result, GnomeVFSURI **uri, GnomeVFSURI **saved_uri) { if (uri != NULL) { gnome_vfs_uri_unref (*uri); *uri = *saved_uri; } if (settings->override_result) { return settings->overridden_result_value; } return result; } #define PERFORM_OPERATION(name, operation) \ do { \ const OperationSettings *settings; \ GnomeVFSURI *saved_uri; \ GnomeVFSResult result; \ \ if (!properly_initialized) { \ return GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE; \ } \ \ settings = start_operation (#name, &uri, &saved_uri); \ if (settings->skip) { \ result = GNOME_VFS_OK; \ } else { \ result = operation; \ } \ return finish_operation (settings, result, \ &uri, &saved_uri); \ } while (0) #define PERFORM_OPERATION_NO_URI(name, operation) \ do { \ const OperationSettings *settings; \ GnomeVFSResult result; \ \ if (!properly_initialized) { \ return GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE; \ } \ \ settings = start_operation (#name, NULL, NULL); \ if (settings->skip) { \ result = GNOME_VFS_OK; \ } else { \ result = operation; \ } \ return finish_operation (settings, result, \ NULL, NULL); \ } while (0) static gboolean parse_result_text (const char *result_text, GnomeVFSResult *result_code) { int i; for (i = 0; i < NUM_RESULT_STRINGS; i++) { if (g_ascii_strcasecmp (result_text, result_strings[i]) == 0) { *result_code = i; return TRUE; } } return FALSE; } static gboolean load_settings (const char *filename) { xmlDocPtr doc; xmlNodePtr node; char *name; OperationSettings *operation; char *str; doc = xmlParseFile (filename); if (doc == NULL || doc->xmlRootNode == NULL || doc->xmlRootNode->name == NULL || g_ascii_strcasecmp ((char *)doc->xmlRootNode->name, "testmodule") != 0) { xmlFreeDoc(doc); return FALSE; } test_method_name = xmlGetProp (doc->xmlRootNode, (guchar *)"method"); for (node = doc->xmlRootNode->xmlChildrenNode; node != NULL; node = node->next) { name = (char *)xmlGetProp (node, (guchar *)"name"); if (name == NULL) { continue; } operation = g_new0 (OperationSettings, 1); operation->operation_name = name; str = (char *)xmlGetProp (node, (guchar *)"delay"); if (str != NULL) { sscanf (str, "%d", &operation->delay); } xmlFree (str); str = (char *)xmlGetProp(node, (guchar *)"execute_operation"); if (str != NULL && g_ascii_strcasecmp (str, "FALSE") == 0) { operation->skip = TRUE; } xmlFree (str); str = (char *)xmlGetProp (node, (guchar *)"result"); if (str != NULL) { operation->override_result = parse_result_text (str, &operation->overridden_result_value); } xmlFree (str); settings_list = g_list_prepend (settings_list, operation); } return TRUE; } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { PERFORM_OPERATION (open, gnome_vfs_open_uri_cancellable ((GnomeVFSHandle **) method_handle, uri, mode, context)); } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { /* FIXME bugzilla.eazel.com 3837: Not implemented. */ return GNOME_VFS_ERROR_INTERNAL; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (close, gnome_vfs_close_cancellable ((GnomeVFSHandle *) method_handle, context)); } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (read, gnome_vfs_read_cancellable ((GnomeVFSHandle *) method_handle, buffer, num_bytes, bytes_read, context)); } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (write, gnome_vfs_write_cancellable((GnomeVFSHandle *) method_handle, buffer, num_bytes, bytes_written, context)); } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (seek, gnome_vfs_seek_cancellable ((GnomeVFSHandle *) method_handle, whence, offset, context)); } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { PERFORM_OPERATION_NO_URI (tell, gnome_vfs_tell ((GnomeVFSHandle *) method_handle, offset_return)); } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { PERFORM_OPERATION (open_directory, gnome_vfs_directory_open_from_uri ((GnomeVFSDirectoryHandle **) method_handle, uri, options)); } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (close_directory, gnome_vfs_directory_close ((GnomeVFSDirectoryHandle *) method_handle)); } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (read_directory, gnome_vfs_directory_read_next ((GnomeVFSDirectoryHandle *) method_handle, file_info)); } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { PERFORM_OPERATION (get_file_info, gnome_vfs_get_file_info_uri_cancellable (uri, file_info, options, context)); } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (get_file_info_from_handle, gnome_vfs_get_file_info_from_handle_cancellable ((GnomeVFSHandle *) method_handle, file_info, options, context)); } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { /* FIXME bugzilla.eazel.com 3837: Not implemented. */ return TRUE; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { PERFORM_OPERATION (make_directory, gnome_vfs_make_directory_for_uri_cancellable (uri, perm, context)); } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { PERFORM_OPERATION (remove_directory, gnome_vfs_remove_directory_from_uri_cancellable (uri, context)); } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { /* FIXME bugzilla.eazel.com 3837: Not implemented. */ return gnome_vfs_move_uri_cancellable (old_uri, new_uri, force_replace, context); } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { PERFORM_OPERATION (unlink, gnome_vfs_unlink_from_uri_cancellable (uri, context)); } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { /* FIXME bugzilla.eazel.com 3837: Not implemented. */ return gnome_vfs_check_same_fs_uris_cancellable (a, b, same_fs_return, context); } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { PERFORM_OPERATION (set_file_info, gnome_vfs_set_file_info_cancellable (uri, info, mask, context)); } static GnomeVFSResult do_truncate (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize where, GnomeVFSContext *context) { PERFORM_OPERATION (truncate, gnome_vfs_truncate_uri_cancellable (uri, where, context)); } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { PERFORM_OPERATION_NO_URI (truncate_handle, gnome_vfs_truncate_handle_cancellable ((GnomeVFSHandle *) method_handle, where, context)); } static GnomeVFSResult do_find_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { PERFORM_OPERATION (find_directory, gnome_vfs_find_directory_cancellable (uri, kind, result_uri, create_if_needed, find_if_needed, permissions, context)); } static GnomeVFSResult do_create_symbolic_link (GnomeVFSMethod *method, GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { PERFORM_OPERATION (create_symbolic_link, gnome_vfs_create_symbolic_link_cancellable (uri, target_reference, context)); } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, do_create, do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, do_open_directory, do_close_directory, do_read_directory, do_get_file_info, do_get_file_info_from_handle, do_is_local, do_make_directory, do_remove_directory, do_move, do_unlink, do_check_same_fs, do_set_file_info, do_truncate, do_find_directory, do_create_symbolic_link }; GnomeVFSMethod * vfs_module_init (const char *method_name, const char *args) { char *conf_file; LIBXML_TEST_VERSION conf_file = getenv (TEST_CONF_ENV_VARIABLE); if (conf_file == NULL) { conf_file = GNOME_VFS_PREFIX "/etc/vfs/Test-conf.xml"; } if (load_settings (conf_file) == FALSE) { /* FIXME: we probably shouldn't use printf to output the message */ printf (_("Didn't find a valid settings file at %s\n"), conf_file); printf (_("Use the %s environment variable to specify a different location.\n"), TEST_CONF_ENV_VARIABLE); properly_initialized = FALSE; } else { properly_initialized = TRUE; } return &method; } void vfs_module_shutdown (GnomeVFSMethod *method) { GList *node; OperationSettings *settings; for (node = settings_list; node != NULL; node = node->next) { settings = node->data; xmlFree (settings->operation_name); g_free (settings); } g_list_free (settings_list); xmlFree (test_method_name); } gnome-vfs-2.24.4/modules/file-method-acl.h0000644000175000001440000000337511334251016015200 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-acl.h - ACL Handling for the GNOME Virtual File System. Virtual File System. Copyright (C) 2005 Christian Kellner Copyright (C) 2005 Sun Microsystems The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner Author: Alvaro Lopez Ortega */ #include #include #include #include #ifndef FILE_ACL_H #define FILE_ACL_H G_BEGIN_DECLS GnomeVFSResult file_get_acl (const char *path, GnomeVFSFileInfo *info, struct stat *statbuf, /* needed? */ GnomeVFSContext *context); GnomeVFSResult file_set_acl (const char *path, const GnomeVFSFileInfo *info, GnomeVFSContext *context); G_END_DECLS #endif /*FILEACL_H*/ gnome-vfs-2.24.4/modules/inotify-helper.c0000644000175000001440000001220211334251016015164 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* inotify-helper.c - Gnome VFS Monitor based on inotify. Copyright (C) 2005 John McCutchan The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: John McCutchan */ #include "config.h" #include #include #include #include #include #include #include #include "inotify-helper.h" #include "inotify-missing.h" #include "inotify-path.h" #include "inotify-diag.h" static gboolean ih_debug_enabled = FALSE; #define IH_W if (ih_debug_enabled) g_warning static void ih_event_callback (ik_event_t *event, ih_sub_t *sub); static void ih_not_missing_callback (ih_sub_t *sub); /* We share this lock with inotify-kernel.c and inotify-missing.c * * inotify-kernel.c takes the lock when it reads events from * the kernel and when it processes those events * * inotify-missing.c takes the lock when it is scanning the missing * list. * * We take the lock in all public functions */ G_LOCK_DEFINE (inotify_lock); static GnomeVFSMonitorEventType ih_mask_to_EventType (guint32 mask); /** * Initializes the inotify backend. This must be called before * any other functions in this module. * * @returns TRUE if initialization succeeded, FALSE otherwise */ gboolean ih_startup (void) { static gboolean initialized = FALSE; static gboolean result = FALSE; G_LOCK(inotify_lock); if (initialized == TRUE) { G_UNLOCK(inotify_lock); return result; } initialized = TRUE; result = ip_startup (ih_event_callback); if (!result) { g_warning( "Could not initialize inotify\n"); G_UNLOCK(inotify_lock); return FALSE; } im_startup (ih_not_missing_callback); id_startup (); IH_W ("started gnome-vfs inotify backend\n"); G_UNLOCK(inotify_lock); return TRUE; } /** * Adds a subscription to be monitored. */ gboolean ih_sub_add (ih_sub_t * sub) { G_LOCK(inotify_lock); if (!ip_start_watching (sub)) { im_add (sub); } G_UNLOCK(inotify_lock); return TRUE; } /** * Cancels a subscription which was being monitored. */ gboolean ih_sub_cancel (ih_sub_t * sub) { G_LOCK(inotify_lock); if (!sub->cancelled) { IH_W("cancelling %s\n", sub->pathname); sub->cancelled = TRUE; im_rm (sub); ip_stop_watching (sub); } G_UNLOCK(inotify_lock); return TRUE; } static void ih_event_callback (ik_event_t *event, ih_sub_t *sub) { gchar *fullpath, *info_uri_str; GnomeVFSURI *info_uri; GnomeVFSMonitorEventType gevent; gevent = ih_mask_to_EventType (event->mask); if (event->name) { fullpath = g_strdup_printf ("%s/%s", sub->dirname, event->name); } else { fullpath = g_strdup_printf ("%s/", sub->dirname); } info_uri_str = gnome_vfs_get_uri_from_local_path (fullpath); info_uri = gnome_vfs_uri_new (info_uri_str); g_free (info_uri_str); gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)sub, info_uri, gevent); gnome_vfs_uri_unref (info_uri); g_free(fullpath); } static void ih_not_missing_callback (ih_sub_t *sub) { gchar *fullpath, *info_uri_str; GnomeVFSURI *info_uri; GnomeVFSMonitorEventType gevent; guint32 mask; if (sub->filename) { fullpath = g_strdup_printf ("%s/%s", sub->dirname, sub->filename); if (!g_file_test (fullpath, G_FILE_TEST_EXISTS)) { g_free (fullpath); return; } mask = IN_CREATE; } else { fullpath = g_strdup_printf ("%s/", sub->dirname); mask = IN_CREATE|IN_ISDIR; } gevent = ih_mask_to_EventType (mask); info_uri_str = gnome_vfs_get_uri_from_local_path (fullpath); info_uri = gnome_vfs_uri_new (info_uri_str); g_free (info_uri_str); gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)sub, info_uri, gevent); gnome_vfs_uri_unref (info_uri); g_free(fullpath); } /* Transforms a inotify event to a gnome-vfs event. */ static GnomeVFSMonitorEventType ih_mask_to_EventType (guint32 mask) { mask &= ~IN_ISDIR; switch (mask) { case IN_MODIFY: return GNOME_VFS_MONITOR_EVENT_CHANGED; break; case IN_ATTRIB: return GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED; break; case IN_MOVE_SELF: case IN_MOVED_FROM: case IN_DELETE: case IN_DELETE_SELF: case IN_UNMOUNT: return GNOME_VFS_MONITOR_EVENT_DELETED; break; case IN_CREATE: case IN_MOVED_TO: return GNOME_VFS_MONITOR_EVENT_CREATED; break; case IN_Q_OVERFLOW: case IN_OPEN: case IN_CLOSE_WRITE: case IN_CLOSE_NOWRITE: case IN_ACCESS: case IN_IGNORED: default: return -1; break; } } gnome-vfs-2.24.4/devel-docs/0000755000175000001440000000000011450333532012525 500000000000000gnome-vfs-2.24.4/devel-docs/Makefile.am0000644000175000001440000000016711334251016014502 00000000000000SUBDIRS = gnome-vfs-tutorial TEXT_FILES = \ gnome-vfs-mime-type-handling.txt # devel-docs/Makefile.am ends here gnome-vfs-2.24.4/devel-docs/Makefile.in0000644000175000001440000005014711450333332014517 00000000000000# 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@ subdir = devel-docs 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 = 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@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = gnome-vfs-tutorial TEXT_FILES = \ gnome-vfs-mime-type-handling.txt 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 devel-docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu devel-docs/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 # devel-docs/Makefile.am ends here # 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: gnome-vfs-2.24.4/devel-docs/gnome-vfs-tutorial/0000755000175000001440000000000011450333532016267 500000000000000gnome-vfs-2.24.4/devel-docs/gnome-vfs-tutorial/Makefile.am0000644000175000001440000000005011334251016020233 00000000000000EXTRA_DIST = \ gnome-vfs-tutorial.sgml gnome-vfs-2.24.4/devel-docs/gnome-vfs-tutorial/Makefile.in0000644000175000001440000003201011450333332020246 00000000000000# 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@ subdir = devel-docs/gnome-vfs-tutorial 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 = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = \ gnome-vfs-tutorial.sgml 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 devel-docs/gnome-vfs-tutorial/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu devel-docs/gnome-vfs-tutorial/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 # 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: gnome-vfs-2.24.4/devel-docs/gnome-vfs-tutorial/gnome-vfs-tutorial.sgml0000644000175000001440000044535711334251016022654 00000000000000 Application Programming Using the GNOME Libraries George Lebl The GNOME Project
jirka@5z.com
1999 George Lebl In this tutorial, you will receive an overview of the GNOME libraries. You will learn how to speed up development of applications by using the many utility routines and objects available through the GNOME libraries, and how to make the GUI more consistent by using standard GNOME UI components. Focus will also be given to C applications using the GTK+ toolkit.
Credits, Copyrights and Other Such Informations All of the code given in this tutorial is under the GNU General Public License or the GNU Library General Public License. It was written by me or the rest of the Gnome core team. Also I would like to apologize if some of my English is not correct, as English is not my first language. I hope that my C is better then my English. GNOME Libraries Overview Where do GNOME Libraries Fit Before going into the specifics of the GNOME libraries, it is important to see where do they fit in the picture of all the different libraries that are used in a GNOME application. The GNOME libraries are the most high level. GTK+ with it's two parts, GTK and GDK, comes next. GTK level provides an object model for C and a UI toolkit with the basic widgets to provide the generic basis for a GUI. GTK depends on GDK, which is a low-level wrapper around Xlib, the library directly talking to the X server. Everything (except for Xlib) depends on GLib which is a very useful C library with many utility and portability functions as well as a range of easy to use containers for C.
GNOME application library hierarchy
Structure of GNOME Libraries We now look at the structure of the GNOME libraries to see what they can offer. Here is a listing of the different libraries that are present in the gnome-libs package: libgnome Toolkit independent utility library libgnomeui Toolkit dependent library libgnorba Library for using ORBit corba implementation with gnome gtk-xmhtml xmHTML widget ported to gtk, used in the help browser zvt A very lean and mean terminal emulator widget libvfs A virtual file-system library used in Midnight Commander libart_lgpl A library used for nice anti-aliased graphics We will not cover gtk-xmhtml, zvt, libvfs, libart_lgpl and libgnorba as they are mostly specialty libraries and some, notably the libvfs and gtk-xmhtml will most likely be phased out and replaced by better components. We can see a clear division between the libgnome and libgnomeui libraries. The former is used in a toolkit independent fashion and could even be used for command line programs that never use X. The latter is the library which supplies the standard widgets and an application framework for applications written using GTK+. It is conceivable to write applications with other toolkits, but nobody as of yet has written a libgnomeui with a different toolkit, and I doubt it will happen soon, as GTK+ is a really great toolkit.
GTK+ Programming Overview GTK+ is a C based toolkit for programming graphical applications in X windows. It is highly object oriented and has bindings to many popular languages, such as C++, Objective C, Perl, TOM, Guile, Python, etc ... GTK+ also uses GLib, which is a very useful C library, and includes things to help porting to different architectures, and containers such as a linked list or a hash. If you are already familiar with GTK+, you are now free to get bored. GLib Naming Conventions GLib is a utility library which is heavily used in GTK+ and most of GNOME. GLib's functions are named starting with g_ (such as g_strdup), GLib's typedefs for common types are just prefixed with a g (such as gint32), and GLib's structures are capitalized and start with G (such as GHashTable). Typedefs GLib provides some typedefs for portability, simplification of code, clarity of code and yet others just to keep consistent. The following table lists these typedefs. If the Equivalent, field is blank, there is no platform independent equivalent.
GLib typedefs Name Equivalent Description gint8 8bit wide signed integer guint8 8bit wide unsigned integer gint16 16bit wide signed integer guint16 16bit wide unsigned integer gint32 32bit wide signed integer guint32 32bit wide unsigned integer gint64 64bit wide signed integer (see note below) guint64 64bit wide unsigned integer (see note below) gcharchar Standard character value gucharunsigned char Standard unsigned character value gshortshort Standard short integer gushortunsigned short Standard unsigned short integer glonglong Standard long integer gulongunsigned long Standard unsigned long integer gintint Standard integer guintunsigned int Standard unsigned integer gfloatfloat Standard float number type gdoubledouble Standard float number type gbooleanint Type for storing TRUE/FALSE values gpointervoid * Type for storing pointers to arbitrary objects gconstpointerconst void * Type for storing pointers to arbitrary immutable objects
It should be noted that gint64 and guint64 might not be available on all platforms. You can check for this in your code by checking to see if the macro G_HAVE_GINT64 is defined. As you can see, some of the typedefs such as gint seem to have no other meaning in life then that of having a 'g' prefix and looking the same as the other typedefs. The logic behind this is to make the code look more consistent and clear. While it is no crime not to use these typedefs, you should really be consistent in your code. Some of the typedefs such as gboolean are only for improving code clarity and you could just as well use int to do exactly the same thing, but the former method clearly indicates that you are talking about a value that can only take TRUE or FALSE. Portability and Utility Functions There are some functions that have different implementations across different systems or are not extremely safe, or don't exist at all on some systems, so GLib provides it's own implementations or wrappers that have a constant behavior and usually check their arguments. Here are some of the more useful functions that fit this category. Note that the prototype is more of an informative one, as some of these might be macros in reality. Few GLib Portability Functions Prototype Description gchar * g_strdup (const gchar *) Returns a newly allocated string which is a copy of the argument, if the argument is NULL, NULL is returnedgpointer g_malloc (int size) Returns a newly region of memory with 'size' bytesvoid g_free (gpointer p) Frees memory pointed to by 'p', and only returns if 'p' is NULLgint g_snprintf (gchar *string, gulong n, gchar const *format, ...) Works just like sprintf by printing the arguments according to the 'format' into string, however it will only use 'n' bytes of the string and will thus truncate the result if it needed more. It returns the number of bytes actually printed into 'string'void g_usleep (gulong count) Suspend execution for at least 'count' microseconds
And there are also some utility functions and macros that are not really found in the normal c library. Here is a very short list of some of the more important and useful ones. Few GLib Utility Functions Prototype Description g_new (type,count) A macro which will allocate new memory for 'count' items of type 'type' and cast the result to 'type'. It is equivalent to '(type) g_malloc(count * sizeof(type))'g_new0 (type,count) Same semantics as g_new, except that the returned memory will be set to all zeros. Note that you should not assume that setting the memory to zeros will zero out floating point typesgchar * g_strconcat (const gchar *str, ...) When passed any number of arguments of the type (const char *) and a NULL after the last argument, it will return a newly allocated string that results by concatenation of all the arguments.gchar * g_strdup_printf (const gchar *format, ...) A printf like function that will return a newly allocated string with the result of the printf operationgchar * g_strstrip (gchar *string) Will strip leading and trailing whitespace from the string. It will not allocate new memory, but will modify the original string and return a pointer to it. If you wish to allocate new memory use a construction such as: 'string2 = g_strstrip(g_strdup(string1));'
There are many other useful methods in GLib, and I urge you to study GLib documentation and the GLib header file (glib.h), and you may be able to save a lot of time by not re-implementing some basic functionality.
Containers Probably the best part of GLib are its containers. Here's a list of GLib's containers. Common GLib containers Name Description GList Doubly linked listGSList Singly linked listGHashTable Hash tableGCache CacheGTree Balanced binary treeGNode n-ary treeGString Dynamically sized stringGArray Dynamically sized arrayGPtrArray Dynamically sized array of pointersGByteArray Dynamically sized array of bytes (guint8)
GList The easiest to use are GList's. The basic GList structure is just a single node of the linked list and you can put your data into the data pointer in the GList structure. To store a linked list you just store a pointer to the first node of the list. Here is the list of functions that operate on a GList. The functions usually take in a pointer and return the new pointer of the list, since the first node could now be a different one. Most important GList functions Prototype Description GList* g_list_append (GList *list, gpointer data) Append 'data' to a list. 'list' can be NULL to make a new list.GList* g_list_prepend (GList *list, gpointer data) Prepend 'data' to a list. 'list' can be NULL to make a new list.GList* g_list_remove (GList *list, gpointer data) Remove the node containing 'data' from the list.GList* g_list_find (GList *list, gpointer data) Find the GList node that contains the 'data'GList* g_list_next (GList *list) A macro that returns a pointer to the next nodeGList* g_list_previous (GList *list) A macro that returns a pointer to the next nodevoid g_list_free(GList *list) Free the entire list.
To access the data from a particular GList node You look at the data member in the GList structure. So code that would create a linked list of two elements which are strdup'ed strings, and later free that list and the strings would look like: GList *list = NULL; /*the actual list pointer*/ GList *li; /*just a temporary pointer to a node used for iterating over the list*/ ... /*here we add two strings to the list*/ list = g_list_append(list,g_strdup("String 1")); list = g_list_append(list,g_strdup("String 2")); ... /*here we loop though the list, freeing all the strings and then we free the list itself*/ for(li = list; li!= NULL; li = g_list_next(li)) { char *string = li->data; g_free(string); } g_list_free(list);
GString Another simple to use and useful container is the GString container. It's a dynamically sized string container for the times when you don't know how large the string you will need will be. Here's a list of the most important functions. Most important GString functions Prototype Description GString* g_string_new (const gchar *init) Create a new GString with initial value of 'init'void g_string_free (GString *string, int free_segment) Free the GString structure and optionally also the string data segmentGString* g_string_append (GString *string, const gchar *val) Append 'val' to 'string'GString* g_string_prepend (GString *string, const gchar *val) Prepend 'val' to 'string'void g_string_sprintf (GString *string, const gchar *format, ...) A sprintf like function for GStringvoid g_string_sprintfa (GString *string, const gchar *format, ...) A sprintf like function for GString, but appends the string instead of overwriting it
To access the string data for use as a char *, just access the str element of the GString structure. You can actually free the GString structure without freeing this data segment. This is useful if you want to create a normal C string. The following example is a function that takes an array of integers and sprintfs them into a string and returns a char *. char * create_number_list(int array[], int array_len) { int i; /* the array iterator */ GString *string; /* the GString */ char *ret; /* the return value */ /* make a new GString that is empty */ string = g_string_new(""); /* iterate over the integer array */ for(i=0; i<array_len; i++) { /* append the number to the string in parenthesis */ g_string_sprintfa(string, "(%d)", array[i]); } /* setup the return value */ ret = string->str; /* free the GString structure, but not the data */ g_string_free(string,FALSE); /* return the string */ return ret; }
GHashTable Though less often used then GList's and GString's. The hash table container is a very useful one. Usually by a hash table one would mean an object (in GLib's terms a gpointer) would have a string key, by which we could recall the object at a later time. GLib takes this a step further, making the key a gpointer as well, and letting you provide a hashing and a comparison function yourself. While this makes GHashTable much more flexible, it can lead to some confusion with respect to memory allocation for the keys. Let's give some important functions and deal with the details later: Most important GHashTable functions Prototype Description GHashTable* g_hash_table_new (GHashFunc hash_func, GCompareFunc key_compare_func) Creates a new hash table using the specified hash function and comparison functionvoid g_hash_table_destroy (GHashTable *hash_table) Destroy the hash table and free memory. This does not however free neither the data, nor the keys, you have to do this yourselfvoid g_hash_table_insert (GHashTable *hash_table, gpointer key, gpointer value) Insert a new 'value' with a key of 'key'.void g_hash_table_remove (GHashTable *hash_table, gconstpointer key) Remove the value with the key of 'key' from the table. Doesn't free neither the key nor the value.gpointer g_hash_table_lookup (GHashTable *hash_table, gconstpointer key) Fetch the pointer of the value, with the key of 'key'. Returns NULL if it isn't foundgboolean g_hash_table_lookup_extended (GHashTable *hash_table, gconstpointer lookup_key, gpointer *orig_key, gpointer *value) Lookup the data with the key of 'value_key', store the original key pointer in 'orig_key' and the value in 'value'. Returns TRUE if the lookup was successful else it returns FALSE. You should use this function when removing an item to get rid of the original key in memory. void g_hash_table_foreach (GHashTable *hash_table, GHFunc func, gpointer user_data) Run a function for each data stored in the hash table. The 'user_data' will be passed to the function as the last argument. The GHFunc prototype follows.void (*GHFunc) (gpointer key, gpointer value, gpointer user_data) This is the function prototype that you will use for the function that is passed to g_hash_table_foreach. It gets passed the key, the value and the user_data specified in the g_hash_table_foreach call.guint g_str_hash (gconstpointer v) A standard string hash function for string hash tablesgint g_str_equal (gconstpointer v, gconstpointer v2) A standard string compare function for string hash tables
To create a hash table, you pass the hash and key compare functions to g_hash_table_new. There are standard functions defined for strings (g_str_hash and g_str_equal) and others. However if you pass NULL as the hash and compare functions, you will get a direct pointer hash, where pointers will be actually themselves used as keys. The problem of memory allocation becomes apparent when we start using string hashes. GHashTable doesn't store the string, all it stores is a pointer. Therefore, when inserting a value into the hash, you have to create a new copy of the key for that value. This is an important thing to remember as otherwise things are not going to behave really nice for you. The other problem is how to then get rid of the key. If you do a g_hash_table_remove, you give as a key a string with the same contents as the original key, but not the same memory location. After then a pointer to the original key would be lost and unless you stored a pointer to it somewhere, you just created a memory leak. What you need to do instead is to do a g_hash_table_lookup_extended first to get both the value and the original key pointer and then do the g_hash_table_remove. The following example will make a new string hash, insert a couple of strings into it, retrieve them, and then destroy the hash and the values stored in it: /* function we use for freeing the keys and data in the hash before we destroy the hash */ static void free_key_value(gpointer key, gpointer value, gpointer user_data) { g_free(key); g_free(value); } ... /* somewhere else in the code */ GHashTable *ht; /* create a new hash table with strings as keys */ ht = g_hash_table_new(g_str_hash, g_str_equal); /* insert a couple of strings (say colors keyed by shape) */ g_hash_table_insert(ht, g_strdup("triangle"), g_strdup("green")); g_hash_table_insert(ht, g_strdup("square"), g_strdup("red")); g_hash_table_insert(ht, g_strdup("circle"), g_strdup("blue")); /* again, somewhere else in the code */ ... /* now here we wish to print out the color of a square */ char *color; /* get the color of a square */ color = g_hash_table_lookup(ht, "square"); printf("The color of a square is: %s\n",color); /* yet again somewhere else */ ... /* Now here we just want to destroy the hash table and free all the * memory associated with it. We use the free_key_value function and * have it run over all the values in the hash table. */ g_hash_foreach(ht, free_key_value, NULL); /* now we can destroy the actual hash table */ g_hash_table_destroy(ht);
More GLib information For more information look at the glib.h header file and at the documentation on the www.gtk.org web site. GTK+ GUI Basics Writing a GTK+ based GUI application is in essence extremely simple, and we'll use the Hello World example from Ian Main's excellent GTK+ tutorial, which is a very useful guide to writing gnome applications. But first we'll talk about the basic philosophy behind GTK+. GTK+ is a container based toolkit, meaning you don't specify where the widget is, but you specify in what container it is. Some widgets, such as a window or a frame or a button, are containers that hold only one other widget. For example a button with a label is actually a button into which we added a label widget. If you need to put more widgets into that container, you will need to add another container into them, one that holds more then one widget such as a horizontal box. In fact most layout of windows is usually done with containers such as horizontal boxes, vertical boxes and tables, those are the most important to learn. A horizontal box is a widget that you can add several widgets into and they will be added in a horizontal row. The height of the horizontal box is the height of the highest widget added, and the length is the length of all widgets combined. Vertical box behaves exactly the same, except that it's vertical instead of horizontal. A table can take in widgets at different rows and columns.
Example window hierarchy
GTK+ Object Model Gtk's object model is an object oriented framework for C. It includes singular object inheritance, virtual methods, signals, runtime object modification, runtime type checking, and other goodies. While writing a GTK+ object is more involved then say writing an object in something like Java, it does have many advantages. GTK+ is an object model which doesn't require inheritance for most things you do with objects. For one, since methods are just functions that take the pointer to the object as the first argument, it's easy to write more methods in your own code, which are missing in the original object. Data on Objects There is a way to store arbitrary named data in objects to extend the object. This is done with the method, gtk_object_set_data (or gtk_object_set_user_data for a single unnamed pointer). To retrieve data, one uses gtk_object_get_data. Example: GtkObject *obj; void *some_pointer; ... /*here we set "some_data" data on obj to point to some_pointer*/ gtk_object_set_data(obj,"some_data",some_pointer); ... /*retrieve pointer to some_data from obj and store it in some_pointer*/ some_pointer = gtk_object_get_data(obj,"some_data"); The pointer can be a pointer to anything since it's manipulated as a (void *). GTK+/GNOME Naming Conventions Both GTK+ and GNOME use the same naming convention when naming objects and functions. GTK+ uses a prefix of gtk_ for functions, and Gtk for objects, and GNOME uses gnome_ and Gnome. When a function is a method for an object, the name (lower case) is appended to the prefix. For example the button object is named GtkButton (that is the name of the C struct holding the data for the object), and say the "new" method for GtkButton is then called gtk_button_new. Macros associated with objects use the same naming convention as functions, but are all capitalized. For example a macro that casts an object to a GtkButton is called GTK_BUTTON. There are exceptions, notably the type checking macro, which is called GTK_IS_BUTTON for GtkButton. Using GTK+ Methods Since GTK+ is object oriented, it uses inheritance for it's widgets. For example GtkHBox and GtkVBox are derived from GtkBox. And thus you can use any GtkBox method on a GtkVBox or GtkHBox. However you need to cast the GtkVBox object to GtkBox before you call the function. This could be done with standard C casts such as: GtkVBox *vbox; ... gtk_box_pack_start((GtkBox *)vbox, ...); ... This would work, however it is unsafe. GTK+ provides a mechanism of checking the types, so that it can warn you if you are casting an object which does not derive from the object you are casting to, or if you try to cast a NULL pointer. The macro is all capital name of the widget. For example the above code snippet would be GtkVBox *vbox; ... gtk_box_pack_start(GTK_BOX(vbox), ...); ... GNOME uses the exact same form so anything you learn about GTK+ can be used for GNOME widgets, you just replace the GTK prefix with GNOME. Example Hello World Program Here is the promised example code for the hello world program. It doesn't use any advanced containers, just a window and a button onto which a label is added. It illustrates the basic workings of a GUI program written in GTK+. Don't be scared by it's size, it's mostly comments. /* example-start helloworld helloworld.c */ #include <gtk/gtk.h> /* this is a callback function. the data arguments are ignored in * this example.. More on callbacks below. */ void hello (GtkWidget *widget, gpointer data) { g_print ("Hello World\n"); } gint delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) { g_print ("delete event occurred\n"); /* if you return FALSE in the "delete_event" signal * handler, GTK will emit the "destroy" signal. * Returning TRUE means you don't want the window * to be destroyed. This is useful for popping up * 'are you sure you want to quit ?' type dialogs. */ /* Change TRUE to FALSE and the main window will * be destroyed with a "delete_event". */ return (TRUE); } /* another callback */ void destroy (GtkWidget *widget, gpointer data) { gtk_main_quit (); } int main (int argc, char *argv[]) { /* GtkWidget is the storage type for widgets */ GtkWidget *window; GtkWidget *button; /* this is called in all GTK applications. * arguments are parsed from the command line and * are returned to the application. */ gtk_init (&argc, &argv); /* create a new window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* when the window is given the "delete_event" signal * (this is given by the window manager, usually by * the 'close' option, or on the titlebar), we ask * it to call the delete_event () function as defined * above. The data passed to the callback function * is NULL and is ignored in the callback function. */ gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); /* here we connect the "destroy" event to a signal * handler. This event occurs when we call * gtk_widget_destroy() on the window, or if we * return 'FALSE' in the "delete_event" callback. */ gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (destroy), NULL); /* sets the border width of the window. */ gtk_container_border_width (GTK_CONTAINER (window), 10); /* creates a new button with the label "Hello World". */ button = gtk_button_new_with_label ("Hello World"); /* When the button receives the "clicked" signal, it * will call the function hello() passing it NULL as * it's argument. The hello() function is defined * above. */ gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (hello), NULL); /* This will cause the window to be destroyed by * calling gtk_widget_destroy(window) when "clicked". * Again, the destroy signal could come from here, * or the window manager. */ gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window)); /* this packs the button into the window * (a gtk container). */ gtk_container_add (GTK_CONTAINER (window), button); /* the final step is to display this newly created * widget... */ gtk_widget_show (button); /* and the window */ gtk_widget_show (window); /* all GTK applications must have a gtk_main(). * Control ends here and waits for an event to occur * (like a key press or mouse event). */ gtk_main (); return 0; } /* example-end */ For more information look at the header files in <prefix>/include/gtk/ and <prefix>/include/gdk/ and at the documentation on the www.gtk.org web site.
GNOME Programming Introduction What Is a GNOME Program A GNOME program is a GTK+ GUI application, which makes use of the GNOME libraries. The GNOME libraries make it possible to have similar look and feel among applications, and to make simple things, simple to program. Plus the GNOME libraries add a whole bunch of widgets that simply don't fit into GTK+. Very Basic GNOME Program The following program creates a basic gnome window and adds a horizontal box into which it packs two buttons, which (when pressed) print a string onto the stdout of the terminal you started the application from. The semantics and structure of a GNOME program is very similar to a pure GTK+ program. /* * A simple Gnome program, outside of GNOME tree, not using i18n * buttons.c */ /* the very basic gnome include */ #include <gnome.h> /* a callback for the buttons */ static void button_clicked(GtkWidget *button, gpointer data) { /* the string to print is passed though the data field (which is a void *) */ char *string = data; /* print a string on the standard output */ g_print(string); } /* called when the user closes the window */ static gint delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) { /* signal the main loop to quit */ gtk_main_quit(); /* return FALSE to continue closing the window */ return FALSE; } int main(int argc, char *argv[]) { GtkWidget *app; GtkWidget *button; GtkWidget *hbox; /* Initialize GNOME, this is very similar to gtk_init */ gnome_init ("buttons-basic-example", "0.1", argc, argv); /* Create a Gnome app widget, which sets up a basic window for your application */ app = gnome_app_new ("buttons-basic-example", "Basic GNOME Application"); /* bind "delete_event", which is the event we get when the user closes the window with the window manager, to gtk_main_quit, which is a function that causes the gtk_main loop to exit, and consequently to quit the application */ gtk_signal_connect (GTK_OBJECT (app), "delete_event", GTK_SIGNAL_FUNC (delete_event), NULL); /* create a horizontal box for the buttons and add it into the app widget */ hbox = gtk_hbox_new (FALSE,5); gnome_app_set_contents (GNOME_APP (app), hbox); /* make a button and add it into the horizontal box, and bind the clicked event to call button_clicked */ button = gtk_button_new_with_label("Button 1"); gtk_box_pack_start (GTK_BOX(hbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (button_clicked), "Button 1\n"); /* and another button */ button = gtk_button_new_with_label("Button 2"); gtk_box_pack_start (GTK_BOX(hbox), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (button_clicked), "Button 2\n"); /* show everything inside this app widget and the app widget itself */ gtk_widget_show_all(app); /* enter the main loop */ gtk_main (); return 0; } Please note the use of gnome_init instead of gtk_init, and GnomeApp widget instead of just a regular GtkWindow. We will go into detail of these later. Overview OK now we look at what the different libraries that we are going to cover do. First we look at the libgnome library and it's functionality, then we'll cover libgnomeui to complete all the basic functionality of a gnome program. We will take a look at the gnome-canvas in detail, as it is extremely powerful and useful widget. We'll also say a few things about drag and drop. Using the libgnome Library The libgnome library is the non-toolkit specific utility library for GNOME applications, and includes things like configuration file reading, .desktop file handling, special GLib like utility routines, getting the standard file locations for GNOME, handling mime types, handling meta-data on files, sound, "triggers", and other useful things one could want to use. Also say that you are writing an application in say motif, but you want your app to be more GNOME friendly. Then you could use this library to make your application work well with other GNOME programs. Configuration Files The gnome-config routines provide an easy way to store configuration info in files. To see a full list of the routines, look in the libgnome/gnome-config.h header file. The routines all working with a path. The path is a Unix like path, but the root is set to the ~/.gnome/ directory. So /some/config/path/file/sectionA/keyB, refers to the file ~/.gnome/some/config/path/file, and inside the file using section sectionA and key keyB. Reading Configuration Info To read configuration information gnome_config_get_* functions are used. the * is replaced by the type of the data, it can be int, float, string, bool and vector. The int functions work with gint, float functions work with gdouble, string functions work with gchar *, bool functions work with gboolean and vector work with an argc like array of strings (gint and gchar **). For the gnome_config_get_* functions, the default to be returned if the file section or key are not found can be appended to the path after an equals sign. If you need to know if the default was used, you can append _with_default to the function name and add a parameter which is a gboolean *, though which the function returns whether it used the default or if it actually found a real value. Example follows: int counter; char *text; gboolean def; ... counter = gnome_config_get_int_with_default("/example/section/counter=1", &def); if(def) g_print("Default used for counter!\n"); text = gnome_config_get_string("/example/section/text=TEXT"); ... g_free(text); Note that the string returned by gnome_config_get_string should be freed with g_free, the vector from gnome_config_get_vector should also be freed with g_free. Writing Configuration Info To write configuration info to files, the gnome_config_set_* functions are used. The use is very similar to above to the gnome_config_get_* functions. The types used are exactly the same. Except with the "set" functions, you pass the data you want to store after the path, and there is no default inside the path. If the directory in the path doesn't exist it will get created when the functions are written to disk. After you set all your data, you need to call gnome_config_sync to actually write your data to file. The library will not write the data to file immediately for efficiency reasons. Example follows: char *text; int counter; ... /*after we have set text and counter to some values we can write them to our config location*/ gnome_config_set_int("/example/section/counter",counter); gnome_config_set_string("/example/section/text",text); gnome_config_sync(); Privacy Functions If you want to store sensitive data, that other users should not read, use the gnome_config_private_* functions, which have exactly the same behavior as the above functions, with the exception of gnome_config_sync (and a few others) which doesn't have a private equivalent since it works for both. The difference is that these functions write to a directory called ~/.gnome_private on which 0700 permissions are enforced. This is not extremely secure, but because of the highly brain-dead US export restrictions, we can't really use encryption. Using gnome-config for Arbitrary Files If you wish to use gnome-config for reading and writing of arbitrary files on the file-system (as long as those files are in the gnome-config format), you can just prepend '=' to the beginning of the path and another '=' to the end of the file name. Example follows: char buf[256]; ... /*write some bogus data to a temporary file*/ g_snprintf(buf,256,"=%s=/section/key",tmpnam(tmpnam)); gnome_config_set_int(buf,999); gnome_config_sync(); Note that it doesn't really make sense to use the private versions when using an arbitrary absolute path, as there will be absolutely no difference between the two. Automatic Prefixes Sometime, especially if you have a long path, would be much easier to say have the config automatically prefix the path with a given string. This is what gnome_config_push_prefix and gnome_config_pop_prefix are for. You pass the string you want to prefix to gnome_config_push_prefix and call gnome_config_pop_prefix when you are done. Note that these functions are common between private and normal config functions. Example: gnome_config_push_prefix("/file/section/"); gnome_config_set_int("key1",1); gnome_config_set_int("key2",2); gnome_config_set_int("key3",-88); gnome_config_pop_prefix(); Misc gnome-config Stuff If you need to remove a file in your configuration file, you will use gnome_config_clean_file. This function will schedule that file to be deleted on the next gnome_config_sync. You can do a gnome_config_clean_file and then use the file and then do gnome_config_sync, and it will have the expected behavior. If you have written to a file or read from a file and want gnome-config to drop it from memory, use gnome_config_drop_file. This is used if you want to forget changes done to that file, or to simply conserve memory, since gnome-config will otherwise keep a copy of the data in memory for faster access. .desktop Files The .desktop files are the files that contain information about programs. The files are in the gnome-config format and are internally read using gnome-config. Your app definitely needs one of these files installed in the system menu paths if it wants to be added to the menu. You can use gnome_desktop_entry_* functions to manipulate these files. These functions work with a structure called GnomeDesktopEntry and you should look at the libgnome/gnome-dentry.h header file for the format of this structure. The basic functions that you use to manipulate these files are gnome_desktop_entry_load which returns a newly allocated GnomeDesktopEntry structure, gnome_desktop_entry_launch which takes the GnomeDesktopEntry structure as an argument and launches the program it describes and gnome_desktop_entry_free which frees the allocated memory with the structure. An example .desktop file for your app might look like: [Desktop Entry] Name=Clock Name[cz]=Hodiny Comment=Digital Clock Comment[cz]=Digitalni Hodiny Exec=digital-clock Icon=clock.png Terminal=0 Type=Application You will notice that there are translations for Name and Comment fields in Czech. For gnome programs to notice your .desktop file, it is usually located somewhere under <prefix>/share/apps/, which contains the hierarchy of the system menus. For the system to find your icon, your icon should be placed inside the <prefix>/share/pixmaps directory. Note that the prefix refers to the location where GNOME was installed. Utility and Files Files There is a standard way to find files that belong to gnome installation, you shouldn't really be using your own logic to find them and you should use these functions to get filenames for icons, sounds or other data. Also these functions are only for finding files that were installed with the GNOME libraries. There is not at this time functions to deal with data installed by your application. The functions are: File finding functions Prototype Description char *gnome_libdir_file (const char *filename) Get a full path of a file in the library directory or NULL if the file doesn't existchar *gnome_unconditional_libdir_file (const char *filename) Get a full path of a file in the library directorychar *gnome_datadir_file (const char *filename) Get a full path of a file in the data director or NULL if the file doesn't existchar *gnome_unconditional_datadir_file (const char *filename) Get a full path of a file in the data directorchar *gnome_sound_file (const char *filename) Get a full path of a file in the sound directory or NULL if the file doesn't existchar *gnome_unconditional_sound_file (const char *filename) Get a full path of a file in the sound directorychar *gnome_pixmap_file (const char *filename) Get a full path of a file in the pixmap directory or NULL if the file doesn't existchar *gnome_unconditional_pixmap_file (const char *filename) Get a full path of a file in the pixmap directorychar *gnome_config_file (const char *filename) Get a full path of a file in the config directory or NULL if the file doesn't existchar *gnome_unconditional_config_file (const char *filename) Get a full path of a file in the config directory
These functions return a newly g_malloced string and you should use g_free on the string when you are done. The gnome_unconditional_* functions don't check if the file actually exist and will just return a file name. The normal functions will check and return NULL if the file doesn't exist. So you shouldn't use those functions when you will do saving. As an example we want to get a pixmap from the standard pixmap directory, for example we need to get the "gnome-help.png" icon: char *name; ... name = gnome_pixmap_file("gnome-help.png"); if(!name) { g_warning("gnome-help.png doesn't exist!"); } else { /*here we use the file*/ ... g_free(name); } Also of interest are the functions (actually macros) gnome_util_home_file and gnome_util_user_home. gnome_util_home_file takes one argument (string) and returns a newly allocated string with the home directory and .gnome prepended to the file. So for example if you pass it say someconfigfile, it would return /home/jirka/.gnome/someconfigfile. Similar is the gnome_util_user_home, it takes one argument and returns the file with just the home directory added. So if you pass it .dotfile, it would return /home/jirka/.dotfile.
Utility There are also a number of GLib like named functions to make your life easier, of note would be g_file_exists which takes a filename and returns TRUE if it exists or FALSE if it doesn't, or g_concat_dir_and_file which takes a directory name and a file name, and takes care of the '/' issue, this is useful when working with strings where you don't want to check for the '/', you just want to append a directory to some file, or another directory. Note that you should g_free the string you get as usual. For more utility functions, look into libgnome/gnome-util.h, it is well commented.
Mime Types Sometimes it's useful to know the mime-type of a file. You can do this by using the gnome_mime_type_or_default function, which takes two arguments, the filename and a default mime-type string which it will return if it can't figure out the mime type from the filename. This call doesn't actually look into the file, it tries to guess the type by looking at the filename itself. Also the string it returns is a pointer to it's internal database and you should not free it as that would likely result in a segfault later on. You can also use gnome_mime_type which will return NULL if it can't guess the mime-type. It is also possible to work with URI lists, such as the ones used sometimes in Drag and Drop. Usually from an URI list you want to extract a list of filenames that you just received. For that you use the gnome_uri_list_extract_filenames function, which takes the URI list as a string argument, and returns a GList * of newly allocated strings. Once you are done with the files, you should free the strings and the list. You can use the utility routine gnome_uri_list_free_strings to do this for you. In the following example I write a drag and drop handler that takes the files and finds out their mime information, then you could just write code that can do things based on the mime type of the files. /*this is the handler for the drag_data_receive signal, assuming our widget only accepts the "text/uri-list" mime type of data, drag and drop is a more complicated topic and you should read up on GTK+ documentation for better treatment*/ static void dnd_drop_internal (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time) { GList *files, *li; /*here we extract the filenames from the URI-list we received*/ files = gnome_uri_list_extract_filenames(selection_data->data); /*here we loop though the files and get their mime-type*/ for(li = files; li!=NULL ; li = g_list_next(li)) { char *mimetype; char *filename = li->data; /*guess the mime type of the file*/ mimetype = gnome_mime_type(filename); /*if we can't guess it, just loop to the next filename*/ if(!mimetype) continue; /*here comes code that can actually do something based on the mime-type of the file we received*/ ... } /*free the list of files we got*/ gnome_uri_list_free_strings (files); } Note how easy it is to find out what files you got, and what type they are. You would just need to add some code instead of the three dots that actually compares the mime strings you got to some you have to figure out what you can do with the files. Meta Data Sometimes it is useful to store some information along with a filename, this can be done easily with the gnome-metadata. It is a set of functions to manage this data. Since Unix doesn't natively support meta-data, you have to help it yourself. For example if your app copies, renames or deletes files, use the following functions. Metadata functions Prototype Description int gnome_metadata_rename (const char *from, const char *to) Notify the metadata database that a file has been renamedint gnome_metadata_copy (const char *from, const char *to) Notify the metadata database that a file has been copiedint gnome_metadata_delete (const char *file) Notify the metadata database that a file has been deletedint gnome_metadata_set (const char *file, const char *name, int size, const char *data) Set data associated with the file 'file', and key 'name'. The data is pointed to by 'data' and is 'size' bytes long. GNOME_METADATA_OK is returned on success.int gnome_metadata_get (const char *file, const char *name, int *size, char **buffer) Get data associated with file 'file' and key 'name'. Data will be copied to a buffer and 'buffer' will be set to point to it, and 'size' will be set to the size of the buffer. GNOME_METADATA_OK is returned on success.char **gnome_metadata_list (const char *file) Get a list of the keys for which there is some data set on 'file'. The list will be a newly allocated, NULL terminated string vector and should be freed with g_strfreev
Metadata return values Name Description GNOME_METADATA_OKNo error (this is actually 0)GNOME_METADATA_IO_ERRORIO or other low-level communications/storage error.GNOME_METADATA_NOT_FOUNDInformation not found.
These functions don't actually do the operations on the files, they just change the meta-data accordingly. So if your app does any of these operations, it is nicer towards other apps, that it notifies the meta-data database of the changes. You shouldn't rely on the data being stored. Only non-critical data should be stored in the meta-data, since apps that do not notify the database with these functions will make you loose your data for the file. These functions will return 0 or GNOME_METADATA_OK if there was no error, or an error-code (described above). Now if you actually want to use the meta-data to store information about files, you will most likely use the functions gnome_metadata_set, gnome_metadata_remove and gnome_metadata_get. Again these functions return an integer, which is GNOME_METADATA_OK in case there was no error, or they use the same error codes as the previous functions. The functions work with a a key string for which they store a piece of data. The data is represented by a size integer and a character pointer. gnome_metadata_set takes the filename as the first argument, the name or key of the data as the second argument, the size as the third and the pointer to the actual data as the forth argument. This function just sets that data for that file and key. gnome_metadata_remove will clear a particular data item on a file, so it takes a file and then the key name as the second argument. gnome_metadata_get takes the filename as the first argument and the key name as the second, then it returns data size though an integer pointer you pass though the third argument and the actual data though a pointer to a pointer you pass as the fourth argument. The data returned is newly allocated and should be freed after use. Small example follows (in real life you should also check the return of the functions for errors): int size; char *data; ... /*set some bogus data on a file*/ gnome_metadata_set("/some/file/name","bogus",5,"BLAH"); ... /*retrieve the data back*/ gnome_metadata_get("/some/file/name","bogus",&size,&data);
Using the libgnomeui Library The libgnomeui library is the library you'll be using most, it includes the basic UI framework of your application and other X and GTK+ specific things, such as session management, and many utility widgets. It also contains the GnomeCanvas widget, which deserves separate treatment. This is the library that makes the programmers life easy. With plain GTK+ you have to do a lot of things by yourself, reinventing the wheel every time, but this library takes care of the UI setup for you and still allows the user to configure that behavior and have it be consistent over different applications. GnomeApp Widget Basics Overview GnomeApp is the basic widget behind each app. It is the main window of the application, containing the document being worked on and the applications menus, tool-bars and status bars. It also remembers the docked positions of menu bars and tool-bars and such for you so that the user gets the window the way he left it when he left the application last time. Creating Creating a new GnomeApp widget is as easy as calling gnome_app_new with the application name, which is usually the name of the executable or something else that is unique to your application and the title of the main window. Then you create the content of the main window and add it to the GnomeApp widget by calling gnome_app_set_contents with your contents as the argument. Adding menu-bars, tool-bars and status-bars is equally easy, you call gnome_app_set_toolbar, gnome_app_set_menus or gnome_app_set_statusbar. gnome_app_set_toolbar is for simple applications that have only one tool-bar, for more complicated applications you need to use gnome_app_add_toolbar, which allows you to add as many docked tool-bars as you need. Menu and Tool-bar Creation Automatic Menu and Tool-bar Creation Most of the time, you don't really want to create your menu-bars and tool-bars by yourself. You can use functions from libgnomeui/gnome-app-helper.h to construct menus and tool-bars for you. All you need is to fill in a couple of structures with the your information, and call gnome_app_create_menus or gnome_app_create_toolbar with that structure and voila, your application has menus and tool-bars. Sometimes you wish to pass a data pointer to all the callbacks from those structures to work with, then you'd use the gnome_app_create_toolbar_with_data and gnome_app_create_menus_with_data, and pass an extra parameter which will be passed in the data field of the callbacks. GnomeUIInfo Structure Definition Here is the definition of the structure you need to fill (actually you fill in an array of such structures). Also note I included the enums that you will need to fill that structure. /* These values identify the type of pixmap used in an item */ typedef enum { GNOME_APP_PIXMAP_NONE, /* No pixmap specified */ GNOME_APP_PIXMAP_STOCK, /* Use a stock pixmap (GnomeStock) */ GNOME_APP_PIXMAP_DATA, /* Use a pixmap from inline xpm data */ GNOME_APP_PIXMAP_FILENAME /* Use a pixmap from the specified filename */ } GnomeUIPixmapType; /* This is the structure that defines an item in a menu bar * or tool-bar. The idea is to create an array of such * structures with the information needed to create menus or * tool-bars. The most convenient way to create such a structure * is to use the GNOMEUIINFO_* macros provided below. */ typedef struct { GnomeUIInfoType type; /* Type of item */ gchar *label; /* String to use in the label */ gchar *hint; /* For tool-bar items, the tool-tip. For menu items, the status bar message */ gpointer moreinfo; /* For an item, toggle-item, or radio-item, this is a pointer to the function to call when the item is activated. For a subtree, a pointer to another array of GnomeUIInfo structures. For a radio-item lead entry, a pointer to an array of GnomeUIInfo structures for the radio item group. For a help item, specifies the help node to load (i.e. the application's identifier) or NULL for the main program's name. For builder data, points to the GnomeUIBuilderData structure for the following items */ gpointer user_data; /* Data pointer to pass to callbacks */ gpointer unused_data; /* Reserved for future expansion, should be NULL */ GnomeUIPixmapType pixmap_type; /* Type of pixmap for the item */ gpointer pixmap_info; /* Pointer to the pixmap * information: * * For GNOME_APP_PIXMAP_STOCK, a * pointer to the stock icon name. * * For GNOME_APP_PIXMAP_DATA, a * pointer to the inline xpm data. * * For GNOME_APP_PIXMAP_FILENAME, a * pointer to the filename string. */ guint accelerator_key; /* Accelerator key, or 0 for none */ GdkModifierType ac_mods; /* Mask of modifier keys for the accelerator */ GtkWidget *widget; /* Filled in by gnome_app_create*, you can use this to tweak the widgets once they have been created */ } GnomeUIInfo; Don't worry if you don't know all the items or what they mean. If you don't know what it is, just leave it NULL or 0. Most of the time, it's easiest to copy the menu's from another app and just modify them for your needs, that way you will also know much better what does what then by just looking at the structure. Helper Macros Most of the time, menu entries are very simple, so one can just use one of the simple macros provided. For example, for the end of a menu, one would use the GNOMEUIINFO_END macro, for a separator one uses the GNOMEUIINFO_SEPARATOR macro. Now for the actual items there are also macros, which require you to fill in less info. For example if you have an item that you provide an xpm format data for, you can use the GNOMEUIINFO_ITEM(label, tooltip, callback, xpm_data) macro, where label is the text of the label, tool-tip is the tool-tip that the user gets when he goes over that item (or it can be NULL), callback is the function that gets called when the user presses that item, and the xpm_data is a pointer to an xpm data you want to use as the icon. If you have no icon you can just use the GNOMEUIINFO_ITEM_NONE(label, tooltip, callback) macro. If what you are adding is a standard item for which there is a stock icon (we'll talk about those next), you can use the GNOMEUIINFO_ITEM_STOCK(label, tooltip, callback, stock_id) macro where the stock_id is the id of the stock icon you want to use. Then for your main menu bar, or to put sub-menus inside your menus, you can use GNOMEUIINFO_SUBTREE(label, tree) and GNOMEUIINFO_SUBTREE_STOCK(label, tree, stock_id), where the tree is the array of GnomeUIInfo structures that you want to use as that sub-menu. There are a few other macros, but most of the time you will get by with just these macros, so you don't need to learn the entire structure of the GnomeUIInfo. Standard Menu Item Macros Just about all application contain a couple of standard menu items, so to keep things more consistent there are a bunch of macros that fill in everything for you except for the callback function and the data. The advantage of using the macros is consistency across applications, user customization, and translation. Menu Items Most of these macros have the form: GNOMEUIINFO_MENU_<name>_ITEM (callback, data). However, there is an exception, the "New xxx" item. The GNOME style guide Requires that you put what the "New" thing is into the item name. Not to mention that it will have a different hint as well. So the "New xxx" item has the structure of: GNOMEUIINFO_MENU_NEW_ITEM(label, hint, callback, data). The "label" should start with "New ". Also note that if you have more new items, you need to use the "New" subtree macro, which is explained later. the File menu GNOMEUIINFO_MENU_NEW_ITEM(label, hint, cb, data) "New" menu item (you need to provide label and hint yourself here) GNOMEUIINFO_MENU_OPEN_ITEM(cb, data) "Open" menu item GNOMEUIINFO_MENU_SAVE_ITEM(cb, data) "Save" menu item GNOMEUIINFO_MENU_SAVE_AS_ITEM(cb, data) "Save as..." menu item GNOMEUIINFO_MENU_REVERT_ITEM(cb, data) "Revert" menu item GNOMEUIINFO_MENU_PRINT_ITEM(cb, data) "Print" menu item GNOMEUIINFO_MENU_PRINT_SETUP_ITEM(cb, data) "Print Setup" menu item GNOMEUIINFO_MENU_CLOSE_ITEM(cb, data) "Close" menu item GNOMEUIINFO_MENU_EXIT_ITEM(cb, data) "Exit" menu item the Edit menu GNOMEUIINFO_MENU_CUT_ITEM(cb, data) "Cut" menu item GNOMEUIINFO_MENU_COPY_ITEM(cb, data) "Copy" menu item GNOMEUIINFO_MENU_PASTE_ITEM(cb, data) "Paste" menu item GNOMEUIINFO_MENU_SELECT_ALL_ITEM(cb, data) "Select" menu item GNOMEUIINFO_MENU_CLEAR_ITEM(cb, data) "Clear" menu item GNOMEUIINFO_MENU_UNDO_ITEM(cb, data) "Undo" menu item GNOMEUIINFO_MENU_REDO_ITEM(cb, data) "Redo" menu item GNOMEUIINFO_MENU_FIND_ITEM(cb, data) "Find" menu item GNOMEUIINFO_MENU_FIND_AGAIN_ITEM(cb, data) "Find Again" menu item GNOMEUIINFO_MENU_REPLACE_ITEM(cb, data) "Replace" menu item GNOMEUIINFO_MENU_PROPERTIES_ITEM(cb, data) "Properties" menu item the Settings menu GNOMEUIINFO_MENU_PREFERENCES_ITEM(cb, data) "Preferences" menu item the Windows menu GNOMEUIINFO_MENU_NEW_WINDOW_ITEM(cb, data) "New window" menu item GNOMEUIINFO_MENU_CLOSE_WINDOW_ITEM(cb, data) "Close window" menu item the Help menu GNOMEUIINFO_MENU_ABOUT_ITEM(cb, data) "About" menu item the Game menu GNOMEUIINFO_MENU_NEW_GAME_ITEM(cb, data) "New game" menu item GNOMEUIINFO_MENU_PAUSE_GAME_ITEM(cb, data) "Pause game" menu item GNOMEUIINFO_MENU_RESTART_GAME_ITEM(cb, data) "Restart game" menu item GNOMEUIINFO_MENU_UNDO_MOVE_ITEM(cb, data) "Undo move" menu item GNOMEUIINFO_MENU_REDO_MOVE_ITEM(cb, data) "Redo move" menu item GNOMEUIINFO_MENU_HINT_ITEM(cb, data) "Hint" menu item GNOMEUIINFO_MENU_SCORES_ITEM(cb, data) "Scores" menu item GNOMEUIINFO_MENU_END_GAME_ITEM(cb, data) "End game" menu item Menu trees and subtrees We have already mentioned a "New" subtree. For this you should use the GNOMEUIINFO_MENU_NEW_SUBTREE (tree) macro, where the tree argument is another GnomeUIInfo structure array of the different new items. There are also the standard top level menus. Again you pass the array of GnomeUIInfo structures to the macro. GNOMEUIINFO_MENU_FILE_TREE (tree) "File" menu GNOMEUIINFO_MENU_EDIT_TREE (tree) "Edit" menu GNOMEUIINFO_MENU_VIEW_TREE (tree) "View" menu GNOMEUIINFO_MENU_SETTINGS_TREE (tree) "Settings" menu GNOMEUIINFO_MENU_FILES_TREE (tree) "Files" menu GNOMEUIINFO_MENU_WINDOWS_TREE (tree) "Windows" menu GNOMEUIINFO_MENU_HELP_TREE (tree) "Help" menu GNOMEUIINFO_MENU_GAME_TREE (tree) "Game" menu Sometimes you may want to refer to menu path of these menus, such as for adding items to a "Windows" menu. For this you should use the macros of the form GNOME_MENU_<name>_STRING and GNOME_MENU_<name>_PATH. These will expand to the appropriate string. The macro ending with _STRING will expand to just the menu name, and the macro ending with _PATH to the menu name followed by a "/". The <name> can be one of the following: FILE, EDIT, VIEW, SETTINGS, NEW, FILES or WINDOWS. Help menu Your application should contain a help menu, the help menu can be defined as: GNOMEUIINFO_HELP("app_name"), GNOMEUIINFO_MENU_ABOUT_ITEM(callback, data), GNOMEUIINFO_END The GNOMEUIINFO_HELP macro takes the name of your application and expects the help files to be installed as per normal gnome procedures. FixMe: we need to add some section on help files and stuff Example Here is a very simple application that makes use of these: /* * A simple Gnome program, outside of GNOME tree, not using i18n * uiinfo.c */ /* the very basic gnome include */ #include <gnome.h> /* a callback for the buttons */ static void a_callback(GtkWidget *button, gpointer data) { /*just print a string so that we know we got there*/ g_print("Inside Callback\n"); } GnomeUIInfo file_menu[] = { GNOMEUIINFO_MENU_EXIT_ITEM(gtk_main_quit,NULL), GNOMEUIINFO_END }; GnomeUIInfo some_menu[] = { GNOMEUIINFO_ITEM_NONE("_Menuitem","Just a menuitem", a_callback), GNOMEUIINFO_SEPARATOR, GNOMEUIINFO_ITEM_NONE("M_enuitem2","Just a menuitem", a_callback), GNOMEUIINFO_END }; GnomeUIInfo menubar[] = { GNOMEUIINFO_MENU_FILE_TREE(file_menu), GNOMEUIINFO_SUBTREE("_Some menu",some_menu), GNOMEUIINFO_END }; GnomeUIInfo toolbar[] = { GNOMEUIINFO_ITEM_STOCK("Exit","Exit the application", gtk_main_quit, GNOME_STOCK_PIXMAP_EXIT), GNOMEUIINFO_END }; int main(int argc, char *argv[]) { GtkWidget *app; GtkWidget *button; GtkWidget *hbox; GtkWidget *label; /* Initialize GNOME, this is very similar to gtk_init */ gnome_init ("menu-basic-example", "0.1", argc, argv); /* Create a Gnome app widget, which sets up a basic window for your application */ app = gnome_app_new ("menu-basic-example", "Basic GNOME Application"); /* bind "delete_event", which is the event we get when the user closes the window with the window manager, to gtk_main_quit, which is a function that causes the gtk_main loop to exit, and consequently to quit the application */ gtk_signal_connect (GTK_OBJECT (app), "delete_event", GTK_SIGNAL_FUNC (gtk_main_quit), NULL); /*make a label as the contents*/ label = gtk_label_new("BLAH BLAH BLAH BLAH BLAH"); /*add the label as contents of the window*/ gnome_app_set_contents (GNOME_APP (app), label); /*create the menus for the application*/ gnome_app_create_menus (GNOME_APP (app), menubar); /*create the tool-bar for the application*/ gnome_app_create_toolbar (GNOME_APP (app), toolbar); /* show everything inside this app widget and the app widget itself */ gtk_widget_show_all(app); /* enter the main loop */ gtk_main (); return 0; } Voila, an application with a menu and a tool-bar. As you see, adding extra menu items is just adding extra definitions to the GnomeUIInfo structure array. Accelerator keys You have probably noticed the underlines in the labels for the menu items, these specify the accelerators for that menu. That's really all you need to do to add accelerators for menu items. The way accelerators work is very similar to the other windowing systems out there, alt-<key> if you are not browsing the menus or just the <key> if you have the menu open. Stock Icons Since most of the time you will want to use standard buttons and menu items (such as Open or Save as...), and you want to provide icons with the menu items or tool-bar buttons or just dialog buttons, to make it easier to navigate, you can use some of the predefined icons from gnome-libs. These are called Stock Icons. You have already seen an example of how to use stock menu icons and regular stock icons in menus and tool-bars (you just use the proper define from libgnomeui/gnome-stock.h). There are also stock buttons, where you can get back a button widget based on a stock description. Here is a list of the normal gnome stock icons, these are regular sized for use in tool-bars and other places where you need a normal sized icon. They are given as defines of string constants and their meaning should be obvious. #define GNOME_STOCK_PIXMAP_NEW "New" #define GNOME_STOCK_PIXMAP_OPEN "Open" #define GNOME_STOCK_PIXMAP_CLOSE "Close" #define GNOME_STOCK_PIXMAP_REVERT "Revert" #define GNOME_STOCK_PIXMAP_SAVE "Save" #define GNOME_STOCK_PIXMAP_SAVE_AS "Save As" #define GNOME_STOCK_PIXMAP_CUT "Cut" #define GNOME_STOCK_PIXMAP_COPY "Copy" #define GNOME_STOCK_PIXMAP_PASTE "Paste" #define GNOME_STOCK_PIXMAP_PROPERTIES "Properties" #define GNOME_STOCK_PIXMAP_PREFERENCES "Preferences" #define GNOME_STOCK_PIXMAP_HELP "Help" #define GNOME_STOCK_PIXMAP_SCORES "Scores" #define GNOME_STOCK_PIXMAP_PRINT "Print" #define GNOME_STOCK_PIXMAP_SEARCH "Search" #define GNOME_STOCK_PIXMAP_SRCHRPL "Search/Replace" #define GNOME_STOCK_PIXMAP_BACK "Back" #define GNOME_STOCK_PIXMAP_FORWARD "Forward" #define GNOME_STOCK_PIXMAP_FIRST "First" #define GNOME_STOCK_PIXMAP_LAST "Last" #define GNOME_STOCK_PIXMAP_HOME "Home" #define GNOME_STOCK_PIXMAP_STOP "Stop" #define GNOME_STOCK_PIXMAP_REFRESH "Refresh" #define GNOME_STOCK_PIXMAP_UNDO "Undo" #define GNOME_STOCK_PIXMAP_REDO "Redo" #define GNOME_STOCK_PIXMAP_TIMER "Timer" #define GNOME_STOCK_PIXMAP_TIMER_STOP "Timer Stopped" #define GNOME_STOCK_PIXMAP_MAIL "Mail" #define GNOME_STOCK_PIXMAP_MAIL_RCV "Receive Mail" #define GNOME_STOCK_PIXMAP_MAIL_SND "Send Mail" #define GNOME_STOCK_PIXMAP_MAIL_RPL "Reply to Mail" #define GNOME_STOCK_PIXMAP_MAIL_FWD "Forward Mail" #define GNOME_STOCK_PIXMAP_MAIL_NEW "New Mail" #define GNOME_STOCK_PIXMAP_TRASH "Trash" #define GNOME_STOCK_PIXMAP_TRASH_FULL "Trash Full" #define GNOME_STOCK_PIXMAP_UNDELETE "Undelete" #define GNOME_STOCK_PIXMAP_SPELLCHECK "Spellchecker" #define GNOME_STOCK_PIXMAP_MIC "Microphone" #define GNOME_STOCK_PIXMAP_LINE_IN "Line In" #define GNOME_STOCK_PIXMAP_CDROM "Cdrom" #define GNOME_STOCK_PIXMAP_VOLUME "Volume" #define GNOME_STOCK_PIXMAP_BOOK_RED "Book Red" #define GNOME_STOCK_PIXMAP_BOOK_GREEN "Book Green" #define GNOME_STOCK_PIXMAP_BOOK_BLUE "Book Blue" #define GNOME_STOCK_PIXMAP_BOOK_YELLOW "Book Yellow" #define GNOME_STOCK_PIXMAP_BOOK_OPEN "Book Open" #define GNOME_STOCK_PIXMAP_ABOUT "About" #define GNOME_STOCK_PIXMAP_QUIT "Quit" #define GNOME_STOCK_PIXMAP_MULTIPLE "Multiple" #define GNOME_STOCK_PIXMAP_NOT "Not" #define GNOME_STOCK_PIXMAP_CONVERT "Convert" #define GNOME_STOCK_PIXMAP_JUMP_TO "Jump To" #define GNOME_STOCK_PIXMAP_UP "Up" #define GNOME_STOCK_PIXMAP_DOWN "Down" #define GNOME_STOCK_PIXMAP_TOP "Top" #define GNOME_STOCK_PIXMAP_BOTTOM "Bottom" #define GNOME_STOCK_PIXMAP_ATTACH "Attach" #define GNOME_STOCK_PIXMAP_INDEX "Index" #define GNOME_STOCK_PIXMAP_FONT "Font" #define GNOME_STOCK_PIXMAP_EXEC "Exec" #define GNOME_STOCK_PIXMAP_ALIGN_LEFT "Left" #define GNOME_STOCK_PIXMAP_ALIGN_RIGHT "Right" #define GNOME_STOCK_PIXMAP_ALIGN_CENTER "Center" #define GNOME_STOCK_PIXMAP_ALIGN_JUSTIFY "Justify" #define GNOME_STOCK_PIXMAP_TEXT_BOLD "Bold" #define GNOME_STOCK_PIXMAP_TEXT_ITALIC "Italic" #define GNOME_STOCK_PIXMAP_TEXT_UNDERLINE "Underline" #define GNOME_STOCK_PIXMAP_TEXT_STRIKEOUT "Strikeout" #define GNOME_STOCK_PIXMAP_EXIT GNOME_STOCK_PIXMAP_QUIT If you need to use these outside of GnomeUIInfo, you need to get the widget with the pixmap. What you do is you call the gnome_stock_pixmap_widget function with your main window as the first argument (so that it can copy it's style) and the icon name (one of the above defines) as the second argument. It returns a new widget which you can just use as a pixmap. For menus you want to use the _MENU_ variety of the stock pixmaps. These are smaller and these should be the ones you use for the stock menu items in your GnomeUIInfo definitions. #define GNOME_STOCK_MENU_BLANK "Menu_" #define GNOME_STOCK_MENU_NEW "Menu_New" #define GNOME_STOCK_MENU_SAVE "Menu_Save" #define GNOME_STOCK_MENU_SAVE_AS "Menu_Save As" #define GNOME_STOCK_MENU_REVERT "Menu_Revert" #define GNOME_STOCK_MENU_OPEN "Menu_Open" #define GNOME_STOCK_MENU_CLOSE "Menu_Close" #define GNOME_STOCK_MENU_QUIT "Menu_Quit" #define GNOME_STOCK_MENU_CUT "Menu_Cut" #define GNOME_STOCK_MENU_COPY "Menu_Copy" #define GNOME_STOCK_MENU_PASTE "Menu_Paste" #define GNOME_STOCK_MENU_PROP "Menu_Properties" #define GNOME_STOCK_MENU_PREF "Menu_Preferences" #define GNOME_STOCK_MENU_ABOUT "Menu_About" #define GNOME_STOCK_MENU_SCORES "Menu_Scores" #define GNOME_STOCK_MENU_UNDO "Menu_Undo" #define GNOME_STOCK_MENU_REDO "Menu_Redo" #define GNOME_STOCK_MENU_PRINT "Menu_Print" #define GNOME_STOCK_MENU_SEARCH "Menu_Search" #define GNOME_STOCK_MENU_SRCHRPL "Menu_Search/Replace" #define GNOME_STOCK_MENU_BACK "Menu_Back" #define GNOME_STOCK_MENU_FORWARD "Menu_Forward" #define GNOME_STOCK_MENU_FIRST "Menu_First" #define GNOME_STOCK_MENU_LAST "Menu_Last" #define GNOME_STOCK_MENU_HOME "Menu_Home" #define GNOME_STOCK_MENU_STOP "Menu_Stop" #define GNOME_STOCK_MENU_REFRESH "Menu_Refresh" #define GNOME_STOCK_MENU_MAIL "Menu_Mail" #define GNOME_STOCK_MENU_MAIL_RCV "Menu_Receive Mail" #define GNOME_STOCK_MENU_MAIL_SND "Menu_Send Mail" #define GNOME_STOCK_MENU_MAIL_RPL "Menu_Reply to Mail" #define GNOME_STOCK_MENU_MAIL_FWD "Menu_Forward Mail" #define GNOME_STOCK_MENU_MAIL_NEW "Menu_New Mail" #define GNOME_STOCK_MENU_TRASH "Menu_Trash" #define GNOME_STOCK_MENU_TRASH_FULL "Menu_Trash Full" #define GNOME_STOCK_MENU_UNDELETE "Menu_Undelete" #define GNOME_STOCK_MENU_TIMER "Menu_Timer" #define GNOME_STOCK_MENU_TIMER_STOP "Menu_Timer Stopped" #define GNOME_STOCK_MENU_SPELLCHECK "Menu_Spellchecker" #define GNOME_STOCK_MENU_MIC "Menu_Microphone" #define GNOME_STOCK_MENU_LINE_IN "Menu_Line In" #define GNOME_STOCK_MENU_CDROM "Menu_Cdrom" #define GNOME_STOCK_MENU_VOLUME "Menu_Volume" #define GNOME_STOCK_MENU_BOOK_RED "Menu_Book Red" #define GNOME_STOCK_MENU_BOOK_GREEN "Menu_Book Green" #define GNOME_STOCK_MENU_BOOK_BLUE "Menu_Book Blue" #define GNOME_STOCK_MENU_BOOK_YELLOW "Menu_Book Yellow" #define GNOME_STOCK_MENU_BOOK_OPEN "Menu_Book Open" #define GNOME_STOCK_MENU_CONVERT "Menu_Convert" #define GNOME_STOCK_MENU_JUMP_TO "Menu_Jump To" #define GNOME_STOCK_MENU_UP "Menu_Up" #define GNOME_STOCK_MENU_DOWN "Menu_Down" #define GNOME_STOCK_MENU_TOP "Menu_Top" #define GNOME_STOCK_MENU_BOTTOM "Menu_Bottom" #define GNOME_STOCK_MENU_ATTACH "Menu_Attach" #define GNOME_STOCK_MENU_INDEX "Menu_Index" #define GNOME_STOCK_MENU_FONT "Menu_Font" #define GNOME_STOCK_MENU_EXEC "Menu_Exec" #define GNOME_STOCK_MENU_ALIGN_LEFT "Menu_Left" #define GNOME_STOCK_MENU_ALIGN_RIGHT "Menu_Right" #define GNOME_STOCK_MENU_ALIGN_CENTER "Menu_Center" #define GNOME_STOCK_MENU_ALIGN_JUSTIFY "Menu_Justify" #define GNOME_STOCK_MENU_TEXT_BOLD "Menu_Bold" #define GNOME_STOCK_MENU_TEXT_ITALIC "Menu_Italic" #define GNOME_STOCK_MENU_TEXT_UNDERLINE "Menu_Underline" #define GNOME_STOCK_MENU_TEXT_STRIKEOUT "Menu_Strikeout" #define GNOME_STOCK_MENU_EXIT GNOME_STOCK_MENU_QUIT If you are building the menu yourself and just want to get a menu-item that's built with the stock icon and a label, you can use the gnome_stock_menu_item convenience routine. It takes the stock icon type (one of the defines above) as the first argument, and the menu text as the second argument, and it returns a newly created menu-item widget. Then there are stock buttons. These are for use in your dialogs (see the next section). #define GNOME_STOCK_BUTTON_OK "Button_Ok" #define GNOME_STOCK_BUTTON_CANCEL "Button_Cancel" #define GNOME_STOCK_BUTTON_YES "Button_Yes" #define GNOME_STOCK_BUTTON_NO "Button_No" #define GNOME_STOCK_BUTTON_CLOSE "Button_Close" #define GNOME_STOCK_BUTTON_APPLY "Button_Apply" #define GNOME_STOCK_BUTTON_HELP "Button_Help" #define GNOME_STOCK_BUTTON_NEXT "Button_Next" #define GNOME_STOCK_BUTTON_PREV "Button_Prev" #define GNOME_STOCK_BUTTON_UP "Button_Up" #define GNOME_STOCK_BUTTON_DOWN "Button_Down" #define GNOME_STOCK_BUTTON_FONT "Button_Font" To get a button widget with the stock icon and text, you can just use the function gnome_stock_button with the button type (one of the above defines) as the argument. Now sometimes you want to create a mixture of stock or ordinary buttons, what you can do is call the gnome_stock_or_ordinary_button function with either the type of a stock button or just a text for the button label. The function checks if it is one of the above strings, and if it's not it creates an ordinary button widget with the text as the label. Dialogs Generic Dialogs If you need to create you own custom dialog, gnome-dialog is the way to do it. It can handle both modal and non-modal dialogs, although, it's definitely much more friendly to the users of your program if you use a non-modal dialog box, if at all possible, although non-modal dialog boxes tend to have problems associated with them, and sometimes can cause strange bugs, for example if a non-modal dialog box is associated with a window, you'd better bind the destroy signal of the window and set it to destroy the dialog box as well, since otherwise it could hang around even though the window or document it was supposed to act on is already dead. However modal dialogs (while definitely easier to program) are usually pretty annoying to use, so avoid them if you at all can. To make a new GnomeDialog widget, just use the gnome_dialog_new function. You pass the title of the dialog as the first argument, and then multiple arguments as the button titles terminated by a NULL. The button titles can also be the GNOME_STOCK_BUTTON_* definitions if you want stock buttons on your dialog. Then you need to add content to the dialog, the dialog is created with a vertical box (GtkVBox) for you to use, just by using GNOME_DIALOG(dialog)->vbox. Into that you add your content. At this point you have to decide if you want to do a modal dialog or a non-modal dialog. In case you want to do a modal dialog, all you need to do is to call gnome_dialog_run_and_close function and it will run the dialog, wait for a user to press a button or close the dialog, and then close the dialog. This function will return the number of the button that was pressed or -1 if the dialog was just closed. In case you don't want to close the dialog when just any button is pressed, you use the gnome_dialog_run function, and after you get a result, do what you need to do for that particular button press. Then if you want to run the dialog more, you just loop back to gnome_dialog_run, and if you want to close, you run gnome_dialog_close. Here's an example of the second scheme. GtkWidget *dlg; int i; ... /*create a new dialog, DON'T forget the NULL on the end, it is very important!*/ dlg = gnome_dialog_new("A Dialog", GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_APPLY, GNOME_STOCK_BUTTON_CLOSE, NULL); ... /*add some content to the dialog here*/ ... /*set up an infinite loop*/ for(;;) { i = gnome_dialog_run(GNOME_DIALOG(dlg)); if(i == 0 || i == 2) { /*the user pressed OK or close, so we will get out of the loop and close the dialog, or the user pressed */ gnome_dialog_close(GNOME_DIALOG(dlg)); break; } else if(i < 0) { /*the user closed the dialog from the window manager*/ break; } else if(i == 1) { /*user pressed apply we don't want to close*/ ... } } By default the dialog is destroyed when closed, so you don't have to worry about it's destruction. You can change this behavior if you wish though. If you are doing a non-modal dialog box, things get a little more complicated. You create the dialog as above, but then you bind the clicked signal of the GnomeDialog widget. That signal has as it's second argument the button number that was pressed. After that you should use the gnome_dialog_set_close function to tell GnomeDialog that we want to close the dialog when the user first presses any button, if you want that behavior, otherwise you'll have to do gnome_dialog_close in the clicked signal handler for the buttons you want to close on. After that is set up you just gtk_widget_show the dialog. An example follows: /*the clicked signal handler*/ static void dialog_clicked(GnomeDialog *dlg, int button, gpointer data) { switch(button) { case 1: /*user pressed apply*/ ... return; case 0: /*user pressed OK*/ ... /*fall though to close*/ case 2: /*user pressed close*/ gnome_dialog_close(dlg); break; } } /*somewhere else in the source file*/ ... GtkWidget *dlg; ... /*create a new dialog, DON'T forget the NULL on the end, it is very important!*/ dlg = gnome_dialog_new("A Dialog", GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_APPLY, GNOME_STOCK_BUTTON_CLOSE, NULL); ... /*add some content to the dialog here*/ ... /*bind the clicked handler*/ gtk_signal_connect(GTK_OBJECT(dlg),"clicked", GTK_SIGNAL_FUNC(dialog_clicked), NULL); /*show the dialog, note that this is not a modal dialog, so the program doesn't block here, but continues*/ gtk_widget_show(dlg); This implements the same dialog as the modal example above, only non modal. Message Box GnomeMessageBox is an object derived from GnomeDialog. As such you use it in the exact same manner, the only difference here is that it automatically sets up the insides of the dialog to be a single label and an icon of the selected message box type. The message box types are as follows: #define GNOME_MESSAGE_BOX_INFO "info" #define GNOME_MESSAGE_BOX_WARNING "warning" #define GNOME_MESSAGE_BOX_ERROR "error" #define GNOME_MESSAGE_BOX_QUESTION "question" #define GNOME_MESSAGE_BOX_GENERIC "generic" To create a message box, you use the function gnome_message_box_new with the first argument being the message text, the second argument being the type of the message box (one of the defines above), and then any number of buttons terminated by a NULL exactly as in the GnomeDialog's case. After created it is again used exactly the same as GnomeDialog. Property Dialogs If you have some properties to set in your application, you should use a GnomePropertyBox dialog for the preferences to make the applications more consistent. Again this object is derived from GnomeDialog so it's use is similar. But GnomePropertyBox defines some new signals, namely apply and help. They both get passed the page number as the second argument. For help you should use this to display the proper help page, however for apply, this was created for adding a per-page apply button, which was not realized yet, so you should ignore any apply signal with the page number other then -1, which is the global apply. This can be done with a simple if statement at the top of your apply routine. You can choose to be per-page apply ready, by doing a per-page apply in your code, but it is not sure if this code will ever get completed. It should be safe to do just the global apply as that is the only thing implemented in gnome-libs 1.0. To use property dialogs, you call gnome_property_box_new, which will create a completely new dialog for you with a notebook and the four buttons. OK, which will call your apply handler for all pages and then for the -1 page, and then it will close the dialog, Apply, which will call the apply handler for all pages and then for the -1 page, Close, which will just close the dialog, and Help which will call your help handler if you bound it. You then connect the apply signal to your apply handler, and most likely the destroy signal on the property box to destroy the data associated with the property box when it closes. You then create the different pages for your property box and add them with, gnome_property_box_append_page, which takes your page as the second argument and a label as the third (usually this will be just a GtkLabel). You also want to connect the different signals for the widgets on your pages, to mark the property box as changed (otherwise the Apply and OK buttons will not be sensitive). You do this by calling gnome_property_box_changed every time the user changed something with the widgets. For example on entry (and derived) widgets you connect to the changed signal. Example follows: /*apply handler*/ static void property_apply(GnomePropertyBox *box, int page_num, gpointer data) { /*ignore page numbers other then -1*/ if(page_num!=-1) return; /*do your apply routine here*/ ... } ... /*somewhere else in the source file*/ GtkWidget *pbox; GtkWidget *widget; ... pbox = gnome_property_box_new(); gtk_signal_connect(GTK_OBJECT(pbox),"apply", GTK_SIGNAL_FUNC(property_apply),NULL); ... /*you create a page for the property box and added it to the container called widget*/ gnome_property_box_append_page(GNOME_PROPERTY_BOX(pbox), widget, gtk_label_new("SomePage")); /*then add other pages in similar manner*/ ... /*we show the dialog box*/ gtk_widget_show_all(pbox); File Picking Dialog Gnome doesn't have it's own file picking dialog, although this is planned for the future, for now you need to use the regular GTK+ file dialog. Use of the file dialog is very simple. You create the dialog with gtk_file_selection_new, passing it the title of the dialog box as the argument. After this you bind the clicked signal on the OK and Cancel buttons. For example for a loading dialog box, you could check that the file is of the correct type when the user presses OK and if so then close the dialog (usually with gtk_widget_destroy). Or for saving dialog, you could ask if the file exists. File selection dialog boxes are usually safe and simple to do non-modal. Just make sure you'd destroy the file dialog box when the object or window it's supposed to work with. Here's the routine that invokes the save as dialog for Achtung, which is a presentation program we're working on. void presentation_save_as (AchtungPresentation *p) { GtkFileSelection *fsel; g_return_if_fail (p != NULL); g_return_if_fail (p->doc != NULL); fsel = (GtkFileSelection *) gtk_file_selection_new (_("Save presentation as")); if (p->real_file && p->filename) gtk_file_selection_set_filename (fsel, p->filename); gtk_object_set_data(GTK_OBJECT(fsel),"p",p); /* Connect the signals for Ok and Cancel */ gtk_signal_connect (GTK_OBJECT (fsel->ok_button), "clicked", GTK_SIGNAL_FUNC (save_ok), fsel); gtk_signal_connect_object (GTK_OBJECT (fsel->cancel_button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT(fsel)); gtk_window_position (GTK_WINDOW (fsel), GTK_WIN_POS_MOUSE); /*if the presentation dies so do it's dialogs*/ gtk_signal_connect_object_while_alive (GTK_OBJECT (p), "destroy", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT(fsel)); gtk_widget_show (GTK_WIDGET (fsel)); } This is actually a save_as method for AchtungPresentation object in object oriented speak. AchtungPresentation is a GtkObject we use for storing all the presentation data (This is a nice example of how to use GtkObject for things not directly related to widgets or GUI programming). First we check the arguments to the function with g_return_if_fail which is for debugging purposes. Then we create a new GtkFileSelection with a title of "Save presentation as". Ignore the _() macro around the string for now, it's used for internationalization. Afterwards we check if the presentation already has a filename associated with it, and if so we set the filename on the file selection dialog to that. After that we connect the the OK button to a routine called save_ok defined elsewhere in the file and pass the file selection dialog as a data argument. Then we use connect_object to bind the Cancel button to destroying the file selection dialog. The connect_object method is similar to regular connect but when it calls the function itself it will pass the object from the data field as the first argument of the function. So connecting to gtk_widget_destroy will destroy the object passed in the data field, which is the file selection dialog. Then we position the dialog near the mouse button. In the future when this dialog is derived from GnomeDialog, you will not need to and actually should not do that, as that will be done according to use preferences as for all the other gnome dialogs. After this we use yet another signal connection method ... this time gtk_signal_connect_object_while_alive, which is similar to connect_object, but has a nice twist to it. The signal will be disconnected when the object passed in the data field dies. This needs to happen as the file dialog will most likely be destroyed before the the presentation itself is, then when the presentation is destroyed itself, it would try to destroy an already non-existent file selection dialog and most likely cause a segmentation fault and crash. This way it is safe and if the file selection dialog is still around when the presentation is destroyed, it is destroyed with it. Entries Sometimes, especially in properties dialogs, you want fields for entering text, files, pixmaps, icons or double precision numbers. This is what the gnome-*entry widgets do. GnomeEntry This is an entry for regular text, but it includes history of previously entered values. Note that this widget is not derived from GtkEntry, but owns such a widget. This means that you can't use GtkEntry methods on this object directly, but you need to get a pointer to the GtkEntry object inside GnomeEntry. When you call gnome_entry_new, you pass a history_id string to it. This is a unique identifier to identify this entry, or this type of entries in your application. All the entries that share this history_id will have common history of values. After you create a GnomeEntry you use the gnome_entry_gtk_entry function to get a pointer to the GtkEntry object inside and bind any signals or manipulate text with that instead. Here is an example: GtkWidget *gnome_e; GtkWidget *gtk_e; ... gnome_entry_new("text1"); gtk_e = gnome_entry_gtk_entry(GNOME_ENTRY(gnome_e)); gtk_signal_connect(GTK_OBJECT(gtk_e),"changed", GTK_SIGNAL_FUNC(entry_changed), NULL); GnomeFileEntry GnomeEntry is a basis for GnomeFileEntry. Again it is not derived, but GnomeEntry is owned by GnomeFileEntry. This type of hierarchy is throughout all the gnome entry widgets. GnomeFileEntry adds a browse button on the right side of the entry, and also accepts file drops from the file manager for example. It's use is extremely similar to GnomeEntry. You create the entry with gnome_file_entry_new. The first argument is the history_id of the GnomeEntry, and the second argument is the title of the browse dialog box. To get the GtkEntry, you again use the gtk_entry method, named gnome_file_entry_gtk_entry. To finally get the filename, you can get the exact text from the GtkEntry, or you might use a convenience method, gnome_file_entry_get_full_path, which takes a flag file_must_exist as it's second argument. If this flag is set, the function returns NULL if the file doesn't exists. If the flag is not set or the file does exist, the function returns the full path to the file. GnomePixmapEntry This is an entry for entering pixmaps (Images) of any size. It again includes (not derives from) GnomeFileEntry, so it can do everything the file entry can (including accepting drops). However this entry adds a preview box for the pixmap above the entry. Also it's file selection dialog includes a preview box to the right side of the file list. It's use is again very similar to the entries above. You call gnome_pixmap_entry_new with the same arguments as GnomeFileEntry, with an added flag, do_preview. This flag specifies if the preview box is visible or not. But be careful, it doesn't save memory not to show the preview, it just saves space. Again you use a gnome_pixmap_entry_gtk_entry to get the GtkEntry widget. To get a filename of the the pixmap, if it could be loaded as an image for the preview (using imlib), you can use gnome_pixmap_entry_get_filename, which returns NULL if the pixmap files doesn't exist or could not be loaded, and the full filename otherwise. GnomeIconEntry The icon entry is very similar to the GnomePixmapEntry, but it is meant for images in the standard 48x48 icon size. Also instead of the preview box, there is a button with the image scaled to 48x48. If you press the button you get a listing of images from the same directory as the current icon. To create an icon entry use gnome_icon_entry_new with history_id and browse_dialog_title string arguments. Once you need an existing icon that is a real image, you use gnome_icon_entry_get_filename which works just like gnome_pixmap_entry_get_filename. You can also get the GtkEntry by using gnome_icon_entry_gtk_entry. GnomeNumberEntry GnomeNumberEntry is an entry widget for entering double precision numbers with a calculator. Most of the time for number entries you want to use the GtkSpinButton widget, however for applications such as mortgage calculators, or finance programs, where calculations are necessary, you will want to use this entry type. Basically it's a GnomeEntry widget with a button on the right side of it which calls up a dialog with a calculator. The user can use the calculator and press OK and the number entry is updated to what it was on the calculator. To create a number entry widget, just use gnome_number_entry_new, passing it the history_id as the first argument and the title of the calculator dialog as the second argument. To get the GtkEntry widget just use gnome_number_entry_gtk_entry. To get the number as a double value, use gnome_number_entry_get_number method. Using Images When you need to use images in your apps, most likely you'll want the GnomePixmap widget. It's advantage is that it makes using images much easier without having to learn imlib, which is the image library used by this widget. There are numerous new functions for GnomePixmap, depending on the source of the pixmap. The most used will probably be gnome_pixmap_new_from_file which takes a filename which is an image loadable by imlib and creates a pixmap widget for you. There is also gnome_pixmap_new_from_file_at_size to which you pass also the size to which the image should be scaled. If you have already loaded the image with imlib (in case you wanted to do other things to the pixmap first), you can use gnome_pixmap_new_from_imlib and gnome_pixmap_new_from_imlib_at_size. Which take a GdkImlibImage as the first argument. If you already have a pixmap widget and want to change the image inside it, you can use the gnome_pixmap_load_* which have almost the same syntax as the new functions, except that you pass the GnomePixmap as the first argument, and then the rest of the arguments as above, and of course replace the _new_from_ for _load_. Here's an example of it's use: GtkWidget *pix; ... /*load somefile.png and scale it to 48x48*/ pix = gnome_pixmap_new_from_file_at_size("somefile.png",48,48); /*now you can pack pix somewhere just like any other widget*/ ... /*now we want to change the files to otherfile.png and do no scaling*/ gnome_pixmap_load_file(GNOME_PIXMAP(pix),"otherfile.png"); Session Management Your app should be able to save it's settings and restore them when the user restarts your application, it should also be able to do this for several different sessions. For instance the user might have a normal session, but sometimes log into a special session where he has different settings in applications. gnome-libs actually hides the ugly details of this. For the most part you do not need to worry about the real details of session management, unless you wish to do something very clever or if your app does some complicated state saving. To do simple session saving all you need is the following code (mostly taken from gnome-hello-4-SM example program): /*the save_yourself handler, you can safely ignore most of the parameters, and just save your session and return TRUE*/ static int save_yourself(GnomeClient *client, int phase, GnomeSaveStyle save_style, int shutdown, GnomeInteractStyle interact_style, int fast, gpointer client_data) { /*get the prefix for our config*/ char *prefix= gnome_client_get_config_prefix (client); /*this is a "discard" command for discarding data from a saved session, usually this will work*/ char *argv[]= { "rm", "-r", NULL }; /* Save the state using gnome-config stuff. */ gnome_config_push_prefix (prefix); gnome_config_set_int("Section/Key",some_value); ... gnome_config_pop_prefix (); gnome_config_sync(); /* Here is the real SM code. We set the argv to the parameters needed to restart/discard the session that we've just saved and call the gnome_session_set_*_command to tell the session manager it. */ argv[2]= gnome_config_get_real_path (prefix); gnome_client_set_discard_command (client, 3, argv); /* Set commands to clone and restart this application. Note that we use the same values for both -- the session management code will automatically add whatever magic option is required to set the session id on startup. The client_data was set to the command used to start this application when save_yourself handler was connected. */ argv[0]= (gchar*) client_data; gnome_client_set_clone_command (client, 1, argv); gnome_client_set_restart_command (client, 1, argv); return TRUE; } static void die (GnomeClient *client, gpointer client_data) { /* Just exit in a friendly way. We don't need to save any state here, because the session manager should have sent us a save_yourself-message before. */ gtk_exit (0); } ... GnomeClient *client; ... /*this is somewhere in your main function presumably. make sure this is done AFTER the gnome_init call!*/ /* Get the master client, that was hopefully connected to the session manager int the 'gnome_init' call. All communication to the session manager will be done with this master client. */ client = gnome_master_client (); /* Arrange to be told when something interesting happens. */ gtk_signal_connect (GTK_OBJECT (client), "save_yourself", GTK_SIGNAL_FUNC (save_yourself), (gpointer) argv[0]); gtk_signal_connect (GTK_OBJECT (client), "die", GTK_SIGNAL_FUNC (die), NULL); /*check if we are connected to a session manager*/ if (GNOME_CLIENT_CONNECTED (client)) { /*we are connected, we will get the prefix under which we saved our session last time and load up our data*/ gnome_config_push_prefix (gnome_client_get_config_prefix (client)); some_value = gnome_config_get_int("Section/Key=0"); gnome_config_pop_prefix (); } else { /*we are not connected to any session manager, here you will just initialize your session like you normally do without a session manager*/ ... } This is a very simple session management which will be enough for most programs, for more information on session management, you should consult the gnome developer documentation which should be available by now. Multiple Document Interface The Main MDI Window If your app handles documents, most likely you will want it to handle multiple documents at one time. Gnome provides an MDI model that is customizable by the user and simple to use. They can use three models of the document display. Either a notebook style which is the most useful one, where documents can be docked in notebooks, and can be dragged out into separate windows if desired. Or a toplevel style where each document is a separate toplevel window. Or finally a modal style where there is only one window and the documents must be switched though a menu. (Note that the examples here are taken from the gnome-hello-7-mdi example app in gnome-libs, slightly modified) To use the MDI features. You basically replace the the gnome_app_new call with gnome_mdi_new with the same arguments as gnome_app_new. To add menus and tool-bar, you use gnome_mdi_set_menubar_template and gnome_mdi_set_toolbar_template with the GnomeUIInfo as the argument. For MDI, these aren't the actual menus, as it will add it's own items to the menus of each child. After this you set where the menu additions take place. You call gnome_mdi_set_child_menu_path to the toplevel menu name after which the child's own menus are inserted. This is the "File" menu in most cases. Then you want to specify the path (menu name) to the menu into which you want to insert a list of the children, you do this by calling gnome_mdi_set_child_list_path with the name of the menu and add a '/' on the end of it to specify that you want to insert those items into the menu, not after the menu. Example: GtkWidget *mdi; ... mdi = gnome_mdi_new("gnome-hello-7-mdi", "GNOME MDI Hello"); ... /*main_menu and toolbar_info are the menu and tool-bar descriptions*/ gnome_mdi_set_menubar_template(mdi, main_menu); gnome_mdi_set_toolbar_template(mdi, toolbar_info); /* and document menu and document list paths (see gnome-app-helper menu insertion routines for details) */ gnome_mdi_set_child_menu_path(GNOME_MDI(mdi), "File"); gnome_mdi_set_child_list_path(GNOME_MDI(mdi), "Children/"); In our GnomeUIInfo structures we have defined a menu named "File" and a menu named "Children". The children menu was not given any items, it's just an empty menu. Then you should open the main toplevel window with gnome_mdi_open_toplevel. This will open a toplevel window without any children. If you wish to use MDI's session management functionality, you can define a function that creates a child given it's name. This is done with the gnome_mdi_restore_state method, which takes the config path as the second argument and a function pointer to a function which takes a string and returns a new GnomeMDIChild widget (a widget sub-classed from GnomeMDIChild actually). Say for example you are using the session management shown above, so you could use: gnome_config_push_prefix (gnome_client_get_config_prefix (client)); restart_ok = gnome_mdi_restore_state(GNOME_MDI(mdi), "MDI Session", my_child_new_from_config); gnome_config_pop_prefix (); The restart_ok is a boolean value telling you if the loading actually loaded all the data correctly. You should also bind the destroy signal of the mdi object to do gtk_main_quit when the mdi is destroyed. The MDI Children For complicated apps, all children should be derived from the virtual GnomeMDIChild object. For simple apps, you don't need to derive a new object, you can just use the GnomeMDIGenericChild, and use the fact that you can store arbitrary data on arbitrary GtkObjects to store your own data on the object. To use the generic child object, you create it with gnome_mdi_generic_child_new to which you pass the name of the child. When you get the object, you will need to set it up for your use. First you add a function for creating new views of the same data. A view is just a different window displaying the same file or data. This is done with a call to gnome_mdi_generic_child_set_view_creator to which you pass a pointer to a creator function which takes the child widget and a data pointer as arguments and returns a data widget, which is not the actual child widget, but actually the child of the GnomeMDIGenericChild widget. After this you set the template for the child's menus with gnome_mdi_child_set_menu_template, to which you pass the GnomeUIInfo array pointer of the child menu definitions. Then you should call gnome_mdi_generic_child_set_config_func to set a function which returns a newly allocated string to save in the config file. This string will be used to load up the child next time you start and do the gnome_mdi_restore_state call. It should probably be a filename of the document, or some string from which you can completely recreate that window/document. Then you need to call gnome_mdi_generic_child_set_label_func with a pointer to a function that takes the GnomeMDIGenericChild as the first argument, the old label widget pointer as the second argument, which would be null if no label widget was yet set, and a data argument. This function can either create a new label and destroy the old one, or just set the label if the label exists. The label can be any widget, for example the gnome-hello-7-mdi example code uses a horizontal box widget into which it adds a pixmap and a gtk label. After this if you need to add the child to the mdi yourself, if you are loading a new file for example, you use gnome_mdi_add_child and gnome_mdi_add_view, to add a new child and a new view to the mdi. If you are creating a new child from the gnome_mdi_restore_state function, you should just return the child, the mdi will take care of adding it and adding the appropriate views. You also probably want to set some data on the child widget at this time to store your data with the object. Here's a short example of creating a new child, for a more complete example you should look at the gnome-hello-7-mdi included with the gnome-libs distribution. GnomeMDI *mdi; ... GnomeMDIGenericChild *child; ... /*create a new child named 'name'*/ if((child = gnome_mdi_generic_child_new(name)) != NULL) { /*creator of a view*/ gnome_mdi_generic_child_set_view_creator (child, my_child_create_view, NULL); /*set a menu template for child menu*/ gnome_mdi_child_set_menu_template (GNOME_MDI_CHILD(child), main_child_menu); /*set function to get config string*/ gnome_mdi_generic_child_set_config_func (child, my_child_get_config_string, NULL); /*set function that sets or creates a label*/ gnome_mdi_generic_child_set_label_func (child, my_child_set_label, NULL); /* add the child to MDI */ gnome_mdi_add_child(mdi, GNOME_MDI_CHILD(child)); /* and add a new view of the child */ gnome_mdi_add_view(mdi, GNOME_MDI_CHILD(child)); } GnomeCanvas Widget While GnomeCanvas widget is inside the libgnomeui library, it definitely deserves a separate chapter. The canvas is a very high level high performance graphics drawing widget and on top of that it's easy to use. It includes support for both Xlib drawn graphics, which is faster especially over the network, and anti-aliased drawing for better looking results. Creating a Canvas Widget To create a gnome canvas widget, you call the gnome_canvas_new. You need to make sure that the canvas is created with a proper visual and colormap. For example if you wish to draw imlib images inside it, you should do this: GtkWidget *canvas; ... gtk_widget_push_visual(gdk_imlib_get_visual()); gtk_widget_push_colormap(gdk_imlib_get_colormap()); canvas = gnome_canvas_new(); gtk_widget_pop_visual(); gtk_widget_pop_colormap(); After this you also want to call gnome_canvas_set_pixels_per_unit to set the scale of the canvas. You can then do gtk_widget_set_usize to set the size of the widget, and gnome_canvas_set_scroll_region to set the region in which you can scroll around in, this is given in (x1, y1, x2, y2). Basically it's the outer limits of your drawing. So once the canvas was created, you could do: GnomeCanvas *canvas; ... /*already created a canvas, now set it up*/ gnome_canvas_set_pixels_per_unit(canvas,10); gnome_canvas_set_scroll_region(canvas,0.0,0.0,50.0,50.0); Groups and Items In the canvas there are items, the actual objects that are on the canvas, and groups, which are just groupings of items. A group is actually derived from a base GnomeCanvasItem object, this is useful to applying functions to all the items inside the group. Such as moving or hiding the entire group. There is also one default group, the root group. You can get this group by calling gnome_canvas_root. Creating Items Creating items is slightly different usual. It's using the standard GTK+ object model argument mechanism. Basically you call gnome_canvas_item, with the parent canvas group as the first argument, the type of object as the second argument, and then arguments given in pairs (argument, value), terminated with a NULL. This is best illustrated by an example: GnomeCanvas *canvas; GnomeCanvasItem *item; ... item = gnome_canvas_item_new(gnome_canvas_root(canvas), GNOME_TYPE_CANVAS_RECT, "x1", 1.0, "y1", 1.0, "x2", 23.0, "y2", 20.0, "fill_color", "black", NULL); Note that it's extremely important that the value be the exact type, since the compiler won't do the cast for you. If you're doing any calculations and aren't sure that you get the right type, just cast it. I believe most if not all numbers for canvas items are doubles. To find out the arguments that each item takes, consult the gnome documentation or look into the libgnomeui/gnome-canvas*.h header files. They contain a table at the top of the file just like the one that follows (which was taken from libgnomeui/gnome-canvas-rect-ellipse.h). For example here are arguments for rectangle (GNOME_TYPE_CANVAS_RECT) and ellipse (GNOME_TYPE_CANVAS_ELLIPSE): Arguments for rectangle and ellipse canvas items Name Type Read/Write Description x1 double RW Leftmost coordinate of rectangle or ellipse y1 double RW Topmost coordinate of rectangle or ellipse x2 double RW Rightmost coordinate of rectangle or ellipse y2 double RW Bottommost coordinate of rectangle or ellipse fill_color string W X color specification for fill color, or NULL pointer for no color (transparent) fill_color_gdk GdkColor* RW Allocated GdkColor for fill outline_color string W X color specification for outline color, or NULL pointer for no color (transparent) outline_color_gdk GdkColor* RW Allocated GdkColor for outline fill_stipple GdkBitmap* RW Stipple pattern for fill outline_stipple GdkBitmap* RW Stipple pattern for outline width_pixels uint RW Width of the outline in pixels. The outline will not be scaled when the canvas zoom factor is changed. width_units double RW Width of the outline in canvas units. The outline will be scaled when the canvas zoom factor is changed.
Now suppose we want to change some of these properties. This is done with a call to gnome_canvas_item_set. The first argument to this function is the canvas item object pointer. The next arguments are the same argument pairs as above when creating a new canvas object. For example if we want to set the color to red on the rectangle we created above, we can do this: GnomeCanvas *canvas; GnomeCanvasItem *item; ... gnome_canvas_item_set(item "fill_color", "red", NULL); Then there are item methods for other operations on items. For example the gnome_canvas_item_move method will take the x and y as second and third argument, and will move the item relative to it's current position by x and y. Or the gnome_canvas_item_hide and gnome_canvas_item_show, which hide and show the item, respectively. To control the z order of the items, you can use the methods gnome_canvas_item_raise_to_top and gnome_canvas_item_lower_to_bottom to raise or lower the item to the top or bottom of it's parent group's z order. To have finer control over z order you can use the gnome_canvas_item_raise and gnome_canvas_item_lower methods which take an extra integer argument which is 1 or larger, and specifies the number of levels the item should move in the z order.
Anti-aliasing canvas To create a canvas which uses anti aliasing for rendering of it's items, instead of gnome_canvas_new function, you should use the gnome_canvas_new_aa. You should also use the GdkRgb visual and colormap. So you would do this to create a new anti-aliased canvas: GtkWidget *canvas; ... gtk_widget_push_visual (gdk_rgb_get_visual ()); gtk_widget_push_colormap (gdk_rgb_get_cmap ()); canvas = gnome_canvas_new_aa (); gtk_widget_pop_colormap (); gtk_widget_pop_visual (); After this you can use the canvas in exactly the same manner as the normal canvas. Anti-aliased canvas items can generally do more then normal canvas items. This is because of limitations of Xlib as a graphics library. It can for example do any kind of affine transformation on it's objects, where on and Xlib canvas you can only do affine transformations on some objects.
Drag and Drop While drag and drop belongs into GTK+ itself, I thought it would be better to cover it after some parts of GNOME were discussed. Accepting Drops You have already seen one drop handler back when we were discussing the mime types. Basically, to accept drops, you have to decide which mime type of data you want to be able to receive. You have already seen one for "text/uri-list". Basically your handler will only receive data of those mime types that you specify, so you only need to know how to decode those. To specify the mime types you want to receive, you create an array of GtkTargetEntry structures, where the first element is a string of mime type, the second is an integer flag and the third is an integer info. You can leave the flags at 0. The info field can be used if you have several entries you are accepting, as the info integer will be passed to your drop handler, so you can create a switch statement to handle the different types of data. If you have only one type, just leave this at 0. After this you need to set up the widget for dragging. You do this by calling the gtk_drag_dest_set function. The first argument is the widget you want to set up, the second is a flags argument for setting up which types of default drag behavior to use, you can leave this at GTK_DEST_DEFAULT_ALL. The next argument is the array of GtkTargetEntry structures, the next argument is the number of items in that array. The last argument is the type of action that you accept. The types can be any of the following ORed together: GDK_ACTION_DEFAULT, GDK_ACTION_COPY, GDK_ACTION_MOVE, GDK_ACTION_LINK, GDK_ACTION_PRIVATE and GDK_ACTION_ASK. The most useful are GDK_ACTION_COPY and GDK_ACTION_MOVE. If you are for example passing around strings or other data, you will most likely use GDK_ACTION_COPY only. Then you need to set up and bind the drop handler. The drop handler should have the following prototype: void target_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time); The data you have is in the structure GtkSelectionData, in the data field. That's all you need to do for normal DND. Here's and example: static void target_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time) { g_print("Got: %s\n",data->data); } ... static GtkTargetEntry target_table[] = { { "text/plain", 0, 0 } } ... gtk_drag_dest_set (widget, GTK_DEST_DEFAULT_ALL, target_table, 1, GDK_ACTION_COPY); gtk_signal_connect (GTK_OBJECT (widget), "drag_data_received", GTK_SIGNAL_FUNC (target_drag_data_received), NULL); For more information about drag and drop, you should see GTK+ documentation at www.gtk.org. Allowing Drags Now let's look at the source side of DND. You set up the GtkTargetEntry array, in the same manner as above. Then instead of the flags argument you substitute a mask for the start mouse button of the drag. This could be GDK_BUTTON1_MASK | GDK_BUTTON3_MASK for 1st and 3rd mouse buttons. Then you need to bind the drag_data_get signal that will send the data for the drag on it's way, and drag_data_delete if the action is GDK_ACTION_MOVE, to delete the data since the move was successful. Here's a simple example that will work with the above code snippet for drop: static void source_drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, gpointer data) { char string[] = "Some String!"; gtk_selection_data_set (selection_data, selection_data->target, 8, string, sizeof(string)); } ... static GtkTargetEntry target_table[] = { { "text/plain", 0, 0 } }; ... gtk_drag_source_set (widget, GDK_BUTTON1_MASK|GDK_BUTTON3_MASK, target_table, 1, GDK_ACTION_COPY); gtk_signal_connect (GTK_OBJECT (widget), "drag_data_get", GTK_SIGNAL_FUNC (source_drag_data_get), NULL); The gtk_selection_data_set function copies the data into the selection data, which is used for the transfer.
Building GNOME Apps Using a Simple Makefile Using a simple makefile is the fastest way to compile a small GNOME application. If you require a more sophisticated build environment, you should use an autoconf/automake setup, which I will briefly talk about later. The gnome-config Script The command line to the C compiler for building a GNOME application can be quite long and would be hard to figure out by hand. So gnome-libs installs a script to simplify this. It is called gnome-config and it takes two options, --cflags and --libs. The --cflags option will give you the compiler flags, needed for the compilation step, and --libs will give you the libraries you need to pass to the linker. You also need to pass another set of arguments to gnome-config. It needs to know what libraries you wish to use. For our purposes, this is gnome and gnomeui. So for example to get the compiler flags for some program using the standard gnome and gnomeui libraries, you would call "gnome-config --cflags gnome gnomeui". A Simple Example Makefile Now to build a simple makefile, you can use variables CFLAGS and LDFLAGS and the implicit rules that at least GNU make supports (others probably do as well, but I'm not familiar with other makes). So for example let's say you have an application that has a main.c, main.h, extra.c and extra.h and the executable is called gnome-foo.Now let's build a small Makefile for this app. CFLAGS=-g -Wall `gnome-config --cflags gnome gnomeui` LDFLAGS=`gnome-config --libs gnome gnomeui` all: gnome-foo gnome-foo: main.o extra.o main.o: main.c main.h extra.h extra.o: extra.c extra.h clean: rm -f core *.o gnome-foo This is an extremely simple makefile, but it should get you started. Using automake/autoconf Using automake and autoconf is really beyond the scope of this document, but you should go read manuals online at http://www.gnu.org/manual/manual.html, or read the info pages if you have them installed with gnome-help-browser. There is now an example application which can help you get started with autoconf/automake, the internationalization setup, and other build issues, as well as serve as a good hello world example. You can get it at any gnome ftp site mirror (go to http://www.gnome.org/ftpmirrors.shtml for a list of mirrors) in the sources/GnomeHello/ directory. Conclusion Getting Further Help One of the best ways to get help with programming in gnome is probably to first read the available documentation at www.gnome.org, or the developer web site at developer.gnome.org . You should also subscribe to the gnome-devel-list@gnome.org , to subscribe, send a message with subscribe in the subject line to gnome-devel-list-request@gnome.org. To reduce the traffic on the list you should first consult the documentation before asking a question. Also look at www.gnome.org/mailing-lists/ for a list of all GNOME relevant mailing lists, including the GTK+ list. However I still consider the header files for the libraries most helpful. This is mostly as there isn't yet as much documentation out there as there should be, but also the header files will always contain all of the definitions and they will be up to date with the current version, which a manual might not be. Most GTK+ and GNOME function names are very descriptive and it's easy to figure out what they do. I use the header files only. It's much easier to just look at the function prototype and figure out what it does, then to hunt around in a reference manual. Then again you usually have to know what header file to look at, which is not all that hard, given that the header files are named by the objects or modules they represent. For example the header file for gnome-config is libgnome/gnome-config.h. The header file for GnomeCanvas is libgnomeui/gnome-canvas.h. Future GNOME Library Developments This tutorial covers programming with version 1.0 of the gnome libraries. But of course there is life after 1.0. There are many things still planned for the libraries. But don't worry, we will try to keep as much compatibility with the 1.0 version as humanely possible. Here's a short list of things that will be or currently is worked on. More common dialogs, such as a native gnome file picker dialog. More corba integration of the entire desktop. This is including much more corba support from the core libraries. Better canvas, including better alpha channel support and printing directly from the canvas. Rewrite of the configuration setup. Much much more! ... Stuff we haven't even thought of yet! gnome-vfs-2.24.4/gnome-vfs-zip.in0000755000175000001440000000201611334251016013450 00000000000000#!/bin/sh # Build zipfiles for gnome-vfs on Win32. Separate runtime and # developer ones. After running make install, run this. ZIP=/tmp/gnome-vfs-@VERSION@.zip DEVZIP=/tmp/gnome-vfs-dev-@VERSION@.zip cd @prefix@ rm $ZIP current_minus_age=`expr @LIBGNOMEVFS_CURRENT@ - @LIBGNOMEVFS_AGE@` zip $ZIP -@ < #include #include gnome_vfs_drive_get_type gnome_vfs_volume_get_type gnome_vfs_volume_monitor_get_typegnome-vfs-2.24.4/doc/gnome-vfs-2.0-docs.sgml0000644000175000001440000001734011334251016015177 00000000000000 ]> GnomeVFS - Filesystem Abstraction library for GnomeVFS &version; Seth Nickell
snickell@Stanford.edu
Christophe Fergeau
teuf@gnome.org
Christian Neumair
chris@gnome-de.org
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; A copy of the license is included in the section entitled "GNU Free Documentation License". 2001 The Free Software Foundation 2004 Christophe Fergeau 2006 Christian Neumair
&gnome-vfs-about; &gnome-vfs-init; Basic Data Types &gnome-vfs-result; &gnome-vfs-uri; &gnome-vfs-utils; &gnome-vfs-file-info; &gnome-vfs-file-size; File Operations &gnome-vfs-file-basic-ops; &gnome-vfs-file-rw-ops; &gnome-vfs-file-trunc-ops; &gnome-vfs-file-info-ops; Directory-Specific Operations &gnome-vfs-directory-basic-ops; &gnome-vfs-directory-list-ops; &gnome-vfs-directory-find-ops; Advanced File/Directory Operations &gnome-vfs-xfer; &gnome-vfs-monitor; &gnome-vfs-file-advanced-ops; Asynchronous Operations &gnome-vfs-file-async-ops; &gnome-vfs-cancellation; Volumes and Drives Handling &gnome-vfs-volume; &gnome-vfs-drive; &gnome-vfs-volume-monitor; Networking &gnome-vfs-dns-sd; &gnome-vfs-resolve; &gnome-vfs-ssl; &gnome-vfs-socket; &gnome-vfs-socket-buffer; &gnome-vfs-inet-connection; MIME Registry MIME types provide a standardized for denoting the content of files or file streams. GnomeVFS exposes simple methods for both identifying the MIME type of a particular file, and deciding how to act on it. The MIME and application registries provide a mapping between files of a particular mime type and applications / bonobo components which can view or edit those files. Applications such as Nautilus use this database to generate appropriate actions when files are activated. &gnome-vfs-mime; &gnome-vfs-mime-utils; &gnome-vfs-mime-database; &gnome-vfs-mime-monitor; &gnome-vfs-mime-database-deprecated; &gnome-vfs-application-registry; Filesystem Modules Modules are the mechanism by which GnomeVFS accesses different filesystems, from http, to the local disk, to smb. Module authors must implement a simple set of filesystem operations and can provide varying degrees of service (read-only, read-write, seeking, etc). Modules are dynamically loaded based upon the URI scheme passed into the high-level GnomeVFS APIs. &gnome-vfs-writing-modules; &gnome-vfs-method; &gnome-vfs-module; &gnome-vfs-module-shared; &gnome-vfs-module-callback-module-api; &gnome-vfs-context; &gnome-vfs-transform; &gnome-vfs-parse-ls; &gnome-vfs-standard-callbacks; &gnome-vfs-module-callback;
gnome-vfs-2.24.4/doc/Makefile.am0000644000175000001440000000463311334251016013224 00000000000000NULL = ## Process this file with automake to create Makefile.in. AUTOMAKE_OPTIONS = 1.6 # The name of the module. DOC_MODULE=gnome-vfs-2.0 # The top-level SGML file. DOC_MAIN_SGML_FILE=gnome-vfs-2.0-docs.sgml # Extra options to supply to gtkdoc-scan SCAN_OPTIONS=--deprecated-guards="GNOME_VFS_DISABLE_DEPRECATED" # The directory containing the source code. Relative to $(srcdir) DOC_SOURCE_DIR=../libgnomevfs # 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)/libgnomevfs/*.h CFILE_GLOB=$(top_srcdir)/libgnomevfs/*.c # Headers to ignore IGNORE_HFILES= \ GNOME_VFS_Daemon.h \ gnome-vfs-async-job-map.h \ gnome-vfs-backend.h \ gnome-vfs-cancellable-ops.h \ gnome-vfs-cdrom.h \ gnome-vfs-client.h \ gnome-vfs-client-call.h \ gnome-vfs-cancellation-private.h \ gnome-vfs-configuration.h \ gnome-vfs-daemon-method.h \ gnome-vfs-hal-mounts.h \ gnome-vfs-handle-private.h \ gnome-vfs-iso9660.h \ gnome-vfs-job-queue.h \ gnome-vfs-job-slave.h \ gnome-vfs-job.h \ gnome-vfs-metadata-private.h \ gnome-vfs-mime-magic.h \ gnome-vfs-mime-private.h \ gnome-vfs-mime-sniff-buffer.h \ gnome-vfs-mime-sniff-buffer-private.h \ gnome-vfs-module-callback-private.h \ gnome-vfs-monitor-private.h \ gnome-vfs-private-utils.h \ gnome-vfs-private.h \ gnome-vfs-process.h \ gnome-vfs-pthread.h \ gnome-vfs-ssl-private.h \ gnome-vfs-thread-pool.h \ gnome-vfs-unix-mounts.h \ gnome-vfs-volume-monitor-private.h \ xdgmime.h \ xdgmimecache.h \ xdgmimeglob.h \ xdgmimemagic.h \ xdgmimeint.h \ xdgmimealias.h \ xdgmimeparent.h \ $(NULL) # Images to copy into HTML directory HTML_IMAGES = # Non-autogenerated SGML files to be included in $(DOC_MAIN_SGML_FILE) content_files = \ writing-modules.sgml \ about.sgml \ version.xml extra_files = version.xml.in # CFLAGS and LDFLAGS for compiling scan program. Only needed # if $(DOC_MODULE).types is non-empty. GTKDOC_CFLAGS = \ -I$(top_srcdir) \ $(VFS_CFLAGS) \ $(LIBGNOMEVFS_CFLAGS) GTKDOC_LIBS = $(LIBGNOMEVFS_LIBS) \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la include $(top_srcdir)/gtk-doc.make dist-hook-local: # mkdir $(distdir)/TEXT; \ # for f in $(srcdir)/TEXT/* ; do \ # test -f $$f && cp -p $$f $(distdir)/TEXT; \ # done gnome-vfs-2.24.4/doc/writing-modules.sgml0000644000175000001440000006360211334251016015206 00000000000000 Writing Modules 3 GNOME-VFS Library Writing Modulesbasic gnome-vfs module concepts Introduction This section will introduce the basic concepts that are needed for writing GNOME Virtual File System modules. GNOME VFS URIs (Uniform Resource Identifiers) The GNOME Virtual file system uses URIs similiar to the standard WWW URIs. The basic difference between a VFS URI and WWW URI is that, while with WWW URIs you can only use a single protocol for accessing a certain file, with GNOME VFS URIs you can combine different access methods in sequence. For example, suppose you want to access file hello.c in a tar.gz file which is in turn accessible through FTP from a remote machine. In order to access this file, you would need to: Connect to the FTP site. Fetch the tar.gz file. Decompress the tar.gz file using GZIP. Extract hello.c from the resulting uncompressed tar file. The GNOME Virtual File System lets you express this by combining the three access methods (i.e. tar, GZIP and FTP) into a single URI. Access methods are combined in the URI by using the `#' character, followed by the name for the access method and the subpath for that specific access method. The subpath can be omitted for those storage methods that do not need a path to retrieve the file. (For example, a GZIP file always contains a single uncompressed file, so no path is needed to locate the uncompressed file within the GZIP file. But on the other hand, the TAR method requires a path to locate a specific file or directory.) For example, in the case we outlined above, the URI would look something like: ftp://username:password@host.net/path/to/file.tar.gz#gzip:#tar:/path/to/hello.c Each method/subpath couple is called a URI element. When URI elements are combined like this, each URI element uses the previous one to access a base resource into which it will look up a file, using the subpath information. For this reason, we will say that each element is the parent element for the following one. The first URI element, the one which has no parent, is called the toplevel element. It does not use the `#' character; instead, it uses the standard syntax of WWW URIs: method://user:password@host/path/to/file This way, normal WWW URIs can be used with the GNOME Virtual File System. Toplevel elements are also special because they let users specify user names, passwords and host names, while non-toplevel elements don't. The <structname>GnomeVFSURI</structname> type Within the GNOME Virtual File System library, URI elements are represented by a special type, GnomeVFSURI, which is meant to represent user-provided URIs in a machine-optimized way. Every GnomeVFSURI contains the following information: A reference counter A pointer to the parent GnomeVFSURI URI element. The subpath. The name of the access method. A pointer to a GnomeVFSMethod object, describing the access method (see below). GNOME Virtual File System access method implementation In the GNOME Virtual File System, the implementations for all the access methods are loaded at runtime, as shared library modules. The modules are loaded during parsing of the string URI. If the parser encounters an access method for which no implementation is currently loaded, it retrieves the corresponding library file, dynamically links it into the executable, and initializes it. After initialization, the module returns a special GnomeVFSMethod object that contains pointers to the various implementation functions for that specific method. By storing a pointer to this object into the GnomeVFSURI type, the VFS library is then able to use these functions for file access. How file access is performed When the VFS library needs to perform some file operation, it performs the following steps: If the URI is given in textual form (i.e. as a string), it parses it and activates the necessary access method modules. It retrieves a pointer to the lowmost level URI element. It retrieves a pointer to the GnomeVFSMethod object that corresponds to the access method for that URI element. It retrieves a pointer to the implementation function for that operation from the GnomeVFSMethodobject. It invokes that implementation function passing the pointer to the lowmost level URI element. Combining the access methods is always done within the method implementation. If the method implementation needs to do some file operation on the the parent URI element, it can do so by simply invoking the corresponding VFS function, by using the parent pointer in the GnomeVFSURI object. For example, suppose you have to read a simple URI like the following: file:/home/ettore/file.gz#gzip: In this case, the GZIP method will be invoked with a pointer to the GnomeVFSURI describing the `gzip' part. The GZIP method will be able to read file.gz by just invoking the corresponding GNOME VFS library function on its parent and decompressing it on the fly. Implementing an access method in practice Implementing a new access method is really not difficult at all. This section explains how this is done. Using shared libraries Every module must be compiled as a shared library (i.e. a .so file). The current way for accessing the right module for the right method is very simple, and is based on file names. In practice, a module implementing an access method named foo must be named libfoo.so. For example, the module implementing the ftp: access method is called libftp.so, the module implementing #gzip: access is called libgzip.so and so on. This might change in the future. The initialization/shutdown functions Every shared library module must provide two functions: GnomeVFSMethod *vfs_module_init (const char *method_name, const char *args); void vfs_module_shutdown (GnomeVFSMethod *method); These are the only functions that the VFS library will access directly. All the other symbols (i.e. functions and variables) in the module should be made static. vfs_module_init() is called as soon as the module is loaded in memory. It will have to return a pointer to a GnomeVFSMethod object that will contain the pointers to the method's implementation functions. We will describe this later. vfs_module_shutdown, instead, is called before the module is unloaded or the program that uses it dies. This functions should: Deallocate all the memory allocated by the module. Close all the file descriptors associated with the module. Kill any external process spawned by the module. In general, make sure that any operation that was going on before this function was called will be interrupted correctly, as soon as possible and without any leaks. The <structname>GnomeVFSMethod</structname> object This object contains pointers to the module implementation functions. A method can choose itself which functions to implement. However, it must at least provide a GnomeVFSMethodOpenFunc and GnomeVFSMethodIsLocalFunc implementation. struct GnomeVFSMethod { gsize method_table_size; /* Used for versioning */ GnomeVFSMethodOpenFunc open; GnomeVFSMethodCreateFunc create; GnomeVFSMethodCloseFunc close; GnomeVFSMethodReadFunc read; GnomeVFSMethodWriteFunc write; GnomeVFSMethodSeekFunc seek; GnomeVFSMethodTellFunc tell; GnomeVFSMethodTruncateHandleFunc truncate_handle; GnomeVFSMethodOpenDirectoryFunc open_directory; GnomeVFSMethodCloseDirectoryFunc close_directory; GnomeVFSMethodReadDirectoryFunc read_directory; GnomeVFSMethodGetFileInfoFunc get_file_info; GnomeVFSMethodGetFileInfoFromHandleFunc get_file_info_from_handle; GnomeVFSMethodIsLocalFunc is_local; GnomeVFSMethodMakeDirectoryFunc make_directory; GnomeVFSMethodRemoveDirectoryFunc remove_directory; GnomeVFSMethodMoveFunc move; GnomeVFSMethodUnlinkFunc unlink; GnomeVFSMethodCheckSameFSFunc check_same_fs; GnomeVFSMethodSetFileInfo set_file_info; GnomeVFSMethodTruncateFunc truncate; GnomeVFSMethodFindDirectoryFunc find_directory; GnomeVFSMethodCreateSymbolicLinkFunc create_symbolic_link; GnomeVFSMethodMonitorAddFunc monitor_add; GnomeVFSMethodMonitorCancelFunc monitor_cancel; GnomeVFSMethodFileControlFunc file_control; GnomeVFSMethodForgetCacheFunc forget_cache; GnomeVFSMethodGetVolumeFreeSpaceFunc get_volume_free_space; }; typedef GnomeVFSResult (* GnomeVFSMethodOpenFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCreateFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCloseFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodReadFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read_return, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodWriteFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written_return, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodSeekFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodTellFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return); typedef GnomeVFSResult (* GnomeVFSMethodOpenDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCloseDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodReadDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodGetFileInfoFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodGetFileInfoFromHandleFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodTruncateFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize length, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodTruncateHandleFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *handle, GnomeVFSFileSize length, GnomeVFSContext *context); typedef gboolean (* GnomeVFSMethodIsLocalFunc) (GnomeVFSMethod *method, const GnomeVFSURI *uri); typedef GnomeVFSResult (* GnomeVFSMethodMakeDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodFindDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSURI *find_near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint perm, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodRemoveDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodMoveFunc) (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodUnlinkFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCheckSameFSFunc) (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodSetFileInfo) (GnomeVFSMethod *method, GnomeVFSURI *a, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCreateSymbolicLinkFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, const gchar *target_reference, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodMonitorAddFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type); typedef GnomeVFSResult (* GnomeVFSMethodMonitorCancelFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *handle); typedef GnomeVFSResult (* GnomeVFSMethodFileControlFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, const char *operation, gpointer operation_data, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodForgetCacheFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileOffset offset, GnomeVFSFileSize size); typedef GnomeVFSResult (* GnomeVFSMethodGetVolumeFreeSpaceFunc) (GnomeVFSMethod *method, const GnomeVFSURI *uri, GnomeVFSFileSize *free_space); Handling cancellation As VFS operations might take very long to complete, especially in the case of transient errors (such as a network server that has gone down), the GNOME Virtual File System Library provides a standard way to handle the cancellation of VFS operations. The <structname>GnomeVFSCancellation</structname> object The object that encapsulates this functionality is GnomeVFSCancellation. Most implementation functions get a pointer to such an object, and are expected to use this object to recognize when an operation should be interrupted. The most simple way to check for a cancellation request is to poll the object with gnome_vfs_cancellation_check(): gboolean gnome_vfs_cancellation_check (GnomeVFSCancellation *cancellation); This function will return a nonzero value if the current operation should be cancelled. Notice that cancellation is an asynchronous operation that might happen outside your function, in parallel with the code that you are writing. For example, in the case of threads, the request will be set in the master thread; in the case of slave CORBA-driven processes, the request will be activated by a Unix signal. So you can expect a cancellation request to happen (and consequently be signalled in GnomeVFSCancellation) at any time. For this reason, you should be calling this function periodically, whenever you are going to perform several iterations of the same task, or execute a single expensive task. When the function returns a nonzero value, the correct way to react is: Clean things up so that the result of the operations that have been performed are all cancelled. Return the GNOME_VFS_ERROR_CANCELLED error code. Note, there are some other situations in which you want to be able to interrupt an I/O operation when a cancellation request is performed. In such cases, polling is not a viable option. For this reason, GnomeVFSCancellation provides an alternative way of sending notifications, using a file descriptor. To use this feature, you should use the following function: gint gnome_vfs_cancellation_get_fd (GnomeVFSCancellation *cancellation); When this function is called, it will return an open file descriptor, which is the read-side of a pipe. The pipe will be given a character from the write side as soon as a cancellation request is sent. You can check for a cancellation by using the select() system call with this file descriptor. As soon as select reports that some data is available on this file descriptor, you know that a cancellation is being requested. For example, if you are reading from a file descriptor and you want to check for a pending cancellation at the same time, you can set up selectfor checking if data is available on both the cancellation file descriptor and the file descriptor you are reading from. Dealing with <symbol>EINTR</symbol> In order to maximize the chance of cancelling an operation immediately, the GNOME Virtual File System can sends a signal to the asynchronous thread or process. This does not happen on all the systems and setups, though. The result of this is that, if a process is in the middle of a Unix system call while receiving this signal, the system call might be interrupted and return a EINTR error. For this reason, when you receive EINTR you should check if a cancellation request is pending, using gnome_vfs_cancellation_check() on the GnomeVFSCancellation object that the implementation function received: If a cancellation is indeed pending (gnome_vfs_cancellation_check() returns a nonzero value), you should cancel the operation, cleaning up all the effects, and return GNOME_VFS_ERROR_INTERRUPTED or GNOME_VFS_ERROR_CANCELLED Otherwise, retry the system call as you would normally do. Basic guidelines for writing a module Writing GNOME VFS modules is easy, but there are a few things that you must keep in mind when hacking them: All of the code must be completely thread safe. The reason for this is that the asynchronous GNOME VFS engine will use threads when available; if you don't make sure that the code is thread-safe, every kind of weird and unexpected errors will happen. As debugging these problems can be very hard, it's important to write the code with threads in mind right from the start. Use the special gnome_vfs_*_cancellable() VFS functions instead of the standard non-cancellable ones, passing them the same GnomeVFSCancellation object you are given, so that the operation can always be interrrupted at any time. The code should respect the basic GNOME guidelines for source code indentation and style. How to make the code thread safe Although it might sound scary at first, making the code for the modules thread safe is not complicated at all. First of all, make sure the amount of global variables is kept to the bare minimum. If possible, you should avoid them at all cost. For those cases where globals are inevitable (such as caches, connection pools or things like that), you have to make sure every variable is properly associated with a mutex, and that the mutex is locked before every access to this variable and released afterwards. You can also use G_LOCK_DEFINE_STATIC, G_LOCK and G_UNLOCK for this. Generally speaking, if you are going to dynamically allocate structures that are shared by more than one operation/file, you should provide all of them with their nice mutex locks. Finally, make sure mutexes are used only if they are available. One way to do so is to use macros like the following: #ifdef G_THREADS_ENABLED #define MUTEX_NEW() g_mutex_new () #define MUTEX_FREE(a) g_mutex_free (a) #define MUTEX_LOCK(a) if ((a) != NULL) g_mutex_lock (a) #define MUTEX_UNLOCK(a) if ((a) != NULL) g_mutex_unlock (a) #else #define MUTEX_NEW() NULL #define MUTEX_FREE(a) #define MUTEX_LOCK(a) #define MUTEX_UNLOCK(a) #endif G_LOCK_DEFINE_STATIC, G_LOCK and G_UNLOCK in GLib are always safe to use, as they are already defined to be nothing when thread support is not available. (Probably it would be a good idea to have something in the private GNOME VFS API that does this stuff for all the modules.) gnome-vfs-2.24.4/doc/Makefile.in0000644000175000001440000005602611450333332013241 00000000000000# 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@ # -*- 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@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/version.xml.in $(top_srcdir)/gtk-doc.make subdir = doc 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 = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = AUTOMAKE_OPTIONS = 1.6 # The name of the module. DOC_MODULE = gnome-vfs-2.0 # The top-level SGML file. DOC_MAIN_SGML_FILE = gnome-vfs-2.0-docs.sgml # Extra options to supply to gtkdoc-scan SCAN_OPTIONS = --deprecated-guards="GNOME_VFS_DISABLE_DEPRECATED" # The directory containing the source code. Relative to $(srcdir) DOC_SOURCE_DIR = ../libgnomevfs # 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)/libgnomevfs/*.h CFILE_GLOB = $(top_srcdir)/libgnomevfs/*.c # Headers to ignore IGNORE_HFILES = \ GNOME_VFS_Daemon.h \ gnome-vfs-async-job-map.h \ gnome-vfs-backend.h \ gnome-vfs-cancellable-ops.h \ gnome-vfs-cdrom.h \ gnome-vfs-client.h \ gnome-vfs-client-call.h \ gnome-vfs-cancellation-private.h \ gnome-vfs-configuration.h \ gnome-vfs-daemon-method.h \ gnome-vfs-hal-mounts.h \ gnome-vfs-handle-private.h \ gnome-vfs-iso9660.h \ gnome-vfs-job-queue.h \ gnome-vfs-job-slave.h \ gnome-vfs-job.h \ gnome-vfs-metadata-private.h \ gnome-vfs-mime-magic.h \ gnome-vfs-mime-private.h \ gnome-vfs-mime-sniff-buffer.h \ gnome-vfs-mime-sniff-buffer-private.h \ gnome-vfs-module-callback-private.h \ gnome-vfs-monitor-private.h \ gnome-vfs-private-utils.h \ gnome-vfs-private.h \ gnome-vfs-process.h \ gnome-vfs-pthread.h \ gnome-vfs-ssl-private.h \ gnome-vfs-thread-pool.h \ gnome-vfs-unix-mounts.h \ gnome-vfs-volume-monitor-private.h \ xdgmime.h \ xdgmimecache.h \ xdgmimeglob.h \ xdgmimemagic.h \ xdgmimeint.h \ xdgmimealias.h \ xdgmimeparent.h \ $(NULL) # Images to copy into HTML directory HTML_IMAGES = # Non-autogenerated SGML files to be included in $(DOC_MAIN_SGML_FILE) content_files = \ writing-modules.sgml \ about.sgml \ version.xml extra_files = version.xml.in # CFLAGS and LDFLAGS for compiling scan program. Only needed # if $(DOC_MODULE).types is non-empty. GTKDOC_CFLAGS = \ -I$(top_srcdir) \ $(VFS_CFLAGS) \ $(LIBGNOMEVFS_CFLAGS) GTKDOC_LIBS = $(LIBGNOMEVFS_LIBS) \ $(top_builddir)/libgnomevfs/libgnomevfs-2.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) EXTRA_DIST = \ $(content_files) \ $(HTML_IMAGES) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ pdf-build.stamp \ $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp \ $(srcdir)/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 doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @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 #### scan #### scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) @echo 'gtk-doc: Scanning header files' @-chmod -R u+w $(srcdir) @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ cd $(srcdir) && \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) @if grep -l '^..*$$' $(srcdir)/$(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) --output-dir=$(srcdir) ; \ else \ cd $(srcdir) ; \ 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: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt @echo 'gtk-doc: Rebuilding template files' @-chmod -R u+w $(srcdir) @cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) @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 ; \ cd $(srcdir) && \ 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' @-chmod -R u+w $(srcdir) @rm -rf $(srcdir)/html @mkdir $(srcdir)/html @mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$(?)" = "0"; then \ mkhtml_options=--path="$(srcdir)"; \ fi; \ cd $(srcdir)/html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) @echo 'gtk-doc: Fixing cross-references' @cd $(srcdir) && 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' @-chmod -R u+w $(srcdir) @rm -rf $(srcdir)/$(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; \ cd $(srcdir) && 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: cd $(srcdir) && \ rm -rf xml $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt maintainer-clean-local: clean cd $(srcdir) && 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 $(srcdir)/tmpl/*.sgml $(distdir)/tmpl cp $(srcdir)/html/* $(distdir)/html -cp $(srcdir)/$(DOC_MODULE).pdf $(distdir)/ -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ cd $(distdir) && rm -f $(DISTCLEANFILES) $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs dist-hook-local: # mkdir $(distdir)/TEXT; \ # for f in $(srcdir)/TEXT/* ; do \ # test -f $$f && cp -p $$f $(distdir)/TEXT; \ # 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: gnome-vfs-2.24.4/doc/about.sgml0000644000175000001440000001677711334251016013202 00000000000000 Introduction to GnomeVFS Uses and Purpose GnomeVFS is a filesystem abstraction library allowing applications plugable transparent access to a variety of "real" filesystems, from WebDAV to digital cameras, to the local filesystem. It also contains a number of other convenient file utilities such as a comphrehensive MIME database / Application registry, and a copy engine. Use of GnomeVFS ensures that an application or component will be usable by Nautilus or other GnomeVFS applications for handling the display of data from various URIs, as well User's Perspective From a user's perspective GnomeVFS enabled applications provide consistent access to their data, whether it be stored on remote servers or on their local harddisk, or even a peripheral device such as a Rio or a digital camera. Rather than having to work around the distinction between storage you can work off of and storage you can only "download" from or "upload" to, GnomeVFS allows users to store their documents and data wherever it is most convenient. Developer's Perspective Besides providing transparent access to data methods that you might otherwise have to implement, GnomeVFS provides a number of convenience libraries for processing URIs, detecting the MIME type of files, and even figuring out which applications or components to launch to view a file or what icon to use. Writing a GnomeVFS module may also be an appropriate solution to some data access problems as it allows the developer to implement a relatively small number of functions to gain general filesystem semantics (and of course, writing a GnomeVFS module benefits other applications too!). A Gentle Programming Primer Using GnomeVFS in an existing application, or writing a new application with it, is actually very simple since GnomeVFS tries to mimic POSIX file access syntax and semantics. That means that most "standard unix calls" have a GnomeVFS equivalent that operates in a fairly similar manner. There are a few differences to keep in mind. The most obvious is probably that all I/O operations return a GnomeVFSResult indicating the success or failure of the operation. More on this later. The types may be slightly different (but still parallel), for example rather than using an int for a file-descriptor, GnomeVFS uses GnomeVFSHandle, a handle to a particular URI. Most operations come in Handle (think file descriptor) and URI form. The URI form may be more convenient if you do not want to track handles, etc, but just be aware that both are at your disposal and may be used interchangably. For example gnome_vfs_open and gnome_vfs_open_uri. By way of example, consider the basic read command: ssize_t read (int fd, void *buf, size_t count); The GnomeVFS equivalent is very similar, but you will notice slightly different data types. The consistent returning of a GnomeVFSResult also necessitated moving the return value of read into a pass-back-value pointer bytes_read: GnomeVFSResult gnome_vfs_read (GnomeVFSHandle *handle, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read); So gnome_vfs_read takes a GnomeVFSHandle, which functions like a file descriptor, and attempts to read bytes bytes out of handle into buffer. The number of bytes succesfully read into buffer is returned in the pointer bytes_read. The return value of the function, a GnomeVFSResult indicates the success of the operation or any errors that might have occurred (for example, permission denied). GnomeVFSResult is just an enumeration. Simple Sample Program Now lets write a simple program to copy a fixed number of bytes from one file and append it to another file. #include #include #define BYTES_TO_PROCESS 256 int print_error (GnomeVFSResult result, const char *uri_string); int main (int argc, char **argv) { GnomeVFSHandle *read_handle, *write_handle; char *input_uri_string; char *output_uri_string = argv[2]; GnomeVFSFileSize bytes_read, bytes_written; guint buffer[BYTES_TO_PROCESS]; GnomeVFSResult result; /* remember to initialize GnomeVFS! */ if (!gnome_vfs_init ()) { printf ("Could not initialize GnomeVFS\n"); return 1; } /* Convert the user supplied filenames into proper GnomeVFS URIs */ input_uri_string = gnome_vfs_make_uri_from_shell_arg (argv[1]); output_uri_string = gnome_vfs_make_uri_from_shell_arg (argv[2]); /* open the input file for read access */ result = gnome_vfs_open (&read_handle, input_uri_string, GNOME_VFS_OPEN_READ); /* if the operation was not successful, print the error and abort */ if (result != GNOME_VFS_OK) return print_error (result, input_uri_string); /* we use create instead of open, because open will not create the file if it does not already exist. The last argument is the permissions to use if the file is created, the second to last tells GnomeVFS that its ok if the file already exists, and just open it */ result = gnome_vfs_create (&write_handle, output_uri_string, GNOME_VFS_OPEN_WRITE, FALSE, 0777); if (result != GNOME_VFS_OK) return print_error (result, output_uri_string); /* read data from the input uri */ result = gnome_vfs_read (read_handle, buffer, BYTES_TO_PROCESS, &bytes_read); if (result != GNOME_VFS_OK) return print_error (result, input_uri_string); /* seek to the end of the output uri so we will append rather than overwrite */ /* therefore, we seek 0 bytes relative to the end of the file */ result = gnome_vfs_seek (write_handle, GNOME_VFS_SEEK_END, 0); /* now write the data we read out to the output uri */ result = gnome_vfs_write (write_handle, buffer, bytes_read, &bytes_written); if (result != GNOME_VFS_OK) return print_error (result, output_uri_string); g_free (input_uri_string); g_free (output_uri_string); return 0; } int print_error (GnomeVFSResult result, const char *uri_string) { const char *error_string; /* get the string corresponding to this GnomeVFSResult value */ error_string = gnome_vfs_result_to_string (result); printf ("Error %s occured opening location %s\n", error_string, uri_string); return 1; } ]]> Conversion of a Sample Code Block gnome-vfs-2.24.4/doc/html/0000755000175000001440000000000011450333533012212 500000000000000gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-file-info-ops.html0000644000175000001440000005125011450333533021565 00000000000000 Getting and Setting File Information

Getting and Setting File Information

Getting and Setting File Information — Convenient high-level abstraction for obtaining and setting file information, including ACLs.

Description

Applications can use the gnome_vfs_get_file_info() family of operations to retrieve file information, as this operation can be quite costly in terms of time (specilly when sniffing the MIME type) applications can specify which information need at any time, reducing the performance impact.

All of these operations use a GnomeVFSFileInfo data structure that holds the file information, there are several methods that can be used to manipulate this information. See GnomeVFSFileInfo for more information.

Details

gnome_vfs_get_file_info ()

GnomeVFSResult      gnome_vfs_get_file_info             (const gchar *text_uri,
                                                         GnomeVFSFileInfo *info,
                                                         GnomeVFSFileInfoOptions options);

Retrieve information about text_uri. The information will be stored in info.

text_uri :

uri of the file for which information will be retrieved.

info :

pointer to a GnomeVFSFileInfo object that will hold the information for the file on return.

options :

options for retrieving file information.

Returns :

an integer representing the result of the operation.

gnome_vfs_get_file_info_uri ()

GnomeVFSResult      gnome_vfs_get_file_info_uri         (GnomeVFSURI *uri,
                                                         GnomeVFSFileInfo *info,
                                                         GnomeVFSFileInfoOptions options);

Retrieve information about text_uri. The information will be stored in info.

uri :

uri of the file for which information will be retrieved.

info :

pointer to a GnomeVFSFileInfo object that will hold the information for the file on return.

options :

options for retrieving file information.

Returns :

an integer representing the result of the operation.

gnome_vfs_get_file_info_from_handle ()

GnomeVFSResult      gnome_vfs_get_file_info_from_handle (GnomeVFSHandle *handle,
                                                         GnomeVFSFileInfo *info,
                                                         GnomeVFSFileInfoOptions options);

Retrieve information about an open file. The information will be stored in info.

handle :

handle of the file for which information must be retrieved.

info :

pointer to a GnomeVFSFileInfo object that will hold the information for the file on return.

options :

options for retrieving file information.

Returns :

an integer representing the result of the operation.

gnome_vfs_set_file_info_uri ()

GnomeVFSResult      gnome_vfs_set_file_info_uri         (GnomeVFSURI *uri,
                                                         GnomeVFSFileInfo *info,
                                                         GnomeVFSSetFileInfoMask mask);

Set file information for uri; only the information for which the corresponding bit in mask is set is actually modified.

Note

info's valid_fields is not required to contain the GnomeVFSFileInfoFields corresponding to the specified GnomeVFSSetFileInfoMask fields of mask. It is assumed that the info fields referenced by mask are valid.

uri :

a uri.

info :

information that must be set for the file.

mask :

bit mask representing which fields of info need to be set.

Returns :

an integer representing the result of the operation.

gnome_vfs_set_file_info ()

GnomeVFSResult      gnome_vfs_set_file_info             (const gchar *text_uri,
                                                         GnomeVFSFileInfo *info,
                                                         GnomeVFSSetFileInfoMask mask);

Set file information for uri; only the information for which the corresponding bit in mask is set is actually modified.

Note

info's valid_fields is not required to contain the GnomeVFSFileInfoFields corresponding to the specified GnomeVFSSetFileInfoMask fields of mask. It is assumed that the info fields referenced by mask are valid.

text_uri :

string representing the file location.

info :

information that must be set for the file.

mask :

bit mask representing which fields of info need to be set.

Returns :

an integer representing the result of the operation.

See Also

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-cancellation.html0000644000175000001440000003114711450333533021555 00000000000000 Cancellation

Cancellation

Cancellation — halt in-progress operations

Description

Details

gnome_vfs_cancellation_new ()

GnomeVFSCancellation * gnome_vfs_cancellation_new       (void);

Create a new GnomeVFSCancellation object for reporting cancellation to a gnome-vfs module.

Returns :

A pointer to the new GnomeVFSCancellation object.

gnome_vfs_cancellation_destroy ()

void                gnome_vfs_cancellation_destroy      (GnomeVFSCancellation *cancellation);

Destroy cancellation.

cancellation :

a GnomeVFSCancellation object.

gnome_vfs_cancellation_cancel ()

void                gnome_vfs_cancellation_cancel       (GnomeVFSCancellation *cancellation);

Send a cancellation request through cancellation.

If called on a different thread than the one handling idle callbacks, there is a small race condition where the operation finished callback will be called even if you cancelled the operation. Its the apps responsibility to handle this. See gnome_vfs_async_cancel() for more discussion about this.

cancellation :

a GnomeVFSCancellation object.

gnome_vfs_cancellation_check ()

gboolean            gnome_vfs_cancellation_check        (GnomeVFSCancellation *cancellation);

Check for pending cancellation.

cancellation :

a GnomeVFSCancellation object.

Returns :

TRUE if the operation should be interrupted.

gnome_vfs_cancellation_ack ()

void                gnome_vfs_cancellation_ack          (GnomeVFSCancellation *cancellation);

Acknowledge a cancellation. This should be called if gnome_vfs_cancellation_check() returns TRUE or if select() reports that input is available on the file descriptor returned by gnome_vfs_cancellation_get_fd().

cancellation :

a GnomeVFSCancellation object.

gnome_vfs_cancellation_get_fd ()

gint                gnome_vfs_cancellation_get_fd       (GnomeVFSCancellation *cancellation);

Get a file descriptor -based notificator for cancellation. When cancellation receives a cancellation request, a character will be made available on the returned file descriptor for input.

This is very useful for detecting cancellation during I/O operations: you can use the select() call to check for available input/output on the file you are reading/writing, and on the notificator's file descriptor at the same time. If a data is available on the notificator's file descriptor, you know you have to cancel the read/write operation.

cancellation :

a GnomeVFSCancellation object.

Returns :

the notificator's file descriptor, or -1 if starved of file descriptors.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-monitor.html0000644000175000001440000004553111450333533020612 00000000000000 Monitoring

Monitoring

Monitoring — watch files for changes, and get called back if they do

Synopsis

typedef             GnomeVFSMonitorHandle;
enum                GnomeVFSMonitorType;
enum                GnomeVFSMonitorEventType;
void                (*GnomeVFSMonitorCallback)          (GnomeVFSMonitorHandle *handle,
                                                         const gchar *monitor_uri,
                                                         const gchar *info_uri,
                                                         GnomeVFSMonitorEventType event_type,
                                                         gpointer user_data);
GnomeVFSResult      gnome_vfs_monitor_add               (GnomeVFSMonitorHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSMonitorType monitor_type,
                                                         GnomeVFSMonitorCallback callback,
                                                         gpointer user_data);
GnomeVFSResult      gnome_vfs_monitor_cancel            (GnomeVFSMonitorHandle *handle);
void                gnome_vfs_monitor_callback          (GnomeVFSMethodHandle *method_handle,
                                                         GnomeVFSURI *info_uri,
                                                         GnomeVFSMonitorEventType event_type);

Description

Details

GnomeVFSMonitorHandle

typedef struct GnomeVFSMonitorHandle GnomeVFSMonitorHandle;

a handle representing a file or directory monitor that was registered using gnome_vfs_monitor_add() and that can be cancelled using gnome_vfs_monitor_cancel().


enum GnomeVFSMonitorType

typedef enum {
  GNOME_VFS_MONITOR_FILE,
  GNOME_VFS_MONITOR_DIRECTORY
} GnomeVFSMonitorType;

Type of resources that can be monitored.

GNOME_VFS_MONITOR_FILE

the monitor is registered for a single file.

GNOME_VFS_MONITOR_DIRECTORY

the monitor is registered for all files in a directory, and the directory itself.

enum GnomeVFSMonitorEventType

typedef enum {
  GNOME_VFS_MONITOR_EVENT_CHANGED,
  GNOME_VFS_MONITOR_EVENT_DELETED,
  GNOME_VFS_MONITOR_EVENT_STARTEXECUTING,
  GNOME_VFS_MONITOR_EVENT_STOPEXECUTING,
  GNOME_VFS_MONITOR_EVENT_CREATED,
  GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED
} GnomeVFSMonitorEventType;

Types of events that can be monitored.

GNOME_VFS_MONITOR_EVENT_CHANGED

file data changed (FAM, inotify).

GNOME_VFS_MONITOR_EVENT_DELETED

file deleted event (FAM, inotify).

GNOME_VFS_MONITOR_EVENT_STARTEXECUTING

file was executed (FAM only).

GNOME_VFS_MONITOR_EVENT_STOPEXECUTING

executed file isn't executed anymore (FAM only).

GNOME_VFS_MONITOR_EVENT_CREATED

file created event (FAM, inotify).

GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED

file metadata changed (inotify only).

GnomeVFSMonitorCallback ()

void                (*GnomeVFSMonitorCallback)          (GnomeVFSMonitorHandle *handle,
                                                         const gchar *monitor_uri,
                                                         const gchar *info_uri,
                                                         GnomeVFSMonitorEventType event_type,
                                                         gpointer user_data);

Function called when a monitor detects a change.

handle :

the handle of the monitor that created the event

monitor_uri :

the URI of the monitor that was triggered

info_uri :

the URI of the actual file this event is concerned with (this can be different from monitor_uri if it was a directory monitor)

event_type :

what happened to info_uri

user_data :

user data passed to gnome_vfs_monitor_add() when the monitor was created

gnome_vfs_monitor_add ()

GnomeVFSResult      gnome_vfs_monitor_add               (GnomeVFSMonitorHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSMonitorType monitor_type,
                                                         GnomeVFSMonitorCallback callback,
                                                         gpointer user_data);

Watch the file or directory at text_uri for changes (or the creation/deletion of the file) and call callback when there is a change. If a directory monitor is added, callback is notified when any file in the directory changes.

handle :

after the call, handle will be a pointer to an operation handle.

text_uri :

string representing the uri to monitor.

monitor_type :

add a directory or file monitor.

callback :

function to call when the monitor is tripped.

user_data :

data to pass to callback.

Returns :

an integer representing the result of the operation.

gnome_vfs_monitor_cancel ()

GnomeVFSResult      gnome_vfs_monitor_cancel            (GnomeVFSMonitorHandle *handle);

Cancel the monitor pointed to be handle.

handle :

handle of the monitor to cancel.

Returns :

an integer representing the result of the operation.

gnome_vfs_monitor_callback ()

void                gnome_vfs_monitor_callback          (GnomeVFSMethodHandle *method_handle,
                                                         GnomeVFSURI *info_uri,
                                                         GnomeVFSMonitorEventType event_type);

gnome_vfs_monitor_callback() is used by GnomeVFSMethods to indicate that a particular resource changed, and will issue the emission of the GnomeVFSMonitorCallback registered using gnome_vfs_monitor_add().

method_handle :

Method-specific monitor handle obtained through gnome_vfs_monitor_add().

info_uri :

URI that triggered the callback.

event_type :

The event obtained for info_uri.
gnome-vfs-2.24.4/doc/html/up.png0000644000175000001440000000062611450333532013267 00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ2.œE€Ù#IDATxœí“=JÄ@F¿o‰] !+¤œ2…Å[ZÌ<@/á<€¥…XÛ Ú­20v±³ˆÂ…Ïj0»lþvV°ðA`˜ ïÍ ð—t*iùâHÒ­~xR~'IUUÉ9ç#OÁ‘my–eJÓTeY†GvÉ@x¤O#ß;2E>9²|t$DÞ9nnBäíÈjµò‘BRIsIªë:HîŸ8ŽU…œùëùPÖÚN™1fc­sNÎ95Mã§–ɵ¤ ׿ŸØŒ1~¸pEòe$ïIž°€Ç î7nrDòf!;Ã`¨çÝ'äykíÎI’øáû䲤sI_]ÿÇy—‡‘€ÅÀ^^I>O>Á¡ø­§²š?YBIEND®B`‚gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-mime-database-deprecated.html0000644000175000001440000032452511450333533023715 00000000000000 gnome-vfs-mime-database-deprecated

gnome-vfs-mime-database-deprecated

gnome-vfs-mime-database-deprecated

Synopsis

enum                GnomeVFSMimeActionType;
enum                GnomeVFSMimeApplicationArgumentType;
struct              GnomeVFSMimeAction;
GnomeVFSMimeActionType  gnome_vfs_mime_get_default_action_type
                                                        (const char *mime_type);
GnomeVFSMimeAction *      gnome_vfs_mime_get_default_action
                                                        (const char *mime_type);
GList *                   gnome_vfs_mime_get_short_list_applications
                                                        (const char *mime_type);
GList *             gnome_vfs_mime_get_short_list_components
                                                        (const char *mime_type);
GnomeVFSResult      gnome_vfs_mime_set_default_action_type
                                                        (const char *mime_type,
                                                         GnomeVFSMimeActionType action_type);
GnomeVFSResult      gnome_vfs_mime_set_icon             (const char *mime_type,
                                                         const char *filename);
GnomeVFSResult      gnome_vfs_mime_set_description      (const char *mime_type,
                                                         const char *description);
GnomeVFSResult      gnome_vfs_mime_set_can_be_executable
                                                        (const char *mime_type,
                                                         gboolean new_value);
GnomeVFSResult      gnome_vfs_mime_set_short_list_applications
                                                        (const char *mime_type,
                                                         GList *application_ids);
GnomeVFSResult      gnome_vfs_mime_set_short_list_components
                                                        (const char *mime_type,
                                                         GList *component_iids);
GnomeVFSResult      gnome_vfs_mime_add_application_to_short_list
                                                        (const char *mime_type,
                                                         const char *application_id);
GnomeVFSResult      gnome_vfs_mime_remove_application_from_short_list
                                                        (const char *mime_type,
                                                         const char *application_id);
GnomeVFSResult      gnome_vfs_mime_add_component_to_short_list
                                                        (const char *mime_type,
                                                         const char *iid);
GnomeVFSResult      gnome_vfs_mime_remove_component_from_short_list
                                                        (const char *mime_type,
                                                         const char *iid);
GnomeVFSResult      gnome_vfs_mime_set_default_application
                                                        (const char *mime_type,
                                                         const char *application_id);
GnomeVFSResult      gnome_vfs_mime_set_default_component
                                                        (const char *mime_type,
                                                         const char *component_iid);
GnomeVFSResult      gnome_vfs_mime_add_extension        (const char *mime_type,
                                                         const char *extension);
GnomeVFSResult      gnome_vfs_mime_remove_extension     (const char *mime_type,
                                                         const char *extension);
GnomeVFSResult      gnome_vfs_mime_extend_all_applications
                                                        (const char *mime_type,
                                                         GList *application_ids);
GnomeVFSResult      gnome_vfs_mime_remove_from_all_applications
                                                        (const char *mime_type,
                                                         GList *application_ids);
GnomeVFSMimeApplication * gnome_vfs_mime_application_new_from_id
                                                        (const char *id);
GnomeVFSResult      gnome_vfs_mime_action_launch        (GnomeVFSMimeAction *action,
                                                         GList *uris);
GnomeVFSResult      gnome_vfs_mime_action_launch_with_env
                                                        (GnomeVFSMimeAction *action,
                                                         GList *uris,
                                                         char **envp);
void                gnome_vfs_mime_action_free          (GnomeVFSMimeAction *action);
gboolean            gnome_vfs_mime_id_in_application_list
                                                        (const char *id,
                                                         GList *applications);
gboolean            gnome_vfs_mime_id_in_component_list (const char *iid,
                                                         GList *components);
GList *                   gnome_vfs_mime_remove_application_from_list
                                                        (GList *applications,
                                                         const char *application_id,
                                                         gboolean *did_remove);
GList *             gnome_vfs_mime_remove_component_from_list
                                                        (GList *components,
                                                         const char *iid,
                                                         gboolean *did_remove);
GList *             gnome_vfs_mime_id_list_from_component_list
                                                        (GList *components);
GList *                   gnome_vfs_mime_id_list_from_application_list
                                                        (GList *applications);
void                gnome_vfs_mime_freeze               (void);
void                gnome_vfs_mime_thaw                 (void);
void                gnome_vfs_mime_info_reload          (void);
gboolean            gnome_vfs_mime_type_is_known        (const char *mime_type);
const char *        gnome_vfs_mime_get_value            (const char *mime_type,
                                                         const char *key);
GnomeVFSResult      gnome_vfs_mime_set_value            (const char *mime_type,
                                                         const char *key,
                                                         const char *value);
GList *             gnome_vfs_mime_get_key_list         (const char *mime_type);
void                gnome_vfs_mime_keys_list_free       (GList *mime_type_list);
GList *             gnome_vfs_mime_get_extensions_list  (const char *mime_type);
void                gnome_vfs_mime_extensions_list_free (GList *list);
char *              gnome_vfs_mime_get_extensions_string
                                                        (const char *mime_type);
char *              gnome_vfs_mime_get_extensions_pretty_string
                                                        (const char *mime_type);
GList *             gnome_vfs_get_registered_mime_types (void);
void                gnome_vfs_mime_registered_mime_type_list_free
                                                        (GList *list);
GnomeVFSResult      gnome_vfs_mime_set_registered_type_key
                                                        (const char *mime_type,
                                                         const char *key,
                                                         const char *data);
GnomeVFSResult      gnome_vfs_mime_set_extensions_list  (const char *mime_type,
                                                         const char *extensions_list);
void                gnome_vfs_mime_registered_mime_type_delete
                                                        (const char *mime_type);
void                gnome_vfs_mime_reset                (void);

Description

Details

enum GnomeVFSMimeActionType

typedef enum {
	GNOME_VFS_MIME_ACTION_TYPE_NONE,
	GNOME_VFS_MIME_ACTION_TYPE_APPLICATION,
	GNOME_VFS_MIME_ACTION_TYPE_COMPONENT
} GnomeVFSMimeActionType;

Warning

GnomeVFSMimeActionType is deprecated and should not be used in newly-written code.

This is used to specify the type of a GnomeVFSMimeAction.

GNOME_VFS_MIME_ACTION_TYPE_NONE

neither an application nor a component.

GNOME_VFS_MIME_ACTION_TYPE_APPLICATION

an application.

GNOME_VFS_MIME_ACTION_TYPE_COMPONENT

a component.

enum GnomeVFSMimeApplicationArgumentType

typedef enum {
	GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS,
	GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS,
	GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES
} GnomeVFSMimeApplicationArgumentType;


struct GnomeVFSMimeAction

struct GnomeVFSMimeAction {
	GnomeVFSMimeActionType action_type;
	union {
		void *component;
		void *dummy_component;
		GnomeVFSMimeApplication *application;
};

Warning

GnomeVFSMimeAction is deprecated and should not be used in newly-written code.

This data structure describes an action that can be done on a file.

GnomeVFSMimeActionType action_type;

The GnomeVFSMimeActionType describing the type of this action.

gnome_vfs_mime_get_default_action_type ()

GnomeVFSMimeActionType  gnome_vfs_mime_get_default_action_type
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_default_action_type is deprecated and should not be used in newly-written code. This function does not work with the new mime system. It always returns none

Query the MIME database for the type of action to be performed on mime_type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

Returns :

The type of action to be performed on a file of MIME type mime_type by default.

gnome_vfs_mime_get_default_action ()

GnomeVFSMimeAction *      gnome_vfs_mime_get_default_action
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_default_action is deprecated and should not be used in newly-written code. Use gnome_vfs_mime_get_default_application() instead.

Query the MIME database for default action associated with mime_type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

Returns :

a GnomeVFSMimeAction representing the default action to perform upon file of type mime_type.

gnome_vfs_mime_get_short_list_applications ()

GList *                   gnome_vfs_mime_get_short_list_applications
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_short_list_applications is deprecated and should not be used in newly-written code. Use gnome_vfs_mime_get_all_applications() instead.

Return an alphabetically sorted list of GnomeVFSMimeApplication data structures for the mime_type. gnome-vfs no longer supports the concept of a "short list" of applications that the user might be interested in.

mime_type :

a const char * containing a mime type, e.g. "image/png".

Returns :

a GList * where the elements are GnomeVFSMimeApplication * representing various applications to display in the short list for mime_type.

gnome_vfs_mime_get_short_list_components ()

GList *             gnome_vfs_mime_get_short_list_components
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_short_list_components is deprecated and should not be used in newly-written code.

mime_type :

Returns :


gnome_vfs_mime_set_default_action_type ()

GnomeVFSResult      gnome_vfs_mime_set_default_action_type
                                                        (const char *mime_type,
                                                         GnomeVFSMimeActionType action_type);

Warning

gnome_vfs_mime_set_default_action_type is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Sets the default action type to be performed on files of mime_type.

mime_type :

a const char * containing a mime type, e.g. "image/png".

action_type :

a GnomeVFSMimeActionType containing the action to perform by default.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_set_icon ()

GnomeVFSResult      gnome_vfs_mime_set_icon             (const char *mime_type,
                                                         const char *filename);

Warning

gnome_vfs_mime_set_icon is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported in gnome-vfs.

Set the icon entry for mime_type in the MIME database. Note that icon entries need not necessarily contain the full path, and do not necessarily need to specify an extension. So "i-regular", "my-special-icon.png", and "some-icon" are all valid icon filenames.

mime_type :

a const char * containing a MIME type.

filename :

a const char * containing an image filename.

Returns :

a GnomeVFSResult indicating the success of the operation or any errors that may have occurred.

gnome_vfs_mime_set_description ()

GnomeVFSResult      gnome_vfs_mime_set_description      (const char *mime_type,
                                                         const char *description);

Warning

gnome_vfs_mime_set_description is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Set the description of this MIME type in the MIME database. The description should be something like "Gnumeric spreadsheet".

mime_type :

a const char * containing a mime type.

description :

a description of this MIME type.

Returns :

GnomeVFSResult indicating the success of the operation or any errors that may have occurred.

gnome_vfs_mime_set_can_be_executable ()

GnomeVFSResult      gnome_vfs_mime_set_can_be_executable
                                                        (const char *mime_type,
                                                         gboolean new_value);

Warning

gnome_vfs_mime_set_can_be_executable is deprecated and should not be used in newly-written code.

Set whether files of mime_type might conceivably be executable.

mime_type :

a const char * containing a mime type.

new_value :

a boolean value indicating whether mime_type could be executable.

Returns :

a GnomeVFSResult indicating the success of the operation or any errors that may have occurred.

gnome_vfs_mime_set_short_list_applications ()

GnomeVFSResult      gnome_vfs_mime_set_short_list_applications
                                                        (const char *mime_type,
                                                         GList *application_ids);

Warning

gnome_vfs_mime_set_short_list_applications is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Set the short list of applications for the specified MIME type. The short list contains applications recommended for possible selection by the user.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

application_ids :

GList of const char * application ids.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_set_short_list_components ()

GnomeVFSResult      gnome_vfs_mime_set_short_list_components
                                                        (const char *mime_type,
                                                         GList *component_iids);

Warning

gnome_vfs_mime_set_short_list_components is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Set the short list of components for the mime_type. The short list contains companents recommended for possible selection by the user.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

component_iids :

GList of const char * OAFIIDs.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_add_application_to_short_list ()

GnomeVFSResult      gnome_vfs_mime_add_application_to_short_list
                                                        (const char *mime_type,
                                                         const char *application_id);

Warning

gnome_vfs_mime_add_application_to_short_list is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Add an application to the short list for mime_type. The short list contains applications recommended for display as choices to the user for a particular MIME type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

application_id :

const char * containing the application's id in the MIME database.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_remove_application_from_short_list ()

GnomeVFSResult      gnome_vfs_mime_remove_application_from_short_list
                                                        (const char *mime_type,
                                                         const char *application_id);

Warning

gnome_vfs_mime_remove_application_from_short_list is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Remove an application specified by application_id from the short list for mime_type. A short list contains applications recommended for display as choices to the user for a particular MIME type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

application_id :

const char * containing the application's id in the MIME database.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_add_component_to_short_list ()

GnomeVFSResult      gnome_vfs_mime_add_component_to_short_list
                                                        (const char *mime_type,
                                                         const char *iid);

Warning

gnome_vfs_mime_add_component_to_short_list is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Add a component to the short list for mime_type. A short list contains components recommended for display as choices to the user for a particular MIME type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

iid :

const char * containing the component's OAFIID.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_remove_component_from_short_list ()

GnomeVFSResult      gnome_vfs_mime_remove_component_from_short_list
                                                        (const char *mime_type,
                                                         const char *iid);

Warning

gnome_vfs_mime_remove_component_from_short_list is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Remove a component from the short list for mime_type. The short list contains components recommended for display as choices to the user for a particular MIME type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

iid :

const char * containing the component's OAFIID.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_set_default_application ()

GnomeVFSResult      gnome_vfs_mime_set_default_application
                                                        (const char *mime_type,
                                                         const char *application_id);

Warning

gnome_vfs_mime_set_default_application is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Sets the default application to be run on files of mime_type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

application_id :

a key representing an application in the MIME database (GnomeVFSMimeApplication->id, for example).

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_set_default_component ()

GnomeVFSResult      gnome_vfs_mime_set_default_component
                                                        (const char *mime_type,
                                                         const char *component_iid);

Warning

gnome_vfs_mime_set_default_component is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Sets the default component to be activated for files of mime_type.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

component_iid :

OAFIID of a component.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_add_extension ()

GnomeVFSResult      gnome_vfs_mime_add_extension        (const char *mime_type,
                                                         const char *extension);

Warning

gnome_vfs_mime_add_extension is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Add a file extension to the specificed MIME type in the MIME database.

mime_type :

mime type to add the mapping to.

extension :

extension to add (e.g. "txt").

Returns :

a GnomeVFSResult indicating the success of the operation or any errors that may have occurred.

gnome_vfs_mime_remove_extension ()

GnomeVFSResult      gnome_vfs_mime_remove_extension     (const char *mime_type,
                                                         const char *extension);

Warning

gnome_vfs_mime_remove_extension is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Removes a file extension from the mime_type in the MIME database.

mime_type :

mime type to remove the extension from.

extension :

extension to remove.

Returns :

a GnomeVFSResult indicating the success of the operation or any errors that may have occurred.

gnome_vfs_mime_extend_all_applications ()

GnomeVFSResult      gnome_vfs_mime_extend_all_applications
                                                        (const char *mime_type,
                                                         GList *application_ids);

Warning

gnome_vfs_mime_extend_all_applications is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Register mime_type as being handled by all applications list in application_ids.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

application_ids :

a GList of const char * containing application ids.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_remove_from_all_applications ()

GnomeVFSResult      gnome_vfs_mime_remove_from_all_applications
                                                        (const char *mime_type,
                                                         GList *application_ids);

Warning

gnome_vfs_mime_remove_from_all_applications is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Remove mime_type as a handled type from every application in application_ids

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

application_ids :

a GList of const char * containing application ids.

Returns :

a GnomeVFSResult indicating the success of the operation or reporting any errors encountered.

gnome_vfs_mime_application_new_from_id ()

GnomeVFSMimeApplication * gnome_vfs_mime_application_new_from_id
                                                        (const char *id);

Warning

gnome_vfs_mime_application_new_from_id is deprecated and should not be used in newly-written code. Use gnome_vfs_mime_application_new_from_desktop_id() instead.

Fetches the GnomeVFSMimeApplication associated with the specified application id from the MIME database.

id :

a const char * containing an application id.

Returns :

a GnomeVFSMimeApplication * corresponding to id.

gnome_vfs_mime_action_launch ()

GnomeVFSResult      gnome_vfs_mime_action_launch        (GnomeVFSMimeAction *action,
                                                         GList *uris);

Warning

gnome_vfs_mime_action_launch is deprecated and should not be used in newly-written code. MIME actions are deprecated, use gnome_vfs_mime_application_launch() instead.

Launches the given mime action with the given parameters. If the action is an application the command line parameters will be expanded as required by the application. The application will also be launched in a terminal if that is required. If the application only supports one argument per instance then multiple instances of the application will be launched.

If the default action is a component it will be launched with the component viewer application defined using the gconf value: /desktop/gnome/application/component_viewer/exec. The parameters s and c in the command line will be replaced with the list of parameters and the default component IID respectively.

action :

the GnomeVFSMimeAction to launch.

uris :

parameters for the GnomeVFSMimeAction.

Returns :

GNOME_VFS_OK if the action was launched, GNOME_VFS_ERROR_BAD_PARAMETERS for an invalid action. GNOME_VFS_ERROR_NOT_SUPPORTED if the uri protocol is not supported by the action. GNOME_VFS_ERROR_PARSE if the action command can not be parsed. GNOME_VFS_ERROR_LAUNCH if the action command can not be launched. GNOME_VFS_ERROR_INTERNAL for other internal and GConf errors.

Since 2.4


gnome_vfs_mime_action_launch_with_env ()

GnomeVFSResult      gnome_vfs_mime_action_launch_with_env
                                                        (GnomeVFSMimeAction *action,
                                                         GList *uris,
                                                         char **envp);

Warning

gnome_vfs_mime_action_launch_with_env is deprecated and should not be used in newly-written code. MIME actions are deprecated, use gnome_vfs_mime_application_launch_with_env() instead.

Same as gnome_vfs_mime_action_launch() except that the application or component viewer will be launched with the given environment.

action :

the GnomeVFSMimeAction to launch.

uris :

parameters for the GnomeVFSMimeAction.

envp :

the environment to use for the action.

Returns :

same as gnome_vfs_mime_action_launch().

Since 2.4


gnome_vfs_mime_action_free ()

void                gnome_vfs_mime_action_free          (GnomeVFSMimeAction *action);

Warning

gnome_vfs_mime_action_free is deprecated and should not be used in newly-written code. GnomeVFSMimeAction structures should not be used in new code.

Frees a GnomeVFSMimeAction *.

action :

a GnomeVFSMimeAction to be freed.

gnome_vfs_mime_id_in_application_list ()

gboolean            gnome_vfs_mime_id_in_application_list
                                                        (const char *id,
                                                         GList *applications);

Warning

gnome_vfs_mime_id_in_application_list is deprecated and should not be used in newly-written code.

Check whether an application id is in a list of GnomeVFSMimeApplications.

id :

an application id.

applications :

a GList * whose nodes are GnomeVFSMimeApplications, such as the result of gnome_vfs_mime_get_short_list_applications().

Returns :

TRUE if an application whose id matches id is in applications.

gnome_vfs_mime_id_in_component_list ()

gboolean            gnome_vfs_mime_id_in_component_list (const char *iid,
                                                         GList *components);

Warning

gnome_vfs_mime_id_in_component_list is deprecated and should not be used in newly-written code.

iid :

components :

Returns :


gnome_vfs_mime_remove_application_from_list ()

GList *                   gnome_vfs_mime_remove_application_from_list
                                                        (GList *applications,
                                                         const char *application_id,
                                                         gboolean *did_remove);

Warning

gnome_vfs_mime_remove_application_from_list is deprecated and should not be used in newly-written code. User modifications to the MIME database are no longer supported by gnome-vfs.

Remove an application specified by id from a list of GnomeVFSMimeApplications.

applications :

a GList * whose nodes are GnomeVFSMimeApplications, such as the result of gnome_vfs_mime_get_short_list_applications().

application_id :

id of an application to remove from applications.

did_remove :

If non-NULL, this is filled in with TRUE if the application was found in the list, FALSE otherwise.

Returns :

The modified list. If the application is not found, the list will be unchanged.

gnome_vfs_mime_remove_component_from_list ()

GList *             gnome_vfs_mime_remove_component_from_list
                                                        (GList *components,
                                                         const char *iid,
                                                         gboolean *did_remove);

Warning

gnome_vfs_mime_remove_component_from_list is deprecated and should not be used in newly-written code.

components :

iid :

did_remove :

Returns :


gnome_vfs_mime_id_list_from_component_list ()

GList *             gnome_vfs_mime_id_list_from_component_list
                                                        (GList *components);

Warning

gnome_vfs_mime_id_list_from_component_list is deprecated and should not be used in newly-written code.

components :

Returns :


gnome_vfs_mime_id_list_from_application_list ()

GList *                   gnome_vfs_mime_id_list_from_application_list
                                                        (GList *applications);

Warning

gnome_vfs_mime_id_list_from_application_list is deprecated and should not be used in newly-written code.

Create a list of application ids from a list of GnomeVFSMimeApplications.

applications :

a GList * whose nodes are GnomeVFSMimeApplications, such as the result of gnome_vfs_mime_get_short_list_applications().

Returns :

a new list where each GnomeVFSMimeApplication in the original list is replaced by a char * with the application's id. The original list is not modified.

gnome_vfs_mime_freeze ()

void                gnome_vfs_mime_freeze               (void);

Freezes the mime data so that you can do multiple updates to the data in one batch without needing to back the files to disk or reading them.


gnome_vfs_mime_thaw ()

void                gnome_vfs_mime_thaw                 (void);

UnFreezes the mime data so that you can do multiple updates to the data in one batch without needing to back the files to disk or reading them.


gnome_vfs_mime_info_reload ()

void                gnome_vfs_mime_info_reload          (void);

Reload the MIME database from disk and notify any listeners holding active GnomeVFSMIMEMonitor objects.


gnome_vfs_mime_type_is_known ()

gboolean            gnome_vfs_mime_type_is_known        (const char *mime_type);

This function returns TRUE if mime_type is in the MIME database at all.

mime_type :

a mime type.

Returns :

TRUE if anything is known about mime_type, otherwise FALSE.

gnome_vfs_mime_get_value ()

const char *        gnome_vfs_mime_get_value            (const char *mime_type,
                                                         const char *key);

This function retrieves the value associated with key in the given GnomeMimeContext. The string is private, you should not free the result.

mime_type :

a mime type.

key :

a key to lookup for the given mime_type.

Returns :

GNOME_VFS_OK if the operation succeeded, otherwise an error code.

gnome_vfs_mime_set_value ()

GnomeVFSResult      gnome_vfs_mime_set_value            (const char *mime_type,
                                                         const char *key,
                                                         const char *value);

Warning

gnome_vfs_mime_set_value is deprecated and should not be used in newly-written code.

This function will set the value for the key and it will save it to the user' file if necessary. You should not free the key/value passed to this function. They are used internally.

mime_type :

a mime type.

key :

a key to store the value in.

value :

the value to store in the key.

Returns :

GNOME_VFS_OK if the operation succeeded, otherwise an error code.

gnome_vfs_mime_get_key_list ()

GList *             gnome_vfs_mime_get_key_list         (const char *mime_type);

Warning

gnome_vfs_mime_get_key_list is deprecated and should not be used in newly-written code.

mime_type :

Returns :


gnome_vfs_mime_keys_list_free ()

void                gnome_vfs_mime_keys_list_free       (GList *mime_type_list);

Warning

gnome_vfs_mime_keys_list_free is deprecated and should not be used in newly-written code.

mime_type_list :


gnome_vfs_mime_get_extensions_list ()

GList *             gnome_vfs_mime_get_extensions_list  (const char *mime_type);

Get the file extensions associated with mime type mime_type.

mime_type :

mime type to get the extensions of.

Returns :

a GList of char *s.

gnome_vfs_mime_extensions_list_free ()

void                gnome_vfs_mime_extensions_list_free (GList *list);

Call this function on the list returned by gnome_vfs_mime_get_extensions_list() to free the list and all of its elements.

list :

the extensions list.

gnome_vfs_mime_get_extensions_string ()

char *              gnome_vfs_mime_get_extensions_string
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_extensions_string is deprecated and should not be used in newly-written code.

mime_type :

Returns :


gnome_vfs_mime_get_extensions_pretty_string ()

char *              gnome_vfs_mime_get_extensions_pretty_string
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_extensions_pretty_string is deprecated and should not be used in newly-written code.

mime_type :

Returns :


gnome_vfs_get_registered_mime_types ()

GList *             gnome_vfs_get_registered_mime_types (void);

Warning

gnome_vfs_get_registered_mime_types is deprecated and should not be used in newly-written code.

Returns :


gnome_vfs_mime_registered_mime_type_list_free ()

void                gnome_vfs_mime_registered_mime_type_list_free
                                                        (GList *list);

Warning

gnome_vfs_mime_registered_mime_type_list_free is deprecated and should not be used in newly-written code.

list :


gnome_vfs_mime_set_registered_type_key ()

GnomeVFSResult      gnome_vfs_mime_set_registered_type_key
                                                        (const char *mime_type,
                                                         const char *key,
                                                         const char *data);

mime_type :

key :

data :

Returns :


gnome_vfs_mime_set_extensions_list ()

GnomeVFSResult      gnome_vfs_mime_set_extensions_list  (const char *mime_type,
                                                         const char *extensions_list);

Warning

gnome_vfs_mime_set_extensions_list is deprecated and should not be used in newly-written code.

mime_type :

extensions_list :

Returns :


gnome_vfs_mime_registered_mime_type_delete ()

void                gnome_vfs_mime_registered_mime_type_delete
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_registered_mime_type_delete is deprecated and should not be used in newly-written code.

mime_type :


gnome_vfs_mime_reset ()

void                gnome_vfs_mime_reset                (void);

Warning

gnome_vfs_mime_reset is deprecated and should not be used in newly-written code.

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-file-rw-ops.html0000644000175000001440000004517311450333533021271 00000000000000 Reading and Writing Files

Reading and Writing Files

Reading and Writing Files — Reading from and writing to open file handles.

Synopsis

enum                GnomeVFSSeekPosition;
GnomeVFSResult      gnome_vfs_read                      (GnomeVFSHandle *handle,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read);
GnomeVFSResult      gnome_vfs_write                     (GnomeVFSHandle *handle,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written);
GnomeVFSResult      gnome_vfs_seek                      (GnomeVFSHandle *handle,
                                                         GnomeVFSSeekPosition whence,
                                                         GnomeVFSFileOffset offset);
GnomeVFSResult      gnome_vfs_tell                      (GnomeVFSHandle *handle,
                                                         GnomeVFSFileSize *offset_return);
GnomeVFSResult      gnome_vfs_forget_cache              (GnomeVFSHandle *handle,
                                                         GnomeVFSFileOffset offset,
                                                         GnomeVFSFileSize size);

Description

Reading and writing operations are explained, also gnome_vfs_seek(), which is used to move the file pointer inside the file.

Details

enum GnomeVFSSeekPosition

typedef enum {
        GNOME_VFS_SEEK_START,
        GNOME_VFS_SEEK_CURRENT,
        GNOME_VFS_SEEK_END
} GnomeVFSSeekPosition;

This is used to specify the start position for seek operations.

GNOME_VFS_SEEK_START

Start of the file.

GNOME_VFS_SEEK_CURRENT

Current position.

GNOME_VFS_SEEK_END

End of the file.

gnome_vfs_read ()

GnomeVFSResult      gnome_vfs_read                      (GnomeVFSHandle *handle,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read);

Read bytes from handle. As with Unix system calls, the number of bytes read can effectively be less than bytes on return and will be stored in bytes_read.

handle :

handle of the file to read data from.

buffer :

pointer to a buffer that must be at least bytes bytes large.

bytes :

number of bytes to read.

bytes_read :

pointer to a variable that will hold the number of bytes effectively read on return.

Returns :

an integer representing the result of the operation.

gnome_vfs_write ()

GnomeVFSResult      gnome_vfs_write                     (GnomeVFSHandle *handle,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written);

Write bytes into the file opened through handle. As with Unix system calls, the number of bytes written can effectively be less than bytes on return and will be stored in bytes_written.

handle :

handle of the file to write data to.

buffer :

pointer to the buffer containing the data to be written.

bytes :

number of bytes to write.

bytes_written :

pointer to a variable that will hold the number of bytes effectively written on return.

Returns :

an integer representing the result of the operation.

gnome_vfs_seek ()

GnomeVFSResult      gnome_vfs_seek                      (GnomeVFSHandle *handle,
                                                         GnomeVFSSeekPosition whence,
                                                         GnomeVFSFileOffset offset);

Set the current position for reading/writing through handle.

handle :

handle for which the current position must be changed.

whence :

integer value representing the starting position.

offset :

number of bytes to skip from the position specified by whence. (a positive value means to move forward; a negative one to move backwards).

Returns :

an integer representing the result of the operation.

gnome_vfs_tell ()

GnomeVFSResult      gnome_vfs_tell                      (GnomeVFSHandle *handle,
                                                         GnomeVFSFileSize *offset_return);

Return the current position on handle. This is the point in the file pointed to by handle that reads and writes will occur on.

handle :

handle for which the current position must be retrieved.

offset_return :

pointer to a variable that will contain the current position on return.

Returns :

an integer representing the result of the operation.

gnome_vfs_forget_cache ()

GnomeVFSResult      gnome_vfs_forget_cache              (GnomeVFSHandle *handle,
                                                         GnomeVFSFileOffset offset,
                                                         GnomeVFSFileSize size);

With this call you can announce to gnome-vfs that you will no longer use the region of data starting at offset with the size of size. Any cached data for this region might then be freed.

This might be useful if you stream large files, for example.

handle :

handle of the file to affect.

offset :

start point of the region to be freed.

size :

length of the region to be freed (or until the end of the file if 0 is specified).

Returns :

an integer representing the result of the operation.

Since 2.12

gnome-vfs-2.24.4/doc/html/left.png0000644000175000001440000000071311450333532013572 00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ1&¹³[(XIDATxœµ•!OÃPEïÛ*ˆ‰ŠID%~ꊯ˜ÄÕ"pæ'öŘ`sÜ–¥rKf–´‚¤â h—mi—ÇIžz}÷ܯIû¤–.pÚö\“`xä‹ ˆl‡?l·[²,H¬‡¯×k<Ï#Žcþ%\’AUx[S³7–n6ù¾¯år¹ßèõzE‰‡’s’žŒ1³ºö“²æÅj@œ—NL$ݤiª0 ¿5/ð}¿²\E‡Ž¤KIo¥Í“$a0üjÞdF£bŠkIê„‹æAh>ŸW¶lC'?“tk;|/t*I»ÝN«ÕÊZø^`Œy•4ë÷ûšN§r]×® çJÒÌó<«’½À“Út»Ýú€à`±Xàºî1@p´ä€¸d½÷ŽZ')høÖÚK¬ ª$V?%Å]€­+³L’sgUKà"ÿw5â3O·•ÜòIEND®B`‚gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-utils.html0000644000175000001440000015771411450333533020272 00000000000000 gnome-vfs-utils

gnome-vfs-utils

gnome-vfs-utils — various utilities functions to manipulate uris

Synopsis

enum                GnomeVFSMakeURIDirs;
char *              gnome_vfs_format_file_size_for_display
                                                        (GnomeVFSFileSize size);
char *              gnome_vfs_format_uri_for_display    (const char *uri);
GnomeVFSResult      gnome_vfs_url_show                  (const char *url);
GnomeVFSResult      gnome_vfs_url_show_with_env         (const char *url,
                                                         char **envp);
char *              gnome_vfs_escape_string             (const char *string);
char *              gnome_vfs_escape_path_string        (const char *path);
char *              gnome_vfs_escape_host_and_path_string
                                                        (const char *path);
char *              gnome_vfs_escape_slashes            (const char *string);
char *              gnome_vfs_escape_set                (const char *string,
                                                         const char *match_set);
char *              gnome_vfs_unescape_string           (const char *escaped_string,
                                                         const char *illegal_characters);
char *              gnome_vfs_make_uri_canonical        (const char *uri);
char *              gnome_vfs_make_uri_canonical_strip_fragment
                                                        (const char *uri);
char *              gnome_vfs_make_path_name_canonical  (const char *path);
char *              gnome_vfs_make_uri_from_input       (const char *location);
char *              gnome_vfs_make_uri_from_input_with_dirs
                                                        (const char *location,
                                                         GnomeVFSMakeURIDirs dirs);
char *              gnome_vfs_make_uri_from_shell_arg   (const char *uri);
char *              gnome_vfs_make_uri_full_from_relative
                                                        (const char *base_uri,
                                                         const char *relative_uri);
char *              gnome_vfs_expand_initial_tilde      (const char *path);
char *              gnome_vfs_unescape_string_for_display
                                                        (const char *escaped);
char *              gnome_vfs_get_local_path_from_uri   (const char *uri);
char *              gnome_vfs_get_uri_from_local_path   (const char *local_full_path);
gboolean            gnome_vfs_is_executable_command_string
                                                        (const char *command_string);
void                gnome_vfs_list_deep_free            (GList *list);
GnomeVFSResult      gnome_vfs_get_volume_free_space     (const GnomeVFSURI *vfs_uri,
                                                         GnomeVFSFileSize *size);
char *              gnome_vfs_icon_path_from_filename   (const char *filename);
gboolean            gnome_vfs_is_primary_thread         (void);
char *              gnome_vfs_get_uri_scheme            (const char *uri);
gboolean            gnome_vfs_uris_match                (const char *uri_1,
                                                         const char *uri_2);
#define             GNOME_VFS_ASSERT_PRIMARY_THREAD
#define             GNOME_VFS_ASSERT_SECONDARY_THREAD
GnomeVFSResult      gnome_vfs_open_fd                   (GnomeVFSHandle **handle,
                                                         int filedes);
GnomeVFSResult      gnome_vfs_read_entire_file          (const char *uri,
                                                         int *file_size,
                                                         char **file_contents);

Description

Details

enum GnomeVFSMakeURIDirs

typedef enum {
	GNOME_VFS_MAKE_URI_DIR_NONE = 0,
	GNOME_VFS_MAKE_URI_DIR_HOMEDIR = 1 << 0,
	GNOME_VFS_MAKE_URI_DIR_CURRENT = 1 << 1
} GnomeVFSMakeURIDirs;

Flags that can be passed to gnome_vfs_make_uri_from_input_with_dirs(). If the given input might be a relative path it checks for existence of the file in the directory specified by this flag. If both flags are passed the current directory is checked first.

GNOME_VFS_MAKE_URI_DIR_NONE

Don't check any directory

GNOME_VFS_MAKE_URI_DIR_HOMEDIR

Check the home directory

GNOME_VFS_MAKE_URI_DIR_CURRENT

Check the current direcotry

gnome_vfs_format_file_size_for_display ()

char *              gnome_vfs_format_file_size_for_display
                                                        (GnomeVFSFileSize size);

Formats the file size passed so that it is easy for the user to read. Gives the size in bytes, kilobytes, megabytes or gigabytes, choosing whatever is appropriate.

size :

a GnomeVFSFileSize (a guint64 value).

Returns :

a newly allocated string with the size ready to be shown.

gnome_vfs_format_uri_for_display ()

char *              gnome_vfs_format_uri_for_display    (const char *uri);

Filter, modify, unescape and change uri to make it appropriate for display to users. The conversion is done such that the roundtrip to UTF-8 is reversible.

Rules: file: uri without fragments should appear as local paths. file: uri with fragments should appear as file:uri. All other uri appear as expected.

uri :

uri to be displayed.

Returns :

a newly allocated string which represents uri and can be displayed.

Since 2.2


gnome_vfs_url_show ()

GnomeVFSResult      gnome_vfs_url_show                  (const char *url);

Launches the default application or component associated with the given url.

url :

url to be shown.

Returns :

GNOME_VFS_OK if the default action was launched, GNOME_VFS_ERROR_BAD_PARAMETERS for an invalid or non-existant url, GNOME_VFS_ERROR_NO_DEFAULT if no default action is associated with the url. Also error codes from gnome_vfs_mime_action_launch() or gnome_vfs_mime_action_launch_with_env().

Since 2.4


gnome_vfs_url_show_with_env ()

GnomeVFSResult      gnome_vfs_url_show_with_env         (const char *url,
                                                         char **envp);

Like gnome_vfs_url_show() except that the default action will be launched with the given environment.

url :

url to be shown.

envp :

environment data.

Returns :

GNOME_VFS_OK if the default action was launched. GNOME_VFS_ERROR_BAD_PARAMETERS for an invalid or non-existant url, GNOME_VFS_ERROR_NO_DEFAULT if no default action is associated with the url. Also error codes from gnome_vfs_mime_application_launch_with_env() or gnome_vfs_mime_action_launch_with_env().

Since 2.4


gnome_vfs_escape_string ()

char *              gnome_vfs_escape_string             (const char *string);

Escapes string, replacing any and all special characters with equivalent escape sequences.

string :

string to be escaped.

Returns :

a newly allocated string equivalent to string but with all special characters escaped.

gnome_vfs_escape_path_string ()

char *              gnome_vfs_escape_path_string        (const char *path);

Escapes path, replacing only special characters that would not be found in paths (so '/', '&', and '=' will not be escaped by this function).

path :

string to be escaped.

Returns :

a newly allocated string equivalent to path but with non-path characters escaped.

gnome_vfs_escape_host_and_path_string ()

char *              gnome_vfs_escape_host_and_path_string
                                                        (const char *path);

Escapes path, replacing only special characters that would not be found in paths or host name (so '/', '&', '=', ':' and '@' will not be escaped by this function).

path :

string to be escaped.

Returns :

a newly allocated string equivalent to path but with non-path/host characters escaped.

gnome_vfs_escape_slashes ()

char *              gnome_vfs_escape_slashes            (const char *string);

Escapes only '/' and '%' characters in string, replacing them with their escape sequence equivalents.

string :

string to be escaped.

Returns :

a newly allocated string equivalent to string, but with no unescaped '/' or '%' characters.

gnome_vfs_escape_set ()

char *              gnome_vfs_escape_set                (const char *string,
                                                         const char *match_set);

Escapes all characters in string which are listed in match_set.

string :

string to be escaped.

match_set :

a string containing all characters to be escaped in string.

Returns :

a newly allocated string equivalent to string but with characters in match_string escaped.

gnome_vfs_unescape_string ()

char *              gnome_vfs_unescape_string           (const char *escaped_string,
                                                         const char *illegal_characters);

Decodes escaped characters (i.e. PERCENTxx sequences) in escaped_string. Characters are encoded in PERCENTxy form, where xy is the ASCII hex code for character 16x+y.

escaped_string :

an escaped uri, path, or other string.

illegal_characters :

a string containing a sequence of characters considered "illegal" to be escaped, '\0' is automatically in this list.

Returns :

a newly allocated string with the unescaped equivalents, or NULL if escaped_string contained an escaped encoding of one of the characters in illegal_characters.

gnome_vfs_make_uri_canonical ()

char *              gnome_vfs_make_uri_canonical        (const char *uri);

Standardizes the format of the uri, so that it can be used later in other functions that expect a canonical uri.

uri :

an absolute or relative stringified uri. It might have scheme.

Returns :

a newly allocated string that contains the canonical representation of uri.

Since 2.2


gnome_vfs_make_uri_canonical_strip_fragment ()

char *              gnome_vfs_make_uri_canonical_strip_fragment
                                                        (const char *uri);

Returns a canonicalized uri. If uri contains a fragment (anything after a '#') strips off that and then makes the uri canonical.

uri :

a GnomeVFSURI.

Returns :

a newly allocated string containing a canonical uri.

Since 2.2


gnome_vfs_make_path_name_canonical ()

char *              gnome_vfs_make_path_name_canonical  (const char *path);

Calls _gnome_vfs_canonicalize_pathname(), allocating storage for the result and providing for a cleaner memory management.

path :

a file path, relative or absolute.

Returns :

a canonical version of path.

gnome_vfs_make_uri_from_input ()

char *              gnome_vfs_make_uri_from_input       (const char *location);

Takes a user input path/uri and makes a valid uri out of it.

This function is the reverse of gnome_vfs_format_uri_for_display() but it also handles the fact that the user could have typed arbitrary UTF-8 in the entry showing the string.

location :

a possibly mangled "uri", in UTF-8.

Returns :

a newly allocated uri.

Since 2.2


gnome_vfs_make_uri_from_input_with_dirs ()

char *              gnome_vfs_make_uri_from_input_with_dirs
                                                        (const char *location,
                                                         GnomeVFSMakeURIDirs dirs);

Determines a fully qualified uri from a relative or absolute input path. Basically calls gnome_vfs_make_uri_from_input() except it specifically tries to support paths relative to the specified directories (can be homedir and/or current directory). See GnomeVFSMakeURIDirs for more information.

location :

a relative or absolute path.

dirs :

directory to use as a base directory if location is a relative path.

Returns :

a newly allocated string containing the fully qualified uri.

Since 2.4


gnome_vfs_make_uri_from_shell_arg ()

char *              gnome_vfs_make_uri_from_shell_arg   (const char *uri);

Similar to gnome_vfs_make_uri_from_input(), except that:

1) guesses relative paths instead of http domains. 2) doesn't bother stripping leading/trailing white space. 3) doesn't bother with ~ expansion--that's done by the shell.

uri :

path to make the uri from.

Returns :

a newly allocated string representing uri.

Since 2.2


gnome_vfs_make_uri_full_from_relative ()

char *              gnome_vfs_make_uri_full_from_relative
                                                        (const char *base_uri,
                                                         const char *relative_uri);

Warning

gnome_vfs_make_uri_full_from_relative is deprecated and should not be used in newly-written code. This function is deprecated, please use gnome_vfs_uri_make_full_from_relative() from gnome-vfs-uri.h .

Returns a string representing the full uri given a full base_uri and a secondary uri which may be relative.

base_uri :

path to use as the base for the full uri.

relative_uri :

full or relative path to be appended to the base_uri.

Returns :

a newly allocated string containing the uri. (NULL for some bad errors).

Since 2.2


gnome_vfs_expand_initial_tilde ()

char *              gnome_vfs_expand_initial_tilde      (const char *path);

If path starts with a ~, representing the user's home directory, expand it to the actual path location.

path :

a local file path which may start with a '~'.

Returns :

a newly allocated string with the initial tilde (if there was one) converted to an actual path.

gnome_vfs_unescape_string_for_display ()

char *              gnome_vfs_unescape_string_for_display
                                                        (const char *escaped);

Similar to gnome_vfs_unescape_string, but it returns something semi-intelligable to a user even upon receiving traumatic input such as 00 or URIs in bad form.

See also: gnome_vfs_unescape_string().

WARNING: You should never use this function on a whole URI! It unescapes reserved characters, and can result in a mangled URI that can not be re-entered. For example, it unescapes "#" "&" and "?", which have special meanings in URI strings.

escaped :

a string encoded with escaped sequences.

Returns :

a pointer to a g_malloc'd string with all characters replacing their escaped hex values.

gnome_vfs_get_local_path_from_uri ()

char *              gnome_vfs_get_local_path_from_uri   (const char *uri);

Create a local path for a file:/// uri. Do not use with uris of other methods.

uri :

uri to convert to a local path.

Returns :

a newly allocated string containing the local path. NULL is returned on error or if the uri isn't a file: uri without a fragment identifier (or chained uri).

gnome_vfs_get_uri_from_local_path ()

char *              gnome_vfs_get_uri_from_local_path   (const char *local_full_path);

Returns a file:/// URI for the local path local_full_path, such as a path provided by gtk_file_chooser_get_filename(). The resulting URI may be provided, for instance, to gnome_vfs_uri_new().

On Windows local_full_path should be in the UTF-8 encoding, and can start with a drive letter, but doesn't have to.

local_full_path :

a full local filesystem path (i.e. not relative).

Returns :

a newly allocated string containing the uri corresponding to local_full_path (NULL for some bad errors).

gnome_vfs_is_executable_command_string ()

gboolean            gnome_vfs_is_executable_command_string
                                                        (const char *command_string);

Checks if command_string starts with the full path of an executable file or an executable in $PATH.

command_string :

a string representing a command ie "xterm -bg white".

Returns :

TRUE if command_string started with an executable file, and is in $PATH, FALSE otherwise.

gnome_vfs_list_deep_free ()

void                gnome_vfs_list_deep_free            (GList *list);

Free list and call g_free() on all data members.

list :

list to be freed.

gnome_vfs_get_volume_free_space ()

GnomeVFSResult      gnome_vfs_get_volume_free_space     (const GnomeVFSURI *vfs_uri,
                                                         GnomeVFSFileSize *size);

Stores the amount of free space in bytes on vfs-uri's volume in size.

vfs_uri :

a GnomeVFSURI.

size :

a GnomeVFSFileSize.

Returns :

GNOME_VFS_OK on success, otherwise an GNOME_VFS_ERROR_* code.

gnome_vfs_icon_path_from_filename ()

char *              gnome_vfs_icon_path_from_filename   (const char *filename);

filename :

path to a file. Could be relative or absolute path.

Returns :

Returns the icon path for the filename. Example: gnome_vfs_icon_path_from_filename ("nautilus/nautilus-desktop.png") will return a string forming the full path of the file nautilus-desktop.png ie $PREFIX/share/pixmaps/nautilus/nautilus-desktop.png.

gnome_vfs_is_primary_thread ()

gboolean            gnome_vfs_is_primary_thread         (void);

Check if the current thread is the thread with the main glib event loop.

Returns :

TRUE if the current thread is the thread with the main glib event loop.

gnome_vfs_get_uri_scheme ()

char *              gnome_vfs_get_uri_scheme            (const char *uri);

Retrieve the scheme used in uri.

uri :

a stringified uri.

Returns :

a newly allocated string containing the scheme, NULL if uri doesn't contain a scheme.

Since 2.2


gnome_vfs_uris_match ()

gboolean            gnome_vfs_uris_match                (const char *uri_1,
                                                         const char *uri_2);

Compare two uris.

uri_1 :

stringified uri to compare with uri_2.

uri_2 :

stringified uri to compare with uri_1.

Returns :

TRUE if they are the same, FALSE otherwise.

Since 2.2


GNOME_VFS_ASSERT_PRIMARY_THREAD

#define GNOME_VFS_ASSERT_PRIMARY_THREAD g_assert (gnome_vfs_is_primary_thread())

Asserts that the current thread is the thread with the main glib event loop


GNOME_VFS_ASSERT_SECONDARY_THREAD

#define GNOME_VFS_ASSERT_SECONDARY_THREAD g_assert (!gnome_vfs_is_primary_thread())

Asserts that the current thread is NOT the thread with the main glib event loop


gnome_vfs_open_fd ()

GnomeVFSResult      gnome_vfs_open_fd                   (GnomeVFSHandle **handle,
                                                         int filedes);

Converts an open unix file descript into a GnomeVFSHandle that can be used with the normal GnomeVFS file operations. When the handle is closed the file descriptor will also be closed.

handle :

A pointer to a pointer to a GnomeVFSHandle object

filedes :

a UNIX file descriptor

Returns :

GNOME_VFS_OK if the open was ok, a suitable error otherwise. Since 2.2

gnome_vfs_read_entire_file ()

GnomeVFSResult      gnome_vfs_read_entire_file          (const char *uri,
                                                         int *file_size,
                                                         char **file_contents);

Reads an entire file into memory for convenience. Beware accidentally loading large files into memory with this function.

Since version 2.10 the string stored in file_contents will be null-terminated, so for text files you can use result as a normal string.

uri :

uri of the file to read.

file_size :

after reading the file, contains the size of the file read.

file_contents :

contains the file_size bytes, the contents of the file at uri.

Returns :

an integer representing the result of the operation.

Since 2.2

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-module.html0000644000175000001440000001641411450333533020406 00000000000000 gnome-vfs-module

gnome-vfs-module

gnome-vfs-module

Synopsis

GnomeVFSMethod *    vfs_module_init                     (const char *method_name,
                                                         const char *args);
GnomeVFSTransform * vfs_module_transform                (const char *method_name,
                                                         const char *args);
void                vfs_module_shutdown                 (GnomeVFSMethod *method);

Description

Details

vfs_module_init ()

GnomeVFSMethod *    vfs_module_init                     (const char *method_name,
                                                         const char *args);

Standard extern call implemented by each filesystem module. This is called to initialize the module and setup any basic structures / connections the method requires. It also allows the module to identify the URI method it is associated with in this instance.

method_name :

name of the method that invoked this module (e.g. "http", "ftp", "file").

args :

not used by most modules, but potential arguments for creating the module (could be a file to point at, for example)

Returns :

the module symbol table, pointing to the appropriate calls for this module.

vfs_module_transform ()

GnomeVFSTransform * vfs_module_transform                (const char *method_name,
                                                         const char *args);

Shift an already instanced module to a new method name. This call is not implemented by most modules and is optional.

method_name :

name of the method that invoked this module (e.g. "http", "ftp", "file").

args :

not used by most modules, but potential arguments for creating the module (could be a file to point at, for example)

Returns :

the module symbol table, pointing to the appropriate calls for this module.

vfs_module_shutdown ()

void                vfs_module_shutdown                 (GnomeVFSMethod *method);

Called to tell a module to end any active operations, free all used memory, and close any connections (as appropriate) or resources.

method :

the symbol table of the module being shut down
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-mime-monitor.html0000644000175000001440000000743311450333533021536 00000000000000 gnome-vfs-mime-monitor

gnome-vfs-mime-monitor

gnome-vfs-mime-monitor

Description

Details

GnomeVFSMIMEMonitor

typedef struct {
} GnomeVFSMIMEMonitor;

gnome_vfs_mime_monitor_get ()

GnomeVFSMIMEMonitor * gnome_vfs_mime_monitor_get        (void);
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-directory-find-ops.html0000644000175000001440000002242311450333533022637 00000000000000 Locating Standard Directories

Locating Standard Directories

Locating Standard Directories — Utilities for locating standard directories such as the desktop and trash

Synopsis

enum                GnomeVFSFindDirectoryKind;
GnomeVFSResult      gnome_vfs_find_directory            (GnomeVFSURI *near_uri,
                                                         GnomeVFSFindDirectoryKind kind,
                                                         GnomeVFSURI **result,
                                                         gboolean create_if_needed,
                                                         gboolean find_if_needed,
                                                         guint permissions);

Description

Details

enum GnomeVFSFindDirectoryKind

typedef enum {
	GNOME_VFS_DIRECTORY_KIND_DESKTOP = 1000,
	GNOME_VFS_DIRECTORY_KIND_TRASH = 1001
} GnomeVFSFindDirectoryKind;

Specifies what directory gnome_vfs_find_directory() or gnome_vfs_find_directory_cancellable() should find.

GNOME_VFS_DIRECTORY_KIND_DESKTOP

Desktop directory.

GNOME_VFS_DIRECTORY_KIND_TRASH

Trash directory.

gnome_vfs_find_directory ()

GnomeVFSResult      gnome_vfs_find_directory            (GnomeVFSURI *near_uri,
                                                         GnomeVFSFindDirectoryKind kind,
                                                         GnomeVFSURI **result,
                                                         gboolean create_if_needed,
                                                         gboolean find_if_needed,
                                                         guint permissions);

Used to return well known directories such as Trash, Desktop, etc. from different file systems.

There is quite a complicated logic behind finding/creating a Trash directory and you need to be aware of some implications: Finding the Trash the first time when using the file method may be pretty expensive. A cache file is used to store the location of that Trash file for next time. If create_if_needed is specified without find_if_needed, you may end up creating a Trash file when there already is one. Your app should start out by doing a gnome_vfs_find_directory() with the find_if_needed to avoid this and then use the create_if_needed flag to create Trash lazily when it is needed for throwing away an item on a given disk.

near_uri :

find a well known directory on the same volume as near_uri.

kind :

kind of well known directory.

result :

newly created uri of the directory we found.

create_if_needed :

if directory we are looking for does not exist, try to create it.

find_if_needed :

if we don't know where directory is yet, look for it.

permissions :

if creating, use these permissions.

Returns :

an integer representing the result of the operation.
gnome-vfs-2.24.4/doc/html/gnome-vfs-directory-ops.html0000644000175000001440000000463411450333533017531 00000000000000 Directory-Specific Operations

Directory-Specific Operations

Basic Directory Operations — Creating and removing directories.
Listing Directory Contents — Listing the contents of directories.
Locating Standard Directories — Utilities for locating standard directories such as the desktop and trash
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-mime-database.html0000644000175000001440000016725611450333533021625 00000000000000 MIME Database

MIME Database

MIME Database — functions for getting information about applications and components associated with MIME types.

Synopsis

                    GnomeVFSMimeApplication;
GnomeVFSMimeApplication * gnome_vfs_mime_get_default_application
                                                        (const char *mime_type);
GnomeVFSMimeApplication * gnome_vfs_mime_get_default_application_for_uri
                                                        (const char *uri,
                                                         const char *mime_type);
GList *                   gnome_vfs_mime_get_all_applications
                                                        (const char *mime_type);
GList *			          gnome_vfs_mime_get_all_applications_for_uri
                                                        (const char *uri,
                                                         const char *mime_type);
GList *             gnome_vfs_mime_get_all_desktop_entries
                                                        (const char *mime_type);
gchar *             gnome_vfs_mime_get_default_desktop_entry
                                                        (const char *mime_type);
Bonobo_ServerInfo * gnome_vfs_mime_get_default_component
                                                        (const char *mime_type);
GList *             gnome_vfs_mime_get_all_components   (const char *mime_type);
const char *        gnome_vfs_mime_get_icon             (const char *mime_type);
const char *        gnome_vfs_mime_get_description      (const char *mime_type);
gboolean            gnome_vfs_mime_can_be_executable    (const char *mime_type);
GnomeVFSMimeApplication * gnome_vfs_mime_application_new_from_desktop_id
                                                        (const char *id);
GnomeVFSResult      gnome_vfs_mime_application_launch   (GnomeVFSMimeApplication *app,
                                                         GList *uris);
GnomeVFSResult      gnome_vfs_mime_application_launch_with_env
                                                        (GnomeVFSMimeApplication *app,
                                                         GList *uris,
                                                         char **envp);
const char *        gnome_vfs_mime_application_get_desktop_id
                                                        (GnomeVFSMimeApplication *app);
const char *        gnome_vfs_mime_application_get_desktop_file_path
                                                        (GnomeVFSMimeApplication *app);
const char *        gnome_vfs_mime_application_get_name (GnomeVFSMimeApplication *app);
const char *        gnome_vfs_mime_application_get_generic_name
                                                        (GnomeVFSMimeApplication *app);
const char *        gnome_vfs_mime_application_get_icon (GnomeVFSMimeApplication *app);
const char *        gnome_vfs_mime_application_get_exec (GnomeVFSMimeApplication *app);
const char *        gnome_vfs_mime_application_get_binary_name
                                                        (GnomeVFSMimeApplication *app);
gboolean            gnome_vfs_mime_application_requires_terminal
                                                        (GnomeVFSMimeApplication *app);
gboolean            gnome_vfs_mime_application_supports_uris
                                                        (GnomeVFSMimeApplication *app);
gboolean            gnome_vfs_mime_application_supports_startup_notification
                                                        (GnomeVFSMimeApplication *app);
const char *        gnome_vfs_mime_application_get_startup_wm_class
                                                        (GnomeVFSMimeApplication *app);
gboolean            gnome_vfs_mime_application_equal    (GnomeVFSMimeApplication *app_a,
                                                         GnomeVFSMimeApplication *app_b);
GnomeVFSMimeApplication * gnome_vfs_mime_application_copy
                                                        (GnomeVFSMimeApplication *application);
void                gnome_vfs_mime_application_free     (GnomeVFSMimeApplication *application);
void                gnome_vfs_mime_application_list_free
                                                        (GList *list);
void                gnome_vfs_mime_component_list_free  (GList *list);

Description

This API can be used to query the applications and components associated with particular MIME types, and to collect extra information about them, and also provides a convenience function for launching them. Applications can register themselves for particular MIME types by adhering to the Freedesktop.Org Desktop Entry Specification.

Details

GnomeVFSMimeApplication

typedef struct {
	char *id;
	char *name;
} GnomeVFSMimeApplication;

A struct encapsulating information about an application known to the MIME database.

Only very few fields of this information are actually public, most of them must be queried using the gnome_vfs_mime_application_*() API.

char *id;

The desktop ID of the application.

char *name;

The user-visible name of the application.

gnome_vfs_mime_get_default_application ()

GnomeVFSMimeApplication * gnome_vfs_mime_get_default_application
                                                        (const char *mime_type);

Query the MIME database for the application to be executed on files of MIME type mime_type by default.

If you know the actual uri of the file you should use gnome_vfs_mime_get_default_application_for_uri instead, as it will then be able to pick a better app. For instance it won't pick an app that claims to only handle local files for a remote uri.

mime_type :

a const char * containing a mime type, e.g. "image/png".

Returns :

a GnomeVFSMimeApplication representing the default handler of mime_type.

gnome_vfs_mime_get_default_application_for_uri ()

GnomeVFSMimeApplication * gnome_vfs_mime_get_default_application_for_uri
                                                        (const char *uri,
                                                         const char *mime_type);

uri :

mime_type :

Returns :


gnome_vfs_mime_get_all_applications ()

GList *                   gnome_vfs_mime_get_all_applications
                                                        (const char *mime_type);

Return an alphabetically sorted list of GnomeVFSMimeApplication data structures representing all applications in the MIME database registered to handle files of MIME type mime_type (and supertypes).

mime_type :

a const char * containing a mime type, e.g. "image/png".

Returns :

a GList * where the elements are GnomeVFSMimeApplication * representing applications that handle MIME type mime_type.

gnome_vfs_mime_get_all_applications_for_uri ()

GList *			          gnome_vfs_mime_get_all_applications_for_uri
                                                        (const char *uri,
                                                         const char *mime_type);

Return an alphabetically sorted list of GnomeVFSMimeApplication data structures representing all applications in the MIME database able to handle the file identified by uri of mime_type (and supertypes).

uri :

a stringified uri.

mime_type :

a const char * containing a mime type, e.g. "application/x-php".

Returns :

a GList * where the elements are GnomeVFSMimeApplication * representing all possible handlers

Since 2.10


gnome_vfs_mime_get_all_desktop_entries ()

GList *             gnome_vfs_mime_get_all_desktop_entries
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_all_desktop_entries is deprecated and should not be used in newly-written code.

Returns all the desktop filenames for mime_type. The desktop files are listed in an order so that default applications are listed before non-default ones, and handlers for inherited mimetypes are listed after the base ones.

mime_type :

a mime type.

Returns :

a GList containing the desktop filenames containing the mime_type.

gnome_vfs_mime_get_default_desktop_entry ()

gchar *             gnome_vfs_mime_get_default_desktop_entry
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_default_desktop_entry is deprecated and should not be used in newly-written code.

Returns the default desktop filename for mime_type.

mime_type :

a mime type.

Returns :

the default desktop filename for mime_type.

gnome_vfs_mime_get_default_component ()

Bonobo_ServerInfo * gnome_vfs_mime_get_default_component
                                                        (const char *mime_type);

Warning

gnome_vfs_mime_get_default_component is deprecated and should not be used in newly-written code.

mime_type :

Returns :


gnome_vfs_mime_get_all_components ()

GList *             gnome_vfs_mime_get_all_components   (const char *mime_type);

Warning

gnome_vfs_mime_get_all_components is deprecated and should not be used in newly-written code.

mime_type :

Returns :


gnome_vfs_mime_get_icon ()

const char *        gnome_vfs_mime_get_icon             (const char *mime_type);

Warning

gnome_vfs_mime_get_icon is deprecated and should not be used in newly-written code. Use gnome_icon_lookup() function in libgnomeui instead.

Query the MIME database for an icon representing the mime_type.

It usually returns a filename without path information, e.g. "i-chardev.png", and sometimes does not have an extension, e.g. "i-regular" if the icon is supposed to be image type agnostic between icon themes. Icons are generic and not theme specific. These will not necessarily match with the icons a user sees in Nautilus, you have been warned.

mime_type :

a const char * containing a MIME type.

Returns :

The filename of the icon as listed in the MIME database.

gnome_vfs_mime_get_description ()

const char *        gnome_vfs_mime_get_description      (const char *mime_type);

Query the MIME database for a description of the mime_type.

mime_type :

the mime type.

Returns :

description of MIME type mime_type.

gnome_vfs_mime_can_be_executable ()

gboolean            gnome_vfs_mime_can_be_executable    (const char *mime_type);

Check whether files of mime_type might conceivably be executable. Default for known types if FALSE. Default for unknown types is TRUE.

mime_type :

a const char * containing a mime type.

Returns :

TRUE if files of mime_type can be executable, FALSE otherwise.

gnome_vfs_mime_application_new_from_desktop_id ()

GnomeVFSMimeApplication * gnome_vfs_mime_application_new_from_desktop_id
                                                        (const char *id);

Returns a new GnomeVFSMimeApplication for the id.

id :

the identifier of a desktop entry.

Returns :

a GnomeVFSMimeApplication.

Since 2.10


gnome_vfs_mime_application_launch ()

GnomeVFSResult      gnome_vfs_mime_application_launch   (GnomeVFSMimeApplication *app,
                                                         GList *uris);

Launches the given mime application with the given parameters. Command line parameters will be expanded as required by the application. The application will also be launched in a terminal if that is required. If the application only supports one argument per instance then multiple instances of the application will be launched.

app :

the GnomeVFSMimeApplication to launch.

uris :

parameters for the GnomeVFSMimeApplication.

Returns :

GNOME_VFS_OK if the application was launched. GNOME_VFS_ERROR_NOT_SUPPORTED if the uri protocol is not supported by the application. GNOME_VFS_ERROR_PARSE if the application command can not be parsed. GNOME_VFS_ERROR_LAUNCH if the application command can not be launched. GNOME_VFS_ERROR_INTERNAL for other internal and GConf errors.

Since 2.4


gnome_vfs_mime_application_launch_with_env ()

GnomeVFSResult      gnome_vfs_mime_application_launch_with_env
                                                        (GnomeVFSMimeApplication *app,
                                                         GList *uris,
                                                         char **envp);

Same as gnome_vfs_mime_application_launch() except that the application will be launched with the given environment.

app :

the GnomeVFSMimeApplication to launch.

uris :

parameters for the GnomeVFSMimeApplication.

envp :

the environment to use for the application.

Returns :

same as gnome_vfs_mime_application_launch().

Since 2.4


gnome_vfs_mime_application_get_desktop_id ()

const char *        gnome_vfs_mime_application_get_desktop_id
                                                        (GnomeVFSMimeApplication *app);

Returns the identifier of the desktop entry.

app :

a GnomeVFSMimeApplication.

Returns :

the identifier of the desktop entry.

Since 2.10


gnome_vfs_mime_application_get_desktop_file_path ()

const char *        gnome_vfs_mime_application_get_desktop_file_path
                                                        (GnomeVFSMimeApplication *app);

Returns the path of the desktop entry, a configuration file describing the properties of a particular program like it's name, how it is to be launched, how it appears in menus.

app :

a GnomeVFSMimeApplication.

Returns :

the path of the .desktop file.

Since 2.10


gnome_vfs_mime_application_get_name ()

const char *        gnome_vfs_mime_application_get_name (GnomeVFSMimeApplication *app);

Returns the name of the application app

app :

a GnomeVFSMimeApplication.

Returns :

the name of the application.

Since 2.10


gnome_vfs_mime_application_get_generic_name ()

const char *        gnome_vfs_mime_application_get_generic_name
                                                        (GnomeVFSMimeApplication *app);

Returns the generic name of the application.

app :

a GnomeVFSMimeApplication.

Returns :

the generic name of the application.

Since 2.10


gnome_vfs_mime_application_get_icon ()

const char *        gnome_vfs_mime_application_get_icon (GnomeVFSMimeApplication *app);

Returns an icon representing the specified application.

app :

a GnomeVFSMimeApplication.

Returns :

the filename of the icon usually without path information, e.g. "gedit-icon.png", and sometimes does not have an extension, e.g. "gnome-pdf" if the icon is supposed to be image type agnostic between icon themes. Icons are generic, and not theme specific.

Since 2.10


gnome_vfs_mime_application_get_exec ()

const char *        gnome_vfs_mime_application_get_exec (GnomeVFSMimeApplication *app);

Returns the program to execute, possibly with arguments and parameter variables, as specified by the Desktop Entry Specification.

app :

a GnomeVFSMimeApplication.

Returns :

the command line to execute.

Since 2.10


gnome_vfs_mime_application_get_binary_name ()

const char *        gnome_vfs_mime_application_get_binary_name
                                                        (GnomeVFSMimeApplication *app);

Returns the binary name of the specified application. Useful to implement startup notification. Note that this only provides partial information about application execution, it misses arguments and macros. DO NOT USE it to launch the application. Use gnome_vfs_mime_application_launch or gnome_vfs_mime_application_get_exec() if you really need to write a custom launcher.

app :

a GnomeVFSMimeApplication.

Returns :

the application's binary name.

Since 2.10


gnome_vfs_mime_application_requires_terminal ()

gboolean            gnome_vfs_mime_application_requires_terminal
                                                        (GnomeVFSMimeApplication *app);

Returns whether the application runs in a terminal window.

app :

a GnomeVFSMimeApplication.

Returns :

TRUE if the application runs in a terminal.

Since 2.10


gnome_vfs_mime_application_supports_uris ()

gboolean            gnome_vfs_mime_application_supports_uris
                                                        (GnomeVFSMimeApplication *app);

Returns whether the application accept uris as command lines arguments.

app :

a GnomeVFSMimeApplication.

Returns :

TRUE if the application can handle uris.

Since 2.10


gnome_vfs_mime_application_supports_startup_notification ()

gboolean            gnome_vfs_mime_application_supports_startup_notification
                                                        (GnomeVFSMimeApplication *app);

Returns whether the application supports startup notification. If true, it is KNOWN that the application will send a "remove" message when started with the DESKTOP_LAUNCH_ID environment variable set.

app :

a GnomeVFSMimeApplication.

Returns :

TRUE if the application supports startup notification.

Since 2.10


gnome_vfs_mime_application_get_startup_wm_class ()

const char *        gnome_vfs_mime_application_get_startup_wm_class
                                                        (GnomeVFSMimeApplication *app);

Returns the WM class of the main window of the application.

app :

a GnomeVFSMimeApplication

Returns :

The WM class of the application's window

Since 2.10


gnome_vfs_mime_application_equal ()

gboolean            gnome_vfs_mime_application_equal    (GnomeVFSMimeApplication *app_a,
                                                         GnomeVFSMimeApplication *app_b);

Compare app_a and app_b.

app_a :

a GnomeVFSMimeApplication.

app_b :

a GnomeVFSMimeApplication.

Returns :

TRUE if app_a and app_b are equal, FALSE otherwise.

Since 2.10


gnome_vfs_mime_application_copy ()

GnomeVFSMimeApplication * gnome_vfs_mime_application_copy
                                                        (GnomeVFSMimeApplication *application);

Creates a newly referenced copy of a GnomeVFSMimeApplication object.

application :

a GnomeVFSMimeApplication to be duplicated.

Returns :

a copy of application.

gnome_vfs_mime_application_free ()

void                gnome_vfs_mime_application_free     (GnomeVFSMimeApplication *application);

Frees a GnomeVFSMimeApplication *.

application :

a GnomeVFSMimeApplication to be freed.

gnome_vfs_mime_application_list_free ()

void                gnome_vfs_mime_application_list_free
                                                        (GList *list);

Frees lists of GnomeVFSApplications, as returned from functions such as gnome_vfs_get_all_applications().

list :

a GList of GnomeVFSApplication * to be freed.

gnome_vfs_mime_component_list_free ()

void                gnome_vfs_mime_component_list_free  (GList *list);

Warning

gnome_vfs_mime_component_list_free is deprecated and should not be used in newly-written code.

list :

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-dns-sd.html0000644000175000001440000012273611450333533020316 00000000000000 Zeroconf networking support

Zeroconf networking support

Zeroconf networking support — Gets information about available Zeroconf (aka RendezVous™) services on a local network.

Synopsis

void                (*GnomeVFSDNSSDResolveCallback)     (GnomeVFSDNSSDResolveHandle *handle,
                                                         GnomeVFSResult result,
                                                         const GnomeVFSDNSSDService *service,
                                                         const char *host,
                                                         int port,
                                                         const GHashTable *text,
                                                         int text_raw_len,
                                                         const char *text_raw,
                                                         gpointer callback_data);
enum                GnomeVFSDNSSDServiceStatus;
                    GnomeVFSDNSSDService;
void                (*GnomeVFSDNSSDBrowseCallback)      (GnomeVFSDNSSDBrowseHandle *handle,
                                                         GnomeVFSDNSSDServiceStatus status,
                                                         const GnomeVFSDNSSDService *service,
                                                         gpointer callback_data);
GnomeVFSResult      gnome_vfs_dns_sd_browse             (GnomeVFSDNSSDBrowseHandle **handle,
                                                         const char *domain,
                                                         const char *type,
                                                         GnomeVFSDNSSDBrowseCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify callback_data_destroy_func);
GnomeVFSResult      gnome_vfs_dns_sd_stop_browse        (GnomeVFSDNSSDBrowseHandle *handle);
GnomeVFSResult      gnome_vfs_dns_sd_resolve            (GnomeVFSDNSSDResolveHandle **handle,
                                                         const char *name,
                                                         const char *type,
                                                         const char *domain,
                                                         int timeout,
                                                         GnomeVFSDNSSDResolveCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify callback_data_destroy_func);
GnomeVFSResult      gnome_vfs_dns_sd_cancel_resolve     (GnomeVFSDNSSDResolveHandle *handle);
GnomeVFSResult      gnome_vfs_dns_sd_browse_sync        (const char *domain,
                                                         const char *type,
                                                         int timeout_msec,
                                                         int *n_services,
                                                         GnomeVFSDNSSDService **services);
GnomeVFSResult      gnome_vfs_dns_sd_resolve_sync       (const char *name,
                                                         const char *type,
                                                         const char *domain,
                                                         int timeout_msec,
                                                         char **host,
                                                         int *port,
                                                         GHashTable **text,
                                                         int *text_raw_len_out,
                                                         char **text_raw_out);
void                gnome_vfs_dns_sd_service_list_free  (GnomeVFSDNSSDService *services,
                                                         int n_services);
GnomeVFSResult      gnome_vfs_dns_sd_list_browse_domains_sync
                                                        (const char *domain,
                                                         int timeout_msec,
                                                         GList **domains);
GList *             gnome_vfs_get_default_browse_domains
                                                        (void);

Description

Details

GnomeVFSDNSSDResolveCallback ()

void                (*GnomeVFSDNSSDResolveCallback)     (GnomeVFSDNSSDResolveHandle *handle,
                                                         GnomeVFSResult result,
                                                         const GnomeVFSDNSSDService *service,
                                                         const char *host,
                                                         int port,
                                                         const GHashTable *text,
                                                         int text_raw_len,
                                                         const char *text_raw,
                                                         gpointer callback_data);

Callback for the gnome_vfs_dns_sd_resolve() function that is called when a service has been resolved.

The host and port can be used to contact the requested service, and text contains additional options as defined for the type requested.

To check for options being set in text without any value ("key" as opposed to "key=value") you must use g_hash_table_lookup_extended(), since they are stored in the hash table with a NULL value, and g_hash_table_lookup() can't tell that from the case where the key is not in the hash table.

handle :

handle of the operation generating the callback

result :

whether the resolve succeeded or not

service :

the service that was resolved

host :

the host name or ip of the host hosting the service

port :

the port number to use for the service

text :

a hash table giving additional options about the service

text_raw_len :

length of text_raw

text_raw :

raw version of the additional options in text

callback_data :

user data defined when the callback was established

enum GnomeVFSDNSSDServiceStatus

typedef enum {
	GNOME_VFS_DNS_SD_SERVICE_ADDED,
	GNOME_VFS_DNS_SD_SERVICE_REMOVED
} GnomeVFSDNSSDServiceStatus;


GnomeVFSDNSSDService

typedef struct {
	char *name;
	char *type;
	char *domain;
} GnomeVFSDNSSDService;


GnomeVFSDNSSDBrowseCallback ()

void                (*GnomeVFSDNSSDBrowseCallback)      (GnomeVFSDNSSDBrowseHandle *handle,
                                                         GnomeVFSDNSSDServiceStatus status,
                                                         const GnomeVFSDNSSDService *service,
                                                         gpointer callback_data);

Callback for the gnome_vfs_dns_sd_browse() function that informs the user of services that are added or removed.

handle :

handle of the operation generating the callback

status :

whether a service addition or removal was detected

service :

the service that was discovered or removed

callback_data :

user data defined when the callback was established

gnome_vfs_dns_sd_browse ()

GnomeVFSResult      gnome_vfs_dns_sd_browse             (GnomeVFSDNSSDBrowseHandle **handle,
                                                         const char *domain,
                                                         const char *type,
                                                         GnomeVFSDNSSDBrowseCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify callback_data_destroy_func);

Browses domain for service of the type type, calling callback whenever a new one is found or removed.

The domain to use can be "local" for multicast dns on the local network (known as mDNS), or it can be the domain of the current host. You can also use gnome_vfs_dns_sd_list_browse_domains_sync() to get a list of domains that are interested in a particular domain.

The type is a string of the form "_type._tcp" or "_type._udp", where type is a service type registered at http://www.dns-sd.org/ServiceTypes.html.

handle :

pointer to a pointer to a GnomeVFSDNSSDBrowseHandle object.

domain :

dns domain to browse, or "local" for multicast DNS.

type :

type of service to browse for.

callback :

function to be called when service is discovered.

callback_data :

data to pass to callback.

callback_data_destroy_func :

optional destructor function for callback_data.

Returns :

an integer representing the result of the operation.

gnome_vfs_dns_sd_stop_browse ()

GnomeVFSResult      gnome_vfs_dns_sd_stop_browse        (GnomeVFSDNSSDBrowseHandle *handle);

Stops browsing a domain started with gnome_vfs_dns_sd_browse().

handle :

handle of the browse operation to be stopped.

Returns :

an integer representing the result of the operation.

gnome_vfs_dns_sd_resolve ()

GnomeVFSResult      gnome_vfs_dns_sd_resolve            (GnomeVFSDNSSDResolveHandle **handle,
                                                         const char *name,
                                                         const char *type,
                                                         const char *domain,
                                                         int timeout,
                                                         GnomeVFSDNSSDResolveCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify callback_data_destroy_func);

Tries to resolve a specific service (typically recieved from gnome_vfs_dns_sd_browse()) into a hostname/ip, port number and additional options.

If you ever have to save a reference to a service you should store the unresolved name/type/domain tripplet, because the actual host for the service can change.

The timeout argument is primarily useful for local resolves, since the host owning the service might no longer be around to answer.

handle :

pointer to a pointer to a GnomeVFSDNSSDResolveHandle object.

name :

name of the service to resolve in UTF-8 encoding.

type :

type of the service to resolve.

domain :

dns domain of the service to resolve, or "local" for multicast DNS.

timeout :

maximum time (in milliseconds) to try to resolve, or zero if no maximum.

callback :

function to be called when the service has been resolved.

callback_data :

data to pass to callback.

callback_data_destroy_func :

optional destructor function for callback_data.

Returns :

an integer representing the result of the operation.

gnome_vfs_dns_sd_cancel_resolve ()

GnomeVFSResult      gnome_vfs_dns_sd_cancel_resolve     (GnomeVFSDNSSDResolveHandle *handle);

Cancels resolving a service started with gnome_vfs_dns_sd_resolve().

handle :

handle of the resolve operation to be cancelled.

Returns :

an integer representing the result of the operation.

gnome_vfs_dns_sd_browse_sync ()

GnomeVFSResult      gnome_vfs_dns_sd_browse_sync        (const char *domain,
                                                         const char *type,
                                                         int timeout_msec,
                                                         int *n_services,
                                                         GnomeVFSDNSSDService **services);

Browses domain for service of the type type, returning the result after blocking for the duration of the browse. For details about domain and type, see gnome_vfs_dns_sd_browse().

timeout is essential for the "local" domain, since you can never really know when you've gotten the full set of return values when using multicast.

The returned list can be freed with gnome_vfs_dns_sd_service_list_free().

This is a synchronous version of gnome_vfs_dns_sd_browse(), see that for more details.

domain :

The dns domain to browse, or "local" for multicast DNS.

type :

type of the service to browse for.

timeout_msec :

maximum time to browse, in milliseconds.

n_services :

pointer to location to store number of returned services.

services :

pointer to location to store returned services.

Returns :

an integer representing the result of the operation.

gnome_vfs_dns_sd_resolve_sync ()

GnomeVFSResult      gnome_vfs_dns_sd_resolve_sync       (const char *name,
                                                         const char *type,
                                                         const char *domain,
                                                         int timeout_msec,
                                                         char **host,
                                                         int *port,
                                                         GHashTable **text,
                                                         int *text_raw_len_out,
                                                         char **text_raw_out);

Tries to resolve a specific service (typically recieved from gnome_vfs_dns_sd_browse()) into a hostname/ip, port number and additional options.

This is a synchronous version of gnome_vfs_dns_sd_resolve(), see that (and its callback GnomeVFSDNSSDResolveCallback()) for more details.

name :

name of the service to resolve in UTF-8 encoding.

type :

type of the service to resolve.

domain :

dns domain of the service to resolve, or "local" for multicast DNS.

timeout_msec :

maximum time(in milliseconds) to try to resolve.

host :

location to store the host name or ip of the host hosting the service.

port :

location to store the port number to use for the service.

text :

location to store a hash table giving additional options about the service.

text_raw_len_out :

location to store length of text_raw_out.

text_raw_out :

location to store raw version of the additional options in text.

Returns :

an integer representing the result of the operation.

gnome_vfs_dns_sd_service_list_free ()

void                gnome_vfs_dns_sd_service_list_free  (GnomeVFSDNSSDService *services,
                                                         int n_services);

Frees a list of services as returned by gnome_vfs_dns_sd_browse_sync().

services :

the list of services to free.

n_services :

the number of services to free.

gnome_vfs_dns_sd_list_browse_domains_sync ()

GnomeVFSResult      gnome_vfs_dns_sd_list_browse_domains_sync
                                                        (const char *domain,
                                                         int timeout_msec,
                                                         GList **domains);

Lists the recommended browsing domains for a specific dns domain. This can be used to find interesting domains for the domain you are currently in. These can then be browsed with gnome_vfs_dns_sd_browse().

domain :

the domain to list browsable domains in.

timeout_msec :

maximum time to run, in milliseconds.

domains :

location to store the returned list of domain names strings.

Returns :

an integer representing the result of the operation.

gnome_vfs_get_default_browse_domains ()

GList *             gnome_vfs_get_default_browse_domains
                                                        (void);

Returns a list of domain names that is useful to browse for standard services. The list is generated by contacting the dns server of the domain part the hostname and asking for the list of browse domains. Then extra domains from a gconf setting is added.

The "local" domain is not normally returned by this. Care should be taken with local services so that its obvious that they are local, and cannot be confused with non-local services.

Returns :

a GList of domain name strings.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-transform.html0000644000175000001440000001562111450333533021133 00000000000000 gnome-vfs-transform

gnome-vfs-transform

gnome-vfs-transform

Synopsis

GnomeVFSTransform * (*GnomeVFSTransformInitFunc)        (const char *method_name,
                                                         const char *config_args);
GnomeVFSResult      (*GnomeVFSTransformFunc)            (GnomeVFSTransform *transform,
                                                         const char *old_uri,
                                                         char **new_uri,
                                                         GnomeVFSContext *context);

Description

Details

GnomeVFSTransformInitFunc ()

GnomeVFSTransform * (*GnomeVFSTransformInitFunc)        (const char *method_name,
                                                         const char *config_args);

method_name :

config_args :

Returns :


GnomeVFSTransformFunc ()

GnomeVFSResult      (*GnomeVFSTransformFunc)            (GnomeVFSTransform *transform,
                                                         const char *old_uri,
                                                         char **new_uri,
                                                         GnomeVFSContext *context);

transform :

old_uri :

new_uri :

context :

Returns :

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-file-advanced-ops.html0000644000175000001440000001312111450333533022372 00000000000000 Backend-Specific Operations

Backend-Specific Operations

Backend-Specific Operations — Execute backend-specific operations

Synopsis

GnomeVFSResult      gnome_vfs_file_control              (GnomeVFSHandle *handle,
                                                         const char *operation,
                                                         gpointer operation_data);

Description

Advanced file operations allow you to execute backend-specific commands. Currently, none of the GnomeVFSModules shipped with GnomeVFS includes useful operations, but they allow sophisticated module-specific code that can not be added to GnomeVFS because it would break abstraction.

Details

gnome_vfs_file_control ()

GnomeVFSResult      gnome_vfs_file_control              (GnomeVFSHandle *handle,
                                                         const char *operation,
                                                         gpointer operation_data);

Execute a backend dependent operation specified by the string operation. This is typically used for specialized vfs backends that need additional operations that gnome-vfs doesn't have. Compare it to the unix call ioctl(). The format of operation_data depends on the operation. Operation that are backend specific are normally namespaced by their module name.

handle :

handle of the file to affect.

operation :

operation to execute.

operation_data :

data needed to execute the operation.

Returns :

an integer representing the success of the operation.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-result.html0000644000175000001440000005534411450333533020444 00000000000000 GnomeVFSResult

GnomeVFSResult

GnomeVFSResult — Result of I/O operations, the equivalent of errno

Description

Details

enum GnomeVFSResult

typedef enum {
	GNOME_VFS_OK,
	GNOME_VFS_ERROR_NOT_FOUND,
	GNOME_VFS_ERROR_GENERIC,
	GNOME_VFS_ERROR_INTERNAL,
	GNOME_VFS_ERROR_BAD_PARAMETERS,
	GNOME_VFS_ERROR_NOT_SUPPORTED,
	GNOME_VFS_ERROR_IO,
	GNOME_VFS_ERROR_CORRUPTED_DATA,
	GNOME_VFS_ERROR_WRONG_FORMAT,
	GNOME_VFS_ERROR_BAD_FILE,
	GNOME_VFS_ERROR_TOO_BIG,
	GNOME_VFS_ERROR_NO_SPACE,
	GNOME_VFS_ERROR_READ_ONLY,
	GNOME_VFS_ERROR_INVALID_URI,
	GNOME_VFS_ERROR_NOT_OPEN,
	GNOME_VFS_ERROR_INVALID_OPEN_MODE,
	GNOME_VFS_ERROR_ACCESS_DENIED,
	GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES,
	GNOME_VFS_ERROR_EOF,
	GNOME_VFS_ERROR_NOT_A_DIRECTORY,
	GNOME_VFS_ERROR_IN_PROGRESS,
	GNOME_VFS_ERROR_INTERRUPTED,
	GNOME_VFS_ERROR_FILE_EXISTS,
	GNOME_VFS_ERROR_LOOP,
	GNOME_VFS_ERROR_NOT_PERMITTED,
	GNOME_VFS_ERROR_IS_DIRECTORY,
	GNOME_VFS_ERROR_NO_MEMORY,
	GNOME_VFS_ERROR_HOST_NOT_FOUND,
	GNOME_VFS_ERROR_INVALID_HOST_NAME,
	GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS,
	GNOME_VFS_ERROR_LOGIN_FAILED,
	GNOME_VFS_ERROR_CANCELLED,
	GNOME_VFS_ERROR_DIRECTORY_BUSY,
	GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY,
	GNOME_VFS_ERROR_TOO_MANY_LINKS,
	GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM,
	GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM,
	GNOME_VFS_ERROR_NAME_TOO_LONG,
	GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE,
	GNOME_VFS_ERROR_SERVICE_OBSOLETE,
	GNOME_VFS_ERROR_PROTOCOL_ERROR,
	GNOME_VFS_ERROR_NO_MASTER_BROWSER,
	GNOME_VFS_ERROR_NO_DEFAULT,
	GNOME_VFS_ERROR_NO_HANDLER,
	GNOME_VFS_ERROR_PARSE,
	GNOME_VFS_ERROR_LAUNCH,
	GNOME_VFS_ERROR_TIMEOUT,
	GNOME_VFS_ERROR_NAMESERVER,
	GNOME_VFS_ERROR_LOCKED,
	GNOME_VFS_ERROR_DEPRECATED_FUNCTION,
	GNOME_VFS_ERROR_INVALID_FILENAME,
	GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK,
	GNOME_VFS_NUM_ERRORS
} GnomeVFSResult;

A GnomeVFSResult informs library clients about the result of a file operation. Unless it is GNOME_VFS_OK, it denotes that a problem occurred and the operation could not be executed successfully.

gnome_vfs_result_to_string() provides a textual representation of GnomeVFSResults.

GNOME_VFS_OK

No error.

GNOME_VFS_ERROR_NOT_FOUND

File not found.

GNOME_VFS_ERROR_GENERIC

Generic error.

GNOME_VFS_ERROR_INTERNAL

Internal error.

GNOME_VFS_ERROR_BAD_PARAMETERS

Invalid parameters.

GNOME_VFS_ERROR_NOT_SUPPORTED

Unsupported operation.

GNOME_VFS_ERROR_IO

I/O error.

GNOME_VFS_ERROR_CORRUPTED_DATA

Data corrupted.

GNOME_VFS_ERROR_WRONG_FORMAT

Format not valid.

GNOME_VFS_ERROR_BAD_FILE

Bad file handle.

GNOME_VFS_ERROR_TOO_BIG

File too big.

GNOME_VFS_ERROR_NO_SPACE

No space left on device.

GNOME_VFS_ERROR_READ_ONLY

Read-only file system.

GNOME_VFS_ERROR_INVALID_URI

Invalid URI.

GNOME_VFS_ERROR_NOT_OPEN

File not open.

GNOME_VFS_ERROR_INVALID_OPEN_MODE

Open mode not valid.

GNOME_VFS_ERROR_ACCESS_DENIED

Access denied.

GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES

Too many open files.

GNOME_VFS_ERROR_EOF

End of file.

GNOME_VFS_ERROR_NOT_A_DIRECTORY

Not a directory.

GNOME_VFS_ERROR_IN_PROGRESS

Operation in progress.

GNOME_VFS_ERROR_INTERRUPTED

Operation interrupted.

GNOME_VFS_ERROR_FILE_EXISTS

File exists.

GNOME_VFS_ERROR_LOOP

Looping links encountered.

GNOME_VFS_ERROR_NOT_PERMITTED

Operation not permitted.

GNOME_VFS_ERROR_IS_DIRECTORY

Is a directory.

GNOME_VFS_ERROR_NO_MEMORY

Not enough memory.

GNOME_VFS_ERROR_HOST_NOT_FOUND

Host not found.

GNOME_VFS_ERROR_INVALID_HOST_NAME

Host name not valid.

GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS

Host has no address.

GNOME_VFS_ERROR_LOGIN_FAILED

Login failed.

GNOME_VFS_ERROR_CANCELLED

Operation cancelled.

GNOME_VFS_ERROR_DIRECTORY_BUSY

Directory busy.

GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY

Directory not empty.

GNOME_VFS_ERROR_TOO_MANY_LINKS

Too many links.

GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM

Read only file system.

GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM

Not on the same file system.

GNOME_VFS_ERROR_NAME_TOO_LONG

Name too long.

GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE

Service not available.

GNOME_VFS_ERROR_SERVICE_OBSOLETE

Request obsoletes service's data.

GNOME_VFS_ERROR_PROTOCOL_ERROR

Protocol error.

GNOME_VFS_ERROR_NO_MASTER_BROWSER

Could not find master browser.

GNOME_VFS_ERROR_NO_DEFAULT

No default action associated.

GNOME_VFS_ERROR_NO_HANDLER

No handler for URL scheme.

GNOME_VFS_ERROR_PARSE

Error parsing command line.

GNOME_VFS_ERROR_LAUNCH

Error launching command.

GNOME_VFS_ERROR_TIMEOUT

Timeout reached.

GNOME_VFS_ERROR_NAMESERVER

Nameserver error.

GNOME_VFS_ERROR_LOCKED

The resource is locked.

GNOME_VFS_ERROR_DEPRECATED_FUNCTION

Function call deprecated.

GNOME_VFS_ERROR_INVALID_FILENAME

The specified filename is invalid.

GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK

Not a symbolic link.

GNOME_VFS_NUM_ERRORS


gnome_vfs_result_to_string ()

const char *        gnome_vfs_result_to_string          (GnomeVFSResult result);

Returns a string representing result, useful for debugging purposes, but probably not appropriate for passing to the user.

result :

a GnomeVFSResult to convert to a string.

Returns :

a string representing result.

gnome_vfs_result_from_errno_code ()

GnomeVFSResult      gnome_vfs_result_from_errno_code    (int errno_code);

Converts a system errno value to a GnomeVFSResult.

errno_code :

integer of the same type as the system "errno".

Returns :

a GnomeVFSResult equivalent to errno_code.

gnome_vfs_result_from_errno ()

GnomeVFSResult      gnome_vfs_result_from_errno         (void);

Converts the system errno to a GnomeVFSResult.

Returns :

a GnomeVFSResult equivalent to the current system errno.

gnome_vfs_result_from_h_errno ()

GnomeVFSResult      gnome_vfs_result_from_h_errno       (void);

Converts the system "h_errno" to a GnomeVFSResult (h_errno represents errors accessing and finding internet hosts)

Returns :

a GnomeVFSResult equivalent to the current system "h_errno".

gnome_vfs_result_from_h_errno_val ()

GnomeVFSResult      gnome_vfs_result_from_h_errno_val   (int h_errno_code);

Converts the error code h_errno_code into a GnomeVFSResult.

h_errno_code :

an integer representing the same error code as the system h_errno.

Returns :

The GnomeVFSResult equivalent to the h_errno_code.
gnome-vfs-2.24.4/doc/html/about.html0000644000175000001440000001052211450333533014132 00000000000000 Introduction to GnomeVFS

Introduction to GnomeVFS

Uses and Purpose

GnomeVFS is a filesystem abstraction library allowing applications plugable transparent access to a variety of "real" filesystems, from WebDAV to digital cameras, to the local filesystem. It also contains a number of other convenient file utilities such as a comphrehensive MIME database / Application registry, and a copy engine. Use of GnomeVFS ensures that an application or component will be usable by Nautilus or other GnomeVFS applications for handling the display of data from various URIs, as well

User's Perspective

From a user's perspective GnomeVFS enabled applications provide consistent access to their data, whether it be stored on remote servers or on their local harddisk, or even a peripheral device such as a Rio or a digital camera. Rather than having to work around the distinction between storage you can work off of and storage you can only "download" from or "upload" to, GnomeVFS allows users to store their documents and data wherever it is most convenient.

Developer's Perspective

Besides providing transparent access to data methods that you might otherwise have to implement, GnomeVFS provides a number of convenience libraries for processing URIs, detecting the MIME type of files, and even figuring out which applications or components to launch to view a file or what icon to use. Writing a GnomeVFS module may also be an appropriate solution to some data access problems as it allows the developer to implement a relatively small number of functions to gain general filesystem semantics (and of course, writing a GnomeVFS module benefits other applications too!).

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-module-callback-module-api.html0000644000175000001440000001520411450333533024166 00000000000000 gnome-vfs-module-callback-module-api

gnome-vfs-module-callback-module-api

gnome-vfs-module-callback-module-api — invoking callbacks from a gnome-vfs module to ask the application for necessary information (authentication, ...)

Synopsis

gboolean            gnome_vfs_module_callback_invoke    (const char *callback_name,
                                                         gconstpointer in,
                                                         gsize in_size,
                                                         gpointer out,
                                                         gsize out_size);

Description

Details

gnome_vfs_module_callback_invoke ()

gboolean            gnome_vfs_module_callback_invoke    (const char *callback_name,
                                                         gconstpointer in,
                                                         gsize in_size,
                                                         gpointer out,
                                                         gsize out_size);

Invoke a default callback for callback_name, with in arguments specified by in and in_size, and out arguments specified by out and out_size.

This function should only be called by gnome-vfs modules.

If this function is called from an async job thread, it will invoke the current async handler for callback_name, if any. If no async handler is set, or the function is not called from an async job thread, the regular handler, if any, will be invoked instead. If no handler at all is found for callback_name, the function returns FALSE.

callback_name :

name of the module callback to set.

in :

in argument for this callback; the exact type depends on the specific callback.

in_size :

size of the in argument; useful for sanity-checking.

out :

out argument for this callback; the exact type depends on the specific callback.

out_size :

size of the out argument; useful for sanity-checking.

Returns :

TRUE if a callback was invoked, FALSE if none was set.
gnome-vfs-2.24.4/doc/html/data-types.html0000644000175000001440000000516511450333533015102 00000000000000 Basic Data Types

Basic Data Types

GnomeVFSResult — Result of I/O operations, the equivalent of errno
GnomeVFSURI — A uniform resource identifier.
gnome-vfs-utils — various utilities functions to manipulate uris
GnomeVFSFileInfo — stores information about files, GnomeVFS equivalent of stat
GnomeVFSFileSize — Data types used for specifying file sizes and seek positions
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-async-ops.html0000644000175000001440000055345111450333533021044 00000000000000 Asynchronous File Operations

Asynchronous File Operations

Asynchronous File Operations — POSIX-style file operations that run outside your main loop

Synopsis

#define             GNOME_VFS_PRIORITY_MIN
#define             GNOME_VFS_PRIORITY_MAX
#define             GNOME_VFS_PRIORITY_DEFAULT
typedef             GnomeVFSAsyncHandle;
void                (*GnomeVFSAsyncCallback)            (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncOpenCallback)        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncOpenAsChannelCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GIOChannel *channel,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncCreateCallback)      (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncCreateAsChannelCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GIOChannel *channel,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncCloseCallback)       (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncReadCallback)        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes_requested,
                                                         GnomeVFSFileSize bytes_read,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncWriteCallback)       (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes_requested,
                                                         GnomeVFSFileSize bytes_written,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncSeekCallback)        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncGetFileInfoCallback) (GnomeVFSAsyncHandle *handle,
                                                         GList *results,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncSetFileInfoCallback) (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         GnomeVFSFileInfo *file_info,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncFileControlCallback) (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer operation_data,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncDirectoryLoadCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         GList *list,
                                                         guint entries_read,
                                                         gpointer callback_data);
void                (*GnomeVFSAsyncFindDirectoryCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GList *results,
                                                         gpointer data);
                    GnomeVFSFindDirectoryResult;
gint                (*GnomeVFSAsyncXferProgressCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSXferProgressInfo *info,
                                                         gpointer user_data);
typedef             GnomeVFSCancellation;
typedef             GnomeVFSContext;
void                gnome_vfs_async_set_job_limit       (int limit);
int                 gnome_vfs_async_get_job_limit       (void);
void                gnome_vfs_async_cancel              (GnomeVFSAsyncHandle *handle);
void                gnome_vfs_async_open                (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_open_uri            (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_open_as_channel     (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         guint advised_block_size,
                                                         int priority,
                                                         GnomeVFSAsyncOpenAsChannelCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_open_uri_as_channel (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         guint advised_block_size,
                                                         int priority,
                                                         GnomeVFSAsyncOpenAsChannelCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_create              (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_create_uri          (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_create_symbolic_link
                                                        (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         const gchar *uri_reference,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_create_as_channel   (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncCreateAsChannelCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_create_uri_as_channel
                                                        (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncCreateAsChannelCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_close               (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSAsyncCloseCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_read                (GnomeVFSAsyncHandle *handle,
                                                         gpointer buffer,
                                                         guint bytes,
                                                         GnomeVFSAsyncReadCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_write               (GnomeVFSAsyncHandle *handle,
                                                         gconstpointer buffer,
                                                         guint bytes,
                                                         GnomeVFSAsyncWriteCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_seek                (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSSeekPosition whence,
                                                         GnomeVFSFileOffset offset,
                                                         GnomeVFSAsyncSeekCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_get_file_info       (GnomeVFSAsyncHandle **handle_return,
                                                         GList *uri_list,
                                                         GnomeVFSFileInfoOptions options,
                                                         int priority,
                                                         GnomeVFSAsyncGetFileInfoCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_set_file_info       (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileInfo *info,
                                                         GnomeVFSSetFileInfoMask mask,
                                                         GnomeVFSFileInfoOptions options,
                                                         int priority,
                                                         GnomeVFSAsyncSetFileInfoCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_load_directory      (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions options,
                                                         guint items_per_notification,
                                                         int priority,
                                                         GnomeVFSAsyncDirectoryLoadCallback callback,
                                                         gpointer callback_data);
void                gnome_vfs_async_load_directory_uri  (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileInfoOptions options,
                                                         guint items_per_notification,
                                                         int priority,
                                                         GnomeVFSAsyncDirectoryLoadCallback callback,
                                                         gpointer callback_data);
GnomeVFSResult      gnome_vfs_async_xfer                (GnomeVFSAsyncHandle **handle_return,
                                                         GList *source_uri_list,
                                                         GList *target_uri_list,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOverwriteMode overwrite_mode,
                                                         int priority,
                                                         GnomeVFSAsyncXferProgressCallback progress_update_callback,
                                                         gpointer update_callback_data,
                                                         GnomeVFSXferProgressCallback progress_sync_callback,
                                                         gpointer sync_callback_data);
void                gnome_vfs_async_find_directory      (GnomeVFSAsyncHandle **handle_return,
                                                         GList *near_uri_list,
                                                         GnomeVFSFindDirectoryKind kind,
                                                         gboolean create_if_needed,
                                                         gboolean find_if_needed,
                                                         guint permissions,
                                                         int priority,
                                                         GnomeVFSAsyncFindDirectoryCallback callback,
                                                         gpointer user_data);
void                gnome_vfs_async_file_control        (GnomeVFSAsyncHandle *handle,
                                                         const char *operation,
                                                         gpointer operation_data,
                                                         GDestroyNotify operation_data_destroy_func,
                                                         GnomeVFSAsyncFileControlCallback callback,
                                                         gpointer callback_data);
GnomeVFSFindDirectoryResult *  gnome_vfs_find_directory_result_dup
                                                        (GnomeVFSFindDirectoryResult *result);
void                gnome_vfs_find_directory_result_free
                                                        (GnomeVFSFindDirectoryResult *result);

Description

When executing an asynchornous operation on a file the program does not block waiting for the operation to finish, instead it keeps on running, which means that the process and the I/O operation can be both running concurrently. Once the I/O operation has been completed the process is notified using a callback.

Asynchronous operations are particularly good when long I/O operations are expected, in this case the program can continue normaly, the I/O will be performed in the background. On the other hand when operations are expected to be short (creating a file, writing/reading small amounts of data, etc.) synchronous operations are prefered.

Within a graphical desktop asynchornous I/O operations can be used to avoid blocking the UI (User Interface) during a long operation, and to be able to provide some kind of feedback to the user.

Details

GNOME_VFS_PRIORITY_MIN

#define GNOME_VFS_PRIORITY_MIN     -10

The minimuum priority a job can have.


GNOME_VFS_PRIORITY_MAX

#define GNOME_VFS_PRIORITY_MAX     10

The maximuum priority a job can have.


GNOME_VFS_PRIORITY_DEFAULT

#define GNOME_VFS_PRIORITY_DEFAULT 0

The default job priority. Its best to use this unless you have a reason to do otherwise.


GnomeVFSAsyncHandle

typedef struct GnomeVFSAsyncHandle GnomeVFSAsyncHandle;


GnomeVFSAsyncCallback ()

void                (*GnomeVFSAsyncCallback)            (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);

Basic callback from an async operation that passes no data back, informing the user of the result of the operation.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

callback_data :

user data defined when the callback was established

GnomeVFSAsyncOpenCallback ()

void                (*GnomeVFSAsyncOpenCallback)        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_open() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

callback_data :

user data defined when the callback was established

GnomeVFSAsyncOpenAsChannelCallback ()

void                (*GnomeVFSAsyncOpenAsChannelCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GIOChannel *channel,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);

Warning

GnomeVFSAsyncOpenAsChannelCallback is deprecated and should not be used in newly-written code.

Callback for the gnome_vfs_async_open_as_channel() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback.

channel :

a GIOChannel corresponding to the file opened

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

callback_data :

user data defined when the callback was established.

GnomeVFSAsyncCreateCallback ()

void                (*GnomeVFSAsyncCreateCallback)      (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_create() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

callback_data :

user data defined when the callback was established

GnomeVFSAsyncCreateAsChannelCallback ()

void                (*GnomeVFSAsyncCreateAsChannelCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GIOChannel *channel,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);

Warning

GnomeVFSAsyncCreateAsChannelCallback is deprecated and should not be used in newly-written code.

Callback for the gnome_vfs_async_create_as_channel() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback.

channel :

a GIOChannel corresponding to the file created

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

callback_data :

user data defined when the callback was established.

GnomeVFSAsyncCloseCallback ()

void                (*GnomeVFSAsyncCloseCallback)       (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_close() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

callback_data :

user data defined when the callback was established

GnomeVFSAsyncReadCallback ()

void                (*GnomeVFSAsyncReadCallback)        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes_requested,
                                                         GnomeVFSFileSize bytes_read,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_read() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

buffer :

buffer containing data read from handle.

bytes_requested :

the number of bytes asked for in the call to gnome_vfs_async_read().

bytes_read :

the number of bytes actually read from handle into buffer.

callback_data :

user data defined when the callback was established

GnomeVFSAsyncWriteCallback ()

void                (*GnomeVFSAsyncWriteCallback)       (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes_requested,
                                                         GnomeVFSFileSize bytes_written,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_write() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

buffer :

buffer containing data written to handle.

bytes_requested :

the number of bytes asked to write in the call to gnome_vfs_async_write().

bytes_written :

the number of bytes actually written to handle from buffer.

callback_data :

user data defined when the callback was established.

GnomeVFSAsyncSeekCallback ()

void                (*GnomeVFSAsyncSeekCallback)        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_seek() function, informing the user of the result of the operation.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise an error code.

callback_data :

user data defined when the callback was established.

GnomeVFSAsyncGetFileInfoCallback ()

void                (*GnomeVFSAsyncGetFileInfoCallback) (GnomeVFSAsyncHandle *handle,
                                                         GList *results,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_get_file_info() function, informing the user of the results of the operation.

handle :

handle of the operation generating the callback

results :

GList of GnomeVFSFileInfoResult * items representing the success of each gnome_vfs_get_file_info() and the data retrieved.

callback_data :

user data defined when the callback was established.

GnomeVFSAsyncSetFileInfoCallback ()

void                (*GnomeVFSAsyncSetFileInfoCallback) (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         GnomeVFSFileInfo *file_info,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_set_file_info() function, informing the user of the result of the operation and returning the new file_info.

Note

Setting the file info sometimes changes more information than the caller specified; for example, if the name changes the MIME type might change, and if the owner changes the SUID & SGID bits might change. Therefore the callback returns the new file_info for the caller's convenience. The GnomeVFSFileInfoOptions passed here are those used for the returned file info; they are not used when setting.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise a GnomeVFSResult error code.

file_info :

if result is GNOME_VFS_OK, a GnomeVFSFileInfo struct containing information about the file.

callback_data :

user data defined when the callback was established

GnomeVFSAsyncFileControlCallback ()

void                (*GnomeVFSAsyncFileControlCallback) (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         gpointer operation_data,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_find_directory() function. informing the user of the result of the operation, and providing the requested operation_data.

handle :

handle of the operation generating the callback

result :

GNOME_VFS_OK if the operation was successful, otherwise a GnomeVFSResult error code.

operation_data :

The data requested from the module if result is GNOME_VFS_OK.

callback_data :

User data defined when the operation was established.

GnomeVFSAsyncDirectoryLoadCallback ()

void                (*GnomeVFSAsyncDirectoryLoadCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSResult result,
                                                         GList *list,
                                                         guint entries_read,
                                                         gpointer callback_data);

Callback for the gnome_vfs_async_directory_load() function. informing the user of the result of the operation and providing a file list if the result is GNOME_VFS_OK.

handle :

handle of the operation generating the callback.

result :

GNOME_VFS_OK if the operation was sucessful, GNOME_VFS_ERROR_EOF if the last file in the directory has been read, otherwise a GnomeVFSResult error code

list :

a GList of GnomeVFSFileInfo structs representing information about the files just loaded.

entries_read :

number of entries read from handle for this instance of the callback.

callback_data :

user data defined when the callback was established.

GnomeVFSAsyncFindDirectoryCallback ()

void                (*GnomeVFSAsyncFindDirectoryCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GList *results,
                                                         gpointer data);

Callback for the gnome_vfs_async_find_directory() function, informing the user of the results of the operation.

handle :

handle of the operation generating the callback

results :

GList of GnomeVFSFindDirectoryResult *s containing special directories matching the find criteria.

data :

user data defined when the operation was established

GnomeVFSFindDirectoryResult

typedef struct {
	GnomeVFSURI *uri;
	GnomeVFSResult result;
} GnomeVFSFindDirectoryResult;

This structure is passed to a GnomeVFSAsyncFindDirectoryCallback by gnome_vfs_async_find_directory() and contains the information associated with a single GnomeVFSURI matching the specified find request.

GnomeVFSURI *uri;

The GnomeVFSURI that was found.

GnomeVFSResult result;

The GnomeVFSResult that was obtained when finding uri.

GnomeVFSAsyncXferProgressCallback ()

gint                (*GnomeVFSAsyncXferProgressCallback)
                                                        (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSXferProgressInfo *info,
                                                         gpointer user_data);

This callback is passed to gnome_vfs_async_xfer() and should be used for user interaction. That said, it serves two purposes: Informing the user about the progress of the operation, and making decisions.

On the one hand, when the transfer progresses normally, i.e. when the info's status is GNOME_VFS_XFER_PROGRESS_STATUS_OK it is called periodically whenever new progress information is available, and it wasn't called already within the last 100 milliseconds.

On the other hand, it is called whenever a decision is requested from the user, i.e. whenever the info's status is not GNOME_VFS_XFER_PROGRESS_STATUS_OK.

Either way, it acts like GnomeVFSXferProgressCallback would act in non-asynchronous mode. The differences in invocation are explained in the gnome_vfs_async_xfer() documentation.

handle :

Handle of the Xfer operation generating the callback.

info :

Information on the current progress in the transfer.

user_data :

The user data that was passed to gnome_vfs_async_xfer().

Returns :

gint depending on the GnomeVFSXferProgressInfo. Please consult GnomeVFSXferProgressCallback for details.

GnomeVFSCancellation

typedef struct GnomeVFSCancellation GnomeVFSCancellation;


GnomeVFSContext

typedef struct GnomeVFSContext GnomeVFSContext;


gnome_vfs_async_set_job_limit ()

void                gnome_vfs_async_set_job_limit       (int limit);

Restrict the number of worker threads used by async operations to limit.

limit :

maximum number of allowable threads.

gnome_vfs_async_get_job_limit ()

int                 gnome_vfs_async_get_job_limit       (void);

Get the current maximum allowable number of worker threads for async operations.

Returns :

current maximum number of threads.

gnome_vfs_async_cancel ()

void                gnome_vfs_async_cancel              (GnomeVFSAsyncHandle *handle);

Cancel an asynchronous operation and close all its callbacks.

In a single-threaded application, its guaranteed that if you call this before the operation finished callback has been called the callback will never be called.

However, in a multithreaded application, or to be more specific, if you call gnome_vfs_async_cancel from another thread than the thread handling the glib mainloop, there is a race condition where if the operation finished callback was just dispatched, you might still cancel the operation. So, in this case you need to handle the fact that the operation callback might still run even though another thread has cancelled the operation.

One way to avoid problems from this is to mark the data structure you're using as callback_data as destroyed, and then queue an idle and do the actual freeing in an idle handler. The idle handler is guaranteed to run after the callback has been exectuted, so by then it is safe to destroy the callback_data. The callback handler must handle the case where the callback_data is marked destroyed by doing nothing.

This is clearly not ideal for multithreaded applications, but as good as we can with the current API. Eventually we'll have to change the API to make this work better.

handle :

handle of the async operation to be cancelled.

gnome_vfs_async_open ()

void                gnome_vfs_async_open                (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);

Open text_uri according to mode open_mode. On return, handle_return will contain a pointer to the operation. Once the file has been successfully opened, callback will be called with the GnomeVFSResult.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

text_uri :

string of the uri to open.

open_mode :

open mode.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_open_uri ()

void                gnome_vfs_async_open_uri            (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);

Open uri according to mode open_mode. On return, handle_return will contain a pointer to the operation. Once the file has been successfully opened, callback will be called with the GnomeVFSResult.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

uri :

uri to open.

open_mode :

open mode.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_open_as_channel ()

void                gnome_vfs_async_open_as_channel     (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         guint advised_block_size,
                                                         int priority,
                                                         GnomeVFSAsyncOpenAsChannelCallback callback,
                                                         gpointer callback_data);

Warning

gnome_vfs_async_open_as_channel is deprecated and should not be used in newly-written code.

Open text_uri as a GIOChannel. Once the channel has been established callback will be called with callback_data, the result of the operation, and if the result was GNOME_VFS_OK, a reference to a GIOChannel pointing at text_uri in open_mode.

This function has been deprecated due to behaving weirdly which suggests that it hasn't been used. See bugs 157266, 157265, 157261, 138398 in the GNOME Bugzilla. If the *_as_channel functions are needed they should be fixed and undeprecated.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

text_uri :

string of the uri to open as a GIOChannel.

open_mode :

open mode i.e. for reading, writing, random, etc.

advised_block_size :

the preferred block size for GIOChannel to read.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_open_uri_as_channel ()

void                gnome_vfs_async_open_uri_as_channel (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         guint advised_block_size,
                                                         int priority,
                                                         GnomeVFSAsyncOpenAsChannelCallback callback,
                                                         gpointer callback_data);

Warning

gnome_vfs_async_open_uri_as_channel is deprecated and should not be used in newly-written code. This function has been deprecated due to behaving weirdly which suggests that it shouldn't be used. See bugs 157266, 157265, 157261, 138398 in the GNOME Bugzilla. If the *_as_channel functions are needed they should be fixed and undeprecated.

Open uri as a GIOChannel. Once the channel has been established callback will be called with callback_data, the result of the operation, and if the result was GNOME_VFS_OK, a reference to a GIOChannel pointing at uri in open_mode.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

uri :

uri to open as a GIOChannel.

open_mode :

open mode i.e. for reading, writing, random, etc.

advised_block_size :

the preferred block size for GIOChannel to read.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_create ()

void                gnome_vfs_async_create              (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);

Create a file at uri according to mode open_mode, with permissions perm (in the standard UNIX packed bit permissions format). When the create has been completed callback will be called with the result code and callback_data.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

text_uri :

string representing the uri to create.

open_mode :

mode to leave the file opened in after creation (or GNOME_VFS_OPEN_MODE_NONE to leave the file closed after creation).

exclusive :

whether the file should be created in "exclusive" mode: i.e. if this flag is nonzero, operation will fail if a file with the same name already exists.

perm :

bitmap representing the permissions for the newly created file (Unix style).

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_create_uri ()

void                gnome_vfs_async_create_uri          (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);

Create a file at uri according to mode open_mode, with permissions perm (in the standard UNIX packed bit permissions format). When the create has been completed callback will be called with the result code and callback_data.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

uri :

uri to create a file at.

open_mode :

mode to leave the file opened in after creation (or GNOME_VFS_OPEN_MODE_NONE to leave the file closed after creation).

exclusive :

Whether the file should be created in "exclusive" mode: i.e. if this flag is nonzero, operation will fail if a file with the same name already exists.

perm :

bitmap representing the permissions for the newly created file (Unix style).

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_create_symbolic_link ()

void                gnome_vfs_async_create_symbolic_link
                                                        (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         const gchar *uri_reference,
                                                         int priority,
                                                         GnomeVFSAsyncOpenCallback callback,
                                                         gpointer callback_data);

Create a symbolic link at uri pointing to uri_reference. When the operation has completed callback will be called with the result of the operation and callback_data.

handle_return :

when the function returns, will point to a handle for the async operation.

uri :

location to create the link at.

uri_reference :

location to point uri to (can be a uri fragment, i.e. relative).

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_create_as_channel ()

void                gnome_vfs_async_create_as_channel   (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncCreateAsChannelCallback callback,
                                                         gpointer callback_data);

Warning

gnome_vfs_async_create_as_channel is deprecated and should not be used in newly-written code.

Open text_uri as a GIOChannel, creating it as necessary. Once the channel has been established callback will be called with callback_data, the result of the operation, and if the result was GNOME_VFS_OK, a reference to a GIOChannel pointing at text_uri in open_mode.

This function has been deprecated due to behaving weirdly which suggests that it hasn't been used. See bugs 157266, 157265, 157261, 138398 in the GNOME Bugzilla. If the *_as_channel functions are needed they should be fixed and undeprecated.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

text_uri :

string of the uri to open as a GIOChannel, creating it as necessary.

open_mode :

open mode i.e. for reading, writing, random, etc.

exclusive :

replace the file if it already exists.

perm :

standard POSIX-style permissions bitmask, permissions of created file.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_create_uri_as_channel ()

void                gnome_vfs_async_create_uri_as_channel
                                                        (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm,
                                                         int priority,
                                                         GnomeVFSAsyncCreateAsChannelCallback callback,
                                                         gpointer callback_data);

Warning

gnome_vfs_async_create_uri_as_channel is deprecated and should not be used in newly-written code.

Open uri as a GIOChannel, creating it as necessary. Once the channel has been established callback will be called with callback_data, the result of the operation, and if the result was GNOME_VFS_OK, a reference to a GIOChannel pointing at text_uri in open_mode.

handle_return :

pointer to a pointer to a GnomeVFSHandle object.

uri :

uri to open as a GIOChannel, creating it as necessary.

open_mode :

open mode i.e. for reading, writing, random, etc.

exclusive :

replace the file if it already exists.

perm :

standard POSIX-style permissions bitmask, permissions of created file.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

Since 2.12


gnome_vfs_async_close ()

void                gnome_vfs_async_close               (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSAsyncCloseCallback callback,
                                                         gpointer callback_data);

Close handle opened with gnome_vfs_async_open(). When the close has completed, callback will be called with callback_data and the result of the operation.

handle :

async handle to close.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_read ()

void                gnome_vfs_async_read                (GnomeVFSAsyncHandle *handle,
                                                         gpointer buffer,
                                                         guint bytes,
                                                         GnomeVFSAsyncReadCallback callback,
                                                         gpointer callback_data);

Read bytes bytes from the file pointed to be handle into buffer. When the operation is complete, callback will be called with the result of the operation and callback_data.

handle :

handle for the file to be read.

buffer :

allocated block of memory to read into.

bytes :

number of bytes to read.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_write ()

void                gnome_vfs_async_write               (GnomeVFSAsyncHandle *handle,
                                                         gconstpointer buffer,
                                                         guint bytes,
                                                         GnomeVFSAsyncWriteCallback callback,
                                                         gpointer callback_data);

Write bytes bytes from buffer into the file pointed to be handle. When the operation is complete, callback will be called with the result of the operation and callback_data.

handle :

handle for the file to be written.

buffer :

block of memory containing data to be written.

bytes :

number of bytes to write.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_seek ()

void                gnome_vfs_async_seek                (GnomeVFSAsyncHandle *handle,
                                                         GnomeVFSSeekPosition whence,
                                                         GnomeVFSFileOffset offset,
                                                         GnomeVFSAsyncSeekCallback callback,
                                                         gpointer callback_data);

Set the current position for reading/writing through handle. When the operation is complete, callback will be called with the result of the operation and callback_data.

handle :

handle for which the current position must be changed.

whence :

integer value representing the starting position.

offset :

number of bytes to skip from the position specified by whence. (a positive value means to move forward; a negative one to move backwards).

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_get_file_info ()

void                gnome_vfs_async_get_file_info       (GnomeVFSAsyncHandle **handle_return,
                                                         GList *uri_list,
                                                         GnomeVFSFileInfoOptions options,
                                                         int priority,
                                                         GnomeVFSAsyncGetFileInfoCallback callback,
                                                         gpointer callback_data);

Fetch information about the files indicated in uri_list and return the information progressively to callback.

handle_return :

when the function returns, will point to a handle for the async operation.

uri_list :

a GList of GnomeVFSURIs to fetch information about.

options :

packed boolean type providing control over various details of the get_file_info operation.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_set_file_info ()

void                gnome_vfs_async_set_file_info       (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileInfo *info,
                                                         GnomeVFSSetFileInfoMask mask,
                                                         GnomeVFSFileInfoOptions options,
                                                         int priority,
                                                         GnomeVFSAsyncSetFileInfoCallback callback,
                                                         gpointer callback_data);

Set file info details about the file at uri, such as permissions, name, owner, and modification time.

handle_return :

when the function returns, will point to a handle for the async operation.

uri :

uri to set the file info of.

info :

the struct containing new information about the file.

mask :

control which fields of info are to be changed about the file at uri.

options :

packed boolean type providing control over various details of the set_file_info operation.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_load_directory ()

void                gnome_vfs_async_load_directory      (GnomeVFSAsyncHandle **handle_return,
                                                         const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions options,
                                                         guint items_per_notification,
                                                         int priority,
                                                         GnomeVFSAsyncDirectoryLoadCallback callback,
                                                         gpointer callback_data);

Read the contents of the directory at text_uri, passing back GnomeVFSFileInfo structs about each file in the directory to callback. items_per_notification files will be processed between each call to callback.

handle_return :

when the function returns, will point to a handle for the async operation.

text_uri :

string representing the uri of the directory to be loaded.

options :

packed boolean type providing control over various details of the get_file_info operation.

items_per_notification :

number of files to process in a row before calling callback

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_load_directory_uri ()

void                gnome_vfs_async_load_directory_uri  (GnomeVFSAsyncHandle **handle_return,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileInfoOptions options,
                                                         guint items_per_notification,
                                                         int priority,
                                                         GnomeVFSAsyncDirectoryLoadCallback callback,
                                                         gpointer callback_data);

Read the contents of the directory at uri, passing back GnomeVFSFileInfo structs about each file in the directory to callback. items_per_notification files will be processed between each call to callback.

handle_return :

when the function returns, will point to a handle for the async operation.

uri :

uri of the directory to be loaded.

options :

packed boolean type providing control over various details of the get_file_info operation.

items_per_notification :

number of files to process in a row before calling callback

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

gnome_vfs_async_xfer ()

GnomeVFSResult      gnome_vfs_async_xfer                (GnomeVFSAsyncHandle **handle_return,
                                                         GList *source_uri_list,
                                                         GList *target_uri_list,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOverwriteMode overwrite_mode,
                                                         int priority,
                                                         GnomeVFSAsyncXferProgressCallback progress_update_callback,
                                                         gpointer update_callback_data,
                                                         GnomeVFSXferProgressCallback progress_sync_callback,
                                                         gpointer sync_callback_data);

Performs an Xfer operation in a seperate thread, otherwise like gnome_vfs_xfer_uri_list().

See GnomeVFSAsyncXferProgressCallback and GnomeVFSXferProgressCallback for details on how the callback mechanism works.

Note

progress_sync_callback should only be used if you want to execute additional actions that may not wait until after the transfer, for instance because you have to do them for each transferred file/directory, and that require a very specific action to be taken. For instance, the Nautilus application schedules metadata removal/moving/copying at specific phases.

Do not use progress_sync_callback if you just need user feedback, because each invocation is expensive, and requires a context switch.

If you use both progress_update_callback and progress_sync_callback, the progress_sync_callback will always be invoked before the progress_update_callback. It is recommended to do conflict handling in progress_update_callback, and always return TRUE in progress_sync_callback, because if the Xfer's GnomeVFSXferProgressStatus is GNOME_VFS_XFER_PROGRESS_STATUS_OK, progress_update_callback will only be invoked if it hasn't been invoked within the last 100 milliseconds, and if progress_update_callback is not invoked, only progress_sync_callback is authoritative for the further processing, causing abortion if it is FALSE.

handle_return :

when the function returns, will point to a handle for the operation.

source_uri_list :

A GList of source GnomeVFSURIs.

target_uri_list :

A GList of target GnomeVFSURIs, each corresponding to one URI in source_uri_list.

xfer_options :

GnomeVFSXferOptions defining the desired operation and parameters.

error_mode :

A GnomeVFSErrorMode specifying how to proceed if a VFS error occurs.

overwrite_mode :

A GnomeVFSOverwriteMode specifying how to proceed if a file is being overwritten.

priority :

A value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job in allocating threads from the thread pool.

progress_update_callback :

A GnomeVFSAsyncXferCallback called periodically for informing the program about progress, and when the program requires responses to interactive queries (e.g. overwriting files, handling errors, etc).

update_callback_data :

User data to pass to progress_update_callback.

progress_sync_callback :

An optional GnomeVFSXferCallback called whenever some state changed.

sync_callback_data :

User data to pass to progress_sync_callback.

Returns :

GNOME_VFS_OK if the paramaters were in order, or GNOME_VFS_ERROR_BAD_PARAMETERS if something was wrong in the passed in arguments.

gnome_vfs_async_find_directory ()

void                gnome_vfs_async_find_directory      (GnomeVFSAsyncHandle **handle_return,
                                                         GList *near_uri_list,
                                                         GnomeVFSFindDirectoryKind kind,
                                                         gboolean create_if_needed,
                                                         gboolean find_if_needed,
                                                         guint permissions,
                                                         int priority,
                                                         GnomeVFSAsyncFindDirectoryCallback callback,
                                                         gpointer user_data);

Used to return special directories such as Trash and Desktop from different file systems.

There is quite a complicated logic behind finding/creating a Trash directory and you need to be aware of some implications: Finding the Trash the first time when using the file method may be pretty expensive. A cache file is used to store the location of that Trash file for next time. If create_if_needed is specified without find_if_needed, you may end up creating a Trash file when there already is one. Your app should start out by doing a gnome_vfs_find_directory with the find_if_needed to avoid this and then use the create_if_needed flag to create Trash lazily when it is needed for throwing away an item on a given disk.

When the operation has completed, callback will be called with the result of the operation and user_data.

handle_return :

when the function returns, will point to a handle for the operation.

near_uri_list :

a GList of GnomeVFSURIs, find a special directory on the same volume as near_uri_list.

kind :

kind of special directory.

create_if_needed :

if directory we are looking for does not exist, try to create it.

find_if_needed :

if we don't know where the directory is yet, look for it.

permissions :

if creating, use these permissions.

priority :

a value from GNOME_VFS_PRIORITY_MIN to GNOME_VFS_PRIORITY_MAX (normally should be GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job in allocating threads from the thread pool.

callback :

function to be called when the operation is complete.

user_data :

data to pass to callback.

gnome_vfs_async_file_control ()

void                gnome_vfs_async_file_control        (GnomeVFSAsyncHandle *handle,
                                                         const char *operation,
                                                         gpointer operation_data,
                                                         GDestroyNotify operation_data_destroy_func,
                                                         GnomeVFSAsyncFileControlCallback callback,
                                                         gpointer callback_data);

Execute a backend dependent operation specified by the string operation. This is typically used for specialized vfs backends that need additional operations that gnome-vfs doesn't have. Compare it to the unix call ioctl(). The format of operation_data depends on the operation. Operation that are backend specific are normally namespaced by their module name.

When the operation is complete, callback will be called with the result of the operation, operation_data and callback_data.

handle :

handle of the file to affect.

operation :

operation to execute.

operation_data :

data needed to execute the operation.

operation_data_destroy_func :

callback to destroy operation_data when its no longer needed.

callback :

function to be called when the operation is complete.

callback_data :

data to pass to callback.

Since 2.2


gnome_vfs_find_directory_result_dup ()

GnomeVFSFindDirectoryResult *  gnome_vfs_find_directory_result_dup
                                                        (GnomeVFSFindDirectoryResult *result);

Duplicates result.

Note: The internal uri is not duplicated but its refcount is incremented.

result :

a GnomeVFSFindDirectoryResult.

Returns :

A 1:1 copy of result.

Since 2.12


gnome_vfs_find_directory_result_free ()

void                gnome_vfs_find_directory_result_free
                                                        (GnomeVFSFindDirectoryResult *result);

Unrefs the inner uri object and frees the memory allocated for result.

Since 2.12

gnome-vfs-2.24.4/doc/html/gnome-vfs-first-steps.html0000644000175000001440000001707511450333533017214 00000000000000 A Gentle Programming Primer

A Gentle Programming Primer

Using GnomeVFS in an existing application, or writing a new application with it, is actually very simple since GnomeVFS tries to mimic POSIX file access syntax and semantics. That means that most "standard unix calls" have a GnomeVFS equivalent that operates in a fairly similar manner. There are a few differences to keep in mind.

  • The most obvious is probably that all I/O operations return a GnomeVFSResult indicating the success or failure of the operation. More on this later.

  • The types may be slightly different (but still parallel), for example rather than using an int for a file-descriptor, GnomeVFS uses GnomeVFSHandle, a handle to a particular URI.

  • Most operations come in Handle (think file descriptor) and URI form. The URI form may be more convenient if you do not want to track handles, etc, but just be aware that both are at your disposal and may be used interchangably. For example gnome_vfs_open and gnome_vfs_open_uri.

By way of example, consider the basic read command:

	ssize_t read (int fd, void *buf, size_t count);
      

The GnomeVFS equivalent is very similar, but you will notice slightly different data types. The consistent returning of a GnomeVFSResult also necessitated moving the return value of read into a pass-back-value pointer bytes_read:

	GnomeVFSResult gnome_vfs_read (GnomeVFSHandle *handle,
	                               gpointer buffer,
                                       GnomeVFSFileSize bytes,
                                       GnomeVFSFileSize *bytes_read);
      

So gnome_vfs_read takes a GnomeVFSHandle, which functions like a file descriptor, and attempts to read bytes bytes out of handle into buffer. The number of bytes succesfully read into buffer is returned in the pointer bytes_read. The return value of the function, a GnomeVFSResult indicates the success of the operation or any errors that might have occurred (for example, permission denied). GnomeVFSResult is just an enumeration.

Simple Sample Program

Now lets write a simple program to copy a fixed number of bytes from one file and append it to another file.


#include <stdio.h>
#include <libgnomevfs/gnome-vfs.h>
#include <libgnomevfs/gnome-vfs-utils.h>

#define BYTES_TO_PROCESS 256

int print_error (GnomeVFSResult result, const char *uri_string);

int
main (int argc, char **argv)
{
  GnomeVFSHandle *read_handle, *write_handle;
  char *input_uri_string;
  char *output_uri_string = argv[2];
  GnomeVFSFileSize bytes_read, bytes_written;
  guint buffer[BYTES_TO_PROCESS];
  GnomeVFSResult result;

  /* remember to initialize GnomeVFS! */
  if (!gnome_vfs_init ()) {
    printf ("Could not initialize GnomeVFS\n");
    return 1;
  }

  /* Convert the user supplied filenames into proper GnomeVFS URIs */
  input_uri_string = gnome_vfs_make_uri_from_shell_arg (argv[1]);
  output_uri_string = gnome_vfs_make_uri_from_shell_arg (argv[2]);

  /* open the input file for read access */
  result = gnome_vfs_open (&read_handle, input_uri_string, GNOME_VFS_OPEN_READ);
  /* if the operation was not successful, print the error and abort */
  if (result != GNOME_VFS_OK) return print_error (result, input_uri_string);

  /* we use create instead of open, because open will not create the file if it does
     not already exist. The last argument is the permissions to use if the file is created,
     the second to last tells GnomeVFS that its ok if the file already exists, and just open it */
  result = gnome_vfs_create (&write_handle, output_uri_string, GNOME_VFS_OPEN_WRITE, FALSE, 0777);
  if (result != GNOME_VFS_OK) return print_error (result, output_uri_string);

  /* read data from the input uri */
  result = gnome_vfs_read (read_handle, buffer, BYTES_TO_PROCESS, &bytes_read);
  if (result != GNOME_VFS_OK) return print_error (result, input_uri_string);

  /* seek to the end of the output uri so we will append rather than overwrite */
  /* therefore, we seek 0 bytes relative to the end of the file */
  result = gnome_vfs_seek (write_handle, GNOME_VFS_SEEK_END, 0);

  /* now write the data we read out to the output uri */
  result = gnome_vfs_write (write_handle, buffer, bytes_read, &bytes_written);
  if (result != GNOME_VFS_OK) return print_error (result, output_uri_string);

  g_free (input_uri_string);
  g_free (output_uri_string);

  return 0;
}

int
print_error (GnomeVFSResult result, const char *uri_string)
{
  const char *error_string;
  /* get the string corresponding to this GnomeVFSResult value */
  error_string = gnome_vfs_result_to_string (result);
  printf ("Error %s occured opening location %s\n", error_string, uri_string);
  return 1;
}

	

Conversion of a Sample Code Block

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-socket.html0000644000175000001440000011654011450333533020412 00000000000000 Unified network I/O

Unified network I/O

Unified network I/O — Posix style network input/output functions.

Synopsis

typedef             GnomeVFSSocket;
                    GnomeVFSSocketImpl;
GnomeVFSResult      (*GnomeVFSSocketReadFunc)           (gpointer connection,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read_out,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      (*GnomeVFSSocketWriteFunc)          (gpointer connection,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written_out,
                                                         GnomeVFSCancellation *cancellation);
void                (*GnomeVFSSocketCloseFunc)          (gpointer connection,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      (*GnomeVFSSocketSetTimeoutFunc)     (gpointer connection,
                                                         GTimeVal *timeout,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSSocket *    gnome_vfs_socket_new                (GnomeVFSSocketImpl *impl,
                                                         void *connection);
GnomeVFSResult      gnome_vfs_socket_write              (GnomeVFSSocket *socket,
                                                         gconstpointer buffer,
                                                         int bytes,
                                                         GnomeVFSFileSize *bytes_written,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_socket_close              (GnomeVFSSocket *socket,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_socket_read               (GnomeVFSSocket *socket,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read,
                                                         GnomeVFSCancellation *cancellation);
void                gnome_vfs_socket_free               (GnomeVFSSocket *socket);
GnomeVFSResult      gnome_vfs_socket_set_timeout        (GnomeVFSSocket *socket,
                                                         GTimeVal *timeout,
                                                         GnomeVFSCancellation *cancellation);

Description

The GnomeVFSSocket function family unifies network I/O through functions similar to the standard POSIX read/write functions. The main difference is that all operations are cancellable through the standard GnomeVFS cancellation mechanism and you can specify a maximum amount of time an operation may take through gnome_vfs_socket_set_timeout.

Details

GnomeVFSSocket

typedef struct GnomeVFSSocket GnomeVFSSocket;

An handle to a generic unbuffered socket connection established with gnome_vfs_socket_new().

The specifics of the underlying socket implementation are hidden inside the GnomeVFSSocketImpl passed on construction.

If you need buffered I/O, you will also have to create a GnomeVFSSocketBuffer.


GnomeVFSSocketImpl

typedef struct {
  GnomeVFSSocketReadFunc read;
  GnomeVFSSocketWriteFunc write;
  GnomeVFSSocketCloseFunc close;
  GnomeVFSSocketSetTimeoutFunc set_timeout;
} GnomeVFSSocketImpl;

An implementation of a generic socket (i.e. of GnomeVFSSocket) encapsulating the details of how socket I/O works.

Please refer to GnomeVFSSSL for a sample implementation of this interface.

GnomeVFSSocketReadFunc read;

A GnomeVFSSocketReadFunc function used for reading from a socket.

GnomeVFSSocketWriteFunc write;

A GnomeVFSSocketWriteFunc function used for writing to a socket.

GnomeVFSSocketCloseFunc close;

A GnomeVFSSocketCloseFunc function used for closing an open socket.

GnomeVFSSocketSetTimeoutFunc set_timeout;

A GnomeVFSSocketSetTimeoutFunc function used for setting a socket's timeout.

GnomeVFSSocketReadFunc ()

GnomeVFSResult      (*GnomeVFSSocketReadFunc)           (gpointer connection,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read_out,
                                                         GnomeVFSCancellation *cancellation);

This is a generic prototype for a function that reads from a socket.

This function is implemented by a GnomeVFSSocketImpl, and it defines how data should be written to a buffer using the gnome_vfs_socket_read() function which hides the socket implementation details.

connection :

The socket connection.

buffer :

A connection buffer.

bytes :

The bytes to read.

bytes_read_out :

The bytes that were read (out).

cancellation :

A cancellation handle that allows clients to cancel the read operation.

Returns :

A GnomeVFSResult signalling the result of the read operation.

GnomeVFSSocketWriteFunc ()

GnomeVFSResult      (*GnomeVFSSocketWriteFunc)          (gpointer connection,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written_out,
                                                         GnomeVFSCancellation *cancellation);

This is a generic prototype for a function that writes to a socket.

This function is implemented by a GnomeVFSSocketImpl, and it defines how data should be written to a buffer using the gnome_vfs_socket_write() function which hides the socket implementation details.

connection :

The socket connection.

buffer :

A connection buffer.

bytes :

The bytes to write.

bytes_written_out :

The bytes that were written.

cancellation :

A cancellation handle that allows clients to cancel the write operation.

Returns :

A GnomeVFSResult signalling the result of the write operation.

GnomeVFSSocketCloseFunc ()

void                (*GnomeVFSSocketCloseFunc)          (gpointer connection,
                                                         GnomeVFSCancellation *cancellation);

This is a generic prototype for a function that closes a socket.

This function is implemented by a GnomeVFSSocketImpl, and it defines how an open socket that was previously opened by gnome_vfs_socket_new() should be closed using the gnome_vfs_socket_set_timeout() function which hides the socket implementation details.

connection :

cancellation :

A cancellation handle that allows clients to cancel the write operation.

GnomeVFSSocketSetTimeoutFunc ()

GnomeVFSResult      (*GnomeVFSSocketSetTimeoutFunc)     (gpointer connection,
                                                         GTimeVal *timeout,
                                                         GnomeVFSCancellation *cancellation);

This is a generic prototype for a function that sets a socket timeout.

This function is implemented by a GnomeVFSSocketImpl, and it defines how a socket timeout should be set using should be closed by the gnome_vfs_socket_close() function which hides the socket implementation details.

connection :

timeout :

cancellation :

A cancellation handle that allows clients to cancel the write operation.

Returns :

A GnomeVFSResult signalling the result of the write operation.

gnome_vfs_socket_new ()

GnomeVFSSocket *    gnome_vfs_socket_new                (GnomeVFSSocketImpl *impl,
                                                         void *connection);

Creates a new GnomeVFSSocket using the specific implementation impl.

impl :

an implementation of socket, e.g. GnomeVFSSSL.

connection :

pointer to a connection object used by impl to track. state (the exact nature of connection varies from implementation to implementation).

Returns :

a newly created socket.

gnome_vfs_socket_write ()

GnomeVFSResult      gnome_vfs_socket_write              (GnomeVFSSocket *socket,
                                                         gconstpointer buffer,
                                                         int bytes,
                                                         GnomeVFSFileSize *bytes_written,
                                                         GnomeVFSCancellation *cancellation);

Write bytes bytes of data from buffer to socket.

socket :

socket to write data to.

buffer :

data to write to the socket.

bytes :

number of bytes from buffer to write to socket.

bytes_written :

pointer to a GnomeVFSFileSize, will contain the number of bytes actually written to the socket on return.

cancellation :

optional cancellation object.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_close ()

GnomeVFSResult      gnome_vfs_socket_close              (GnomeVFSSocket *socket,
                                                         GnomeVFSCancellation *cancellation);

Close socket, freeing any resources it may be using.

socket :

the socket to be closed.

cancellation :

optional cancellation object.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_read ()

GnomeVFSResult      gnome_vfs_socket_read               (GnomeVFSSocket *socket,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read,
                                                         GnomeVFSCancellation *cancellation);

Read bytes bytes of data from the socket into buffer.

socket :

socket to read data from.

buffer :

allocated buffer of at least bytes bytes to be read into.

bytes :

number of bytes to read from socket into buffer.

bytes_read :

pointer to a GnomeVFSFileSize, will contain the number of bytes actually read from the socket on return.

cancellation :

optional cancellation object.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_free ()

void                gnome_vfs_socket_free               (GnomeVFSSocket *socket);

Frees the memory allocated for socket, but does not call any GnomeVFSSocketImpl function.

socket :

The GnomeVFSSocket you want to free.

Since 2.8


gnome_vfs_socket_set_timeout ()

GnomeVFSResult      gnome_vfs_socket_set_timeout        (GnomeVFSSocket *socket,
                                                         GTimeVal *timeout,
                                                         GnomeVFSCancellation *cancellation);

Set a timeout of timeout. If timeout is NULL, following operations will block indefinitely).

Note if you set timeout to 0 (means tv_sec and tv_usec are both 0) every following operation will return immediately. (This can be used for polling.)

socket :

socket to set the timeout of.

timeout :

the timeout.

cancellation :

optional cancellation object.

Returns :

GnomeVFSResult indicating the success of the operation.

Since 2.8

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-inet-connection.html0000644000175000001440000006261511450333533022221 00000000000000 Internet connection

Internet connection

Internet connection — Simple TCP/IP connection functions.

Description

A GnomeVFSInetConnection represents a TCP/IP connection. You can either use gnome_vfs_inet_connection_create which will use the gnome_vfs_resolve DNS resolution functions internally or you can do the name resolution yourself and use gnome_vfs_inet_connection_create_from_address to connect to a specific address. After a connection has been established all I/O is done through a GnomeVFSSocket or a GnomeVFSSocketBuffer.

Details

GnomeVFSInetConnection

typedef struct GnomeVFSInetConnection GnomeVFSInetConnection;


gnome_vfs_inet_connection_create ()

GnomeVFSResult      gnome_vfs_inet_connection_create    (GnomeVFSInetConnection **connection_return,
                                                         const gchar *host_name,
                                                         guint host_port,
                                                         GnomeVFSCancellation *cancellation);

Creates a connection at connection_return to host_name using port port.

connection_return :

pointer to a pointer to a GnomeVFSInetConnection, which will contain an allocated GnomeVFSInetConnection object on return.

host_name :

string indicating the host to establish an internet connection with.

host_port :

port number to connect to.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_inet_connection_destroy ()

void                gnome_vfs_inet_connection_destroy   (GnomeVFSInetConnection *connection,
                                                         GnomeVFSCancellation *cancellation);

Closes/Destroys connection.

connection :

connection to destroy.

cancellation :

handle for cancelling the operation.

gnome_vfs_inet_connection_free ()

void                gnome_vfs_inet_connection_free      (GnomeVFSInetConnection *connection,
                                                         GnomeVFSCancellation *cancellation);

Frees connection without closing the socket.

connection :

connection to free.

cancellation :

handle for cancelling the operation.

gnome_vfs_inet_connection_to_socket ()

GnomeVFSSocket *    gnome_vfs_inet_connection_to_socket (GnomeVFSInetConnection *connection);

Wrap connection inside a standard GnomeVFSSocket for convenience.

connection :

connection to be wrapped into a GnomeVFSSocket.

Returns :

a newly created GnomeVFSSocket around connection.

gnome_vfs_inet_connection_to_socket_buffer ()

GnomeVFSSocketBuffer * gnome_vfs_inet_connection_to_socket_buffer
                                                        (GnomeVFSInetConnection *connection);

Wrap connection inside a standard GnomeVFSSocketBuffer for convenience.

connection :

connection to be wrapped into a GnomeVFSSocketBuffer.

Returns :

a newly created GnomeVFSSocketBuffer around connection.

gnome_vfs_inet_connection_get_fd ()

int                 gnome_vfs_inet_connection_get_fd    (GnomeVFSInetConnection *connection);

Retrieve the UNIX file descriptor corresponding to connection.

connection :

connection to get the file descriptor from.

Returns :

file descriptor.

gnome_vfs_inet_connection_create_from_address ()

GnomeVFSResult      gnome_vfs_inet_connection_create_from_address
                                                        (GnomeVFSInetConnection **connection_return,
                                                         GnomeVFSAddress *address,
                                                         guint host_port,
                                                         GnomeVFSCancellation *cancellation);

Creates a connection at connection_return to address using port port.

connection_return :

pointer to a pointer to a GnomeVFSInetConnection, which will contain an allocated GnomeVFSInetConnection object on return.

address :

a valid GnomeVFSAddress.

host_port :

port number to connect to.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

Since 2.8


gnome_vfs_inet_connection_get_address ()

GnomeVFSAddress *   gnome_vfs_inet_connection_get_address
                                                        (GnomeVFSInetConnection *connection);

Retrieve the address of the other side of a connected connection.

connection :

connection to get the address from.

Returns :

a GnomeVFSAddress containing the address. Since 2.8

gnome_vfs_inet_connection_get_ip ()

char *              gnome_vfs_inet_connection_get_ip    (GnomeVFSInetConnection *connection);

Retrieve the ip address of the other side of a connected connection.

connection :

connection to get the ip from.

Returns :

string version of the ip.

Since 2.8

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-drive.html0000644000175000001440000017554411450333533020244 00000000000000 GnomeVFSDrive

GnomeVFSDrive

GnomeVFSDrive — Container for GnomeVFSVolume (floppy drive, CD reader, ...)

Synopsis

enum                GnomeVFSDeviceType;
                    GnomeVFSDrive;
struct              GnomeVFSDriveClass;
#define             GNOME_IS_VFS_DRIVE                  (o)
#define             GNOME_IS_VFS_DRIVE_CLASS            (k)
#define             GNOME_VFS_TYPE_DRIVE
#define             GNOME_VFS_DRIVE                     (o)
#define             GNOME_VFS_DRIVE_CLASS               (k)
gint                gnome_vfs_drive_compare             (GnomeVFSDrive *a,
                                                         GnomeVFSDrive *b);
void                gnome_vfs_drive_eject               (GnomeVFSDrive *drive,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);
char *              gnome_vfs_drive_get_activation_uri  (GnomeVFSDrive *drive);
char *              gnome_vfs_drive_get_device_path     (GnomeVFSDrive *drive);
GnomeVFSDeviceType  gnome_vfs_drive_get_device_type     (GnomeVFSDrive *drive);
char *              gnome_vfs_drive_get_display_name    (GnomeVFSDrive *drive);
char *              gnome_vfs_drive_get_hal_udi         (GnomeVFSDrive *drive);
char *              gnome_vfs_drive_get_icon            (GnomeVFSDrive *drive);
gulong              gnome_vfs_drive_get_id              (GnomeVFSDrive *drive);
GnomeVFSVolume *    gnome_vfs_drive_get_mounted_volume  (GnomeVFSDrive *drive);
GList *             gnome_vfs_drive_get_mounted_volumes (GnomeVFSDrive *drive);
void                gnome_vfs_drive_volume_list_free    (GList *volumes);
GType               gnome_vfs_drive_get_type            (void);
gboolean            gnome_vfs_drive_is_connected        (GnomeVFSDrive *drive);
gboolean            gnome_vfs_drive_is_mounted          (GnomeVFSDrive *drive);
gboolean            gnome_vfs_drive_is_user_visible     (GnomeVFSDrive *drive);
void                gnome_vfs_drive_mount               (GnomeVFSDrive *drive,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);
GnomeVFSDrive *     gnome_vfs_drive_ref                 (GnomeVFSDrive *drive);
void                gnome_vfs_drive_unmount             (GnomeVFSDrive *drive,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);
void                gnome_vfs_drive_unref               (GnomeVFSDrive *drive);

Object Hierarchy

  GObject
   +----GnomeVFSDrive

Signals

  "volume-mounted"                                 : Run First
  "volume-pre-unmount"                             : Run First
  "volume-unmounted"                               : Run First

Description

Details

enum GnomeVFSDeviceType

typedef enum {
	GNOME_VFS_DEVICE_TYPE_UNKNOWN,
	GNOME_VFS_DEVICE_TYPE_AUDIO_CD,
	GNOME_VFS_DEVICE_TYPE_VIDEO_DVD,
	GNOME_VFS_DEVICE_TYPE_HARDDRIVE, 
	GNOME_VFS_DEVICE_TYPE_CDROM,
	GNOME_VFS_DEVICE_TYPE_FLOPPY,
	GNOME_VFS_DEVICE_TYPE_ZIP,
	GNOME_VFS_DEVICE_TYPE_JAZ,
	GNOME_VFS_DEVICE_TYPE_NFS,
	GNOME_VFS_DEVICE_TYPE_AUTOFS,
	GNOME_VFS_DEVICE_TYPE_CAMERA,
	GNOME_VFS_DEVICE_TYPE_MEMORY_STICK,
	GNOME_VFS_DEVICE_TYPE_SMB,
	GNOME_VFS_DEVICE_TYPE_APPLE,
	GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER,
	GNOME_VFS_DEVICE_TYPE_WINDOWS, 
	GNOME_VFS_DEVICE_TYPE_LOOPBACK, 
	GNOME_VFS_DEVICE_TYPE_NETWORK 
} GnomeVFSDeviceType;

Identifies the device type of a GnomeVFSVolume or a GnomeVFSDrive.

GNOME_VFS_DEVICE_TYPE_UNKNOWN

the type of this GnomeVFSVolume or GnomeVFSDrive is not known.

GNOME_VFS_DEVICE_TYPE_AUDIO_CD

only used for GnomeVFSVolume objects. Denotes that this volume is an audio CD.

GNOME_VFS_DEVICE_TYPE_VIDEO_DVD

only used for GnomeVFSVolume objects. Denotes that this volume is a video DVD.

GNOME_VFS_DEVICE_TYPE_HARDDRIVE

this is a mount point refering to a harddisk partition that neither has a Microsoft file system (FAT, VFAT, NTFS) nor an Apple file system (HFS, HFS+).

GNOME_VFS_DEVICE_TYPE_CDROM

this may either be a mount point or a HAL drive/volume. Either way, it refers to a CD-ROM device respectively volume.

GNOME_VFS_DEVICE_TYPE_FLOPPY

the volume or drive referenced by this GnomeVFSVolume or GnomeVFSDrive is a floppy disc respectively a floppy drive.

GNOME_VFS_DEVICE_TYPE_ZIP

the volume or drive referenced by this GnomeVFSVolume or GnomeVFSDrive is a ZIP disc respectively a ZIP drive.

GNOME_VFS_DEVICE_TYPE_JAZ

the volume or drive referenced by this GnomeVFSVolume or GnomeVFSDrive is a JAZ disc respectively a JAZ drive.

GNOME_VFS_DEVICE_TYPE_NFS

this is a mount point having an NFS file system.

GNOME_VFS_DEVICE_TYPE_AUTOFS

this is a mount point having an AutoFS file system.

GNOME_VFS_DEVICE_TYPE_CAMERA

only used for GnomeVFSVolume objects. Denotes that this volume is a camera.

GNOME_VFS_DEVICE_TYPE_MEMORY_STICK

only used for GnomeVFSVolume objects. Denotes that this volume is a memory stick.

GNOME_VFS_DEVICE_TYPE_SMB

this is a mount point having a Samba file system.

GNOME_VFS_DEVICE_TYPE_APPLE

this is a mount point refering to a harddisk partition, that has an Apple file system (HFS, HFS+).

GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER

only used for GnomeVFSVolume objects. Denotes that this volume is a music player.

GNOME_VFS_DEVICE_TYPE_WINDOWS

this is a mount point refering to a harddisk partition, that has a Microsoft file system (FAT, VFAT, NTFS).

GNOME_VFS_DEVICE_TYPE_LOOPBACK

this is a mount point refering to a loopback device.

GNOME_VFS_DEVICE_TYPE_NETWORK

only used for GnomeVFSVolume objects, denoting that this volume refers to a network mount that is not managed by the kernel VFS but exclusively known to GnomeVFS.

GnomeVFSDrive

typedef struct _GnomeVFSDrive GnomeVFSDrive;


struct GnomeVFSDriveClass

struct GnomeVFSDriveClass {
	GObjectClass parent_class;

	void (* volume_mounted)	  	(GnomeVFSDrive *drive,
				   	 GnomeVFSVolume *volume);
	void (* volume_pre_unmount) (GnomeVFSDrive *drive,
				   	 GnomeVFSVolume *volume);
	void (* volume_unmounted) (GnomeVFSDrive *drive,
				   	 GnomeVFSVolume *volume);
};


GNOME_IS_VFS_DRIVE()

#define GNOME_IS_VFS_DRIVE(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_DRIVE))

o :


GNOME_IS_VFS_DRIVE_CLASS()

#define GNOME_IS_VFS_DRIVE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_DRIVE))

k :


GNOME_VFS_TYPE_DRIVE

#define GNOME_VFS_TYPE_DRIVE        (gnome_vfs_drive_get_type ())


GNOME_VFS_DRIVE()

#define GNOME_VFS_DRIVE(o)          (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_DRIVE, GnomeVFSDrive))

o :


GNOME_VFS_DRIVE_CLASS()

#define GNOME_VFS_DRIVE_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_DRIVE, GnomeVFSDriveClass))

k :


gnome_vfs_drive_compare ()

gint                gnome_vfs_drive_compare             (GnomeVFSDrive *a,
                                                         GnomeVFSDrive *b);

Compares two GnomeVFSDrive objects a and b. Two GnomeVFSDrive objects referring to different drives are guaranteed to not return 0 when comparing them, if they refer to the same drive 0 is returned.

The resulting gint should be used to determine the order in which a and b are displayed in graphical user interfces.

The comparison algorithm first of all peeks the device type of a and b, they will be sorted in the following order:

  • Magnetic and opto-magnetic drives (ZIP, floppy)

  • Optical drives (CD, DVD)

  • External drives (USB sticks, music players)

  • Mounted hard disks<

  • Other drives<

Afterwards, the display name of a and b is compared using a locale-sensitive sorting algorithm, which involves g_utf8_collate_key().

If two drives have the same display name, their unique ID is compared which can be queried using gnome_vfs_drive_get_id().

a :

a GnomeVFSDrive.

b :

a GnomeVFSDrive.

Returns :

0 if the drives refer to the same GnomeVFSDrive, a negative value if a should be displayed before b, or a positive value if a should be displayed after b.

Since 2.6


gnome_vfs_drive_eject ()

void                gnome_vfs_drive_eject               (GnomeVFSDrive *drive,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);

If drive has associated GnomeVFSVolume objects, all of them will be unmounted by calling gnome_vfs_volume_unmount() for each volume in gnome_vfs_drive_get_mounted_volumes(), except for the last one, for which gnome_vfs_volume_eject() is called to ensure that the drive's media is ejected.

If drive however has no associated GnomeVFSVolume objects, it simply calls an unmount helper on the drive.

drive :

the GnomeVFSDrive that should be ejcted.

callback :

the GnomeVFSVolumeOpCallback that should be invoked after ejecting drive.

user_data :

the user data to pass to callback.

Since 2.6


gnome_vfs_drive_get_activation_uri ()

char *              gnome_vfs_drive_get_activation_uri  (GnomeVFSDrive *drive);

Returns the activation URI of a GnomeVFSDrive.

The returned URI usually refers to a valid location. You can check the validity of the location by calling gnome_vfs_uri_new() with the URI, and checking whether the return value is not NULL.

drive :

a GnomeVFSDrive.

Returns :

a newly allocated string for the activation uri of the drive.

Since 2.6


gnome_vfs_drive_get_device_path ()

char *              gnome_vfs_drive_get_device_path     (GnomeVFSDrive *drive);

Returns the device path of a GnomeVFSDrive.

For HAL drives, this returns the value of the drives's "block.device" key. For UNIX mounts, it returns the mntent's mnt_fsname entry.

Otherwise, it returns NULL.

drive :

a GnomeVFSDrive.

Returns :

a newly allocated string for the device path of the drive.

Since 2.6


gnome_vfs_drive_get_device_type ()

GnomeVFSDeviceType  gnome_vfs_drive_get_device_type     (GnomeVFSDrive *drive);

drive :

a GnomeVFSDrive.

Returns :

device type, a GnomeVFSDeviceType value.

Since 2.6


gnome_vfs_drive_get_display_name ()

char *              gnome_vfs_drive_get_display_name    (GnomeVFSDrive *drive);

drive :

a GnomeVFSDrive.

Returns :

a newly allocated string for the display name of the drive.

Since 2.6


gnome_vfs_drive_get_hal_udi ()

char *              gnome_vfs_drive_get_hal_udi         (GnomeVFSDrive *drive);

Returns the HAL UDI of a GnomeVFSDrive.

For HAL drives, this matches the value of the "info.udi" key, for other drives it is NULL.

drive :

a GnomeVFSDrive.

Returns :

a newly allocated string for the unique device id of the drive, or NULL.

Since 2.6


gnome_vfs_drive_get_icon ()

char *              gnome_vfs_drive_get_icon            (GnomeVFSDrive *drive);

drive :

a GnomeVFSDrive.

Returns :

a newly allocated string for the icon filename of the drive.

Since 2.6


gnome_vfs_drive_get_id ()

gulong              gnome_vfs_drive_get_id              (GnomeVFSDrive *drive);

drive :

a GnomeVFSDrive.

Returns :

drive id, a gulong value.

Since 2.6


gnome_vfs_drive_get_mounted_volume ()

GnomeVFSVolume *    gnome_vfs_drive_get_mounted_volume  (GnomeVFSDrive *drive);

Warning

gnome_vfs_drive_get_mounted_volume is deprecated and should not be used in newly-written code. Use gnome_vfs_drive_get_mounted_volumes() instead.

Returns the first mounted volume for the drive.

drive :

a GnomeVFSDrive.

Returns :

a GnomeVFSVolume.

Since 2.6


gnome_vfs_drive_get_mounted_volumes ()

GList *             gnome_vfs_drive_get_mounted_volumes (GnomeVFSDrive *drive);

drive :

a GnomeVFSDrive.

Returns :

list of mounted volumes for the drive.

Since 2.8


gnome_vfs_drive_volume_list_free ()

void                gnome_vfs_drive_volume_list_free    (GList *volumes);

Frees the list volumes, if it is not NULL.

volumes :

list of GnomeVFSVolumes to be freed, or NULL.

Since 2.8


gnome_vfs_drive_get_type ()

GType               gnome_vfs_drive_get_type            (void);

Returns :


gnome_vfs_drive_is_connected ()

gboolean            gnome_vfs_drive_is_connected        (GnomeVFSDrive *drive);

drive :

a GnomeVFSDrive.

Returns :

TRUE if the drive is connected, FALSE otherwise.

Since 2.6


gnome_vfs_drive_is_mounted ()

gboolean            gnome_vfs_drive_is_mounted          (GnomeVFSDrive *drive);

drive :

a GnomeVFSDrive.

Returns :

TRUE if the drive is mounted, FALSE otherwise.

Since 2.6


gnome_vfs_drive_is_user_visible ()

gboolean            gnome_vfs_drive_is_user_visible     (GnomeVFSDrive *drive);

Returns whether the drive is visible to the user. This should be used by applications to determine whether it is included in user interfaces listing available drives.

drive :

a GnomeVFSDrive.

Returns :

TRUE if the drive is visible to the user, FALSE otherwise.

Since 2.6


gnome_vfs_drive_mount ()

void                gnome_vfs_drive_mount               (GnomeVFSDrive *drive,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);

drive :

the GnomeVFSDrive that should be mounted.

callback :

the GnomeVFSVolumeOpCallback that should be invoked after mounting drive.

user_data :

the user data to pass to callback.

Since 2.6


gnome_vfs_drive_ref ()

GnomeVFSDrive *     gnome_vfs_drive_ref                 (GnomeVFSDrive *drive);

Increases the refcount of the drive by 1, if it is not NULL.

drive :

a GnomeVFSDrive, or NULL.

Returns :

the drive with its refcount increased by one, or NULL if drive is NULL.

Since 2.6


gnome_vfs_drive_unmount ()

void                gnome_vfs_drive_unmount             (GnomeVFSDrive *drive,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);

gnome_vfs_drive_unmount() invokes gnome_vfs_drive_eject(), if the drive signals that it should be ejected when it is unmounted. This may be true for CD-ROMs, USB sticks and other devices, depending on the backend providing the GnomeVFSDrive drive.

If the drive does not signal that it should be ejected when it is unmounted, gnome_vfs_drive_unmount() calls gnome_vfs_volume_unmount() for each of the drive's mounted GnomeVFSVolumes, which can be queried using gnome_vfs_drive_get_mounted_volumes().

drive :

the GnomeVFSDrive that should be unmounted.

callback :

the GnomeVFSVolumeOpCallback that should be invoked after unmounting drive.

user_data :

the user data to pass to callback.

Since 2.6


gnome_vfs_drive_unref ()

void                gnome_vfs_drive_unref               (GnomeVFSDrive *drive);

Decreases the refcount of the drive by 1, if it is not NULL.

drive :

a GnomeVFSDrive, or NULL.

Since 2.6

Signal Details

The "volume-mounted" signal

void                user_function                      (GnomeVFSDrive  *drive,
                                                        GnomeVFSVolume *volume,
                                                        gpointer        user_data)      : Run First

This signal is emitted after the GnomeVFSVolume volume has been mounted.

When the volume is mounted, it is added to the drive's list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes().

It is also added to the list of the GnomeVFSVolumeMonitor's list of mounted volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes().

drive :

the GnomeVFSDrive which received the signal.

volume :

the GnomeVFSVolume that has been mounted.

user_data :

user data set when the signal handler was connected.

The "volume-pre-unmount" signal

void                user_function                      (GnomeVFSDrive  *drive,
                                                        GnomeVFSVolume *volume,
                                                        gpointer        user_data)      : Run First

This signal is emitted when the GnomeVFSVolume volume, which has been present in the GnomeVFSDrive drive, is about to be unmounted.

When the volume is unmounted, it is removed from the drive's list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes().

It is also removed from the GnomeVFSVolumeMonitor's list of mounted volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes().

When a client application receives this signal, it must free all resources associated with the volume, for instance cancel all pending file operations on the volume, and cancel all pending file monitors using gnome_vfs_monitor_cancel().

drive :

the GnomeVFSDrive which received the signal.

volume :

the GnomeVFSVolume that is about to be unmounted.

user_data :

user data set when the signal handler was connected.

The "volume-unmounted" signal

void                user_function                      (GnomeVFSDrive  *drive,
                                                        GnomeVFSVolume *volume,
                                                        gpointer        user_data)      : Run First

This signal is emitted after the GnomeVFSVolume volume, which had been present in the GnomeVFSDrive drive, has been unmounted.

When the volume is unmounted, it is removed from the drive's list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes().

It is also removed from the GnomeVFSVolumeMonitor's list of mounted volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes().

drive :

the GnomeVFSDrive which received the signal.

volume :

the GnomeVFSVolume that has been unmounted.

user_data :

user data set when the signal handler was connected.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-file-size.html0000644000175000001440000001063511450333533021007 00000000000000 GnomeVFSFileSize

GnomeVFSFileSize

GnomeVFSFileSize — Data types used for specifying file sizes and seek positions

Description

Details

GNOME_VFS_OFFSET_IS_LONG_LONG

#define GNOME_VFS_OFFSET_IS_LONG_LONG


GNOME_VFS_SIZE_FORMAT_STR

#define GNOME_VFS_SIZE_FORMAT_STR G_GUINT64_FORMAT


GNOME_VFS_OFFSET_FORMAT_STR

#define GNOME_VFS_OFFSET_FORMAT_STR G_GINT64_FORMAT


GnomeVFSFileSize

G_GNUC_EXTENSION typedef guint64 GnomeVFSFileSize;


GnomeVFSFileOffset

G_GNUC_EXTENSION typedef gint64 GnomeVFSFileOffset;

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-file-trunc-ops.html0000644000175000001440000002255211450333533021770 00000000000000 Truncating Files

Truncating Files

Truncating Files — Force files to a particular length

Description

Truncation of files is used to force them to a particular length. If a file longer than specified, the trailing bytes are discarded, if it is shorter than specified it is padded with zeros.

Details

gnome_vfs_truncate ()

GnomeVFSResult      gnome_vfs_truncate                  (const gchar *text_uri,
                                                         GnomeVFSFileSize length);

Truncate the file at text_uri to length bytes.

text_uri :

string representing the file to be truncated.

length :

length of the new file at text_uri.

Returns :

an integer representing the result of the operation.

gnome_vfs_truncate_uri ()

GnomeVFSResult      gnome_vfs_truncate_uri              (GnomeVFSURI *uri,
                                                         GnomeVFSFileSize length);

Truncate the file at uri to be only length bytes. Data past length bytes will be discarded.

uri :

uri of the file to be truncated.

length :

length of the new file at uri.

Returns :

an integer representing the result of the operation.

gnome_vfs_truncate_handle ()

GnomeVFSResult      gnome_vfs_truncate_handle           (GnomeVFSHandle *handle,
                                                         GnomeVFSFileSize length);

Truncate the file pointed to by handle to be only length bytes. Data past length bytes will be discarded.

handle :

a handle to the file to be truncated.

length :

length of the new file the handle is open to.

Returns :

an integer representing the result of the operation.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-xfer.html0000644000175000001440000020013211450333533020055 00000000000000 File Transfers

File Transfers

File Transfers — Conveniently copy/move/delete files en masse

Synopsis

enum                GnomeVFSXferOptions;
enum                GnomeVFSXferProgressStatus;
enum                GnomeVFSXferOverwriteMode;
enum                GnomeVFSXferOverwriteAction;
enum                GnomeVFSXferErrorMode;
enum                GnomeVFSXferErrorAction;
enum                GnomeVFSXferPhase;
                    GnomeVFSXferProgressInfo;
gint                (*GnomeVFSXferProgressCallback)     (GnomeVFSXferProgressInfo *info,
                                                         gpointer user_data);
GnomeVFSResult      gnome_vfs_xfer_uri_list             (const GList *source_uri_list,
                                                         const GList *target_uri_list,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOverwriteMode overwrite_mode,
                                                         GnomeVFSXferProgressCallback progress_callback,
                                                         gpointer data);
GnomeVFSResult      gnome_vfs_xfer_uri                  (const GnomeVFSURI *source_uri,
                                                         const GnomeVFSURI *target_uri,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOverwriteMode overwrite_mode,
                                                         GnomeVFSXferProgressCallback progress_callback,
                                                         gpointer data);
GnomeVFSResult      gnome_vfs_xfer_delete_list          (const GList *source_uri_list,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferProgressCallback progress_callback,
                                                         gpointer data);

Description

Details

enum GnomeVFSXferOptions

typedef enum {
	GNOME_VFS_XFER_DEFAULT = 0,
	GNOME_VFS_XFER_UNUSED_1 = 1 << 0,
	GNOME_VFS_XFER_FOLLOW_LINKS = 1 << 1,
	GNOME_VFS_XFER_UNUSED_2 = 1 << 2,
	GNOME_VFS_XFER_RECURSIVE = 1 << 3,
	GNOME_VFS_XFER_SAMEFS = 1 << 4,
	GNOME_VFS_XFER_DELETE_ITEMS = 1 << 5,
	GNOME_VFS_XFER_EMPTY_DIRECTORIES = 1 << 6,
	GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY = 1 << 7,
	GNOME_VFS_XFER_REMOVESOURCE = 1 << 8,
	GNOME_VFS_XFER_USE_UNIQUE_NAMES = 1 << 9,
	GNOME_VFS_XFER_LINK_ITEMS = 1 << 10,
	GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE = 1 << 11,
	GNOME_VFS_XFER_TARGET_DEFAULT_PERMS = 1 << 12
} GnomeVFSXferOptions;

These options control the way gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), gnome_vfs_xfer_delete_list() and gnome_vfs_async_xfer() work.

At a first glance the GnomeVFSXferOptions semantics are not very intuitive.

There are two types of GnomeVFSXferOptions: Those that define an operation, i.e. describe what to do, and those that influence how to execute the operation.

Table 1. Operation Selection

GnomeVFSXferOptions entry Operation UNIX equivalent Comments
GNOME_VFS_XFER_DEFAULT Copy cp
GNOME_VFS_XFER_REMOVESOURCE Move mv
GNOME_VFS_XFER_LINK_ITEMS Link ln -s
GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY Make Unique Directory mkdir implies GNOME_VFS_XFER_USE_UNIQUE_NAMES
GNOME_VFS_XFER_DELETE_ITEMS Remove rm -r  
GNOME_VFS_XFER_EMPTY_DIRECTORIES Remove Directory Contents foreach file: ( cd file && rm -rf * ) used to empty trash


Note

Because GNOME_VFS_XFER_DEFAULT maps to 0, it will always be present. Thus, not explicitly specifying any operation at all, or just specifying GNOME_VFS_XFER_DEFAULT will both execute a copy.

If an operation other than GNOME_VFS_XFER_DEFAULT is specified, it will override the copy operation, but you may only specify one of the other operations at a time.

This unintuitive operation selection unfortunately poses an API weakness and an obstacle in client development, and will be modified in a later revision of this API.

GNOME_VFS_XFER_DEFAULT

Default behavior, which is to do a straight one to one copy.

GNOME_VFS_XFER_UNUSED_1

Unused.

GNOME_VFS_XFER_FOLLOW_LINKS

Follow symbolic links when copying or moving, i.e. the target of symbolic links are copied rather than the symbolic links themselves. Note that this just refers to top-level items. If you also want to follow symbolic links inside directories you operate on, you also have to specify GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE.

GNOME_VFS_XFER_UNUSED_2

Unused.

GNOME_VFS_XFER_RECURSIVE

Recursively copy source directories to the target. Equivalent to the cp -r option in GNU cp.

GNOME_VFS_XFER_SAMEFS

When copying recursively, this only picks up items on the same file system the same filesystem as their parent directory.

GNOME_VFS_XFER_DELETE_ITEMS

This is equivalent to an rmdir() for source directories, and an unlink() operation for all source files. Requires NULL target URIs.

GNOME_VFS_XFER_EMPTY_DIRECTORIES

Remove the whole contents of the passed-in source directories. Requires NULL target URIs.

GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY

This will create a directory if it doesn't exist in the destination area (i.e. mkdir()).

GNOME_VFS_XFER_REMOVESOURCE

This makes a copy operation equivalent to a mv, i.e. the files will be moved rather than copied. If applicable, this will use rename(), otherwise (i.e. across file systems), it will fall back to a copy operation followed by a source file deletion.

GNOME_VFS_XFER_USE_UNIQUE_NAMES

When this option is present, and a name collisions on the target occurs, the progress callback will be asked for a new name, until the newly provided name doesn't conflict or the request callback transfer cancellation.

GNOME_VFS_XFER_LINK_ITEMS

Executes a symlink operation for each of the source/target URI pairs, i.e. similar to GNU ln -s source target. NB: The symlink target has to be specified as source URI, and the symlink itself as target URI.

GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE

This means that when doing a copy operation, symbolic links in subdirectories are dereferenced. This is typically used together with GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE.

GNOME_VFS_XFER_TARGET_DEFAULT_PERMS

This means that the target file will not have the same permissions as the source file, but will instead have the default permissions of the destination location. This is useful when copying from read-only locations (CDs).

enum GnomeVFSXferProgressStatus

typedef enum {
	GNOME_VFS_XFER_PROGRESS_STATUS_OK = 0,
	GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR = 1,
	GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE = 2,
	GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE = 3
} GnomeVFSXferProgressStatus;

The difference between GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE and GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE is that they will be issued at different occassions, and that the return value will be interpreted differently. For details, see GnomeVFSXferProgressCallback.

GNOME_VFS_XFER_PROGRESS_STATUS_OK

The file transfer is progressing normally.

GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR

A VFS error was detected.

GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE

The current target file specified by the GnomeVFSXferProgressInfo's target_name field already exists.

GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE

The current target file specified by the GnomeVFSXferProgressInfo's target_name field already exists, and the progress callback is asked to supply a new unique name.

enum GnomeVFSXferOverwriteMode

typedef enum {
	GNOME_VFS_XFER_OVERWRITE_MODE_ABORT = 0,
	GNOME_VFS_XFER_OVERWRITE_MODE_QUERY = 1,
	GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE = 2,
	GNOME_VFS_XFER_OVERWRITE_MODE_SKIP = 3
} GnomeVFSXferOverwriteMode;

This is passed to gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), gnome_vfs_xfer_delete_list() and gnome_vfs_async_xfer() and specifies what action should be taken when a target file already exists.

GNOME_VFS_XFER_OVERWRITE_MODE_ABORT

Abort the transfer when a target file already exists, returning the error GNOME_VFS_ERROR_FILEEXISTS.

GNOME_VFS_XFER_OVERWRITE_MODE_QUERY

Query the progress callback with the GnomeVFSXferProgressInfo's status field set to GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR when a target file already exists.

GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE

Replace existing target files silently. Don't worry be happy.

GNOME_VFS_XFER_OVERWRITE_MODE_SKIP

Skip source files when its target already exists.

enum GnomeVFSXferOverwriteAction

typedef enum {
	GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT = 0,
	GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE = 1,
	GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL = 2,
	GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP = 3,
	GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL = 4
} GnomeVFSXferOverwriteAction;

This defines the actions to perform before a file is being overwritten (i.e., these are the answers that can be given to a replace query).

GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT

abort the transfer

GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE

replace the existing file

GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL

replace the existing file, and all future files without prompting the callback.

GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP

don't copy over the existing file

GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL

don't copy over the existing file, and all future files without prompting the callback.

enum GnomeVFSXferErrorMode

typedef enum {
	GNOME_VFS_XFER_ERROR_MODE_ABORT = 0,
	GNOME_VFS_XFER_ERROR_MODE_QUERY = 1
} GnomeVFSXferErrorMode;

This is passed to gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), gnome_vfs_xfer_delete_list() and gnome_vfs_async_xfer() and specifies what action should be taken when transfer errors are detected.

The progress callback is either a GnomeVFSXferProgressCallback for synchronous Xfer operations, or a GnomeVFSAsyncXferProgressCallback for asynchronous operations.

GNOME_VFS_XFER_ERROR_MODE_ABORT

abort the transfer when an error occurs

GNOME_VFS_XFER_ERROR_MODE_QUERY

query the progress callback with the GnomeVFSXferProgressInfo's status field set to GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR.

enum GnomeVFSXferErrorAction

typedef enum {
	GNOME_VFS_XFER_ERROR_ACTION_ABORT = 0,
	GNOME_VFS_XFER_ERROR_ACTION_RETRY = 1,
	GNOME_VFS_XFER_ERROR_ACTION_SKIP = 2
} GnomeVFSXferErrorAction;

This defines the possible actions to be performed after a VFS error has occurred, i.e. when a GnomeVFS file operation issued during the transfer returned a result that is not equal to GNOME_VFS_OK.

It is returned by the progress callback which is either a GnomeVFSXferProgressCallback for synchronous Xfer operations, or a GnomeVFSAsyncXferProgressCallback for asynchronous operations.

GNOME_VFS_XFER_ERROR_ACTION_ABORT

interrupt Xfer and return GNOME_VFS_ERROR_INTERRUPTED.

GNOME_VFS_XFER_ERROR_ACTION_RETRY

retry the failed operation.

GNOME_VFS_XFER_ERROR_ACTION_SKIP

skip the failed operation, and continue Xfer normally.

enum GnomeVFSXferPhase

typedef enum {
	GNOME_VFS_XFER_PHASE_INITIAL,
	GNOME_VFS_XFER_CHECKING_DESTINATION,
	GNOME_VFS_XFER_PHASE_COLLECTING,
	GNOME_VFS_XFER_PHASE_READYTOGO,
	GNOME_VFS_XFER_PHASE_OPENSOURCE,
	GNOME_VFS_XFER_PHASE_OPENTARGET,
	GNOME_VFS_XFER_PHASE_COPYING,
	GNOME_VFS_XFER_PHASE_MOVING,
	GNOME_VFS_XFER_PHASE_READSOURCE,
	GNOME_VFS_XFER_PHASE_WRITETARGET,
	GNOME_VFS_XFER_PHASE_CLOSESOURCE,
	GNOME_VFS_XFER_PHASE_CLOSETARGET,
	GNOME_VFS_XFER_PHASE_DELETESOURCE,
	GNOME_VFS_XFER_PHASE_SETATTRIBUTES,
	GNOME_VFS_XFER_PHASE_FILECOMPLETED,
	GNOME_VFS_XFER_PHASE_CLEANUP,
	GNOME_VFS_XFER_PHASE_COMPLETED,
	GNOME_VFS_XFER_NUM_PHASES
} GnomeVFSXferPhase;

Specifies the current phase of an Xfer operation that was initiated using gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), gnome_vfs_xfer_delete_list() or gnome_vfs_async_xfer().

Whenever the Xfer phase is in a phase that is highlighted with a (*), the GnomeVFSXferProgressCallback respectively GnomeVFSAsyncXferProgressCallback is never invoked with a GnomeVFSXferProgressStatus other than GNOME_VFS_XFER_PROGRESS_STATUS_OK.

GNOME_VFS_XFER_PHASE_INITIAL

initial phase.

GNOME_VFS_XFER_CHECKING_DESTINATION

destination is checked for being able to handle copy/move.

GNOME_VFS_XFER_PHASE_COLLECTING

source file list is collected.

GNOME_VFS_XFER_PHASE_READYTOGO

source file list has been collected (*).

GNOME_VFS_XFER_PHASE_OPENSOURCE

source file is opened for reading.

GNOME_VFS_XFER_PHASE_OPENTARGET

target file, directory or symlink is created, or opened for copying.

GNOME_VFS_XFER_PHASE_COPYING

data is copied from source file to target file (*).

GNOME_VFS_XFER_PHASE_MOVING

source file is moved to target (M).

GNOME_VFS_XFER_PHASE_READSOURCE

data is read from a source file, when copying.

GNOME_VFS_XFER_PHASE_WRITETARGET

data is written to a target file, when copying.

GNOME_VFS_XFER_PHASE_CLOSESOURCE

source file is closed, when copying

GNOME_VFS_XFER_PHASE_CLOSETARGET

target file is closed, when copying.

GNOME_VFS_XFER_PHASE_DELETESOURCE

source file is deleted.

GNOME_VFS_XFER_PHASE_SETATTRIBUTES

target file attributes are set.

GNOME_VFS_XFER_PHASE_FILECOMPLETED

one file was completed, ready for next file.

GNOME_VFS_XFER_PHASE_CLEANUP

cleanup after moving (i.e. source files deletion).

GNOME_VFS_XFER_PHASE_COMPLETED

operation finished (*).

GNOME_VFS_XFER_NUM_PHASES


GnomeVFSXferProgressInfo

typedef struct {
	GnomeVFSXferProgressStatus status;

	GnomeVFSResult vfs_status;

	GnomeVFSXferPhase phase;

	/* Source URI. FIXME bugzilla.eazel.com 1206: change name? */
	gchar *source_name;

	/* Destination URI. FIXME bugzilla.eazel.com 1206: change name? */
	gchar *target_name;

	gulong file_index;

	gulong files_total;

	GnomeVFSFileSize bytes_total;

	GnomeVFSFileSize file_size;

	GnomeVFSFileSize bytes_copied;

	GnomeVFSFileSize total_bytes_copied;

	gchar *duplicate_name;

	int duplicate_count;

	gboolean top_level_item;

	/* Reserved for future expansions to GnomeVFSXferProgressInfo
	 * without having to break ABI compatibility */
} GnomeVFSXferProgressInfo;

Provides progress information for the transfer operation. This is especially useful for interactive programs.

GnomeVFSXferProgressStatus status;

A GnomeVFSXferProgressStatus describing the current status.

GnomeVFSResult vfs_status;

A GnomeVFSResult describing the current VFS status.

GnomeVFSXferPhase phase;

A GnomeVFSXferPhase describing the current transfer phase.

gchar *source_name;

The Currently processed source URI.

gchar *target_name;

The Currently processed target URI.

gulong file_index;

The index of the currently processed file.

gulong files_total;

The total number of processed files.

GnomeVFSFileSize bytes_total;

The total size of all files to transfer in bytes.

GnomeVFSFileSize file_size;

The size of the currently processed file in bytes.

GnomeVFSFileSize bytes_copied;

The number of bytes that has been transferred from the current file.

GnomeVFSFileSize total_bytes_copied;

The total number of bytes that has been transferred.

gchar *duplicate_name;

The name specifying a duplicate filename. It acts as pointer to both input and output data. It is only valid input data if status is GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE, in which case duplicate_count and duplicate_name should be used by the GnomeVFSXferProgressCallback to pick a new unique target name. If the callback wants to retry with a new unique name it is supposed to free the old duplicate_name set it to a valid string describing the new file name.

int duplicate_count;

The number of conflicts that ocurred when the current duplicate_name was set.

gboolean top_level_item;

This flag signals that the currently processed file is a top level item. If it is TRUE, one of the files passed to gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), gnome_vfs_xfer_delete_list() or gnome_vfs_async_xfer() is currently processed. If it is FALSE, a file or directory that is inside a directory specified by the passed in source list is currently processed.

GnomeVFSXferProgressCallback ()

gint                (*GnomeVFSXferProgressCallback)     (GnomeVFSXferProgressInfo *info,
                                                         gpointer user_data);

This is the prototype for functions called during a transfer operation to report progress.

The interpretation of the return value of the callback depends on the GnomeVFSXferProgressStaus status field of GnomeVFSXferProgressInfo, some status/return value combinations require modification of particular info fields.

Table 2. Status/Return Value Overview

GnomeVFSXferProgressStatus status Status Only If Return Value Interpretation
GNOME_VFS_XFER_PROGRESS_STATUS_OK OK   0: abort, otherwise continue
GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR VFS Error Ocurred GnomeVFSXferErrorMode is GNOME_VFS_XFER_ERROR_MODE_QUERY GnomeVFSXferErrorAction
GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE Conflict Ocurred, Overwrite? GnomeVFSXferOverwriteMode is GNOME_VFS_XFER_OVERWRITE_MODE_QUERY, GnomeVFSXferOptions does not have GNOME_VFS_XFER_USE_UNIQUE_NAMES. GnomeVFSXferOverwriteAction
GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE Conflict Ocurred, New Target Name? GnomeVFSXferOptions does have GNOME_VFS_XFER_USE_UNIQUE_NAMES. 0: abort, otherwise retry with new duplicate_name in info (free the old one!).


Note

Each GnomeVFSXferProgressStatus provides one value signalling abortion that maps to 0. Therefore, returning 0 will always abort the Xfer. On abortion, if the info's vfs_status is GNOME_VFS_OK, the Xfer operation result will be set to GNOME_VFS_ERROR_INTERRUPTED, otherwise the operation result will be set to vfs_status to distinguish completely user-driven aborts from those involving a problem during the Xfer.

info :

The GnomeVFSXferProgressInfo associated with this transfer operation.

user_data :

The user data passed to gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), gnome_vfs_xfer_delete_list() or gnome_vfs_async_xfer().

Returns :

Whether the process should be aborted, or whether a special action should be taken.

gnome_vfs_xfer_uri_list ()

GnomeVFSResult      gnome_vfs_xfer_uri_list             (const GList *source_uri_list,
                                                         const GList *target_uri_list,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOverwriteMode overwrite_mode,
                                                         GnomeVFSXferProgressCallback progress_callback,
                                                         gpointer data);

This function will transfer multiple files to multiple targets, given source URIs and destination URIs. If you want to do asynchronous file transfers, you have to use gnome_vfs_async_xfer() instead.

source_uri_list :

A GList of source GnomeVFSURIs.

target_uri_list :

A GList of target GnomeVFSURIs, each corresponding to one URI in source_uri_list.

xfer_options :

GnomeVFSXferOptions defining the desired operation and parameters.

error_mode :

A GnomeVFSErrorMode specifying how to proceed if a VFS error occurs.

overwrite_mode :

A GnomeVFSOverwriteMode specifying how to proceed if a file is being overwritten.

progress_callback :

This GnomeVFSProgressCallback is used to inform the user about the progress of a transfer, and to request further input from him if a problem occurs.

data :

Data to be passed back in callbacks from the xfer engine.

Returns :

If all goes well it returns GNOME_VFS_OK. Check GnomeVFSResult for other values.

gnome_vfs_xfer_uri ()

GnomeVFSResult      gnome_vfs_xfer_uri                  (const GnomeVFSURI *source_uri,
                                                         const GnomeVFSURI *target_uri,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOverwriteMode overwrite_mode,
                                                         GnomeVFSXferProgressCallback progress_callback,
                                                         gpointer data);

This function works exactly like gnome_vfs_xfer_uri_list(), and is a convenience wrapper for only acting on one source/target URI pair.

source_uri :

A source GnomeVFSURI.

target_uri :

A target GnomeVFSURI.

xfer_options :

GnomeVFSXferOptions defining the desired operation and parameters.

error_mode :

A GnomeVFSErrorMode specifying how to proceed if a VFS error occurs.

overwrite_mode :

A GnomeVFSOverwriteMode specifying how to proceed if a file is being overwritten.

progress_callback :

This GnomeVFSProgressCallback is used to inform the user about the progress of a transfer, and to request further input from him if a problem occurs.

data :

Data to be passed back in callbacks from the xfer engine.

Returns :

an integer representing the result of the operation.

gnome_vfs_xfer_delete_list ()

GnomeVFSResult      gnome_vfs_xfer_delete_list          (const GList *source_uri_list,
                                                         GnomeVFSXferErrorMode error_mode,
                                                         GnomeVFSXferOptions xfer_options,
                                                         GnomeVFSXferProgressCallback progress_callback,
                                                         gpointer data);

Unlinks items in the source_uri_list from their filesystems.

source_uri_list :

This is a list containing uris.

error_mode :

Decide how you want to deal with interruptions.

xfer_options :

Set whatever transfer options you need.

progress_callback :

Callback to check on progress of transfer.

data :

Data to be passed back in callbacks from the xfer engine.

Returns :

GNOME_VFS_OK if successful, or the appropriate error code otherwise.
gnome-vfs-2.24.4/doc/html/volumes.html0000644000175000001440000000442411450333533014516 00000000000000 Volumes and Drives Handling

Volumes and Drives Handling

GnomeVFSVolume — Abstraction for a mounted file system or a network location.
GnomeVFSDrive — Container for GnomeVFSVolume (floppy drive, CD reader, ...)
GnomeVFSVolumeMonitor — Monitors volume mounts and unmounts
gnome-vfs-2.24.4/doc/html/gnome-vfs-file-and-dirs-ops.html0000644000175000001440000000450111450333533020134 00000000000000 Advanced File/Directory Operations

Advanced File/Directory Operations

File Transfers — Conveniently copy/move/delete files en masse
Monitoring — watch files for changes, and get called back if they do
Backend-Specific Operations — Execute backend-specific operations
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0.devhelp20000644000175000001440000040365711450333532016001 00000000000000 gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-context.html0000644000175000001440000002507511450333533020610 00000000000000 GnomeVFSContext

GnomeVFSContext

GnomeVFSContext — contexts allows modules to track thread usage and cancellation properly

Description

Details

gnome_vfs_context_new ()

GnomeVFSContext *   gnome_vfs_context_new               (void);

Creates a new context and cancellation object. Must be called from the main glib event loop.

Returns :

a newly allocated GnomeVFSContext.

gnome_vfs_context_free ()

void                gnome_vfs_context_free              (GnomeVFSContext *ctx);

Free ctx and destroy the associated GnomeVFSCancellation.

ctx :

context to be freed.

gnome_vfs_context_get_cancellation ()

GnomeVFSCancellation * gnome_vfs_context_get_cancellation
                                                        (const GnomeVFSContext *ctx);

Retrieve the GnomeVFSCancellation associated with ctx.

ctx :

context to get the GnomeVFSCancellation from.

Returns :

ctx 's GnomeVFSCancellation.

gnome_vfs_context_check_cancellation()

#define             gnome_vfs_context_check_cancellation(x)

x :


gnome_vfs_context_peek_current ()

const GnomeVFSContext * gnome_vfs_context_peek_current  (void);

Get the currently active context. It shouldn't be manipulated but can be compared to contexts module holds to determine whether they are active.

Returns :

the currently active GnomeVFSContext.

gnome_vfs_context_check_cancellation_current ()

gboolean            gnome_vfs_context_check_cancellation_current
                                                        (void);

Check to see if the currently active context has been cancelled.

Returns :

TRUE if the currently active context has been cancelled, otherwise FALSE.
gnome-vfs-2.24.4/doc/html/mime-registry.html0000644000175000001440000000662411450333533015625 00000000000000 MIME Registry

MIME Registry

MIME typing — functions to get a mime-type for a file using its name or its content
gnome-vfs-mime-utils
MIME Database — functions for getting information about applications and components associated with MIME types.
gnome-vfs-mime-monitor
gnome-vfs-mime-database-deprecated
Deprecated Application Registry API — formerly used for managing applications. Replaced by GnomeVFS MIME Database API

MIME types provide a standardized for denoting the content of files or file streams. GnomeVFS exposes simple methods for both identifying the MIME type of a particular file, and deciding how to act on it. The MIME and application registries provide a mapping between files of a particular mime type and applications / bonobo components which can view or edit those files. Applications such as Nautilus use this database to generate appropriate actions when files are activated.

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-application-registry.html0000644000175000001440000013725011450333533023274 00000000000000 Deprecated Application Registry API

Deprecated Application Registry API

Deprecated Application Registry API — formerly used for managing applications. Replaced by GnomeVFS MIME Database API

Synopsis

#define             GNOME_VFS_APPLICATION_REGISTRY_COMMAND
#define             GNOME_VFS_APPLICATION_REGISTRY_NAME
#define             GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES
#define             GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL
gboolean            gnome_vfs_application_registry_exists
                                                        (const char *app_id);
GList *             gnome_vfs_application_registry_get_keys
                                                        (const char *app_id);
const char *        gnome_vfs_application_registry_peek_value
                                                        (const char *app_id,
                                                         const char *key);
gboolean            gnome_vfs_application_registry_get_bool_value
                                                        (const char *app_id,
                                                         const char *key,
                                                         gboolean *got_key);
void                gnome_vfs_application_registry_remove_application
                                                        (const char *app_id);
void                gnome_vfs_application_registry_set_value
                                                        (const char *app_id,
                                                         const char *key,
                                                         const char *value);
void                gnome_vfs_application_registry_set_bool_value
                                                        (const char *app_id,
                                                         const char *key,
                                                         gboolean value);
void                gnome_vfs_application_registry_unset_key
                                                        (const char *app_id,
                                                         const char *key);
GList *             gnome_vfs_application_registry_get_applications
                                                        (const char *mime_type);
GList *             gnome_vfs_application_registry_get_mime_types
                                                        (const char *app_id);
gboolean            gnome_vfs_application_registry_supports_mime_type
                                                        (const char *app_id,
                                                         const char *mime_type);
gboolean            gnome_vfs_application_registry_supports_uri_scheme
                                                        (const char *app_id,
                                                         const char *uri_scheme);
gboolean            gnome_vfs_application_is_user_owned_application
                                                        (const GnomeVFSMimeApplication *application);
void                gnome_vfs_application_registry_clear_mime_types
                                                        (const char *app_id);
void                gnome_vfs_application_registry_add_mime_type
                                                        (const char *app_id,
                                                         const char *mime_type);
void                gnome_vfs_application_registry_remove_mime_type
                                                        (const char *app_id,
                                                         const char *mime_type);
GnomeVFSResult      gnome_vfs_application_registry_sync (void);
void                gnome_vfs_application_registry_shutdown
                                                        (void);
void                gnome_vfs_application_registry_reload
                                                        (void);
GnomeVFSMimeApplication * gnome_vfs_application_registry_get_mime_application
                                                        (const char *app_id);
void                gnome_vfs_application_registry_save_mime_application
                                                        (const GnomeVFSMimeApplication *application);

Description

This API was formerly used to manage the applications known to GnomeVFS, providing editing capabilities. The system was overengineered and not very performant, so it has been replaced by a new API, described in the GnomeVFS MIME Database section.

Details

GNOME_VFS_APPLICATION_REGISTRY_COMMAND

#define GNOME_VFS_APPLICATION_REGISTRY_COMMAND "command"

Warning

GNOME_VFS_APPLICATION_REGISTRY_COMMAND is deprecated and should not be used in newly-written code.

Application registry key for fetching the command to execute an application.


GNOME_VFS_APPLICATION_REGISTRY_NAME

#define GNOME_VFS_APPLICATION_REGISTRY_NAME "name"

Warning

GNOME_VFS_APPLICATION_REGISTRY_NAME is deprecated and should not be used in newly-written code.

Application registry key for fetching the name of an application.


GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES

#define GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES "can_open_multiple_files"

Warning

GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES is deprecated and should not be used in newly-written code.

Application registry key for determining if an application can open multiple files in the same invocation.


GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL

#define GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL "requires_terminal"

Warning

GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL is deprecated and should not be used in newly-written code.

Application registry key for determining if an application needs to run from within a terminal (for example, mpg123)


gnome_vfs_application_registry_exists ()

gboolean            gnome_vfs_application_registry_exists
                                                        (const char *app_id);

Warning

gnome_vfs_application_registry_exists is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will return TRUE if there is an entry for app_id in the registry, otherwise FALSE.

app_id :

an application ID

Returns :

TRUE if the application is in the registry, FALSE if not

gnome_vfs_application_registry_get_keys ()

GList *             gnome_vfs_application_registry_get_keys
                                                        (const char *app_id);

Warning

gnome_vfs_application_registry_get_keys is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function wil return a list of strings which is the list of keys set for app_id in the application registry.

app_id :

the application ID for which to get keys

Returns :

A list of the keys set for app_id

gnome_vfs_application_registry_peek_value ()

const char *        gnome_vfs_application_registry_peek_value
                                                        (const char *app_id,
                                                         const char *key);

Warning

gnome_vfs_application_registry_peek_value is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This will return the value associated with key for app_id in the application registry. There is no need to free the return value.

app_id :

the application ID for which to look up a value

key :

the key to look up

Returns :

the value associated with the key, or NULL if there is no associated value

gnome_vfs_application_registry_get_bool_value ()

gboolean            gnome_vfs_application_registry_get_bool_value
                                                        (const char *app_id,
                                                         const char *key,
                                                         gboolean *got_key);

Warning

gnome_vfs_application_registry_get_bool_value is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This will look up a key in the structure pointed to by app_id and return the boolean value of that key. It will return false if there are no applications associated with the app_id.

app_id :

registry id of the application

key :

key to look up

got_key :

TRUE if a setting was dound, otherwise FALSE

Returns :

TRUE if key is set to "true" or "yes" for app_id, otherwise FALSE

gnome_vfs_application_registry_remove_application ()

void                gnome_vfs_application_registry_remove_application
                                                        (const char *app_id);

Warning

gnome_vfs_application_registry_remove_application is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

Given the registry id this function will remove all applications that has been set by the user. You will need to call gnome_vfs_application_registry_sync to save the changes.

app_id :

registry id of the application

gnome_vfs_application_registry_set_value ()

void                gnome_vfs_application_registry_set_value
                                                        (const char *app_id,
                                                         const char *key,
                                                         const char *value);

Warning

gnome_vfs_application_registry_set_value is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will set values pertaining to registry entry pointed to by app_id. You will need to call gnome_vfs_application_registry_sync to realize the changes.

app_id :

registry id of the application

key :

target key

value :

value to set the target key to

gnome_vfs_application_registry_set_bool_value ()

void                gnome_vfs_application_registry_set_bool_value
                                                        (const char *app_id,
                                                         const char *key,
                                                         gboolean value);

Warning

gnome_vfs_application_registry_set_bool_value is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will modify those registry values that are of type boolean to a value specified by the user. You will need to call gnome_vfs_application_registry_sync to save your changes.

app_id :

registry id of the application

key :

target key

value :

value you want to set the target key to

gnome_vfs_application_registry_unset_key ()

void                gnome_vfs_application_registry_unset_key
                                                        (const char *app_id,
                                                         const char *key);

Warning

gnome_vfs_application_registry_unset_key is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function given the application and the target will wipe the current value that the key contains.

app_id :

registry id of the application

key :

search key

gnome_vfs_application_registry_get_applications ()

GList *             gnome_vfs_application_registry_get_applications
                                                        (const char *mime_type);

Warning

gnome_vfs_application_registry_get_applications is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This will return all applications from the registry that are associated with the given mime type string, if NULL it returns all applications.

mime_type :

mime type string

Returns :

a list of the application IDs for all applications which support the given mime type.

gnome_vfs_application_registry_get_mime_types ()

GList *             gnome_vfs_application_registry_get_mime_types
                                                        (const char *app_id);

Warning

gnome_vfs_application_registry_get_mime_types is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function returns a list of strings that represent the mime types that can be handled by an application.

app_id :

registry id of application

Returns :

a list of the mime types supported

gnome_vfs_application_registry_supports_mime_type ()

gboolean            gnome_vfs_application_registry_supports_mime_type
                                                        (const char *app_id,
                                                         const char *mime_type);

Warning

gnome_vfs_application_registry_supports_mime_type is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

Use this function to see if there is an application associated with a given mime type. The function will return true or false.

app_id :

registry id of application

mime_type :

mime type string

Returns :

TRUE if app_id supports mime_type, otherwise FALSE.

gnome_vfs_application_registry_supports_uri_scheme ()

gboolean            gnome_vfs_application_registry_supports_uri_scheme
                                                        (const char *app_id,
                                                         const char *uri_scheme);

Warning

gnome_vfs_application_registry_supports_uri_scheme is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

Given the id of the application this function will determine if the uri scheme will given is supported.

app_id :

registry id of application

uri_scheme :

uri schme string

Returns :

TRUE if app_id supports uri_scheme, otherwise FALSE

gnome_vfs_application_is_user_owned_application ()

gboolean            gnome_vfs_application_is_user_owned_application
                                                        (const GnomeVFSMimeApplication *application);

Warning

gnome_vfs_application_is_user_owned_application is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will determine if a mime application is user owned or not. By user ownered this means that the application is not a system application located in the prerequisite /usr area but rather in the user's area.

application :

data structure of the mime application

Returns :

gboolean

gnome_vfs_application_registry_clear_mime_types ()

void                gnome_vfs_application_registry_clear_mime_types
                                                        (const char *app_id);

Warning

gnome_vfs_application_registry_clear_mime_types is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will remove the mime types associated with the application. Changes are not realized until the gnome_vfs_application_registry_sync function is called to save the changes to the file.

app_id :

Application id

gnome_vfs_application_registry_add_mime_type ()

void                gnome_vfs_application_registry_add_mime_type
                                                        (const char *app_id,
                                                         const char *mime_type);

Warning

gnome_vfs_application_registry_add_mime_type is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will associate a mime type with an application given the application registry id and the mime type. Changes are not realized until the gnome_vfs_application_registry_sync function is called to save the changes to the file.

app_id :

registry id of application

mime_type :

mime type string

gnome_vfs_application_registry_remove_mime_type ()

void                gnome_vfs_application_registry_remove_mime_type
                                                        (const char *app_id,
                                                         const char *mime_type);

Warning

gnome_vfs_application_registry_remove_mime_type is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will de-associate a mime type from an application registry. Given the application registry id and the mime type. Changes are not realized until the gnome_vfs_application_registry_sync function is called to save the changes to the file.

app_id :

registry id of the application

mime_type :

mime type string

gnome_vfs_application_registry_sync ()

GnomeVFSResult      gnome_vfs_application_registry_sync (void);

Warning

gnome_vfs_application_registry_sync is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This function will sync the registry. Typically you would use this function after a modification of the registry. When you modify the registry a dirty flag is set. Calling this function will save your modifications to disk and reset the flag.

If successful, will return GNOME_VFS_OK

Returns :

GnomeVFSResult

gnome_vfs_application_registry_shutdown ()

void                gnome_vfs_application_registry_shutdown
                                                        (void);

Warning

gnome_vfs_application_registry_shutdown is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

Synchronize gnome-vfs application registry data to disk, and free resources.


gnome_vfs_application_registry_reload ()

void                gnome_vfs_application_registry_reload
                                                        (void);

Warning

gnome_vfs_application_registry_reload is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

If this function is called for the first time it will initialize the registry. Subsequent calls to the function will clear out the current registry contents and load registry contents from the save file. Make certain that you've saved your registry before calling this function. It will destroy unsaved changes.


gnome_vfs_application_registry_get_mime_application ()

GnomeVFSMimeApplication * gnome_vfs_application_registry_get_mime_application
                                                        (const char *app_id);

Warning

gnome_vfs_application_registry_get_mime_application is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

Returns a structure that contains the application that handles the mime type associated by the application referred by app_id.

app_id :

registry id of the application

Returns :

GnomeVFSMimeApplication

gnome_vfs_application_registry_save_mime_application ()

void                gnome_vfs_application_registry_save_mime_application
                                                        (const GnomeVFSMimeApplication *application);

Warning

gnome_vfs_application_registry_save_mime_application is deprecated and should not be used in newly-written code. All application registry functions have been deprecated. Use the functions available in gnome-mime-handlers instead.

This will save to the registry the application that will be associated with a defined mime type. The defined mime type is located within the GnomeVFSMimeApplication structure. Changes are not realized until the gnome_vfs_application_registry_sync function is called.

application :

application associated with the mime type

See Also

GnomeVFS MIME Database API

gnome-vfs-2.24.4/doc/html/style.css0000644000175000001440000001205611450333532014007 00000000000000.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] { position: relative; padding-top:4.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; } gnome-vfs-2.24.4/doc/html/home.png0000644000175000001440000000121611450333532013567 00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ1õÚKvIDATxœÕ•±kqÅ?ßrC‡ßàpà ~C„np¼¡CAAJ .B-\'G‡]:Ü “‚ƒCÇ -(ˆ8´à Ô€!…fD°€…çÒ“klbRÛÁoyüxïûîËïwpðIJº<°of_®-@ÒððçRH•´ÏfÖŸtèÂü¤^¯×ÓÚÚš’$Q«ÕÒ|“ôpâ’¶€gív;X^^&Ïs¢(bww—Z­F£ÑÀ9Çææ&Þû3à¶™ Æ’^IRµZUE.0Z]]Uš¦ ÃPY–Mü8óHÒGIÚÙÙÑìììæeŸkqqñÒ€™!ó  $ÛÛÛ¬¯¯3Œn eýþ{-/seeeìÔÃŒãXóóóåO‡Í·$ý8==UÇS™—é½×ÑÑQòRR€¤'ã–9-sÚÛÛ+B^ éC·Û•sîŸÍËÂ+%À°<7³ŸWô˜¿ õâ:™2IEND®B`‚gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-standard-callbacks.html0000644000175000001440000025021511450333533022635 00000000000000 gnome-vfs-standard-callbacks

gnome-vfs-standard-callbacks

gnome-vfs-standard-callbacks — standard callbacks for use by gnome-vfs module writers

Description

Details

GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION

#define GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION "fill-authentication"

A module callback name used together with gnome_vfs_module_callback_invoke() to ask the keyring manager for login data. It is expected to return stored or cached login data, but may not query the user.

The login data consists of a username, a password and a domain, and is used to access a resource. If the data is not suitable for accessing the resource, the GnomeVFSModule typically issues a GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION module callback to query the user right after the authentication failed.

in arg :

A GnomeVFSModuleCallbackFillAuthenticationIn * passed to the application, specifying the authentication request. The application will usually proxy this request to the keyring manager of the desktop environment, but it can also handle the request itself.

out arg :

A GnomeVFSModuleCallbackFillAuthenticationOut * passing the cached keyring data (i.e. username/password etc.) back to the module. Usually, this is data that was stored using GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, and is either stored permanently on disk or cached.


GnomeVFSModuleCallbackFillAuthenticationIn

typedef struct {
	char *uri;
	char *protocol;
	char *server;
	char *object;
	int port;
	char *authtype;
	char *username;
	char *domain;
} GnomeVFSModuleCallbackFillAuthenticationIn;

A pointer to a GnomeVFSModuleCallbackFillAuthenticationIn structure is passed to the GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION callback, and informs the application about the authentication parameters that should be requested from the user.

The GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION application callback will then set the members of a pointer to a GnomeVFSModuleCallbackFillAuthenticationOut structure according to the stored or cached data.

char *uri;

The textual URI of the resource that requires authentication.

char *protocol;

One of the protocols supported by the invoking module. Typically matches uri's protocol.

char *server;

The server that contains the resource that requires authentication. Typically matches uri's hostname.

char *object;

The type of the resource that requires authentication.

int port;

The port that was used to connect to server. 0 means unset.

char *authtype;

The type of authentication that was requested. For the HTTP method, this may be "basic" or "proxy". For the SFTP method, this may be "publickey" or "password".

char *username;

The username that was used to connect to server.

char *domain;

The domain that server belongs to (only used by the SMB method).

GnomeVFSModuleCallbackFillAuthenticationOut

typedef struct {
	gboolean valid;
	char *username;
	char *domain;
	char *password;
} GnomeVFSModuleCallbackFillAuthenticationOut;

A pointer to a GnomeVFSModuleCallbackFillAuthenticationOut structure is passed to the GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION callback, and informs the module about the authentication parameters that were found in the cache or permanently stored.

The login data returned by GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION was usually previously stored using #GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION.

gboolean valid;

Whether stored or cached login data was found for the resource referenced by the GnomeVFSModuleCallbackFillAuthenticationIn structure.

char *username;

The cached username that should be used to access the resource. This will be freed by the module when it isn't needed any longer. May only be set if valid is TRUE.

char *domain;

The cached domain that should be used to access the resource. This will be freed by the module when it isn't needed any longer. May only be set if valid is TRUE.

char *password;

The cached password that should be used to access the resource. This will be freed by the module when it isn't needed any longer. May only be set if valid is TRUE.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION

#define GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION "full-authentication"

A module callback name used together with gnome_vfs_module_callback_invoke() to ask the user for login data. This includes username and password, but also special login choices like anonymous login.

in arg :

A GnomeVFSModuleCallbackFullAuthenticationIn * passed to the application, specifying the authentication request.

out arg :

A GnomeVFSModuleCallbackFullAuthenticationOut * passing the user's provided authentication data (i.e. his username/password etc.) back to the module.


enum GnomeVFSModuleCallbackFullAuthenticationFlags

typedef enum {
	GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED = 1<<0,
	GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD = 1<<1,
	GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME = 1<<2,
	GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN = 1<<3,
	GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED = 1<<4,
	GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED = 1<<5
} GnomeVFSModuleCallbackFullAuthenticationFlags;

These flags will be passed to the GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback, as part of the GnomeVFSModuleCallbackFullAuthenticationIn structure. The output data will be stored in a GnomeVFSModuleCallbackFullAuthenticationOut structure.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED

This is not the first login attempt, i.e. this callback was already invoked but the provided login data was not suitable for a successful login.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD

The application should ask the user for a password and set the password field of GnomeVFSModuleCallbackFullAuthenticationOut.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME

The application should ask the user for a username and set the username field of GnomeVFSModuleCallbackFullAuthenticationOut.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN

The application should ask the user for a domain and set the domain field of GnomeVFSModuleCallbackFullAuthenticationOut.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED

The application may ask the user whether he wants to save the password. If this flag is not present, or the user does not want to save the password, the application must set the save_password field of GnomeVFSModuleCallbackFullAuthenticationOut to FALSE and its keyring field to NULL. If the save_password field is TRUE, the module invoking the GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback is expected to invoke the GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION callback if the login attempt was successful with the username, password, domain and keyring fields of GnomeVFSModuleCallbackFullAuthenticationOut.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED

The application should offer the user a choice to login anonymously (used for example by the FTP module). If the user requests anonymous login, GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED must be set in the out_flags field of GnomeVFSModuleCallbackFullAuthenticationOut.

GnomeVFSModuleCallbackFullAuthenticationIn

typedef struct {
	GnomeVFSModuleCallbackFullAuthenticationFlags flags;

	char *uri;
	char *protocol;
	char *server;
	char *object;
	int port;
	char *authtype;
	char *username;
	char *domain;

	/* for pre-filling the dialog */
	char *default_user;     
	char *default_domain;
} GnomeVFSModuleCallbackFullAuthenticationIn;

A pointer to a GnomeVFSModuleCallbackFullAuthenticationIn structure is passed to the GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback, and informs the application about the authentication parameters that should be requested from the user.

The GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION application callback will then set the members of a pointer to a GnomeVFSModuleCallbackFullAuthenticationOut structure according to the user input.

GnomeVFSModuleCallbackFullAuthenticationFlags flags;

GnomeVFSModuleCallbackFullAuthenticationFlags influencing the user query.

char *uri;

The textual URI of the resource that requires authentication.

char *protocol;

One of the protocols supported by the invoking module. Typically matches uri's protocol.

char *server;

The server that contains the resource that requires authentication. Typically matches uri's hostname.

char *object;

The type of the resource that requires authentication.

int port;

The port that was used to connect to server. 0 means unset.

char *authtype;

The type of authentication that was requested. For the HTTP method, this may be "basic" or "proxy". For the SFTP method, this may be "publickey" or "password".

char *username;

The username that was used to connect to server. This variable should just be used for display purposes, i.e. like “You were trying to access foobar.com†where foo is the username and bar.com is the server. Do not make the contents of the GnomeVFSModuleCallbackFullAuthenticationOut output variables depend on the value of this variable. If you want to handle absence of user input, pass back default_user instead.

char *domain;

The domain that server belongs to (only used by the SMB method). This variable should just be used for display purposes where foo is the username and bar.com is the server. Do not make the contents of the GnomeVFSModuleCallbackFullAuthenticationOut output variables depend on the value of this variable. If you want to handle absence of user input, pass back default_domain instead.

char *default_user;

The username that should be provided to the user by default. Typically matches username.

char *default_domain;

The domain that should be provided to the user by default. Typically matches domain.

GnomeVFSModuleCallbackFullAuthenticationOut

typedef struct {
	gboolean abort_auth;

	char *username;
	char *domain;
	char *password;

	gboolean save_password;
	char *keyring;

	gsize out_flags;
} GnomeVFSModuleCallbackFullAuthenticationOut;

A pointer to a GnomeVFSModuleCallbackFullAuthenticationOut structure is passed to the GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback, and informs the module about the authentication parameters that the user provided by setting the respective fields according to the user input and the passed-in GnomeVFSModuleCallbackFullAuthenticationIn pointer.

gboolean abort_auth;

Whether the user somehow cancelled the login process. The application is expected to offer the user a cancellation point during the authentication query. In a graphical user interface, this is typically achieved by providing a "Cancel" button.

char *username;

The user-provided username that should be used to access the resource referenced by GnomeVFSModuleCallbackFullAuthenticationIn. This will be freed by the module when it isn't needed any longer. Must not be set if the GnomeVFSModuleCallbackFullAuthenticationFlags don't contain GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME.

char *domain;

The user-provided domain that should be used to access the resource referenced by GnomeVFSModuleCallbackFullAuthenticationIn. This will be freed by the module when it isn't needed any longer. Must not be set if the GnomeVFSModuleCallbackFullAuthenticationFlags don't contain GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN.

char *password;

The user-provided password that should be used to access the resource referenced by GnomeVFSModuleCallbackFullAuthenticationIn. This will be freed by the module when it isn't needed any longer. Must not be set if the GnomeVFSModuleCallbackFullAuthenticationFlags don't contain GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSOWRD.

gboolean save_password;

Flags whether the user requested to save the provided login data. Must be FALSE if the GnomeVFSModuleCallbackFullAuthenticationFlags don't contain GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED.

char *keyring;

Flags which keyring should be used to save the password. This will later be passed to the GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION callback if the login attempt was successful with the specified username, password and domain. This will NOT be freed by the module, so the application typically provides a NULL pointer or a pointer to a static string.

gsize out_flags;

GnomeVFSModuleCallbackFullAuthenticationOutFlags signalling a special request, for instance anonymous access to an FTP server.

enum GnomeVFSModuleCallbackFullAuthenticationOutFlags

typedef enum {
	GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED = 1<<0
} GnomeVFSModuleCallbackFullAuthenticationOutFlags;

These flags will be passed from a GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback back to the module, as part of the GnomeVFSModuleCallbackFullAuthenticationOut structure.

GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED

Anonymous login requested. May only be set if the GnomeVFSModuleCallbackFullAuthenticationIn's GnomeVFSModuleCallbackFullAuthenticationFlags contain GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED.

GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION

#define GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION "save-authentication"

A module callback name used together with gnome_vfs_module_callback_invoke() to request permanent or temporary storage of login data. The storage is typically done using a keyring manager.

Called after a successfull authentication, to allow the client to e.g. store the password for future use. It may be queried again within the current session (temporary storage) or in future sessions (permanent storage) using GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION.

This is typically called after the user provided login data with GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION.

in arg :

A GnomeVFSModuleCallbackSaveAuthenticationIn * specifying the login data.

out arg :

A GnomeVFSModuleCallbackSaveAuthenticationOut * (unused).


GnomeVFSModuleCallbackSaveAuthenticationIn

typedef struct {
	char *keyring;
	
	char *uri;
	char *protocol;
	char *server;
	char *object;
	int port;
	char *authtype;
	char *username;
	char *domain;
	char *password;
} GnomeVFSModuleCallbackSaveAuthenticationIn;

A GnomeVFSModuleCallbackSaveAuthenticatioIn pointer is passed to a GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION application callback, and specifies the login data that should be stored permanently on disk or temporarily cached.

This data may be queried in future sessions (permanent storage) or within the current session (temporary storage) using GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION.

char *keyring;

Keyring provided by GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback.

char *uri;

The textual URI of the resource that is accessed.

char *protocol;

One of the protocols supported by the invoking module. Typically matches uri's protocol.

char *server;

The server that contains the resource that is accessed. Typically matches uri's hostname.

char *object;

The type of the resource that is accessed.

int port;

The port that was used to connect to server. 0 means unset.

char *authtype;

The type of authentication that was requested. For the HTTP method, this may be "basic" or "proxy". For the SFTP method, this may be "publickey" or "password".

char *username;

The username that was used to connect to server.

char *domain;

The domain that server belongs to (only used by the SMB method).

char *password;

The password that was used to connect to server.

GnomeVFSModuleCallbackSaveAuthenticationOut

typedef struct {
} GnomeVFSModuleCallbackSaveAuthenticationOut;

A GnomeVFSModuleCallbackSaveAuthenticationOut pointer is passed to a GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION application callback, and is reserved for future use. Applications are not expected to modify this data, because its interpretation might change in the future.


GNOME_VFS_MODULE_CALLBACK_QUESTION

#define GNOME_VFS_MODULE_CALLBACK_QUESTION "ask-question"

A module callback name used together with gnome_vfs_module_callback_invoke() to ask the user a question.

Called when access to a URI requires the user to make a choice.

in arg :

A GnomeVFSModuleCallbackFullAuthenticationIn * passed to the application,

out arg :

specifying the proxy authentication request. A GnomeVFSModuleCallbackFullAuthenticationOut * passing the user's provided proxy authentication data (i.e. his username/password) back to the module.


GnomeVFSModuleCallbackQuestionIn

typedef struct {
	char *primary_message;
	char *secondary_message;
	char **choices;
} GnomeVFSModuleCallbackQuestionIn;

A GnomeVFSModuleCallbackQuestionIn pointer is passed to a GNOME_VFS_MODULE_CALLBACK_QUESTION application callback. Applications are expected to request a decision from the user, and store the answer in a GnomeVFSModuleCallbackQuestionOut structure.

char *primary_message;

A short message explaining the question to the user, or NULL if there is no message.

char *secondary_message;

The long version of the message, containing more details, or NULL if there is no message.

char **choices;

NULL-terminated string list of choices the user has to choose from. The first item in the list should be affermative, and will be put on the right in a GUI dialog.

GnomeVFSModuleCallbackQuestionOut

typedef struct {
	int answer;
} GnomeVFSModuleCallbackQuestionOut;

A GnomeVFSModuleCallbackQuestionOut pointer is passed to a GNOME_VFS_MODULE_CALLBACK_QUESTION application callback, and is used by applications to store the user's decision.

int answer;

The index of the answer the user picked. Matches the base pointer address of the user's choice in GnomeVFSModuleCallbackQuestionIn, i.e. its index in choices, where the first choice has index 0.

GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE

#define GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE "status-message"

A module callback name used together with gnome_vfs_module_callback_invoke() to inform the user about an ongoing operation.

Called when a GnomeVFSModule has a status message to return to the user.

in arg :

A GnomeVFSModuleCallbackStatusMessageIn * containing the message to present to the user.

out arg :

A GnomeVFSModuleCallbackStatusMessageOut * (not used).


GnomeVFSModuleCallbackStatusMessageIn

typedef struct {
	char *uri;
	char *message;
	int percentage;
} GnomeVFSModuleCallbackStatusMessageIn;

A GnomeVFSModuleCallbackStatusMessageIn pointer is passed to a GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE application callback, to inform it about the progress and/or status of an ongoing operation.

char *uri;

The textual URI the status message refers to.

char *message;

The message the application should display to the user, indicating the current state, or it is NULL.

int percentage;

The percentage indicating the completeness of a currently pending operation on uri (1-100), or -1 if there is no progress percentage to report.

GnomeVFSModuleCallbackStatusMessageOut

typedef struct {
	/* empty structs not allowed */
	int dummy;
} GnomeVFSModuleCallbackStatusMessageOut;

A GnomeVFSModuleCallbackStatusMessageOut pointer is passed to a GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE application callback, and is reserved for future use. Applications are not expected to modify this data, because its interpretation might change in the future.

int dummy;

unused.

GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS

#define GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS "http:send-additional-headers"

A module callback name used together with gnome_vfs_module_callback_invoke() to request additional HTTP headers.

Called before sending headers to an HTTP server. Client applications can add additional headers.

in arg :

A GnomeVFSModuleCallbackAdditionalHeadersIn * identifying the resource.

out arg :

A GnomeVFSModuleCallbackAdditionalHeadersOut * allowing to add headers to the request.


GnomeVFSModuleCallbackAdditionalHeadersIn

typedef struct {
	GnomeVFSURI *uri;
} GnomeVFSModuleCallbackAdditionalHeadersIn;

A GnomeVFSModuleCallbackAdditionalHeadersIn pointer is passed to a GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS application callback, to inform it about a pending HTTP request and allow it to add additional headers.

GnomeVFSURI *uri;

A GnomeVFSURI identifying the resource of the currently pending request.

GnomeVFSModuleCallbackAdditionalHeadersOut

typedef struct {
	GList *headers;
} GnomeVFSModuleCallbackAdditionalHeadersOut;

A GnomeVFSModuleCallbackAdditionalHeadersOut pointer is passed to a GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS application callback, to store the headers the application wants to add to a pending HTTP request.

GList *headers;

A GList of strings, each of them is an additional header that is added to the HTTP request. headers and all its strings will be freed by the module when they aren't needed any longer.

GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS

#define GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS "http:received-headers"

A module callback name used together with gnome_vfs_module_callback_invoke() to inform an application about the delivery of a HTTP request.

GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS is called after receiving HTTP headers from a server that belonged to a HTTP request that was issued by the application and allows the application to analyze the returned headers.


GnomeVFSModuleCallbackReceivedHeadersIn

typedef struct {
	GnomeVFSURI *uri;
	GList *headers;
} GnomeVFSModuleCallbackReceivedHeadersIn;

A GnomeVFSModuleCallbackReceivedHeadersIn pointer is passed to a GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS application callback, to inform it about a delivered HTTP request and allow it to analyze the returned headers.

GnomeVFSURI *uri;

A GnomeVFSURI identifying the resource of the currently delivered request.

GList *headers;

A GList of strings, each of them is a header that was received when delivering the HTTP request. headers and all its strings will be freed by the module when they aren't needed any longer.

GnomeVFSModuleCallbackReceivedHeadersOut

typedef struct {
	int dummy;
} GnomeVFSModuleCallbackReceivedHeadersOut;

A GnomeVFSModuleCallbackReceivedHeadersOut pointer is passed to a GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS application callback, and is reserved for future use. Applications are not expected to modify this data, because its interpretation might change in the future.

int dummy;

unused.

GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION

#define GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION "simple-authentication"

Warning

GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION is deprecated and should not be used in newly-written code. Modules should use GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION and GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION.

A module callback name formerly used together with gnome_vfs_module_callback_invoke().

Formerly called when access to a URI requires a username/password.


GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION

#define GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION "http:proxy-authentication"

Warning

GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION is deprecated and should not be used in newly-written code. Proxy authentication now works desktop-wide through GConf.

A module callback name formerly used together with gnome_vfs_module_callback_invoke() to ask the user for HTTP proxy login data. It works exactly like GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, and used to be kept separate to allow applications to distinguish proxy authentication from actual server authentication, so that the wording of the interface could be adapted.

Formerly called when access to an HTTP proxy required a username/password.


enum GnomeVFSModuleCallbackAuthenticationAuthType

typedef enum {
	AuthTypeBasic,
	AuthTypeDigest
} GnomeVFSModuleCallbackAuthenticationAuthType;

Warning

GnomeVFSModuleCallbackAuthenticationAuthType is deprecated and should not be used in newly-written code. Modules should use GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION and GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION.

This defines the possible values of the GnomeVFSModuleCallbackAuthenticationIn's auth_type field.

AuthTypeBasic

transmit password unencrypted.

AuthTypeDigest

transmit digest instead of plaintext credentials.

GnomeVFSModuleCallbackAuthenticationIn

typedef struct {
	char *uri;
	char *realm;
	gboolean previous_attempt_failed;
	GnomeVFSModuleCallbackAuthenticationAuthType auth_type;
} GnomeVFSModuleCallbackAuthenticationIn;

Warning

GnomeVFSModuleCallbackAuthenticationIn is deprecated and should not be used in newly-written code. Modules should use GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION and GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION.

A pointer to a GnomeVFSModuleCallbackAuthenticationIn structure that used to be passed to the GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION callback, and informed the application about the authentication parameters that should be requested.

char *uri;

The textual URI of the resource that requires authentication.

char *realm;

"auth" for HTTP, NULL for others.

gboolean previous_attempt_failed;

TRUE if there already was login data specified for this request, but the login failed. FALSE if no previous login attempt has been made right before this one.

GnomeVFSModuleCallbackAuthenticationAuthType auth_type;

Whether the login data will be transmitted in plaintext or encrypted.

GnomeVFSModuleCallbackAuthenticationOut

typedef struct {
	char *username;
	char *password;
} GnomeVFSModuleCallbackAuthenticationOut;

Warning

GnomeVFSModuleCallbackAuthenticationOut is deprecated and should not be used in newly-written code. Modules should use GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION and GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION.

A pointer to a GnomeVFSModuleCallbackAuthenticationOut structure that used to be passed to the GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION callback, and was used to pass the login data back to the module.

char *username;

The username that should be used to access the resource referenced by GnomeVFSModuleCallbackFullAuthenticationIn, or NULL if no data was provided. This will be freed by the module when it isn't needed any longer.

char *password;

The password that should be used to access the resource referenced by GnomeVFSModuleCallbackFullAuthenticationIn. This will be freed by the module when it isn't needed any longer.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-module-callback.html0000644000175000001440000007466611450333533022155 00000000000000 gnome-vfs-module-callback

gnome-vfs-module-callback

gnome-vfs-module-callback — functions used by apps if they want to answer to callback invocations by gnome-vfs modules

Synopsis

void                (*GnomeVFSModuleCallback)           (gconstpointer in,
                                                         gsize in_size,
                                                         gpointer out,
                                                         gsize out_size,
                                                         gpointer callback_data);
void                (*GnomeVFSModuleCallbackResponse)   (gpointer response_data);
void                (*GnomeVFSAsyncModuleCallback)      (gconstpointer in,
                                                         gsize in_size,
                                                         gpointer out,
                                                         gsize out_size,
                                                         gpointer callback_data,
                                                         GnomeVFSModuleCallbackResponse response,
                                                         gpointer response_data);
void                gnome_vfs_module_callback_set_default
                                                        (const char *callback_name,
                                                         GnomeVFSModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);
void                gnome_vfs_module_callback_push      (const char *callback_name,
                                                         GnomeVFSModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);
void                gnome_vfs_module_callback_pop       (const char *callback_name);
void                gnome_vfs_async_module_callback_set_default
                                                        (const char *callback_name,
                                                         GnomeVFSAsyncModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);
void                gnome_vfs_async_module_callback_push
                                                        (const char *callback_name,
                                                         GnomeVFSAsyncModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);
void                gnome_vfs_async_module_callback_pop (const char *callback_name);

Description

Details

GnomeVFSModuleCallback ()

void                (*GnomeVFSModuleCallback)           (gconstpointer in,
                                                         gsize in_size,
                                                         gpointer out,
                                                         gsize out_size,
                                                         gpointer callback_data);

Modules use a GnomeVFSModuleCallback to send data to client applications and request data from them synchronously.

The format of in and out is determined by the callback name.

in :

data passed from module to application.

in_size :

size of in bytes.

out :

data passed from application to module.

out_size :

size of out in bytes.

callback_data :

user data passed when connecting the callback.

GnomeVFSModuleCallbackResponse ()

void                (*GnomeVFSModuleCallbackResponse)   (gpointer response_data);

This is the type of the response function passed to a GnomeVFSAsyncModuleCallback(). It should be called when the async callback has completed.

response_data :

pass the response data argument originally passed to the async callback.

GnomeVFSAsyncModuleCallback ()

void                (*GnomeVFSAsyncModuleCallback)      (gconstpointer in,
                                                         gsize in_size,
                                                         gpointer out,
                                                         gsize out_size,
                                                         gpointer callback_data,
                                                         GnomeVFSModuleCallbackResponse response,
                                                         gpointer response_data);

Modules use a GnomeVFSModuleCallback to send data to client applications and request data from them asynchronously.

The application is expected to invoke the response with response_data when it is able to satisfy the request.

The format of in and out is determined by the callback name.

in :

data passed from module to application.

in_size :

size of in bytes.

out :

data passed from application to module.

out_size :

size of out in bytes.

callback_data :

user data passed when connecting the callback.

response :

GnomeVFSModuleCallbackResponse that must be invoked when the request is satisfied.

response_data :

data that must be passed to response when the request is satisfied.

gnome_vfs_module_callback_set_default ()

void                gnome_vfs_module_callback_set_default
                                                        (const char *callback_name,
                                                         GnomeVFSModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);

Set the default callback for callback_name to callback. callback will be called with callback_data on the same thread as the gnome-vfs operation that invokes it. The default value is shared for all threads, but setting it is thread-safe.

Use this function if you want to set a handler to be used by your whole application. You can use gnome_vfs_module_callback_push() to set a callback function that will temporarily override the default on the current thread instead. Or you can also use gnome_vfs_async_module_callback_set_default() to set an async callback function.

Note: destroy_notify may be called on any thread - it is not guaranteed to be called on the main thread.

callback_name :

name of the module callback to set.

callback :

function to call when the callback is invoked.

callback_data :

data to pass to callback.

destroy_notify :

function to call when callback_data is to be freed.

gnome_vfs_module_callback_push ()

void                gnome_vfs_module_callback_push      (const char *callback_name,
                                                         GnomeVFSModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);

Set callback as a temprary handler for callback_name. callback will be called with callback_data on the same thread as the gnome-vfs operation that invokes it. The temporary handler is set per-thread.

gnome_vfs_module_callback_pop() removes the most recently set temporary handler. The temporary handlers are treated as a first-in first-out stack.

Use this function to set a temporary callback handler for a single call or a few calls. You can use gnome_vfs_module_callback_set_default() to set a callback function that will establish a permanent global setting for all threads instead.

Note: destroy_notify may be called on any thread - it is not guaranteed to be called on the main thread.

callback_name :

name of the module callback to set temporarily.

callback :

function to call when the callback is invoked.

callback_data :

data to pass to callback.

destroy_notify :

function to call when callback_data is to be freed.

gnome_vfs_module_callback_pop ()

void                gnome_vfs_module_callback_pop       (const char *callback_name);

callback_name :


gnome_vfs_async_module_callback_set_default ()

void                gnome_vfs_async_module_callback_set_default
                                                        (const char *callback_name,
                                                         GnomeVFSAsyncModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);

Set the default async callback for callback_name to callback. callback will be called with callback_data from a callback on the main thread. It will be passed a response function which should be called to signal completion of the callback. The callback function itself may return in the meantime.

The default value is shared for all threads, but setting it is thread-safe.

Use this function if you want to globally set a callback handler for use with async operations.

You can use gnome_vfs_async_module_callback_push() to set an async callback function that will temporarily override the default on the current thread instead. Or you can also use gnome_vfs_module_callback_set_default() to set a regular callback function.

Note: destroy_notify may be called on any thread - it is not guaranteed to be called on the main thread.

callback_name :

name of the async module callback to set.

callback :

function to call when callback is invoked.

callback_data :

data to pass to callback.

destroy_notify :

function to call when callback_data is to be freed.

gnome_vfs_async_module_callback_push ()

void                gnome_vfs_async_module_callback_push
                                                        (const char *callback_name,
                                                         GnomeVFSAsyncModuleCallback callback,
                                                         gpointer callback_data,
                                                         GDestroyNotify destroy_notify);

Set callback as a temprary async handler for callback_name. callback will be called with callback_data from a callback on the main thread. It will be passed a response function which should be called to signal completion of the callback. The callback function itself may return in the meantime.

The temporary async handler is set per-thread.

gnome_vfs_async_module_callback_pop() removes the most recently set temporary handler. The temporary async handlers are treated as a first-in first-out stack.

Use this function to set a temporary async callback handler for a single call or a few calls. You can use gnome_vfs_async_module_callback_set_default() to set an async callback function that will establish a permanent global setting for all threads instead.

Note: destroy_notify may be called on any thread - it is not guaranteed to be called on the main thread.

callback_name :

name of the module callback to set temporarily.

callback :

function to call when callback is invoked.

callback_data :

data to pass to callback.

destroy_notify :

function to call when callback_data is to be freed.

gnome_vfs_async_module_callback_pop ()

void                gnome_vfs_async_module_callback_pop (const char *callback_name);

Remove the temporary async handler for callback_name most recently set with gnome_vfs_async_module_callback_push(). If another temporary async handler was previously set on the same thread, it becomes the current handler. Otherwise, the default async handler, if any, becomes current.

The temporary async handlers are treated as a first-in first-out stack.

callback_name :

name of the module callback to remove a temporary handler for.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-volume-monitor.html0000644000175000001440000013114211450333533022111 00000000000000 GnomeVFSVolumeMonitor

GnomeVFSVolumeMonitor

GnomeVFSVolumeMonitor — Monitors volume mounts and unmounts

Object Hierarchy

  GObject
   +----GnomeVFSVolumeMonitor

Signals

  "drive-connected"                                : Run First
  "drive-disconnected"                             : Run First
  "volume-mounted"                                 : Run First
  "volume-pre-unmount"                             : Run First
  "volume-unmounted"                               : Run First

Description

Details

GNOME_IS_VFS_VOLUME_MONITOR()

#define GNOME_IS_VFS_VOLUME_MONITOR(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_VOLUME_MONITOR))

o :


GNOME_IS_VFS_VOLUME_MONITOR_CLASS()

#define GNOME_IS_VFS_VOLUME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_VOLUME_MONITOR))

k :


GNOME_VFS_TYPE_VOLUME_MONITOR

#define GNOME_VFS_TYPE_VOLUME_MONITOR        (gnome_vfs_volume_monitor_get_type ())


GNOME_VFS_VOLUME_MONITOR()

#define GNOME_VFS_VOLUME_MONITOR(o)          (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_VOLUME_MONITOR, GnomeVFSVolumeMonitor))

o :


GNOME_VFS_VOLUME_MONITOR_CLASS()

#define GNOME_VFS_VOLUME_MONITOR_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_VOLUME_MONITOR, GnomeVFSVolumeMonitorClass))

k :


struct GnomeVFSVolumeMonitor

struct GnomeVFSVolumeMonitor;


struct GnomeVFSVolumeMonitorClass

struct GnomeVFSVolumeMonitorClass {
	GObjectClass parent_class;

	/* signals */
	void (* volume_mounted)	  	(GnomeVFSVolumeMonitor *volume_monitor,
				   	 GnomeVFSVolume	       *volume);
	void (* volume_pre_unmount) (GnomeVFSVolumeMonitor *volume_monitor,
				   	 GnomeVFSVolume	       *volume);
	void (* volume_unmounted) (GnomeVFSVolumeMonitor *volume_monitor,
				   	 GnomeVFSVolume	       *volume);
	void (* drive_connected) 	(GnomeVFSVolumeMonitor *volume_monitor,
				   	 GnomeVFSDrive	       *drive);
	void (* drive_disconnected) (GnomeVFSVolumeMonitor *volume_monitor,
				   	 GnomeVFSDrive         *drive);
};


gnome_vfs_get_volume_monitor ()

GnomeVFSVolumeMonitor * gnome_vfs_get_volume_monitor    (void);

Returns a pointer to the GnomeVFSVolumeMonitor singleton. GnomeVFSVolumeMonitor is a singleton, this means it is guaranteed to exist and be valid until gnome_vfs_shutdown() is called. Consequently, it doesn't need to be refcounted since gnome-vfs will hold a reference to it until it is shut down.

Returns :

a pointer to the GnomeVFSVolumeMonitor singleton.

Since 2.6


gnome_vfs_volume_monitor_get_connected_drives ()

GList *             gnome_vfs_volume_monitor_get_connected_drives
                                                        (GnomeVFSVolumeMonitor *volume_monitor);

Returns a GList of all drives connected to the machine. The GnomeVFSDrive objects must be unreffed by the caller when no longer needed with gnome_vfs_drive_unref() and the GList must be freed.

volume_monitor :

a GnomeVFSVolumeMonitor.

Returns :

a GList of all connected drives.

Since 2.6


gnome_vfs_volume_monitor_get_drive_by_id ()

GnomeVFSDrive *     gnome_vfs_volume_monitor_get_drive_by_id
                                                        (GnomeVFSVolumeMonitor *volume_monitor,
                                                         gulong id);

Looks for a GnomeVFSDrive whose id is id. A valid volume_monitor to pass to this function can be acquired using gnome_vfs_get_volume_monitor()

volume_monitor :

a GnomeVFSVolumeMonitor.

id :

the GnomeVFSVolume id to look for.

Returns :

the GnomeVFSDrive corresponding to id, or NULL if no GnomeVFSDrive with a matching id could be found. The caller owns a reference on the returned drive, and must call gnome_vfs_drive_unref() when it no longer needs it.

Since 2.6


gnome_vfs_volume_monitor_get_mounted_volumes ()

GList *             gnome_vfs_volume_monitor_get_mounted_volumes
                                                        (GnomeVFSVolumeMonitor *volume_monitor);

Gets the list of all the mounted GnomeVFSVolume volumes.

volume_monitor :

a GnomeVFSVolumeMonitor.

Returns :

GList of GnomeVFSVolume. The GnomeVFSVolume objects must be unreffed by the caller when no longer needed with gnome_vfs_volume_unref() and the GList must be freed.

Since 2.6


gnome_vfs_volume_monitor_get_type ()

GType               gnome_vfs_volume_monitor_get_type   (void);

Returns :


gnome_vfs_volume_monitor_get_volume_by_id ()

GnomeVFSVolume *    gnome_vfs_volume_monitor_get_volume_by_id
                                                        (GnomeVFSVolumeMonitor *volume_monitor,
                                                         gulong id);

Looks for a GnomeVFSVolume whose id is id. A valid volume_monitor to pass to this function can be acquired using gnome_vfs_get_volume_monitor().

volume_monitor :

a GnomeVFSVolumeMonitor.

id :

GnomeVFSVolume id to look for.

Returns :

the GnomeVFSVolume corresponding to id, or NULL if no GnomeVFSVolume with a matching id could be found. The caller owns a reference on the returned volume, and must call gnome_vfs_volume_unref() when it no longer needs it.

Since 2.6


gnome_vfs_volume_monitor_get_volume_for_path ()

GnomeVFSVolume *    gnome_vfs_volume_monitor_get_volume_for_path
                                                        (GnomeVFSVolumeMonitor *volume_monitor,
                                                         const char *path);

Returns the GnomeVFSVolume corresponding to path, or NULL.

The volume referring to path is found by calling stat on path, and then iterating through the list of volumes that refer to currently mounted local file systems. The first volume in this list maching the path's UNIX device is returned.

If the stat on path was not successful, or no volume matches path, or NULL is returned.

volume_monitor :

a GnomeVFSVolumeMonitor.

path :

string representing a path.

Returns :

the GnomeVFSVolume corresponding to the path, or NULL. Volume returned must be unreffed by the caller with gnome_vfs_volume_unref().

Since 2.6


gnome_vfs_volume_monitor_ref ()

GnomeVFSVolumeMonitor * gnome_vfs_volume_monitor_ref    (GnomeVFSVolumeMonitor *volume_monitor);

Increases the refcount of volume_monitor by one, if it is not NULL.

You shouldn't use this function unless you know what you are doing: GnomeVFSVolumeMonitor is to be used as a singleton object, see gnome_vfs_get_volume_monitor() for more details.

volume_monitor :

the GnomeVFSVolumeMonitor, or NULL.

Returns :

volume_monitor with its refcount increased by one, or NULL if volume_monitor is NULL.

Since 2.6


gnome_vfs_volume_monitor_unref ()

void                gnome_vfs_volume_monitor_unref      (GnomeVFSVolumeMonitor *volume_monitor);

Decreases the refcount of volume_monitor by one, if it is not NULL.

You shouldn't use this function unless you know what you are doing: GnomeVFSVolumeMonitor is to be used as a singleton object, see gnome_vfs_get_volume_monitor() for more details.

volume_monitor :

GnomeVFSVolumeMonitor, or NULL.

Since 2.6

Signal Details

The "drive-connected" signal

void                user_function                      (GnomeVFSVolumeMonitor *volume_monitor,
                                                        GnomeVFSDrive         *drive,
                                                        gpointer               user_data)           : Run First

This signal is emitted when the GnomeVFSDrive drive has been connected.

When the drive is connected, it is present in the volume_monitor's list of connected drives, which can be queried using gnome_vfs_volume_monitor_get_connected_drives().

volume_monitor :

the GnomeVFSVolumeMonitor which received the signal.

drive :

the GnomeVFSDrive that has been connected.

user_data :

user data set when the signal handler was connected.

The "drive-disconnected" signal

void                user_function                      (GnomeVFSVolumeMonitor *volume_monitor,
                                                        GnomeVFSDrive         *drive,
                                                        gpointer               user_data)           : Run First

This signal is emitted after the GnomeVFSDrive drive has been disconnected.

When the drive is disconnected, it is removed from the volume_monitor's list of connected drives, which can be queried using gnome_vfs_volume_monitor_get_connected_drives().

volume_monitor :

the GnomeVFSVolumeMonitor which received the signal.

drive :

the GnomeVFSDrive that has been disconnected.

user_data :

user data set when the signal handler was connected.

The "volume-mounted" signal

void                user_function                      (GnomeVFSVolumeMonitor *volume_monitor,
                                                        GnomeVFSVolume        *volume,
                                                        gpointer               user_data)           : Run First

This signal is emitted after the GnomeVFSVolume volume has been mounted.

When the volume is mounted, it is present in the volume_monitor's list of mounted volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes().

If the volume has an associated GnomeVFSDrive, it also appears in the drive's list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes().

volume_monitor :

the GnomeVFSVolumeMonitor which received the signal.

volume :

the GnomeVFSVolume that has been mounted.

user_data :

user data set when the signal handler was connected.

The "volume-pre-unmount" signal

void                user_function                      (GnomeVFSVolumeMonitor *volume_monitor,
                                                        GnomeVFSVolume        *volume,
                                                        gpointer               user_data)           : Run First

This signal is emitted when the GnomeVFSVolume volume is about to be unmounted.

When the volume is unmounted, it is removed from the volume_monitor's list of mounted volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes().

If the volume has an associated GnomeVFSDrive, it is also removed from in the drive's list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes().

When a client application receives this signal, it must free all resources associated with the volume, for instance cancel all pending file operations on the volume, and cancel all pending file monitors using gnome_vfs_monitor_cancel().

volume_monitor :

the GnomeVFSVolumeMonitor which received the signal.

volume :

the GnomeVFSVolume that is about to be unmounted.

user_data :

user data set when the signal handler was connected.

The "volume-unmounted" signal

void                user_function                      (GnomeVFSVolumeMonitor *volume_monitor,
                                                        GnomeVFSVolume        *volume,
                                                        gpointer               user_data)           : Run First

This signal is emitted after the GnomeVFSVolume volume has been unmounted.

When the volume is unmounted, it is removed from the volume_monitor's list of mounted volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes().

If the volume has an associated GnomeVFSDrive, it is also removed from in the drive's list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes().

volume_monitor :

the GnomeVFSVolumeMonitor which received the signal.

volume :

the GnomeVFSVolume that has been unmounted.

user_data :

user data set when the signal handler was connected.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0.devhelp0000644000175000001440000024666711450333532015725 00000000000000 gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-module-shared.html0000644000175000001440000003566511450333533021663 00000000000000 gnome-vfs-module-shared

gnome-vfs-module-shared

gnome-vfs-module-shared

Synopsis

const char *        gnome_vfs_mime_type_from_mode       (mode_t mode);
const char *        gnome_vfs_mime_type_from_mode_or_default
                                                        (mode_t mode,
                                                         const char *defaultv);
void                gnome_vfs_stat_to_file_info         (GnomeVFSFileInfo *file_info,
                                                         const struct stat *statptr);
GnomeVFSResult      gnome_vfs_set_meta                  (GnomeVFSFileInfo *info,
                                                         const char *file_name,
                                                         const char *meta_key);
GnomeVFSResult      gnome_vfs_set_meta_for_list         (GnomeVFSFileInfo *info,
                                                         const char *file_name,
                                                         const GList *meta_keys);
const char *        gnome_vfs_get_special_mime_type     (GnomeVFSURI *uri);

Description

Details

gnome_vfs_mime_type_from_mode ()

const char *        gnome_vfs_mime_type_from_mode       (mode_t mode);

Returns a MIME type based on the mode if it references a special file (directory, device, fifo, socket or symlink). This function works like gnome_vfs_mime_type_from_mode_or_default(), except that it returns NULL where gnome_vfs_mime_type_from_mode_or_default() would return a fallback MIME type.

mode :

value as the st_mode field in the system stat structure.

Returns :

a string containing the MIME type, or NULL if mode is not a special file.

gnome_vfs_mime_type_from_mode_or_default ()

const char *        gnome_vfs_mime_type_from_mode_or_default
                                                        (mode_t mode,
                                                         const char *defaultv);

Returns a MIME type based on the mode if it references a special file (directory, device, fifo, socket or symlink). This function works like gnome_vfs_mime_type_from_mode() except that it returns defaultv instead of NULL.

mode :

value as the st_mode field in the system stat structure.

defaultv :

default fallback MIME type.

Returns :

a string containing the MIME type, or defaultv if mode is not a special file.

gnome_vfs_stat_to_file_info ()

void                gnome_vfs_stat_to_file_info         (GnomeVFSFileInfo *file_info,
                                                         const struct stat *statptr);

Fills the file_info structure with the values from statptr structure.

file_info :

a GnomeVFSFileInfo which will be filled.

statptr :

pointer to a 'stat' structure.

gnome_vfs_set_meta ()

GnomeVFSResult      gnome_vfs_set_meta                  (GnomeVFSFileInfo *info,
                                                         const char *file_name,
                                                         const char *meta_key);

info :

file_name :

meta_key :

Returns :


gnome_vfs_set_meta_for_list ()

GnomeVFSResult      gnome_vfs_set_meta_for_list         (GnomeVFSFileInfo *info,
                                                         const char *file_name,
                                                         const GList *meta_keys);

info :

file_name :

meta_keys :

Returns :


gnome_vfs_get_special_mime_type ()

const char *        gnome_vfs_get_special_mime_type     (GnomeVFSURI *uri);

Gets the MIME type for uri, this function only returns the type when the uri points to a file that can't be sniffed (sockets, directories, devices, and fifos).

uri :

a GnomeVFSURI to get the mime type for.

Returns :

a string containing the mime type or NULL if the uri doesn't present a special file.
gnome-vfs-2.24.4/doc/html/gnome-vfs-file-async-ops.html0000644000175000001440000000417211450333533017554 00000000000000 Asynchronous Operations

Asynchronous Operations

Asynchronous File Operations — POSIX-style file operations that run outside your main loop
Cancellation — halt in-progress operations
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-parse-ls.html0000644000175000001440000001236211450333533020645 00000000000000 gnome-vfs-parse-ls

gnome-vfs-parse-ls

gnome-vfs-parse-ls — convenience functions for modules which want to parse a ls-like directory listing

Synopsis

int                 gnome_vfs_parse_ls_lga              (const char *p,
                                                         struct stat *s,
                                                         char **filename,
                                                         char **linkname);

Description

Details

gnome_vfs_parse_ls_lga ()

int                 gnome_vfs_parse_ls_lga              (const char *p,
                                                         struct stat *s,
                                                         char **filename,
                                                         char **linkname);

Parses the string p which is in the form same as the 'ls -al' output and fills in the details in the struct s, filename and linkname.

p :

string containing the data in the form same as 'ls -al'.

s :

pointer to stat structure.

filename :

filename, will be filled here.

linkname :

linkname, will be filled here.

Returns :

0 if cannot parse p, 1 if successful.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-uri.html0000644000175000001440000024516211450333533017724 00000000000000 GnomeVFSURI

GnomeVFSURI

GnomeVFSURI — A uniform resource identifier.

Synopsis

                    GnomeVFSURI;
                    GnomeVFSToplevelURI;
enum                GnomeVFSURIHideOptions;
#define             GNOME_VFS_URI_MAGIC_CHR
#define             GNOME_VFS_URI_MAGIC_STR
#define             GNOME_VFS_URI_PATH_CHR
#define             GNOME_VFS_URI_PATH_STR
GnomeVFSURI *       gnome_vfs_uri_new                   (const gchar *text_uri);
GnomeVFSURI *       gnome_vfs_uri_resolve_relative      (const GnomeVFSURI *base,
                                                         const gchar *relative_reference);
GnomeVFSURI *       gnome_vfs_uri_resolve_symbolic_link (const GnomeVFSURI *base,
                                                         const gchar *relative_reference);
GnomeVFSURI *       gnome_vfs_uri_ref                   (GnomeVFSURI *uri);
void                gnome_vfs_uri_unref                 (GnomeVFSURI *uri);
GnomeVFSURI *       gnome_vfs_uri_append_string         (const GnomeVFSURI *uri,
                                                         const char *uri_fragment);
GnomeVFSURI *       gnome_vfs_uri_append_path           (const GnomeVFSURI *uri,
                                                         const char *path);
GnomeVFSURI *       gnome_vfs_uri_append_file_name      (const GnomeVFSURI *uri,
                                                         const gchar *filename);
gchar *             gnome_vfs_uri_to_string             (const GnomeVFSURI *uri,
                                                         GnomeVFSURIHideOptions hide_options);
GnomeVFSURI *       gnome_vfs_uri_dup                   (const GnomeVFSURI *uri);
gboolean            gnome_vfs_uri_is_local              (const GnomeVFSURI *uri);
gboolean            gnome_vfs_uri_has_parent            (const GnomeVFSURI *uri);
GnomeVFSURI *       gnome_vfs_uri_get_parent            (const GnomeVFSURI *uri);
GnomeVFSToplevelURI * gnome_vfs_uri_get_toplevel        (const GnomeVFSURI *uri);
const gchar *       gnome_vfs_uri_get_host_name         (const GnomeVFSURI *uri);
const gchar *       gnome_vfs_uri_get_scheme            (const GnomeVFSURI *uri);
guint               gnome_vfs_uri_get_host_port         (const GnomeVFSURI *uri);
const gchar *       gnome_vfs_uri_get_user_name         (const GnomeVFSURI *uri);
const gchar *       gnome_vfs_uri_get_password          (const GnomeVFSURI *uri);
void                gnome_vfs_uri_set_host_name         (GnomeVFSURI *uri,
                                                         const gchar *host_name);
void                gnome_vfs_uri_set_host_port         (GnomeVFSURI *uri,
                                                         guint host_port);
void                gnome_vfs_uri_set_user_name         (GnomeVFSURI *uri,
                                                         const gchar *user_name);
void                gnome_vfs_uri_set_password          (GnomeVFSURI *uri,
                                                         const gchar *password);
gboolean            gnome_vfs_uri_equal                 (const GnomeVFSURI *a,
                                                         const GnomeVFSURI *b);
gboolean            gnome_vfs_uri_is_parent             (const GnomeVFSURI *possible_parent,
                                                         const GnomeVFSURI *possible_child,
                                                         gboolean recursive);
const gchar *       gnome_vfs_uri_get_path              (const GnomeVFSURI *uri);
const gchar *       gnome_vfs_uri_get_fragment_identifier
                                                        (const GnomeVFSURI *uri);
gchar *             gnome_vfs_uri_extract_dirname       (const GnomeVFSURI *uri);
gchar *             gnome_vfs_uri_extract_short_name    (const GnomeVFSURI *uri);
gchar *             gnome_vfs_uri_extract_short_path_name
                                                        (const GnomeVFSURI *uri);
gint                gnome_vfs_uri_hequal                (gconstpointer a,
                                                         gconstpointer b);
guint               gnome_vfs_uri_hash                  (gconstpointer p);
GList *             gnome_vfs_uri_list_parse            (const gchar *uri_list);
GList *             gnome_vfs_uri_list_ref              (GList *list);
GList *             gnome_vfs_uri_list_unref            (GList *list);
GList *             gnome_vfs_uri_list_copy             (GList *list);
void                gnome_vfs_uri_list_free             (GList *list);
char *              gnome_vfs_uri_make_full_from_relative
                                                        (const char *base_uri,
                                                         const char *relative_uri);

Description

A GnomeVFSURI is a semi-textual representation of a uniform resource identifier. It contains the information about a resource location encoded as canononicalized text, but also holds extra information about the context in which the URI is used.

Details

GnomeVFSURI

typedef struct {
	guint ref_count;

	gchar *text;
	gchar *fragment_id;

	gchar *method_string;
	struct GnomeVFSMethod *method;

	struct GnomeVFSURI *parent;
} GnomeVFSURI;

Holds information about the location of a particular resource.

guint ref_count;

Reference count. The URI is freed when it drops to zero.

gchar *text;

A canonical representation of the path associated with this resource.

gchar *fragment_id;

Extra data identifying this resource.

gchar *method_string;

The method's method associated with this resource. One GnomeVFSMethod can be used for multiple method strings.

struct GnomeVFSMethod *method;

The GnomeVFSMethod associated with this resource.

struct GnomeVFSURI *parent;

Pointer to the parent element, or NULL for GnomeVFSURI that have no enclosing GnomeVFSURI. The process of encapsulating one URI in another one is called URI chaining.

GnomeVFSToplevelURI

typedef struct {
	GnomeVFSURI uri;

	gchar *host_name;
	guint host_port;

	gchar *user_name;
	gchar *password;

	gchar *urn;
} GnomeVFSToplevelURI;

This is the toplevel URI element used to access ressources stored on a remote server. Toplevel method implementations should cast the GnomeVFSURI argument to this type to get the additional host and authentication information.

If any of the elements is 0 respectively NULL, it is unspecified.

GnomeVFSURI uri;

gchar *host_name;

The name of the host used to access this resource, o NULL.

guint host_port;

The port used to access this resource, or 0.

gchar *user_name;

Unescaped user name used to access this resource, or NULL.

gchar *password;

Unescaped password used to access this resource, or NULL.

gchar *urn;

The parent URN, or NULL if it doesn't exist.

enum GnomeVFSURIHideOptions

typedef enum
{
	GNOME_VFS_URI_HIDE_NONE = 0,
	GNOME_VFS_URI_HIDE_USER_NAME = 1 << 0,
	GNOME_VFS_URI_HIDE_PASSWORD = 1 << 1,
	GNOME_VFS_URI_HIDE_HOST_NAME = 1 << 2,
	GNOME_VFS_URI_HIDE_HOST_PORT = 1 << 3,
	GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD = 1 << 4,
	GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER = 1 << 8
} GnomeVFSURIHideOptions; 

Packed boolean bitfield controlling hiding of various elements of a GnomeVFSURI when it is converted to a string using gnome_vfs_uri_to_string().

GNOME_VFS_URI_HIDE_NONE

don't hide anything

GNOME_VFS_URI_HIDE_USER_NAME

hide the user name

GNOME_VFS_URI_HIDE_PASSWORD

hide the password

GNOME_VFS_URI_HIDE_HOST_NAME

hide the host name

GNOME_VFS_URI_HIDE_HOST_PORT

hide the port

GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD

hide the method (e.g. http, file)

GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER

hide the fragment identifier

GNOME_VFS_URI_MAGIC_CHR

#define GNOME_VFS_URI_MAGIC_CHR '#'

The character used to divide location from extra "arguments" passed to the method.


GNOME_VFS_URI_MAGIC_STR

#define GNOME_VFS_URI_MAGIC_STR "#"

The character used to divide location from extra "arguments" passed to the method.


GNOME_VFS_URI_PATH_CHR

#define GNOME_VFS_URI_PATH_CHR '/'

Defines the path seperator character.


GNOME_VFS_URI_PATH_STR

#define GNOME_VFS_URI_PATH_STR "/"

Defines the path seperator string.


gnome_vfs_uri_new ()

GnomeVFSURI *       gnome_vfs_uri_new                   (const gchar *text_uri);

Create a new uri from text_uri. Unsupported and unsafe methods are not allowed and will result in NULL being returned. URL transforms are allowed.

The a text_uri must be an escaped URI string such as returned by gnome_vfs_get_uri_from_local_path(), gnome_vfs_make_uri_from_input(), or gtk_file_chooser_get_uri().

text_uri :

an escaped string representing a uri.

Returns :

The new uri.

gnome_vfs_uri_resolve_relative ()

GnomeVFSURI *       gnome_vfs_uri_resolve_relative      (const GnomeVFSURI *base,
                                                         const gchar *relative_reference);

Create a new uri from relative_reference, relative to base. The resolution algorithm in some aspects follows RFC 2396, section 5.2, but is not identical due to some extra assumptions GnomeVFS makes about URIs.

If relative_reference begins with a valid scheme identifier followed by ':', it is assumed to refer to an absolute URI, and a GnomeVFSURI is created from it using gnome_vfs_uri_new().

Otherwise, depending on its precise syntax, it inherits some aspects of the parent URI, but the parents' fragment and query components are ignored.

If relative_reference begins with "//", it only inherits the base scheme, if it begins with '/' (i.e. is an absolute path reference), it inherits everything ecxept the base path. Otherwise, it replaces the part of base after the last '/'.

Note

This function should not be used by application authors unless they expect very distinct semantics. Instead, authors should use gnome_vfs_uri_append_file_name(), gnome_vfs_uri_append_path(), gnome_vfs_uri_append_string() or gnome_vfs_uri_resolve_symbolic_link().

base :

base uri.

relative_reference :

a string representing a possibly relative uri reference.

Returns :

A GnomeVFSURI referring to relative_reference, or NULL if relative_reference was malformed.

gnome_vfs_uri_resolve_symbolic_link ()

GnomeVFSURI *       gnome_vfs_uri_resolve_symbolic_link (const GnomeVFSURI *base,
                                                         const gchar *relative_reference);

Create a new uri from symbolic_link, relative to base.

If symbolic_link begins with a '/', it replaces the path of base, otherwise it is appended after the last '/' character of base.

base :

base uri.

relative_reference :

Returns :

A new GnomeVFSURI referring to symbolic_link.

Since 2.16


gnome_vfs_uri_ref ()

GnomeVFSURI *       gnome_vfs_uri_ref                   (GnomeVFSURI *uri);

Increment uri's reference count.

uri :

a GnomeVFSURI.

Returns :

uri.

gnome_vfs_uri_unref ()

void                gnome_vfs_uri_unref                 (GnomeVFSURI *uri);

Decrement uri's reference count. If the reference count reaches zero, uri is destroyed.

uri :

a GnomeVFSURI.

gnome_vfs_uri_append_string ()

GnomeVFSURI *       gnome_vfs_uri_append_string         (const GnomeVFSURI *uri,
                                                         const char *uri_fragment);

Create a new uri obtained by appending uri_fragment to uri. This will take care of adding an appropriate directory separator between the end of uri and the start of uri_fragment if necessary.

uri :

a GnomeVFSURI.

uri_fragment :

a piece of a uri (ie a fully escaped partial path).

Returns :

The new uri obtained by combining uri and uri_fragment.

gnome_vfs_uri_append_path ()

GnomeVFSURI *       gnome_vfs_uri_append_path           (const GnomeVFSURI *uri,
                                                         const char *path);

Create a new uri obtained by appending path to uri. This will take care of adding an appropriate directory separator between the end of uri and the start of path if necessary as well as escaping path as necessary.

uri :

a GnomeVFSURI.

path :

a non-escaped file path.

Returns :

The new uri obtained by combining uri and path.

gnome_vfs_uri_append_file_name ()

GnomeVFSURI *       gnome_vfs_uri_append_file_name      (const GnomeVFSURI *uri,
                                                         const gchar *filename);

Create a new uri obtained by appending file_name to uri. This will take care of adding an appropriate directory separator between the end of uri and the start of file_name if necessary. file_name might, for instance, be the result of a call to g_dir_read_name().

uri :

a GnomeVFSURI.

filename :

any "regular" file name (can include #, /, etc) in the file system encoding. This is not an escaped URI.

Returns :

The new uri obtained by combining uri and path.

gnome_vfs_uri_to_string ()

gchar *             gnome_vfs_uri_to_string             (const GnomeVFSURI *uri,
                                                         GnomeVFSURIHideOptions hide_options);

Translate uri into a printable string. The string will not contain the uri elements specified by hide_options.

A file: URI on Win32 might look like file:///x:/foo/bar.txt. Note that the part after file:// is not a legal file name, you need to remove the / in front of the drive letter. This function does that automatically if hide_options specifies that the toplevel method, user name, password, host name and host port should be hidden.

On the other hand, a file: URI for a UNC path looks like file:////server/share/foo/bar.txt, and in that case the part after file:// is the correct file name.

uri :

a GnomeVFSURI.

hide_options :

bitmask specifying what uri elements (e.g. password, user name etc.) should not be represented in the returned string.

Returns :

a malloc'd printable string representing uri.

gnome_vfs_uri_dup ()

GnomeVFSURI *       gnome_vfs_uri_dup                   (const GnomeVFSURI *uri);

Duplicate uri.

uri :

a GnomeVFSURI.

Returns :

a pointer to a new uri that is exactly the same as uri.

gnome_vfs_uri_is_local ()

gboolean            gnome_vfs_uri_is_local              (const GnomeVFSURI *uri);

Check if uri is a local URI. Note that the return value of this function entirely depends on the GnomeVFSMethod associated with the URI. It is up to the method author to distinguish between remote URIs add URIs referring to entities on the local computer.

Warning, this can be slow, as it does i/o to detect things like NFS mounts.

uri :

a GnomeVFSURI.

Returns :

TRUE if uri refers to a local entity, FALSE otherwise.

gnome_vfs_uri_has_parent ()

gboolean            gnome_vfs_uri_has_parent            (const GnomeVFSURI *uri);

Check if uri has a parent or not.

uri :

a GnomeVFSURI.

Returns :

TRUE if uri has a parent, FALSE otherwise.

gnome_vfs_uri_get_parent ()

GnomeVFSURI *       gnome_vfs_uri_get_parent            (const GnomeVFSURI *uri);

Retrieve uri's parent uri.

uri :

a GnomeVFSURI.

Returns :

a pointer to uri's parent uri.

gnome_vfs_uri_get_toplevel ()

GnomeVFSToplevelURI * gnome_vfs_uri_get_toplevel        (const GnomeVFSURI *uri);

Retrieve the toplevel uri in uri.

uri :

a GnomeVFSURI.

Returns :

a pointer to the toplevel uri object.

gnome_vfs_uri_get_host_name ()

const gchar *       gnome_vfs_uri_get_host_name         (const GnomeVFSURI *uri);

Retrieve the host name for uri.

uri :

a GnomeVFSURI.

Returns :

a string representing the host name.

gnome_vfs_uri_get_scheme ()

const gchar *       gnome_vfs_uri_get_scheme            (const GnomeVFSURI *uri);

Retrieve the scheme used for uri.

uri :

a GnomeVFSURI.

Returns :

a string representing the scheme.

gnome_vfs_uri_get_host_port ()

guint               gnome_vfs_uri_get_host_port         (const GnomeVFSURI *uri);

Retrieve the host port number in uri.

uri :

a GnomeVFSURI.

Returns :

The host port number used by uri. If the value is zero, the default port value for the specified toplevel access method is used.

gnome_vfs_uri_get_user_name ()

const gchar *       gnome_vfs_uri_get_user_name         (const GnomeVFSURI *uri);

Retrieve the user name in uri.

uri :

a GnomeVFSURI.

Returns :

a string representing the user name in uri.

gnome_vfs_uri_get_password ()

const gchar *       gnome_vfs_uri_get_password          (const GnomeVFSURI *uri);

Retrieve the password for uri.

uri :

a GnomeVFSURI.

Returns :

The password for uri.

gnome_vfs_uri_set_host_name ()

void                gnome_vfs_uri_set_host_name         (GnomeVFSURI *uri,
                                                         const gchar *host_name);

Set host_name as the host name accessed by uri.

uri :

a GnomeVFSURI.

host_name :

a string representing a host name.

gnome_vfs_uri_set_host_port ()

void                gnome_vfs_uri_set_host_port         (GnomeVFSURI *uri,
                                                         guint host_port);

Set the host port number in uri. If host_port is zero, the default port for uri's toplevel access method is used.

uri :

a GnomeVFSURI.

host_port :

a TCP/IP port number.

gnome_vfs_uri_set_user_name ()

void                gnome_vfs_uri_set_user_name         (GnomeVFSURI *uri,
                                                         const gchar *user_name);

Set user_name as the user name for uri.

uri :

a GnomeVFSURI.

user_name :

a string representing a user name on the host accessed by uri.

gnome_vfs_uri_set_password ()

void                gnome_vfs_uri_set_password          (GnomeVFSURI *uri,
                                                         const gchar *password);

Set password as the password for uri.

uri :

a GnomeVFSURI.

password :

a password string.

gnome_vfs_uri_equal ()

gboolean            gnome_vfs_uri_equal                 (const GnomeVFSURI *a,
                                                         const GnomeVFSURI *b);

Compare a and b.

FIXME: This comparison should take into account the possiblity that unreserved characters may be escaped. ...or perhaps gnome_vfs_uri_new() should unescape unreserved characters?

a :

a GnomeVFSURI.

b :

a GnomeVFSURI.

Returns :

TRUE if a and b are equal, FALSE otherwise.

gnome_vfs_uri_is_parent ()

gboolean            gnome_vfs_uri_is_parent             (const GnomeVFSURI *possible_parent,
                                                         const GnomeVFSURI *possible_child,
                                                         gboolean recursive);

Check if possible_child is contained by possible_parent. If recursive is FALSE, just try the immediate parent directory, else search up through the hierarchy.

possible_parent :

a GnomeVFSURI.

possible_child :

a GnomeVFSURI.

recursive :

a flag to turn recursive check on.

Returns :

TRUE if possible_child is contained in possible_parent.

gnome_vfs_uri_get_path ()

const gchar *       gnome_vfs_uri_get_path              (const GnomeVFSURI *uri);

Retrieve full path name for uri.

uri :

a GnomeVFSURI.

Returns :

a pointer to the full path name in uri. Notice that the pointer points to the path name stored in uri, so the path name returned must not be modified nor freed.

gnome_vfs_uri_get_fragment_identifier ()

const gchar *       gnome_vfs_uri_get_fragment_identifier
                                                        (const GnomeVFSURI *uri);

uri :

Returns :


gnome_vfs_uri_extract_dirname ()

gchar *             gnome_vfs_uri_extract_dirname       (const GnomeVFSURI *uri);

Extract the name of the directory in which the file pointed to by uri is stored as a newly allocated string. The string will end with a GNOME_VFS_URI_PATH_CHR.

uri :

a GnomeVFSURI.

Returns :

a pointer to the newly allocated string representing the parent directory.

gnome_vfs_uri_extract_short_name ()

gchar *             gnome_vfs_uri_extract_short_name    (const GnomeVFSURI *uri);

Retrieve base file name for uri, ignoring any trailing path separators. This matches the XPG definition of basename, but not g_basename. This is often useful when you want the name of something that's pointed to by a uri, and don't care whether the uri has a directory or file form. If uri points to the root of a domain, returns the host name. If there's no host name, returns GNOME_VFS_URI_PATH_STR.

See also: gnome_vfs_uri_extract_short_path_name().

uri :

a GnomeVFSURI.

Returns :

a pointer to the newly allocated string representing the unescaped short form of the name.

gnome_vfs_uri_extract_short_path_name ()

gchar *             gnome_vfs_uri_extract_short_path_name
                                                        (const GnomeVFSURI *uri);

Retrieve base file name for uri, ignoring any trailing path separators. This matches the XPG definition of basename, but not g_basename. This is often useful when you want the name of something that's pointed to by a uri, and don't care whether the uri has a directory or file form. If uri points to the root (including the root of any domain), returns GNOME_VFS_URI_PATH_STR.

See also: gnome_vfs_uri_extract_short_name().

uri :

a GnomeVFSURI.

Returns :

a pointer to the newly allocated string representing the escaped short form of the name.

gnome_vfs_uri_hequal ()

gint                gnome_vfs_uri_hequal                (gconstpointer a,
                                                         gconstpointer b);

Function intended for use as a hash table "are these two items the same" comparison. Useful for creating a hash table of uris.

a :

a pointer to a GnomeVFSURI.

b :

a pointer to a GnomeVFSURI.

Returns :

TRUE if the uris are the same.

gnome_vfs_uri_hash ()

guint               gnome_vfs_uri_hash                  (gconstpointer p);

Creates an integer value from a GnomeVFSURI, appropriate for using as the key to a hash table entry.

p :

a pointer to a GnomeVFSURI.

Returns :

a hash key corresponding to p.

gnome_vfs_uri_list_parse ()

GList *             gnome_vfs_uri_list_parse            (const gchar *uri_list);

Extracts a list of GnomeVFSURI objects from a standard text/uri-list, such as one you would get on a drop operation. Use gnome_vfs_uri_list_free() when you are done with the list.

uri_list :

string consists of GnomeVFSURIs and/or paths seperated by newline character.

Returns :

a GList of GnomeVFSURIs.

gnome_vfs_uri_list_ref ()

GList *             gnome_vfs_uri_list_ref              (GList *list);

Increments the reference count of the items in list by one.

list :

list of GnomeVFSURI elements.

Returns :

list.

gnome_vfs_uri_list_unref ()

GList *             gnome_vfs_uri_list_unref            (GList *list);

Decrements the reference count of the items in list by one. Note that the list is *not freed* even if each member of the list is freed.

list :

list of GnomeVFSURI elements.

Returns :

list.

gnome_vfs_uri_list_copy ()

GList *             gnome_vfs_uri_list_copy             (GList *list);

Creates a duplicate of list, and references each member of that list.

list :

list of GnomeVFSURI elements.

Returns :

a newly referenced duplicate of list.

gnome_vfs_uri_list_free ()

void                gnome_vfs_uri_list_free             (GList *list);

Decrements the reference count of each member of list by one, and frees the list itself.

list :

list of GnomeVFSURI elements.

gnome_vfs_uri_make_full_from_relative ()

char *              gnome_vfs_uri_make_full_from_relative
                                                        (const char *base_uri,
                                                         const char *relative_uri);

Returns a full uri given a full base uri, and a secondary uri which may be relative.

base_uri :

a string representing the base uri.

relative_uri :

a uri fragment/reference to be appended to base_uri.

Returns :

a newly allocated string containing the uri (NULL for some bad errors).
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-ssl.html0000644000175000001440000006415711450333533017731 00000000000000 SSL support functions

SSL support functions

SSL support functions — Functions to send and receive encrypted data over a socket.

Synopsis

typedef             GnomeVFSSSL;
gboolean            gnome_vfs_ssl_enabled               (void);
GnomeVFSResult      gnome_vfs_ssl_create                (GnomeVFSSSL **handle_return,
                                                         const char *host,
                                                         unsigned int port,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_ssl_create_from_fd        (GnomeVFSSSL **handle_return,
                                                         gint fd,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_ssl_read                  (GnomeVFSSSL *ssl,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_ssl_write                 (GnomeVFSSSL *ssl,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written,
                                                         GnomeVFSCancellation *cancellation);
void                gnome_vfs_ssl_destroy               (GnomeVFSSSL *ssl,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSSocket *    gnome_vfs_ssl_to_socket             (GnomeVFSSSL *ssl);
GnomeVFSResult      gnome_vfs_ssl_set_timeout           (GnomeVFSSSL *ssl,
                                                         GTimeVal *timeout,
                                                         GnomeVFSCancellation *cancellation);

Description

Details

GnomeVFSSSL

typedef struct GnomeVFSSSL GnomeVFSSSL;


gnome_vfs_ssl_enabled ()

gboolean            gnome_vfs_ssl_enabled               (void);

Checks whether gnome-vfs was compiled with SSL support.

Returns :

TRUE if gnome-vfs was compiled with SSL support, otherwise FALSE.

gnome_vfs_ssl_create ()

GnomeVFSResult      gnome_vfs_ssl_create                (GnomeVFSSSL **handle_return,
                                                         const char *host,
                                                         unsigned int port,
                                                         GnomeVFSCancellation *cancellation);

Creates an SSL socket connection at handle_return to host using port port.

handle_return :

pointer to a GnomeVFSSSL struct, which will contain an allocated GnomeVFSSSL object on return.

host :

string indicating the hostname to establish an SSL connection with.

port :

port number to connect to.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_ssl_create_from_fd ()

GnomeVFSResult      gnome_vfs_ssl_create_from_fd        (GnomeVFSSSL **handle_return,
                                                         gint fd,
                                                         GnomeVFSCancellation *cancellation);

Try to establish an SSL connection over the file descriptor fd.

handle_return :

pointer to a GnomeVFSSSL struct, which will contain an allocated GnomeVFSSSL object on return.

fd :

file descriptior to try and establish an SSL connection over.

cancellation :

handle allowing cancellation of the operation.

Returns :

a GnomeVFSResult indicating the success of the operation.

gnome_vfs_ssl_read ()

GnomeVFSResult      gnome_vfs_ssl_read                  (GnomeVFSSSL *ssl,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read,
                                                         GnomeVFSCancellation *cancellation);

Read bytes bytes of data from the SSL socket ssl into buffer.

ssl :

SSL socket to read data from.

buffer :

allocated buffer of at least bytes bytes to write into.

bytes :

number of bytes to read from ssl into buffer.

bytes_read :

pointer to a GnomeVFSFileSize, will contain the number of bytes actually read from the socket ssl on return.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_ssl_write ()

GnomeVFSResult      gnome_vfs_ssl_write                 (GnomeVFSSSL *ssl,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written,
                                                         GnomeVFSCancellation *cancellation);

Write bytes bytes of data from buffer to ssl.

ssl :

SSL socket to write data to.

buffer :

data to write to the socket.

bytes :

number of bytes to write from buffer to ssl.

bytes_written :

pointer to a GnomeVFSFileSize, will contain the number of bytes actually written to the socket on return.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_ssl_destroy ()

void                gnome_vfs_ssl_destroy               (GnomeVFSSSL *ssl,
                                                         GnomeVFSCancellation *cancellation);

Free resources used by ssl and close the connection.

ssl :

SSL socket to be closed and destroyed.

cancellation :

handle allowing cancellation of the operation.

gnome_vfs_ssl_to_socket ()

GnomeVFSSocket *    gnome_vfs_ssl_to_socket             (GnomeVFSSSL *ssl);

Wrap an SSL socket inside a standard GnomeVFSSocket.

ssl :

SSL socket to convert into a standard socket.

Returns :

a newly allocated GnomeVFSSocket corresponding to ssl.

gnome_vfs_ssl_set_timeout ()

GnomeVFSResult      gnome_vfs_ssl_set_timeout           (GnomeVFSSSL *ssl,
                                                         GTimeVal *timeout,
                                                         GnomeVFSCancellation *cancellation);

Set a timeout of timeout. If timeout is NULL following operations will block indefinitely).

Note if you set timeout to 0 (means tv_sec and tv_usec are both 0) every following operation will return immediately. (This can be used for polling.)

ssl :

SSL socket to set the timeout of.

timeout :

the timeout.

cancellation :

optional cancellation object.

Returns :

GnomeVFSResult indicating the success of the operation.

Since 2.8

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-file-info.html0000644000175000001440000021420411450333533020766 00000000000000 GnomeVFSFileInfo

GnomeVFSFileInfo

GnomeVFSFileInfo — stores information about files, GnomeVFS equivalent of stat

Synopsis

enum                GnomeVFSFileFlags;
enum                GnomeVFSFileType;
enum                GnomeVFSFileInfoFields;
enum                GnomeVFSFilePermissions;
enum                GnomeVFSFileInfoOptions;
enum                GnomeVFSSetFileInfoMask;
                    GnomeVFSGetFileInfoResult;
typedef             GnomeVFSInodeNumber;
                    GnomeVFSFileInfo;
#define             GNOME_VFS_FILE_INFO_SYMLINK         (info)
#define             GNOME_VFS_FILE_INFO_SET_SYMLINK     (info,
                                                         value)
#define             GNOME_VFS_FILE_INFO_LOCAL           (info)
#define             GNOME_VFS_FILE_INFO_SET_LOCAL       (info,
                                                         value)
#define             GNOME_VFS_FILE_INFO_SUID            (info)
#define             GNOME_VFS_FILE_INFO_SGID            (info)
#define             GNOME_VFS_FILE_INFO_STICKY          (info)
#define             GNOME_VFS_FILE_INFO_SET_SUID        (info,
                                                         value)
#define             GNOME_VFS_FILE_INFO_SET_SGID        (info,
                                                         value)
#define             GNOME_VFS_FILE_INFO_SET_STICKY      (info,
                                                         value)
GnomeVFSFileInfo *  gnome_vfs_file_info_new             (void);
void                gnome_vfs_file_info_unref           (GnomeVFSFileInfo *info);
void                gnome_vfs_file_info_ref             (GnomeVFSFileInfo *info);
void                gnome_vfs_file_info_clear           (GnomeVFSFileInfo *info);
const char *        gnome_vfs_file_info_get_mime_type   (GnomeVFSFileInfo *info);
void                gnome_vfs_file_info_copy            (GnomeVFSFileInfo *dest,
                                                         const GnomeVFSFileInfo *src);
GnomeVFSFileInfo *  gnome_vfs_file_info_dup             (const GnomeVFSFileInfo *orig);
gboolean            gnome_vfs_file_info_matches         (const GnomeVFSFileInfo *a,
                                                         const GnomeVFSFileInfo *b);
GList *             gnome_vfs_file_info_list_ref        (GList *list);
GList *             gnome_vfs_file_info_list_unref      (GList *list);
GList *             gnome_vfs_file_info_list_copy       (GList *list);
void                gnome_vfs_file_info_list_free       (GList *list);
GnomeVFSGetFileInfoResult *  gnome_vfs_get_file_info_result_dup
                                                        (GnomeVFSGetFileInfoResult *result);
void                gnome_vfs_get_file_info_result_free (GnomeVFSGetFileInfoResult *result);

Description

Details

enum GnomeVFSFileFlags

typedef enum {
	GNOME_VFS_FILE_FLAGS_NONE = 0,
	GNOME_VFS_FILE_FLAGS_SYMLINK = 1 << 0,
	GNOME_VFS_FILE_FLAGS_LOCAL = 1 << 1
} GnomeVFSFileFlags;

Packed boolean bitfield representing special flags a GnomeVFSFileInfo struct can have.

GNOME_VFS_FILE_FLAGS_NONE

no flags

GNOME_VFS_FILE_FLAGS_SYMLINK

whether the file is a symlink.

GNOME_VFS_FILE_FLAGS_LOCAL

whether the file is on a local filesystem

enum GnomeVFSFileType

typedef enum {
	GNOME_VFS_FILE_TYPE_UNKNOWN,
	GNOME_VFS_FILE_TYPE_REGULAR,
	GNOME_VFS_FILE_TYPE_DIRECTORY,
	GNOME_VFS_FILE_TYPE_FIFO,
	GNOME_VFS_FILE_TYPE_SOCKET,
	GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE,
	GNOME_VFS_FILE_TYPE_BLOCK_DEVICE,
	GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK
} GnomeVFSFileType;

Maps to a stat mode, and identifies the kind of file represented by a GnomeVFSFileInfo struct, stored in the type field.

GNOME_VFS_FILE_TYPE_UNKNOWN

The file type is unknown (none of the types below matches).

GNOME_VFS_FILE_TYPE_REGULAR

The file is a regular file (stat: S_ISREG).

GNOME_VFS_FILE_TYPE_DIRECTORY

The file is a directory (stat: S_ISDIR).

GNOME_VFS_FILE_TYPE_FIFO

The file is a FIFO (stat: S_ISFIFO).

GNOME_VFS_FILE_TYPE_SOCKET

The file is a socket (stat: S_ISSOCK).

GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE

The file is a character device (stat: S_ISCHR).

GNOME_VFS_FILE_TYPE_BLOCK_DEVICE

The file is a block device (stat: S_ISBLK).

GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK

The file is a symbolic link (stat: S_ISLNK).

enum GnomeVFSFileInfoFields

typedef enum {
	GNOME_VFS_FILE_INFO_FIELDS_NONE = 0,
	GNOME_VFS_FILE_INFO_FIELDS_TYPE = 1 << 0,
	GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 << 1,
	GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 << 2,
	GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 << 3,
	GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 << 4,
	GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 << 5,
	GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 << 6,
	GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 << 7,
	GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 << 8,
	GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 << 9,
	GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 << 10,
	GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11,
	GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12,
	GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13,
	GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14,
	GNOME_VFS_FILE_INFO_FIELDS_IDS = 1 << 15,
	GNOME_VFS_FILE_INFO_FIELDS_ACL = 1 << 16,
	GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT = 1 << 17
} GnomeVFSFileInfoFields;

Flags indicating what fields in a GnomeVFSFileInfo struct are valid. Name is always assumed valid (how else would you have gotten a FileInfo struct otherwise?)

GNOME_VFS_FILE_INFO_FIELDS_NONE

No fields are valid

GNOME_VFS_FILE_INFO_FIELDS_TYPE

Type field is valid

GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS

Permissions field is valid

GNOME_VFS_FILE_INFO_FIELDS_FLAGS

Flags field is valid

GNOME_VFS_FILE_INFO_FIELDS_DEVICE

Device field is valid

GNOME_VFS_FILE_INFO_FIELDS_INODE

Inode field is valid

GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT

Link count field is valid

GNOME_VFS_FILE_INFO_FIELDS_SIZE

Size field is valid

GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT

Block count field is valid

GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE

I/O Block Size field is valid

GNOME_VFS_FILE_INFO_FIELDS_ATIME

Access time field is valid

GNOME_VFS_FILE_INFO_FIELDS_MTIME

Modification time field is valid

GNOME_VFS_FILE_INFO_FIELDS_CTIME

Creating time field is valid

GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME

Symlink name field is valid

GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE

Mime type field is valid

GNOME_VFS_FILE_INFO_FIELDS_ACCESS

Access bits of the permissions bitfield are valid

GNOME_VFS_FILE_INFO_FIELDS_IDS

UID and GID information are valid

GNOME_VFS_FILE_INFO_FIELDS_ACL

ACL field is valid

GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT

SELinux Security context is valid

enum GnomeVFSFilePermissions

typedef enum {
	GNOME_VFS_PERM_SUID = S_ISUID,
	GNOME_VFS_PERM_SGID = S_ISGID,	
	GNOME_VFS_PERM_STICKY = 01000, /* S_ISVTX not defined on all systems */
	GNOME_VFS_PERM_USER_READ = S_IRUSR,
	GNOME_VFS_PERM_USER_WRITE = S_IWUSR,
	GNOME_VFS_PERM_USER_EXEC = S_IXUSR,
	GNOME_VFS_PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR,
	GNOME_VFS_PERM_GROUP_READ = S_IRGRP,
	GNOME_VFS_PERM_GROUP_WRITE = S_IWGRP,
	GNOME_VFS_PERM_GROUP_EXEC = S_IXGRP,
	GNOME_VFS_PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP,
	GNOME_VFS_PERM_OTHER_READ = S_IROTH,
	GNOME_VFS_PERM_OTHER_WRITE = S_IWOTH,
	GNOME_VFS_PERM_OTHER_EXEC = S_IXOTH,
	GNOME_VFS_PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH,
	GNOME_VFS_PERM_ACCESS_READABLE   = 1 << 16,
	GNOME_VFS_PERM_ACCESS_WRITABLE   = 1 << 17,
	GNOME_VFS_PERM_ACCESS_EXECUTABLE = 1 << 18
} GnomeVFSFilePermissions;

File permissions. Some of these fields correspond to traditional UNIX semantics, others provide more abstract concepts.

Note

Some network file systems don't support traditional UNIX semantics but still provide file access control. Thus, if you want to modify the permissions (i.e. do a chmod), you should rely on the traditional fields, but if you just want to determine whether a file or directory can be read from or written to, you should rely on the more abstract GNOME_VFS_PERM_ACCESS_* fields.

GNOME_VFS_PERM_SUID

UID bit

GNOME_VFS_PERM_SGID

GID bit

GNOME_VFS_PERM_STICKY

Sticky bit.

GNOME_VFS_PERM_USER_READ

Owner has read permission.

GNOME_VFS_PERM_USER_WRITE

Owner has write permission.

GNOME_VFS_PERM_USER_EXEC

Owner has execution permission.

GNOME_VFS_PERM_USER_ALL

Owner has all permissions.

GNOME_VFS_PERM_GROUP_READ

Group has read permission.

GNOME_VFS_PERM_GROUP_WRITE

Group has write permission.

GNOME_VFS_PERM_GROUP_EXEC

Group has execution permission.

GNOME_VFS_PERM_GROUP_ALL

Group has all permissions.

GNOME_VFS_PERM_OTHER_READ

Others have read permission.

GNOME_VFS_PERM_OTHER_WRITE

Others have write permission.

GNOME_VFS_PERM_OTHER_EXEC

Others have execution permission.

GNOME_VFS_PERM_OTHER_ALL

Others have all permissions.

GNOME_VFS_PERM_ACCESS_READABLE

This file is readable for the current client.

GNOME_VFS_PERM_ACCESS_WRITABLE

This file is writable for the current client.

GNOME_VFS_PERM_ACCESS_EXECUTABLE

This file is executable for the current client.

enum GnomeVFSFileInfoOptions

typedef enum {
	GNOME_VFS_FILE_INFO_DEFAULT = 0,
	GNOME_VFS_FILE_INFO_GET_MIME_TYPE = 1 << 0,
	GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1,
	GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2,
	GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 << 3,
	GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS = 1 << 4,
	GNOME_VFS_FILE_INFO_NAME_ONLY = 1 << 5,
	GNOME_VFS_FILE_INFO_GET_ACL = 1 << 6,
	GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT = 1 << 7
} GnomeVFSFileInfoOptions;

Packed boolean bitfield representing options that can be passed into a gnome_vfs_get_file_info() call (or other related calls that return file info) and affect the operation of get_file_info.

GNOME_VFS_FILE_INFO_DEFAULT

default flags

GNOME_VFS_FILE_INFO_GET_MIME_TYPE

detect the MIME type

GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE

only use fast MIME type detection (extensions)

GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE

force slow MIME type detection where available (sniffing, algorithmic detection, etc)

GNOME_VFS_FILE_INFO_FOLLOW_LINKS

automatically follow symbolic links and retrieve the properties of their target (recommended)

GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS

tries to get data similar to what would return access(2) on a local file system (ie is the file readable, writable and/or executable). Can be really slow on remote file systems

GNOME_VFS_FILE_INFO_NAME_ONLY

When reading a directory, only get the filename (if doing so is faster). Useful to e.g. count the number of files.

GNOME_VFS_FILE_INFO_GET_ACL

get ACLs for the file

GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT


enum GnomeVFSSetFileInfoMask

typedef enum {
	GNOME_VFS_SET_FILE_INFO_NONE = 0,
	GNOME_VFS_SET_FILE_INFO_NAME = 1 << 0,
	GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 << 1,
	GNOME_VFS_SET_FILE_INFO_OWNER = 1 << 2,
	GNOME_VFS_SET_FILE_INFO_TIME = 1 << 3,
	GNOME_VFS_SET_FILE_INFO_ACL = 1 << 4,
	GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT = 1 << 5,
	GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME = 1 << 6
} GnomeVFSSetFileInfoMask;

Packed boolean bitfield representing the aspects of the file to be changed in a gnome_vfs_set_file_info() call.

GNOME_VFS_SET_FILE_INFO_NONE

don't set any file info fields

GNOME_VFS_SET_FILE_INFO_NAME

change the name

GNOME_VFS_SET_FILE_INFO_PERMISSIONS

change the permissions

GNOME_VFS_SET_FILE_INFO_OWNER

change the file's owner

GNOME_VFS_SET_FILE_INFO_TIME

change the file's time stamp(s)

GNOME_VFS_SET_FILE_INFO_ACL

change the file's ACLs

GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT

GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME

change the file's symlink name

GnomeVFSGetFileInfoResult

typedef struct {
	GnomeVFSURI *uri;
	GnomeVFSResult result;
	GnomeVFSFileInfo *file_info;
} GnomeVFSGetFileInfoResult;

This data structure encapsulates the details of an individual file info request that was part of a mass file info request launched through gnome_vfs_async_get_file_info(), and is passed to a GnomeVFSAsyncGetFileInfoCallback.

GnomeVFSURI *uri;

The GnomeVFSURI the file info was requested for.

GnomeVFSResult result;

The GnomeVFSResult of the file info request.

GnomeVFSFileInfo *file_info;

The GnomeVFSFileInfo that was retrieved.

GnomeVFSInodeNumber

typedef GnomeVFSFileSize GnomeVFSInodeNumber;

Represents the i-node of a file, this is a low level data structure that the operating system uses to hold information about a file.


GnomeVFSFileInfo

typedef struct {
	char *name;

	GnomeVFSFileInfoFields valid_fields;
	GnomeVFSFileType type;
	GnomeVFSFilePermissions permissions;

	GnomeVFSFileFlags flags;

	dev_t device;
	GnomeVFSInodeNumber inode;

	guint link_count;

	guint uid;
	guint gid;

	GnomeVFSFileSize size;

	GnomeVFSFileSize block_count;

	guint io_block_size;

	time_t atime;
	time_t mtime;
	time_t ctime;

	char *symlink_name;

	char *mime_type;

	guint refcount;

	/* File ACLs */
	GnomeVFSACL *acl;

	/* SELinux security context. -- ascii string, raw format. */
	char* selinux_context;
} GnomeVFSFileInfo;

Note

When doing massive I/O, it is suggested to adhere io_block_size if applicable. For network file systems, this may be set to very big values allowing parallelization.

The GnomeVFSFileInfo structure contains information about a file.

char *name;

A char * specifying the base name of the file (without any path string).

GnomeVFSFileInfoFields valid_fields;

GnomeVFSFileInfoFields specifying which fields of GnomeVFSFileInfo are valid. Note that name is always assumed to be valid, i.e. clients may assume that it is not NULL.

GnomeVFSFileType type;

The GnomeVFSFileType of the file (i.e. regular, directory, block device, ...) if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_TYPE.

GnomeVFSFilePermissions permissions;

The GnomeVFSFilePermissions corresponding to the UNIX-like permissions of the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS, and the GnomeVFSFilePermissions corresponding to abstract access concepts (GNOME_VFS_PERM_ACCESS_READABLE, GNOME_VFS_PERM_ACCESS_WRITABLE, and GNOME_VFS_PERM_ACCESS_EXECUTABLE) if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS.

GnomeVFSFileFlags flags;

GnomeVFSFileFlags providing additional information about the file, for instance whether it is local or a symbolic link, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_FLAGS.

dev_t device;

Identifies the device the file is located on, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_DEVICE.

GnomeVFSInodeNumber inode;

Identifies the inode corresponding to the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_INODE.

guint link_count;

Counts the number of hard links to the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT.

guint uid;

The user owning the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_IDS.

guint gid;

The user owning the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_IDS.

GnomeVFSFileSize size;

The size of the file in bytes (a GnomeVFSFileSize), if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_SIZE.

GnomeVFSFileSize block_count;

The size of the file in file system blocks (a GnomeVFSFileSize), if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT.

guint io_block_size;

The optimal buffer size for reading/writing the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE.

time_t atime;

The time of the last file access, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_ATIME.

time_t mtime;

The time of the last file contents modification, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_MTIME.

time_t ctime;

The time of the last inode change, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_CTIME.

char *symlink_name;

This is the name of the file this link points to, type is GNOME_VFS_FILE_FLAGS_SYMLINK, and valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME.

char *mime_type;

This is a char * identifying the type of the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE.

guint refcount;

The reference count of this file info, which is one by default, and that can be increased using gnome_vfs_file_info_ref() and decreased using gnome_vfs_file_info_unref(). When it drops to zero, the file info is freed and its memory is invalid. Make sure to keep your own reference to a file info if you received it from GnomeVFS, i.e. if you didn't call gnome_vfs_file_info_new() yourself.

GnomeVFSACL *acl;

char *selinux_context;


GNOME_VFS_FILE_INFO_SYMLINK()

#define             GNOME_VFS_FILE_INFO_SYMLINK(info)

Determines whether a file is a symbolic link given info.

info :

GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SET_SYMLINK()

#define             GNOME_VFS_FILE_INFO_SET_SYMLINK(info, value)

Set the symbolic link field in info to value.

info :

GnomeVFSFileInfo struct

value :

if TRUE, info is set to indicate the file is a symbolic link

GNOME_VFS_FILE_INFO_LOCAL()

#define             GNOME_VFS_FILE_INFO_LOCAL(info)

Determines whether a file is local given info.

info :

GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SET_LOCAL()

#define             GNOME_VFS_FILE_INFO_SET_LOCAL(info, value)

Set the "local file" field in info to value.

info :

GnomeVFSFileInfo struct

value :

if TRUE, info is set to indicate the file is local

GNOME_VFS_FILE_INFO_SUID()

#define             GNOME_VFS_FILE_INFO_SUID(info)

Determines whether a file belongs to the super user.

info :

GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SGID()

#define             GNOME_VFS_FILE_INFO_SGID(info)

Determines whether a file belongs to the super user's group.

info :

GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_STICKY()

#define             GNOME_VFS_FILE_INFO_STICKY(info)

Determines whether a file has the sticky bit set, given info

info :

GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SET_SUID()

#define             GNOME_VFS_FILE_INFO_SET_SUID(info, value)

Set the SUID field in info to value.

info :

GnomeVFSFileInfo struct

value :

if TRUE, info is set to indicate the file belongs to the super user

GNOME_VFS_FILE_INFO_SET_SGID()

#define             GNOME_VFS_FILE_INFO_SET_SGID(info, value)

Set the SGID field in info to value.

info :

GnomeVFSFileInfo struct

value :

if TRUE, info is set to indicate the file belongs to the super user's group

GNOME_VFS_FILE_INFO_SET_STICKY()

#define             GNOME_VFS_FILE_INFO_SET_STICKY(info, value)

Set the sticky bit in info to value.

info :

GnomeVFSFileInfo struct

value :

if TRUE, info is set to indicate the file has the sticky bit set

gnome_vfs_file_info_new ()

GnomeVFSFileInfo *  gnome_vfs_file_info_new             (void);

Allocate and initialize a new GnomeVFSFileInfo struct.

Returns :

a pointer to the newly allocated file information struct.

gnome_vfs_file_info_unref ()

void                gnome_vfs_file_info_unref           (GnomeVFSFileInfo *info);

Decreases the refcount of info by 1. Frees the struct info if refcount becomes 0.

info :

pointer to a file information struct.

gnome_vfs_file_info_ref ()

void                gnome_vfs_file_info_ref             (GnomeVFSFileInfo *info);

Increment refcount of info by 1.

info :

pointer to a file information struct.

gnome_vfs_file_info_clear ()

void                gnome_vfs_file_info_clear           (GnomeVFSFileInfo *info);

Clear info so that it's ready to accept new data. This is supposed to be used when info already contains meaningful information which we want to replace.

info :

pointer to a file information struct.

gnome_vfs_file_info_get_mime_type ()

const char *        gnome_vfs_file_info_get_mime_type   (GnomeVFSFileInfo *info);

Retrieve MIME type from info. There is no need to free the return value.

info :

a pointer to a file information struct.

Returns :

a pointer to a string representing the MIME type.

gnome_vfs_file_info_copy ()

void                gnome_vfs_file_info_copy            (GnomeVFSFileInfo *dest,
                                                         const GnomeVFSFileInfo *src);

Copy information from src into dest.

dest :

pointer to a struct to copy src's information into.

src :

pointer to the information to be copied into dest.

gnome_vfs_file_info_dup ()

GnomeVFSFileInfo *  gnome_vfs_file_info_dup             (const GnomeVFSFileInfo *orig);

Duplicates orig and returns it.

orig :

pointer to a file information structure to duplicate.

Returns :

a new file information struct that duplicates the information in orig.

gnome_vfs_file_info_matches ()

gboolean            gnome_vfs_file_info_matches         (const GnomeVFSFileInfo *a,
                                                         const GnomeVFSFileInfo *b);

Compare the two file info structs, return TRUE if they match exactly the same file data.

a :

first GnomeVFSFileInfo struct to compare.

b :

second GnomeVFSFileInfo struct to compare.

Returns :

TRUE if the two GnomeVFSFileInfos match, otherwise return FALSE.

gnome_vfs_file_info_list_ref ()

GList *             gnome_vfs_file_info_list_ref        (GList *list);

Increments the refcount of the items in list by one.

list :

list of GnomeVFSFileInfo elements.

Returns :

list.

gnome_vfs_file_info_list_unref ()

GList *             gnome_vfs_file_info_list_unref      (GList *list);

Decrements the refcount of the items in list by one. Note that the list is *not freed* even if each member of the list is freed.

list :

list of GnomeVFSFileInfo elements.

Returns :

list.

gnome_vfs_file_info_list_copy ()

GList *             gnome_vfs_file_info_list_copy       (GList *list);

Creates a duplicate of list, and references each member of that list.

list :

list of GnomeVFSFileInfo elements.

Returns :

a newly referenced duplicate of list.

gnome_vfs_file_info_list_free ()

void                gnome_vfs_file_info_list_free       (GList *list);

Decrements the refcount of each member of list by one, and frees the list itself.

list :

list of GnomeVFSFileInfo elements.

gnome_vfs_get_file_info_result_dup ()

GnomeVFSGetFileInfoResult *  gnome_vfs_get_file_info_result_dup
                                                        (GnomeVFSGetFileInfoResult *result);

Duplicate result.

Note: The internal uri and fileinfo objects are not duplicated but their refcount is incremented by 1.

result :

a GnomeVFSGetFileInfoResult.

Returns :

a duplicated version of result.

Since 2.12


gnome_vfs_get_file_info_result_free ()

void                gnome_vfs_get_file_info_result_free (GnomeVFSGetFileInfoResult *result);

Unrefs the internal uri and fileinfo objects and frees the memory allocated for result.

result :

a GnomeVFSGetFileInfoResult.

Since 2.12

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-file-basic-ops.html0000644000175000001440000011005611450333533021713 00000000000000 Basic File Operations

Basic File Operations

Basic File Operations — Essential VFS operations. This includes creating, moving and deleting files, opening and closing file handles.

Synopsis

enum                GnomeVFSOpenMode;
GnomeVFSResult      gnome_vfs_create                    (GnomeVFSHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm);
GnomeVFSResult      gnome_vfs_create_uri                (GnomeVFSHandle **handle,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm);
GnomeVFSResult      gnome_vfs_open                      (GnomeVFSHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode);
GnomeVFSResult      gnome_vfs_open_uri                  (GnomeVFSHandle **handle,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode);
GnomeVFSResult      gnome_vfs_close                     (GnomeVFSHandle *handle);
GnomeVFSResult      gnome_vfs_unlink                    (const gchar *text_uri);
GnomeVFSResult      gnome_vfs_unlink_from_uri           (GnomeVFSURI *uri);
GnomeVFSResult      gnome_vfs_move_uri                  (GnomeVFSURI *old_uri,
                                                         GnomeVFSURI *new_uri,
                                                         gboolean force_replace);
GnomeVFSResult      gnome_vfs_move                      (const gchar *old_text_uri,
                                                         const gchar *new_text_uri,
                                                         gboolean force_replace);
GnomeVFSResult      gnome_vfs_check_same_fs_uris        (GnomeVFSURI *source_uri,
                                                         GnomeVFSURI *target_uri,
                                                         gboolean *same_fs_return);
GnomeVFSResult      gnome_vfs_check_same_fs             (const gchar *source,
                                                         const gchar *target,
                                                         gboolean *same_fs_return);
gboolean            gnome_vfs_uri_exists                (GnomeVFSURI *uri);
GnomeVFSResult      gnome_vfs_create_symbolic_link      (GnomeVFSURI *uri,
                                                         const gchar *target_reference);

Description

GnomeVFS file operations are, for the most part, patterned after their POSIX equivalents, with the systematic difference that they accept URIs rather than paths on the local filesystem. This makes them easy to learn as if you are already familiar with basic commands such as open(), seek(), write(), etc you will feel right at home with GnomeVFS after learning a little about URIs.

Details

enum GnomeVFSOpenMode

typedef enum {
        GNOME_VFS_OPEN_NONE = 0,
        GNOME_VFS_OPEN_READ = 1 << 0,
        GNOME_VFS_OPEN_WRITE = 1 << 1,
        GNOME_VFS_OPEN_RANDOM = 1 << 2,
	GNOME_VFS_OPEN_TRUNCATE = 1 << 3
} GnomeVFSOpenMode;

Mode in which files are opened. If GNOME_VFS_OPEN_RANDOM is not used, the file will be have to be accessed sequentially.

GNOME_VFS_OPEN_NONE

No access.

GNOME_VFS_OPEN_READ

Read access.

GNOME_VFS_OPEN_WRITE

Write access.

GNOME_VFS_OPEN_RANDOM

Random access.

GNOME_VFS_OPEN_TRUNCATE

Truncate file before accessing it, i.e. delete its contents.

gnome_vfs_create ()

GnomeVFSResult      gnome_vfs_create                    (GnomeVFSHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm);

Create text_uri according to mode open_mode. On return, handle will then contain a pointer to a handle for the open file.

handle :

pointer to a pointer to a GnomeVFSHandle object.

text_uri :

string representing the uri to create.

open_mode :

mode to leave the file opened in after creation (or GNOME_VFS_OPEN_MODE_NONE to leave the file closed after creation).

exclusive :

whether the file should be created in "exclusive" mode. i.e. if this flag is nonzero, operation will fail if a file with the same name already exists.

perm :

bitmap representing the permissions for the newly created file (Unix style).

Returns :

an integer representing the result of the operation.

gnome_vfs_create_uri ()

GnomeVFSResult      gnome_vfs_create_uri                (GnomeVFSHandle **handle,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode,
                                                         gboolean exclusive,
                                                         guint perm);

Create uri according to mode open_mode. On return, handle will then contain a pointer to a handle for the open file.

handle :

pointer to a pointer to a GnomeVFSHandle object.

uri :

uri for the file to create.

open_mode :

open mode.

exclusive :

whether the file should be created in "exclusive" mode. i.e. if this flag is nonzero, operation will fail if a file with the same name already exists.

perm :

bitmap representing the permissions for the newly created file (Unix style).

Returns :

an integer representing the result of the operation.

gnome_vfs_open ()

GnomeVFSResult      gnome_vfs_open                      (GnomeVFSHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSOpenMode open_mode);

Open text_uri according to mode open_mode. On return, handle will then contain a pointer to a handle for the open file.

handle :

pointer to a pointer to a GnomeVFSHandle object.

text_uri :

string representing the uri to open.

open_mode :

open mode.

Returns :

an integer representing the result of the operation.

gnome_vfs_open_uri ()

GnomeVFSResult      gnome_vfs_open_uri                  (GnomeVFSHandle **handle,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSOpenMode open_mode);

Open uri according to mode open_mode. On return, handle will then contain a pointer to a handle for the open file.

handle :

pointer to a pointer to a GnomeVFSHandle object.

uri :

uri to open.

open_mode :

open mode.

Returns :

an integer representing the result of the operation.

gnome_vfs_close ()

GnomeVFSResult      gnome_vfs_close                     (GnomeVFSHandle *handle);

Close file associated with handle.

handle :

pointer to a GnomeVFSHandle object.

Returns :

an integer representing the result of the operation.

gnome_vfs_unlink ()

GnomeVFSResult      gnome_vfs_unlink                    (const gchar *text_uri);

Unlink text_uri (i.e. delete the file).

text_uri :

uri of the file to be unlinked.

Returns :

an integer representing the result of the operation.

gnome_vfs_unlink_from_uri ()

GnomeVFSResult      gnome_vfs_unlink_from_uri           (GnomeVFSURI *uri);

Unlink uri (i.e. delete the file).

uri :

uri of the file to be unlinked.

Returns :

an integer representing the result of the operation.

gnome_vfs_move_uri ()

GnomeVFSResult      gnome_vfs_move_uri                  (GnomeVFSURI *old_uri,
                                                         GnomeVFSURI *new_uri,
                                                         gboolean force_replace);

Move a file from uri old_uri to new_uri. This will only work if old_uri and new_uri are on the same file system. Otherwise, it is necessary to use the more general gnome_vfs_xfer_uri() function.

old_uri :

source uri.

new_uri :

destination uri.

force_replace :

if TRUE, move old_uri to new_uri even if there is already a file at new_uri. If there is a file, it will be discarded.

Returns :

an integer representing the result of the operation.

gnome_vfs_move ()

GnomeVFSResult      gnome_vfs_move                      (const gchar *old_text_uri,
                                                         const gchar *new_text_uri,
                                                         gboolean force_replace);

Move a file from old_text_uri to new_text_uri. This will only work if old_text_uri and new_text_uri are on the same file system. Otherwise, it is necessary to use the more general gnome_vfs_xfer_uri() function.

old_text_uri :

string representing the source file location.

new_text_uri :

string representing the destination file location.

force_replace :

if TRUE, perform the operation even if it unlinks an existing file at new_text_uri.

Returns :

an integer representing the result of the operation.

gnome_vfs_check_same_fs_uris ()

GnomeVFSResult      gnome_vfs_check_same_fs_uris        (GnomeVFSURI *source_uri,
                                                         GnomeVFSURI *target_uri,
                                                         gboolean *same_fs_return);

Check if source_uri and target_uri are on the same file system.

source_uri :

a uri.

target_uri :

another uri.

same_fs_return :

pointer to a boolean variable which will be set to TRUE on return if source_uri and target_uri are on the same file system.

Returns :

an integer representing the result of the operation.

gnome_vfs_check_same_fs ()

GnomeVFSResult      gnome_vfs_check_same_fs             (const gchar *source,
                                                         const gchar *target,
                                                         gboolean *same_fs_return);

Check if source and target are on the same file system.

source :

path to a file.

target :

path to another file.

same_fs_return :

pointer to a boolean variable which will be set to TRUE on return if source and target are on the same file system.

Returns :

an integer representing the result of the operation.

gnome_vfs_uri_exists ()

gboolean            gnome_vfs_uri_exists                (GnomeVFSURI *uri);

Check if the uri points to an existing entity.

uri :

a uri.

Returns :

TRUE if uri exists.

gnome_vfs_create_symbolic_link ()

GnomeVFSResult      gnome_vfs_create_symbolic_link      (GnomeVFSURI *uri,
                                                         const gchar *target_reference);

Creates a symbolic link, or eventually, a uri link (as necessary) at uri pointing to target_reference.

uri :

uri to create a link at.

target_reference :

uri "reference" to point the link to (uri or relative path).

Returns :

an integer representing the result of the operation.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-directory-list-ops.html0000644000175000001440000014443111450333533022676 00000000000000 Listing Directory Contents

Listing Directory Contents

Listing Directory Contents — Listing the contents of directories.

Synopsis

typedef             GnomeVFSDirectoryHandle;
enum                GnomeVFSDirectoryVisitOptions;
gboolean            (*GnomeVFSDirectoryVisitFunc)       (const gchar *rel_path,
                                                         GnomeVFSFileInfo *info,
                                                         gboolean recursing_will_loop,
                                                         gpointer user_data,
                                                         gboolean *recurse);
GnomeVFSResult      gnome_vfs_directory_open            (GnomeVFSDirectoryHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions options);
GnomeVFSResult      gnome_vfs_directory_open_from_uri   (GnomeVFSDirectoryHandle **handle,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileInfoOptions options);
GnomeVFSResult      gnome_vfs_directory_read_next       (GnomeVFSDirectoryHandle *handle,
                                                         GnomeVFSFileInfo *file_info);
GnomeVFSResult      gnome_vfs_directory_close           (GnomeVFSDirectoryHandle *handle);
GnomeVFSResult      gnome_vfs_directory_visit           (const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);
GnomeVFSResult      gnome_vfs_directory_visit_uri       (GnomeVFSURI *uri,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);
GnomeVFSResult      gnome_vfs_directory_visit_files     (const gchar *text_uri,
                                                         GList *file_list,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);
GnomeVFSResult      gnome_vfs_directory_visit_files_at_uri
                                                        (GnomeVFSURI *uri,
                                                         GList *file_list,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);
GnomeVFSResult      gnome_vfs_directory_list_load       (GList **list,
                                                         const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions options);

Description

Details

GnomeVFSDirectoryHandle

typedef struct GnomeVFSDirectoryHandle GnomeVFSDirectoryHandle;


enum GnomeVFSDirectoryVisitOptions

typedef enum {
	GNOME_VFS_DIRECTORY_VISIT_DEFAULT = 0,
	GNOME_VFS_DIRECTORY_VISIT_SAMEFS = 1 << 0,
	GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK = 1 << 1,
	GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR = 1 << 2
} GnomeVFSDirectoryVisitOptions;

These options control the way in which directories are visited. They are passed to gnome_vfs_directory_visit(), gnome_vfs_directory_visit_uri() gnome_vfs_directory_visit_files() and gnome_vfs_directory_visit_files_at_uri().

GNOME_VFS_DIRECTORY_VISIT_DEFAULT

Default options, i.e. call the specified GnomeVFSDirectoryVisitFunc for each file.

GNOME_VFS_DIRECTORY_VISIT_SAMEFS

Visit only directories on the same file system as the parent

GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK

Loop prevention. If this is set, and a file is found to be a directory referencing a prefiously found directory inode (i.e. already used for one of it's parents), this is considered a recursion loop, and GnomeVFSDirectoryVisitFunc will be notified using its recursing_will_loop parameter. If this is not set, the GnomeVFSDirectoryVisitFunc's recursing_will_loop parameter will always be set to FALSE.

GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR


GnomeVFSDirectoryVisitFunc ()

gboolean            (*GnomeVFSDirectoryVisitFunc)       (const gchar *rel_path,
                                                         GnomeVFSFileInfo *info,
                                                         gboolean recursing_will_loop,
                                                         gpointer user_data,
                                                         gboolean *recurse);

This function is passed to gnome_vfs_directory_visit(), gnome_vfs_directory_visit_uri(), gnome_vfs_directory_visit_files() and gnome_vfs_directory_visit_files_at_uri(), and is called for each file in the specified directory.

Note

When a recursive visit was requested for a particular directory, errors during the child visit will lead to a cancellation of the overall visit. Thus, you must ensure that the user has sufficient access rights to visit a directory before requesting a recursion.

rel_path :

A char * specifying the path of the currently visited file relative to the base directory for the visit.

info :

The GnomeVFSFileInfo of the currently visited file.

recursing_will_loop :

Whether setting *recurse to TRUE will cause a loop, i.e. whether this is a link pointing to a parent directory.

user_data :

The user data passed to gnome_vfs_directory_visit(), gnome_vfs_directory_visit_uri(), gnome_vfs_directory_visit_files() or gnome_vfs_directory_visit_files_at_uri().

recurse :

A valid pointer to a gboolean, which points to FALSE by default and can be modified to point to TRUE, which indicates that the currently considered file should be visited recursively. The recursive visit will only be actually done if info refers to a directory, *recurse is TRUE and the return value of the GnomeVFSDirectoryVisitFunc is TRUE. *recurse should usually not be set to TRUE if recursing_will_loop is TRUE.

Returns :

TRUE if visit should be continued, FALSE otherwise.

gnome_vfs_directory_open ()

GnomeVFSResult      gnome_vfs_directory_open            (GnomeVFSDirectoryHandle **handle,
                                                         const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions options);

Open directory text_uri for reading. On return, @*handle will point to a GnomeVFSDirectoryHandle object which can be used to read the directory entries one by one.

handle :

pointer to a pointer to a GnomeVFSDirectoryHandle object.

text_uri :

string representing the uri to open.

options :

options for reading file information.

Returns :

an integer representing the result of the operation.

gnome_vfs_directory_open_from_uri ()

GnomeVFSResult      gnome_vfs_directory_open_from_uri   (GnomeVFSDirectoryHandle **handle,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileInfoOptions options);

Open directory text_uri for reading. On return, @*handle will point to a GnomeVFSDirectoryHandle object which can be used to read the directory entries one by one.

handle :

pointer to a pointer to a GnomeVFSDirectoryHandle object.

uri :

uri to open.

options :

options for reading file information.

Returns :

an integer representing the result of the operation.

gnome_vfs_directory_read_next ()

GnomeVFSResult      gnome_vfs_directory_read_next       (GnomeVFSDirectoryHandle *handle,
                                                         GnomeVFSFileInfo *file_info);

Read the next directory entry from handle.

handle :

a directory handle.

file_info :

pointer to a GnomeVFSFileInfo struct where the data about the directory at handle will be stored.

Returns :

an integer value representing the result of the operation.

gnome_vfs_directory_close ()

GnomeVFSResult      gnome_vfs_directory_close           (GnomeVFSDirectoryHandle *handle);

Close handle.

handle :

a directory handle.

Returns :

an integer representing the result of the operation.

gnome_vfs_directory_visit ()

GnomeVFSResult      gnome_vfs_directory_visit           (const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);

Visit text_uri, retrieving information as specified by info_options.

This function is identical to gnome_vfs_directory_visit_uri(), except that it takes a text URI instead of a GnomeVFSURI.

text_uri :

uri string representation of a directory to visit the files in.

info_options :

GnomeVFSFileInfoOptions specifying what kind of file information must be retrieved about the contents of the directory referenced by uri.

visit_options :

GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, and filesystem checks. These affect the way visiting is done.

callback :

GnomeVFSDirectoryVisitFunc callback to be called for every visited file.

data :

data to be passed to callback at each iteration.

Returns :

a GnomeVFSResult indicating the success of the operation.

gnome_vfs_directory_visit_uri ()

GnomeVFSResult      gnome_vfs_directory_visit_uri       (GnomeVFSURI *uri,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);

Visit uri, retrieving information as specified by info_options.

This function is identical to gnome_vfs_directory_visit(), except that it takes a GnomeVFSURI instead of a text URI.

uri :

GnomeVFSURI of a directory to visit the files in.

info_options :

GnomeVFSFileInfoOptions specifying what kind of file information must be retrieved about the contents of the directory referenced by uri.

visit_options :

GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, and filesystem checks. These affect the way visiting is done.

callback :

GnomeVFSDirectoryVisitFunc callback to be called for every visited file.

data :

data to be passed to callback at each iteration.

Returns :

a GnomeVFSResult indicating whether the operation succeeded.

gnome_vfs_directory_visit_files ()

GnomeVFSResult      gnome_vfs_directory_visit_files     (const gchar *text_uri,
                                                         GList *file_list,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);

Fetches information about a list of files in a base uri uri.

If any of the files refers to a directory, and the callback requests recursion for the specified file, gnome_vfs_directory_visit_uri() will be called for the directory.

This function is identical to gnome_vfs_directory_visit_files_at_uri(), except that it takes a text URI instead of a GnomeVFSURI.

text_uri :

string representing the uri of a directory to visit the files in.

file_list :

GList of char *s of file names in uri to visit.

info_options :

bitmask controlling the type of information to fetch.

visit_options :

GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, and filesystem checks. These affect the way visiting is done.

callback :

GnomeVFSDirectoryVisitFunc callback to call with the file info structs.

data :

data to pass to callback.

Returns :

a GnomeVFSResult indicating the success of the operation.

gnome_vfs_directory_visit_files_at_uri ()

GnomeVFSResult      gnome_vfs_directory_visit_files_at_uri
                                                        (GnomeVFSURI *uri,
                                                         GList *file_list,
                                                         GnomeVFSFileInfoOptions info_options,
                                                         GnomeVFSDirectoryVisitOptions visit_options,
                                                         GnomeVFSDirectoryVisitFunc callback,
                                                         gpointer data);

Fetches information about a list of files in a base uri uri.

This function is identical to gnome_vfs_directory_visit_files_at_uri(), except that it takes a GnomeVFSURI instead of a text URI.

If any of the files refers to a directory, and the callback requests recursion for the specified file, gnome_vfs_directory_visit_uri() will be called for the directory.

uri :

GnomeVFSURI of a directory to visit the files in.

file_list :

GList of char *s of file names in uri to visit.

info_options :

GnomeVFSFileInfoOptions specifying what kind of file information must be retrieved about the contents of the directory referenced by uri.

visit_options :

GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, and filesystem checks. These affect the way visiting is done.

callback :

GnomeVFSDirectoryVisitFunc callback to call with the file info structs.

data :

data to pass to callback.

Returns :

a GnomeVFSResult indicating the success of the operation.

gnome_vfs_directory_list_load ()

GnomeVFSResult      gnome_vfs_directory_list_load       (GList **list,
                                                         const gchar *text_uri,
                                                         GnomeVFSFileInfoOptions options);

Load a directory from text_uri with the specified options into a list.

list :

address of a pointer to a list of GnomeVFSFileInfo.

text_uri :

a string representing the uri of the directory.

options :

options for loading the directory.

Returns :

an integer representing the result of the operation.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-init.html0000644000175000001440000002266511450333533020071 00000000000000 Initialization/Shutdown

Initialization/Shutdown

Initialization/Shutdown

Synopsis

gboolean            gnome_vfs_init                      (void);
gboolean            gnome_vfs_initialized               (void);
void                gnome_vfs_shutdown                  (void);
void                gnome_vfs_loadinit                  (gpointer app,
                                                         gpointer modinfo);
void                gnome_vfs_preinit                   (gpointer app,
                                                         gpointer modinfo);
void                gnome_vfs_postinit                  (gpointer app,
                                                         gpointer modinfo);

Description

Starting GnomeVFS up and shutting it down. Usually when using the whole GNOME framework this library is initialized and shutdown automatically when calling gnome_init.

Details

gnome_vfs_init ()

gboolean            gnome_vfs_init                      (void);

If gnome-vfs is not already initialized, initialize it. This must be called prior to performing any other gnome-vfs operations, and may be called multiple times without error.

Returns :

TRUE if gnome-vfs is successfully initialized (or was already initialized).

gnome_vfs_initialized ()

gboolean            gnome_vfs_initialized               (void);

Detects if gnome-vfs has already been initialized (gnome-vfs must be initialized prior to using any methods or operations).

Returns :

TRUE if gnome-vfs has already been initialized.

gnome_vfs_shutdown ()

void                gnome_vfs_shutdown                  (void);

Cease all active gnome-vfs operations and unload the MIME database from memory.


gnome_vfs_loadinit ()

void                gnome_vfs_loadinit                  (gpointer app,
                                                         gpointer modinfo);

Warning

gnome_vfs_loadinit is deprecated and should not be used in newly-written code.

app :

modinfo :


gnome_vfs_preinit ()

void                gnome_vfs_preinit                   (gpointer app,
                                                         gpointer modinfo);

Warning

gnome_vfs_preinit is deprecated and should not be used in newly-written code.

app :

modinfo :


gnome_vfs_postinit ()

void                gnome_vfs_postinit                  (gpointer app,
                                                         gpointer modinfo);

Warning

gnome_vfs_postinit is deprecated and should not be used in newly-written code.

app :

modinfo :

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-mime.html0000644000175000001440000005205211450333533020046 00000000000000 MIME typing

MIME typing

MIME typing — functions to get a mime-type for a file using its name or its content

Synopsis

const char *        gnome_vfs_mime_type_from_name       (const char *filename);
const char *        gnome_vfs_mime_type_from_name_or_default
                                                        (const char *filename,
                                                         const char *defaultv);
const char *        gnome_vfs_get_mime_type_common      (GnomeVFSURI *uri);
const char *        gnome_vfs_get_mime_type_from_uri    (GnomeVFSURI *uri);
const char *        gnome_vfs_get_mime_type_from_file_data
                                                        (GnomeVFSURI *uri);
const char *        gnome_vfs_get_file_mime_type_fast   (const char *path,
                                                         const struct stat *optional_stat_info);
const char *        gnome_vfs_get_file_mime_type        (const char *path,
                                                         const struct stat *optional_stat_info,
                                                         gboolean suffix_only);
gboolean            gnome_vfs_mime_type_is_supertype    (const char *mime_type);
char *              gnome_vfs_get_supertype_from_mime_type
                                                        (const char *mime_type);
void                gnome_vfs_mime_info_cache_reload    (const char *dir);
void                gnome_vfs_mime_reload               (void);
void                gnome_vfs_mime_shutdown             (void);

Description

Details

gnome_vfs_mime_type_from_name ()

const char *        gnome_vfs_mime_type_from_name       (const char *filename);

Warning

gnome_vfs_mime_type_from_name is deprecated and should not be used in newly-written code. This function is deprecated, use gnome_vfs_get_mime_type_for_name() instead.

Determine the mime type for filename.

filename :

a filename (the file does not necessarily exist).

Returns :

the mime-type for this filename. Will return GNOME_VFS_MIME_TYPE_UNKNOWN if mime-type could not be found.

gnome_vfs_mime_type_from_name_or_default ()

const char *        gnome_vfs_mime_type_from_name_or_default
                                                        (const char *filename,
                                                         const char *defaultv);

This routine tries to determine the mime-type of the filename only by looking at the filename from the GNOME database of mime-types.

filename :

a filename (the file does not necessarily exist).

defaultv :

a default value to be returned if no match is found.

Returns :

the mime-type of the filename. If no value could be determined, it will return defaultv.

gnome_vfs_get_mime_type_common ()

const char *        gnome_vfs_get_mime_type_common      (GnomeVFSURI *uri);

Tries to guess the mime type of the file represented by uri. Favors using the file data to the uri extension. Handles uri of a non-existent file by falling back on returning a type based on the extension. If cant find the mime-type based on the extension also then returns 'application/octet-stream'.

FIXME: This function will not necessarily return the same mime type as doing a get file info on the text uri.

uri :

a real file or a non-existent uri.

Returns :

the mime-type for uri.

gnome_vfs_get_mime_type_from_uri ()

const char *        gnome_vfs_get_mime_type_from_uri    (GnomeVFSURI *uri);

Tries to guess the mime type of the file uri by checking the file name extension. Works on non-existent files.

uri :

a file uri.

Returns :

the mime-type for file at uri.

gnome_vfs_get_mime_type_from_file_data ()

const char *        gnome_vfs_get_mime_type_from_file_data
                                                        (GnomeVFSURI *uri);

Warning

gnome_vfs_get_mime_type_from_file_data is deprecated and should not be used in newly-written code.

Tries to guess the mime type of the file uri by checking the file data using the magic patterns. Does not handle text files properly.

uri :

a file uri.

Returns :

the mime-type for this filename.

gnome_vfs_get_file_mime_type_fast ()

const char *        gnome_vfs_get_file_mime_type_fast   (const char *path,
                                                         const struct stat *optional_stat_info);

Tries to guess the mime type of the file represented by path. It uses extention/name detection first, and if that fails it falls back to mime-magic based lookup. This is faster than always doing mime-magic but doesn't always produce the right answer, so for important decisions you should use gnome_vfs_get_file_mime_type().

path :

path of the file whose mime type is to be found out.

optional_stat_info :

optional stat buffer.

Returns :

the mime-type for file at path.

gnome_vfs_get_file_mime_type ()

const char *        gnome_vfs_get_file_mime_type        (const char *path,
                                                         const struct stat *optional_stat_info,
                                                         gboolean suffix_only);

Tries to guess the mime type of the file represented by path. If suffix_only is false, uses the mime-magic based lookup first. Handles path of a non-existent file by falling back on returning a type based on the extension.

If you need a faster, less accurate version, use gnome_vfs_get_file_mime_type_fast().

path :

path of a file whose mime type is to be found out.

optional_stat_info :

optional stat buffer.

suffix_only :

whether or not to do a magic-based lookup.

Returns :

the mime-type for file at path.

gnome_vfs_mime_type_is_supertype ()

gboolean            gnome_vfs_mime_type_is_supertype    (const char *mime_type);

mime_type :

a const char * identifying a mime type.

Returns :

Whether mime_type is of the form "foo/*".

gnome_vfs_get_supertype_from_mime_type ()

char *              gnome_vfs_get_supertype_from_mime_type
                                                        (const char *mime_type);

mime_type :

mime type to get the supertype for.

Returns :

The supertype for mime_type, allocating new memory. The supertype of an application is computed by removing its suffix, and replacing it with "*". Thus, "foo/bar" will be converted to "foo/*".

Note

If this function is called on a supertype, it will return a copy of the supertype.

gnome_vfs_mime_info_cache_reload ()

void                gnome_vfs_mime_info_cache_reload    (const char *dir);

Reload the mime information for the dir.

dir :

directory path which needs reloading.

gnome_vfs_mime_reload ()

void                gnome_vfs_mime_reload               (void);

Reload the MIME database.


gnome_vfs_mime_shutdown ()

void                gnome_vfs_mime_shutdown             (void);

Warning

gnome_vfs_mime_shutdown is deprecated and should not be used in newly-written code. This function doesn't have to be called as the operating system automatically cleans up resources when exiting.

Unload the MIME database from memory.

gnome-vfs-2.24.4/doc/html/gnome-vfs-basic-file-ops.html0000644000175000001440000000516011450333533017516 00000000000000 File Operations

File Operations

Basic File Operations — Essential VFS operations. This includes creating, moving and deleting files, opening and closing file handles.
Reading and Writing Files — Reading from and writing to open file handles.
Truncating Files — Force files to a particular length
Getting and Setting File Information — Convenient high-level abstraction for obtaining and setting file information, including ACLs.
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-socket-buffer.html0000644000175000001440000007525011450333533021663 00000000000000 Unified bufferd network I/O

Unified bufferd network I/O

Unified bufferd network I/O — Posix style buffered network input/output.

Synopsis

typedef             GnomeVFSSocketBuffer;
GnomeVFSSocketBuffer *  gnome_vfs_socket_buffer_new     (GnomeVFSSocket *socket);
GnomeVFSResult      gnome_vfs_socket_buffer_destroy     (GnomeVFSSocketBuffer *socket_buffer,
                                                         gboolean close_socket,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_socket_buffer_read        (GnomeVFSSocketBuffer *socket_buffer,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_socket_buffer_peekc       (GnomeVFSSocketBuffer *socket_buffer,
                                                         char *character,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_socket_buffer_write       (GnomeVFSSocketBuffer *socket_buffer,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_socket_buffer_flush       (GnomeVFSSocketBuffer *socket_buffer,
                                                         GnomeVFSCancellation *cancellation);
GnomeVFSResult      gnome_vfs_socket_buffer_read_until  (GnomeVFSSocketBuffer *socket_buffer,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         gconstpointer boundary,
                                                         GnomeVFSFileSize boundary_len,
                                                         GnomeVFSFileSize *bytes_read,
                                                         gboolean *got_boundary,
                                                         GnomeVFSCancellation *cancellation);

Description

The GnomeVFSSocketBuffer functions are very similar to the GnomeVFSSocket ones. The only difference is that all input/output is done through an internally managed buffer. This might increase I/O performance as well as give you the possibility to use some convenient functions like gnome_vfs_socket_buffer_peekc and gnome_vfs_socket_buffer_read_until.

You can manually force all internally buffered data to get written with gnome_vfs_socket_buffer_flush.

Details

GnomeVFSSocketBuffer

typedef struct GnomeVFSSocketBuffer GnomeVFSSocketBuffer;

A handle to a socket buffer. A socket buffer is a temporary in-memory storage for data that is read from or written to a GnomeVFSSocket.


gnome_vfs_socket_buffer_new ()

GnomeVFSSocketBuffer *  gnome_vfs_socket_buffer_new     (GnomeVFSSocket *socket);

Create a socket buffer around socket. A buffered socket allows data to be poked at without reading it as it will be buffered. A future read will retrieve the data again.

socket :

socket to be buffered.

Returns :

a newly allocated GnomeVFSSocketBuffer.

gnome_vfs_socket_buffer_destroy ()

GnomeVFSResult      gnome_vfs_socket_buffer_destroy     (GnomeVFSSocketBuffer *socket_buffer,
                                                         gboolean close_socket,
                                                         GnomeVFSCancellation *cancellation);

Free the socket buffer.

socket_buffer :

buffered socket to destroy.

close_socket :

if TRUE, the socket being buffered will be closed.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_buffer_read ()

GnomeVFSResult      gnome_vfs_socket_buffer_read        (GnomeVFSSocketBuffer *socket_buffer,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_read,
                                                         GnomeVFSCancellation *cancellation);

Read bytes bytes of data from the socket into socket_buffer.

socket_buffer :

buffered socket to read data from.

buffer :

allocated buffer of at least bytes bytes to be read into.

bytes :

number of bytes to read from socket_buffer into buffer.

bytes_read :

pointer to a GnomeVFSFileSize, will contain the number of bytes actually read from the socket_buffer on return.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_buffer_peekc ()

GnomeVFSResult      gnome_vfs_socket_buffer_peekc       (GnomeVFSSocketBuffer *socket_buffer,
                                                         char *character,
                                                         GnomeVFSCancellation *cancellation);

Peek at the next character in socket_buffer without actually reading the character in. The next read will retrieve c (as well as any following data if requested).

socket_buffer :

the socket buffer to read from.

character :

pointer to a char, will contain a character on return from a successful "peek".

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_buffer_write ()

GnomeVFSResult      gnome_vfs_socket_buffer_write       (GnomeVFSSocketBuffer *socket_buffer,
                                                         gconstpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         GnomeVFSFileSize *bytes_written,
                                                         GnomeVFSCancellation *cancellation);

Write bytes bytes of data from buffer to socket_buffer.

socket_buffer :

buffered socket to write data to.

buffer :

data to write to the socket_buffer.

bytes :

number of bytes to write from buffer to socket_buffer.

bytes_written :

pointer to a GnomeVFSFileSize, will contain the number of bytes actually written to the socket_buffer on return.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_buffer_flush ()

GnomeVFSResult      gnome_vfs_socket_buffer_flush       (GnomeVFSSocketBuffer *socket_buffer,
                                                         GnomeVFSCancellation *cancellation);

Write all outstanding data to socket_buffer.

socket_buffer :

buffer to flush.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

gnome_vfs_socket_buffer_read_until ()

GnomeVFSResult      gnome_vfs_socket_buffer_read_until  (GnomeVFSSocketBuffer *socket_buffer,
                                                         gpointer buffer,
                                                         GnomeVFSFileSize bytes,
                                                         gconstpointer boundary,
                                                         GnomeVFSFileSize boundary_len,
                                                         GnomeVFSFileSize *bytes_read,
                                                         gboolean *got_boundary,
                                                         GnomeVFSCancellation *cancellation);

Read up to bytes bytes of data from the socket_buffer into buffer until boundary is reached. got_boundary will be set accordingly.

Note that if bytes is smaller than boundary_len there is no way to detected the boundary! So if you want to make sure that every boundary is found (in a loop maybe) assure that bytes is at least as big as boundary_len.

socket_buffer :

buffered socket to read data from.

buffer :

allocated buffer of at least bytes bytes to be read into.

bytes :

maximum number of bytes to read from socket_buffer into buffer.

boundary :

the boundary until which is read.

boundary_len :

the length of the boundary.

bytes_read :

pointer to a GnomeVFSFileSize, will contain the number of bytes actually read from the socket_buffer on return.

got_boundary :

pointer to a gboolean which will be TRUE if the boundary was found or FALSE otherwise.

cancellation :

handle allowing cancellation of the operation.

Returns :

GnomeVFSResult indicating the success of the operation.

Since 2.8

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-mime-utils.html0000644000175000001440000004657511450333533021221 00000000000000 gnome-vfs-mime-utils

gnome-vfs-mime-utils

gnome-vfs-mime-utils

Synopsis

#define             GNOME_VFS_MIME_TYPE_UNKNOWN
enum                GnomeVFSMimeEquivalence;
GnomeVFSMimeEquivalence  gnome_vfs_mime_type_get_equivalence
                                                        (const char *mime_type,
                                                         const char *base_mime_type);
gboolean            gnome_vfs_mime_type_is_equal        (const char *a,
                                                         const char *b);
const char *        gnome_vfs_get_mime_type_for_name    (const char *filename);
const char *        gnome_vfs_get_mime_type_for_data    (gconstpointer data,
                                                         int data_size);
const char *        gnome_vfs_get_mime_type_for_name_and_data
                                                        (const char *filename,
                                                         gconstpointer data,
                                                         gssize data_size);
char *              gnome_vfs_get_mime_type             (const char *text_uri);
char *              gnome_vfs_get_slow_mime_type        (const char *text_uri);

Description

Details

GNOME_VFS_MIME_TYPE_UNKNOWN

#define GNOME_VFS_MIME_TYPE_UNKNOWN "application/octet-stream"

The value returned for the MIME type when a file did not match any entries in the MIME database. May be treated as a file of an unknown type.


enum GnomeVFSMimeEquivalence

typedef enum {
  GNOME_VFS_MIME_UNRELATED,
  GNOME_VFS_MIME_IDENTICAL,
  GNOME_VFS_MIME_PARENT
} GnomeVFSMimeEquivalence;

Describes the possible relationship between two MIME types, returned by gnome_vfs_mime_type_get_equivalence().

GNOME_VFS_MIME_UNRELATED

The two MIME types are not related.

GNOME_VFS_MIME_IDENTICAL

The two MIME types are identical.

GNOME_VFS_MIME_PARENT

One of the two MIME types is a parent of the other one. Note that this relationship is transient, i.e. if a is a parent of b and b is a parent of c, a is also considered a parent of c.

gnome_vfs_mime_type_get_equivalence ()

GnomeVFSMimeEquivalence  gnome_vfs_mime_type_get_equivalence
                                                        (const char *mime_type,
                                                         const char *base_mime_type);

Compares mime_type to base_mime_type. There are three possible relationships between the two strings.

  • If they are identical and mime_type is the same as base_mime_type, then GNOME_VFS_MIME_IDENTICAL is returned. This would be the case if "audio/midi" and "audio/x-midi" are passed in.

  • If base_mime_type is a parent type of mime_type, then GNOME_VFS_MIME_PARENT is returned. As an example, "text/plain" is a parent of "text/rss", "image" is a parent of "image/png", and "application/octet-stream" is a parent of almost all types.

  • Finally, if the two mime types are unrelated, then GNOME_VFS_MIME_UNRELATED is returned.

mime_type :

a const char * containing a mime type, e.g. "image/png".

base_mime_type :

a const char * containing either a mime type or a base mime type.

Returns :

A GnomeVFSMimeEquivalence indicating the relationship between mime_type and base_mime_type.

gnome_vfs_mime_type_is_equal ()

gboolean            gnome_vfs_mime_type_is_equal        (const char *a,
                                                         const char *b);

Compares two mime types to determine if they are equivalent. They are equivalent if and only if they refer to the same mime type.

a :

a const char * containing a mime type, e.g. "image/png".

b :

a const char * containing a mime type, e.g. "image/png".

Returns :

TRUE, if a and b are equivalent mime types.

gnome_vfs_get_mime_type_for_name ()

const char *        gnome_vfs_get_mime_type_for_name    (const char *filename);

Determine the mime type for filename. The file filename may not exist, this function does not access the actual file. If the mime-type cannot be determined, GNOME_VFS_MIME_TYPE_UNKNOWN is returned.

filename :

a filename.

Returns :

the mime-type for this filename or GNOME_VFS_MIME_TYPE_UNKNOWN if mime-type could not be determined.

Since 2.14


gnome_vfs_get_mime_type_for_data ()

const char *        gnome_vfs_get_mime_type_for_data    (gconstpointer data,
                                                         int data_size);

Tries to guess the mime type of the data in data using the magic patterns.

data :

a pointer to data in memory.

data_size :

size of the data.

Returns :

the mime-type for data.

gnome_vfs_get_mime_type_for_name_and_data ()

const char *        gnome_vfs_get_mime_type_for_name_and_data
                                                        (const char *filename,
                                                         gconstpointer data,
                                                         gssize data_size);

Determine the mime-type for filename and data. This function tries to be smart (e.g. mime subclassing) about returning the right mime-type by looking at both the data and the filename. The file will not be accessed. If the mime-type cannot be determined, GNOME_VFS_MIME_TYPE_UNKNOWN is returned.

filename :

a filename.

data :

a pointer to the data in the memory

data_size :

the size of data

Returns :

the mime-type for this filename or GNOME_VFS_MIME_TYPE_UNKNOWN if mime-type could not be determined.

Since 2.14


gnome_vfs_get_mime_type ()

char *              gnome_vfs_get_mime_type             (const char *text_uri);

Determine the mime type of text_uri. The mime type is determined in the same way as by gnome_vfs_get_file_info(). This is meant as a convenient function for times when you only want the mime type.

text_uri :

path of the file for which to get the mime type.

Returns :

The mime type, or NULL if there is an error reading the file.

gnome_vfs_get_slow_mime_type ()

char *              gnome_vfs_get_slow_mime_type        (const char *text_uri);

Determine the mime type of text_uri. The mime type is determined in the same way as by gnome_vfs_get_file_info(). This is meant as a convenience function for times when you only want the mime type.

text_uri :

URI of the file for which to get the mime type

Returns :

The mime type, or NULL if there is an error reading the file.

Since 2.14

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-resolve.html0000644000175000001440000006047511450333533020606 00000000000000 DNS Resolution

DNS Resolution

DNS Resolution — Generic thread-safe address resolution functions.

Synopsis

GnomeVFSResult      gnome_vfs_resolve                   (const char *hostname,
                                                         GnomeVFSResolveHandle **handle);
void                gnome_vfs_resolve_free              (GnomeVFSResolveHandle *handle);
gboolean            gnome_vfs_resolve_next_address      (GnomeVFSResolveHandle *handle,
                                                         GnomeVFSAddress **address);
void                gnome_vfs_resolve_reset_to_beginning
                                                        (GnomeVFSResolveHandle *handle);
                    GnomeVFSAddress;
GnomeVFSAddress *   gnome_vfs_address_dup               (GnomeVFSAddress *address);
void                gnome_vfs_address_free              (GnomeVFSAddress *address);
int                 gnome_vfs_address_get_family_type   (GnomeVFSAddress *address);
guint32             gnome_vfs_address_get_ipv4          (GnomeVFSAddress *address);
GType               gnome_vfs_address_get_type          (void);
GnomeVFSAddress *   gnome_vfs_address_new_from_ipv4     (guint32 ipv4_address);
GnomeVFSAddress *   gnome_vfs_address_new_from_sockaddr (struct sockaddr *sa,
                                                         int len);
GnomeVFSAddress *   gnome_vfs_address_new_from_string   (const char *address);
char *              gnome_vfs_address_to_string         (GnomeVFSAddress *address);

Description

Details

gnome_vfs_resolve ()

GnomeVFSResult      gnome_vfs_resolve                   (const char *hostname,
                                                         GnomeVFSResolveHandle **handle);

Tries to resolve hostname. If the operation was successful you can get the resolved addresses in form of GnomeVFSAddress by calling gnome_vfs_resolve_next_address().

hostname :

hostname you want to resolve.

handle :

pointer to a pointer to a GnomeVFSResolveHandle.

Returns :

A GnomeVFSResult indicating the success of the operation.

Since 2.8


gnome_vfs_resolve_free ()

void                gnome_vfs_resolve_free              (GnomeVFSResolveHandle *handle);

Use this function to free a GnomeVFSResolveHandle returned by gnome_vfs_resolve().

handle :

a GnomeVFSResolveHandle.

Since 2.8


gnome_vfs_resolve_next_address ()

gboolean            gnome_vfs_resolve_next_address      (GnomeVFSResolveHandle *handle,
                                                         GnomeVFSAddress **address);

Stores the next GnomeVFSAddress available in handle of the former lookup in address.

handle :

a GnomeVFSResolveHandle.

address :

a pointer to a pointer to a GnomeVFSAddress.

Returns :

TRUE if the next address was stored in address or FALSE if no other address is available.

Since 2.8


gnome_vfs_resolve_reset_to_beginning ()

void                gnome_vfs_resolve_reset_to_beginning
                                                        (GnomeVFSResolveHandle *handle);

Reset handle so that a following call to gnome_vfs_resolve_next_address() will return the first resolved address.

handle :

a GnomeVFSResolveHandle.

Since 2.8


GnomeVFSAddress

typedef struct _GnomeVFSAddress GnomeVFSAddress;


gnome_vfs_address_dup ()

GnomeVFSAddress *   gnome_vfs_address_dup               (GnomeVFSAddress *address);

Duplicates address.

address :

A GnomeVFSAddress.

Returns :

Duplicated address or NULL if address was not valid.

Since 2.8


gnome_vfs_address_free ()

void                gnome_vfs_address_free              (GnomeVFSAddress *address);

Frees the memory allocated for address.

address :

A GnomeVFSAddress.

Since 2.8


gnome_vfs_address_get_family_type ()

int                 gnome_vfs_address_get_family_type   (GnomeVFSAddress *address);

Use this function to retrive the address family of address.

address :

A pointer to a GnomeVFSAddress

Returns :

The address family of address.

Since 2.8


gnome_vfs_address_get_ipv4 ()

guint32             gnome_vfs_address_get_ipv4          (GnomeVFSAddress *address);

address :

A GnomeVFSAddress.

Returns :

The associated IPv4 address in network byte order. Note that you should avoid using this function because newly written code should be protocol independent.

Since 2.8


gnome_vfs_address_get_type ()

GType               gnome_vfs_address_get_type          (void);

Returns :


gnome_vfs_address_new_from_ipv4 ()

GnomeVFSAddress *   gnome_vfs_address_new_from_ipv4     (guint32 ipv4_address);

Creates a new GnomeVFSAddress from ipv4_address.

Note that this function should be avoided because newly written code should be protocol independent.

ipv4_address :

A IPv4 Address in network byte order

Returns :

A new GnomeVFSAdress.

Since 2.8


gnome_vfs_address_new_from_sockaddr ()

GnomeVFSAddress *   gnome_vfs_address_new_from_sockaddr (struct sockaddr *sa,
                                                         int len);

Creates a new GnomeVFSAddress from sa.

sa :

A pointer to a sockaddr.

len :

The size of sa.

Returns :

The new GnomeVFSAddress or NULL if sa was invalid or the address family isn't supported.

Since 2.8


gnome_vfs_address_new_from_string ()

GnomeVFSAddress *   gnome_vfs_address_new_from_string   (const char *address);

Creates a new GnomeVFSAddress from the given string or NULL if address isn't a valid.

address :

A string representation of the address.

Returns :

The new GnomeVFSAddress.

Since 2.8


gnome_vfs_address_to_string ()

char *              gnome_vfs_address_to_string         (GnomeVFSAddress *address);

Translate address to a printable string.

address :

A pointer to a GnomeVFSAddress

Returns :

A newly alloced string representation of address which the caller must free.

Since 2.8

gnome-vfs-2.24.4/doc/html/gnome-vfs-writing-modules.html0000644000175000001440000006616611450333533020067 00000000000000 Writing Modules

Writing Modules

Writing Modules — basic gnome-vfs module concepts

Introduction

This section will introduce the basic concepts that are needed for writing GNOME Virtual File System modules.

GNOME VFS URIs (Uniform Resource Identifiers)

The GNOME Virtual file system uses URIs similiar to the standard WWW URIs. The basic difference between a VFS URI and WWW URI is that, while with WWW URIs you can only use a single protocol for accessing a certain file, with GNOME VFS URIs you can combine different access methods in sequence.

For example, suppose you want to access file hello.c in a tar.gz file which is in turn accessible through FTP from a remote machine. In order to access this file, you would need to:

  1. Connect to the FTP site.

  2. Fetch the tar.gz file.

  3. Decompress the tar.gz file using GZIP.

  4. Extract hello.c from the resulting uncompressed tar file.

The GNOME Virtual File System lets you express this by combining the three access methods (i.e. tar, GZIP and FTP) into a single URI. Access methods are combined in the URI by using the `#' character, followed by the name for the access method and the subpath for that specific access method. The subpath can be omitted for those storage methods that do not need a path to retrieve the file. (For example, a GZIP file always contains a single uncompressed file, so no path is needed to locate the uncompressed file within the GZIP file. But on the other hand, the TAR method requires a path to locate a specific file or directory.)

For example, in the case we outlined above, the URI would look something like:


        ftp://username:password@host.net/path/to/file.tar.gz#gzip:#tar:/path/to/hello.c

Each method/subpath couple is called a URI element. When URI elements are combined like this, each URI element uses the previous one to access a base resource into which it will look up a file, using the subpath information. For this reason, we will say that each element is the parent element for the following one.

The first URI element, the one which has no parent, is called the toplevel element. It does not use the `#' character; instead, it uses the standard syntax of WWW URIs:


        method://user:password@host/path/to/file

This way, normal WWW URIs can be used with the GNOME Virtual File System.

Toplevel elements are also special because they let users specify user names, passwords and host names, while non-toplevel elements don't.


The GnomeVFSURI type

Within the GNOME Virtual File System library, URI elements are represented by a special type, GnomeVFSURI, which is meant to represent user-provided URIs in a machine-optimized way.

Every GnomeVFSURI contains the following information:

  • A reference counter

  • A pointer to the parent GnomeVFSURI URI element.

  • The subpath.

  • The name of the access method.

  • A pointer to a GnomeVFSMethod object, describing the access method (see below).

GNOME Virtual File System access method implementation

In the GNOME Virtual File System, the implementations for all the access methods are loaded at runtime, as shared library modules. The modules are loaded during parsing of the string URI. If the parser encounters an access method for which no implementation is currently loaded, it retrieves the corresponding library file, dynamically links it into the executable, and initializes it.

After initialization, the module returns a special GnomeVFSMethod object that contains pointers to the various implementation functions for that specific method. By storing a pointer to this object into the GnomeVFSURI type, the VFS library is then able to use these functions for file access.

How file access is performed

When the VFS library needs to perform some file operation, it performs the following steps:

  • If the URI is given in textual form (i.e. as a string), it parses it and activates the necessary access method modules.

  • It retrieves a pointer to the lowmost level URI element.

  • It retrieves a pointer to the GnomeVFSMethod object that corresponds to the access method for that URI element.

  • It retrieves a pointer to the implementation function for that operation from the GnomeVFSMethodobject.

  • It invokes that implementation function passing the pointer to the lowmost level URI element.

Combining the access methods is always done within the method implementation. If the method implementation needs to do some file operation on the the parent URI element, it can do so by simply invoking the corresponding VFS function, by using the parent pointer in the GnomeVFSURI object.

For example, suppose you have to read a simple URI like the following:


        file:/home/ettore/file.gz#gzip:

In this case, the GZIP method will be invoked with a pointer to the GnomeVFSURI describing the `gzip' part. The GZIP method will be able to read file.gz by just invoking the corresponding GNOME VFS library function on its parent and decompressing it on the fly.

Implementing an access method in practice

Implementing a new access method is really not difficult at all. This section explains how this is done.

Using shared libraries

Every module must be compiled as a shared library (i.e. a .so file).

The current way for accessing the right module for the right method is very simple, and is based on file names. In practice, a module implementing an access method named foo must be named libfoo.so. For example, the module implementing the ftp: access method is called libftp.so, the module implementing #gzip: access is called libgzip.so and so on.

This might change in the future.


The initialization/shutdown functions

Every shared library module must provide two functions:


GnomeVFSMethod *vfs_module_init (const char *method_name, const char *args);
void vfs_module_shutdown (GnomeVFSMethod *method);

These are the only functions that the VFS library will access directly. All the other symbols (i.e. functions and variables) in the module should be made static.

vfs_module_init() is called as soon as the module is loaded in memory. It will have to return a pointer to a GnomeVFSMethod object that will contain the pointers to the method's implementation functions. We will describe this later.

vfs_module_shutdown, instead, is called before the module is unloaded or the program that uses it dies. This functions should:

  • Deallocate all the memory allocated by the module.

  • Close all the file descriptors associated with the module.

  • Kill any external process spawned by the module.

  • In general, make sure that any operation that was going on before this function was called will be interrupted correctly, as soon as possible and without any leaks.


The GnomeVFSMethod object

This object contains pointers to the module implementation functions.

A method can choose itself which functions to implement. However, it must at least provide a GnomeVFSMethodOpenFunc and GnomeVFSMethodIsLocalFunc implementation.

struct GnomeVFSMethod {
	gsize method_table_size;			/* Used for versioning */
	GnomeVFSMethodOpenFunc open;
	GnomeVFSMethodCreateFunc create;
	GnomeVFSMethodCloseFunc close;
	GnomeVFSMethodReadFunc read;
	GnomeVFSMethodWriteFunc write;
	GnomeVFSMethodSeekFunc seek;
	GnomeVFSMethodTellFunc tell;
	GnomeVFSMethodTruncateHandleFunc truncate_handle;
	GnomeVFSMethodOpenDirectoryFunc open_directory;
	GnomeVFSMethodCloseDirectoryFunc close_directory;
	GnomeVFSMethodReadDirectoryFunc read_directory;
	GnomeVFSMethodGetFileInfoFunc get_file_info;
	GnomeVFSMethodGetFileInfoFromHandleFunc get_file_info_from_handle;
	GnomeVFSMethodIsLocalFunc is_local;
	GnomeVFSMethodMakeDirectoryFunc make_directory;
	GnomeVFSMethodRemoveDirectoryFunc remove_directory;
	GnomeVFSMethodMoveFunc move;
	GnomeVFSMethodUnlinkFunc unlink;
	GnomeVFSMethodCheckSameFSFunc check_same_fs;
	GnomeVFSMethodSetFileInfo set_file_info;
	GnomeVFSMethodTruncateFunc truncate;
	GnomeVFSMethodFindDirectoryFunc find_directory;
	GnomeVFSMethodCreateSymbolicLinkFunc create_symbolic_link;
	GnomeVFSMethodMonitorAddFunc monitor_add;
	GnomeVFSMethodMonitorCancelFunc monitor_cancel;
	GnomeVFSMethodFileControlFunc file_control;
	GnomeVFSMethodForgetCacheFunc forget_cache;
	GnomeVFSMethodGetVolumeFreeSpaceFunc get_volume_free_space;
};
typedef GnomeVFSResult (* GnomeVFSMethodOpenFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle
			       	 	**method_handle_return,
					 GnomeVFSURI *uri,
					 GnomeVFSOpenMode mode,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodCreateFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle
			       	 	**method_handle_return,
					 GnomeVFSURI *uri,
					 GnomeVFSOpenMode mode,
					 gboolean exclusive,
					 guint perm,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodCloseFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodReadFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 gpointer buffer,
					 GnomeVFSFileSize num_bytes,
					 GnomeVFSFileSize *bytes_read_return,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodWriteFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 gconstpointer buffer,
					 GnomeVFSFileSize num_bytes,
					 GnomeVFSFileSize *bytes_written_return,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodSeekFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 GnomeVFSSeekPosition  whence,
					 GnomeVFSFileOffset    offset,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodTellFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 GnomeVFSFileSize *offset_return);

typedef GnomeVFSResult (* GnomeVFSMethodOpenDirectoryFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle **method_handle,
					 GnomeVFSURI *uri,
					 GnomeVFSFileInfoOptions options,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodCloseDirectoryFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodReadDirectoryFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 GnomeVFSFileInfo *file_info,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodGetFileInfoFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSURI *uri,
					 GnomeVFSFileInfo *file_info,
					 GnomeVFSFileInfoOptions options,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodGetFileInfoFromHandleFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSMethodHandle *method_handle,
					 GnomeVFSFileInfo *file_info,
					 GnomeVFSFileInfoOptions options,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodTruncateFunc) (GnomeVFSMethod *method,
						       GnomeVFSURI *uri,
						       GnomeVFSFileSize length,
						       GnomeVFSContext *context);
typedef GnomeVFSResult (* GnomeVFSMethodTruncateHandleFunc) (GnomeVFSMethod *method,
							     GnomeVFSMethodHandle *handle,
							     GnomeVFSFileSize length,
							     GnomeVFSContext *context);

typedef gboolean       (* GnomeVFSMethodIsLocalFunc)
					(GnomeVFSMethod *method,
					 const GnomeVFSURI *uri);

typedef GnomeVFSResult (* GnomeVFSMethodMakeDirectoryFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSURI *uri,
					 guint perm,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodFindDirectoryFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSURI *find_near_uri,
					 GnomeVFSFindDirectoryKind kind,
					 GnomeVFSURI **result_uri,
					 gboolean create_if_needed,
					 gboolean find_if_needed,
					 guint perm,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodRemoveDirectoryFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSURI *uri,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodMoveFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSURI *old_uri,
					 GnomeVFSURI *new_uri,
					 gboolean force_replace,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodUnlinkFunc)
                                        (GnomeVFSMethod *method,
					 GnomeVFSURI *uri,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodCheckSameFSFunc)
					(GnomeVFSMethod *method,
					 GnomeVFSURI *a,
					 GnomeVFSURI *b,
					 gboolean *same_fs_return,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodSetFileInfo)
					(GnomeVFSMethod *method,
					 GnomeVFSURI *a,
					 const GnomeVFSFileInfo *info,
					 GnomeVFSSetFileInfoMask mask,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodCreateSymbolicLinkFunc)
                                        (GnomeVFSMethod *method,
                                         GnomeVFSURI *uri,
                                         const gchar *target_reference,
                                         GnomeVFSContext *context);
typedef GnomeVFSResult (* GnomeVFSMethodMonitorAddFunc)
     					(GnomeVFSMethod *method,
      					 GnomeVFSMethodHandle **method_handle_return,
      					 GnomeVFSURI *uri,
      					 GnomeVFSMonitorType monitor_type);

typedef GnomeVFSResult (* GnomeVFSMethodMonitorCancelFunc)
     					(GnomeVFSMethod *method,
      					 GnomeVFSMethodHandle *handle);

typedef GnomeVFSResult (* GnomeVFSMethodFileControlFunc)
     					(GnomeVFSMethod *method,
      					 GnomeVFSMethodHandle *method_handle,
					 const char *operation,
					 gpointer operation_data,
					 GnomeVFSContext *context);

typedef GnomeVFSResult (* GnomeVFSMethodForgetCacheFunc)
     					(GnomeVFSMethod *method,
      					 GnomeVFSMethodHandle *method_handle,
					 GnomeVFSFileOffset offset,
					 GnomeVFSFileSize size);

typedef GnomeVFSResult (* GnomeVFSMethodGetVolumeFreeSpaceFunc)
     					(GnomeVFSMethod *method,
					 const GnomeVFSURI *uri,
				 	 GnomeVFSFileSize *free_space);

Handling cancellation

As VFS operations might take very long to complete, especially in the case of transient errors (such as a network server that has gone down), the GNOME Virtual File System Library provides a standard way to handle the cancellation of VFS operations.

The GnomeVFSCancellation object

The object that encapsulates this functionality is GnomeVFSCancellation. Most implementation functions get a pointer to such an object, and are expected to use this object to recognize when an operation should be interrupted.

The most simple way to check for a cancellation request is to poll the object with gnome_vfs_cancellation_check():

  
gboolean gnome_vfs_cancellation_check (GnomeVFSCancellation *cancellation);

This function will return a nonzero value if the current operation should be cancelled.

Notice that cancellation is an asynchronous operation that might happen outside your function, in parallel with the code that you are writing. For example, in the case of threads, the request will be set in the master thread; in the case of slave CORBA-driven processes, the request will be activated by a Unix signal. So you can expect a cancellation request to happen (and consequently be signalled in GnomeVFSCancellation) at any time.

For this reason, you should be calling this function periodically, whenever you are going to perform several iterations of the same task, or execute a single expensive task. When the function returns a nonzero value, the correct way to react is:

  1. Clean things up so that the result of the operations that have been performed are all cancelled.

  2. Return the GNOME_VFS_ERROR_CANCELLED error code.

Note, there are some other situations in which you want to be able to interrupt an I/O operation when a cancellation request is performed. In such cases, polling is not a viable option.

For this reason, GnomeVFSCancellation provides an alternative way of sending notifications, using a file descriptor. To use this feature, you should use the following function:


gint gnome_vfs_cancellation_get_fd (GnomeVFSCancellation *cancellation); 

When this function is called, it will return an open file descriptor, which is the read-side of a pipe. The pipe will be given a character from the write side as soon as a cancellation request is sent. You can check for a cancellation by using the select() system call with this file descriptor. As soon as select reports that some data is available on this file descriptor, you know that a cancellation is being requested.

For example, if you are reading from a file descriptor and you want to check for a pending cancellation at the same time, you can set up selectfor checking if data is available on both the cancellation file descriptor and the file descriptor you are reading from.


Dealing with EINTR

In order to maximize the chance of cancelling an operation immediately, the GNOME Virtual File System can sends a signal to the asynchronous thread or process. This does not happen on all the systems and setups, though.

The result of this is that, if a process is in the middle of a Unix system call while receiving this signal, the system call might be interrupted and return a EINTR error.

For this reason, when you receive EINTR you should check if a cancellation request is pending, using gnome_vfs_cancellation_check() on the GnomeVFSCancellation object that the implementation function received:

  • If a cancellation is indeed pending (gnome_vfs_cancellation_check() returns a nonzero value), you should cancel the operation, cleaning up all the effects, and return GNOME_VFS_ERROR_INTERRUPTED or GNOME_VFS_ERROR_CANCELLED

  • Otherwise, retry the system call as you would normally do.

Basic guidelines for writing a module

Writing GNOME VFS modules is easy, but there are a few things that you must keep in mind when hacking them:

  • All of the code must be completely thread safe. The reason for this is that the asynchronous GNOME VFS engine will use threads when available; if you don't make sure that the code is thread-safe, every kind of weird and unexpected errors will happen. As debugging these problems can be very hard, it's important to write the code with threads in mind right from the start.

  • Use the special gnome_vfs_*_cancellable() VFS functions instead of the standard non-cancellable ones, passing them the same GnomeVFSCancellation object you are given, so that the operation can always be interrrupted at any time.

  • The code should respect the basic GNOME guidelines for source code indentation and style.

How to make the code thread safe

Although it might sound scary at first, making the code for the modules thread safe is not complicated at all.

First of all, make sure the amount of global variables is kept to the bare minimum. If possible, you should avoid them at all cost.

For those cases where globals are inevitable (such as caches, connection pools or things like that), you have to make sure every variable is properly associated with a mutex, and that the mutex is locked before every access to this variable and released afterwards. You can also use G_LOCK_DEFINE_STATIC, G_LOCK and G_UNLOCK for this.

Generally speaking, if you are going to dynamically allocate structures that are shared by more than one operation/file, you should provide all of them with their nice mutex locks.

Finally, make sure mutexes are used only if they are available. One way to do so is to use macros like the following:


#ifdef G_THREADS_ENABLED
#define MUTEX_NEW()     g_mutex_new ()
#define MUTEX_FREE(a)   g_mutex_free (a)
#define MUTEX_LOCK(a)   if ((a) != NULL) g_mutex_lock (a)
#define MUTEX_UNLOCK(a) if ((a) != NULL) g_mutex_unlock (a)
#else
#define MUTEX_NEW()     NULL
#define MUTEX_FREE(a)
#define MUTEX_LOCK(a)
#define MUTEX_UNLOCK(a)
#endif

G_LOCK_DEFINE_STATIC, G_LOCK and G_UNLOCK in GLib are always safe to use, as they are already defined to be nothing when thread support is not available.

(Probably it would be a good idea to have something in the private GNOME VFS API that does this stuff for all the modules.)

gnome-vfs-2.24.4/doc/html/index.sgml0000644000175000001440000042657511450333532014147 00000000000000 gnome-vfs-2.24.4/doc/html/modules.html0000644000175000001440000001006711450333533014474 00000000000000 Filesystem Modules

Filesystem Modules

Writing Modules — basic gnome-vfs module concepts
gnome-vfs-method
gnome-vfs-module
gnome-vfs-module-shared
gnome-vfs-module-callback-module-api — invoking callbacks from a gnome-vfs module to ask the application for necessary information (authentication, ...)
GnomeVFSContext — contexts allows modules to track thread usage and cancellation properly
gnome-vfs-transform
gnome-vfs-parse-ls — convenience functions for modules which want to parse a ls-like directory listing
gnome-vfs-standard-callbacks — standard callbacks for use by gnome-vfs module writers
gnome-vfs-module-callback — functions used by apps if they want to answer to callback invocations by gnome-vfs modules

Modules are the mechanism by which GnomeVFS accesses different filesystems, from http, to the local disk, to smb. Module authors must implement a simple set of filesystem operations and can provide varying degrees of service (read-only, read-write, seeking, etc). Modules are dynamically loaded based upon the URI scheme passed into the high-level GnomeVFS APIs.

gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-directory-basic-ops.html0000644000175000001440000002304711450333533023003 00000000000000 Basic Directory Operations

Basic Directory Operations

Basic Directory Operations — Creating and removing directories.

Description

Details

gnome_vfs_make_directory ()

GnomeVFSResult      gnome_vfs_make_directory            (const gchar *text_uri,
                                                         guint perm);

Create text_uri as a directory.

text_uri :

uri of the directory to be created.

perm :

Unix-style permissions for the newly created directory

Returns :

an integer representing the result of the operation.

gnome_vfs_make_directory_for_uri ()

GnomeVFSResult      gnome_vfs_make_directory_for_uri    (GnomeVFSURI *uri,
                                                         guint perm);

Create a directory at uri. Only succeeds if a file or directory does not already exist at uri.

uri :

uri of the directory to be created.

perm :

Unix-style permissions for the newly created directory.

Returns :

an integer representing the result of the operation.

gnome_vfs_remove_directory ()

GnomeVFSResult      gnome_vfs_remove_directory          (const gchar *text_uri);

Remove text_uri. text_uri must be an empty directory.

text_uri :

path of the directory to be removed.

Returns :

an integer representing the result of the operation.

gnome_vfs_remove_directory_from_uri ()

GnomeVFSResult      gnome_vfs_remove_directory_from_uri (GnomeVFSURI *uri);

Remove uri. uri must be an empty directory.

uri :

uri of the directory to be removed.

Returns :

an integer representing the result of the operation.
gnome-vfs-2.24.4/doc/html/networking.html0000644000175000001440000000567211450333533015221 00000000000000 Networking

Networking

Zeroconf networking support — Gets information about available Zeroconf (aka RendezVous™) services on a local network.
DNS Resolution — Generic thread-safe address resolution functions.
SSL support functions — Functions to send and receive encrypted data over a socket.
Unified network I/O — Posix style network input/output functions.
Unified bufferd network I/O — Posix style buffered network input/output.
Internet connection — Simple TCP/IP connection functions.
gnome-vfs-2.24.4/doc/html/right.png0000644000175000001440000000073011450333532013754 00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ2 I%Á=eIDATxœ­”!oÂ@†Ÿ.'**M0$ÄÁ$¿?1~¢vIeEuLlÉ&–Ô4‚ä Í¶B»Ý›œ¹|÷>ï—ûî …$ݶ©oc<”´ÑA©¤×€X’ò gnome-vfs-method

gnome-vfs-method

gnome-vfs-method

Synopsis

GnomeVFSMethod *    (*GnomeVFSMethodInitFunc)           (const char *method_name,
                                                         const char *config_args);
void                (*GnomeVFSMethodShutdownFunc)       (GnomeVFSMethod *method);
GnomeVFSResult      (*GnomeVFSMethodTruncateFunc)       (GnomeVFSMethod *method,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileSize length,
                                                         GnomeVFSContext *context);
GnomeVFSResult      (*GnomeVFSMethodTruncateHandleFunc) (GnomeVFSMethod *method,
                                                         GnomeVFSMethodHandle *handle,
                                                         GnomeVFSFileSize length,
                                                         GnomeVFSContext *context);
#define             VFS_METHOD_HAS_FUNC                 (method,
                                                         func)
gboolean            gnome_vfs_method_init               (void);
GnomeVFSMethod *    gnome_vfs_method_get                (const gchar *name);
typedef             GnomeVFSTransform;
GnomeVFSTransform * gnome_vfs_transform_get             (const gchar *name);

Description

Details

GnomeVFSMethodInitFunc ()

GnomeVFSMethod *    (*GnomeVFSMethodInitFunc)           (const char *method_name,
                                                         const char *config_args);

method_name :

config_args :

Returns :


GnomeVFSMethodShutdownFunc ()

void                (*GnomeVFSMethodShutdownFunc)       (GnomeVFSMethod *method);

method :


GnomeVFSMethodTruncateFunc ()

GnomeVFSResult      (*GnomeVFSMethodTruncateFunc)       (GnomeVFSMethod *method,
                                                         GnomeVFSURI *uri,
                                                         GnomeVFSFileSize length,
                                                         GnomeVFSContext *context);

method :

uri :

length :

context :

Returns :


GnomeVFSMethodTruncateHandleFunc ()

GnomeVFSResult      (*GnomeVFSMethodTruncateHandleFunc) (GnomeVFSMethod *method,
                                                         GnomeVFSMethodHandle *handle,
                                                         GnomeVFSFileSize length,
                                                         GnomeVFSContext *context);

method :

handle :

length :

context :

Returns :


VFS_METHOD_HAS_FUNC()

#define VFS_METHOD_HAS_FUNC(method,func) ((((char *)&((method)->func)) - ((char *)(method)) < (method)->method_table_size) && method->func != NULL)

method :

func :


gnome_vfs_method_init ()

gboolean            gnome_vfs_method_init               (void);

Initializes the gnome-vfs methods. If already initialized then will simply return TRUE.

Returns :

Returns TRUE.

gnome_vfs_method_get ()

GnomeVFSMethod *    gnome_vfs_method_get                (const gchar *name);

name :

name of the protocol.

Returns :

the method handle for the given protocol name. name could be any protocol which gnome-vfs implements. Like ftp, http, smb etc..

GnomeVFSTransform

typedef struct GnomeVFSTransform GnomeVFSTransform;


gnome_vfs_transform_get ()

GnomeVFSTransform * gnome_vfs_transform_get             (const gchar *name);

Get the transform for the method name.

name :

name of the method to get the transform of.

Returns :

a GnomeVFSTransform handle for name.
gnome-vfs-2.24.4/doc/html/index.html0000644000175000001440000003221111450333533014126 00000000000000 GnomeVFS - Filesystem Abstraction library

Seth Nickell


    
  

Christophe Fergeau


    
  

Christian Neumair


    
  

for GnomeVFS 2.24.4

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; A copy of the license is included in the section entitled "GNU Free Documentation License".


Introduction to GnomeVFS
Uses and Purpose
User's Perspective
Developer's Perspective
A Gentle Programming Primer
Simple Sample Program
Conversion of a Sample Code Block
Initialization/Shutdown
Basic Data Types
GnomeVFSResult — Result of I/O operations, the equivalent of errno
GnomeVFSURI — A uniform resource identifier.
gnome-vfs-utils — various utilities functions to manipulate uris
GnomeVFSFileInfo — stores information about files, GnomeVFS equivalent of stat
GnomeVFSFileSize — Data types used for specifying file sizes and seek positions
File Operations
Basic File Operations — Essential VFS operations. This includes creating, moving and deleting files, opening and closing file handles.
Reading and Writing Files — Reading from and writing to open file handles.
Truncating Files — Force files to a particular length
Getting and Setting File Information — Convenient high-level abstraction for obtaining and setting file information, including ACLs.
Directory-Specific Operations
Basic Directory Operations — Creating and removing directories.
Listing Directory Contents — Listing the contents of directories.
Locating Standard Directories — Utilities for locating standard directories such as the desktop and trash
Advanced File/Directory Operations
File Transfers — Conveniently copy/move/delete files en masse
Monitoring — watch files for changes, and get called back if they do
Backend-Specific Operations — Execute backend-specific operations
Asynchronous Operations
Asynchronous File Operations — POSIX-style file operations that run outside your main loop
Cancellation — halt in-progress operations
Volumes and Drives Handling
GnomeVFSVolume — Abstraction for a mounted file system or a network location.
GnomeVFSDrive — Container for GnomeVFSVolume (floppy drive, CD reader, ...)
GnomeVFSVolumeMonitor — Monitors volume mounts and unmounts
Networking
Zeroconf networking support — Gets information about available Zeroconf (aka RendezVous™) services on a local network.
DNS Resolution — Generic thread-safe address resolution functions.
SSL support functions — Functions to send and receive encrypted data over a socket.
Unified network I/O — Posix style network input/output functions.
Unified bufferd network I/O — Posix style buffered network input/output.
Internet connection — Simple TCP/IP connection functions.
MIME Registry
MIME typing — functions to get a mime-type for a file using its name or its content
gnome-vfs-mime-utils
MIME Database — functions for getting information about applications and components associated with MIME types.
gnome-vfs-mime-monitor
gnome-vfs-mime-database-deprecated
Deprecated Application Registry API — formerly used for managing applications. Replaced by GnomeVFS MIME Database API
Filesystem Modules
Writing Modules — basic gnome-vfs module concepts
gnome-vfs-method
gnome-vfs-module
gnome-vfs-module-shared
gnome-vfs-module-callback-module-api — invoking callbacks from a gnome-vfs module to ask the application for necessary information (authentication, ...)
GnomeVFSContext — contexts allows modules to track thread usage and cancellation properly
gnome-vfs-transform
gnome-vfs-parse-ls — convenience functions for modules which want to parse a ls-like directory listing
gnome-vfs-standard-callbacks — standard callbacks for use by gnome-vfs module writers
gnome-vfs-module-callback — functions used by apps if they want to answer to callback invocations by gnome-vfs modules
gnome-vfs-2.24.4/doc/html/gnome-vfs-2.0-gnome-vfs-volume.html0000644000175000001440000017224211450333533020432 00000000000000 GnomeVFSVolume

GnomeVFSVolume

GnomeVFSVolume — Abstraction for a mounted file system or a network location.

Synopsis

#define             GNOME_IS_VFS_VOLUME                 (o)
#define             GNOME_IS_VFS_VOLUME_CLASS           (k)
#define             GNOME_VFS_TYPE_VOLUME
#define             GNOME_VFS_VOLUME                    (o)
#define             GNOME_VFS_VOLUME_CLASS              (k)
struct              GnomeVFSVolume;
struct              GnomeVFSVolumeClass;
void                (*GnomeVFSVolumeOpCallback)         (gboolean succeeded,
                                                         char *error,
                                                         char *detailed_error,
                                                         gpointer user_data);
enum                GnomeVFSVolumeType;
gint                gnome_vfs_volume_compare            (GnomeVFSVolume *a,
                                                         GnomeVFSVolume *b);
void                gnome_vfs_volume_eject              (GnomeVFSVolume *volume,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);
char *              gnome_vfs_volume_get_activation_uri (GnomeVFSVolume *volume);
char *              gnome_vfs_volume_get_device_path    (GnomeVFSVolume *volume);
GnomeVFSDeviceType  gnome_vfs_volume_get_device_type    (GnomeVFSVolume *volume);
char *              gnome_vfs_volume_get_display_name   (GnomeVFSVolume *volume);
GnomeVFSDrive *     gnome_vfs_volume_get_drive          (GnomeVFSVolume *volume);
char *              gnome_vfs_volume_get_filesystem_type
                                                        (GnomeVFSVolume *volume);
char *              gnome_vfs_volume_get_hal_udi        (GnomeVFSVolume *volume);
char *              gnome_vfs_volume_get_icon           (GnomeVFSVolume *volume);
gulong              gnome_vfs_volume_get_id             (GnomeVFSVolume *volume);
GType               gnome_vfs_volume_get_type           (void);
GnomeVFSVolumeType  gnome_vfs_volume_get_volume_type    (GnomeVFSVolume *volume);
gboolean            gnome_vfs_volume_handles_trash      (GnomeVFSVolume *volume);
gboolean            gnome_vfs_volume_is_mounted         (GnomeVFSVolume *volume);
gboolean            gnome_vfs_volume_is_read_only       (GnomeVFSVolume *volume);
gboolean            gnome_vfs_volume_is_user_visible    (GnomeVFSVolume *volume);
GnomeVFSVolume *    gnome_vfs_volume_ref                (GnomeVFSVolume *volume);
GType               gnome_vfs_volume_type_get_type      (void);
void                gnome_vfs_volume_unmount            (GnomeVFSVolume *volume,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);
void                gnome_vfs_volume_unref              (GnomeVFSVolume *volume);
void                gnome_vfs_connect_to_server         (const char *uri,
                                                         const char *display_name,
                                                         const char *icon);

Object Hierarchy

  GObject
   +----GnomeVFSVolume

Description

Details

GNOME_IS_VFS_VOLUME()

#define GNOME_IS_VFS_VOLUME(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_VOLUME))

o :


GNOME_IS_VFS_VOLUME_CLASS()

#define GNOME_IS_VFS_VOLUME_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_VOLUME))

k :


GNOME_VFS_TYPE_VOLUME

#define GNOME_VFS_TYPE_VOLUME        (gnome_vfs_volume_get_type ())


GNOME_VFS_VOLUME()

#define GNOME_VFS_VOLUME(o)          (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_VOLUME, GnomeVFSVolume))

o :


GNOME_VFS_VOLUME_CLASS()

#define GNOME_VFS_VOLUME_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_VOLUME, GnomeVFSVolumeClass))

k :


struct GnomeVFSVolume

struct GnomeVFSVolume;


struct GnomeVFSVolumeClass

struct GnomeVFSVolumeClass {
	GObjectClass parent_class;
};


GnomeVFSVolumeOpCallback ()

void                (*GnomeVFSVolumeOpCallback)         (gboolean succeeded,
                                                         char *error,
                                                         char *detailed_error,
                                                         gpointer user_data);

Note that if succeeded is FALSE and error, detailed_error are both empty strings the client is not supposed to display a dialog as an external mount/umount/eject helper will have done so.

succeeded :

whether the volume operation succeeded

error :

a string identifying the error that occurred, if succeeded is FALSE. Otherwise NULL.

detailed_error :

a string more specifically identifying the error that occurred, if succeeded is FALSE. Otherwise NULL.

user_data :

the user data that was passed when registering the callback.

Since 2.6


enum GnomeVFSVolumeType

typedef enum {
	GNOME_VFS_VOLUME_TYPE_MOUNTPOINT,
	GNOME_VFS_VOLUME_TYPE_VFS_MOUNT,
	GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER
} GnomeVFSVolumeType;


gnome_vfs_volume_compare ()

gint                gnome_vfs_volume_compare            (GnomeVFSVolume *a,
                                                         GnomeVFSVolume *b);

Compares two GnomeVFSVolume objects a and b. Two GnomeVFSVolume objects referring to different volumes are guaranteed to not return 0 when comparing them, if they refer to the same volume 0 is returned.

The resulting gint should be used to determine the order in which a and b are displayed in graphical user interfces.

The comparison algorithm first of all peeks the device type of a and b, they will be sorted in the following order:

  • Magnetic and opto-magnetic volumes (ZIP, floppy)

  • Optical volumes (CD, DVD)

  • External volumes (USB sticks, music players)

  • Mounted hard disks

  • Network mounts

  • Other volumes

Afterwards, the display name of a and b is compared using a locale-sensitive sorting algorithm, which involves g_utf8_collate_key().

If two volumes have the same display name, their unique ID is compared which can be queried using gnome_vfs_volume_get_id().

a :

a GnomeVFSVolume.

b :

a GnomeVFSVolume.

Returns :

0 if the volumes refer to the same GnomeVFSVolume, a negative value if a should be displayed before b, or a positive value if a should be displayed after b.

Since 2.6


gnome_vfs_volume_eject ()

void                gnome_vfs_volume_eject              (GnomeVFSVolume *volume,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);

Requests ejection of a GnomeVFSVolume.

Before the unmount operation is executed, the "pre-unmount" signal is emitted.

If the volume is a mount point (its type is GNOME_VFS_VOLUME_TYPE_MOUNTPOINT), it is unmounted, and if it refers to a disc, it is also ejected.

If the volume is a special VFS mount, i.e. its type is GNOME_VFS_VOLUME_TYPE_VFS_MOUNT, it is ejected.

If the volume is a connected server, it is removed from the list of connected servers.

Otherwise, no further action is done.

volume :

the GnomeVFSVolume that should be ejected.

callback :

the GnomeVFSVolumeOpCallback that should be invoked after ejecting of volume.

user_data :

the user data to pass to callback.

Since 2.6


gnome_vfs_volume_get_activation_uri ()

char *              gnome_vfs_volume_get_activation_uri (GnomeVFSVolume *volume);

Returns the activation URI of a GnomeVFSVolume.

The returned URI usually refers to a valid location. You can check the validity of the location by calling gnome_vfs_uri_new() with the URI, and checking whether the return value is not NULL.

volume :

a GnomeVFSVolume.

Returns :

a newly allocated string for activation uri of volume.

Since 2.6


gnome_vfs_volume_get_device_path ()

char *              gnome_vfs_volume_get_device_path    (GnomeVFSVolume *volume);

Returns the device path of a GnomeVFSVolume.

For HAL volumes, this returns the value of the volume's "block.device" key. For UNIX mounts, it returns the mntent's mnt_fsname entry.

Otherwise, it returns NULL.

volume :

a GnomeVFSVolume.

Returns :

a newly allocated string for device path of volume.

Since 2.6


gnome_vfs_volume_get_device_type ()

GnomeVFSDeviceType  gnome_vfs_volume_get_device_type    (GnomeVFSVolume *volume);

Returns the GnomeVFSDeviceType of the volume.

volume :

a GnomeVFSVolume.

Returns :

the device type for volume.

Since 2.6


gnome_vfs_volume_get_display_name ()

char *              gnome_vfs_volume_get_display_name   (GnomeVFSVolume *volume);

Returns the display name of the volume.

volume :

a GnomeVFSVolume.

Returns :

a newly allocated string for display name of volume.

Since 2.6


gnome_vfs_volume_get_drive ()

GnomeVFSDrive *     gnome_vfs_volume_get_drive          (GnomeVFSVolume *volume);

volume :

a GnomeVFSVolume.

Returns :

the drive for the volume.

Since 2.6


gnome_vfs_volume_get_filesystem_type ()

char *              gnome_vfs_volume_get_filesystem_type
                                                        (GnomeVFSVolume *volume);

Returns a string describing the file system on volume, or NULL if no information on the underlying file system is available.

The file system may be used to provide special functionality that depends on the file system type, for instance to determine whether trashing is supported (cf. gnome_vfs_volume_handles_trash()).

For HAL mounts, this returns the value of the "volume.fstype" key, for traditional UNIX mounts it is set to the mntent's mnt_type key, for connected servers, NULL is returned.

As of GnomeVFS 2.15.4, the following file systems are recognized by GnomeVFS:

Table 3. Recognized File Systems

File System Display Name Supports Trash
affs AFFS Volume No
afs AFS Network Volume No
auto Auto-detected Volume No
cd9660 CD-ROM Drive No
cdda CD Digital Audio No
cdrom CD-ROM Drive No
devfs Hardware Device Volume No
encfs EncFS Volume Yes
ext2 Ext2 Linux Volume Yes
ext2fs Ext2 Linux Volume Yes
ext3 Ext3 Linux Volume Yes
fat MSDOS Volume Yes
ffs BSD Volume Yes
fuse FUSE Volume Yes
hfs MacOS Volume Yes
hfsplus MacOS Volume No
iso9660 CDROM Volume No
hsfs Hsfs CDROM Volume No
jfs JFS Volume Yes
hpfs Windows NT Volume No
kernfs System Volume No
lfs BSD Volume Yes
linprocfs System Volume No
mfs Memory Volume Yes
minix Minix Volume No
msdos MSDOS Volume No
msdosfs MSDOS Volume No
nfs NFS Network Volume Yes
ntfs Windows NT Volume No
nwfs Netware Volume No
proc System Volume No
procfs System Volume No
ptyfs System Volume No
reiser4 Reiser4 Linux Volume Yes
reiserfs ReiserFS Linux Volume Yes
smbfs Windows Shared Volume Yes
supermount SuperMount Volume No
udf DVD Volume No
ufs Solaris/BSD Volume Yes
udfs Udfs Solaris Volume Yes
pcfs Pcfs Solaris Volume Yes
samfs Sun SAM-QFS Volume Yes
tmpfs Temporary Volume Yes
umsdos Enhanced DOS Volume No
vfat Windows VFAT Volume Yes
xenix Xenix Volume No
xfs XFS Linux Volume Yes
xiafs XIAFS Volume No
cifs CIFS Volume Yes


volume :

a GnomeVFSVolume.

Returns :

a newly allocated string for filesystem type of volume.

Since 2.6


gnome_vfs_volume_get_hal_udi ()

char *              gnome_vfs_volume_get_hal_udi        (GnomeVFSVolume *volume);

Returns the HAL UDI of a GnomeVFSVolume.

For HAL volumes, this matches the value of the "info.udi" key, for other volumes it is NULL.

volume :

a GnomeVFSVolume.

Returns :

a newly allocated string for unique device id of volume, or NULL.

Since 2.6


gnome_vfs_volume_get_icon ()

char *              gnome_vfs_volume_get_icon           (GnomeVFSVolume *volume);

volume :

a GnomeVFSVolume.

Returns :

a newly allocated string for the icon filename of volume.

Since 2.6


gnome_vfs_volume_get_id ()

gulong              gnome_vfs_volume_get_id             (GnomeVFSVolume *volume);

Returns the ID of the volume,

Two GnomeVFSVolumes are guaranteed to refer to the same volume if they have the same ID.

volume :

a GnomeVFSVolume.

Returns :

the id for the volume.

Since 2.6


gnome_vfs_volume_get_type ()

GType               gnome_vfs_volume_get_type           (void);

Returns :


gnome_vfs_volume_get_volume_type ()

GnomeVFSVolumeType  gnome_vfs_volume_get_volume_type    (GnomeVFSVolume *volume);

Returns the GnomeVFSVolumeType of the volume.

volume :

a GnomeVFSVolume.

Returns :

the volume type for volume.

Since 2.6


gnome_vfs_volume_handles_trash ()

gboolean            gnome_vfs_volume_handles_trash      (GnomeVFSVolume *volume);

Returns whether the file system on a volume supports trashing of files.

If the volume has an AutoFS file system (i.e. gnome_vfs_volume_get_device_type() returns GNOME_VFS_DEVICE_TYPE_AUTOFS), or if the volume is mounted read-only (gnome_vfs_volume_is_read_only() returns TRUE), it is assumed to not support trashing of files.

Otherwise, if the volume provides file system information, it is determined whether the file system supports trashing of files. See gnome_vfs_volume_get_filesystem_type() for details which volumes provide file system information, and which file systems currently support a trash.

volume :

a GnomeVFSVolume.

Returns :

TRUE if volume handles trash, FALSE otherwise.

Since 2.6


gnome_vfs_volume_is_mounted ()

gboolean            gnome_vfs_volume_is_mounted         (GnomeVFSVolume *volume);

Returns whether the file system on a volume is currently mounted.

For HAL volumes, this reflects the value of the "volume.is_mounted" key, for traditional UNIX mounts and connected servers, TRUE is returned, because their existence implies that they are mounted.

volume :

a GnomeVFSVolume.

Returns :

TRUE if the volume is mounted, FALSE otherwise.

Since 2.6


gnome_vfs_volume_is_read_only ()

gboolean            gnome_vfs_volume_is_read_only       (GnomeVFSVolume *volume);

Returns whether the file system on a volume is read-only.

For HAL volumes, the "volume.is_mounted_read_only" key is authoritative, for traditional UNIX mounts it returns TRUE if the mount was done with the "ro" option. For servers, FALSE is returned.

volume :

a GnomeVFSVolume.

Returns :

TRUE if the volume is read-only to the user, FALSE otherwise.

Since 2.6


gnome_vfs_volume_is_user_visible ()

gboolean            gnome_vfs_volume_is_user_visible    (GnomeVFSVolume *volume);

Returns whether the volume is visible to the user. This should be used by applications to determine whether it is included in user interfaces listing available volumes.

volume :

a GnomeVFSVolume.

Returns :

TRUE if volume is visible to the user, FALSE otherwise.

Since 2.6


gnome_vfs_volume_ref ()

GnomeVFSVolume *    gnome_vfs_volume_ref                (GnomeVFSVolume *volume);

Increases the refcount of the volume by 1, if it is not NULL.

volume :

a GnomeVFSVolume, or NULL.

Returns :

the volume with its refcount increased by one, or NULL if volume is NULL.

Since 2.6


gnome_vfs_volume_type_get_type ()

GType               gnome_vfs_volume_type_get_type      (void);

Returns :


gnome_vfs_volume_unmount ()

void                gnome_vfs_volume_unmount            (GnomeVFSVolume *volume,
                                                         GnomeVFSVolumeOpCallback callback,
                                                         gpointer user_data);

Note that gnome_vfs_volume_unmount() may also invoke gnome_vfs_volume_eject(), if the volume signals that it should be ejected when it is unmounted. This may be true for CD-ROMs, USB sticks and other devices, depending on the backend providing the volume.

volume :

the GnomeVFSVolume that should be unmounted.

callback :

the GnomeVFSVolumeOpCallback that should be invoked after unmounting volume.

user_data :

the user data to pass to callback.

Since 2.6


gnome_vfs_volume_unref ()

void                gnome_vfs_volume_unref              (GnomeVFSVolume *volume);

Decreases the refcount of the volume by 1, if it is not NULL.

volume :

a GnomeVFSVolume, or NULL.

Since 2.6


gnome_vfs_connect_to_server ()

void                gnome_vfs_connect_to_server         (const char *uri,
                                                         const char *display_name,
                                                         const char *icon);

This function adds a server connection to the specified uri, which is displayed in user interfaces with the specified display_name and icon.

If this function is invoked successfully, the created server shows up in the list of mounted volumes of the GnomeVFSVolumeMonitor, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes().

Note

This function does not have a return value. Hence, you can't easily detect whether the specified server was successfully created. The actual creation and consumption of the new server through the GnomeVFSVolumeMonitor is done asynchronously.

uri, display_name, and icon can be freely chosen, but should be meaningful:

uri should refer to a valid location. You can check the validity of the location by calling gnome_vfs_uri_new() with uri, and checking whether the return value is not NULL.

The display_name should be queried from the user, and an empty string should not be considered valid.

icon typically references an icon from the icon theme. Some implementations currently use gnome-fs-smb, gnome-fs-ssh, gnome-fs-ftp and gnome-fs-share, depending on the type of the server referenced by uri. The icon naming conventions might change in the future, though. Obeying the freedesktop.org Icon Naming Specification is suggested.

uri :

The string representation of the server to connect to.

display_name :

The display name that is used to identify the server connection.

icon :

The icon that is used to identify the server connection.

Since 2.6

gnome-vfs-2.24.4/doc/tmpl/0000755000175000001440000000000011450333532012221 500000000000000gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-file-info-ops.sgml0000644000175000001440000000315311450333532017375 00000000000000 Getting and Setting File Information Convenient high-level abstraction for obtaining and setting file information, including ACLs. Applications can use the gnome_vfs_get_file_info() family of operations to retrieve file information, as this operation can be quite costly in terms of time (specilly when sniffing the MIME type) applications can specify which information need at any time, reducing the performance impact. All of these operations use a #GnomeVFSFileInfo data structure that holds the file information, there are several methods that can be used to manipulate this information. See #GnomeVFSFileInfo for more information. #GnomeVFSFileInfo @text_uri: @info: @options: @Returns: @uri: @info: @options: @Returns: @handle: @info: @options: @Returns: @uri: @info: @mask: @Returns: @text_uri: @info: @mask: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-module-callback.sgml0000644000175000001440000000307711450333532017752 00000000000000 gnome-vfs-module-callback functions used by apps if they want to answer to callback invocations by gnome-vfs modules @in: @in_size: @out: @out_size: @callback_data: @response_data: @in: @in_size: @out: @out_size: @callback_data: @response: @response_data: @callback_name: @callback: @callback_data: @destroy_notify: @callback_name: @callback: @callback_data: @destroy_notify: @callback_name: @callback_name: @callback: @callback_data: @destroy_notify: @callback_name: @callback: @callback_data: @destroy_notify: @callback_name: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-resolve.sgml0000644000175000001440000000324211450333532016404 00000000000000 DNS Resolution Generic thread-safe address resolution functions. @hostname: @handle: @Returns: @handle: @handle: @address: @Returns: @handle: @address: @Returns: @address: @address: @Returns: @address: @Returns: @void: @Returns: @ipv4_address: @Returns: @sa: @len: @Returns: @address: @Returns: @address: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-utils.sgml0000644000175000001440000000732311450333532016071 00000000000000 gnome-vfs-utils various utilities functions to manipulate uris @GNOME_VFS_MAKE_URI_DIR_NONE: @GNOME_VFS_MAKE_URI_DIR_HOMEDIR: @GNOME_VFS_MAKE_URI_DIR_CURRENT: @size: @Returns: @uri: @Returns: @url: @Returns: @url: @envp: @Returns: @string: @Returns: @path: @Returns: @path: @Returns: @string: @Returns: @string: @match_set: @Returns: @escaped_string: @illegal_characters: @Returns: @uri: @Returns: @uri: @Returns: @path: @Returns: @location: @Returns: @location: @dirs: @Returns: @uri: @Returns: @base_uri: @relative_uri: @Returns: @path: @Returns: @escaped: @Returns: @uri: @Returns: @local_full_path: @Returns: @command_string: @Returns: @list: @vfs_uri: @size: @Returns: @filename: @Returns: @void: @Returns: @uri: @Returns: @uri_1: @uri_2: @Returns: @handle: @filedes: @Returns: @uri: @file_size: @file_contents: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-uri.sgml0000644000175000001440000001202511450333532015523 00000000000000 GnomeVFSURI A uniform resource identifier. A #GnomeVFSURI is a semi-textual representation of a uniform resource identifier. It contains the information about a resource location encoded as canononicalized text, but also holds extra information about the context in which the URI is used. @ref_count: @text: @fragment_id: @method_string: @method: @parent: @uri: @host_name: @host_port: @user_name: @password: @urn: @GNOME_VFS_URI_HIDE_NONE: @GNOME_VFS_URI_HIDE_USER_NAME: @GNOME_VFS_URI_HIDE_PASSWORD: @GNOME_VFS_URI_HIDE_HOST_NAME: @GNOME_VFS_URI_HIDE_HOST_PORT: @GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD: @GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER: @text_uri: @Returns: @base: @relative_reference: @Returns: @base: @relative_reference: @Returns: @uri: @Returns: @uri: @uri: @uri_fragment: @Returns: @uri: @path: @Returns: @uri: @filename: @Returns: @uri: @hide_options: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @host_name: @uri: @host_port: @uri: @user_name: @uri: @password: @a: @b: @Returns: @possible_parent: @possible_child: @recursive: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @a: @b: @Returns: @p: @Returns: @uri_list: @Returns: @list: @Returns: @list: @Returns: @list: @Returns: @list: @base_uri: @relative_uri: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-module-callback-module-api.sgml0000644000175000001440000000110711450333532021774 00000000000000 gnome-vfs-module-callback-module-api invoking callbacks from a gnome-vfs module to ask the application for necessary information (authentication, ...) @callback_name: @in: @in_size: @out: @out_size: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-mime.sgml0000644000175000001440000000313011450333532015650 00000000000000 MIME typing functions to get a mime-type for a file using its name or its content @filename: @Returns: @filename: @defaultv: @Returns: @uri: @Returns: @uri: @Returns: @uri: @Returns: @path: @optional_stat_info: @Returns: @path: @optional_stat_info: @suffix_only: @Returns: @mime_type: @Returns: @mime_type: @Returns: @dir: @void: @void: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-standard-callbacks.sgml0000644000175000001440000000765411450333532020455 00000000000000 gnome-vfs-standard-callbacks standard callbacks for use by gnome-vfs module writers @uri: @protocol: @server: @object: @port: @authtype: @username: @domain: @valid: @username: @domain: @password: @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED: @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD: @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME: @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN: @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED: @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED: @flags: @uri: @protocol: @server: @object: @port: @authtype: @username: @domain: @default_user: @default_domain: @abort_auth: @username: @domain: @password: @save_password: @keyring: @out_flags: @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED: @keyring: @uri: @protocol: @server: @object: @port: @authtype: @username: @domain: @password: @primary_message: @secondary_message: @choices: @answer: @uri: @message: @percentage: @dummy: @uri: @headers: @uri: @headers: @dummy: @AuthTypeBasic: @AuthTypeDigest: @uri: @realm: @previous_attempt_failed: @auth_type: @username: @password: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-mime-database.sgml0000644000175000001440000001012411450333532017413 00000000000000 MIME Database functions for getting information about applications and components associated with MIME types. This API can be used to query the applications and components associated with particular MIME types, and to collect extra information about them, and also provides a convenience function for launching them. Applications can register themselves for particular MIME types by adhering to the Freedesktop.Org Desktop Entry Specification. @id: @name: @mime_type: @Returns: @uri: @mime_type: @Returns: @mime_type: @Returns: @uri: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @id: @Returns: @app: @uris: @Returns: @app: @uris: @envp: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app: @Returns: @app_a: @app_b: @Returns: @application: @Returns: @application: @list: @list: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-mime-database-deprecated.sgml0000644000175000001440000001426411450333532021522 00000000000000 gnome-vfs-mime-database-deprecated @GNOME_VFS_MIME_ACTION_TYPE_NONE: @GNOME_VFS_MIME_ACTION_TYPE_APPLICATION: @GNOME_VFS_MIME_ACTION_TYPE_COMPONENT: @GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS: @GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS: @GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES: @action_type: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @Returns: @mime_type: @action_type: @Returns: @mime_type: @filename: @Returns: @mime_type: @description: @Returns: @mime_type: @new_value: @Returns: @mime_type: @application_ids: @Returns: @mime_type: @component_iids: @Returns: @mime_type: @application_id: @Returns: @mime_type: @application_id: @Returns: @mime_type: @iid: @Returns: @mime_type: @iid: @Returns: @mime_type: @application_id: @Returns: @mime_type: @component_iid: @Returns: @mime_type: @extension: @Returns: @mime_type: @extension: @Returns: @mime_type: @application_ids: @Returns: @mime_type: @application_ids: @Returns: @id: @Returns: @action: @uris: @Returns: @action: @uris: @envp: @Returns: @action: @id: @applications: @Returns: @iid: @components: @Returns: @applications: @application_id: @did_remove: @Returns: @components: @iid: @did_remove: @Returns: @components: @Returns: @applications: @Returns: @void: @void: @void: @mime_type: @Returns: @mime_type: @key: @Returns: @mime_type: @key: @value: @Returns: @mime_type: @Returns: @mime_type_list: @mime_type: @Returns: @list: @mime_type: @Returns: @mime_type: @Returns: @void: @Returns: @list: @mime_type: @key: @data: @Returns: @mime_type: @extensions_list: @Returns: @mime_type: @void: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-parse-ls.sgml0000644000175000001440000000077011450333532016456 00000000000000 gnome-vfs-parse-ls convenience functions for modules which want to parse a ls-like directory listing @p: @s: @filename: @linkname: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-async-ops.sgml0000644000175000001440000001701411450333532016643 00000000000000 Asynchronous File Operations POSIX-style file operations that run outside your main loop When executing an asynchornous operation on a file the program does not block waiting for the operation to finish, instead it keeps on running, which means that the process and the I/O operation can be both running concurrently. Once the I/O operation has been completed the process is notified using a callback. Asynchronous operations are particularly good when long I/O operations are expected, in this case the program can continue normaly, the I/O will be performed in the background. On the other hand when operations are expected to be short (creating a file, writing/reading small amounts of data, etc.) synchronous operations are prefered. Within a graphical desktop asynchornous I/O operations can be used to avoid blocking the UI (User Interface) during a long operation, and to be able to provide some kind of feedback to the user. @handle: @result: @callback_data: @handle: @result: @callback_data: @handle: @channel: @result: @callback_data: @handle: @result: @callback_data: @handle: @channel: @result: @callback_data: @handle: @result: @callback_data: @handle: @result: @buffer: @bytes_requested: @bytes_read: @callback_data: @handle: @result: @buffer: @bytes_requested: @bytes_written: @callback_data: @handle: @result: @callback_data: @handle: @results: @callback_data: @handle: @result: @file_info: @callback_data: @handle: @result: @operation_data: @callback_data: @handle: @result: @list: @entries_read: @callback_data: @handle: @results: @data: @uri: @result: @handle: @info: @user_data: @Returns: @limit: @void: @Returns: @handle: @handle_return: @text_uri: @open_mode: @priority: @callback: @callback_data: @handle_return: @uri: @open_mode: @priority: @callback: @callback_data: @handle_return: @text_uri: @open_mode: @advised_block_size: @priority: @callback: @callback_data: @handle_return: @uri: @open_mode: @advised_block_size: @priority: @callback: @callback_data: @handle_return: @text_uri: @open_mode: @exclusive: @perm: @priority: @callback: @callback_data: @handle_return: @uri: @open_mode: @exclusive: @perm: @priority: @callback: @callback_data: @handle_return: @uri: @uri_reference: @priority: @callback: @callback_data: @handle_return: @text_uri: @open_mode: @exclusive: @perm: @priority: @callback: @callback_data: @handle_return: @uri: @open_mode: @exclusive: @perm: @priority: @callback: @callback_data: @handle: @callback: @callback_data: @handle: @buffer: @bytes: @callback: @callback_data: @handle: @buffer: @bytes: @callback: @callback_data: @handle: @whence: @offset: @callback: @callback_data: @handle_return: @uri_list: @options: @priority: @callback: @callback_data: @handle_return: @uri: @info: @mask: @options: @priority: @callback: @callback_data: @handle_return: @text_uri: @options: @items_per_notification: @priority: @callback: @callback_data: @handle_return: @uri: @options: @items_per_notification: @priority: @callback: @callback_data: @handle_return: @source_uri_list: @target_uri_list: @xfer_options: @error_mode: @overwrite_mode: @priority: @progress_update_callback: @update_callback_data: @progress_sync_callback: @sync_callback_data: @Returns: @handle_return: @near_uri_list: @kind: @create_if_needed: @find_if_needed: @permissions: @priority: @callback: @user_data: @handle: @operation: @operation_data: @operation_data_destroy_func: @callback: @callback_data: @result: @Returns: @result: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-context.sgml0000644000175000001440000000166211450333532016415 00000000000000 GnomeVFSContext contexts allows modules to track thread usage and cancellation properly @void: @Returns: @ctx: @ctx: @Returns: @x: @void: @Returns: @void: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-module.sgml0000644000175000001440000000111211450333532016204 00000000000000 gnome-vfs-module @method_name: @args: @Returns: @method_name: @args: @Returns: @method: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-file-rw-ops.sgml0000644000175000001440000000223611450333532017073 00000000000000 Reading and Writing Files Reading from and writing to open file handles. Reading and writing operations are explained, also gnome_vfs_seek(), which is used to move the file pointer inside the file. @GNOME_VFS_SEEK_START: @GNOME_VFS_SEEK_CURRENT: @GNOME_VFS_SEEK_END: @handle: @buffer: @bytes: @bytes_read: @Returns: @handle: @buffer: @bytes: @bytes_written: @Returns: @handle: @whence: @offset: @Returns: @handle: @offset_return: @Returns: @handle: @offset: @size: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-ops.sgml0000644000175000001440000000072311450333532015527 00000000000000 File Operations basic POSIX-style file operations gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-volume-monitor.sgml0000644000175000001440000000534511450333532017727 00000000000000 GnomeVFSVolumeMonitor Monitors volume mounts and unmounts @o: @k: @o: @k: @vfsvolumemonitor: the object which received the signal. @arg1: @vfsvolumemonitor: the object which received the signal. @arg1: @vfsvolumemonitor: the object which received the signal. @arg1: @vfsvolumemonitor: the object which received the signal. @arg1: @vfsvolumemonitor: the object which received the signal. @arg1: @parent_class: @volume_mounted: @volume_pre_unmount: @volume_unmounted: @drive_connected: @drive_disconnected: @void: @Returns: @volume_monitor: @Returns: @volume_monitor: @id: @Returns: @volume_monitor: @Returns: @void: @Returns: @volume_monitor: @id: @Returns: @volume_monitor: @path: @Returns: @volume_monitor: @Returns: @volume_monitor: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-xfer.sgml0000644000175000001440000000674311450333532015702 00000000000000 File Transfers Conveniently copy/move/delete files en masse @GNOME_VFS_XFER_DEFAULT: @GNOME_VFS_XFER_UNUSED_1: @GNOME_VFS_XFER_FOLLOW_LINKS: @GNOME_VFS_XFER_UNUSED_2: @GNOME_VFS_XFER_RECURSIVE: @GNOME_VFS_XFER_SAMEFS: @GNOME_VFS_XFER_DELETE_ITEMS: @GNOME_VFS_XFER_EMPTY_DIRECTORIES: @GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY: @GNOME_VFS_XFER_REMOVESOURCE: @GNOME_VFS_XFER_USE_UNIQUE_NAMES: @GNOME_VFS_XFER_LINK_ITEMS: @GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE: @GNOME_VFS_XFER_TARGET_DEFAULT_PERMS: @GNOME_VFS_XFER_PROGRESS_STATUS_OK: @GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR: @GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE: @GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE: @GNOME_VFS_XFER_OVERWRITE_MODE_ABORT: @GNOME_VFS_XFER_OVERWRITE_MODE_QUERY: @GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE: @GNOME_VFS_XFER_OVERWRITE_MODE_SKIP: @GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT: @GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE: @GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL: @GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP: @GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL: @GNOME_VFS_XFER_ERROR_MODE_ABORT: @GNOME_VFS_XFER_ERROR_MODE_QUERY: @GNOME_VFS_XFER_ERROR_ACTION_ABORT: @GNOME_VFS_XFER_ERROR_ACTION_RETRY: @GNOME_VFS_XFER_ERROR_ACTION_SKIP: @GNOME_VFS_XFER_PHASE_INITIAL: @GNOME_VFS_XFER_CHECKING_DESTINATION: @GNOME_VFS_XFER_PHASE_COLLECTING: @GNOME_VFS_XFER_PHASE_READYTOGO: @GNOME_VFS_XFER_PHASE_OPENSOURCE: @GNOME_VFS_XFER_PHASE_OPENTARGET: @GNOME_VFS_XFER_PHASE_COPYING: @GNOME_VFS_XFER_PHASE_MOVING: @GNOME_VFS_XFER_PHASE_READSOURCE: @GNOME_VFS_XFER_PHASE_WRITETARGET: @GNOME_VFS_XFER_PHASE_CLOSESOURCE: @GNOME_VFS_XFER_PHASE_CLOSETARGET: @GNOME_VFS_XFER_PHASE_DELETESOURCE: @GNOME_VFS_XFER_PHASE_SETATTRIBUTES: @GNOME_VFS_XFER_PHASE_FILECOMPLETED: @GNOME_VFS_XFER_PHASE_CLEANUP: @GNOME_VFS_XFER_PHASE_COMPLETED: @GNOME_VFS_XFER_NUM_PHASES: @status: @vfs_status: @phase: @source_name: @target_name: @file_index: @files_total: @bytes_total: @file_size: @bytes_copied: @total_bytes_copied: @duplicate_name: @duplicate_count: @top_level_item: @info: @user_data: @Returns: @source_uri_list: @target_uri_list: @xfer_options: @error_mode: @overwrite_mode: @progress_callback: @data: @Returns: @source_uri: @target_uri: @xfer_options: @error_mode: @overwrite_mode: @progress_callback: @data: @Returns: @source_uri_list: @error_mode: @xfer_options: @progress_callback: @data: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-cancellation.sgml0000644000175000001440000000162511450333532017364 00000000000000 Cancellation halt in-progress operations @void: @Returns: @cancellation: @cancellation: @cancellation: @Returns: @cancellation: @cancellation: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-inet-connection.sgml0000644000175000001440000000362111450333532020022 00000000000000 Internet connection Simple TCP/IP connection functions. A #GnomeVFSInetConnection represents a TCP/IP connection. You can either use #gnome_vfs_inet_connection_create which will use the #gnome_vfs_resolve DNS resolution functions internally or you can do the name resolution yourself and use #gnome_vfs_inet_connection_create_from_address to connect to a specific address. After a connection has been established all I/O is done through a GnomeVFSSocket or a GnomeVFSSocketBuffer. @connection_return: @host_name: @host_port: @cancellation: @Returns: @connection: @cancellation: @connection: @cancellation: @connection: @Returns: @connection: @Returns: @connection: @Returns: @connection_return: @address: @host_port: @cancellation: @Returns: @connection: @Returns: @connection: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-module-shared.sgml0000644000175000001440000000170411450333532017457 00000000000000 gnome-vfs-module-shared @mode: @Returns: @mode: @defaultv: @Returns: @file_info: @statptr: @info: @file_name: @meta_key: @Returns: @info: @file_name: @meta_keys: @Returns: @uri: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-metadata.sgml0000644000175000001440000000147311450333532016511 00000000000000 Metadata attach extra pieces of information to files, such as icons or positions @obj: @self: @key: @value: @self: @key: @Returns: @self: @key: @value: @uri: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-2.0-unused.sgml0000644000175000001440000000341111450333532016523 00000000000000 Reading the contents of directories Directory Operations utilities for locating standard directories such as the desktop and trash Locating Standard Directories attach extra pieces of information to files, such as icons or positions Metadata @obj: @self: @key: @Returns: @uri: @Returns: @self: @key: @value: @self: @key: @value: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-monitor.sgml0000644000175000001440000000250211450333532016412 00000000000000 Monitoring watch files for changes, and get called back if they do @GNOME_VFS_MONITOR_FILE: @GNOME_VFS_MONITOR_DIRECTORY: @GNOME_VFS_MONITOR_EVENT_CHANGED: @GNOME_VFS_MONITOR_EVENT_DELETED: @GNOME_VFS_MONITOR_EVENT_STARTEXECUTING: @GNOME_VFS_MONITOR_EVENT_STOPEXECUTING: @GNOME_VFS_MONITOR_EVENT_CREATED: @GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED: @handle: @monitor_uri: @info_uri: @event_type: @user_data: @handle: @text_uri: @monitor_type: @callback: @user_data: @Returns: @handle: @Returns: @method_handle: @info_uri: @event_type: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-file-size.sgml0000644000175000001440000000131411450333532016612 00000000000000 GnomeVFSFileSize Data types used for specifying file sizes and seek positions gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-directory-find-ops.sgml0000644000175000001440000000127311450333532020450 00000000000000 Locating Standard Directories Utilities for locating standard directories such as the desktop and trash @GNOME_VFS_DIRECTORY_KIND_DESKTOP: @GNOME_VFS_DIRECTORY_KIND_TRASH: @near_uri: @kind: @result: @create_if_needed: @find_if_needed: @permissions: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-find-directory.sgml0000644000175000001440000000114711450333532017651 00000000000000 Locating Standard Directories utilities for locating standard directories such as the desktop and trash @GNOME_VFS_DIRECTORY_KIND_DESKTOP: @GNOME_VFS_DIRECTORY_KIND_TRASH: @near_uri: @kind: @result: @create_if_needed: @find_if_needed: @permissions: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-application-registry.sgml0000644000175000001440000000715011450333532021100 00000000000000 Deprecated Application Registry API formerly used for managing applications. Replaced by GnomeVFS MIME Database API This API was formerly used to manage the applications known to GnomeVFS, providing editing capabilities. The system was overengineered and not very performant, so it has been replaced by a new API, described in the GnomeVFS MIME Database section. GnomeVFS MIME Database API @app_id: @Returns: @app_id: @Returns: @app_id: @key: @Returns: @app_id: @key: @got_key: @Returns: @app_id: @app_id: @key: @value: @app_id: @key: @value: @app_id: @key: @mime_type: @Returns: @app_id: @Returns: @app_id: @mime_type: @Returns: @app_id: @uri_scheme: @Returns: @application: @Returns: @app_id: @app_id: @mime_type: @app_id: @mime_type: @void: @Returns: @void: @void: @app_id: @Returns: @application: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-directory-list-ops.sgml0000644000175000001440000000375611450333532020513 00000000000000 Listing Directory Contents Listing the contents of directories. @GNOME_VFS_DIRECTORY_VISIT_DEFAULT: @GNOME_VFS_DIRECTORY_VISIT_SAMEFS: @GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK: @GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR: @rel_path: @info: @recursing_will_loop: @user_data: @recurse: @Returns: @handle: @text_uri: @options: @Returns: @handle: @uri: @options: @Returns: @handle: @file_info: @Returns: @handle: @Returns: @text_uri: @info_options: @visit_options: @callback: @data: @Returns: @uri: @info_options: @visit_options: @callback: @data: @Returns: @text_uri: @file_list: @info_options: @visit_options: @callback: @data: @Returns: @uri: @file_list: @info_options: @visit_options: @callback: @data: @Returns: @list: @text_uri: @options: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-result.sgml0000644000175000001440000000504411450333532016245 00000000000000 GnomeVFSResult Result of I/O operations, the equivalent of errno @GNOME_VFS_OK: @GNOME_VFS_ERROR_NOT_FOUND: @GNOME_VFS_ERROR_GENERIC: @GNOME_VFS_ERROR_INTERNAL: @GNOME_VFS_ERROR_BAD_PARAMETERS: @GNOME_VFS_ERROR_NOT_SUPPORTED: @GNOME_VFS_ERROR_IO: @GNOME_VFS_ERROR_CORRUPTED_DATA: @GNOME_VFS_ERROR_WRONG_FORMAT: @GNOME_VFS_ERROR_BAD_FILE: @GNOME_VFS_ERROR_TOO_BIG: @GNOME_VFS_ERROR_NO_SPACE: @GNOME_VFS_ERROR_READ_ONLY: @GNOME_VFS_ERROR_INVALID_URI: @GNOME_VFS_ERROR_NOT_OPEN: @GNOME_VFS_ERROR_INVALID_OPEN_MODE: @GNOME_VFS_ERROR_ACCESS_DENIED: @GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES: @GNOME_VFS_ERROR_EOF: @GNOME_VFS_ERROR_NOT_A_DIRECTORY: @GNOME_VFS_ERROR_IN_PROGRESS: @GNOME_VFS_ERROR_INTERRUPTED: @GNOME_VFS_ERROR_FILE_EXISTS: @GNOME_VFS_ERROR_LOOP: @GNOME_VFS_ERROR_NOT_PERMITTED: @GNOME_VFS_ERROR_IS_DIRECTORY: @GNOME_VFS_ERROR_NO_MEMORY: @GNOME_VFS_ERROR_HOST_NOT_FOUND: @GNOME_VFS_ERROR_INVALID_HOST_NAME: @GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS: @GNOME_VFS_ERROR_LOGIN_FAILED: @GNOME_VFS_ERROR_CANCELLED: @GNOME_VFS_ERROR_DIRECTORY_BUSY: @GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY: @GNOME_VFS_ERROR_TOO_MANY_LINKS: @GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM: @GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM: @GNOME_VFS_ERROR_NAME_TOO_LONG: @GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE: @GNOME_VFS_ERROR_SERVICE_OBSOLETE: @GNOME_VFS_ERROR_PROTOCOL_ERROR: @GNOME_VFS_ERROR_NO_MASTER_BROWSER: @GNOME_VFS_ERROR_NO_DEFAULT: @GNOME_VFS_ERROR_NO_HANDLER: @GNOME_VFS_ERROR_PARSE: @GNOME_VFS_ERROR_LAUNCH: @GNOME_VFS_ERROR_TIMEOUT: @GNOME_VFS_ERROR_NAMESERVER: @GNOME_VFS_ERROR_LOCKED: @GNOME_VFS_ERROR_DEPRECATED_FUNCTION: @GNOME_VFS_ERROR_INVALID_FILENAME: @GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK: @GNOME_VFS_NUM_ERRORS: @result: @Returns: @errno_code: @Returns: @void: @Returns: @void: @Returns: @h_errno_code: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-socket-buffer.sgml0000644000175000001440000000357411450333532017474 00000000000000 Unified bufferd network I/O Posix style buffered network input/output. The GnomeVFSSocketBuffer functions are very similar to the GnomeVFSSocket ones. The only difference is that all input/output is done through an internally managed buffer. This might increase I/O performance as well as give you the possibility to use some convenient functions like #gnome_vfs_socket_buffer_peekc and #gnome_vfs_socket_buffer_read_until. You can manually force all internally buffered data to get written with #gnome_vfs_socket_buffer_flush. @socket: @Returns: @socket_buffer: @close_socket: @cancellation: @Returns: @socket_buffer: @buffer: @bytes: @bytes_read: @cancellation: @Returns: @socket_buffer: @character: @cancellation: @Returns: @socket_buffer: @buffer: @bytes: @bytes_written: @cancellation: @Returns: @socket_buffer: @cancellation: @Returns: @socket_buffer: @buffer: @bytes: @boundary: @boundary_len: @bytes_read: @got_boundary: @cancellation: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-ssl.sgml0000644000175000001440000000251211450333532015525 00000000000000 SSL support functions Functions to send and receive encrypted data over a socket. @void: @Returns: @handle_return: @host: @port: @cancellation: @Returns: @handle_return: @fd: @cancellation: @Returns: @ssl: @buffer: @bytes: @bytes_read: @cancellation: @Returns: @ssl: @buffer: @bytes: @bytes_written: @cancellation: @Returns: @ssl: @cancellation: @ssl: @Returns: @ssl: @timeout: @cancellation: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-volume.sgml0000644000175000001440000000645211450333532016242 00000000000000 GnomeVFSVolume Abstraction for a mounted file system or a network location. @o: @k: @o: @k: @parent_class: @succeeded: @error: @detailed_error: @user_data: @GNOME_VFS_VOLUME_TYPE_MOUNTPOINT: @GNOME_VFS_VOLUME_TYPE_VFS_MOUNT: @GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER: @a: @b: @Returns: @volume: @callback: @user_data: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @void: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @volume: @Returns: @void: @Returns: @volume: @callback: @user_data: @volume: @uri: @display_name: @icon: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-file-basic-ops.sgml0000644000175000001440000000461011450333532017522 00000000000000 Basic File Operations Essential VFS operations. This includes creating, moving and deleting files, opening and closing file handles. GnomeVFS file operations are, for the most part, patterned after their POSIX equivalents, with the systematic difference that they accept URIs rather than paths on the local filesystem. This makes them easy to learn as if you are already familiar with basic commands such as open(), seek(), write(), etc you will feel right at home with GnomeVFS after learning a little about URIs. @GNOME_VFS_OPEN_NONE: @GNOME_VFS_OPEN_READ: @GNOME_VFS_OPEN_WRITE: @GNOME_VFS_OPEN_RANDOM: @GNOME_VFS_OPEN_TRUNCATE: @handle: @text_uri: @open_mode: @exclusive: @perm: @Returns: @handle: @uri: @open_mode: @exclusive: @perm: @Returns: @handle: @text_uri: @open_mode: @Returns: @handle: @uri: @open_mode: @Returns: @handle: @Returns: @text_uri: @Returns: @uri: @Returns: @old_uri: @new_uri: @force_replace: @Returns: @old_text_uri: @new_text_uri: @force_replace: @Returns: @source_uri: @target_uri: @same_fs_return: @Returns: @source: @target: @same_fs_return: @Returns: @uri: @Returns: @uri: @target_reference: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-mime-utils.sgml0000644000175000001440000000243611450333532017016 00000000000000 gnome-vfs-mime-utils @GNOME_VFS_MIME_UNRELATED: @GNOME_VFS_MIME_IDENTICAL: @GNOME_VFS_MIME_PARENT: @mime_type: @base_mime_type: @Returns: @a: @b: @Returns: @filename: @Returns: @data: @data_size: @Returns: @filename: @data: @data_size: @Returns: @text_uri: @Returns: @text_uri: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-drive.sgml0000644000175000001440000000753211450333532016044 00000000000000 GnomeVFSDrive Container for GnomeVFSVolume (floppy drive, CD reader, ...) @GNOME_VFS_DEVICE_TYPE_UNKNOWN: @GNOME_VFS_DEVICE_TYPE_AUDIO_CD: @GNOME_VFS_DEVICE_TYPE_VIDEO_DVD: @GNOME_VFS_DEVICE_TYPE_HARDDRIVE: @GNOME_VFS_DEVICE_TYPE_CDROM: @GNOME_VFS_DEVICE_TYPE_FLOPPY: @GNOME_VFS_DEVICE_TYPE_ZIP: @GNOME_VFS_DEVICE_TYPE_JAZ: @GNOME_VFS_DEVICE_TYPE_NFS: @GNOME_VFS_DEVICE_TYPE_AUTOFS: @GNOME_VFS_DEVICE_TYPE_CAMERA: @GNOME_VFS_DEVICE_TYPE_MEMORY_STICK: @GNOME_VFS_DEVICE_TYPE_SMB: @GNOME_VFS_DEVICE_TYPE_APPLE: @GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER: @GNOME_VFS_DEVICE_TYPE_WINDOWS: @GNOME_VFS_DEVICE_TYPE_LOOPBACK: @GNOME_VFS_DEVICE_TYPE_NETWORK: @vfsdrive: the object which received the signal. @arg1: @vfsdrive: the object which received the signal. @arg1: @vfsdrive: the object which received the signal. @arg1: @parent_class: @volume_mounted: @volume_pre_unmount: @volume_unmounted: @o: @k: @o: @k: @a: @b: @Returns: @drive: @callback: @user_data: @drive: @Returns: @drive: @Returns: @drive: @Returns: @drive: @Returns: @drive: @Returns: @drive: @Returns: @drive: @Returns: @drive: @Returns: @drive: @Returns: @volumes: @void: @Returns: @drive: @Returns: @drive: @Returns: @drive: @Returns: @drive: @callback: @user_data: @drive: @Returns: @drive: @callback: @user_data: @drive: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-mime-monitor.sgml0000644000175000001440000000073111450333532017341 00000000000000 gnome-vfs-mime-monitor @void: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-transform.sgml0000644000175000001440000000106111450333532016735 00000000000000 gnome-vfs-transform @method_name: @config_args: @Returns: @transform: @old_uri: @new_uri: @context: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-directory-basic-ops.sgml0000644000175000001440000000137411450333532020613 00000000000000 Basic Directory Operations Creating and removing directories. @text_uri: @perm: @Returns: @uri: @perm: @Returns: @text_uri: @Returns: @uri: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-init.sgml0000644000175000001440000000173111450333532015671 00000000000000 Initialization/Shutdown Starting GnomeVFS up and shutting it down. Usually when using the whole GNOME framework this library is initialized and shutdown automatically when calling gnome_init. @void: @Returns: @void: @Returns: @void: @app: @modinfo: @app: @modinfo: @app: @modinfo: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-socket.sgml0000644000175000001440000000411311450333532016213 00000000000000 Unified network I/O Posix style network input/output functions. The GnomeVFSSocket function family unifies network I/O through functions similar to the standard POSIX read/write functions. The main difference is that all operations are cancellable through the standard GnomeVFS cancellation mechanism and you can specify a maximum amount of time an operation may take through #gnome_vfs_socket_set_timeout. @read: @write: @close: @set_timeout: @connection: @buffer: @bytes: @bytes_read_out: @cancellation: @Returns: @connection: @buffer: @bytes: @bytes_written_out: @cancellation: @Returns: @connection: @cancellation: @connection: @timeout: @cancellation: @Returns: @impl: @connection: @Returns: @socket: @buffer: @bytes: @bytes_written: @cancellation: @Returns: @socket: @cancellation: @Returns: @socket: @buffer: @bytes: @bytes_read: @cancellation: @Returns: @socket: @socket: @timeout: @cancellation: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-file-info.sgml0000644000175000001440000001276211450333532016604 00000000000000 GnomeVFSFileInfo stores information about files, GnomeVFS equivalent of stat @GNOME_VFS_FILE_FLAGS_NONE: @GNOME_VFS_FILE_FLAGS_SYMLINK: @GNOME_VFS_FILE_FLAGS_LOCAL: @GNOME_VFS_FILE_TYPE_UNKNOWN: @GNOME_VFS_FILE_TYPE_REGULAR: @GNOME_VFS_FILE_TYPE_DIRECTORY: @GNOME_VFS_FILE_TYPE_FIFO: @GNOME_VFS_FILE_TYPE_SOCKET: @GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: @GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: @GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: @GNOME_VFS_FILE_INFO_FIELDS_NONE: @GNOME_VFS_FILE_INFO_FIELDS_TYPE: @GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS: @GNOME_VFS_FILE_INFO_FIELDS_FLAGS: @GNOME_VFS_FILE_INFO_FIELDS_DEVICE: @GNOME_VFS_FILE_INFO_FIELDS_INODE: @GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT: @GNOME_VFS_FILE_INFO_FIELDS_SIZE: @GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT: @GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE: @GNOME_VFS_FILE_INFO_FIELDS_ATIME: @GNOME_VFS_FILE_INFO_FIELDS_MTIME: @GNOME_VFS_FILE_INFO_FIELDS_CTIME: @GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME: @GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE: @GNOME_VFS_FILE_INFO_FIELDS_ACCESS: @GNOME_VFS_FILE_INFO_FIELDS_IDS: @GNOME_VFS_FILE_INFO_FIELDS_ACL: @GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT: @GNOME_VFS_PERM_SUID: @GNOME_VFS_PERM_SGID: @GNOME_VFS_PERM_STICKY: @GNOME_VFS_PERM_USER_READ: @GNOME_VFS_PERM_USER_WRITE: @GNOME_VFS_PERM_USER_EXEC: @GNOME_VFS_PERM_USER_ALL: @GNOME_VFS_PERM_GROUP_READ: @GNOME_VFS_PERM_GROUP_WRITE: @GNOME_VFS_PERM_GROUP_EXEC: @GNOME_VFS_PERM_GROUP_ALL: @GNOME_VFS_PERM_OTHER_READ: @GNOME_VFS_PERM_OTHER_WRITE: @GNOME_VFS_PERM_OTHER_EXEC: @GNOME_VFS_PERM_OTHER_ALL: @GNOME_VFS_PERM_ACCESS_READABLE: @GNOME_VFS_PERM_ACCESS_WRITABLE: @GNOME_VFS_PERM_ACCESS_EXECUTABLE: @GNOME_VFS_FILE_INFO_DEFAULT: @GNOME_VFS_FILE_INFO_GET_MIME_TYPE: @GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE: @GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE: @GNOME_VFS_FILE_INFO_FOLLOW_LINKS: @GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS: @GNOME_VFS_FILE_INFO_NAME_ONLY: @GNOME_VFS_FILE_INFO_GET_ACL: @GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT: @GNOME_VFS_SET_FILE_INFO_NONE: @GNOME_VFS_SET_FILE_INFO_NAME: @GNOME_VFS_SET_FILE_INFO_PERMISSIONS: @GNOME_VFS_SET_FILE_INFO_OWNER: @GNOME_VFS_SET_FILE_INFO_TIME: @GNOME_VFS_SET_FILE_INFO_ACL: @GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT: @GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME: @uri: @result: @file_info: @name: @valid_fields: @type: @permissions: @flags: @device: @inode: @link_count: @uid: @gid: @size: @block_count: @io_block_size: @atime: @mtime: @ctime: @symlink_name: @mime_type: @refcount: @acl: @selinux_context: @info: @info: @value: @info: @info: @value: @info: @info: @info: @info: @value: @info: @value: @info: @value: @void: @Returns: @info: @info: @info: @info: @Returns: @dest: @src: @orig: @Returns: @a: @b: @Returns: @list: @Returns: @list: @Returns: @list: @Returns: @list: @result: @Returns: @result: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-directory.sgml0000644000175000001440000000433011450333532016730 00000000000000 Directory Operations Reading the contents of directories @GNOME_VFS_DIRECTORY_VISIT_DEFAULT: @GNOME_VFS_DIRECTORY_VISIT_SAMEFS: @GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK: @rel_path: @info: @recursing_will_loop: @data: @recurse: @Returns: @handle: @text_uri: @options: @Returns: @handle: @uri: @options: @Returns: @handle: @file_info: @Returns: @handle: @Returns: @uri: @info_options: @visit_options: @callback: @data: @Returns: @uri: @info_options: @visit_options: @callback: @data: @Returns: @text_uri: @file_list: @info_options: @visit_options: @callback: @data: @Returns: @Param4: @uri: @file_list: @info_options: @visit_options: @callback: @data: @Returns: @list: @text_uri: @options: @Returns: @uri: @perm: @Returns: @text_uri: @perm: @Returns: @uri: @Returns: @text_uri: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-dns-sd.sgml0000644000175000001440000000426611450333532016124 00000000000000 Zeroconf networking support Gets information about available Zeroconf (aka RendezVous) services on a local network. @handle: @result: @service: @host: @port: @text: @text_raw_len: @text_raw: @callback_data: @GNOME_VFS_DNS_SD_SERVICE_ADDED: @GNOME_VFS_DNS_SD_SERVICE_REMOVED: @name: @type: @domain: @handle: @status: @service: @callback_data: @handle: @domain: @type: @callback: @callback_data: @callback_data_destroy_func: @Returns: @handle: @Returns: @handle: @name: @type: @domain: @timeout: @callback: @callback_data: @callback_data_destroy_func: @Returns: @handle: @Returns: @domain: @type: @timeout_msec: @n_services: @services: @Returns: @name: @type: @domain: @timeout_msec: @host: @port: @text: @text_raw_len_out: @text_raw_out: @Returns: @services: @n_services: @domain: @timeout_msec: @domains: @Returns: @void: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-file-trunc-ops.sgml0000644000175000001440000000150211450333532017571 00000000000000 Truncating Files Force files to a particular length Truncation of files is used to force them to a particular length. If a file longer than specified, the trailing bytes are discarded, if it is shorter than specified it is padded with zeros. @text_uri: @length: @Returns: @uri: @length: @Returns: @handle: @length: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-file-advanced-ops.sgml0000644000175000001440000000137411450333532020212 00000000000000 Backend-Specific Operations Execute backend-specific operations Advanced file operations allow you to execute backend-specific commands. Currently, none of the #GnomeVFSModules shipped with GnomeVFS includes useful operations, but they allow sophisticated module-specific code that can not be added to GnomeVFS because it would break abstraction. @handle: @operation: @operation_data: @Returns: gnome-vfs-2.24.4/doc/tmpl/gnome-vfs-method.sgml0000644000175000001440000000226211450333532016206 00000000000000 gnome-vfs-method @method_name: @config_args: @Returns: @method: @method: @uri: @length: @context: @Returns: @method: @handle: @length: @context: @Returns: @method: @func: @void: @Returns: @name: @Returns: @name: @Returns: gnome-vfs-2.24.4/doc/gnome-vfs-2.0-sections.txt0000644000175000001440000004764711450333532015773 00000000000000
gnome-vfs-mime-monitor GNOME_VFS_MIME_MONITOR_TYPE GnomeVFSMIMEMonitorPrivate gnome_vfs_mime_monitor_get GNOME_VFS_MIME_MONITOR GNOME_VFS_IS_MIME_MONITOR gnome_vfs_mime_monitor_get_type GNOME_VFS_MIME_MONITOR_CLASS GNOME_VFS_IS_MIME_MONITOR_CLASS
gnome-vfs-file-size GNOME_VFS_OFFSET_IS_LONG_LONG GNOME_VFS_SIZE_FORMAT_STR GNOME_VFS_OFFSET_FORMAT_STR GnomeVFSFileSize GnomeVFSFileOffset GNOME_VFS_SIZE_IS_UNSIGNED_LONG_LONG
gnome-vfs-utils GnomeVFSMakeURIDirs gnome_vfs_format_file_size_for_display gnome_vfs_format_uri_for_display gnome_vfs_url_show gnome_vfs_url_show_with_env gnome_vfs_escape_string gnome_vfs_escape_path_string gnome_vfs_escape_host_and_path_string gnome_vfs_escape_slashes gnome_vfs_escape_set gnome_vfs_unescape_string gnome_vfs_make_uri_canonical gnome_vfs_make_uri_canonical_strip_fragment gnome_vfs_make_path_name_canonical gnome_vfs_make_uri_from_input gnome_vfs_make_uri_from_input_with_dirs gnome_vfs_make_uri_from_shell_arg gnome_vfs_make_uri_full_from_relative gnome_vfs_expand_initial_tilde gnome_vfs_unescape_string_for_display gnome_vfs_get_local_path_from_uri gnome_vfs_get_uri_from_local_path gnome_vfs_is_executable_command_string gnome_vfs_list_deep_free gnome_vfs_get_volume_free_space gnome_vfs_icon_path_from_filename gnome_vfs_is_primary_thread gnome_vfs_get_uri_scheme gnome_vfs_uris_match GNOME_VFS_ASSERT_PRIMARY_THREAD GNOME_VFS_ASSERT_SECONDARY_THREAD gnome_vfs_open_fd gnome_vfs_read_entire_file
gnome-vfs-application-registry GNOME_VFS_APPLICATION_REGISTRY_COMMAND GNOME_VFS_APPLICATION_REGISTRY_NAME GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL gnome_vfs_application_registry_exists gnome_vfs_application_registry_get_keys gnome_vfs_application_registry_peek_value gnome_vfs_application_registry_get_bool_value gnome_vfs_application_registry_remove_application gnome_vfs_application_registry_set_value gnome_vfs_application_registry_set_bool_value gnome_vfs_application_registry_unset_key gnome_vfs_application_registry_get_applications gnome_vfs_application_registry_get_mime_types gnome_vfs_application_registry_supports_mime_type gnome_vfs_application_registry_supports_uri_scheme gnome_vfs_application_is_user_owned_application gnome_vfs_application_registry_clear_mime_types gnome_vfs_application_registry_add_mime_type gnome_vfs_application_registry_remove_mime_type gnome_vfs_application_registry_sync gnome_vfs_application_registry_shutdown gnome_vfs_application_registry_reload gnome_vfs_application_registry_get_mime_application gnome_vfs_application_registry_save_mime_application
gnome-vfs-init gnome_vfs_init gnome_vfs_initialized gnome_vfs_shutdown gnome_vfs_loadinit gnome_vfs_preinit gnome_vfs_postinit
gnome-vfs-directory-basic-ops gnome_vfs_make_directory gnome_vfs_make_directory_for_uri gnome_vfs_remove_directory gnome_vfs_remove_directory_from_uri
gnome-vfs-directory-list-ops GnomeVFSDirectoryHandle GnomeVFSDirectoryVisitOptions GnomeVFSDirectoryVisitFunc gnome_vfs_directory_open gnome_vfs_directory_open_from_uri gnome_vfs_directory_read_next gnome_vfs_directory_close gnome_vfs_directory_visit gnome_vfs_directory_visit_uri gnome_vfs_directory_visit_files gnome_vfs_directory_visit_files_at_uri gnome_vfs_directory_list_load
gnome-vfs-directory-find-ops GnomeVFSFindDirectoryKind gnome_vfs_find_directory
gnome-vfs-transform GnomeVFSTransformInitFunc GnomeVFSTransformFunc
gnome-vfs-async-ops GNOME_VFS_PRIORITY_MIN GNOME_VFS_PRIORITY_MAX GNOME_VFS_PRIORITY_DEFAULT GnomeVFSAsyncHandle GnomeVFSAsyncCallback GnomeVFSAsyncOpenCallback GnomeVFSAsyncOpenAsChannelCallback GnomeVFSAsyncCreateCallback GnomeVFSAsyncCreateAsChannelCallback GnomeVFSAsyncCloseCallback GnomeVFSAsyncReadCallback GnomeVFSAsyncWriteCallback GnomeVFSAsyncSeekCallback GnomeVFSAsyncGetFileInfoCallback GnomeVFSAsyncSetFileInfoCallback GnomeVFSAsyncFileControlCallback GnomeVFSAsyncDirectoryLoadCallback GnomeVFSAsyncFindDirectoryCallback GnomeVFSFindDirectoryResult GnomeVFSAsyncXferProgressCallback GnomeVFSCancellation GnomeVFSContext gnome_vfs_async_set_job_limit gnome_vfs_async_get_job_limit gnome_vfs_async_cancel gnome_vfs_async_open gnome_vfs_async_open_uri gnome_vfs_async_open_as_channel gnome_vfs_async_open_uri_as_channel gnome_vfs_async_create gnome_vfs_async_create_uri gnome_vfs_async_create_symbolic_link gnome_vfs_async_create_as_channel gnome_vfs_async_create_uri_as_channel gnome_vfs_async_close gnome_vfs_async_read gnome_vfs_async_write gnome_vfs_async_seek gnome_vfs_async_get_file_info gnome_vfs_async_set_file_info gnome_vfs_async_load_directory gnome_vfs_async_load_directory_uri gnome_vfs_async_xfer gnome_vfs_async_find_directory gnome_vfs_async_file_control gnome_vfs_find_directory_result_dup gnome_vfs_find_directory_result_free
gnome-vfs-file-basic-ops GnomeVFSOpenMode gnome_vfs_create gnome_vfs_create_uri gnome_vfs_open gnome_vfs_open_uri gnome_vfs_close gnome_vfs_unlink gnome_vfs_unlink_from_uri gnome_vfs_move_uri gnome_vfs_move gnome_vfs_check_same_fs_uris gnome_vfs_check_same_fs gnome_vfs_uri_exists gnome_vfs_create_symbolic_link
gnome-vfs-file-rw-ops GnomeVFSSeekPosition gnome_vfs_read gnome_vfs_write gnome_vfs_seek gnome_vfs_tell gnome_vfs_forget_cache
gnome-vfs-file-trunc-ops gnome_vfs_truncate gnome_vfs_truncate_uri gnome_vfs_truncate_handle
gnome-vfs-file-info-ops gnome_vfs_get_file_info gnome_vfs_get_file_info_uri gnome_vfs_get_file_info_from_handle gnome_vfs_set_file_info_uri gnome_vfs_set_file_info
gnome-vfs-file-advanced-ops gnome_vfs_file_control
gnome-vfs-ops GnomeVFSMethodHandle GnomeVFSHandle
gnome-vfs-ssl GnomeVFSSSL gnome_vfs_ssl_enabled gnome_vfs_ssl_create gnome_vfs_ssl_create_from_fd gnome_vfs_ssl_read gnome_vfs_ssl_write gnome_vfs_ssl_destroy gnome_vfs_ssl_to_socket gnome_vfs_ssl_set_timeout
gnome-vfs-uri GnomeVFSURI GnomeVFSToplevelURI GnomeVFSURIHideOptions GNOME_VFS_URI_MAGIC_CHR GNOME_VFS_URI_MAGIC_STR GNOME_VFS_URI_PATH_CHR GNOME_VFS_URI_PATH_STR gnome_vfs_uri_new gnome_vfs_uri_resolve_relative gnome_vfs_uri_resolve_symbolic_link gnome_vfs_uri_ref gnome_vfs_uri_unref gnome_vfs_uri_append_string gnome_vfs_uri_append_path gnome_vfs_uri_append_file_name gnome_vfs_uri_to_string gnome_vfs_uri_dup gnome_vfs_uri_is_local gnome_vfs_uri_has_parent gnome_vfs_uri_get_parent gnome_vfs_uri_get_toplevel gnome_vfs_uri_get_host_name gnome_vfs_uri_get_scheme gnome_vfs_uri_get_host_port gnome_vfs_uri_get_user_name gnome_vfs_uri_get_password gnome_vfs_uri_set_host_name gnome_vfs_uri_set_host_port gnome_vfs_uri_set_user_name gnome_vfs_uri_set_password gnome_vfs_uri_equal gnome_vfs_uri_is_parent gnome_vfs_uri_get_path gnome_vfs_uri_get_fragment_identifier gnome_vfs_uri_extract_dirname gnome_vfs_uri_extract_short_name gnome_vfs_uri_extract_short_path_name gnome_vfs_uri_hequal gnome_vfs_uri_hash gnome_vfs_uri_list_parse gnome_vfs_uri_list_ref gnome_vfs_uri_list_unref gnome_vfs_uri_list_copy gnome_vfs_uri_list_free gnome_vfs_uri_make_full_from_relative
gnome-vfs-standard-callbacks GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION GnomeVFSModuleCallbackFillAuthenticationIn GnomeVFSModuleCallbackFillAuthenticationOut GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION GnomeVFSModuleCallbackFullAuthenticationFlags GnomeVFSModuleCallbackFullAuthenticationIn GnomeVFSModuleCallbackFullAuthenticationOut GnomeVFSModuleCallbackFullAuthenticationOutFlags GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION GnomeVFSModuleCallbackSaveAuthenticationIn GnomeVFSModuleCallbackSaveAuthenticationOut GNOME_VFS_MODULE_CALLBACK_QUESTION GnomeVFSModuleCallbackQuestionIn GnomeVFSModuleCallbackQuestionOut GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE GnomeVFSModuleCallbackStatusMessageIn GnomeVFSModuleCallbackStatusMessageOut GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS GnomeVFSModuleCallbackAdditionalHeadersIn GnomeVFSModuleCallbackAdditionalHeadersOut GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS GnomeVFSModuleCallbackReceivedHeadersIn GnomeVFSModuleCallbackReceivedHeadersOut GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION GnomeVFSModuleCallbackAuthenticationAuthType GnomeVFSModuleCallbackAuthenticationIn GnomeVFSModuleCallbackAuthenticationOut
gnome-vfs-inet-connection GnomeVFSInetConnection gnome_vfs_inet_connection_create gnome_vfs_inet_connection_destroy gnome_vfs_inet_connection_free gnome_vfs_inet_connection_to_socket gnome_vfs_inet_connection_to_socket_buffer gnome_vfs_inet_connection_get_fd gnome_vfs_inet_connection_create_from_address gnome_vfs_inet_connection_get_address gnome_vfs_inet_connection_get_ip
gnome-vfs-socket GnomeVFSSocket GnomeVFSSocketImpl GnomeVFSSocketReadFunc GnomeVFSSocketWriteFunc GnomeVFSSocketCloseFunc GnomeVFSSocketSetTimeoutFunc gnome_vfs_socket_new gnome_vfs_socket_write gnome_vfs_socket_close gnome_vfs_socket_read gnome_vfs_socket_free gnome_vfs_socket_set_timeout
gnome-vfs-parse-ls gnome_vfs_parse_ls_lga
gnome-vfs-module-callback GnomeVFSModuleCallback GnomeVFSModuleCallbackResponse GnomeVFSAsyncModuleCallback gnome_vfs_module_callback_set_default gnome_vfs_module_callback_push gnome_vfs_module_callback_pop gnome_vfs_async_module_callback_set_default gnome_vfs_async_module_callback_push gnome_vfs_async_module_callback_pop
gnome-vfs-context gnome_vfs_context_new gnome_vfs_context_free gnome_vfs_context_get_cancellation gnome_vfs_context_check_cancellation gnome_vfs_context_peek_current gnome_vfs_context_check_cancellation_current
gnome-vfs-file-info GnomeVFSFileFlags GnomeVFSFileType GnomeVFSFileInfoFields GnomeVFSFilePermissions GnomeVFSFileInfoOptions GnomeVFSSetFileInfoMask GnomeVFSGetFileInfoResult GnomeVFSInodeNumber GnomeVFSFileInfo GNOME_VFS_FILE_INFO_SYMLINK GNOME_VFS_FILE_INFO_SET_SYMLINK GNOME_VFS_FILE_INFO_LOCAL GNOME_VFS_FILE_INFO_SET_LOCAL GNOME_VFS_FILE_INFO_SUID GNOME_VFS_FILE_INFO_SGID GNOME_VFS_FILE_INFO_STICKY GNOME_VFS_FILE_INFO_SET_SUID GNOME_VFS_FILE_INFO_SET_SGID GNOME_VFS_FILE_INFO_SET_STICKY gnome_vfs_file_info_new gnome_vfs_file_info_unref gnome_vfs_file_info_ref gnome_vfs_file_info_clear gnome_vfs_file_info_get_mime_type gnome_vfs_file_info_copy gnome_vfs_file_info_dup gnome_vfs_file_info_matches gnome_vfs_file_info_list_ref gnome_vfs_file_info_list_unref gnome_vfs_file_info_list_copy gnome_vfs_file_info_list_free gnome_vfs_get_file_info_result_dup gnome_vfs_get_file_info_result_free
gnome-vfs-method GnomeVFSMethodInitFunc GnomeVFSMethodShutdownFunc GnomeVFSMethodTruncateFunc GnomeVFSMethodTruncateHandleFunc VFS_METHOD_HAS_FUNC gnome_vfs_method_init gnome_vfs_method_get GnomeVFSTransform gnome_vfs_transform_get
gnome-vfs-result GnomeVFSResult gnome_vfs_result_to_string gnome_vfs_result_from_errno_code gnome_vfs_result_from_errno gnome_vfs_result_from_h_errno gnome_vfs_result_from_h_errno_val
gnome-vfs-module vfs_module_init vfs_module_transform vfs_module_shutdown
gnome-vfs-module-shared gnome_vfs_mime_type_from_mode gnome_vfs_mime_type_from_mode_or_default gnome_vfs_stat_to_file_info gnome_vfs_set_meta gnome_vfs_set_meta_for_list gnome_vfs_get_special_mime_type
gnome-vfs-module-callback-module-api gnome_vfs_module_callback_invoke
gnome-vfs-mime gnome_vfs_mime_type_from_name gnome_vfs_mime_type_from_name_or_default gnome_vfs_get_mime_type_common gnome_vfs_get_mime_type_from_uri gnome_vfs_get_mime_type_from_file_data gnome_vfs_get_file_mime_type_fast gnome_vfs_get_file_mime_type gnome_vfs_mime_type_is_supertype gnome_vfs_get_supertype_from_mime_type gnome_vfs_mime_info_cache_reload gnome_vfs_mime_reload gnome_vfs_mime_shutdown
gnome-vfs-mime-utils GNOME_VFS_MIME_TYPE_UNKNOWN GnomeVFSMimeEquivalence gnome_vfs_mime_type_get_equivalence gnome_vfs_mime_type_is_equal gnome_vfs_get_mime_type_for_name gnome_vfs_get_mime_type_for_data gnome_vfs_get_mime_type_for_name_and_data gnome_vfs_get_mime_type gnome_vfs_get_slow_mime_type
gnome-vfs-mime-database GnomeVFSMimeApplication gnome_vfs_mime_get_default_application gnome_vfs_mime_get_default_application_for_uri gnome_vfs_mime_get_all_applications gnome_vfs_mime_get_all_applications_for_uri gnome_vfs_mime_get_all_desktop_entries gnome_vfs_mime_get_default_desktop_entry gnome_vfs_mime_get_default_component gnome_vfs_mime_get_all_components gnome_vfs_mime_get_icon gnome_vfs_mime_get_description gnome_vfs_mime_can_be_executable gnome_vfs_mime_application_new_from_desktop_id gnome_vfs_mime_application_launch gnome_vfs_mime_application_launch_with_env gnome_vfs_mime_application_get_desktop_id gnome_vfs_mime_application_get_desktop_file_path gnome_vfs_mime_application_get_name gnome_vfs_mime_application_get_generic_name gnome_vfs_mime_application_get_icon gnome_vfs_mime_application_get_exec gnome_vfs_mime_application_get_binary_name gnome_vfs_mime_application_requires_terminal gnome_vfs_mime_application_supports_uris gnome_vfs_mime_application_supports_startup_notification gnome_vfs_mime_application_get_startup_wm_class gnome_vfs_mime_application_equal gnome_vfs_mime_application_copy gnome_vfs_mime_application_free gnome_vfs_mime_application_list_free gnome_vfs_mime_component_list_free
gnome-vfs-mime-database-deprecated GnomeVFSMimeActionType GnomeVFSMimeApplicationArgumentType GnomeVFSMimeAction gnome_vfs_mime_get_default_action_type gnome_vfs_mime_get_default_action gnome_vfs_mime_get_short_list_applications gnome_vfs_mime_get_short_list_components gnome_vfs_mime_set_default_action_type gnome_vfs_mime_set_icon gnome_vfs_mime_set_description gnome_vfs_mime_set_can_be_executable gnome_vfs_mime_set_short_list_applications gnome_vfs_mime_set_short_list_components gnome_vfs_mime_add_application_to_short_list gnome_vfs_mime_remove_application_from_short_list gnome_vfs_mime_add_component_to_short_list gnome_vfs_mime_remove_component_from_short_list gnome_vfs_mime_set_default_application gnome_vfs_mime_set_default_component gnome_vfs_mime_add_extension gnome_vfs_mime_remove_extension gnome_vfs_mime_extend_all_applications gnome_vfs_mime_remove_from_all_applications gnome_vfs_mime_application_new_from_id gnome_vfs_mime_action_launch gnome_vfs_mime_action_launch_with_env gnome_vfs_mime_action_free gnome_vfs_mime_id_in_application_list gnome_vfs_mime_id_in_component_list gnome_vfs_mime_remove_application_from_list gnome_vfs_mime_remove_component_from_list gnome_vfs_mime_id_list_from_component_list gnome_vfs_mime_id_list_from_application_list gnome_vfs_mime_freeze gnome_vfs_mime_thaw gnome_vfs_mime_info_reload gnome_vfs_mime_type_is_known gnome_vfs_mime_get_value gnome_vfs_mime_set_value gnome_vfs_mime_get_key_list gnome_vfs_mime_keys_list_free gnome_vfs_mime_get_extensions_list gnome_vfs_mime_extensions_list_free gnome_vfs_mime_get_extensions_string gnome_vfs_mime_get_extensions_pretty_string gnome_vfs_get_registered_mime_types gnome_vfs_mime_registered_mime_type_list_free gnome_vfs_mime_set_registered_type_key gnome_vfs_mime_set_extensions_list gnome_vfs_mime_registered_mime_type_delete gnome_vfs_mime_reset
gnome-vfs-mime-monitor GnomeVFSMIMEMonitor gnome_vfs_mime_monitor_get
gnome-vfs-cancellation gnome_vfs_cancellation_new gnome_vfs_cancellation_destroy gnome_vfs_cancellation_cancel gnome_vfs_cancellation_check gnome_vfs_cancellation_ack gnome_vfs_cancellation_get_fd
gnome-vfs-xfer GnomeVFSXferOptions GnomeVFSXferProgressStatus GnomeVFSXferOverwriteMode GnomeVFSXferOverwriteAction GnomeVFSXferErrorMode GnomeVFSXferErrorAction GnomeVFSXferPhase GnomeVFSXferProgressInfo GnomeVFSXferProgressCallback gnome_vfs_xfer_uri_list gnome_vfs_xfer_uri gnome_vfs_xfer_delete_list
gnome-vfs-socket-buffer GnomeVFSSocketBuffer gnome_vfs_socket_buffer_new gnome_vfs_socket_buffer_destroy gnome_vfs_socket_buffer_read gnome_vfs_socket_buffer_peekc gnome_vfs_socket_buffer_write gnome_vfs_socket_buffer_flush gnome_vfs_socket_buffer_read_until
gnome-vfs-monitor GnomeVFSMonitorHandle GnomeVFSMonitorType GnomeVFSMonitorEventType GnomeVFSMonitorCallback gnome_vfs_monitor_add gnome_vfs_monitor_cancel gnome_vfs_monitor_callback
gnome-vfs-volume GNOME_IS_VFS_VOLUME GNOME_IS_VFS_VOLUME_CLASS GNOME_VFS_TYPE_VOLUME GNOME_VFS_VOLUME GNOME_VFS_VOLUME_CLASS GnomeVFSVolume GnomeVFSVolumeClass GnomeVFSVolumeOpCallback GnomeVFSVolumeType gnome_vfs_volume_compare gnome_vfs_volume_eject gnome_vfs_volume_get_activation_uri gnome_vfs_volume_get_device_path gnome_vfs_volume_get_device_type gnome_vfs_volume_get_display_name gnome_vfs_volume_get_drive gnome_vfs_volume_get_filesystem_type gnome_vfs_volume_get_hal_udi gnome_vfs_volume_get_icon gnome_vfs_volume_get_id gnome_vfs_volume_get_type gnome_vfs_volume_get_volume_type gnome_vfs_volume_handles_trash gnome_vfs_volume_is_mounted gnome_vfs_volume_is_read_only gnome_vfs_volume_is_user_visible gnome_vfs_volume_ref gnome_vfs_volume_type_get_type gnome_vfs_volume_unmount gnome_vfs_volume_unref gnome_vfs_connect_to_server
gnome-vfs-drive GnomeVFSDeviceType GnomeVFSDrive GnomeVFSDriveClass GNOME_IS_VFS_DRIVE GNOME_IS_VFS_DRIVE_CLASS GNOME_VFS_TYPE_DRIVE GNOME_VFS_DRIVE GNOME_VFS_DRIVE_CLASS gnome_vfs_drive_compare gnome_vfs_drive_eject gnome_vfs_drive_get_activation_uri gnome_vfs_drive_get_device_path gnome_vfs_drive_get_device_type gnome_vfs_drive_get_display_name gnome_vfs_drive_get_hal_udi gnome_vfs_drive_get_icon gnome_vfs_drive_get_id gnome_vfs_drive_get_mounted_volume gnome_vfs_drive_get_mounted_volumes gnome_vfs_drive_volume_list_free gnome_vfs_drive_get_type gnome_vfs_drive_is_connected gnome_vfs_drive_is_mounted gnome_vfs_drive_is_user_visible gnome_vfs_drive_mount gnome_vfs_drive_ref gnome_vfs_drive_unmount gnome_vfs_drive_unref
gnome-vfs-volume-monitor GNOME_IS_VFS_VOLUME_MONITOR GNOME_IS_VFS_VOLUME_MONITOR_CLASS GNOME_VFS_TYPE_VOLUME_MONITOR GNOME_VFS_VOLUME_MONITOR GNOME_VFS_VOLUME_MONITOR_CLASS GnomeVFSVolumeMonitor GnomeVFSVolumeMonitorClass gnome_vfs_get_volume_monitor gnome_vfs_volume_monitor_get_connected_drives gnome_vfs_volume_monitor_get_drive_by_id gnome_vfs_volume_monitor_get_mounted_volumes gnome_vfs_volume_monitor_get_type gnome_vfs_volume_monitor_get_volume_by_id gnome_vfs_volume_monitor_get_volume_for_path gnome_vfs_volume_monitor_ref gnome_vfs_volume_monitor_unref
gnome-vfs-dns-sd GnomeVFSDNSSDResolveCallback GnomeVFSDNSSDServiceStatus GnomeVFSDNSSDService GnomeVFSDNSSDBrowseCallback gnome_vfs_dns_sd_browse gnome_vfs_dns_sd_stop_browse gnome_vfs_dns_sd_resolve gnome_vfs_dns_sd_cancel_resolve gnome_vfs_dns_sd_browse_sync gnome_vfs_dns_sd_resolve_sync gnome_vfs_dns_sd_service_list_free gnome_vfs_dns_sd_list_browse_domains_sync gnome_vfs_get_default_browse_domains
gnome-vfs-resolve gnome_vfs_resolve gnome_vfs_resolve_free gnome_vfs_resolve_next_address gnome_vfs_resolve_reset_to_beginning GnomeVFSAddress gnome_vfs_address_dup gnome_vfs_address_free gnome_vfs_address_get_family_type gnome_vfs_address_get_ipv4 gnome_vfs_address_get_type gnome_vfs_address_new_from_ipv4 gnome_vfs_address_new_from_sockaddr gnome_vfs_address_new_from_string gnome_vfs_address_to_string
gnome-vfs-2.24.4/doc/gnome-vfs-2.0-overrides.txt0000644000175000001440000000000011334251016016107 00000000000000gnome-vfs-2.24.4/doc/version.xml0000644000175000001440000000000711450333345013373 000000000000002.24.4 gnome-vfs-2.24.4/doc/version.xml.in0000644000175000001440000000002611334251016013774 00000000000000@LIBGNOMEVFS_VERSION@ gnome-vfs-2.24.4/gnome-vfs.spec0000644000175000001440000000715211450333344013203 00000000000000%define localstatedir /var/lib Name: gnome-vfs Summary: The GNOME virtual file-system libraries Version: 2.24.4 Release: 1_cvs License: LGPL Group: System Environment/Libraries Source: ftp://ftp.gnome.org/pub/GNOME/stable/sources/%name/%name-%{version}.tar.gz URL: http://www.gnome.org/ BuildRoot: /var/tmp/%{name}-root Requires: control-center Requires: glib2 >= 2.9.3 Requires: GConf2 >= 1.1.1 BuildRequires: gnome-libs-devel, control-center-devel BuildRequires: bonobo-activation-devel >= @BONOBO_ACTIVATION_REQUIRED@ BuildRequires: bonobo-devel >= @BONOBO_REQUIRED@ BuildRequires: GConf2-devel >= 1.1.1 BuildRequires: gtk2-devel >= @GTK_REQUIRED@ BuildRequires: ORBit-devel >= @ORBIT_REQUIRED@ BuildRequires: libxml2 >= 2.6.0 %description GNOME VFS is the GNOME virtual file system. It is the foundation of the Nautilus file manager. It provides a modular architecture and ships with several modules that implement support for file systems, http, ftp and others. It provides a URI-based API, a backend supporting asynchronous file operations, a MIME type manipulation library and other features. %package devel Summary: Libraries and include files for developing GNOME VFS applications. Group: Development/Libraries Requires: %name = %{version} Requires: glib-devel Requires: bonobo-devel %description devel This package provides the necessary development libraries for writing GNOME VFS modules and applications that use the GNOME VFS APIs. %prep %setup -q %build %ifarch alpha MYARCH_FLAGS="--host=alpha-redhat-linux" %endif # Needed for snapshot releases. MYCFLAGS="$RPM_OPT_FLAGS" if [ ! -f configure ]; then CFLAGS="$MYCFLAGS" ./autogen.sh $MYARCH_FLAGS \ --enable-more-warnings --prefix=%{_prefix} \ --localstatedir=%{localstatedir} --sysconfdir=%{_sysconfdir} \ --mandir=%{_mandir} --libdir=%{_libdir} \ --includedir=%{_includedir} --bindir=%{_bindir} fi CFLAGS="$MYCFLAGS" ./configure $MYARCH_FLAGS --enable-more-warnings \ --prefix=%{_prefix} --localstatedir=%{localstatedir} \ --sysconfdir=%{_sysconfdir} --mandir=%{_mandir} \ --libdir=%{_libdir} --includedir=%{_includedir} \ --bindir=%{_bindir} make %install rm -rf $RPM_BUILD_ROOT make -k sysconfdir=$RPM_BUILD_ROOT%{_sysconfdir} \ prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \ libdir=$RPM_BUILD_ROOT%{_libdir} bindir=$RPM_BUILD_ROOT\%{_bindir} \ includedir=$RPM_BUILD_ROOT%{_includedir} install %find_lang %name %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files -f %{name}.lang %defattr(-, root, root) %doc AUTHORS COPYING ChangeLog NEWS README %config %{_sysconfdir}/gnome-vfs-2.0/modules/*.conf %config %{_sysconfdir}/gnome-vfs-2.0/vfolders/*.vfolder-info %{_libdir}/*.so.* %{_libdir}/*.so %{_libdir}/vfs/extfs/* %{_libdir}/gnome-vfs-2.0/modules/*.so %{_libdir}/bonobo/monikers/*.so %{_libdir}/bonobo/servers/*.server %{_prefix}/share/gtk-doc/html/gnome-vfs/*.html %{_prefix}/share/locale/*/LC_MESSAGES/*.mo %files devel %defattr(-, root, root) %{_includedir}/gnome-vfs-2.0/libgnomevfs/*.h %{_includedir}/gnome-vfs-module-2.0/libgnomevfs/*.h %{_libdir}/gnome-vfs-2.0/include/*.h %{_libdir}/*.a %{_libdir}/*.la %{_libdir}/gnome-vfs-2.0/modules/*.a %{_libdir}/gnome-vfs-2.0/modules/*.la %{_libdir}/bonobo/monikers/*.a %{_libdir}/bonobo/monikers/*.la %{_libdir}/pkgconfig/*.pc %changelog * Sun Dec 15 2001 Ross Golder - fixed broken Name: * Sun Oct 21 2001 Gregory Leblanc - some messing around with Requires: and BuildRequires - cleaned up %files quite a bit (still not quite as good as it could be) - removed a bunch of unnecessary %defines gnome-vfs-2.24.4/libgnomevfs/0000755000175000001440000000000011450333532013013 500000000000000gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-init.h0000644000175000001440000000301211334251016015737 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-init.h - Initialization for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_INIT_H #define GNOME_VFS_INIT_H #include G_BEGIN_DECLS gboolean gnome_vfs_init (void); gboolean gnome_vfs_initialized (void); void gnome_vfs_shutdown (void); #ifndef GNOME_VFS_DISABLE_DEPRECATED /* Stuff for use in a GnomeModuleInfo */ void gnome_vfs_loadinit (gpointer app, gpointer modinfo); void gnome_vfs_preinit (gpointer app, gpointer modinfo); void gnome_vfs_postinit (gpointer app, gpointer modinfo); #endif G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-acl.c0000644000175000001440000001561211334251016015537 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-acl.h - ACL Handling for the GNOME Virtual File System. Access Control List Object Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner */ #include "gnome-vfs-acl.h" /* ************************************************************************** */ /* GObject Stuff */ static GObjectClass *parent_class = NULL; #define GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ GNOME_VFS_TYPE_ACL, GnomeVFSACLPrivate)) G_DEFINE_TYPE (GnomeVFSACL, gnome_vfs_acl, G_TYPE_OBJECT); struct _GnomeVFSACLPrivate { GList *entries; gboolean modified; }; static void gnome_vfs_acl_finalize (GObject *object) { GnomeVFSACL *acl; GnomeVFSACLPrivate *priv; GList *iter; acl = GNOME_VFS_ACL (object); priv = acl->priv; for (iter = priv->entries; iter; iter = iter->next) { GnomeVFSACE *ace; ace = GNOME_VFS_ACE (iter->data); g_object_unref (ace); } g_list_free (priv->entries); if (G_OBJECT_CLASS (parent_class)->finalize) (*G_OBJECT_CLASS (parent_class)->finalize) (object); } static void gnome_vfs_acl_class_init (GnomeVFSACLClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (GnomeVFSACLPrivate)); gobject_class->finalize = gnome_vfs_acl_finalize; } static void gnome_vfs_acl_init (GnomeVFSACL *acl) { acl->priv = GET_PRIVATE (acl); } /* ************************************************************************** */ /* Public Interface */ /** * gnome_vfs_acl_new: * * Creates a new #GnomeVFSACL object. * * Return value: The new #GnomeVFSACL * * Since: 2.16 **/ GnomeVFSACL * gnome_vfs_acl_new (void) { GnomeVFSACL *acl; acl = g_object_new (GNOME_VFS_TYPE_ACL, NULL); return acl; } /** * gnome_vfs_acl_clear: * @acl: A valid #GnomeVFSACL object * * This will clear the #GnomeVFSACL object resetting it to a * state exaclty as if it was newly created. * * Since: 2.16 **/ void gnome_vfs_acl_clear (GnomeVFSACL *acl) { GnomeVFSACLPrivate *priv; GnomeVFSACE *entry; GList *iter; priv = acl->priv; entry = NULL; for (iter = priv->entries; iter; iter = iter->next) { entry = GNOME_VFS_ACE (iter->data); g_object_unref (entry); } g_list_free (priv->entries); priv->entries = NULL; } /** * gnome_vfs_acl_set: * @acl: A valid #GnomeVFSACL object * @ace: A #GnomeVFSACE to set in @acl * * This will search the #GnomeVFSACL object specified at @acl for an * existing #GnomeVFSACE that machtes @ace. If found it will update the * permission on the object otherwise it will ref @ace and insert it * into it's list. * * Since: 2.16 **/ void gnome_vfs_acl_set (GnomeVFSACL *acl, GnomeVFSACE *ace) { GnomeVFSACLPrivate *priv; GnomeVFSACE *entry; GList *iter; g_return_if_fail (GNOME_VFS_IS_ACE (ace)); priv = acl->priv; entry = NULL; /* that could be made faster with some HashTable foo, * not sure it is worth the effort, though */ for (iter = priv->entries; iter; iter = iter->next) { entry = GNOME_VFS_ACE (iter->data); if (gnome_vfs_ace_equal (entry, ace)) { break; } } if (iter == NULL) { priv->entries = g_list_prepend (priv->entries, g_object_ref (ace)); } else { gnome_vfs_ace_copy_perms (ace, entry); } } /** * gnome_vfs_acl_unset: * @acl: A valid #GnomeVFSACL object * @ace: A #GnomeVFSACE to remove from @acl * * This will search the #GnomeVFSACL object specified at @acl for an * existing #GnomeVFSACE that machtes @ace. If found it will remove it * from its internal list. * * Since: 2.16 **/ void gnome_vfs_acl_unset (GnomeVFSACL *acl, GnomeVFSACE *ace) { GnomeVFSACLPrivate *priv; GnomeVFSACE *entry; GList *iter; priv = acl->priv; entry = NULL; /* that could be made faster with some HashTable foo, * not sure it is worth the effort, though */ for (iter = priv->entries; iter; iter = iter->next) { entry = GNOME_VFS_ACE (iter->data); if (gnome_vfs_ace_equal (entry, ace)) { break; } } if (iter != NULL) { g_object_unref (entry); priv->entries = g_list_remove_link (priv->entries, iter); } } /** * gnome_vfs_acl_get_ace_list: * @acl: A valid #GnomeVFSACL object * * This will create you a list of all #GnomeVFSACE objects that are * contained in @acl. * * Return value: A newly created list you have to free with * gnome_vfs_acl_get_ace_list. * * Since: 2.16 **/ GList* gnome_vfs_acl_get_ace_list (GnomeVFSACL *acl) { GnomeVFSACLPrivate *priv; GList *list; priv = acl->priv; list = g_list_copy (priv->entries); g_list_foreach (list, (GFunc) g_object_ref, NULL); return list; } /** * gnome_vfs_ace_free_ace_list: * @ace_list: A GList return by gnome_vfs_acl_get_ace_list * * This will unref all the #GnomeVFSACE in the list and free it * afterwards * * Since: 2.16 **/ void gnome_vfs_acl_free_ace_list (GList *ace_list) { g_list_foreach (ace_list, (GFunc) g_object_unref, NULL); g_list_free (ace_list); } /* ************************************************************************** */ /* ************************************************************************** */ const char * gnome_vfs_acl_kind_to_string (GnomeVFSACLKind kind) { const char *value; if (kind < GNOME_VFS_ACL_KIND_SYS_LAST) { switch (kind) { case GNOME_VFS_ACL_USER: value = "user"; break; case GNOME_VFS_ACL_GROUP: value = "group"; break; case GNOME_VFS_ACL_OTHER: value = "other"; break; default: value = "unknown"; break; } } else { value = "unknown"; } return value; } const char * gnome_vfs_acl_perm_to_string (GnomeVFSACLPerm perm) { const char *value; if (perm < GNOME_VFS_ACL_PERM_SYS_LAST) { switch (perm) { case GNOME_VFS_ACL_READ: value = "read"; break; case GNOME_VFS_ACL_WRITE: value = "write"; break; case GNOME_VFS_ACL_EXECUTE: value = "execute"; break; default: value = "unknown"; break; } } else { value = "unknown"; } return value; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-daemon-method.h0000644000175000001440000000315611334251016017526 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-daemon-method.h - Method that proxies work to the daemon Copyright (C) 2003 Red Hat Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_DAEMON_METHOD_H #define GNOME_VFS_DAEMON_METHOD_H #include #include G_BEGIN_DECLS GnomeVFSMethod *_gnome_vfs_daemon_method_get (void); gboolean gnome_vfs_daemon_message_iter_append_file_info (DBusMessageIter *iter, const GnomeVFSFileInfo *info); gboolean gnome_vfs_daemon_message_append_file_info (DBusMessage *message, const GnomeVFSFileInfo *info); GnomeVFSFileInfo *gnome_vfs_daemon_message_iter_get_file_info (DBusMessageIter *iter); G_END_DECLS #endif /* GNOME_VFS_DAEMON_METHOD_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-cancellation.h0000644000175000001440000000335611334251016017443 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-cancellation.h - Cancellation handling for the GNOME Virtual File System access methods. Copyright (C) 1999, 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Seth Nickell */ #ifndef GNOME_VFS_CANCELLATION_H #define GNOME_VFS_CANCELLATION_H #include G_BEGIN_DECLS typedef struct GnomeVFSCancellation GnomeVFSCancellation; GnomeVFSCancellation * gnome_vfs_cancellation_new (void); void gnome_vfs_cancellation_destroy (GnomeVFSCancellation *cancellation); void gnome_vfs_cancellation_cancel (GnomeVFSCancellation *cancellation); gboolean gnome_vfs_cancellation_check (GnomeVFSCancellation *cancellation); void gnome_vfs_cancellation_ack (GnomeVFSCancellation *cancellation); gint gnome_vfs_cancellation_get_fd (GnomeVFSCancellation *cancellation); G_END_DECLS #endif /* GNOME_VFS_CANCELLATION_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-dbus-utils.c0000644000175000001440000001252711334251016017075 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004-2006 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * * Author: Richard Hult * Alexander Larsson */ #include #include #include #include "gnome-vfs-volume.h" #include "gnome-vfs-drive.h" #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-volume-monitor-client.h" #include "gnome-vfs-dbus-utils.h" #ifndef DBUS_API_SUBJECT_TO_CHANGE #define DBUS_API_SUBJECT_TO_CHANGE 1 #endif #include #define d(x) static DBusConnection *main_dbus; #define DAEMON_SIGNAL_RULE \ "type='signal',sender='org.gnome.GnomeVFS.Daemon',interface='org.gnome.GnomeVFS.Daemon'" #define NAME_OWNER_CHANGED_SIGNAL_RULE \ "type='signal',sender='" DBUS_SERVICE_DBUS "',interface='" DBUS_INTERFACE_DBUS "',member='NameOwnerChanged',arg0='org.gnome.GnomeVFS.Daemon'" static guint retry_timeout_id = 0; /* Should only be called from the main thread. */ static gboolean dbus_try_activate_daemon_helper (void) { DBusError error; d(g_print ("Try activating daemon.\n")); dbus_error_init (&error); if (!dbus_bus_start_service_by_name (main_dbus, DVD_DAEMON_SERVICE, 0, NULL, &error)) { g_warning ("Failed to re-activate daemon: %s", error.message); dbus_error_free (&error); } else { /* Succeeded, reload drives/volumes. */ _gnome_vfs_volume_monitor_client_daemon_died (gnome_vfs_get_volume_monitor ()); return TRUE; } return FALSE; } static gboolean dbus_try_activate_daemon_timeout_func (gpointer data) { if (dbus_try_activate_daemon_helper ()) { retry_timeout_id = 0; return FALSE; } /* Try again. */ return TRUE; } /* Will re-try every 5 seconds until succeeding. */ static void dbus_try_activate_daemon (void) { if (retry_timeout_id != 0) { return; } if (dbus_try_activate_daemon_helper ()) { return; } /* We failed to activate the daemon. This should only happen if the * daemon has been explicitly killed by the user or some OOM * functionality just after we tried to activate it. We try again in 5 * seconds. */ retry_timeout_id = g_timeout_add (5000, dbus_try_activate_daemon_timeout_func, NULL); } static DBusHandlerResult dbus_filter_func (DBusConnection *connection, DBusMessage *message, void *data) { if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) { gchar *service, *old_owner, *new_owner; dbus_message_get_args (message, NULL, DBUS_TYPE_STRING, &service, DBUS_TYPE_STRING, &old_owner, DBUS_TYPE_STRING, &new_owner, DBUS_TYPE_INVALID); d(g_print ("NameOwnerChanged %s %s->%s\n", service, old_owner, new_owner)); if (strcmp (service, DVD_DAEMON_SERVICE) == 0) { if (strcmp (old_owner, "") != 0 && strcmp (new_owner, "") == 0) { /* No new owner, try to restart it. */ dbus_try_activate_daemon (); } } } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } /* Gets the main client dbus connection. Do not use in server */ DBusConnection * _gnome_vfs_get_main_dbus_connection (void) { DBusError error; if (main_dbus != NULL) return main_dbus; dbus_error_init (&error); main_dbus = dbus_bus_get (DBUS_BUS_SESSION, &error); if (dbus_error_is_set (&error)) { /*g_warning ("Failed to open session DBUS connection: %s\n" "Volume monitoring will not work.", error.message);*/ dbus_error_free (&error); main_dbus = NULL; return NULL; } /* We pass an error here to make this block (otherwise it just * sends off the match rule when flushing the connection. This * way we are sure to receive signals as soon as possible). */ dbus_bus_add_match (main_dbus, DAEMON_SIGNAL_RULE, NULL); dbus_bus_add_match (main_dbus, NAME_OWNER_CHANGED_SIGNAL_RULE, &error); if (dbus_error_is_set (&error)) { g_warning ("Couldn't add match rule."); dbus_error_free (&error); } if (!dbus_bus_start_service_by_name (main_dbus, DVD_DAEMON_SERVICE, 0, NULL, &error)) { g_warning ("Failed to activate daemon: %s", error.message); dbus_error_free (&error); } dbus_connection_setup_with_g_main (main_dbus, NULL); dbus_connection_add_filter (main_dbus, dbus_filter_func, NULL, NULL); return main_dbus; } static GStaticPrivate daemon_connection_private = G_STATIC_PRIVATE_INIT; DBusConnection * _gnome_vfs_daemon_get_current_connection (void) { return g_static_private_get (&daemon_connection_private); } void gnome_vfs_daemon_set_current_connection (DBusConnection *conn) { g_static_private_set (&daemon_connection_private, conn, NULL); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-monitor.h0000644000175000001440000000434611334251016017423 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- gnome-vfs-mime-monitor.h: Class for noticing changes in MIME data. Copyright (C) 2000 Eazel, Inc. This program 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 distributed in the hope 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. You should have received a copy of the GNU Library General Public License along with this program; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: John Sullivan */ #ifndef GNOME_VFS_MIME_MONITOR_H #define GNOME_VFS_MIME_MONITOR_H #include G_BEGIN_DECLS #define GNOME_VFS_MIME_MONITOR_TYPE (gnome_vfs_mime_monitor_get_type ()) #define GNOME_VFS_MIME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_MIME_MONITOR_TYPE, GnomeVFSMIMEMonitor)) #define GNOME_VFS_MIME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_MIME_MONITOR_TYPE, GnomeVFSMIMEMonitorClass)) #define GNOME_VFS_IS_MIME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_MIME_MONITOR_TYPE)) #define GNOME_VFS_IS_MIME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_MIME_MONITOR_TYPE)) typedef struct _GnomeVFSMIMEMonitorPrivate GnomeVFSMIMEMonitorPrivate; typedef struct { /*< private >*/ GObject object; GnomeVFSMIMEMonitorPrivate *priv; } GnomeVFSMIMEMonitor; typedef struct { GObjectClass parent_class; /* signals */ void (*data_changed) (GnomeVFSMIMEMonitor *monitor); } GnomeVFSMIMEMonitorClass; GType gnome_vfs_mime_monitor_get_type (void); /* There's a single GnomeVFSMIMEMonitor object. * The only thing you need it for is to connect to its signals. */ GnomeVFSMIMEMonitor *gnome_vfs_mime_monitor_get (void); G_END_DECLS #endif /* GNOME_VFS_MIME_MONITOR_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-context.h0000644000175000001440000000403511334251016016466 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-context.h - context VFS modules can use to communicate with gnome-vfs proper Copyright (C) 1999, 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Havoc Pennington Seth Nickell */ #ifndef GNOME_VFS_CONTEXT_H #define GNOME_VFS_CONTEXT_H #include G_BEGIN_DECLS typedef struct GnomeVFSContext GnomeVFSContext; GnomeVFSContext* gnome_vfs_context_new (void); void gnome_vfs_context_free (GnomeVFSContext *ctx); /* To be really thread-safe, these need to return objects with an increased refcount; however they don't, only one thread at a time can use GnomeVFSContext */ GnomeVFSCancellation* gnome_vfs_context_get_cancellation (const GnomeVFSContext *ctx); /* Convenience - both of these accept a NULL context object */ #define gnome_vfs_context_check_cancellation(x) (gnome_vfs_cancellation_check((x) ? gnome_vfs_context_get_cancellation((x)) : NULL)) const GnomeVFSContext *gnome_vfs_context_peek_current (void); gboolean gnome_vfs_context_check_cancellation_current (void); G_END_DECLS #endif /* GNOME_VFS_CONTEXT_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-socket-buffer.c0000644000175000001440000003337111334251016017541 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-socket-buffer.c * * Copyright (C) 2001 Seth Nickell * Copyright (C) 2001 Maciej Stachowiak * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /* * Authors: Seth Nickell * Maciej Stachowiak * (reverse-engineered from code by Ian McKellar ) */ #include #include "gnome-vfs-socket-buffer.h" #include #include #define BUFFER_SIZE 4096 struct Buffer { gchar data[BUFFER_SIZE]; guint offset; guint byte_count; GnomeVFSResult last_error; }; typedef struct Buffer Buffer; struct GnomeVFSSocketBuffer { GnomeVFSSocket *socket; Buffer input_buffer; Buffer output_buffer; }; static void buffer_init (Buffer *buffer) { buffer->byte_count = 0; buffer->offset = 0; buffer->last_error = GNOME_VFS_OK; } /** * gnome_vfs_socket_buffer_new: * @socket: socket to be buffered. * * Create a socket buffer around @socket. A buffered * socket allows data to be poked at without reading it * as it will be buffered. A future read will retrieve * the data again. * * Return value: a newly allocated #GnomeVFSSocketBuffer. */ GnomeVFSSocketBuffer* gnome_vfs_socket_buffer_new (GnomeVFSSocket *socket) { GnomeVFSSocketBuffer *socket_buffer; g_return_val_if_fail (socket != NULL, NULL); socket_buffer = g_new (GnomeVFSSocketBuffer, 1); socket_buffer->socket = socket; buffer_init (&socket_buffer->input_buffer); buffer_init (&socket_buffer->output_buffer); return socket_buffer; } /** * gnome_vfs_socket_buffer_destroy: * @socket_buffer: buffered socket to destroy. * @close_socket: if %TRUE, the socket being buffered will be closed. * @cancellation: handle allowing cancellation of the operation. * * Free the socket buffer. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_buffer_destroy (GnomeVFSSocketBuffer *socket_buffer, gboolean close_socket, GnomeVFSCancellation *cancellation) { gnome_vfs_socket_buffer_flush (socket_buffer, cancellation); if (close_socket) { gnome_vfs_socket_close (socket_buffer->socket, cancellation); } g_free (socket_buffer); return GNOME_VFS_OK; } static gboolean refill_input_buffer (GnomeVFSSocketBuffer *socket_buffer, GnomeVFSCancellation *cancellation) { Buffer *input_buffer; GnomeVFSResult result; GnomeVFSFileSize bytes_read; char *data_pos; input_buffer = &socket_buffer->input_buffer; if (input_buffer->last_error != GNOME_VFS_OK) { return FALSE; } /* If there is data left in the buffer move it to the front */ if (input_buffer->offset > 0) { data_pos = &(input_buffer->data[input_buffer->offset]); memmove (input_buffer->data, data_pos, input_buffer->byte_count); input_buffer->offset = 0; } result = gnome_vfs_socket_read (socket_buffer->socket, input_buffer->data + input_buffer->byte_count, BUFFER_SIZE - input_buffer->byte_count, &bytes_read, cancellation); if (result != GNOME_VFS_OK) { input_buffer->last_error = result; return FALSE; } input_buffer->byte_count += bytes_read; return TRUE; } /** * gnome_vfs_socket_buffer_read: * @socket_buffer: buffered socket to read data from. * @buffer: allocated buffer of at least @bytes bytes to be read into. * @bytes: number of bytes to read from @socket_buffer into @buffer. * @bytes_read: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually read from the @socket_buffer on return. * @cancellation: handle allowing cancellation of the operation. * * Read @bytes bytes of data from the @socket into @socket_buffer. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_buffer_read (GnomeVFSSocketBuffer *socket_buffer, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation) { Buffer *input_buffer; GnomeVFSResult result; GnomeVFSFileSize n; g_return_val_if_fail (socket_buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); /* Quote from UNIX 98: "If nbyte is 0, read() will return 0 and have no other results." */ if (bytes == 0) { if (bytes_read != NULL); *bytes_read = 0; return GNOME_VFS_OK; } input_buffer = &socket_buffer->input_buffer; result = GNOME_VFS_OK; if (input_buffer->byte_count == 0) { if (! refill_input_buffer (socket_buffer, cancellation)) { /* The buffer is empty but we had an error last time we filled it, so we report the error. */ result = input_buffer->last_error; input_buffer->last_error = GNOME_VFS_OK; } } n = 0; if (input_buffer->byte_count != 0) { n = MIN (bytes, input_buffer->byte_count); memcpy (buffer, input_buffer->data + input_buffer->offset, n); input_buffer->byte_count -= n; input_buffer->offset += n; } if (bytes_read != NULL) { *bytes_read = n; } return result; } /** * gnome_vfs_socket_buffer_read_until: * @socket_buffer: buffered socket to read data from. * @buffer: allocated buffer of at least @bytes bytes to be read into. * @bytes: maximum number of bytes to read from @socket_buffer into @buffer. * @boundary: the boundary until which is read. * @boundary_len: the length of the @boundary. * @bytes_read: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually read from the @socket_buffer on return. * @got_boundary: pointer to a #gboolean which will be %TRUE if the boundary * was found or %FALSE otherwise. * @cancellation: handle allowing cancellation of the operation. * * Read up to @bytes bytes of data from the @socket_buffer into @buffer * until boundary is reached. @got_boundary will be set accordingly. * * Note that if @bytes is smaller than @boundary_len there is no way * to detected the boundary! So if you want to make sure that every boundary * is found (in a loop maybe) assure that @bytes is at least as big as * @boundary_len. * * Return value: #GnomeVFSResult indicating the success of the operation. * * Since: 2.8 */ GnomeVFSResult gnome_vfs_socket_buffer_read_until (GnomeVFSSocketBuffer *socket_buffer, gpointer buffer, GnomeVFSFileSize bytes, gconstpointer boundary, GnomeVFSFileSize boundary_len, GnomeVFSFileSize *bytes_read, gboolean *got_boundary, GnomeVFSCancellation *cancellation) { Buffer *input_buffer; GnomeVFSResult result; GnomeVFSFileSize n, max_scan; char *iter, *start, *delim; g_return_val_if_fail (socket_buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (boundary != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (got_boundary != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (boundary_len < BUFFER_SIZE, GNOME_VFS_ERROR_TOO_BIG); *got_boundary = FALSE; /* Quote from UNIX 98: "If nbyte is 0, read() will return 0 and have no other results." */ if (bytes == 0) { if (bytes_read != NULL) *bytes_read = 0; return GNOME_VFS_OK; } input_buffer = &socket_buffer->input_buffer; result = GNOME_VFS_OK; /* we are looping here to catch the case where we are close * to eof and haveing less or equal bytes then boundary_len */ while (input_buffer->byte_count <= boundary_len) { if (! refill_input_buffer (socket_buffer, cancellation)) { break; } } /* At this point we have either byte_count > boundary_len or * we have and error during refill */ n = 0; start = input_buffer->data + input_buffer->offset; max_scan = MIN (input_buffer->byte_count, bytes); /* if max_scan is greater then boundary_len do a scan (I) * otherwise we had an error during the loop above or bytes is * too small. (II) We handle the case where boundary_len == * max_scan in (II). */ if (max_scan > boundary_len) { delim = start + max_scan; for (iter = start; iter + boundary_len <= delim; iter++) { if (!memcmp (iter, boundary, boundary_len)) { *got_boundary = TRUE; /* We wanna have the boundary fetched */ iter += boundary_len; break; } } /* Fetch data data until iter */ n = iter - start; } else /* (II) */ { if (max_scan == boundary_len && !memcmp (start, boundary, boundary_len)) { *got_boundary = TRUE; } n = max_scan; } if (n > 0) { memcpy (buffer, start, n); input_buffer->byte_count -= n; input_buffer->offset += n; /* queque up the fill buffer error if any * until the buffer is flushed */ } else { result = input_buffer->last_error; input_buffer->last_error = GNOME_VFS_OK; } if (bytes_read != NULL) { *bytes_read = n; } return result; } /** * gnome_vfs_socket_buffer_peekc: * @socket_buffer: the socket buffer to read from. * @character: pointer to a char, will contain a character on return from * a successful "peek". * @cancellation: handle allowing cancellation of the operation. * * Peek at the next character in @socket_buffer without actually reading * the character in. The next read will retrieve @c (as well as any following * data if requested). * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_buffer_peekc (GnomeVFSSocketBuffer *socket_buffer, gchar *character, GnomeVFSCancellation *cancellation) { GnomeVFSResult result; Buffer *input_buffer; g_return_val_if_fail (socket_buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (character != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); input_buffer = &socket_buffer->input_buffer; result = GNOME_VFS_OK; if (input_buffer->byte_count == 0) { if (!refill_input_buffer (socket_buffer, cancellation)) { /* The buffer is empty but we had an error last time we filled it, so we report the error. */ result = input_buffer->last_error; input_buffer->last_error = GNOME_VFS_OK; } } if (result == GNOME_VFS_OK) { *character = *(input_buffer->data + input_buffer->offset); } return result; } static GnomeVFSResult flush (GnomeVFSSocketBuffer *socket_buffer, GnomeVFSCancellation *cancellation) { Buffer *output_buffer; GnomeVFSResult result; GnomeVFSFileSize bytes_written; output_buffer = &socket_buffer->output_buffer; while (output_buffer->byte_count > 0) { result = gnome_vfs_socket_write (socket_buffer->socket, output_buffer->data, output_buffer->byte_count, &bytes_written, cancellation); output_buffer->last_error = result; if (result != GNOME_VFS_OK) { return result; } memmove (output_buffer->data, output_buffer->data + bytes_written, output_buffer->byte_count - bytes_written); output_buffer->byte_count -= bytes_written; } return GNOME_VFS_OK; } /** * gnome_vfs_socket_buffer_write: * @socket_buffer: buffered socket to write data to. * @buffer: data to write to the @socket_buffer. * @bytes: number of bytes to write from @buffer to @socket_buffer. * @bytes_written: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually written to the @socket_buffer on return. * @cancellation: handle allowing cancellation of the operation. * * Write @bytes bytes of data from @buffer to @socket_buffer. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_buffer_write (GnomeVFSSocketBuffer *socket_buffer, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation) { Buffer *output_buffer; GnomeVFSFileSize write_count; GnomeVFSResult result; const gchar *p; g_return_val_if_fail (socket_buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (bytes_written != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); output_buffer = &socket_buffer->output_buffer; result = GNOME_VFS_OK; p = buffer; write_count = 0; while (write_count < bytes) { if (output_buffer->byte_count < BUFFER_SIZE) { GnomeVFSFileSize n; n = MIN (BUFFER_SIZE - output_buffer->byte_count, bytes - write_count); memcpy (output_buffer->data + output_buffer->byte_count, p, n); p += n; write_count += n; output_buffer->byte_count += n; } if (output_buffer->byte_count >= BUFFER_SIZE) { result = flush (socket_buffer, cancellation); if (result != GNOME_VFS_OK) { break; } } } if (bytes_written != NULL) { *bytes_written = write_count; } return result; } /** * gnome_vfs_socket_buffer_flush: * @socket_buffer: buffer to flush. * @cancellation: handle allowing cancellation of the operation. * * Write all outstanding data to @socket_buffer. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_buffer_flush (GnomeVFSSocketBuffer *socket_buffer, GnomeVFSCancellation *cancellation) { g_return_val_if_fail (socket_buffer != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return flush (socket_buffer, cancellation); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-handle.c0000644000175000001440000001260611334251016016233 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-handle.c - Handle object for GNOME VFS files. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-handle.h" #include "gnome-vfs-handle-private.h" #include "gnome-vfs-method.h" #include struct GnomeVFSHandle { /* URI of the file being accessed through the handle. */ GnomeVFSURI *uri; /* Method-specific handle. */ GnomeVFSMethodHandle *method_handle; /* Open mode. */ GnomeVFSOpenMode open_mode; }; #define CHECK_IF_OPEN(handle) \ G_STMT_START{ \ if (handle->uri == NULL) \ return GNOME_VFS_ERROR_NOT_OPEN; \ }G_STMT_END #define CHECK_IF_SUPPORTED(handle, what) \ G_STMT_START{ \ if (!VFS_METHOD_HAS_FUNC(handle->uri->method, what)) \ return GNOME_VFS_ERROR_NOT_SUPPORTED; \ }G_STMT_END #define INVOKE(result, handle, what, params) \ G_STMT_START{ \ CHECK_IF_OPEN (handle); \ CHECK_IF_SUPPORTED (handle, what); \ (result) = handle->uri->method->what params; \ }G_STMT_END #define INVOKE_AND_RETURN(handle, what, params) \ G_STMT_START{ \ GnomeVFSResult __result; \ \ INVOKE (__result, handle, what, params); \ return __result; \ }G_STMT_END GnomeVFSHandle * _gnome_vfs_handle_new (GnomeVFSURI *uri, GnomeVFSMethodHandle *method_handle, GnomeVFSOpenMode open_mode) { GnomeVFSHandle *new; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (method_handle != NULL, NULL); new = g_new (GnomeVFSHandle, 1); new->uri = gnome_vfs_uri_ref (uri); new->method_handle = method_handle; new->open_mode = open_mode; return new; } void _gnome_vfs_handle_destroy (GnomeVFSHandle *handle) { g_return_if_fail (handle != NULL); gnome_vfs_uri_unref (handle->uri); g_free (handle); } GnomeVFSOpenMode _gnome_vfs_handle_get_open_mode (GnomeVFSHandle *handle) { g_return_val_if_fail (handle != NULL, (GnomeVFSOpenMode) 0); return handle->open_mode; } /* Actions. */ GnomeVFSResult _gnome_vfs_handle_do_close (GnomeVFSHandle *handle, GnomeVFSContext *context) { GnomeVFSResult result; INVOKE (result, handle, close, (handle->uri->method, handle->method_handle, context)); /* Even if close has failed, we shut down the handle. */ _gnome_vfs_handle_destroy (handle); return result; } GnomeVFSResult _gnome_vfs_handle_do_read (GnomeVFSHandle *handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { INVOKE_AND_RETURN (handle, read, (handle->uri->method, handle->method_handle, buffer, num_bytes, bytes_read, context)); } GnomeVFSResult _gnome_vfs_handle_forget_cache (GnomeVFSHandle *handle, GnomeVFSFileOffset offset, GnomeVFSFileSize size) { INVOKE_AND_RETURN (handle, forget_cache, (handle->uri->method, handle->method_handle, offset, size)); } GnomeVFSResult _gnome_vfs_handle_do_write (GnomeVFSHandle *handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { INVOKE_AND_RETURN (handle, write, (handle->uri->method, handle->method_handle, buffer, num_bytes, bytes_written, context)); } GnomeVFSResult _gnome_vfs_handle_do_seek (GnomeVFSHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileSize offset, GnomeVFSContext *context) { INVOKE_AND_RETURN (handle, seek, (handle->uri->method, handle->method_handle, whence, offset, context)); } GnomeVFSResult _gnome_vfs_handle_do_tell (GnomeVFSHandle *handle, GnomeVFSFileSize *offset_return) { INVOKE_AND_RETURN (handle, tell, (handle->uri->method, handle->method_handle, offset_return)); } GnomeVFSResult _gnome_vfs_handle_do_get_file_info (GnomeVFSHandle *handle, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { INVOKE_AND_RETURN (handle, get_file_info_from_handle, (handle->uri->method, handle->method_handle, info, options, context)); } GnomeVFSResult _gnome_vfs_handle_do_truncate (GnomeVFSHandle *handle, GnomeVFSFileSize length, GnomeVFSContext *context) { INVOKE_AND_RETURN (handle, truncate_handle, (handle->uri->method, handle->method_handle, length, context)); } GnomeVFSResult _gnome_vfs_handle_do_file_control (GnomeVFSHandle *handle, const char *operation, gpointer operation_data, GnomeVFSContext *context) { INVOKE_AND_RETURN (handle, file_control, (handle->uri->method, handle->method_handle, operation, operation_data, context)); } gnome-vfs-2.24.4/libgnomevfs/xdgmimeglob.h0000644000175000001440000000534711334251016015410 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimeglob.h: Private file. Datastructure for storing the globs. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_GLOB_H__ #define __XDG_MIME_GLOB_H__ #include "xdgmime.h" typedef struct XdgGlobHash XdgGlobHash; typedef enum { XDG_GLOB_LITERAL, /* Makefile */ XDG_GLOB_SIMPLE, /* *.gif */ XDG_GLOB_FULL /* x*.[ch] */ } XdgGlobType; #ifdef XDG_PREFIX #define _xdg_mime_glob_read_from_file XDG_RESERVED_ENTRY(glob_read_from_file) #define _xdg_glob_hash_new XDG_RESERVED_ENTRY(hash_new) #define _xdg_glob_hash_free XDG_RESERVED_ENTRY(hash_free) #define _xdg_glob_hash_lookup_file_name XDG_RESERVED_ENTRY(hash_lookup_file_name) #define _xdg_glob_hash_append_glob XDG_RESERVED_ENTRY(hash_append_glob) #define _xdg_glob_determine_type XDG_RESERVED_ENTRY(determine_type) #define _xdg_glob_hash_dump XDG_RESERVED_ENTRY(hash_dump) #endif void _xdg_mime_glob_read_from_file (XdgGlobHash *glob_hash, const char *file_name, int version_two); XdgGlobHash *_xdg_glob_hash_new (void); void _xdg_glob_hash_free (XdgGlobHash *glob_hash); int _xdg_glob_hash_lookup_file_name (XdgGlobHash *glob_hash, const char *text, const char *mime_types[], int n_mime_types); void _xdg_glob_hash_append_glob (XdgGlobHash *glob_hash, const char *glob, const char *mime_type, int weight, int case_sensitive); XdgGlobType _xdg_glob_determine_type (const char *glob); void _xdg_glob_hash_dump (XdgGlobHash *glob_hash); #endif /* __XDG_MIME_GLOB_H__ */ gnome-vfs-2.24.4/libgnomevfs/xdgmimeicon.h0000644000175000001440000000367311334251016015415 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimeicon.h: Private file. Datastructure for storing the aliases. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2008 Red Hat, Inc. * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_ICON_H__ #define __XDG_MIME_ICON_H__ #include "xdgmime.h" typedef struct XdgIconList XdgIconList; #ifdef XDG_PREFIX #define _xdg_mime_icon_read_from_file XDG_ENTRY(icon_read_from_file) #define _xdg_mime_icon_list_new XDG_ENTRY(icon_list_new) #define _xdg_mime_icon_list_free XDG_ENTRY(icon_list_free) #define _xdg_mime_icon_list_lookup XDG_ENTRY(icon_list_lookup) #define _xdg_mime_icon_list_dump XDG_ENTRY(icon_list_dump) #endif void _xdg_mime_icon_read_from_file (XdgIconList *list, const char *file_name); XdgIconList *_xdg_mime_icon_list_new (void); void _xdg_mime_icon_list_free (XdgIconList *list); const char *_xdg_mime_icon_list_lookup (XdgIconList *list, const char *mime); void _xdg_mime_icon_list_dump (XdgIconList *list); #endif /* __XDG_MIME_ICON_H__ */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-filesystem-type.h0000644000175000001440000000242711334251016020150 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-filesystem-type.h - Handling of filesystems for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_FILESYSTEM_TYPE_H #define GNOME_VFS_FILESYSTEM_TYPE_H #include char * _gnome_vfs_filesystem_volume_name (const char *fs_type); gboolean _gnome_vfs_filesystem_use_trash (const char *fs_type); #endif /* GNOME_VFS_FILESYSTEM_TYPE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-monitor-client.c0000644000175000001440000003054111334251016021246 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-monitor-client.c - client implementation of volume handling Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include #include #include "gnome-vfs-volume-monitor-client.h" #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-cdrom.h" #include "gnome-vfs-filesystem-type.h" #include "gnome-vfs-dbus-utils.h" #include #define d(x) static void gnome_vfs_volume_monitor_client_class_init (GnomeVFSVolumeMonitorClientClass *klass); static void gnome_vfs_volume_monitor_client_init (GnomeVFSVolumeMonitorClient *volume_monitor_client); static void gnome_vfs_volume_monitor_client_finalize (GObject *object); static void setup_dbus_connection (GnomeVFSVolumeMonitorClient *volume_monitor_client); static void shutdown_dbus_connection (GnomeVFSVolumeMonitorClient *volume_monitor_client); static GnomeVFSVolumeMonitorClass *parent_class = NULL; GType gnome_vfs_volume_monitor_client_get_type (void) { static GType volume_monitor_client_type = 0; if (!volume_monitor_client_type) { const GTypeInfo volume_monitor_client_info = { sizeof (GnomeVFSVolumeMonitorClientClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) gnome_vfs_volume_monitor_client_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GnomeVFSVolumeMonitorClient), 0, /* n_preallocs */ (GInstanceInitFunc) gnome_vfs_volume_monitor_client_init }; volume_monitor_client_type = g_type_register_static (GNOME_VFS_TYPE_VOLUME_MONITOR, "GnomeVFSVolumeMonitorClient", &volume_monitor_client_info, 0); } return volume_monitor_client_type; } static void gnome_vfs_volume_monitor_client_class_init (GnomeVFSVolumeMonitorClientClass *class) { GObjectClass *o_class; parent_class = g_type_class_peek_parent (class); o_class = (GObjectClass *) class; /* GObject signals */ o_class->finalize = gnome_vfs_volume_monitor_client_finalize; } static GList * get_drives (DBusConnection *dbus_conn, GnomeVFSVolumeMonitor *volume_monitor) { DBusMessage *message, *reply; GList *list; DBusMessageIter iter, array_iter; GnomeVFSDrive *drive; if (dbus_conn == NULL) { return NULL; } message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_GET_DRIVES); reply = dbus_connection_send_with_reply_and_block (dbus_conn, message, -1, NULL); if (!reply) { d(g_print ("Error while getting drives from daemon.\n")); dbus_message_unref (message); return NULL; } list = NULL; dbus_message_iter_init (reply, &iter); /* We can't recurse if there is no array. */ if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY) { dbus_message_iter_recurse (&iter, &array_iter); while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRUCT) { drive = _gnome_vfs_drive_from_dbus (&array_iter, volume_monitor); list = g_list_prepend (list, drive); if (!dbus_message_iter_has_next (&array_iter)) { break; } dbus_message_iter_next (&array_iter); } list = g_list_reverse (list); } dbus_message_unref (message); dbus_message_unref (reply); return list; } static GList * get_volumes (DBusConnection *dbus_conn, GnomeVFSVolumeMonitor *volume_monitor) { DBusMessage *message, *reply; GList *list; DBusMessageIter iter, array_iter; GnomeVFSVolume *volume; if (dbus_conn == NULL) { return NULL; } message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_GET_VOLUMES); reply = dbus_connection_send_with_reply_and_block (dbus_conn, message, -1, NULL); if (!reply) { d(g_print ("Error while getting volumes from daemon.\n")); dbus_message_unref (message); return NULL; } list = NULL; dbus_message_iter_init (reply, &iter); /* We can't recurse if there is no array. */ if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY) { dbus_message_iter_recurse (&iter, &array_iter); while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRUCT) { volume = _gnome_vfs_volume_from_dbus (&array_iter, volume_monitor); list = g_list_prepend (list, volume); if (!dbus_message_iter_has_next (&array_iter)) { break; } dbus_message_iter_next (&array_iter); } list = g_list_reverse (list); } dbus_message_unref (message); dbus_message_unref (reply); return list; } static void read_drives_from_daemon (GnomeVFSVolumeMonitorClient *volume_monitor_client) { GnomeVFSVolumeMonitor *volume_monitor; GnomeVFSDrive *drive; GList *list, *l; volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_client); if (volume_monitor_client->dbus_conn == NULL) return; list = get_drives (volume_monitor_client->dbus_conn, volume_monitor); for (l = list; l; l = l->next) { drive = l->data; _gnome_vfs_volume_monitor_connected (volume_monitor, drive); gnome_vfs_drive_unref (drive); } g_list_free (list); } static void read_volumes_from_daemon (GnomeVFSVolumeMonitorClient *volume_monitor_client) { GnomeVFSVolumeMonitor *volume_monitor; GnomeVFSVolume *volume; GList *list, *l; volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_client); if (volume_monitor_client->dbus_conn == NULL) return; list = get_volumes (volume_monitor_client->dbus_conn, volume_monitor); for (l = list; l; l = l->next) { volume = l->data; _gnome_vfs_volume_monitor_mounted (volume_monitor, volume); gnome_vfs_volume_unref (volume); } g_list_free (list); } static void gnome_vfs_volume_monitor_client_init (GnomeVFSVolumeMonitorClient *volume_monitor_client) { setup_dbus_connection (volume_monitor_client); read_drives_from_daemon (volume_monitor_client); read_volumes_from_daemon (volume_monitor_client); } /* Remeber that this could be running on a thread other * than the main thread */ static void gnome_vfs_volume_monitor_client_finalize (GObject *object) { GnomeVFSVolumeMonitorClient *volume_monitor_client; volume_monitor_client = GNOME_VFS_VOLUME_MONITOR_CLIENT (object); g_assert (volume_monitor_client->is_shutdown); if (G_OBJECT_CLASS (parent_class)->finalize) (* G_OBJECT_CLASS (parent_class)->finalize) (object); } void _gnome_vfs_volume_monitor_client_daemon_died (GnomeVFSVolumeMonitor *volume_monitor) { GnomeVFSVolumeMonitorClient *volume_monitor_client; volume_monitor_client = GNOME_VFS_VOLUME_MONITOR_CLIENT (volume_monitor); _gnome_vfs_volume_monitor_unmount_all (volume_monitor); _gnome_vfs_volume_monitor_disconnect_all (volume_monitor); read_drives_from_daemon (volume_monitor_client); read_volumes_from_daemon (volume_monitor_client); } void gnome_vfs_volume_monitor_client_shutdown_private (GnomeVFSVolumeMonitorClient *volume_monitor_client) { if (volume_monitor_client->is_shutdown) return; volume_monitor_client->is_shutdown = TRUE; shutdown_dbus_connection (volume_monitor_client); } static DBusHandlerResult dbus_filter_func (DBusConnection *connection, DBusMessage *message, void *data) { GnomeVFSVolumeMonitor *volume_monitor; GnomeVFSVolume *volume; GnomeVFSDrive *drive; DBusMessageIter iter; dbus_int32_t id; volume_monitor = gnome_vfs_get_volume_monitor (); if (GNOME_VFS_VOLUME_MONITOR_CLIENT (volume_monitor)->is_shutdown) { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } if (dbus_message_is_signal (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_VOLUME_MOUNTED_SIGNAL)) { dbus_message_iter_init (message, &iter); volume = _gnome_vfs_volume_from_dbus (&iter, volume_monitor); _gnome_vfs_volume_monitor_mounted (volume_monitor, volume); gnome_vfs_volume_unref (volume); } else if (dbus_message_is_signal (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_VOLUME_PRE_UNMOUNT_SIGNAL)) { if (dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID)) { volume = gnome_vfs_volume_monitor_get_volume_by_id (volume_monitor, id); if (volume != NULL) { gnome_vfs_volume_monitor_emit_pre_unmount (volume_monitor, volume); gnome_vfs_volume_unref (volume); } } } else if (dbus_message_is_signal (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_VOLUME_UNMOUNTED_SIGNAL)) { if (dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID)) { volume = gnome_vfs_volume_monitor_get_volume_by_id (volume_monitor, id); if (volume != NULL) { _gnome_vfs_volume_monitor_unmounted (volume_monitor, volume); gnome_vfs_volume_unref (volume); } } } else if (dbus_message_is_signal (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_DRIVE_CONNECTED_SIGNAL)) { dbus_message_iter_init (message, &iter); drive = _gnome_vfs_drive_from_dbus (&iter, volume_monitor); _gnome_vfs_volume_monitor_connected (volume_monitor, drive); gnome_vfs_drive_unref (drive); } else if (dbus_message_is_signal (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_DRIVE_DISCONNECTED_SIGNAL)) { if (dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID)) { drive = gnome_vfs_volume_monitor_get_drive_by_id (volume_monitor, id); if (drive != NULL) { _gnome_vfs_volume_monitor_disconnected (volume_monitor, drive); gnome_vfs_drive_unref (drive); } } } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } static void setup_dbus_connection (GnomeVFSVolumeMonitorClient *client) { DBusError error; dbus_error_init (&error); client->dbus_conn = _gnome_vfs_get_main_dbus_connection (); if (client->dbus_conn == NULL) return; dbus_connection_add_filter (client->dbus_conn, dbus_filter_func, NULL, NULL); } static void shutdown_dbus_connection (GnomeVFSVolumeMonitorClient *client) { if (client->dbus_conn) { dbus_connection_remove_filter (client->dbus_conn, dbus_filter_func, NULL); client->dbus_conn = NULL; } } void _gnome_vfs_volume_monitor_client_dbus_force_probe (GnomeVFSVolumeMonitorClient *volume_monitor_client) { DBusMessage *message, *reply; if (volume_monitor_client->dbus_conn == NULL) { return; } message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_FORCE_PROBE); g_assert (message != NULL); reply = dbus_connection_send_with_reply_and_block (volume_monitor_client->dbus_conn, message, -1, NULL); dbus_message_unref (message); if (reply) { dbus_message_unref (reply); } } void _gnome_vfs_volume_monitor_client_dbus_emit_pre_unmount (GnomeVFSVolumeMonitorClient *volume_monitor_client, GnomeVFSVolume *volume) { DBusMessage *message, *reply; gint32 id; if (volume_monitor_client->dbus_conn == NULL) { return; } message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_EMIT_PRE_UNMOUNT_VOLUME); g_assert (message != NULL); id = gnome_vfs_volume_get_id (volume); dbus_message_append_args (message, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID); reply = dbus_connection_send_with_reply_and_block (volume_monitor_client->dbus_conn, message, -1, NULL); dbus_message_unref (message); if (reply) { dbus_message_unref (reply); } } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-info.c0000644000175000001440000003722011334251016016657 00000000000000 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-mime-info.c - GNOME mime-information implementation. Copyright (C) 1998 Miguel de Icaza Copyright (C) 2000, 2001 Eazel, Inc. All rights reserved. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Miguel De Icaza Mathieu Lacage */ #include #include "gnome-vfs-mime-info.h" #include "gnome-vfs-mime-monitor.h" #include "gnome-vfs-mime-private.h" #include "gnome-vfs-mime.h" #include "gnome-vfs-private-utils.h" #include "xdgmime.h" #include #include #include #include #include #include #include #include #include typedef struct { char *description; char *parent_classes; char *aliases; } MimeEntry; typedef struct { char *path; } MimeDirectory; #if 0 /* These ones are used to automatically reload mime info on demand */ static time_t last_checked; #endif /* To initialize the module automatically */ static gboolean gnome_vfs_mime_inited = FALSE; /* we want to replace the previous key if the current key has a higher language level */ static GList *mime_directories = NULL; static GHashTable *mime_entries = NULL; /* Used to mean "no entry" in cache for negative caching */ static MimeEntry mime_entries_no_entry; G_LOCK_EXTERN (gnome_vfs_mime_mutex); static gboolean does_string_contain_caps (const char *string) { const char *temp_c; temp_c = string; while (*temp_c != '\0') { if (g_ascii_isupper (*temp_c)) { return TRUE; } temp_c++; } return FALSE; } static void mime_entry_free (MimeEntry *entry) { if (!entry) { return; } g_free (entry->description); g_free (entry->parent_classes); g_free (entry->aliases); g_free (entry); } static void add_data_dir (const char *dir) { MimeDirectory *directory; directory = g_new0 (MimeDirectory, 1); directory->path = g_build_filename (dir, "mime", NULL); mime_directories = g_list_append (mime_directories, directory); } static void gnome_vfs_mime_init (void) { const char *xdg_data_home; const char * const *xdg_data_dirs; /* * The hash tables that store the mime keys. */ mime_entries = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)mime_entry_free); xdg_data_home = g_get_user_data_dir (); add_data_dir (xdg_data_home); for (xdg_data_dirs = g_get_system_data_dirs (); *xdg_data_dirs; xdg_data_dirs++) { add_data_dir (*xdg_data_dirs); } #if 0 last_checked = time (NULL); #endif gnome_vfs_mime_inited = TRUE; } static void reload_if_needed (void) { #if 0 time_t now = time (NULL); gboolean need_reload = FALSE; struct stat s; if (gnome_vfs_is_frozen > 0) return; if (gnome_mime_dir.force_reload || user_mime_dir.force_reload) need_reload = TRUE; else if (now > last_checked + 5) { if (g_stat (gnome_mime_dir.dirname, &s) != -1 && s.st_mtime != gnome_mime_dir.s.st_mtime) need_reload = TRUE; else if (g_stat (user_mime_dir.dirname, &s) != -1 && s.st_mtime != user_mime_dir.s.st_mtime) need_reload = TRUE; } last_checked = now; if (need_reload) { gnome_vfs_mime_info_reload (); } #endif } static void gnome_vfs_mime_info_clear (void) { } /** * _gnome_vfs_mime_info_shutdown: * * Remove the MIME database from memory. **/ void _gnome_vfs_mime_info_shutdown (void) { gnome_vfs_mime_info_clear (); } /** * gnome_vfs_mime_info_reload: * * Reload the MIME database from disk and notify any listeners * holding active #GnomeVFSMIMEMonitor objects. */ void gnome_vfs_mime_info_reload (void) { if (!gnome_vfs_mime_inited) { gnome_vfs_mime_init (); } gnome_vfs_mime_info_clear (); _gnome_vfs_mime_monitor_emit_data_changed (gnome_vfs_mime_monitor_get ()); } /** * gnome_vfs_mime_freeze: * * Freezes the mime data so that you can do multiple * updates to the data in one batch without needing * to back the files to disk or reading them. */ void gnome_vfs_mime_freeze (void) { /* noop, get rid of this once all the mime editing stuff is gone */ } /** * gnome_vfs_mime_thaw: * * UnFreezes the mime data so that you can do multiple * updates to the data in one batch without needing * to back the files to disk or reading them. */ void gnome_vfs_mime_thaw (void) { /* noop, get rid of this once all the mime editing stuff is gone */ } /* this gives us a number of the language in the current language list, the lower the number the "better" the translation */ static int language_level (const char *lang) { const char * const *lang_list; int i; if (lang == NULL) lang = "C"; /* The returned list is sorted from most desirable to least desirable and always contains the default locale "C". */ lang_list = g_get_language_names(); for (i = 0; lang_list[i]; i++) if (strcmp (lang_list[i], lang) == 0) return i; return -1; } static int read_next (xmlTextReaderPtr reader) { int depth; int ret; depth = xmlTextReaderDepth (reader); ret = xmlTextReaderRead (reader); while (ret == 1) { if (xmlTextReaderDepth (reader) == depth) { return 1; } else if (xmlTextReaderDepth (reader) < depth) { return 0; } ret = xmlTextReaderRead (reader); } return ret; } static char * handle_simple_string (xmlTextReaderPtr reader) { int ret; char *text = NULL; ret = xmlTextReaderRead (reader); while (ret == 1) { xmlReaderTypes type; type = xmlTextReaderNodeType (reader); if (type == XML_READER_TYPE_TEXT) { if (text != NULL) { g_free (text); } text = g_strdup ((char *)xmlTextReaderConstValue (reader)); } ret = read_next (reader); } return text; } static char * handle_attribute (xmlTextReaderPtr reader, const char *attribute) { xmlChar *xml_text = NULL; char *text = NULL; xml_text = xmlTextReaderGetAttribute (reader, (guchar *)attribute); if (xml_text != NULL) { text = g_strdup ((char *)xml_text); xmlFree (xml_text); } return text; } static MimeEntry * handle_mime_info (const char *filename, xmlTextReaderPtr reader) { MimeEntry *entry; int ret; int previous_lang_level = INT_MAX; entry = g_new0 (MimeEntry, 1); ret = xmlTextReaderRead (reader); while (ret == 1) { xmlReaderTypes type; type = xmlTextReaderNodeType (reader); if (type == XML_READER_TYPE_ELEMENT) { const char *name; name = (char *)xmlTextReaderConstName (reader); if (!strcmp (name, "comment")) { const char *lang; int lang_level; lang = (char *)xmlTextReaderConstXmlLang (reader); lang_level = language_level (lang); if (lang_level != -1 && lang_level < previous_lang_level) { char *comment; comment = handle_simple_string (reader); g_free (entry->description); entry->description = comment; previous_lang_level = lang_level; } } else if (!strcmp (name, "sub-class-of")) { char *mime_type; mime_type = handle_attribute (reader, "type"); if (entry->parent_classes) { char *new; new = g_strdup_printf ("%s:%s", entry->parent_classes, mime_type); g_free (entry->parent_classes); entry->parent_classes = new; } else { entry->parent_classes = g_strdup (mime_type); } g_free (mime_type); } else if (!strcmp (name, "alias")) { char *mime_type; mime_type = handle_attribute (reader, "type"); if (entry->aliases) { char *new; new = g_strdup_printf ("%s:%s", entry->aliases, mime_type); g_free (entry->aliases); entry->aliases =new; } else { entry->aliases = g_strdup (mime_type); } g_free (mime_type); } } ret = read_next (reader); } if (ret == -1) { /* Zero out the mime entry, but put it in the cache anyway * to avoid trying to reread */ g_free (entry->description); g_warning ("couldn't parse %s\n", filename); } return entry; } static MimeEntry * load_mime_entry (const char *mime_type, const char *filename) { MimeEntry *entry; xmlTextReaderPtr reader; int ret; reader = xmlNewTextReaderFilename (filename); if (!reader) { return NULL; } ret = xmlTextReaderRead (reader); entry = NULL; while (ret == 1) { if (xmlTextReaderNodeType (reader) == XML_READER_TYPE_ELEMENT) { if (entry) { g_warning ("two mime-info elements in %s", filename); } else { entry = handle_mime_info (filename, reader); } } ret = read_next (reader); } xmlFreeTextReader (reader); if (ret != 0 || entry == NULL) { mime_entry_free (entry); return NULL; } return entry; } static char * get_mime_entry_path (const char *mime_type) { GList *l; char *path; path = g_strdup_printf ("%s.xml", mime_type); if (G_DIR_SEPARATOR != '/') { char *p; for (p = path; *p != '\0'; p++) { if (*p == '/') { *p = G_DIR_SEPARATOR; break; } } } for (l = mime_directories; l != NULL; l = l->next) { char *full_path; MimeDirectory *dir = l->data; full_path = g_build_filename (dir->path, path, NULL); if (g_file_test (full_path, G_FILE_TEST_EXISTS)) { g_free (path); return full_path; } g_free (full_path); } g_free (path); return NULL; } static MimeEntry * get_entry (const char *mime_type) { const char *umime; MimeEntry *entry; char *path; G_LOCK (gnome_vfs_mime_mutex); umime = xdg_mime_unalias_mime_type (mime_type); G_UNLOCK (gnome_vfs_mime_mutex); entry = g_hash_table_lookup (mime_entries, umime); if (entry) { if (entry == &mime_entries_no_entry) return NULL; return entry; } path = get_mime_entry_path (umime); if (path) { entry = load_mime_entry (umime, path); g_hash_table_insert (mime_entries, g_strdup (umime), entry); g_free (path); return entry; } else { g_hash_table_insert (mime_entries, g_strdup (umime), &mime_entries_no_entry); return NULL; } } /** * gnome_vfs_mime_set_value: * @mime_type: a mime type. * @key: a key to store the value in. * @value: the value to store in the @key. * * This function will set the @value for the @key and it will save it * to the user' file if necessary. * You should not free the @key/@value passed to this function. * They are used internally. * * Returns: %GNOME_VFS_OK if the operation succeeded, otherwise an error code. */ GnomeVFSResult gnome_vfs_mime_set_value (const char *mime_type, const char *key, const char *value) { /* Remove once */ return GNOME_VFS_ERROR_NOT_SUPPORTED; } /** * gnome_vfs_mime_get_value: * @mime_type: a mime type. * @key: a key to lookup for the given @mime_type. * * This function retrieves the value associated with @key in * the given #GnomeMimeContext. The string is private, you * should not free the result. * * Returns: %GNOME_VFS_OK if the operation succeeded, otherwise an error code. */ const char * gnome_vfs_mime_get_value (const char *mime_type, const char *key) { MimeEntry *entry; if (!gnome_vfs_mime_inited) gnome_vfs_mime_init (); entry = get_entry (mime_type); if (!entry) { return NULL; } if (!strcmp (key, "description")) { return entry->description; } else if (!strcmp (key, "parent_classes")) { return entry->parent_classes; } else if (!strcmp (key, "aliases")) { return entry->aliases; } else if (!strcmp (key, "can_be_executable")) { if (gnome_vfs_mime_type_get_equivalence (mime_type, "application/x-executable") != GNOME_VFS_MIME_UNRELATED || gnome_vfs_mime_type_get_equivalence (mime_type, "text/plain") != GNOME_VFS_MIME_UNRELATED) return "TRUE"; } return NULL; } /** * gnome_vfs_mime_type_is_known: * @mime_type: a mime type. * * This function returns %TRUE if @mime_type is in the MIME database at all. * * Returns: %TRUE if anything is known about @mime_type, otherwise %FALSE. */ gboolean gnome_vfs_mime_type_is_known (const char *mime_type) { MimeEntry *entry; if (mime_type == NULL) { return FALSE; } g_return_val_if_fail (!does_string_contain_caps (mime_type), FALSE); if (!gnome_vfs_mime_inited) gnome_vfs_mime_init (); reload_if_needed (); entry = get_entry (mime_type); return entry != NULL; } /** * gnome_vfs_mime_get_extensions_list: * @mime_type: mime type to get the extensions of. * * Get the file extensions associated with mime type @mime_type. * * Return value: a #GList of char *s. */ GList * gnome_vfs_mime_get_extensions_list (const char *mime_type) { return NULL; } /** * gnome_vfs_mime_extensions_list_free: * @list: the extensions list. * * Call this function on the list returned by gnome_vfs_mime_get_extensions_list() * to free the @list and all of its elements. */ void gnome_vfs_mime_extensions_list_free (GList *list) { if (list == NULL) { return; } g_list_foreach (list, (GFunc) g_free, NULL); g_list_free (list); } void _gnome_vfs_mime_info_mark_user_mime_dir_dirty (void) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); } void _gnome_vfs_mime_info_mark_gnome_mime_dir_dirty (void) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); } GnomeVFSResult gnome_vfs_mime_set_registered_type_key (const char *mime_type, const char *key, const char *value) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_NOT_SUPPORTED; } GList * gnome_vfs_get_registered_mime_types (void) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return NULL; } void gnome_vfs_mime_registered_mime_type_delete (const char *mime_type) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); } void gnome_vfs_mime_registered_mime_type_list_free (GList *list) { if (list == NULL) { return; } g_list_foreach (list, (GFunc) g_free, NULL); g_list_free (list); } char * gnome_vfs_mime_get_extensions_pretty_string (const char *mime_type) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return NULL; } char * gnome_vfs_mime_get_extensions_string (const char *mime_type) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return NULL; } GList * gnome_vfs_mime_get_key_list (const char *mime_type) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return NULL; } void gnome_vfs_mime_keys_list_free (GList *mime_type_list) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); g_list_free (mime_type_list); } void gnome_vfs_mime_reset (void) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); } GnomeVFSResult gnome_vfs_mime_set_extensions_list (const char *mime_type, const char *extensions_list) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_NOT_SUPPORTED; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-monitor-daemon.c0000644000175000001440000010715211334251016021236 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-monitor-daemon.c - daemon implementation of volume handling Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include #include #include #include "gnome-vfs-volume-monitor-daemon.h" #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-unix-mounts.h" #include "gnome-vfs-cdrom.h" #include "gnome-vfs-filesystem-type.h" #ifdef USE_HAL #include "gnome-vfs-hal-mounts.h" #endif /* USE_HAL */ static void gnome_vfs_volume_monitor_daemon_class_init (GnomeVFSVolumeMonitorDaemonClass *klass); static void gnome_vfs_volume_monitor_daemon_init (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon); static void gnome_vfs_volume_monitor_daemon_finalize (GObject *object); static void update_fstab_drives (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon); static void update_mtab_volumes (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon); static void update_connected_servers (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon); typedef struct { char *id; char *uri; char *display_name; char *display_name_key; char *icon; } GnomeVFSConnectedServer; static GnomeVFSVolumeMonitorClass *parent_class = NULL; /* In the event we can't connect to the HAL daemon this boolean is TRUE * and we fall back to the usual fstab/mtab monitoring. * * This is also useful for maintaing the non-HAL code on a system with * HAL installed. */ #ifdef USE_HAL static gboolean dont_use_hald = TRUE; #endif /* USE_HAL */ /* Locking strategy: * * Its important that the public API is threadsafe, since it will be used * to implement gnome-vfs backends (which are threaded). * This is handled in various ways: * a) volumes/drives are mostly read-only, and for the few items that * can change (refcount, drive/volume pointer) we lock on getters * and setters * b) Changes to the volume monitor itself is only done by the main thread. * This means we don't have to protect main thread reads of the state, since * the data won't change unpredictably. * c) All writes to the volume manager thread are protected by the volume monitor * lock, and all public API that reads this state also uses this lock. * */ GType gnome_vfs_volume_monitor_daemon_get_type (void) { static GType volume_monitor_daemon_type = 0; if (!volume_monitor_daemon_type) { const GTypeInfo volume_monitor_daemon_info = { sizeof (GnomeVFSVolumeMonitorDaemonClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) gnome_vfs_volume_monitor_daemon_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GnomeVFSVolumeMonitorDaemon), 0, /* n_preallocs */ (GInstanceInitFunc) gnome_vfs_volume_monitor_daemon_init }; volume_monitor_daemon_type = g_type_register_static (GNOME_VFS_TYPE_VOLUME_MONITOR, "GnomeVFSVolumeMonitorDaemon", &volume_monitor_daemon_info, 0); } return volume_monitor_daemon_type; } static void gnome_vfs_volume_monitor_daemon_class_init (GnomeVFSVolumeMonitorDaemonClass *class) { GObjectClass *o_class; parent_class = g_type_class_peek_parent (class); o_class = (GObjectClass *) class; /* GObject signals */ o_class->finalize = gnome_vfs_volume_monitor_daemon_finalize; } static void fstab_changed (gpointer data) { GnomeVFSVolumeMonitorDaemon *volume_monitor; volume_monitor = data; update_fstab_drives (volume_monitor); } static void mtab_changed (gpointer data) { GnomeVFSVolumeMonitorDaemon *volume_monitor; volume_monitor = data; update_mtab_volumes (volume_monitor); } static void connected_servers_changed (GConfClient* client, guint cnxn_id, GConfEntry *entry, gpointer data) { GnomeVFSVolumeMonitorDaemon *volume_monitor; volume_monitor = data; update_connected_servers (volume_monitor); } static void gnome_vfs_volume_monitor_daemon_init (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { volume_monitor_daemon->gconf_client = gconf_client_get_default (); #ifdef USE_HAL if (_gnome_vfs_hal_mounts_init (volume_monitor_daemon)) { /* It worked, do use HAL */ dont_use_hald = FALSE; } else { /* Couldn't connect to HAL daemon, don't use HAL */ dont_use_hald = TRUE; } #endif /* USE_HAL */ _gnome_vfs_monitor_unix_mounts (fstab_changed, volume_monitor_daemon, mtab_changed, volume_monitor_daemon); gconf_client_add_dir (volume_monitor_daemon->gconf_client, CONNECTED_SERVERS_DIR, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); volume_monitor_daemon->connected_id = gconf_client_notify_add (volume_monitor_daemon->gconf_client, CONNECTED_SERVERS_DIR, connected_servers_changed, volume_monitor_daemon, NULL, NULL); update_fstab_drives (volume_monitor_daemon); update_mtab_volumes (volume_monitor_daemon); update_connected_servers (volume_monitor_daemon); } void gnome_vfs_volume_monitor_daemon_force_probe (GnomeVFSVolumeMonitor *volume_monitor) { GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; volume_monitor_daemon = GNOME_VFS_VOLUME_MONITOR_DAEMON (volume_monitor); #ifdef USE_HAL if (!dont_use_hald) _gnome_vfs_hal_mounts_force_reprobe (volume_monitor_daemon); #endif update_fstab_drives (volume_monitor_daemon); update_mtab_volumes (volume_monitor_daemon); update_connected_servers (volume_monitor_daemon); } /* Remeber that this could be running on a thread other * than the main thread */ static void gnome_vfs_volume_monitor_daemon_finalize (GObject *object) { GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; volume_monitor_daemon = GNOME_VFS_VOLUME_MONITOR_DAEMON (object); _gnome_vfs_stop_monitoring_unix_mounts (); g_list_foreach (volume_monitor_daemon->last_mtab, (GFunc)_gnome_vfs_unix_mount_free, NULL); g_list_free (volume_monitor_daemon->last_mtab); g_list_foreach (volume_monitor_daemon->last_fstab, (GFunc)_gnome_vfs_unix_mount_point_free, NULL); g_list_free (volume_monitor_daemon->last_fstab); gconf_client_notify_remove (volume_monitor_daemon->gconf_client, volume_monitor_daemon->connected_id); #ifdef USE_HAL if (!dont_use_hald) { _gnome_vfs_hal_mounts_shutdown (volume_monitor_daemon); } #endif /* USE_HAL */ g_object_unref (volume_monitor_daemon->gconf_client); if (G_OBJECT_CLASS (parent_class)->finalize) (* G_OBJECT_CLASS (parent_class)->finalize) (object); } static GnomeVFSDeviceType get_device_type_from_device_and_mount (const char *device_path, const char *mount_path) { const char *name; char *basename; if (g_str_has_prefix (device_path, "/dev/loop")) { return GNOME_VFS_DEVICE_TYPE_LOOPBACK; } else if (g_str_has_prefix (device_path, "/dev/vn")) { return GNOME_VFS_DEVICE_TYPE_LOOPBACK; } else if (g_str_has_prefix (device_path, "/vol/dev/diskette/") || g_str_has_prefix (device_path, "/dev/fd") || g_str_has_prefix (device_path, "/dev/floppy")) { return GNOME_VFS_DEVICE_TYPE_FLOPPY; } else if (g_str_has_prefix (device_path, "/dev/cdrom")) { return GNOME_VFS_DEVICE_TYPE_CDROM; } else if (g_str_has_prefix (device_path, "/dev/acd")) { return GNOME_VFS_DEVICE_TYPE_CDROM; } else if (g_str_has_prefix (device_path, "/dev/cd")) { return GNOME_VFS_DEVICE_TYPE_CDROM; } else if (g_str_has_prefix (device_path, "/vol/")) { name = mount_path + strlen ("/"); if (g_str_has_prefix (name, "cdrom")) { return GNOME_VFS_DEVICE_TYPE_CDROM; } else if (g_str_has_prefix (name, "floppy")) { return GNOME_VFS_DEVICE_TYPE_FLOPPY; } else if (g_str_has_prefix (device_path, "/vol/dev/diskette/")) { return GNOME_VFS_DEVICE_TYPE_FLOPPY; } else if (g_str_has_prefix (name, "rmdisk")) { return GNOME_VFS_DEVICE_TYPE_ZIP; } else if (g_str_has_prefix (name, "jaz")) { return GNOME_VFS_DEVICE_TYPE_JAZ; } else if (g_str_has_prefix (name, "camera")) { return GNOME_VFS_DEVICE_TYPE_CAMERA; } else if (g_str_has_prefix (name, "memstick")) { return GNOME_VFS_DEVICE_TYPE_MEMORY_STICK; } } else { basename = g_path_get_basename (mount_path); if (g_str_has_prefix (basename, "cdrom") || g_str_has_prefix (basename, "cdwriter") || g_str_has_prefix (basename, "burn") || g_str_has_prefix (basename, "cdr") || g_str_has_prefix (basename, "cdrw") || g_str_has_prefix (basename, "dvdrom") || g_str_has_prefix (basename, "dvdram") || g_str_has_prefix (basename, "dvdr") || g_str_has_prefix (basename, "dvdrw") || g_str_has_prefix (basename, "cdrom_dvdrom") || g_str_has_prefix (basename, "cdrom_dvdram") || g_str_has_prefix (basename, "cdrom_dvdr") || g_str_has_prefix (basename, "cdrom_dvdrw") || g_str_has_prefix (basename, "cdr_dvdrom") || g_str_has_prefix (basename, "cdr_dvdram") || g_str_has_prefix (basename, "cdr_dvdr") || g_str_has_prefix (basename, "cdr_dvdrw") || g_str_has_prefix (basename, "cdrw_dvdrom") || g_str_has_prefix (basename, "cdrw_dvdram") || g_str_has_prefix (basename, "cdrw_dvdr") || g_str_has_prefix (basename, "cdrw_dvdrw")) { g_free (basename); return GNOME_VFS_DEVICE_TYPE_CDROM; } else if (g_str_has_prefix (basename, "floppy")) { g_free (basename); return GNOME_VFS_DEVICE_TYPE_FLOPPY; } else if (g_str_has_prefix (basename, "zip")) { g_free (basename); return GNOME_VFS_DEVICE_TYPE_ZIP; } else if (g_str_has_prefix (basename, "jaz")) { g_free (basename); return GNOME_VFS_DEVICE_TYPE_JAZ; } else if (g_str_has_prefix (basename, "camera")) { g_free (basename); return GNOME_VFS_DEVICE_TYPE_CAMERA; } else if (g_str_has_prefix (basename, "memstick") || g_str_has_prefix (basename, "compact_flash") || g_str_has_prefix (basename, "memory_stick") || g_str_has_prefix (basename, "smart_media") || g_str_has_prefix (basename, "sd_mmc") || g_str_has_prefix (basename, "ram")) { g_free (basename); return GNOME_VFS_DEVICE_TYPE_MEMORY_STICK; } else if (g_str_has_prefix (basename, "ipod")) { g_free (basename); return GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER; } g_free (basename); } return GNOME_VFS_DEVICE_TYPE_HARDDRIVE; } static char * make_utf8 (const char *str) { GString *string; const char *remainder, *invalid; int remaining_bytes, valid_bytes; char *utf8; if (g_utf8_validate (str, -1, NULL)) { return g_strdup (str); } utf8 = g_locale_to_utf8 (str, -1, NULL, NULL, NULL); if (utf8 != NULL) { return utf8; } string = NULL; remainder = str; remaining_bytes = strlen (str); while (remaining_bytes != 0) { if (g_utf8_validate (remainder, remaining_bytes, &invalid)) { break; } valid_bytes = invalid - remainder; if (string == NULL) { string = g_string_sized_new (remaining_bytes); } g_string_append_len (string, remainder, valid_bytes); g_string_append_c (string, '?'); remaining_bytes -= valid_bytes + 1; remainder = invalid + 1; } if (string == NULL) { return g_strdup (str); } g_string_append (string, remainder); g_string_append (string, _(" (invalid Unicode)")); g_assert (g_utf8_validate (string->str, -1, NULL)); return g_string_free (string, FALSE); } static char * get_drive_icon_from_type (GnomeVFSDeviceType type, const char *mount_path) { char *icon_name; icon_name = "gnome-dev-removable"; switch (type) { case GNOME_VFS_DEVICE_TYPE_NFS: icon_name = "gnome-fs-nfs"; break; case GNOME_VFS_DEVICE_TYPE_SMB: icon_name = "gnome-fs-smb"; break; case GNOME_VFS_DEVICE_TYPE_HARDDRIVE: if (mount_path != NULL) { char *basename; basename = g_path_get_basename (mount_path); if (g_str_has_prefix (basename, "usbdisk")) { icon_name = "gnome-dev-removable-usb"; } else if (g_str_has_prefix (basename, "ieee1394disk")) { icon_name = "gnome-dev-removable-1394"; } g_free (basename); } break; default: break; } return g_strdup (icon_name); } static char * get_icon_from_type (GnomeVFSDeviceType type, const char *mount_path) { char *icon_name; char *basename; if (mount_path != NULL) { basename = g_path_get_basename (mount_path); } else { basename = NULL; } icon_name = "gnome-dev-harddisk"; switch (type) { case GNOME_VFS_DEVICE_TYPE_HARDDRIVE: if (basename != NULL) { if (g_str_has_prefix (basename, "usbdisk")) { icon_name = "gnome-dev-harddisk-usb"; } else if (g_str_has_prefix (basename, "ieee1394disk")) { icon_name = "gnome-dev-harddisk-1394"; } } break; case GNOME_VFS_DEVICE_TYPE_AUDIO_CD: icon_name = "gnome-dev-cdrom-audio"; break; case GNOME_VFS_DEVICE_TYPE_CDROM: icon_name = "gnome-dev-cdrom"; break; case GNOME_VFS_DEVICE_TYPE_FLOPPY: icon_name = "gnome-dev-floppy"; break; case GNOME_VFS_DEVICE_TYPE_JAZ: icon_name = "gnome-dev-jazdisk"; break; case GNOME_VFS_DEVICE_TYPE_ZIP: icon_name = "gnome-dev-zipdisk"; break; case GNOME_VFS_DEVICE_TYPE_MEMORY_STICK: icon_name = "gnome-dev-memory"; if (basename != NULL) { if (g_str_has_prefix (basename, "compact_flash")) { icon_name = "gnome-dev-media-cf"; } else if (g_str_has_prefix (basename, "memory_stick")) { icon_name = "gnome-dev-media-ms"; } else if (g_str_has_prefix (basename, "smart_media")) { icon_name = "gnome-dev-media-sm"; } else if (g_str_has_prefix (basename, "sd_mmc")) { icon_name = "gnome-dev-media-sdmmc"; } } break; case GNOME_VFS_DEVICE_TYPE_NFS: icon_name = "gnome-fs-nfs"; break; case GNOME_VFS_DEVICE_TYPE_SMB: icon_name = "gnome-fs-smb"; break; default: break; } if (basename != NULL) { g_free (basename); } return g_strdup (icon_name); } static void diff_sorted_lists (GList *list1, GList *list2, GCompareFunc compare, GList **added, GList **removed) { int order; *added = *removed = NULL; while (list1 != NULL && list2 != NULL) { order = (*compare) (list1->data, list2->data); if (order < 0) { *removed = g_list_prepend (*removed, list1->data); list1 = list1->next; } else if (order > 0) { *added = g_list_prepend (*added, list2->data); list2 = list2->next; } else { /* same item */ list1 = list1->next; list2 = list2->next; } } while (list1 != NULL) { *removed = g_list_prepend (*removed, list1->data); list1 = list1->next; } while (list2 != NULL) { *added = g_list_prepend (*added, list2->data); list2 = list2->next; } } /************************* fstab drives ***********************************/ static void fixup_mountpoint (GnomeVFSUnixMountPoint *mount) { /* needed for solaris */ if (g_str_has_prefix (mount->device_path, "/vol/") && g_str_has_prefix (mount->mount_path, "/rmdisk") && g_str_has_suffix (mount->device_path, ":c")) { mount->device_path[strlen (mount->device_path) - 2] = 0; } } static char * get_drive_name (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive, GnomeVFSUnixMountPoint *mount) { char *name, *utf8_name, *rest, *end; int i, index; struct { char *machine; char *readable; } readable_table[] = { { "floppy", N_("Floppy") }, { "cdrom", N_("CD-ROM") }, { "cdr", N_("CD-R") }, { "cdrw", N_("CD-RW") }, { "dvdrom", N_("DVD-ROM") }, { "dvdram", N_("DVD-RAM") }, { "dvdr", N_("DVD-R") }, { "dvdrw", N_("DVD-RW") }, { "cdrom_dvdrom", N_("CD-ROM/DVD-ROM") }, { "cdrom_dvdram", N_("CD-ROM/DVD-RAM") }, { "cdrom_dvdr", N_("CD-ROM/DVD-R") }, { "cdrom_dvdrw", N_("CD-ROM/DVD-RW") }, { "cdr_dvdrom", N_("CD-R/DVD-ROM") }, { "cdr_dvdram", N_("CD-R/DVD-RAM") }, { "cdr_dvdr", N_("CD-R/DVD-R") }, { "cdr_dvdrw", N_("CD-R/DVD-RW") }, { "cdrw_dvdrom", N_("CD-RW/DVD-ROM") }, { "cdrw_dvdram", N_("CD-RW/DVD-RAM") }, { "cdrw_dvdr", N_("CD-RW/DVD-R") }, { "cdrw_dvdrw", N_("CD-RW/DVD-RW") }, { "idedisk", N_("Disk") }, { "usbdisk", N_("USB Drive") }, { "ieee1394disk", N_("IEEE1394 Drive") }, { "compact_flash", N_("CF") }, { "sd_mmc", N_("SD/MMC") }, { "memory_stick", N_("Memory Stick") }, { "smart_media", N_("Smart Media") }, { "zip", N_("Zip Drive") }, { "memstick", N_("Memory Stick") }, { "camera", N_("Camera") }, { "dvd", N_("DVD") }, }; name = g_path_get_basename (mount->mount_path); for (i = 0; i < G_N_ELEMENTS (readable_table); i++) { if (g_str_has_prefix (name, readable_table[i].machine)) { rest = name + strlen (readable_table[i].machine); if (rest[0] == 0) { g_free (name); name = g_strdup (_(readable_table[i].readable)); } else { index = strtol(rest, &end, 10); if (*end == 0) { g_free (name); name = g_strdup_printf ("%s %d", _(readable_table[i].readable), index + 1); } } } } if (strcmp (name, "floppy") == 0) { g_free (name); name = g_strdup (_("Floppy")); } else if (strcmp (name, "cdrom") == 0) { g_free (name); name = g_strdup (_("CD-ROM")); } else if (strcmp (name, "zip") == 0) { g_free (name); name = g_strdup (_("Zip Drive")); } utf8_name = make_utf8 (name); g_free (name); name = _gnome_vfs_volume_monitor_uniquify_drive_name (volume_monitor, utf8_name); g_free (utf8_name); return name; } static GnomeVFSDrive * create_drive_from_mount_point (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSUnixMountPoint *mount) { GnomeVFSDrive *drive; GnomeVFSVolume *mounted_volume; char *name, *uri; if (mount->is_loopback || !(mount->is_user_mountable || g_str_has_prefix (mount->device_path, "/vol/"))) { return NULL; } fixup_mountpoint (mount); drive = g_object_new (GNOME_VFS_TYPE_DRIVE, NULL); if (strcmp(mount->filesystem_type, "supermount") == 0 && mount->dev_opt != NULL) { drive->priv->device_path = g_strdup (mount->dev_opt); } else { drive->priv->device_path = g_strdup (mount->device_path); } drive->priv->activation_uri = gnome_vfs_get_uri_from_local_path (mount->mount_path); drive->priv->is_connected = 1; drive->priv->device_type = get_device_type_from_device_and_mount (mount->device_path, mount->mount_path); if ((strcmp (mount->filesystem_type, "iso9660") == 0) || (strcmp (mount->filesystem_type, "cd9660") == 0) || (strcmp (mount->filesystem_type, "hsfs") == 0)) { if (drive->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { drive->priv->device_type = GNOME_VFS_DEVICE_TYPE_CDROM; } } else if (strcmp (mount->filesystem_type, "cdrfs") == 0) { /* AIX uses this fstype */ if (drive->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { drive->priv->device_type = GNOME_VFS_DEVICE_TYPE_CDROM; } } else if ((strcmp (mount->filesystem_type, "hfs") == 0) || (strcmp (mount->filesystem_type, "hfsplus") == 0)) { if (drive->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { drive->priv->device_type = GNOME_VFS_DEVICE_TYPE_APPLE; } } else if ((strcmp (mount->filesystem_type, "vfat") == 0) || (strcmp (mount->filesystem_type, "fat") == 0) || (strcmp (mount->filesystem_type, "ntfs") == 0) || (strcmp (mount->filesystem_type, "msdos") == 0) || (strcmp (mount->filesystem_type, "msdosfs") == 0)) { if (drive->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { drive->priv->device_type = GNOME_VFS_DEVICE_TYPE_WINDOWS; } } else if ((strcmp (mount->filesystem_type, "smbfs") == 0) || (strcmp (mount->filesystem_type, "cifs") == 0)) { drive->priv->device_type = GNOME_VFS_DEVICE_TYPE_SMB; } else if (mount->is_loopback) { drive->priv->device_type = GNOME_VFS_DEVICE_TYPE_LOOPBACK; } drive->priv->icon = get_drive_icon_from_type (drive->priv->device_type, mount->mount_path); drive->priv->display_name = get_drive_name (volume_monitor, drive, mount); name = g_utf8_casefold (drive->priv->display_name, -1); drive->priv->display_name_key = g_utf8_collate_key (name, -1); g_free (name); drive->priv->is_user_visible = TRUE; drive->priv->volumes = NULL; uri = gnome_vfs_get_uri_from_local_path (mount->mount_path); mounted_volume = _gnome_vfs_volume_monitor_find_mtab_volume_by_activation_uri (volume_monitor, uri); g_free (uri); if (mounted_volume != NULL && mounted_volume->priv->drive == NULL) { gnome_vfs_drive_add_mounted_volume_private (drive, mounted_volume); gnome_vfs_volume_set_drive_private (mounted_volume, drive); } return drive; } static void update_fstab_drives (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { GList *new_fstab; GList *removed, *added; GList *l; GnomeVFSUnixMountPoint *mount; char *uri; GnomeVFSDrive *drive; GnomeVFSVolumeMonitor *volume_monitor; volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon); if (_gnome_vfs_get_unix_mount_table (&new_fstab)) { new_fstab = g_list_sort (new_fstab, (GCompareFunc) _gnome_vfs_unix_mount_point_compare); diff_sorted_lists (volume_monitor_daemon->last_fstab, new_fstab, (GCompareFunc) _gnome_vfs_unix_mount_point_compare, &added, &removed); for (l = removed; l != NULL; l = l->next) { mount = l->data; uri = gnome_vfs_get_uri_from_local_path (mount->mount_path); drive = _gnome_vfs_volume_monitor_find_fstab_drive_by_activation_uri (volume_monitor, uri); if (drive != NULL) { #ifdef USE_HAL /* don't remove if managed by the hal backend */ if (dont_use_hald || drive->priv->hal_udi == NULL) _gnome_vfs_volume_monitor_disconnected (volume_monitor, drive); #else _gnome_vfs_volume_monitor_disconnected (volume_monitor, drive); #endif } else { g_warning ("removed drive not in old fstab list??"); } g_free (uri); } for (l = added; l != NULL; l = l->next) { mount = l->data; drive = create_drive_from_mount_point (volume_monitor, mount); if (drive != NULL) { #ifdef USE_HAL if (!dont_use_hald) { GnomeVFSDrive *new_drive; new_drive = _gnome_vfs_hal_mounts_modify_drive (volume_monitor_daemon, drive); if (new_drive != NULL) { _gnome_vfs_volume_monitor_connected (volume_monitor, new_drive); gnome_vfs_drive_unref (new_drive); } } else { _gnome_vfs_volume_monitor_connected (volume_monitor, drive); gnome_vfs_drive_unref (drive); } #else _gnome_vfs_volume_monitor_connected (volume_monitor, drive); gnome_vfs_drive_unref (drive); #endif /* USE_HAL */ } } g_list_free (added); g_list_free (removed); g_list_foreach (volume_monitor_daemon->last_fstab, (GFunc)_gnome_vfs_unix_mount_point_free, NULL); g_list_free (volume_monitor_daemon->last_fstab); volume_monitor_daemon->last_fstab = new_fstab; } } /************************* mtab volumes ***********************************/ static void fixup_mount (GnomeVFSUnixMount *mount) { /* needed for solaris */ if (g_str_has_prefix (mount->device_path, "/vol/") && g_str_has_prefix (mount->mount_path, "/rmdisk") && g_str_has_suffix (mount->device_path, ":c")) { mount->device_path[strlen (mount->device_path) - 2] = 0; } } static char * modify_volume_name_for_display (const char *unmodified_name) { int i; char *name; if (unmodified_name == NULL) { return NULL; } name = g_strdup (unmodified_name); /* Strip whitespace from the end of the name. */ g_strchomp (name); /* The volume name may have '/' characters. We need to convert * them to something that's suitable e.g. for use in the name of a * link on the desktop. */ for (i = 0; name[i] != '\0'; i++) { if (name[i] == '/') { name[i] = '-'; } } /* Save pretty name back into volume info */ return name; } static char * make_volume_name_from_path_and_fs (const char *mount_path, const char *fs_type) { const char *name; if (mount_path[0] == '/' && mount_path[1] == '\0') { return g_strdup (_("Root Volume")); } name = strrchr (mount_path, '/'); if (name == NULL) { if (fs_type == NULL) { return NULL; } else { return _gnome_vfs_filesystem_volume_name (fs_type); } } return modify_volume_name_for_display (name + 1); } static GnomeVFSVolume * create_vol_from_mount (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSUnixMount *mount) { GnomeVFSVolume *vol; char *display_name, *tmp_name, *utf8_name; int disctype; int fd; char *uri; GnomeVFSDrive *containing_drive; fixup_mount (mount); vol = g_object_new (GNOME_VFS_TYPE_VOLUME, NULL); vol->priv->volume_type = GNOME_VFS_VOLUME_TYPE_MOUNTPOINT; vol->priv->device_path = g_strdup (mount->device_path); vol->priv->unix_device = 0; /* Caller must fill in. */ vol->priv->activation_uri = gnome_vfs_get_uri_from_local_path (mount->mount_path); vol->priv->filesystem_type = g_strdup (mount->filesystem_type); vol->priv->is_read_only = mount->is_read_only; vol->priv->is_mounted = 1; vol->priv->device_type = get_device_type_from_device_and_mount (mount->device_path, mount->mount_path); if ((strcmp (mount->filesystem_type, "iso9660") == 0) || (strcmp (mount->filesystem_type, "cd9660") == 0)) { if (vol->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_CDROM; } } else if (strcmp (mount->filesystem_type, "nfs") == 0) { if (strstr (vol->priv->device_path, "(pid") != NULL) { vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_AUTOFS; } else { vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_NFS; } } else if (strcmp (mount->filesystem_type, "autofs") == 0) { vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_AUTOFS; } else if ((strcmp (mount->filesystem_type, "hfs") == 0) || (strcmp (mount->filesystem_type, "hfsplus") == 0)) { if (vol->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_APPLE; } } else if ((strcmp (mount->filesystem_type, "vfat") == 0) || (strcmp (mount->filesystem_type, "fat") == 0) || (strcmp (mount->filesystem_type, "ntfs") == 0) || (strcmp (mount->filesystem_type, "msdos") == 0) || (strcmp (mount->filesystem_type, "msdosfs") == 0)) { if (vol->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_WINDOWS; } } display_name = NULL; /* We default to harddrive if otherwise unknown */ if (vol->priv->device_type == GNOME_VFS_DEVICE_TYPE_UNKNOWN) { vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_HARDDRIVE; } if (vol->priv->device_type == GNOME_VFS_DEVICE_TYPE_CDROM) { fd = 0; disctype = _gnome_vfs_get_cdrom_type (mount->device_path, &fd); switch (disctype) { case CDS_AUDIO: display_name = g_strdup (_("Audio CD")); vol->priv->device_type = GNOME_VFS_DEVICE_TYPE_AUDIO_CD; break; case CDS_DATA_1: case CDS_DATA_2: case CDS_XA_2_1: case CDS_XA_2_2: case CDS_MIXED: /* Get volume name */ if (fd > 0) { tmp_name = _gnome_vfs_get_iso9660_volume_name (fd); display_name = modify_volume_name_for_display (tmp_name); g_free (tmp_name); } break; default: break; } if (fd > 0) { close (fd); } } if (display_name == NULL) { display_name = make_volume_name_from_path_and_fs (mount->mount_path, mount->filesystem_type); } if (display_name == NULL || display_name[0] == 0) { g_free (display_name); display_name = g_strdup (_("Unknown volume")); } utf8_name = make_utf8 (display_name); vol->priv->display_name = _gnome_vfs_volume_monitor_uniquify_volume_name (volume_monitor, utf8_name); g_free (display_name); g_free (utf8_name); display_name = g_utf8_casefold (vol->priv->display_name, -1); vol->priv->display_name_key = g_utf8_collate_key (display_name, -1); g_free (display_name); vol->priv->icon = get_icon_from_type (vol->priv->device_type, mount->mount_path); vol->priv->is_user_visible = 0; switch (vol->priv->device_type) { case GNOME_VFS_DEVICE_TYPE_CDROM: case GNOME_VFS_DEVICE_TYPE_FLOPPY: case GNOME_VFS_DEVICE_TYPE_ZIP: case GNOME_VFS_DEVICE_TYPE_JAZ: case GNOME_VFS_DEVICE_TYPE_CAMERA: case GNOME_VFS_DEVICE_TYPE_MEMORY_STICK: vol->priv->is_user_visible = 1; break; default: break; } vol->priv->drive = NULL; uri = gnome_vfs_get_uri_from_local_path (mount->mount_path); containing_drive = _gnome_vfs_volume_monitor_find_fstab_drive_by_activation_uri (volume_monitor, uri); g_free (uri); if (containing_drive != NULL && g_list_find (containing_drive->priv->volumes, vol) == NULL) { /* Make sure the mounted volume for a visible drive is visible */ if (containing_drive->priv->is_user_visible) { vol->priv->is_user_visible = 1; } vol->priv->drive = containing_drive; gnome_vfs_drive_add_mounted_volume_private (containing_drive, vol); } return vol; } static void update_mtab_volumes (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { GList *new_mtab; GList *removed, *added, *devices; GList *l, *ld; char *uri; GnomeVFSVolume *vol; GnomeVFSVolumeMonitor *volume_monitor; volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon); if (_gnome_vfs_get_current_unix_mounts (&new_mtab)) { new_mtab = g_list_sort (new_mtab, (GCompareFunc) _gnome_vfs_unix_mount_compare); diff_sorted_lists (volume_monitor_daemon->last_mtab, new_mtab, (GCompareFunc) _gnome_vfs_unix_mount_compare, &added, &removed); for (l = removed; l != NULL; l = l->next) { GnomeVFSUnixMount *mount = l->data; uri = gnome_vfs_get_uri_from_local_path (mount->mount_path); vol = _gnome_vfs_volume_monitor_find_mtab_volume_by_activation_uri (volume_monitor, uri); if (vol != NULL) { #ifdef USE_HAL /* don't remove if managed by the hal backend */ if (dont_use_hald || vol->priv->hal_udi == NULL) _gnome_vfs_volume_monitor_unmounted (volume_monitor, vol); #else _gnome_vfs_volume_monitor_unmounted (volume_monitor, vol); #endif } else { g_warning ("removed volume not in old mtab list??"); } g_free (uri); } devices = _gnome_vfs_unix_mount_get_unix_device (added); for (l = added, ld = devices; l != NULL; l = l->next, ld = ld->next) { GnomeVFSUnixMount *mount = l->data; dev_t unix_device = GPOINTER_TO_UINT (ld->data); vol = create_vol_from_mount (volume_monitor, mount); vol->priv->unix_device = unix_device; #ifdef USE_HAL if (!dont_use_hald) { GnomeVFSVolume *new_vol; new_vol = _gnome_vfs_hal_mounts_modify_volume (volume_monitor_daemon, vol); if (new_vol != NULL) { _gnome_vfs_volume_monitor_mounted (volume_monitor, new_vol); gnome_vfs_volume_unref (new_vol); } } else { _gnome_vfs_volume_monitor_mounted (volume_monitor, vol); gnome_vfs_volume_unref (vol); } #else _gnome_vfs_volume_monitor_mounted (volume_monitor, vol); gnome_vfs_volume_unref (vol); #endif /* USE_HAL */ } g_list_free (devices); g_list_free (added); g_list_free (removed); g_list_foreach (volume_monitor_daemon->last_mtab, (GFunc)_gnome_vfs_unix_mount_free, NULL); g_list_free (volume_monitor_daemon->last_mtab); volume_monitor_daemon->last_mtab = new_mtab; } } /************************* connected server ***********************************/ static void connected_server_free (GnomeVFSConnectedServer *server) { g_free (server->id); g_free (server->uri); g_free (server->display_name); g_free (server->display_name_key); g_free (server->icon); g_free (server); } static int connected_server_compare (GnomeVFSConnectedServer *a, GnomeVFSConnectedServer *b) { int res; res = strcmp (a->id, b->id); if (res != 0) { return res; } res = strcmp (a->uri, b->uri); if (res != 0) { return res; } res = strcmp (a->display_name_key, b->display_name_key); if (res != 0) { return res; } res = strcmp (a->icon, b->icon); if (res != 0) { return res; } return 0; } static GList * get_connected_servers (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { GSList *dirs, *l; char *dir; GnomeVFSConnectedServer *server; char *key, *id; GList *servers; servers = NULL; dirs = gconf_client_all_dirs (volume_monitor_daemon->gconf_client, CONNECTED_SERVERS_DIR, NULL); for (l = dirs; l != NULL; l = l->next) { dir = l->data; id = strrchr (dir, '/'); if (id != NULL && id[1] != 0) { server = g_new0 (GnomeVFSConnectedServer, 1); server->id = g_strdup (id+1); key = g_strconcat (dir, "/uri", NULL); server->uri = gconf_client_get_string (volume_monitor_daemon->gconf_client, key, NULL); g_free (key); key = g_strconcat (dir, "/display_name", NULL); server->display_name = gconf_client_get_string (volume_monitor_daemon->gconf_client, key, NULL); g_free (key); key = g_strconcat (dir, "/icon", NULL); server->icon = gconf_client_get_string (volume_monitor_daemon->gconf_client, key, NULL); g_free (key); if (server->uri == NULL) { g_free (server->id); g_free (server->display_name); g_free (server->icon); g_free (server); } else { char *name; if (server->display_name == NULL) { server->display_name = g_strdup (_("Network server")); } name = g_utf8_casefold (server->display_name, -1); server->display_name_key = g_utf8_collate_key (name, -1); g_free (name); if (server->icon == NULL) { server->icon = g_strdup ("gnome-fs-share"); } servers = g_list_prepend (servers, server); } } g_free (dir); } g_slist_free (dirs); return servers; } static GnomeVFSVolume * create_volume_from_connected_server (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSConnectedServer *server) { GnomeVFSVolume *vol; char *name; vol = g_object_new (GNOME_VFS_TYPE_VOLUME, NULL); vol->priv->volume_type = GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER; vol->priv->activation_uri = g_strdup (server->uri); vol->priv->display_name = _gnome_vfs_volume_monitor_uniquify_volume_name (volume_monitor, server->display_name); name = g_utf8_casefold (vol->priv->display_name, -1); vol->priv->display_name_key = g_utf8_collate_key (name, -1); g_free (name); vol->priv->icon = g_strdup (server->icon); vol->priv->gconf_id = g_strdup (server->id); vol->priv->is_mounted = 1; vol->priv->is_user_visible = 1; return vol; } static void update_connected_servers (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { GList *new_servers; GnomeVFSVolumeMonitor *volume_monitor; GList *removed, *added; GnomeVFSConnectedServer *server; GnomeVFSVolume *volume; GList *l; volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon); new_servers = get_connected_servers (volume_monitor_daemon); new_servers = g_list_sort (new_servers, (GCompareFunc) connected_server_compare); diff_sorted_lists (volume_monitor_daemon->last_connected_servers, new_servers, (GCompareFunc) connected_server_compare, &added, &removed); for (l = removed; l != NULL; l = l->next) { server = l->data; volume = _gnome_vfs_volume_monitor_find_connected_server_by_gconf_id (volume_monitor, server->id); if (volume != NULL) { _gnome_vfs_volume_monitor_unmounted (volume_monitor, volume); } } for (l = added; l != NULL; l = l->next) { server = l->data; volume = create_volume_from_connected_server (volume_monitor, server); _gnome_vfs_volume_monitor_mounted (volume_monitor, volume); gnome_vfs_volume_unref (volume); } g_list_free (added); g_list_free (removed); g_list_foreach (volume_monitor_daemon->last_connected_servers, (GFunc)connected_server_free, NULL); g_list_free (volume_monitor_daemon->last_connected_servers); volume_monitor_daemon->last_connected_servers = new_servers; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-socket.c0000644000175000001440000001237411334251016016272 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-socket.c * * Copyright (C) 2001 Seth Nickell * Copyright (C) 2001 Maciej Stachowiak * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /* * Authors: Seth Nickell * Maciej Stachowiak * (reverse-engineered from code by Ian McKellar ) */ #include #include "gnome-vfs-socket.h" #include struct GnomeVFSSocket { GnomeVFSSocketImpl *impl; gpointer connection; }; /** * gnome_vfs_socket_new: * @impl: an implementation of socket, e.g. #GnomeVFSSSL. * @connection: pointer to a connection object used by @impl to track. * state (the exact nature of @connection varies from implementation to * implementation). * * Creates a new #GnomeVFSSocket using the specific implementation * @impl. * * Return value: a newly created socket. */ GnomeVFSSocket* gnome_vfs_socket_new (GnomeVFSSocketImpl *impl, void *connection) { GnomeVFSSocket *socket; socket = g_new0 (GnomeVFSSocket, 1); socket->impl = impl; socket->connection = connection; return socket; } /** * gnome_vfs_socket_write: * @socket: socket to write data to. * @buffer: data to write to the socket. * @bytes: number of bytes from @buffer to write to @socket. * @bytes_written: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually written to the @socket on return. * @cancellation: optional cancellation object. * * Write @bytes bytes of data from @buffer to @socket. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_write (GnomeVFSSocket *socket, gconstpointer buffer, int bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation) { if (gnome_vfs_cancellation_check (cancellation)) { if (bytes_written != NULL) { *bytes_written = 0; } return GNOME_VFS_ERROR_CANCELLED; } return socket->impl->write (socket->connection, buffer, bytes, bytes_written, cancellation); } /** * gnome_vfs_socket_close: * @socket: the socket to be closed. * @cancellation: optional cancellation object. * * Close @socket, freeing any resources it may be using. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_close (GnomeVFSSocket *socket, GnomeVFSCancellation *cancellation) { socket->impl->close (socket->connection, cancellation); g_free (socket); return GNOME_VFS_OK; } /** * gnome_vfs_socket_read: * @socket: socket to read data from. * @buffer: allocated buffer of at least @bytes bytes to be read into. * @bytes: number of bytes to read from @socket into @buffer. * @bytes_read: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually read from the socket on return. * @cancellation: optional cancellation object. * * Read @bytes bytes of data from the @socket into @buffer. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_socket_read (GnomeVFSSocket *socket, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation) { if (gnome_vfs_cancellation_check (cancellation)) { if (bytes_read != NULL) { *bytes_read = 0; } return GNOME_VFS_ERROR_CANCELLED; } return socket->impl->read (socket->connection, buffer, bytes, bytes_read, cancellation); } /** * gnome_vfs_socket_set_timeout: * @socket: socket to set the timeout of. * @timeout: the timeout. * @cancellation: optional cancellation object. * * Set a timeout of @timeout. If @timeout is %NULL, following operations * will block indefinitely). * * Note if you set @timeout to 0 (means tv_sec and tv_usec are both 0) * every following operation will return immediately. (This can be used * for polling.) * * Return value: #GnomeVFSResult indicating the success of the operation. * * Since: 2.8 */ GnomeVFSResult gnome_vfs_socket_set_timeout (GnomeVFSSocket *socket, GTimeVal *timeout, GnomeVFSCancellation *cancellation) { return socket->impl->set_timeout (socket->connection, timeout, cancellation); } /** * gnome_vfs_socket_free: * @socket: The #GnomeVFSSocket you want to free. * * Frees the memory allocated for @socket, but does * not call any #GnomeVFSSocketImpl function. * * Since: 2.8 */ void gnome_vfs_socket_free (GnomeVFSSocket *socket) { g_return_if_fail (socket != NULL); g_free (socket); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-callback-module-api.h0000644000175000001440000000254711334251016022061 00000000000000 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-callbacks.h - various callback declarations Copyright (C) 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Maciej Stachowiak Seth Nickell */ #ifndef GNOME_VFS_MODULE_CALLBACK_MODULE_API_H #define GNOME_VFS_MODULE_CALLBACK_MODULE_API_H #include gboolean gnome_vfs_module_callback_invoke (const char *callback_name, gconstpointer in, gsize in_size, gpointer out, gsize out_size); #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-deprecated.h0000644000175000001440000001640011334251016020026 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Maciej Stachowiak */ #ifndef GNOME_VFS_DISABLE_DEPRECATED #ifndef GNOME_VFS_MIME_DEPRECATED_H #define GNOME_VFS_MIME_DEPRECATED_H G_BEGIN_DECLS /* ------------------------------ * From gnome-vfs-mime-handlers.h * ------------------------------ */ /** * GnomeVFSMimeActionType: * @GNOME_VFS_MIME_ACTION_TYPE_NONE: neither an application nor a component. * @GNOME_VFS_MIME_ACTION_TYPE_APPLICATION: an application. * @GNOME_VFS_MIME_ACTION_TYPE_COMPONENT: a component. * * This is used to specify the %type of a #GnomeVFSMimeAction. **/ typedef enum { GNOME_VFS_MIME_ACTION_TYPE_NONE, GNOME_VFS_MIME_ACTION_TYPE_APPLICATION, GNOME_VFS_MIME_ACTION_TYPE_COMPONENT } GnomeVFSMimeActionType; /** * GnomeVFSMimeAction: * @action_type: The #GnomeVFSMimeActionType describing the type of this action. * * This data structure describes an action that can be done * on a file. **/ typedef struct _GnomeVFSMimeAction GnomeVFSMimeAction; struct _GnomeVFSMimeAction { /* */ GnomeVFSMimeActionType action_type; union { void *component; void *dummy_component; GnomeVFSMimeApplication *application; } action; /*< private >*/ /* Padded to avoid future breaks in ABI compatibility */ void *reserved1; }; GnomeVFSMimeActionType gnome_vfs_mime_get_default_action_type (const char *mime_type); GnomeVFSMimeAction * gnome_vfs_mime_get_default_action (const char *mime_type); GnomeVFSMimeApplication *gnome_vfs_mime_application_new_from_id (const char *id); void gnome_vfs_mime_action_free (GnomeVFSMimeAction *action); GnomeVFSResult gnome_vfs_mime_action_launch (GnomeVFSMimeAction *action, GList *uris); GnomeVFSResult gnome_vfs_mime_action_launch_with_env (GnomeVFSMimeAction *action, GList *uris, char **envp); const char *gnome_vfs_mime_get_icon (const char *mime_type); /* List manipulation helper functions */ gboolean gnome_vfs_mime_id_in_application_list (const char *id, GList *applications); GList * gnome_vfs_mime_remove_application_from_list (GList *applications, const char *application_id, gboolean *did_remove); GList * gnome_vfs_mime_id_list_from_application_list (GList *applications); /* Stored as delta to current user level - API function computes delta and stores in prefs */ GnomeVFSResult gnome_vfs_mime_add_extension (const char *mime_type, const char *extension); GnomeVFSResult gnome_vfs_mime_remove_extension (const char *mime_type, const char *extension); GnomeVFSResult gnome_vfs_mime_set_default_action_type (const char *mime_type, GnomeVFSMimeActionType action_type); GnomeVFSResult gnome_vfs_mime_set_default_application (const char *mime_type, const char *application_id); GnomeVFSResult gnome_vfs_mime_set_default_component (const char *mime_type, const char *component_iid); GnomeVFSResult gnome_vfs_mime_set_icon (const char *mime_type, const char *filename); GnomeVFSResult gnome_vfs_mime_set_description (const char *mime_type, const char *description); GnomeVFSResult gnome_vfs_mime_set_can_be_executable (const char *mime_type, gboolean new_value); /* No way to override system list; can only add. */ GnomeVFSResult gnome_vfs_mime_extend_all_applications (const char *mime_type, GList *application_ids); /* Only "user" entries may be removed. */ GnomeVFSResult gnome_vfs_mime_remove_from_all_applications (const char *mime_type, GList *application_ids); GList * gnome_vfs_mime_get_short_list_applications (const char *mime_type); GnomeVFSResult gnome_vfs_mime_set_short_list_applications (const char *mime_type, GList *application_ids); GnomeVFSResult gnome_vfs_mime_set_short_list_components (const char *mime_type, GList *component_iids); GnomeVFSResult gnome_vfs_mime_add_application_to_short_list (const char *mime_type, const char *application_id); GnomeVFSResult gnome_vfs_mime_remove_application_from_short_list (const char *mime_type, const char *application_id); GnomeVFSResult gnome_vfs_mime_add_component_to_short_list (const char *mime_type, const char *iid); GnomeVFSResult gnome_vfs_mime_remove_component_from_short_list (const char *mime_type, const char *iid); /* There are actually in bonobo-activation, but defined here */ #if defined(GNOME_VFS_INCLUDE_BONOBO) || defined(_Bonobo_ServerInfo_defined) #include Bonobo_ServerInfo *gnome_vfs_mime_get_default_component (const char *mime_type); #else void *gnome_vfs_mime_get_default_component (const char *mime_type); #endif GList * gnome_vfs_mime_get_all_components (const char *mime_type); void gnome_vfs_mime_component_list_free (GList *list); GList * gnome_vfs_mime_remove_component_from_list (GList *components, const char *iid, gboolean *did_remove); GList * gnome_vfs_mime_id_list_from_component_list (GList *components); gboolean gnome_vfs_mime_id_in_component_list (const char *iid, GList *components); GList * gnome_vfs_mime_get_short_list_components (const char *mime_type); G_END_DECLS #endif /* GNOME_VFS_MIME_DEPRECATED_H */ #endif /* GNOME_VFS_DISABLE_DEPRECATED */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-dbus-utils.h0000644000175000001440000001526011334251016017077 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. * * Author: Richard Hult */ #ifndef GNOME_VFS_DBUS_UTILS_H #define GNOME_VFS_DBUS_UTILS_H #include #include #include #include G_BEGIN_DECLS #define DVD_DAEMON_SERVICE "org.gnome.GnomeVFS.Daemon" #define DVD_DAEMON_OBJECT "/org/gnome/GnomeVFS/Daemon" #define DVD_DAEMON_INTERFACE "org.gnome.GnomeVFS.Daemon" #define DVD_CLIENT_OBJECT "/org/gnome/GnomeVFS/Client" #define DVD_CLIENT_INTERFACE "org.gnome.GnomeVFS.Client" /* File monitoring signal. */ #define DVD_DAEMON_MONITOR_SIGNAL "MonitorSignal" #define DVD_DAEMON_METHOD_GET_CONNECTION "GetConnection" #define DVD_CLIENT_METHOD_CALLBACK "Callback" /* File ops methods. */ #define DVD_DAEMON_METHOD_OPEN "Open" #define DVD_DAEMON_METHOD_CREATE "Create" #define DVD_DAEMON_METHOD_READ "Read" #define DVD_DAEMON_METHOD_WRITE "Write" #define DVD_DAEMON_METHOD_CLOSE "Close" #define DVD_DAEMON_METHOD_SEEK "Seek" #define DVD_DAEMON_METHOD_TELL "Tell" #define DVD_DAEMON_METHOD_TRUNCATE_HANDLE "TruncateHandle" #define DVD_DAEMON_METHOD_OPEN_DIRECTORY "OpenDirectory" #define DVD_DAEMON_METHOD_CLOSE_DIRECTORY "CloseDirectory" #define DVD_DAEMON_METHOD_READ_DIRECTORY "ReadDirectory" #define DVD_DAEMON_METHOD_GET_FILE_INFO "GetFileInfo" #define DVD_DAEMON_METHOD_GET_FILE_INFO_FROM_HANDLE "GetFileInfoFromHandle" #define DVD_DAEMON_METHOD_IS_LOCAL "IsLocal" #define DVD_DAEMON_METHOD_MAKE_DIRECTORY "MakeDirectory" #define DVD_DAEMON_METHOD_REMOVE_DIRECTORY "RemoveDirectory" #define DVD_DAEMON_METHOD_MOVE "Move" #define DVD_DAEMON_METHOD_UNLINK "Unlink" #define DVD_DAEMON_METHOD_CHECK_SAME_FS "CheckSameFs" #define DVD_DAEMON_METHOD_SET_FILE_INFO "SetFileInfo" #define DVD_DAEMON_METHOD_TRUNCATE "Truncate" #define DVD_DAEMON_METHOD_FIND_DIRECTORY "FindDirectory" #define DVD_DAEMON_METHOD_CREATE_SYMBOLIC_LINK "CreateSymbolicLink" #define DVD_DAEMON_METHOD_FORGET_CACHE "ForgetCache" #define DVD_DAEMON_METHOD_GET_VOLUME_FREE_SPACE "GetVolumeFreeSpace" #define DVD_DAEMON_METHOD_MONITOR_ADD "MonitorAdd" #define DVD_DAEMON_METHOD_MONITOR_CANCEL "MonitorCancel" #define DVD_DAEMON_METHOD_CANCEL "Cancel" /* Volume monitor methods. */ #define DVD_DAEMON_METHOD_REGISTER_VOLUME_MONITOR "RegisterVolumeMonitor" #define DVD_DAEMON_METHOD_DEREGISTER_VOLUME_MONITOR "DeregisterVolumeMonitor" #define DVD_DAEMON_METHOD_GET_VOLUMES "GetVolumes" #define DVD_DAEMON_METHOD_GET_DRIVES "GetDrives" #define DVD_DAEMON_METHOD_EMIT_PRE_UNMOUNT_VOLUME "EmitPreUnmountVolume" #define DVD_DAEMON_METHOD_FORCE_PROBE "ForceProbe" /* Volume monitor signals. */ #define DVD_DAEMON_VOLUME_MOUNTED_SIGNAL "VolumeMountedSignal" #define DVD_DAEMON_VOLUME_UNMOUNTED_SIGNAL "VolumeUnmountedSignal" #define DVD_DAEMON_VOLUME_PRE_UNMOUNT_SIGNAL "VolumePreUnmountSignal" #define DVD_DAEMON_DRIVE_CONNECTED_SIGNAL "DriveConnectedSignal" #define DVD_DAEMON_DRIVE_DISCONNECTED_SIGNAL "DriveDisconnectedSignal" /* Errors. */ #define DVD_ERROR_FAILED "org.gnome.GnomeVFS.Daemon.Error.Failed" #define DVD_ERROR_SOCKET_FAILED "org.gnome.GnomeVFS.Error.SocketFailed" #define GNOME_VFS_VOLUME_DBUS_TYPE \ DBUS_STRUCT_BEGIN_CHAR_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_BOOLEAN_AS_STRING \ DBUS_TYPE_BOOLEAN_AS_STRING \ DBUS_TYPE_BOOLEAN_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_STRUCT_END_CHAR_AS_STRING #define GNOME_VFS_DRIVE_DBUS_TYPE \ DBUS_STRUCT_BEGIN_CHAR_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_ARRAY_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_BOOLEAN_AS_STRING \ DBUS_TYPE_BOOLEAN_AS_STRING \ DBUS_TYPE_BOOLEAN_AS_STRING \ DBUS_STRUCT_END_CHAR_AS_STRING #define GNOME_VFS_FILE_INFO_DBUS_TYPE \ DBUS_STRUCT_BEGIN_CHAR_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT64_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_UINT32_AS_STRING \ DBUS_TYPE_UINT32_AS_STRING \ DBUS_TYPE_INT64_AS_STRING \ DBUS_TYPE_INT64_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_INT32_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_TYPE_STRING_AS_STRING \ DBUS_STRUCT_END_CHAR_AS_STRING /* Note: It could make sense to have DVD_TYPE_FILE_SIZE and FILE_OFFSET instead * of the 64 bits variants. */ typedef enum { DVD_TYPE_LAST = -1, DVD_TYPE_URI, DVD_TYPE_STRING, DVD_TYPE_INT32, DVD_TYPE_INT64, DVD_TYPE_UINT64, DVD_TYPE_FILE_INFO, DVD_TYPE_BOOL, DVD_TYPE_BYTE_ARRAY } DvdArgumentType; /* Main thread client connection: */ DBusConnection *_gnome_vfs_get_main_dbus_connection (void); /* daemon per-thread connections: */ DBusConnection *_gnome_vfs_daemon_get_current_connection (void); void gnome_vfs_daemon_set_current_connection (DBusConnection *conn); G_END_DECLS #endif /* GNOME_VFS_DBUS_UTILS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-parse-ls.h0000644000175000001440000000261111334251016016526 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-parse-ls.h - Routines for parsing output from the `ls' command. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: 1995 Miguel de Icaza 1995 Jakub Jelinek 1998 Pavel Machek 1999 Cleanup by Ettore Perazzoli finduid, findgid are from GNU tar. */ #ifndef GNOME_VFS_PARSE_LS_H #define GNOME_VFS_PARSE_LS_H #include #include G_BEGIN_DECLS struct stat; int gnome_vfs_parse_ls_lga (const char *p, struct stat *s, char **filename, char **linkname); G_END_DECLS #endif /* GNOME_VFS_PARSE_LS_H */ gnome-vfs-2.24.4/libgnomevfs/check-headers.pl0000755000175000001440000000777011334251016015771 00000000000000#!/usr/bin/perl -w # -*- Mode: perl; indent-tabs-mode: nil -*- use diagnostics; use strict; my $DEBUG = 0; my %public_headers; my %module_headers; my %private_headers; my $current_hash; my $current_hash_name; my $current_header; my $included_header; my $exit_code = 0; open MAKEFILE_AM, "<./Makefile.am"; while () { if (/libgnomevfsinclude_HEADERS/) { $current_hash = \%public_headers } elsif (/libgnomevfsmoduleinclude_HEADERS/) { $current_hash = \%module_headers } elsif (/noinst_HEADERS/) { $current_hash = \%private_headers } elsif (/\$\(NULL\)/ || ! /\\/) { $current_hash = 0; } if (/.*\.h[ \t]/) { chomp; $current_header = $_; $current_header =~ s/[ \t]*(.*\.h)[ \t]*.*/$1/; if ($current_hash) { $$current_hash{$current_header} = 1; } } } close MAKEFILE_AM; for my $public_header (keys %public_headers) { open HEADER, "<${public_header}"; while (
) { if (/\#include[ \t]+.*/) { chomp; $included_header = $_; $included_header =~ s/\#include[ \t]+.*/$1/; if ($private_headers{$included_header}) { print "Public header \"$public_header\" includes private header \"$included_header\"\n"; $exit_code = 1; } elsif ($module_headers{$included_header}) { print "Public header \"$public_header\" includes module API header \"$included_header\"\n"; $exit_code = 1; } elsif ($public_headers{$included_header}) { print "Public header \"$public_header\" includes public header \"$included_header\"\n" if $DEBUG; } else { print "Public header \"$public_header\" includes unknown header \"$included_header\"\n"; $exit_code = 1; } } } close HEADER; } for my $module_header (keys %module_headers) { open HEADER, "<${module_header}"; while (
) { if (/\#include[ \t]+.*/) { chomp; $included_header = $_; $included_header =~ s/\#include[ \t]+.*/$1/; if ($private_headers{$included_header}) { print "Module API header \"$module_header\" includes private header \"$included_header\"\n"; $exit_code = 1; } elsif ($module_headers{$included_header}) { print "Module API header \"$module_header\" includes public header \"$included_header\"\n" if $DEBUG; } elsif ($public_headers{$included_header}) { print "Module API header \"$module_header\" includes public header \"$included_header\"\n" if $DEBUG; } else { print "Module API header \"$module_header\" includes unknown header \"$included_header\"\n"; $exit_code = 1; } } } close HEADER; } for my $private_header (keys %private_headers) { open HEADER, "<${private_header}"; while (
) { if (/\#include[ \t]+.*/) { chomp; $included_header = $_; $included_header =~ s/\#include[ \t]+.*/$1/; if ($private_headers{$included_header}) { print "Private header \"$private_header\" includes private header \"$included_header\"\n" if $DEBUG; } elsif ($module_headers{$included_header}) { print "Private header \"$private_header\" includes module API header \"$included_header\"\n" if $DEBUG; } elsif ($public_headers{$included_header}) { print "Private header \"$private_header\" includes public header \"$included_header\"\n" if $DEBUG; } else { print "Private header \"$private_header\" includes unknown header \"$included_header\"\n"; $exit_code = 1; } } } close HEADER; } exit $exit_code; gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-file-size.h.in0000644000175000001440000000377211334251016017305 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-file-size.h - Typedefs of GnomeVFSFileSize and GnomeVFSFileOffset Note: This file is generated by configure, please edit gnome-vfs-file-size.h.in Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: George Lebl, */ #ifndef GNOME_VFS_FILE_SIZE_H #define GNOME_VFS_FILE_SIZE_H #include /* * This defines GnomeVFSFileSize and GnomeVFSFileOffset * * It also defines GNOME_VFS_SIZE_IS_ and GNOME_VFS_OFFSET_IS_ * where type is INT, UNSIGNED_INT, LONG, UNSIGNED_LONG, LONG_LONG * or UNSIGNED_LONG_LONG. Note that size is always unsigned and offset * is always signed. * * It also defines GNOME_VFS_SIZE_FORMAT_STR and GNOME_VFS_OFFSET_FORMAT_STR * which is the string representation to be used in printf style expressions. * This is without the %, so for example for long it would be "ld" */ #define GNOME_VFS_SIZE_IS_@VFS_SIZE_IS@ #define GNOME_VFS_OFFSET_IS_@VFS_OFFSET_IS@ #define GNOME_VFS_SIZE_FORMAT_STR G_GUINT64_FORMAT #define GNOME_VFS_OFFSET_FORMAT_STR G_GINT64_FORMAT G_GNUC_EXTENSION typedef @VFS_SIZE@ GnomeVFSFileSize; G_GNUC_EXTENSION typedef @VFS_OFFSET@ GnomeVFSFileOffset; #endif /* GNOME_VFS_FILE_SIZE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-info-cache.c0000644000175000001440000005362211334251016017724 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* vi: set ts=8 sts=0 sw=8 tw=80 noexpandtab: */ /* gnome-vfs-mime-info.c - GNOME xdg mime information implementation. Copyright (C) 2004 Red Hat, Inc All rights reserved. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #include #include #include #include #include "gnome-vfs-mime.h" #include "gnome-vfs-mime-info-cache.h" #include "gnome-vfs-mime-info.h" #include "gnome-vfs-mime-monitor.h" #include "gnome-vfs-monitor.h" #include "gnome-vfs-ops.h" #include "gnome-vfs-utils.h" #include "xdgmime.h" typedef struct { char *path; GHashTable *mime_info_cache_map; GHashTable *defaults_list_map; GnomeVFSMonitorHandle *cache_monitor_handle; GnomeVFSMonitorHandle *defaults_monitor_handle; time_t mime_info_cache_timestamp; time_t defaults_list_timestamp; } GnomeVFSMimeInfoCacheDir; typedef struct { GList *dirs; /* mimeinfo.cache and defaults.list */ GHashTable *global_defaults_cache; /* global results of defaults.list lookup and validation */ time_t last_stat_time; guint should_ping_mime_monitor : 1; } GnomeVFSMimeInfoCache; G_LOCK_EXTERN (gnome_vfs_mime_mutex); extern void _gnome_vfs_mime_monitor_emit_data_changed (GnomeVFSMIMEMonitor *monitor); extern void _gnome_vfs_mime_info_cache_init (void); static void gnome_vfs_mime_info_cache_dir_init (GnomeVFSMimeInfoCacheDir *dir); static void gnome_vfs_mime_info_cache_dir_init_defaults_list (GnomeVFSMimeInfoCacheDir *dir); static GnomeVFSMimeInfoCacheDir *gnome_vfs_mime_info_cache_dir_new (const char *path); static void gnome_vfs_mime_info_cache_dir_free (GnomeVFSMimeInfoCacheDir *dir); static char **gnome_vfs_mime_info_cache_get_search_path (void); static gboolean gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid (GnomeVFSMimeInfoCacheDir *dir, const char *desktop_entry); static void gnome_vfs_mime_info_cache_dir_add_desktop_entries (GnomeVFSMimeInfoCacheDir *dir, const char *mime_type, char **new_desktop_file_ids); static GnomeVFSMimeInfoCache *gnome_vfs_mime_info_cache_new (void); static void gnome_vfs_mime_info_cache_free (GnomeVFSMimeInfoCache *cache); static GnomeVFSMimeInfoCache *mime_info_cache = NULL; G_LOCK_DEFINE_STATIC (mime_info_cache); static void destroy_info_cache_value (gpointer key, GList *value, gpointer data) { gnome_vfs_list_deep_free (value); } static void destroy_info_cache_map (GHashTable *info_cache_map) { g_hash_table_foreach (info_cache_map, (GHFunc)destroy_info_cache_value, NULL); g_hash_table_destroy (info_cache_map); } static gboolean gnome_vfs_mime_info_cache_dir_out_of_date (GnomeVFSMimeInfoCacheDir *dir, const char *cache_file, time_t *timestamp) { struct stat buf; char *filename; filename = g_build_filename (dir->path, cache_file, NULL); if (g_stat (filename, &buf) < 0) { g_free (filename); return TRUE; } g_free (filename); if (buf.st_mtime != *timestamp) return TRUE; return FALSE; } /* Call with lock held */ static gboolean remove_all (gpointer key, gpointer value, gpointer user_data) { return TRUE; } static void gnome_vfs_mime_info_cache_blow_global_cache (void) { g_hash_table_foreach_remove (mime_info_cache->global_defaults_cache, remove_all, NULL); } static void gnome_vfs_mime_info_cache_dir_init (GnomeVFSMimeInfoCacheDir *dir) { GError *load_error; GKeyFile *key_file; gchar *filename, **mime_types; int i; struct stat buf; load_error = NULL; mime_types = NULL; if (dir->mime_info_cache_map != NULL && dir->cache_monitor_handle == NULL && !gnome_vfs_mime_info_cache_dir_out_of_date (dir, "mimeinfo.cache", &dir->mime_info_cache_timestamp)) return; if (dir->mime_info_cache_map != NULL) { destroy_info_cache_map (dir->mime_info_cache_map); } dir->mime_info_cache_map = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, NULL); key_file = g_key_file_new (); filename = g_build_filename (dir->path, "mimeinfo.cache", NULL); if (g_stat (filename, &buf) < 0) goto error; if (dir->mime_info_cache_timestamp > 0) mime_info_cache->should_ping_mime_monitor = TRUE; dir->mime_info_cache_timestamp = buf.st_mtime; g_key_file_load_from_file (key_file, filename, G_KEY_FILE_NONE, &load_error); g_free (filename); filename = NULL; if (load_error != NULL) goto error; mime_types = g_key_file_get_keys (key_file, "MIME Cache", NULL, &load_error); if (load_error != NULL) goto error; G_LOCK (gnome_vfs_mime_mutex); for (i = 0; mime_types[i] != NULL; i++) { gchar **desktop_file_ids; desktop_file_ids = g_key_file_get_string_list (key_file, "MIME Cache", mime_types[i], NULL, &load_error); if (load_error != NULL) { g_error_free (load_error); load_error = NULL; continue; } gnome_vfs_mime_info_cache_dir_add_desktop_entries (dir, xdg_mime_unalias_mime_type (mime_types[i]), desktop_file_ids); g_strfreev (desktop_file_ids); } G_UNLOCK (gnome_vfs_mime_mutex); g_strfreev (mime_types); g_key_file_free (key_file); return; error: if (filename) g_free (filename); g_key_file_free (key_file); if (mime_types != NULL) g_strfreev (mime_types); if (load_error) g_error_free (load_error); } static void gnome_vfs_mime_info_cache_dir_init_defaults_list (GnomeVFSMimeInfoCacheDir *dir) { GKeyFile *key_file; GError *load_error; gchar *filename, **mime_types; char **desktop_file_ids; int i; struct stat buf; load_error = NULL; mime_types = NULL; if (dir->defaults_list_map != NULL && dir->defaults_monitor_handle == NULL && !gnome_vfs_mime_info_cache_dir_out_of_date (dir, "defaults.list", &dir->defaults_list_timestamp)) return; if (dir->defaults_list_map != NULL) { g_hash_table_destroy (dir->defaults_list_map); } dir->defaults_list_map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_strfreev); key_file = g_key_file_new (); filename = g_build_filename (dir->path, "defaults.list", NULL); if (g_stat (filename, &buf) < 0) goto error; if (dir->defaults_list_timestamp > 0) mime_info_cache->should_ping_mime_monitor = TRUE; dir->defaults_list_timestamp = buf.st_mtime; g_key_file_load_from_file (key_file, filename, G_KEY_FILE_NONE, &load_error); g_free (filename); filename = NULL; if (load_error != NULL) goto error; mime_types = g_key_file_get_keys (key_file, "Default Applications", NULL, &load_error); if (load_error != NULL) goto error; G_LOCK (gnome_vfs_mime_mutex); for (i = 0; mime_types[i] != NULL; i++) { desktop_file_ids = g_key_file_get_string_list (key_file, "Default Applications", mime_types[i], NULL, &load_error); if (load_error != NULL) { g_error_free (load_error); load_error = NULL; continue; } g_hash_table_replace (dir->defaults_list_map, g_strdup (xdg_mime_unalias_mime_type (mime_types[i])), desktop_file_ids); } G_UNLOCK (gnome_vfs_mime_mutex); g_strfreev (mime_types); g_key_file_free (key_file); return; error: if (filename) g_free (filename); g_key_file_free (key_file); if (mime_types != NULL) g_strfreev (mime_types); if (load_error) g_error_free (load_error); } static gboolean emit_mime_changed (gpointer data) { _gnome_vfs_mime_monitor_emit_data_changed (gnome_vfs_mime_monitor_get ()); return FALSE; } static void gnome_vfs_mime_info_cache_dir_changed (GnomeVFSMonitorHandle *handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, GnomeVFSMimeInfoCacheDir *dir) { G_LOCK (mime_info_cache); gnome_vfs_mime_info_cache_blow_global_cache (); gnome_vfs_mime_info_cache_dir_init (dir); mime_info_cache->should_ping_mime_monitor = FALSE; G_UNLOCK (mime_info_cache); g_idle_add (emit_mime_changed, NULL); } static void gnome_vfs_mime_info_cache_dir_defaults_changed (GnomeVFSMonitorHandle *handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, GnomeVFSMimeInfoCacheDir *dir) { G_LOCK (mime_info_cache); gnome_vfs_mime_info_cache_blow_global_cache (); gnome_vfs_mime_info_cache_dir_init_defaults_list (dir); mime_info_cache->should_ping_mime_monitor = FALSE; G_UNLOCK (mime_info_cache); g_idle_add (emit_mime_changed, NULL); } static GnomeVFSMimeInfoCacheDir * gnome_vfs_mime_info_cache_dir_new (const char *path) { GnomeVFSMimeInfoCacheDir *dir; char *filename; dir = g_new0 (GnomeVFSMimeInfoCacheDir, 1); dir->path = g_strdup (path); filename = g_build_filename (dir->path, "mimeinfo.cache", NULL); gnome_vfs_monitor_add (&dir->cache_monitor_handle, filename, GNOME_VFS_MONITOR_FILE, (GnomeVFSMonitorCallback) gnome_vfs_mime_info_cache_dir_changed, dir); g_free (filename); filename = g_build_filename (dir->path, "defaults.list", NULL); gnome_vfs_monitor_add (&dir->defaults_monitor_handle, filename, GNOME_VFS_MONITOR_FILE, (GnomeVFSMonitorCallback) gnome_vfs_mime_info_cache_dir_defaults_changed, dir); g_free (filename); return dir; } static void gnome_vfs_mime_info_cache_dir_free (GnomeVFSMimeInfoCacheDir *dir) { if (dir == NULL) return; if (dir->mime_info_cache_map != NULL) { destroy_info_cache_map (dir->mime_info_cache_map); dir->mime_info_cache_map = NULL; } if (dir->defaults_list_map != NULL) { g_hash_table_destroy (dir->defaults_list_map); dir->defaults_list_map = NULL; } if (dir->defaults_monitor_handle) { gnome_vfs_monitor_cancel (dir->defaults_monitor_handle); dir->defaults_monitor_handle = NULL; } if (dir->cache_monitor_handle){ gnome_vfs_monitor_cancel (dir->cache_monitor_handle); dir->cache_monitor_handle = NULL; } g_free (dir); } static char ** gnome_vfs_mime_info_cache_get_search_path (void) { char **args = NULL; const char * const *data_dirs; const char *user_data_dir; int i, length, j; data_dirs = g_get_system_data_dirs (); for (length = 0; data_dirs[length] != NULL; length++); args = g_new (char *, length + 2); j = 0; user_data_dir = g_get_user_data_dir (); args[j++] = g_build_filename (user_data_dir, "applications", NULL); for (i = 0; i < length; i++) { args[j++] = g_build_filename (data_dirs[i], "applications", NULL); } args[j++] = NULL; return args; } static gboolean gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid (GnomeVFSMimeInfoCacheDir *dir, const char *desktop_entry) { GKeyFile *key_file; GError *load_error; int i; gboolean can_show_in; char *filename; load_error = NULL; can_show_in = TRUE; filename = g_build_filename ("applications", desktop_entry, NULL); key_file = g_key_file_new (); g_key_file_load_from_data_dirs (key_file, filename, NULL, G_KEY_FILE_NONE, &load_error); g_free (filename); if (load_error != NULL) { g_error_free (load_error); g_key_file_free (key_file); return FALSE; } if (g_key_file_has_key (key_file, DESKTOP_ENTRY_GROUP, "OnlyShowIn", NULL)) { char **only_show_in_list; only_show_in_list = g_key_file_get_string_list (key_file, DESKTOP_ENTRY_GROUP, "OnlyShowIn", NULL, &load_error); if (load_error != NULL) { g_error_free (load_error); g_strfreev (only_show_in_list); g_key_file_free (key_file); return FALSE; } can_show_in = FALSE; for (i = 0; only_show_in_list[i] != NULL; i++) { if (strcmp (only_show_in_list[i], "GNOME") == 0) { can_show_in = TRUE; break; } } g_strfreev (only_show_in_list); } if (g_key_file_has_key (key_file, DESKTOP_ENTRY_GROUP, "NotShowIn", NULL)) { char **not_show_in_list; not_show_in_list = g_key_file_get_string_list (key_file, DESKTOP_ENTRY_GROUP, "NotShowIn", NULL, &load_error); if (load_error != NULL) { g_error_free (load_error); g_strfreev (not_show_in_list); g_key_file_free (key_file); return FALSE; } for (i = 0; not_show_in_list[i] != NULL; i++) { if (strcmp (not_show_in_list[i], "GNOME") == 0) { can_show_in = FALSE; break; } } g_strfreev (not_show_in_list); } g_key_file_free (key_file); return can_show_in; } static gboolean gnome_vfs_mime_info_desktop_entry_is_valid (const char *desktop_entry) { GList *l; for (l = mime_info_cache->dirs; l != NULL; l = l->next) { GnomeVFSMimeInfoCacheDir *app_dir; app_dir = (GnomeVFSMimeInfoCacheDir *) l->data; if (gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid (app_dir, desktop_entry)) { return TRUE; } } return FALSE; } static void gnome_vfs_mime_info_cache_dir_add_desktop_entries (GnomeVFSMimeInfoCacheDir *dir, const char *mime_type, char **new_desktop_file_ids) { GList *desktop_file_ids; int i; desktop_file_ids = g_hash_table_lookup (dir->mime_info_cache_map, mime_type); for (i = 0; new_desktop_file_ids[i] != NULL; i++) { if (!g_list_find (desktop_file_ids, new_desktop_file_ids[i])) desktop_file_ids = g_list_append (desktop_file_ids, g_strdup (new_desktop_file_ids[i])); } g_hash_table_insert (dir->mime_info_cache_map, g_strdup (mime_type), desktop_file_ids); } static void gnome_vfs_mime_info_cache_init_dir_lists (void) { char **dirs; int i; mime_info_cache = gnome_vfs_mime_info_cache_new (); dirs = gnome_vfs_mime_info_cache_get_search_path (); for (i = 0; dirs[i] != NULL; i++) { GnomeVFSMimeInfoCacheDir *dir; dir = gnome_vfs_mime_info_cache_dir_new (dirs[i]); if (dir != NULL) { gnome_vfs_mime_info_cache_dir_init (dir); gnome_vfs_mime_info_cache_dir_init_defaults_list (dir); mime_info_cache->dirs = g_list_append (mime_info_cache->dirs, dir); } } g_strfreev (dirs); } static void gnome_vfs_mime_info_cache_update_dir_lists (void) { GList *tmp; tmp = mime_info_cache->dirs; while (tmp != NULL) { GnomeVFSMimeInfoCacheDir *dir; dir = (GnomeVFSMimeInfoCacheDir *) tmp->data; if (dir->cache_monitor_handle == NULL) { gnome_vfs_mime_info_cache_blow_global_cache (); gnome_vfs_mime_info_cache_dir_init (dir); } if (dir->defaults_monitor_handle == NULL) { gnome_vfs_mime_info_cache_blow_global_cache (); gnome_vfs_mime_info_cache_dir_init_defaults_list (dir); } tmp = tmp->next; } } void _gnome_vfs_mime_info_cache_init (void) { G_LOCK (mime_info_cache); if (mime_info_cache == NULL) { gnome_vfs_mime_info_cache_init_dir_lists (); } else { time_t now; time (&now); if (now >= mime_info_cache->last_stat_time + 5) { gnome_vfs_mime_info_cache_update_dir_lists (); mime_info_cache->last_stat_time = now; } } if (mime_info_cache->should_ping_mime_monitor) { g_idle_add (emit_mime_changed, NULL); mime_info_cache->should_ping_mime_monitor = FALSE; } G_UNLOCK (mime_info_cache); } static GnomeVFSMimeInfoCache * gnome_vfs_mime_info_cache_new (void) { GnomeVFSMimeInfoCache *cache; cache = g_new0 (GnomeVFSMimeInfoCache, 1); cache->global_defaults_cache = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_free); return cache; } static void gnome_vfs_mime_info_cache_free (GnomeVFSMimeInfoCache *cache) { if (cache == NULL) return; g_list_foreach (cache->dirs, (GFunc) gnome_vfs_mime_info_cache_dir_free, NULL); g_list_free (cache->dirs); g_hash_table_destroy (cache->global_defaults_cache); g_free (cache); } /** * gnome_vfs_mime_info_cache_reload: * @dir: directory path which needs reloading. * * Reload the mime information for the @dir. */ void gnome_vfs_mime_info_cache_reload (const char *dir) { /* FIXME: just reload the dir that needs reloading, * don't blow the whole cache */ if (mime_info_cache != NULL) { G_LOCK (mime_info_cache); gnome_vfs_mime_info_cache_free (mime_info_cache); mime_info_cache = NULL; G_UNLOCK (mime_info_cache); } } static GList * get_all_parent_types (const char *mime_type) { const char *umime; const char **parents; GList *l = NULL; int i; G_LOCK (gnome_vfs_mime_mutex); umime = xdg_mime_unalias_mime_type (mime_type); l = g_list_prepend (l, g_strdup (umime)); parents = xdg_mime_get_mime_parents (mime_type); for (i = 0; parents && parents[i] != NULL; i++) { l = g_list_prepend (l, g_strdup (parents[i])); } G_UNLOCK (gnome_vfs_mime_mutex); return g_list_reverse (l); } static GList * append_desktop_entry (GList *list, const char *desktop_entry) { /* Add if not already in list, and valid */ /* TODO: Should we cache here to avoid desktop file validation? */ if (!g_list_find_custom (list, desktop_entry, (GCompareFunc) strcmp) && gnome_vfs_mime_info_desktop_entry_is_valid (desktop_entry)) { list = g_list_prepend (list, g_strdup (desktop_entry)); } return list; } static gchar * get_default_desktop_entry (const char *mime_type) { gchar *desktop_entry; char **desktop_entries; GList *dir_list, *l; GList *folder_handlers; GnomeVFSMimeInfoCacheDir *dir; int i; desktop_entry = g_hash_table_lookup (mime_info_cache->global_defaults_cache, mime_type); if (desktop_entry) { return g_strdup (desktop_entry); } if (g_str_has_prefix (mime_type, "x-directory/")) { /* We special case folder handler defaults so that * we always can get a working handler for them * even though we don't control the defaults.list, * or the list of availible directory handlers. */ for (dir_list = mime_info_cache->dirs; dir_list != NULL; dir_list = dir_list->next) { dir = dir_list->data; folder_handlers = g_hash_table_lookup (dir->mime_info_cache_map, "x-directory/gnome-default-handler"); for (l = folder_handlers; l != NULL; l = l->next) { desktop_entry = l->data; if (desktop_entry != NULL && gnome_vfs_mime_info_desktop_entry_is_valid (desktop_entry)) { g_hash_table_insert (mime_info_cache->global_defaults_cache, g_strdup (mime_type), g_strdup (desktop_entry)); return g_strdup (desktop_entry); } } } } desktop_entry = NULL; for (dir_list = mime_info_cache->dirs; dir_list != NULL; dir_list = dir_list->next) { dir = dir_list->data; desktop_entries = g_hash_table_lookup (dir->defaults_list_map, mime_type); for (i = 0; desktop_entries != NULL && desktop_entries[i] != NULL; i++) { desktop_entry = desktop_entries[i]; if (desktop_entry != NULL && gnome_vfs_mime_info_desktop_entry_is_valid (desktop_entry)) { g_hash_table_insert (mime_info_cache->global_defaults_cache, g_strdup (mime_type), g_strdup (desktop_entry)); return g_strdup (desktop_entry); } } } return NULL; } /** * gnome_vfs_mime_get_all_desktop_entries: * @mime_type: a mime type. * * Returns all the desktop filenames for @mime_type. The desktop files * are listed in an order so that default applications are listed before * non-default ones, and handlers for inherited mimetypes are listed * after the base ones. * * Return value: a #GList containing the desktop filenames containing the * @mime_type. */ GList * gnome_vfs_mime_get_all_desktop_entries (const char *base_mime_type) { GList *desktop_entries, *list, *dir_list, *tmp; GList *mime_types, *m_list; GnomeVFSMimeInfoCacheDir *dir; char *mime_type; char *default_desktop_entry; _gnome_vfs_mime_info_cache_init (); G_LOCK (mime_info_cache); mime_types = get_all_parent_types (base_mime_type); desktop_entries = NULL; for (m_list = mime_types; m_list != NULL; m_list = m_list->next) { mime_type = m_list->data; default_desktop_entry = get_default_desktop_entry (mime_type); if (default_desktop_entry) { desktop_entries = append_desktop_entry (desktop_entries, default_desktop_entry); g_free (default_desktop_entry); } for (dir_list = mime_info_cache->dirs; dir_list != NULL; dir_list = dir_list->next) { dir = (GnomeVFSMimeInfoCacheDir *) dir_list->data; list = g_hash_table_lookup (dir->mime_info_cache_map, mime_type); for (tmp = list; tmp != NULL; tmp = tmp->next) { desktop_entries = append_desktop_entry (desktop_entries, tmp->data); } } } G_UNLOCK (mime_info_cache); g_list_foreach (mime_types, (GFunc)g_free, NULL); g_list_free (mime_types); desktop_entries = g_list_reverse (desktop_entries); return desktop_entries; } /** * gnome_vfs_mime_get_default_desktop_entry: * @mime_type: a mime type. * * Returns the default desktop filename for @mime_type. * * Return value: the default desktop filename for @mime_type. */ gchar * gnome_vfs_mime_get_default_desktop_entry (const char *mime_type) { char *desktop_entry; GList *desktop_files; desktop_entry = NULL; desktop_files = gnome_vfs_mime_get_all_desktop_entries (mime_type); if (desktop_files != NULL) { desktop_entry = g_strdup (desktop_files->data); } g_list_foreach (desktop_files, (GFunc)g_free, NULL); g_list_free (desktop_files); return desktop_entry; } gnome-vfs-2.24.4/libgnomevfs/Makefile.am0000644000175000001440000002260311334251016014767 00000000000000NULL = if OS_WIN32 FNMATCH_CFLAGS = -I$(top_srcdir)/imported/fnmatch FNMATCH_LIBS = ../imported/fnmatch/libfnmatch.la endif INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ $(LIBGNOMEVFS_CFLAGS) \ $(LIBGNOMEVFSDAEMON_CFLAGS) \ $(VFS_CFLAGS) \ $(FNMATCH_CFLAGS) \ -DXDG_PREFIX=_gnome_vfs_xdg \ -DDBUS_API_SUBJECT_TO_CHANGE \ -D_FILE_OFFSET_BITS=64 \ -D_BSD_SOURCE \ -D_LARGEFILE64_SOURCE \ -D_POSIX_PTHREAD_SEMANTICS \ -D_REENTRANT \ -DG_DISABLE_DEPRECATED \ -DGNOME_VFS_PREFIX=\"$(prefix)\" \ -DGNOME_VFS_BINDIR=\"$(bindir)\" \ -DGNOME_VFS_DATADIR=\"$(datadir)\" \ -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ -DGNOME_VFS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" \ -DGNOME_VFS_SYSCONFDIR=\"$(sysconfdir)\"\ -DG_LOG_DOMAIN=\"libgnomevfs\" \ $(NULL) libgnomevfs_headers_to_scan_for_enums = \ gnome-vfs-address.h \ gnome-vfs-application-registry.h \ gnome-vfs-async-ops.h \ gnome-vfs-cancellation.h \ gnome-vfs-context.h \ gnome-vfs-directory.h \ gnome-vfs-drive.h \ gnome-vfs-file-info.h \ gnome-vfs-file-size.h \ gnome-vfs-find-directory.h \ gnome-vfs-handle.h \ gnome-vfs-init.h \ gnome-vfs-job-limit.h \ gnome-vfs-mime.h \ gnome-vfs-mime-deprecated.h \ gnome-vfs-mime-handlers.h \ gnome-vfs-mime-info-cache.h \ gnome-vfs-mime-monitor.h \ gnome-vfs-mime-utils.h \ gnome-vfs-module-callback.h \ gnome-vfs-monitor.h \ gnome-vfs-ops.h \ gnome-vfs-resolve.h \ gnome-vfs-result.h \ gnome-vfs-standard-callbacks.h \ gnome-vfs-types.h \ gnome-vfs-utils.h \ gnome-vfs-volume.h \ gnome-vfs-volume-monitor.h \ gnome-vfs-xfer.h \ gnome-vfs.h \ $(NULL) libgnomevfs_headers = \ $(libgnomevfs_headers_to_scan_for_enums)\ gnome-vfs-dns-sd.h \ gnome-vfs-version.h \ gnome-vfs-uri.h \ $(NULL) export_symbols = $(LIBTOOL_EXPORT_OPTIONS) # Generate the enums source code, with glib-mkenums: # This is based on the same Makefile.am stuff in pango: libgnomevfs_built_headers = gnome-vfs-enum-types.h libgnomevfs_built_cfiles = gnome-vfs-enum-types.c # Don't build the library until we have built the header that it needs: $(OBJECTS) $(libgnomevfs_2_la_OBJECTS): $(libgnomevfs_built_headers) gnome-vfs-enum-types.h: @REBUILD@ $(libgnomevfs_headers_to_scan_for_enums) Makefile (cd $(srcdir) && glib-mkenums \ --fhead "#ifndef __LIBGNOMEVFS_ENUM_TYPES_H__\n#define __LIBGNOMEVFS_ENUM_TYPES_H__\n\n#include \n\nG_BEGIN_DECLS\n" \ --fprod "/* enumerations from \"@filename@\" */\n" \ --vhead "GType @enum_name@_get_type (void);\n#define GNOME_VFS_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ --ftail "G_END_DECLS\n\n#endif /* __LIBGNOMEVFS_ENUM_TYPES_H__ */" \ $(libgnomevfs_headers_to_scan_for_enums)) > $@ gnome-vfs-enum-types.c: @REBUILD@ $(libgnomevfs_headers_to_scan_for_enums) Makefile (cd $(srcdir) && glib-mkenums \ --fhead "#include \n" \ --fhead "#include \n" \ --fhead "#include " \ --fprod "\n/* enumerations from \"@filename@\" */" \ --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \ --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ $(libgnomevfs_headers_to_scan_for_enums)) > $@ lib_LTLIBRARIES = libgnomevfs-2.la if OS_WIN32 SOCKET_LIBS = -lws2_32 else noinst_LTLIBRARIES = libgnomevfsdaemon-2.la endif libgnomevfs_2_la_LIBADD = \ $(LIBGNOMEVFS_LIBS) \ $(FNMATCH_LIBS) \ $(SOCKET_LIBS) \ $(INTLLIBS) \ $(SELINUX_LIBS) \ $(NULL) libgnomevfs_2_la_LDFLAGS = \ -version-info $(LIBGNOMEVFS_CURRENT):$(LIBGNOMEVFS_REVISION):$(LIBGNOMEVFS_AGE) \ -no-undefined \ $(export_symbols) \ $(NULL) libgnomevfsdaemon_2_la_LIBADD = \ $(LIBGNOMEVFS_LIBS) \ $(LIBGNOMEVFSDAEMON_LIBS) \ libgnomevfs-2.la \ $(NULL) libgnomevfsincludedir = $(includedir)/gnome-vfs-2.0/libgnomevfs libgnomevfsmoduleincludedir = $(includedir)/gnome-vfs-module-2.0/libgnomevfs # mime-sniff-buffers and cancellabe-ops are used by modules noinst_HEADERS = \ gnome-vfs-async-job-map.h \ gnome-vfs-backend.h \ gnome-vfs-cancellable-ops.h \ gnome-vfs-cancellation-private.h \ gnome-vfs-cdrom.h \ gnome-vfs-configuration.h \ gnome-vfs-daemon-method.h \ gnome-vfs-dbus-utils.h \ gnome-vfs-filesystem-type.h \ gnome-vfs-handle-private.h \ gnome-vfs-hal-mounts.h \ gnome-vfs-iso9660.h \ gnome-vfs-job-queue.h \ gnome-vfs-job.h \ gnome-vfs-mime-magic.h \ gnome-vfs-mime-private.h \ gnome-vfs-mime-sniff-buffer-private.h \ gnome-vfs-mime-sniff-buffer.h \ gnome-vfs-module-callback-private.h \ gnome-vfs-monitor-private.h \ gnome-vfs-private-utils.h \ gnome-vfs-private.h \ gnome-vfs-unix-mounts.h \ gnome-vfs-volume-monitor-client.h \ gnome-vfs-volume-monitor-daemon.h \ gnome-vfs-volume-monitor-private.h \ xdgmime.h \ xdgmimecache.h \ xdgmimeglob.h \ xdgmimemagic.h \ xdgmimeint.h \ xdgmimealias.h \ xdgmimeparent.h \ xdgmimeicon.h \ $(NULL) libgnomevfsmoduleinclude_HEADERS = \ gnome-vfs-cancellable-ops.h \ gnome-vfs-inet-connection.h \ gnome-vfs-method.h \ gnome-vfs-mime-info.h \ gnome-vfs-module-callback-module-api.h \ gnome-vfs-module-shared.h \ gnome-vfs-module.h \ gnome-vfs-parse-ls.h \ gnome-vfs-ssl.h \ gnome-vfs-transform.h \ gnome-vfs-socket-buffer.h \ gnome-vfs-socket.h \ gnome-vfs-pty.h \ $(NULL) libgnomevfsinclude_HEADERS = \ gnome-vfs-ace.h \ gnome-vfs-acl.h \ gnome-vfs-application-registry.h \ gnome-vfs-address.h \ gnome-vfs-async-ops.h \ gnome-vfs-cancellation.h \ gnome-vfs-context.h \ gnome-vfs-directory.h \ gnome-vfs-dns-sd.h \ gnome-vfs-drive.h \ gnome-vfs-enum-types.h \ gnome-vfs-file-info.h \ gnome-vfs-file-size.h \ gnome-vfs-find-directory.h \ gnome-vfs-handle.h \ gnome-vfs-init.h \ gnome-vfs-job-limit.h \ gnome-vfs-mime.h \ gnome-vfs-mime-deprecated.h \ gnome-vfs-mime-handlers.h \ gnome-vfs-mime-info-cache.h \ gnome-vfs-mime-monitor.h \ gnome-vfs-mime-utils.h \ gnome-vfs-module-callback.h \ gnome-vfs-monitor.h \ gnome-vfs-ops.h \ gnome-vfs-resolve.h \ gnome-vfs-result.h \ gnome-vfs-standard-callbacks.h \ gnome-vfs-types.h \ gnome-vfs-uri.h \ gnome-vfs-utils.h \ gnome-vfs-version.h \ gnome-vfs-volume-monitor.h \ gnome-vfs-volume.h \ gnome-vfs-xfer.h \ gnome-vfs.h \ $(NULL) libgnomevfs_win32_sources = \ gnome-vfs-dllmain.c \ $(NULL) libgnomevfs_unix_sources = \ gnome-vfs-cdrom.c \ gnome-vfs-daemon-method.c \ gnome-vfs-dbus-utils.c \ gnome-vfs-dns-sd.c \ gnome-vfs-module-callback-marshall.c \ gnome-vfs-parse-ls.c \ gnome-vfs-pty.c \ gnome-vfs-volume-monitor-client.c \ gnome-vfs-volume-ops.c \ $(NULL) if OS_WIN32 libgnomevfs_platform_sources = $(libgnomevfs_win32_sources) else libgnomevfs_platform_sources = $(libgnomevfs_unix_sources) endif libgnomevfs_2_la_SOURCES = \ gnome-vfs-ace.c \ gnome-vfs-acl.c \ gnome-vfs-application-registry.c \ gnome-vfs-address.c \ gnome-vfs-async-job-map.c \ gnome-vfs-async-ops.c \ gnome-vfs-cancellable-ops.c \ gnome-vfs-cancellation.c \ gnome-vfs-configuration.c \ gnome-vfs-context.c \ gnome-vfs-directory.c \ gnome-vfs-drive.c \ gnome-vfs-file-info.c \ gnome-vfs-filesystem-type.c \ gnome-vfs-find-directory.c \ gnome-vfs-handle.c \ gnome-vfs-inet-connection.c \ gnome-vfs-init.c \ gnome-vfs-job-queue.c \ gnome-vfs-job.c \ gnome-vfs-method.c \ gnome-vfs-mime-handlers.c \ gnome-vfs-mime-info.c \ gnome-vfs-mime-info-cache.c \ gnome-vfs-mime-monitor.c \ gnome-vfs-mime-sniff-buffer.c \ gnome-vfs-mime.c \ gnome-vfs-mime-magic.c \ gnome-vfs-module-callback-module-api.c \ gnome-vfs-module-callback-private.c \ gnome-vfs-module-callback.c \ gnome-vfs-module-shared.c \ gnome-vfs-module.c \ gnome-vfs-monitor.c \ gnome-vfs-open-fd.c \ gnome-vfs-ops.c \ gnome-vfs-private-utils.c \ gnome-vfs-private.c \ gnome-vfs-resolve.c \ gnome-vfs-result.c \ gnome-vfs-socket-buffer.c \ gnome-vfs-socket.c \ gnome-vfs-ssl.c \ gnome-vfs-transform.c \ gnome-vfs-uri.c \ gnome-vfs-utils.c \ gnome-vfs-volume-monitor.c \ gnome-vfs-volume.c \ gnome-vfs-xfer.c \ xdgmimemagic.c \ xdgmime.c \ xdgmimecache.c \ xdgmimeglob.c \ xdgmimeint.c \ xdgmimealias.c \ xdgmimeparent.c \ xdgmimeicon.c \ $(libgnomevfs_built_cfiles) \ $(libgnomevfs_platform_sources) \ $(NULL) # The daemon uses all interfaces in gnome-vfs-cdrom # and uses _gnome_vfs_filesystem_volume_name, which all # only use static data. # libgnomevfsdaemon_2_la_SOURCES = \ gnome-vfs-filesystem-type.c \ gnome-vfs-cdrom.c \ gnome-vfs-hal-mounts.c \ gnome-vfs-volume-monitor-daemon.c \ gnome-vfs-volume-monitor.c \ gnome-vfs-unix-mounts.c \ $(NULL) # Platform specific includes libgnomevfsplatformincludedir = $(libdir)/gnome-vfs-2.0/include libgnomevfsplatforminclude_HEADERS = \ gnome-vfs-file-size.h # TESTS = check-headers.pl EXTRA_DIST = check-headers.pl $(libgnomevfs_win32_sources) BUILT_SOURCES = \ gnome-vfs-enum-types.h \ gnome-vfs-enum-types.c \ gnome-vfs-version.h \ $(NULL) CLEANFILES = $(BUILT_SOURCES) gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-inet-connection.c0000644000175000001440000003567411334251016020106 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-inet-connection.c - Functions for creating and destroying Internet connections. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-inet-connection.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-resolve.h" #include #include #include /* Keep above the network includes for FreeBSD. */ #include #ifndef G_OS_WIN32 #include #include #include #include #include #include #include #else #include #endif #include struct GnomeVFSInetConnection { GnomeVFSAddress *address; guint sock; struct timeval *timeout; }; /** * gnome_vfs_inet_connection_create: * @connection_return: pointer to a pointer to a #GnomeVFSInetConnection, which will * contain an allocated #GnomeVFSInetConnection object on return. * @host_name: string indicating the host to establish an internet connection with. * @host_port: port number to connect to. * @cancellation: handle allowing cancellation of the operation. * * Creates a connection at @connection_return to @host_name using * port @port. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_inet_connection_create (GnomeVFSInetConnection **connection_return, const gchar *host_name, guint host_port, GnomeVFSCancellation *cancellation) { GnomeVFSInetConnection *new; GnomeVFSResolveHandle *rh; GnomeVFSAddress *address; GnomeVFSResult res; gint sock, len, ret; struct sockaddr *saddr; g_return_val_if_fail (connection_return != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (host_name != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (host_port != 0, GNOME_VFS_ERROR_BAD_PARAMETERS); res = gnome_vfs_resolve (host_name, &rh); if (res != GNOME_VFS_OK) return res; sock = -1; while (gnome_vfs_resolve_next_address (rh, &address)) { sock = socket (gnome_vfs_address_get_family_type (address), SOCK_STREAM, 0); #ifdef G_OS_WIN32 if (sock == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); sock = -1; } #endif if (sock > -1) { saddr = gnome_vfs_address_get_sockaddr (address, host_port, &len); ret = connect (sock, saddr, len); g_free (saddr); if (ret == 0) break; _GNOME_VFS_SOCKET_CLOSE (sock); sock = -1; } gnome_vfs_address_free (address); } gnome_vfs_resolve_free (rh); if (sock < 0) return gnome_vfs_result_from_errno (); new = g_new0 (GnomeVFSInetConnection, 1); new->address = address; new->sock = sock; _gnome_vfs_socket_set_blocking (new->sock, FALSE); *connection_return = new; return GNOME_VFS_OK; } /** * gnome_vfs_inet_connection_create_from_address: * @connection_return: pointer to a pointer to a #GnomeVFSInetConnection, which will * contain an allocated #GnomeVFSInetConnection object on return. * @address: a valid #GnomeVFSAddress. * @host_port: port number to connect to. * @cancellation: handle allowing cancellation of the operation. * * Creates a connection at @connection_return to @address using * port @port. * * Return value: #GnomeVFSResult indicating the success of the operation. * * Since: 2.8 */ GnomeVFSResult gnome_vfs_inet_connection_create_from_address (GnomeVFSInetConnection **connection_return, GnomeVFSAddress *address, guint host_port, GnomeVFSCancellation *cancellation) { GnomeVFSInetConnection *new; gint sock, len, ret; struct sockaddr *saddr; sock = socket (gnome_vfs_address_get_family_type (address), SOCK_STREAM, 0); #ifdef G_OS_WIN32 if (sock == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); sock = -1; } #endif if (sock < 0) return gnome_vfs_result_from_errno (); saddr = gnome_vfs_address_get_sockaddr (address, host_port, &len); ret = connect (sock, saddr, len); g_free (saddr); if (ret < 0) { _GNOME_VFS_SOCKET_CLOSE (sock); return gnome_vfs_result_from_errno (); } new = g_new0 (GnomeVFSInetConnection, 1); new->address = gnome_vfs_address_dup (address); new->sock = sock; _gnome_vfs_socket_set_blocking (new->sock, FALSE); *connection_return = new; return GNOME_VFS_OK; } /** * gnome_vfs_inet_connection_destroy: * @connection: connection to destroy. * @cancellation: handle for cancelling the operation. * * Closes/Destroys @connection. */ void gnome_vfs_inet_connection_destroy (GnomeVFSInetConnection *connection, GnomeVFSCancellation *cancellation) { g_return_if_fail (connection != NULL); _GNOME_VFS_SOCKET_CLOSE (connection->sock); gnome_vfs_inet_connection_free (connection, cancellation); } /** * gnome_vfs_inet_connection_free: * @connection: connection to free. * @cancellation: handle for cancelling the operation. * * Frees @connection without closing the socket. */ void gnome_vfs_inet_connection_free (GnomeVFSInetConnection *connection, GnomeVFSCancellation *cancellation) { g_return_if_fail (connection != NULL); if (connection->timeout) g_free (connection->timeout); if (connection->address) gnome_vfs_address_free (connection->address); g_free (connection); } /** * gnome_vfs_inet_connection_close: * @connection: connection to close. * @cancellation: handle allowing cancellation of the operation. * * Closes @connection, freeing all used resources. * Same as gnome_vfs_inet_connection_destroy(). */ static void gnome_vfs_inet_connection_close (GnomeVFSInetConnection *connection, GnomeVFSCancellation *cancellation) { gnome_vfs_inet_connection_destroy (connection, cancellation); } /** * gnome_vfs_inet_connection_get_fd: * @connection: connection to get the file descriptor from. * * Retrieve the UNIX file descriptor corresponding to @connection. * * Return value: file descriptor. */ gint gnome_vfs_inet_connection_get_fd (GnomeVFSInetConnection *connection) { g_return_val_if_fail (connection != NULL, -1); return connection->sock; } /** * gnome_vfs_inet_connection_get_ip: * @connection: connection to get the ip from. * * Retrieve the ip address of the other side of a connected @connection. * * Return value: string version of the ip. * * Since: 2.8 */ char * gnome_vfs_inet_connection_get_ip (GnomeVFSInetConnection *connection) { return gnome_vfs_address_to_string (connection->address); } /** * gnome_vfs_inet_connection_get_address: * @connection: connection to get the address from. * * Retrieve the address of the other side of a connected @connection. * * Return Value: a #GnomeVFSAddress containing the address. * * Since 2.8 */ GnomeVFSAddress * gnome_vfs_inet_connection_get_address (GnomeVFSInetConnection *connection) { return gnome_vfs_address_dup (connection->address); } /* SocketImpl for InetConnections */ /** * gnome_vfs_inet_connection_read: * @connection: connection to read data from. * @buffer: allocated buffer of at least @bytes bytes to be read into. * @bytes: number of bytes to read from socket into @buffer. * @bytes_read: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually read from the socket on return. * @cancellation: handle allowing cancellation of the operation. * * Read @bytes bytes of data from @connection into @buffer. * * Return value: a #GnomeVFSResult indicating the success of the operation. */ static GnomeVFSResult gnome_vfs_inet_connection_read (GnomeVFSInetConnection *connection, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation) { gint read_val; fd_set read_fds; int max_fd, cancel_fd; struct timeval timeout; cancel_fd = -1; read_loop: read_val = _GNOME_VFS_SOCKET_READ (connection->sock, buffer, bytes); #ifdef G_OS_WIN32 if (read_val == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); read_val = -1; } #endif if (read_val == -1 && errno == EAGAIN) { FD_ZERO (&read_fds); FD_SET (connection->sock, &read_fds); max_fd = connection->sock; if (cancellation != NULL) { cancel_fd = gnome_vfs_cancellation_get_fd (cancellation); FD_SET (cancel_fd, &read_fds); max_fd = MAX (max_fd, cancel_fd); } /* select modifies the timeval struct so set it every loop */ if (connection->timeout != NULL) { timeout.tv_sec = connection->timeout->tv_sec; timeout.tv_usec = connection->timeout->tv_usec; } read_val = select (max_fd + 1, &read_fds, NULL, NULL, connection->timeout ? &timeout : NULL); #ifdef G_OS_WIN32 if (read_val == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); read_val = -1; } #endif if (read_val == 0) { return GNOME_VFS_ERROR_TIMEOUT; } else if (read_val != -1) { if (cancel_fd != -1 && FD_ISSET (cancel_fd, &read_fds)) { return GNOME_VFS_ERROR_CANCELLED; } if (FD_ISSET (connection->sock, &read_fds)) { goto read_loop; } } } if (read_val == -1) { *bytes_read = 0; if (gnome_vfs_cancellation_check (cancellation)) { return GNOME_VFS_ERROR_CANCELLED; } if (errno == EINTR) { goto read_loop; } else { return gnome_vfs_result_from_errno (); } } else { *bytes_read = read_val; } return *bytes_read == 0 ? GNOME_VFS_ERROR_EOF : GNOME_VFS_OK; } /** * gnome_vfs_inet_connection_write: * @connection: connection to write data to. * @buffer: data to write to the connection. * @bytes: number of bytes to write from @buffer to socket. * @bytes_written: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually written to the @connection on return. * @cancellation: handle allowing cancellation of the operation. * * Write @bytes bytes of data from @buffer to @connection. * * Return value: a #GnomeVFSResult indicating the success of the operation. */ static GnomeVFSResult gnome_vfs_inet_connection_write (GnomeVFSInetConnection *connection, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation) { gint write_val; fd_set write_fds, *read_fds, pipe_fds; int max_fd, cancel_fd; struct timeval timeout; cancel_fd = -1; read_fds = NULL; write_loop: write_val = _GNOME_VFS_SOCKET_WRITE (connection->sock, buffer, bytes); #ifdef G_OS_WIN32 if (write_val == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); write_val = -1; } #endif if (write_val == -1 && errno == EAGAIN) { FD_ZERO (&write_fds); FD_SET (connection->sock, &write_fds); max_fd = connection->sock; if (cancellation != NULL) { cancel_fd = gnome_vfs_cancellation_get_fd (cancellation); read_fds = &pipe_fds; FD_ZERO (read_fds); FD_SET (cancel_fd, read_fds); max_fd = MAX (max_fd, cancel_fd); } /* select modifies the timeval struct so set it every loop */ if (connection->timeout != NULL) { timeout.tv_sec = connection->timeout->tv_sec; timeout.tv_usec = connection->timeout->tv_usec; } write_val = select (max_fd + 1, read_fds, &write_fds, NULL, connection->timeout ? &timeout : NULL); #ifdef G_OS_WIN32 if (write_val == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); write_val = -1; } #endif if (write_val == 0) { return GNOME_VFS_ERROR_TIMEOUT; } else if (write_val != -1) { if (cancel_fd != -1 && FD_ISSET (cancel_fd, read_fds)) { return GNOME_VFS_ERROR_CANCELLED; } if (FD_ISSET (connection->sock, &write_fds)) { goto write_loop; } } } if (write_val == -1) { *bytes_written = 0; if (gnome_vfs_cancellation_check (cancellation)) { return GNOME_VFS_ERROR_CANCELLED; } if (errno == EINTR) { goto write_loop; } else { return gnome_vfs_result_from_errno (); } } else { *bytes_written = write_val; return GNOME_VFS_OK; } } /** * gnome_vfs_inet_connection_set_timeout: * @connection: connection to set the timeout of. * @timeout: timeout to set. * @cancellation: optional cancellation object. * * Set a timeout of @timeout. If @timeout is %NULL following operations * will block indefinitely). * * Note if you set @timeout to 0 (means tv_sec and tv_usec are both 0) * every following operation will return immediately. (This can be used * for polling.) * * Return value: a #GnomeVFSResult indicating the success of the operation. * * Since: 2.8 */ static GnomeVFSResult gnome_vfs_inet_connection_set_timeout (GnomeVFSInetConnection *connection, GTimeVal *timeout, GnomeVFSCancellation *cancellation) { if (timeout == NULL) { if (connection->timeout != NULL) { g_free (connection->timeout); connection->timeout = NULL; } } else { if (connection->timeout == NULL) connection->timeout = g_new0 (struct timeval, 1); connection->timeout->tv_sec = timeout->tv_sec; connection->timeout->tv_usec = timeout->tv_usec; } return GNOME_VFS_OK; } static GnomeVFSSocketImpl inet_connection_socket_impl = { (GnomeVFSSocketReadFunc)gnome_vfs_inet_connection_read, (GnomeVFSSocketWriteFunc)gnome_vfs_inet_connection_write, (GnomeVFSSocketCloseFunc)gnome_vfs_inet_connection_close, (GnomeVFSSocketSetTimeoutFunc)gnome_vfs_inet_connection_set_timeout }; /** * gnome_vfs_inet_connection_to_socket: * @connection: connection to be wrapped into a #GnomeVFSSocket. * * Wrap @connection inside a standard #GnomeVFSSocket for convenience. * * Return value: a newly created #GnomeVFSSocket around @connection. */ GnomeVFSSocket * gnome_vfs_inet_connection_to_socket (GnomeVFSInetConnection *connection) { return gnome_vfs_socket_new (&inet_connection_socket_impl, connection); } /** * gnome_vfs_inet_connection_to_socket_buffer: * @connection: connection to be wrapped into a #GnomeVFSSocketBuffer. * * Wrap @connection inside a standard #GnomeVFSSocketBuffer for convenience. * * Return value: a newly created #GnomeVFSSocketBuffer around @connection. */ GnomeVFSSocketBuffer * gnome_vfs_inet_connection_to_socket_buffer (GnomeVFSInetConnection *connection) { GnomeVFSSocket *socket; socket = gnome_vfs_inet_connection_to_socket (connection); return gnome_vfs_socket_buffer_new (socket); } gnome-vfs-2.24.4/libgnomevfs/xdgmimealias.c0000644000175000001440000000755511334251016015554 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimealias.c: Private file. Datastructure for storing the aliases. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 2004 Matthias Clasen * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "xdgmimealias.h" #include "xdgmimeint.h" #include #include #include #include #include #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif typedef struct XdgAlias XdgAlias; struct XdgAlias { char *alias; char *mime_type; }; struct XdgAliasList { struct XdgAlias *aliases; int n_aliases; }; XdgAliasList * _xdg_mime_alias_list_new (void) { XdgAliasList *list; list = malloc (sizeof (XdgAliasList)); list->aliases = NULL; list->n_aliases = 0; return list; } void _xdg_mime_alias_list_free (XdgAliasList *list) { int i; if (list->aliases) { for (i = 0; i < list->n_aliases; i++) { free (list->aliases[i].alias); free (list->aliases[i].mime_type); } free (list->aliases); } free (list); } static int alias_entry_cmp (const void *v1, const void *v2) { return strcmp (((XdgAlias *)v1)->alias, ((XdgAlias *)v2)->alias); } const char * _xdg_mime_alias_list_lookup (XdgAliasList *list, const char *alias) { XdgAlias *entry; XdgAlias key; if (list->n_aliases > 0) { key.alias = (char *)alias; key.mime_type = NULL; entry = bsearch (&key, list->aliases, list->n_aliases, sizeof (XdgAlias), alias_entry_cmp); if (entry) return entry->mime_type; } return NULL; } void _xdg_mime_alias_read_from_file (XdgAliasList *list, const char *file_name) { FILE *file; char line[255]; int alloc; file = fopen (file_name, "r"); if (file == NULL) return; /* FIXME: Not UTF-8 safe. Doesn't work if lines are greater than 255 chars. * Blah */ alloc = list->n_aliases + 16; list->aliases = realloc (list->aliases, alloc * sizeof (XdgAlias)); while (fgets (line, 255, file) != NULL) { char *sep; if (line[0] == '#') continue; sep = strchr (line, ' '); if (sep == NULL) continue; *(sep++) = '\000'; sep[strlen (sep) -1] = '\000'; if (list->n_aliases == alloc) { alloc <<= 1; list->aliases = realloc (list->aliases, alloc * sizeof (XdgAlias)); } list->aliases[list->n_aliases].alias = strdup (line); list->aliases[list->n_aliases].mime_type = strdup (sep); list->n_aliases++; } list->aliases = realloc (list->aliases, list->n_aliases * sizeof (XdgAlias)); fclose (file); if (list->n_aliases > 1) qsort (list->aliases, list->n_aliases, sizeof (XdgAlias), alias_entry_cmp); } void _xdg_mime_alias_list_dump (XdgAliasList *list) { int i; if (list->aliases) { for (i = 0; i < list->n_aliases; i++) { printf ("%s %s\n", list->aliases[i].alias, list->aliases[i].mime_type); } } } gnome-vfs-2.24.4/libgnomevfs/xdgmimecache.c0000644000175000001440000005707511334251016015530 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimealias.c: Private file. mmappable caches for mime data * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2005 Matthias Clasen * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #include #include #include #include /* for ntohl/ntohs */ #ifdef HAVE_MMAP #include #else #warning Building xdgmime without MMAP support. Binary "mime.info" cache files will not be used. #endif #include #include #include "xdgmimecache.h" #include "xdgmimeint.h" #ifndef MAX #define MAX(a,b) ((a) > (b) ? (a) : (b)) #endif #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif #ifndef _O_BINARY #define _O_BINARY 0 #endif #ifndef MAP_FAILED #define MAP_FAILED ((void *) -1) #endif #define MAJOR_VERSION 1 #define MINOR_VERSION_MIN 1 #define MINOR_VERSION_MAX 2 struct _XdgMimeCache { int ref_count; int minor; size_t size; char *buffer; }; #define GET_UINT16(cache,offset) (ntohs(*(xdg_uint16_t*)((cache) + (offset)))) #define GET_UINT32(cache,offset) (ntohl(*(xdg_uint32_t*)((cache) + (offset)))) XdgMimeCache * _xdg_mime_cache_ref (XdgMimeCache *cache) { cache->ref_count++; return cache; } void _xdg_mime_cache_unref (XdgMimeCache *cache) { cache->ref_count--; if (cache->ref_count == 0) { #ifdef HAVE_MMAP munmap (cache->buffer, cache->size); #endif free (cache); } } XdgMimeCache * _xdg_mime_cache_new_from_file (const char *file_name) { XdgMimeCache *cache = NULL; #ifdef HAVE_MMAP int fd = -1; struct stat st; char *buffer = NULL; int minor; /* Open the file and map it into memory */ fd = open (file_name, O_RDONLY|_O_BINARY, 0); if (fd < 0) return NULL; if (fstat (fd, &st) < 0 || st.st_size < 4) goto done; buffer = (char *) mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); if (buffer == MAP_FAILED) goto done; minor = GET_UINT16 (buffer, 2); /* Verify version */ if (GET_UINT16 (buffer, 0) != MAJOR_VERSION || (minor < MINOR_VERSION_MIN || minor > MINOR_VERSION_MAX)) { munmap (buffer, st.st_size); goto done; } cache = (XdgMimeCache *) malloc (sizeof (XdgMimeCache)); cache->minor = minor; cache->ref_count = 1; cache->buffer = buffer; cache->size = st.st_size; done: if (fd != -1) close (fd); #endif /* HAVE_MMAP */ return cache; } static int cache_magic_matchlet_compare_to_data (XdgMimeCache *cache, xdg_uint32_t offset, const void *data, size_t len) { xdg_uint32_t range_start = GET_UINT32 (cache->buffer, offset); xdg_uint32_t range_length = GET_UINT32 (cache->buffer, offset + 4); xdg_uint32_t data_length = GET_UINT32 (cache->buffer, offset + 12); xdg_uint32_t data_offset = GET_UINT32 (cache->buffer, offset + 16); xdg_uint32_t mask_offset = GET_UINT32 (cache->buffer, offset + 20); int i, j; for (i = range_start; i < range_start + range_length; i++) { int valid_matchlet = TRUE; if (i + data_length > len) return FALSE; if (mask_offset) { for (j = 0; j < data_length; j++) { if ((((unsigned char *)cache->buffer)[data_offset + j] & ((unsigned char *)cache->buffer)[mask_offset + j]) != ((((unsigned char *) data)[j + i]) & ((unsigned char *)cache->buffer)[mask_offset + j])) { valid_matchlet = FALSE; break; } } } else { for (j = 0; j < data_length; j++) { if (((unsigned char *)cache->buffer)[data_offset + j] != ((unsigned char *) data)[j + i]) { valid_matchlet = FALSE; break; } } } if (valid_matchlet) return TRUE; } return FALSE; } static int cache_magic_matchlet_compare (XdgMimeCache *cache, xdg_uint32_t offset, const void *data, size_t len) { xdg_uint32_t n_children = GET_UINT32 (cache->buffer, offset + 24); xdg_uint32_t child_offset = GET_UINT32 (cache->buffer, offset + 28); int i; if (cache_magic_matchlet_compare_to_data (cache, offset, data, len)) { if (n_children == 0) return TRUE; for (i = 0; i < n_children; i++) { if (cache_magic_matchlet_compare (cache, child_offset + 32 * i, data, len)) return TRUE; } } return FALSE; } static const char * cache_magic_compare_to_data (XdgMimeCache *cache, xdg_uint32_t offset, const void *data, size_t len, int *prio) { xdg_uint32_t priority = GET_UINT32 (cache->buffer, offset); xdg_uint32_t mimetype_offset = GET_UINT32 (cache->buffer, offset + 4); xdg_uint32_t n_matchlets = GET_UINT32 (cache->buffer, offset + 8); xdg_uint32_t matchlet_offset = GET_UINT32 (cache->buffer, offset + 12); int i; for (i = 0; i < n_matchlets; i++) { if (cache_magic_matchlet_compare (cache, matchlet_offset + i * 32, data, len)) { *prio = priority; return cache->buffer + mimetype_offset; } } return NULL; } static const char * cache_magic_lookup_data (XdgMimeCache *cache, const void *data, size_t len, int *prio, const char *mime_types[], int n_mime_types) { xdg_uint32_t list_offset; xdg_uint32_t n_entries; xdg_uint32_t offset; int j, n; *prio = 0; list_offset = GET_UINT32 (cache->buffer, 24); n_entries = GET_UINT32 (cache->buffer, list_offset); offset = GET_UINT32 (cache->buffer, list_offset + 8); for (j = 0; j < n_entries; j++) { const char *match; match = cache_magic_compare_to_data (cache, offset + 16 * j, data, len, prio); if (match) return match; else { xdg_uint32_t mimetype_offset; const char *non_match; mimetype_offset = GET_UINT32 (cache->buffer, offset + 16 * j + 4); non_match = cache->buffer + mimetype_offset; for (n = 0; n < n_mime_types; n++) { if (mime_types[n] && _xdg_mime_mime_type_equal (mime_types[n], non_match)) mime_types[n] = NULL; } } } return NULL; } static const char * cache_alias_lookup (const char *alias) { const char *ptr; int i, min, max, mid, cmp; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset = GET_UINT32 (cache->buffer, 4); xdg_uint32_t n_entries = GET_UINT32 (cache->buffer, list_offset); xdg_uint32_t offset; min = 0; max = n_entries - 1; while (max >= min) { mid = (min + max) / 2; offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * mid); ptr = cache->buffer + offset; cmp = strcmp (ptr, alias); if (cmp < 0) min = mid + 1; else if (cmp > 0) max = mid - 1; else { offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * mid + 4); return cache->buffer + offset; } } } return NULL; } typedef struct { const char *mime; int weight; } MimeWeight; static int cache_glob_lookup_literal (const char *file_name, const char *mime_types[], int n_mime_types, int case_sensitive_check) { const char *ptr; int i, min, max, mid, cmp; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset = GET_UINT32 (cache->buffer, 12); xdg_uint32_t n_entries = GET_UINT32 (cache->buffer, list_offset); xdg_uint32_t offset; min = 0; max = n_entries - 1; while (max >= min) { mid = (min + max) / 2; offset = GET_UINT32 (cache->buffer, list_offset + 4 + 12 * mid); ptr = cache->buffer + offset; cmp = strcmp (ptr, file_name); if (cmp < 0) min = mid + 1; else if (cmp > 0) max = mid - 1; else { int weight = GET_UINT32 (cache->buffer, list_offset + 4 + 12 * mid + 8); int case_sensitive = weight & 0x100; weight = weight & 0xff; if (case_sensitive_check || !case_sensitive) { offset = GET_UINT32 (cache->buffer, list_offset + 4 + 12 * mid + 4); mime_types[0] = (const char *)(cache->buffer + offset); return 1; } return 0; } } } return 0; } static int cache_glob_lookup_fnmatch (const char *file_name, MimeWeight mime_types[], int n_mime_types) { const char *mime_type; const char *ptr; int i, j, n; n = 0; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset = GET_UINT32 (cache->buffer, 20); xdg_uint32_t n_entries = GET_UINT32 (cache->buffer, list_offset); for (j = 0; j < n_entries && n < n_mime_types; j++) { xdg_uint32_t offset = GET_UINT32 (cache->buffer, list_offset + 4 + 12 * j); xdg_uint32_t mimetype_offset = GET_UINT32 (cache->buffer, list_offset + 4 + 12 * j + 4); int weight = GET_UINT32 (cache->buffer, list_offset + 4 + 12 * j + 8); weight = weight & 0xff; ptr = cache->buffer + offset; mime_type = cache->buffer + mimetype_offset; /* FIXME: Not UTF-8 safe */ if (fnmatch (ptr, file_name, 0) == 0) { mime_types[n].mime = mime_type; mime_types[n].weight = weight; n++; } } if (n > 0) return n; } return 0; } static int cache_glob_node_lookup_suffix (XdgMimeCache *cache, xdg_uint32_t n_entries, xdg_uint32_t offset, const char *file_name, int len, int case_sensitive_check, MimeWeight mime_types[], int n_mime_types) { xdg_unichar_t character; xdg_unichar_t match_char; xdg_uint32_t mimetype_offset; xdg_uint32_t n_children; xdg_uint32_t child_offset; int weight; int case_sensitive; int min, max, mid, n, i; character = file_name[len - 1]; assert (character != 0); min = 0; max = n_entries - 1; while (max >= min) { mid = (min + max) / 2; match_char = GET_UINT32 (cache->buffer, offset + 12 * mid); if (match_char < character) min = mid + 1; else if (match_char > character) max = mid - 1; else { len--; n = 0; n_children = GET_UINT32 (cache->buffer, offset + 12 * mid + 4); child_offset = GET_UINT32 (cache->buffer, offset + 12 * mid + 8); if (len > 0) { n = cache_glob_node_lookup_suffix (cache, n_children, child_offset, file_name, len, case_sensitive_check, mime_types, n_mime_types); } if (n == 0) { i = 0; while (n < n_mime_types && i < n_children) { match_char = GET_UINT32 (cache->buffer, child_offset + 12 * i); if (match_char != 0) break; mimetype_offset = GET_UINT32 (cache->buffer, child_offset + 12 * i + 4); weight = GET_UINT32 (cache->buffer, child_offset + 12 * i + 8); case_sensitive = weight & 0x100; weight = weight & 0xff; if (case_sensitive_check || !case_sensitive) { mime_types[n].mime = cache->buffer + mimetype_offset; mime_types[n].weight = weight; n++; } i++; } } return n; } } return 0; } static int cache_glob_lookup_suffix (const char *file_name, int len, int ignore_case, MimeWeight mime_types[], int n_mime_types) { int i, n; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset = GET_UINT32 (cache->buffer, 16); xdg_uint32_t n_entries = GET_UINT32 (cache->buffer, list_offset); xdg_uint32_t offset = GET_UINT32 (cache->buffer, list_offset + 4); n = cache_glob_node_lookup_suffix (cache, n_entries, offset, file_name, len, ignore_case, mime_types, n_mime_types); if (n > 0) return n; } return 0; } static int compare_mime_weight (const void *a, const void *b) { const MimeWeight *aa = (const MimeWeight *)a; const MimeWeight *bb = (const MimeWeight *)b; return aa->weight - bb->weight; } #define ISUPPER(c) ((c) >= 'A' && (c) <= 'Z') static char * ascii_tolower (const char *str) { char *p, *lower; lower = strdup (str); p = lower; while (*p != 0) { char c = *p; *p++ = ISUPPER (c) ? c - 'A' + 'a' : c; } return lower; } static int cache_glob_lookup_file_name (const char *file_name, const char *mime_types[], int n_mime_types) { int n; MimeWeight mimes[10]; int n_mimes = 10; int i; int len; char *lower_case; int try_lower_case; assert (file_name != NULL && n_mime_types > 0); /* First, check the literals */ lower_case = ascii_tolower (file_name); n = cache_glob_lookup_literal (lower_case, mime_types, n_mime_types, FALSE); if (n > 0) { free (lower_case); return n; } n = cache_glob_lookup_literal (file_name, mime_types, n_mime_types, TRUE); if (n > 0) { free (lower_case); return n; } len = strlen (file_name); n = cache_glob_lookup_suffix (lower_case, len, FALSE, mimes, n_mimes); if (n == 0) n = cache_glob_lookup_suffix (file_name, len, TRUE, mimes, n_mimes); free (lower_case); /* Last, try fnmatch */ if (n == 0) n = cache_glob_lookup_fnmatch (file_name, mimes, n_mimes); qsort (mimes, n, sizeof (MimeWeight), compare_mime_weight); if (n_mime_types < n) n = n_mime_types; for (i = 0; i < n; i++) mime_types[i] = mimes[i].mime; return n; } int _xdg_mime_cache_get_max_buffer_extents (void) { xdg_uint32_t offset; xdg_uint32_t max_extent; int i; max_extent = 0; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; offset = GET_UINT32 (cache->buffer, 24); max_extent = MAX (max_extent, GET_UINT32 (cache->buffer, offset + 4)); } return max_extent; } static const char * cache_get_mime_type_for_data (const void *data, size_t len, int *result_prio, const char *mime_types[], int n_mime_types) { const char *mime_type; int i, n, priority; priority = 0; mime_type = NULL; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; int prio; const char *match; match = cache_magic_lookup_data (cache, data, len, &prio, mime_types, n_mime_types); if (prio > priority) { priority = prio; mime_type = match; } } if (result_prio) *result_prio = priority; if (priority > 0) return mime_type; for (n = 0; n < n_mime_types; n++) { if (mime_types[n]) return mime_types[n]; } return XDG_MIME_TYPE_UNKNOWN; } const char * _xdg_mime_cache_get_mime_type_for_data (const void *data, size_t len, int *result_prio) { return cache_get_mime_type_for_data (data, len, result_prio, NULL, 0); } const char * _xdg_mime_cache_get_mime_type_for_file (const char *file_name, struct stat *statbuf) { const char *mime_type; const char *mime_types[10]; FILE *file; unsigned char *data; int max_extent; int bytes_read; struct stat buf; const char *base_name; int n; if (file_name == NULL) return NULL; if (! _xdg_utf8_validate (file_name)) return NULL; base_name = _xdg_get_base_name (file_name); n = cache_glob_lookup_file_name (base_name, mime_types, 10); if (n == 1) return mime_types[0]; if (!statbuf) { if (stat (file_name, &buf) != 0) return XDG_MIME_TYPE_UNKNOWN; statbuf = &buf; } if (!S_ISREG (statbuf->st_mode)) return XDG_MIME_TYPE_UNKNOWN; /* FIXME: Need to make sure that max_extent isn't totally broken. This could * be large and need getting from a stream instead of just reading it all * in. */ max_extent = _xdg_mime_cache_get_max_buffer_extents (); data = malloc (max_extent); if (data == NULL) return XDG_MIME_TYPE_UNKNOWN; file = fopen (file_name, "r"); if (file == NULL) { free (data); return XDG_MIME_TYPE_UNKNOWN; } bytes_read = fread (data, 1, max_extent, file); if (ferror (file)) { free (data); fclose (file); return XDG_MIME_TYPE_UNKNOWN; } mime_type = cache_get_mime_type_for_data (data, bytes_read, NULL, mime_types, n); free (data); fclose (file); return mime_type; } const char * _xdg_mime_cache_get_mime_type_from_file_name (const char *file_name) { const char *mime_type; if (cache_glob_lookup_file_name (file_name, &mime_type, 1)) return mime_type; else return XDG_MIME_TYPE_UNKNOWN; } int _xdg_mime_cache_get_mime_types_from_file_name (const char *file_name, const char *mime_types[], int n_mime_types) { return cache_glob_lookup_file_name (file_name, mime_types, n_mime_types); } #if 1 static int is_super_type (const char *mime) { int length; const char *type; length = strlen (mime); type = &(mime[length - 2]); if (strcmp (type, "/*") == 0) return 1; return 0; } #endif int _xdg_mime_cache_mime_type_subclass (const char *mime, const char *base) { const char *umime, *ubase; int i, j, min, max, med, cmp; umime = _xdg_mime_cache_unalias_mime_type (mime); ubase = _xdg_mime_cache_unalias_mime_type (base); if (strcmp (umime, ubase) == 0) return 1; /* We really want to handle text/ * in GtkFileFilter, so we just * turn on the supertype matching */ #if 1 /* Handle supertypes */ if (is_super_type (ubase) && xdg_mime_media_type_equal (umime, ubase)) return 1; #endif /* Handle special cases text/plain and application/octet-stream */ if (strcmp (ubase, "text/plain") == 0 && strncmp (umime, "text/", 5) == 0) return 1; if (strcmp (ubase, "application/octet-stream") == 0) return 1; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset = GET_UINT32 (cache->buffer, 8); xdg_uint32_t n_entries = GET_UINT32 (cache->buffer, list_offset); xdg_uint32_t offset, n_parents, parent_offset; min = 0; max = n_entries - 1; while (max >= min) { med = (min + max)/2; offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * med); cmp = strcmp (cache->buffer + offset, umime); if (cmp < 0) min = med + 1; else if (cmp > 0) max = med - 1; else { offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * med + 4); n_parents = GET_UINT32 (cache->buffer, offset); for (j = 0; j < n_parents; j++) { parent_offset = GET_UINT32 (cache->buffer, offset + 4 + 4 * j); if (_xdg_mime_cache_mime_type_subclass (cache->buffer + parent_offset, ubase)) return 1; } break; } } } return 0; } const char * _xdg_mime_cache_unalias_mime_type (const char *mime) { const char *lookup; lookup = cache_alias_lookup (mime); if (lookup) return lookup; return mime; } char ** _xdg_mime_cache_list_mime_parents (const char *mime) { int i, j, k, l, p; char *all_parents[128]; /* we'll stop at 128 */ char **result; mime = xdg_mime_unalias_mime_type (mime); p = 0; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset = GET_UINT32 (cache->buffer, 8); xdg_uint32_t n_entries = GET_UINT32 (cache->buffer, list_offset); for (j = 0; j < n_entries; j++) { xdg_uint32_t mimetype_offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * j); xdg_uint32_t parents_offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * j + 4); if (strcmp (cache->buffer + mimetype_offset, mime) == 0) { xdg_uint32_t parent_mime_offset; xdg_uint32_t n_parents = GET_UINT32 (cache->buffer, parents_offset); for (k = 0; k < n_parents && p < 127; k++) { parent_mime_offset = GET_UINT32 (cache->buffer, parents_offset + 4 + 4 * k); /* Don't add same parent multiple times. * This can happen for instance if the same type is listed in multiple directories */ for (l = 0; l < p; l++) { if (strcmp (all_parents[l], cache->buffer + parent_mime_offset) == 0) break; } if (l == p) all_parents[p++] = cache->buffer + parent_mime_offset; } break; } } } all_parents[p++] = NULL; result = (char **) malloc (p * sizeof (char *)); memcpy (result, all_parents, p * sizeof (char *)); return result; } static const char * cache_lookup_icon (const char *mime, int header) { const char *ptr; int i, min, max, mid, cmp; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset = GET_UINT32 (cache->buffer, header); xdg_uint32_t n_entries = GET_UINT32 (cache->buffer, list_offset); xdg_uint32_t offset; min = 0; max = n_entries - 1; while (max >= min) { mid = (min + max) / 2; offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * mid); ptr = cache->buffer + offset; cmp = strcmp (ptr, mime); if (cmp < 0) min = mid + 1; else if (cmp > 0) max = mid - 1; else { offset = GET_UINT32 (cache->buffer, list_offset + 4 + 8 * mid + 4); return cache->buffer + offset; } } } return NULL; } const char * _xdg_mime_cache_get_generic_icon (const char *mime) { return cache_lookup_icon (mime, 36); } const char * _xdg_mime_cache_get_icon (const char *mime) { return cache_lookup_icon (mime, 32); } static void dump_glob_node (XdgMimeCache *cache, xdg_uint32_t offset, int depth) { xdg_unichar_t character; xdg_uint32_t mime_offset; xdg_uint32_t n_children; xdg_uint32_t child_offset; int i; character = GET_UINT32 (cache->buffer, offset); mime_offset = GET_UINT32 (cache->buffer, offset + 4); n_children = GET_UINT32 (cache->buffer, offset + 8); child_offset = GET_UINT32 (cache->buffer, offset + 12); for (i = 0; i < depth; i++) printf (" "); printf ("%c", character); if (mime_offset) printf (" - %s", cache->buffer + mime_offset); printf ("\n"); if (child_offset) { for (i = 0; i < n_children; i++) dump_glob_node (cache, child_offset + 20 * i, depth + 1); } } void _xdg_mime_cache_glob_dump (void) { int i, j; for (i = 0; _caches[i]; i++) { XdgMimeCache *cache = _caches[i]; xdg_uint32_t list_offset; xdg_uint32_t n_entries; xdg_uint32_t offset; list_offset = GET_UINT32 (cache->buffer, 16); n_entries = GET_UINT32 (cache->buffer, list_offset); offset = GET_UINT32 (cache->buffer, list_offset + 4); for (j = 0; j < n_entries; j++) dump_glob_node (cache, offset + 20 * j, 0); } } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-enum-types.c0000644000175000001440000007247011450333352017116 00000000000000 #include #include #include /* enumerations from "gnome-vfs-directory.h" */ GType gnome_vfs_directory_visit_options_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_DIRECTORY_VISIT_DEFAULT, "GNOME_VFS_DIRECTORY_VISIT_DEFAULT", "default" }, { GNOME_VFS_DIRECTORY_VISIT_SAMEFS, "GNOME_VFS_DIRECTORY_VISIT_SAMEFS", "samefs" }, { GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK, "GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK", "loopcheck" }, { GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR, "GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR", "ignore-recurse-error" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSDirectoryVisitOptions", values); } return etype; } /* enumerations from "gnome-vfs-file-info.h" */ GType gnome_vfs_file_flags_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_FILE_FLAGS_NONE, "GNOME_VFS_FILE_FLAGS_NONE", "none" }, { GNOME_VFS_FILE_FLAGS_SYMLINK, "GNOME_VFS_FILE_FLAGS_SYMLINK", "symlink" }, { GNOME_VFS_FILE_FLAGS_LOCAL, "GNOME_VFS_FILE_FLAGS_LOCAL", "local" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSFileFlags", values); } return etype; } GType gnome_vfs_file_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_FILE_TYPE_UNKNOWN, "GNOME_VFS_FILE_TYPE_UNKNOWN", "unknown" }, { GNOME_VFS_FILE_TYPE_REGULAR, "GNOME_VFS_FILE_TYPE_REGULAR", "regular" }, { GNOME_VFS_FILE_TYPE_DIRECTORY, "GNOME_VFS_FILE_TYPE_DIRECTORY", "directory" }, { GNOME_VFS_FILE_TYPE_FIFO, "GNOME_VFS_FILE_TYPE_FIFO", "fifo" }, { GNOME_VFS_FILE_TYPE_SOCKET, "GNOME_VFS_FILE_TYPE_SOCKET", "socket" }, { GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE, "GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE", "character-device" }, { GNOME_VFS_FILE_TYPE_BLOCK_DEVICE, "GNOME_VFS_FILE_TYPE_BLOCK_DEVICE", "block-device" }, { GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK, "GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK", "symbolic-link" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSFileType", values); } return etype; } GType gnome_vfs_file_info_fields_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_FILE_INFO_FIELDS_NONE, "GNOME_VFS_FILE_INFO_FIELDS_NONE", "none" }, { GNOME_VFS_FILE_INFO_FIELDS_TYPE, "GNOME_VFS_FILE_INFO_FIELDS_TYPE", "type" }, { GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS, "GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS", "permissions" }, { GNOME_VFS_FILE_INFO_FIELDS_FLAGS, "GNOME_VFS_FILE_INFO_FIELDS_FLAGS", "flags" }, { GNOME_VFS_FILE_INFO_FIELDS_DEVICE, "GNOME_VFS_FILE_INFO_FIELDS_DEVICE", "device" }, { GNOME_VFS_FILE_INFO_FIELDS_INODE, "GNOME_VFS_FILE_INFO_FIELDS_INODE", "inode" }, { GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT, "GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT", "link-count" }, { GNOME_VFS_FILE_INFO_FIELDS_SIZE, "GNOME_VFS_FILE_INFO_FIELDS_SIZE", "size" }, { GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT, "GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT", "block-count" }, { GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE, "GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE", "io-block-size" }, { GNOME_VFS_FILE_INFO_FIELDS_ATIME, "GNOME_VFS_FILE_INFO_FIELDS_ATIME", "atime" }, { GNOME_VFS_FILE_INFO_FIELDS_MTIME, "GNOME_VFS_FILE_INFO_FIELDS_MTIME", "mtime" }, { GNOME_VFS_FILE_INFO_FIELDS_CTIME, "GNOME_VFS_FILE_INFO_FIELDS_CTIME", "ctime" }, { GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME, "GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME", "symlink-name" }, { GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE, "GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE", "mime-type" }, { GNOME_VFS_FILE_INFO_FIELDS_ACCESS, "GNOME_VFS_FILE_INFO_FIELDS_ACCESS", "access" }, { GNOME_VFS_FILE_INFO_FIELDS_IDS, "GNOME_VFS_FILE_INFO_FIELDS_IDS", "ids" }, { GNOME_VFS_FILE_INFO_FIELDS_ACL, "GNOME_VFS_FILE_INFO_FIELDS_ACL", "acl" }, { GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT, "GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT", "selinux-context" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSFileInfoFields", values); } return etype; } GType gnome_vfs_file_permissions_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_PERM_SUID, "GNOME_VFS_PERM_SUID", "suid" }, { GNOME_VFS_PERM_SGID, "GNOME_VFS_PERM_SGID", "sgid" }, { GNOME_VFS_PERM_STICKY, "GNOME_VFS_PERM_STICKY", "sticky" }, { GNOME_VFS_PERM_USER_READ, "GNOME_VFS_PERM_USER_READ", "user-read" }, { GNOME_VFS_PERM_USER_WRITE, "GNOME_VFS_PERM_USER_WRITE", "user-write" }, { GNOME_VFS_PERM_USER_EXEC, "GNOME_VFS_PERM_USER_EXEC", "user-exec" }, { GNOME_VFS_PERM_USER_ALL, "GNOME_VFS_PERM_USER_ALL", "user-all" }, { GNOME_VFS_PERM_GROUP_READ, "GNOME_VFS_PERM_GROUP_READ", "group-read" }, { GNOME_VFS_PERM_GROUP_WRITE, "GNOME_VFS_PERM_GROUP_WRITE", "group-write" }, { GNOME_VFS_PERM_GROUP_EXEC, "GNOME_VFS_PERM_GROUP_EXEC", "group-exec" }, { GNOME_VFS_PERM_GROUP_ALL, "GNOME_VFS_PERM_GROUP_ALL", "group-all" }, { GNOME_VFS_PERM_OTHER_READ, "GNOME_VFS_PERM_OTHER_READ", "other-read" }, { GNOME_VFS_PERM_OTHER_WRITE, "GNOME_VFS_PERM_OTHER_WRITE", "other-write" }, { GNOME_VFS_PERM_OTHER_EXEC, "GNOME_VFS_PERM_OTHER_EXEC", "other-exec" }, { GNOME_VFS_PERM_OTHER_ALL, "GNOME_VFS_PERM_OTHER_ALL", "other-all" }, { GNOME_VFS_PERM_ACCESS_READABLE, "GNOME_VFS_PERM_ACCESS_READABLE", "access-readable" }, { GNOME_VFS_PERM_ACCESS_WRITABLE, "GNOME_VFS_PERM_ACCESS_WRITABLE", "access-writable" }, { GNOME_VFS_PERM_ACCESS_EXECUTABLE, "GNOME_VFS_PERM_ACCESS_EXECUTABLE", "access-executable" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSFilePermissions", values); } return etype; } GType gnome_vfs_file_info_options_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_FILE_INFO_DEFAULT, "GNOME_VFS_FILE_INFO_DEFAULT", "default" }, { GNOME_VFS_FILE_INFO_GET_MIME_TYPE, "GNOME_VFS_FILE_INFO_GET_MIME_TYPE", "get-mime-type" }, { GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE, "GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE", "force-fast-mime-type" }, { GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE, "GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE", "force-slow-mime-type" }, { GNOME_VFS_FILE_INFO_FOLLOW_LINKS, "GNOME_VFS_FILE_INFO_FOLLOW_LINKS", "follow-links" }, { GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS, "GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS", "get-access-rights" }, { GNOME_VFS_FILE_INFO_NAME_ONLY, "GNOME_VFS_FILE_INFO_NAME_ONLY", "name-only" }, { GNOME_VFS_FILE_INFO_GET_ACL, "GNOME_VFS_FILE_INFO_GET_ACL", "get-acl" }, { GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT, "GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT", "get-selinux-context" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSFileInfoOptions", values); } return etype; } GType gnome_vfs_set_file_info_mask_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_SET_FILE_INFO_NONE, "GNOME_VFS_SET_FILE_INFO_NONE", "none" }, { GNOME_VFS_SET_FILE_INFO_NAME, "GNOME_VFS_SET_FILE_INFO_NAME", "name" }, { GNOME_VFS_SET_FILE_INFO_PERMISSIONS, "GNOME_VFS_SET_FILE_INFO_PERMISSIONS", "permissions" }, { GNOME_VFS_SET_FILE_INFO_OWNER, "GNOME_VFS_SET_FILE_INFO_OWNER", "owner" }, { GNOME_VFS_SET_FILE_INFO_TIME, "GNOME_VFS_SET_FILE_INFO_TIME", "time" }, { GNOME_VFS_SET_FILE_INFO_ACL, "GNOME_VFS_SET_FILE_INFO_ACL", "acl" }, { GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT, "GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT", "selinux-context" }, { GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME, "GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME", "symlink-name" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSSetFileInfoMask", values); } return etype; } /* enumerations from "gnome-vfs-find-directory.h" */ GType gnome_vfs_find_directory_kind_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_DIRECTORY_KIND_DESKTOP, "GNOME_VFS_DIRECTORY_KIND_DESKTOP", "desktop" }, { GNOME_VFS_DIRECTORY_KIND_TRASH, "GNOME_VFS_DIRECTORY_KIND_TRASH", "trash" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSFindDirectoryKind", values); } return etype; } /* enumerations from "gnome-vfs-handle.h" */ GType gnome_vfs_open_mode_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_OPEN_NONE, "GNOME_VFS_OPEN_NONE", "none" }, { GNOME_VFS_OPEN_READ, "GNOME_VFS_OPEN_READ", "read" }, { GNOME_VFS_OPEN_WRITE, "GNOME_VFS_OPEN_WRITE", "write" }, { GNOME_VFS_OPEN_RANDOM, "GNOME_VFS_OPEN_RANDOM", "random" }, { GNOME_VFS_OPEN_TRUNCATE, "GNOME_VFS_OPEN_TRUNCATE", "truncate" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSOpenMode", values); } return etype; } GType gnome_vfs_seek_position_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_SEEK_START, "GNOME_VFS_SEEK_START", "start" }, { GNOME_VFS_SEEK_CURRENT, "GNOME_VFS_SEEK_CURRENT", "current" }, { GNOME_VFS_SEEK_END, "GNOME_VFS_SEEK_END", "end" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSSeekPosition", values); } return etype; } /* enumerations from "gnome-vfs-mime-deprecated.h" */ GType gnome_vfs_mime_action_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_MIME_ACTION_TYPE_NONE, "GNOME_VFS_MIME_ACTION_TYPE_NONE", "none" }, { GNOME_VFS_MIME_ACTION_TYPE_APPLICATION, "GNOME_VFS_MIME_ACTION_TYPE_APPLICATION", "application" }, { GNOME_VFS_MIME_ACTION_TYPE_COMPONENT, "GNOME_VFS_MIME_ACTION_TYPE_COMPONENT", "component" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSMimeActionType", values); } return etype; } /* enumerations from "gnome-vfs-mime-handlers.h" */ GType gnome_vfs_mime_application_argument_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS, "GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS", "uris" }, { GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS, "GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS", "paths" }, { GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES, "GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES", "uris-for-non-files" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSMimeApplicationArgumentType", values); } return etype; } /* enumerations from "gnome-vfs-mime-utils.h" */ GType gnome_vfs_mime_equivalence_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_MIME_UNRELATED, "GNOME_VFS_MIME_UNRELATED", "unrelated" }, { GNOME_VFS_MIME_IDENTICAL, "GNOME_VFS_MIME_IDENTICAL", "identical" }, { GNOME_VFS_MIME_PARENT, "GNOME_VFS_MIME_PARENT", "parent" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSMimeEquivalence", values); } return etype; } /* enumerations from "gnome-vfs-monitor.h" */ GType gnome_vfs_monitor_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_MONITOR_FILE, "GNOME_VFS_MONITOR_FILE", "file" }, { GNOME_VFS_MONITOR_DIRECTORY, "GNOME_VFS_MONITOR_DIRECTORY", "directory" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSMonitorType", values); } return etype; } GType gnome_vfs_monitor_event_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_MONITOR_EVENT_CHANGED, "GNOME_VFS_MONITOR_EVENT_CHANGED", "changed" }, { GNOME_VFS_MONITOR_EVENT_DELETED, "GNOME_VFS_MONITOR_EVENT_DELETED", "deleted" }, { GNOME_VFS_MONITOR_EVENT_STARTEXECUTING, "GNOME_VFS_MONITOR_EVENT_STARTEXECUTING", "startexecuting" }, { GNOME_VFS_MONITOR_EVENT_STOPEXECUTING, "GNOME_VFS_MONITOR_EVENT_STOPEXECUTING", "stopexecuting" }, { GNOME_VFS_MONITOR_EVENT_CREATED, "GNOME_VFS_MONITOR_EVENT_CREATED", "created" }, { GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED, "GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED", "metadata-changed" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSMonitorEventType", values); } return etype; } /* enumerations from "gnome-vfs-result.h" */ GType gnome_vfs_result_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_OK, "GNOME_VFS_OK", "ok" }, { GNOME_VFS_ERROR_NOT_FOUND, "GNOME_VFS_ERROR_NOT_FOUND", "error-not-found" }, { GNOME_VFS_ERROR_GENERIC, "GNOME_VFS_ERROR_GENERIC", "error-generic" }, { GNOME_VFS_ERROR_INTERNAL, "GNOME_VFS_ERROR_INTERNAL", "error-internal" }, { GNOME_VFS_ERROR_BAD_PARAMETERS, "GNOME_VFS_ERROR_BAD_PARAMETERS", "error-bad-parameters" }, { GNOME_VFS_ERROR_NOT_SUPPORTED, "GNOME_VFS_ERROR_NOT_SUPPORTED", "error-not-supported" }, { GNOME_VFS_ERROR_IO, "GNOME_VFS_ERROR_IO", "error-io" }, { GNOME_VFS_ERROR_CORRUPTED_DATA, "GNOME_VFS_ERROR_CORRUPTED_DATA", "error-corrupted-data" }, { GNOME_VFS_ERROR_WRONG_FORMAT, "GNOME_VFS_ERROR_WRONG_FORMAT", "error-wrong-format" }, { GNOME_VFS_ERROR_BAD_FILE, "GNOME_VFS_ERROR_BAD_FILE", "error-bad-file" }, { GNOME_VFS_ERROR_TOO_BIG, "GNOME_VFS_ERROR_TOO_BIG", "error-too-big" }, { GNOME_VFS_ERROR_NO_SPACE, "GNOME_VFS_ERROR_NO_SPACE", "error-no-space" }, { GNOME_VFS_ERROR_READ_ONLY, "GNOME_VFS_ERROR_READ_ONLY", "error-read-only" }, { GNOME_VFS_ERROR_INVALID_URI, "GNOME_VFS_ERROR_INVALID_URI", "error-invalid-uri" }, { GNOME_VFS_ERROR_NOT_OPEN, "GNOME_VFS_ERROR_NOT_OPEN", "error-not-open" }, { GNOME_VFS_ERROR_INVALID_OPEN_MODE, "GNOME_VFS_ERROR_INVALID_OPEN_MODE", "error-invalid-open-mode" }, { GNOME_VFS_ERROR_ACCESS_DENIED, "GNOME_VFS_ERROR_ACCESS_DENIED", "error-access-denied" }, { GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES, "GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES", "error-too-many-open-files" }, { GNOME_VFS_ERROR_EOF, "GNOME_VFS_ERROR_EOF", "error-eof" }, { GNOME_VFS_ERROR_NOT_A_DIRECTORY, "GNOME_VFS_ERROR_NOT_A_DIRECTORY", "error-not-a-directory" }, { GNOME_VFS_ERROR_IN_PROGRESS, "GNOME_VFS_ERROR_IN_PROGRESS", "error-in-progress" }, { GNOME_VFS_ERROR_INTERRUPTED, "GNOME_VFS_ERROR_INTERRUPTED", "error-interrupted" }, { GNOME_VFS_ERROR_FILE_EXISTS, "GNOME_VFS_ERROR_FILE_EXISTS", "error-file-exists" }, { GNOME_VFS_ERROR_LOOP, "GNOME_VFS_ERROR_LOOP", "error-loop" }, { GNOME_VFS_ERROR_NOT_PERMITTED, "GNOME_VFS_ERROR_NOT_PERMITTED", "error-not-permitted" }, { GNOME_VFS_ERROR_IS_DIRECTORY, "GNOME_VFS_ERROR_IS_DIRECTORY", "error-is-directory" }, { GNOME_VFS_ERROR_NO_MEMORY, "GNOME_VFS_ERROR_NO_MEMORY", "error-no-memory" }, { GNOME_VFS_ERROR_HOST_NOT_FOUND, "GNOME_VFS_ERROR_HOST_NOT_FOUND", "error-host-not-found" }, { GNOME_VFS_ERROR_INVALID_HOST_NAME, "GNOME_VFS_ERROR_INVALID_HOST_NAME", "error-invalid-host-name" }, { GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS, "GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS", "error-host-has-no-address" }, { GNOME_VFS_ERROR_LOGIN_FAILED, "GNOME_VFS_ERROR_LOGIN_FAILED", "error-login-failed" }, { GNOME_VFS_ERROR_CANCELLED, "GNOME_VFS_ERROR_CANCELLED", "error-cancelled" }, { GNOME_VFS_ERROR_DIRECTORY_BUSY, "GNOME_VFS_ERROR_DIRECTORY_BUSY", "error-directory-busy" }, { GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY, "GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY", "error-directory-not-empty" }, { GNOME_VFS_ERROR_TOO_MANY_LINKS, "GNOME_VFS_ERROR_TOO_MANY_LINKS", "error-too-many-links" }, { GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM, "GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM", "error-read-only-file-system" }, { GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM, "GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM", "error-not-same-file-system" }, { GNOME_VFS_ERROR_NAME_TOO_LONG, "GNOME_VFS_ERROR_NAME_TOO_LONG", "error-name-too-long" }, { GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE, "GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE", "error-service-not-available" }, { GNOME_VFS_ERROR_SERVICE_OBSOLETE, "GNOME_VFS_ERROR_SERVICE_OBSOLETE", "error-service-obsolete" }, { GNOME_VFS_ERROR_PROTOCOL_ERROR, "GNOME_VFS_ERROR_PROTOCOL_ERROR", "error-protocol-error" }, { GNOME_VFS_ERROR_NO_MASTER_BROWSER, "GNOME_VFS_ERROR_NO_MASTER_BROWSER", "error-no-master-browser" }, { GNOME_VFS_ERROR_NO_DEFAULT, "GNOME_VFS_ERROR_NO_DEFAULT", "error-no-default" }, { GNOME_VFS_ERROR_NO_HANDLER, "GNOME_VFS_ERROR_NO_HANDLER", "error-no-handler" }, { GNOME_VFS_ERROR_PARSE, "GNOME_VFS_ERROR_PARSE", "error-parse" }, { GNOME_VFS_ERROR_LAUNCH, "GNOME_VFS_ERROR_LAUNCH", "error-launch" }, { GNOME_VFS_ERROR_TIMEOUT, "GNOME_VFS_ERROR_TIMEOUT", "error-timeout" }, { GNOME_VFS_ERROR_NAMESERVER, "GNOME_VFS_ERROR_NAMESERVER", "error-nameserver" }, { GNOME_VFS_ERROR_LOCKED, "GNOME_VFS_ERROR_LOCKED", "error-locked" }, { GNOME_VFS_ERROR_DEPRECATED_FUNCTION, "GNOME_VFS_ERROR_DEPRECATED_FUNCTION", "error-deprecated-function" }, { GNOME_VFS_ERROR_INVALID_FILENAME, "GNOME_VFS_ERROR_INVALID_FILENAME", "error-invalid-filename" }, { GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK, "GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK", "error-not-a-symbolic-link" }, { GNOME_VFS_NUM_ERRORS, "GNOME_VFS_NUM_ERRORS", "num-errors" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSResult", values); } return etype; } /* enumerations from "gnome-vfs-standard-callbacks.h" */ GType gnome_vfs_module_callback_full_authentication_flags_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED, "GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED", "previous-attempt-failed" }, { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD, "GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD", "need-password" }, { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME, "GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME", "need-username" }, { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN, "GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN", "need-domain" }, { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED, "GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED", "saving-supported" }, { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED, "GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED", "anon-supported" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSModuleCallbackFullAuthenticationFlags", values); } return etype; } GType gnome_vfs_module_callback_full_authentication_out_flags_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED, "GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED", "selected" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSModuleCallbackFullAuthenticationOutFlags", values); } return etype; } GType gnome_vfs_module_callback_authentication_auth_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { AuthTypeBasic, "AuthTypeBasic", "basic" }, { AuthTypeDigest, "AuthTypeDigest", "digest" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSModuleCallbackAuthenticationAuthType", values); } return etype; } /* enumerations from "gnome-vfs-utils.h" */ GType gnome_vfs_make_uri_dirs_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_MAKE_URI_DIR_NONE, "GNOME_VFS_MAKE_URI_DIR_NONE", "none" }, { GNOME_VFS_MAKE_URI_DIR_HOMEDIR, "GNOME_VFS_MAKE_URI_DIR_HOMEDIR", "homedir" }, { GNOME_VFS_MAKE_URI_DIR_CURRENT, "GNOME_VFS_MAKE_URI_DIR_CURRENT", "current" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSMakeURIDirs", values); } return etype; } /* enumerations from "gnome-vfs-volume.h" */ GType gnome_vfs_device_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_DEVICE_TYPE_UNKNOWN, "GNOME_VFS_DEVICE_TYPE_UNKNOWN", "unknown" }, { GNOME_VFS_DEVICE_TYPE_AUDIO_CD, "GNOME_VFS_DEVICE_TYPE_AUDIO_CD", "audio-cd" }, { GNOME_VFS_DEVICE_TYPE_VIDEO_DVD, "GNOME_VFS_DEVICE_TYPE_VIDEO_DVD", "video-dvd" }, { GNOME_VFS_DEVICE_TYPE_HARDDRIVE, "GNOME_VFS_DEVICE_TYPE_HARDDRIVE", "harddrive" }, { GNOME_VFS_DEVICE_TYPE_CDROM, "GNOME_VFS_DEVICE_TYPE_CDROM", "cdrom" }, { GNOME_VFS_DEVICE_TYPE_FLOPPY, "GNOME_VFS_DEVICE_TYPE_FLOPPY", "floppy" }, { GNOME_VFS_DEVICE_TYPE_ZIP, "GNOME_VFS_DEVICE_TYPE_ZIP", "zip" }, { GNOME_VFS_DEVICE_TYPE_JAZ, "GNOME_VFS_DEVICE_TYPE_JAZ", "jaz" }, { GNOME_VFS_DEVICE_TYPE_NFS, "GNOME_VFS_DEVICE_TYPE_NFS", "nfs" }, { GNOME_VFS_DEVICE_TYPE_AUTOFS, "GNOME_VFS_DEVICE_TYPE_AUTOFS", "autofs" }, { GNOME_VFS_DEVICE_TYPE_CAMERA, "GNOME_VFS_DEVICE_TYPE_CAMERA", "camera" }, { GNOME_VFS_DEVICE_TYPE_MEMORY_STICK, "GNOME_VFS_DEVICE_TYPE_MEMORY_STICK", "memory-stick" }, { GNOME_VFS_DEVICE_TYPE_SMB, "GNOME_VFS_DEVICE_TYPE_SMB", "smb" }, { GNOME_VFS_DEVICE_TYPE_APPLE, "GNOME_VFS_DEVICE_TYPE_APPLE", "apple" }, { GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER, "GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER", "music-player" }, { GNOME_VFS_DEVICE_TYPE_WINDOWS, "GNOME_VFS_DEVICE_TYPE_WINDOWS", "windows" }, { GNOME_VFS_DEVICE_TYPE_LOOPBACK, "GNOME_VFS_DEVICE_TYPE_LOOPBACK", "loopback" }, { GNOME_VFS_DEVICE_TYPE_NETWORK, "GNOME_VFS_DEVICE_TYPE_NETWORK", "network" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSDeviceType", values); } return etype; } GType gnome_vfs_volume_type_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_VOLUME_TYPE_MOUNTPOINT, "GNOME_VFS_VOLUME_TYPE_MOUNTPOINT", "mountpoint" }, { GNOME_VFS_VOLUME_TYPE_VFS_MOUNT, "GNOME_VFS_VOLUME_TYPE_VFS_MOUNT", "vfs-mount" }, { GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER, "GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER", "connected-server" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSVolumeType", values); } return etype; } /* enumerations from "gnome-vfs-xfer.h" */ GType gnome_vfs_xfer_options_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_XFER_DEFAULT, "GNOME_VFS_XFER_DEFAULT", "default" }, { GNOME_VFS_XFER_UNUSED_1, "GNOME_VFS_XFER_UNUSED_1", "unused-1" }, { GNOME_VFS_XFER_FOLLOW_LINKS, "GNOME_VFS_XFER_FOLLOW_LINKS", "follow-links" }, { GNOME_VFS_XFER_UNUSED_2, "GNOME_VFS_XFER_UNUSED_2", "unused-2" }, { GNOME_VFS_XFER_RECURSIVE, "GNOME_VFS_XFER_RECURSIVE", "recursive" }, { GNOME_VFS_XFER_SAMEFS, "GNOME_VFS_XFER_SAMEFS", "samefs" }, { GNOME_VFS_XFER_DELETE_ITEMS, "GNOME_VFS_XFER_DELETE_ITEMS", "delete-items" }, { GNOME_VFS_XFER_EMPTY_DIRECTORIES, "GNOME_VFS_XFER_EMPTY_DIRECTORIES", "empty-directories" }, { GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY, "GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY", "new-unique-directory" }, { GNOME_VFS_XFER_REMOVESOURCE, "GNOME_VFS_XFER_REMOVESOURCE", "removesource" }, { GNOME_VFS_XFER_USE_UNIQUE_NAMES, "GNOME_VFS_XFER_USE_UNIQUE_NAMES", "use-unique-names" }, { GNOME_VFS_XFER_LINK_ITEMS, "GNOME_VFS_XFER_LINK_ITEMS", "link-items" }, { GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE, "GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE", "follow-links-recursive" }, { GNOME_VFS_XFER_TARGET_DEFAULT_PERMS, "GNOME_VFS_XFER_TARGET_DEFAULT_PERMS", "target-default-perms" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSXferOptions", values); } return etype; } GType gnome_vfs_xfer_progress_status_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_XFER_PROGRESS_STATUS_OK, "GNOME_VFS_XFER_PROGRESS_STATUS_OK", "ok" }, { GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR, "GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR", "vfserror" }, { GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE, "GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE", "overwrite" }, { GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE, "GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE", "duplicate" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSXferProgressStatus", values); } return etype; } GType gnome_vfs_xfer_overwrite_mode_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_XFER_OVERWRITE_MODE_ABORT, "GNOME_VFS_XFER_OVERWRITE_MODE_ABORT", "abort" }, { GNOME_VFS_XFER_OVERWRITE_MODE_QUERY, "GNOME_VFS_XFER_OVERWRITE_MODE_QUERY", "query" }, { GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE, "GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE", "replace" }, { GNOME_VFS_XFER_OVERWRITE_MODE_SKIP, "GNOME_VFS_XFER_OVERWRITE_MODE_SKIP", "skip" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSXferOverwriteMode", values); } return etype; } GType gnome_vfs_xfer_overwrite_action_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT, "GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT", "abort" }, { GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE, "GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE", "replace" }, { GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL, "GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL", "replace-all" }, { GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP, "GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP", "skip" }, { GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL, "GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL", "skip-all" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSXferOverwriteAction", values); } return etype; } GType gnome_vfs_xfer_error_mode_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_XFER_ERROR_MODE_ABORT, "GNOME_VFS_XFER_ERROR_MODE_ABORT", "abort" }, { GNOME_VFS_XFER_ERROR_MODE_QUERY, "GNOME_VFS_XFER_ERROR_MODE_QUERY", "query" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSXferErrorMode", values); } return etype; } GType gnome_vfs_xfer_error_action_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_XFER_ERROR_ACTION_ABORT, "GNOME_VFS_XFER_ERROR_ACTION_ABORT", "abort" }, { GNOME_VFS_XFER_ERROR_ACTION_RETRY, "GNOME_VFS_XFER_ERROR_ACTION_RETRY", "retry" }, { GNOME_VFS_XFER_ERROR_ACTION_SKIP, "GNOME_VFS_XFER_ERROR_ACTION_SKIP", "skip" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSXferErrorAction", values); } return etype; } GType gnome_vfs_xfer_phase_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_XFER_PHASE_INITIAL, "GNOME_VFS_XFER_PHASE_INITIAL", "phase-initial" }, { GNOME_VFS_XFER_CHECKING_DESTINATION, "GNOME_VFS_XFER_CHECKING_DESTINATION", "checking-destination" }, { GNOME_VFS_XFER_PHASE_COLLECTING, "GNOME_VFS_XFER_PHASE_COLLECTING", "phase-collecting" }, { GNOME_VFS_XFER_PHASE_READYTOGO, "GNOME_VFS_XFER_PHASE_READYTOGO", "phase-readytogo" }, { GNOME_VFS_XFER_PHASE_OPENSOURCE, "GNOME_VFS_XFER_PHASE_OPENSOURCE", "phase-opensource" }, { GNOME_VFS_XFER_PHASE_OPENTARGET, "GNOME_VFS_XFER_PHASE_OPENTARGET", "phase-opentarget" }, { GNOME_VFS_XFER_PHASE_COPYING, "GNOME_VFS_XFER_PHASE_COPYING", "phase-copying" }, { GNOME_VFS_XFER_PHASE_MOVING, "GNOME_VFS_XFER_PHASE_MOVING", "phase-moving" }, { GNOME_VFS_XFER_PHASE_READSOURCE, "GNOME_VFS_XFER_PHASE_READSOURCE", "phase-readsource" }, { GNOME_VFS_XFER_PHASE_WRITETARGET, "GNOME_VFS_XFER_PHASE_WRITETARGET", "phase-writetarget" }, { GNOME_VFS_XFER_PHASE_CLOSESOURCE, "GNOME_VFS_XFER_PHASE_CLOSESOURCE", "phase-closesource" }, { GNOME_VFS_XFER_PHASE_CLOSETARGET, "GNOME_VFS_XFER_PHASE_CLOSETARGET", "phase-closetarget" }, { GNOME_VFS_XFER_PHASE_DELETESOURCE, "GNOME_VFS_XFER_PHASE_DELETESOURCE", "phase-deletesource" }, { GNOME_VFS_XFER_PHASE_SETATTRIBUTES, "GNOME_VFS_XFER_PHASE_SETATTRIBUTES", "phase-setattributes" }, { GNOME_VFS_XFER_PHASE_FILECOMPLETED, "GNOME_VFS_XFER_PHASE_FILECOMPLETED", "phase-filecompleted" }, { GNOME_VFS_XFER_PHASE_CLEANUP, "GNOME_VFS_XFER_PHASE_CLEANUP", "phase-cleanup" }, { GNOME_VFS_XFER_PHASE_COMPLETED, "GNOME_VFS_XFER_PHASE_COMPLETED", "phase-completed" }, { GNOME_VFS_XFER_NUM_PHASES, "GNOME_VFS_XFER_NUM_PHASES", "num-phases" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSXferPhase", values); } return etype; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-open-fd.c0000644000175000001440000002361711334251016016334 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-open-fd.c - convert a file descriptor to a handle Copyright (C) 2002 Giovanni Corriga The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Giovanni Corriga */ #include #include #include #include #include #include #include "gnome-vfs-uri.h" #include "gnome-vfs-method.h" #include "gnome-vfs-handle.h" #include "gnome-vfs-module-shared.h" #include "gnome-vfs-mime.h" #include "gnome-vfs-handle-private.h" #include "gnome-vfs-utils.h" #ifdef G_OS_WIN32 #include #define ftruncate(fd,length) ((length < G_MAXLONG) ? _chsize (fd, length) : (errno = EINVAL, -1)) #endif static GnomeVFSURI* create_anonymous_uri (GnomeVFSMethod* method) { GnomeVFSToplevelURI* tl_uri; GnomeVFSURI* uri; tl_uri = g_new0 (GnomeVFSToplevelURI, 1); uri = (GnomeVFSURI *) tl_uri; uri->ref_count = 1; uri->method = method; return uri; } typedef struct { GnomeVFSURI *uri; gint fd; } FileHandle; static FileHandle * file_handle_new (GnomeVFSURI *uri, gint fd) { FileHandle *result; result = g_new (FileHandle, 1); result->uri = gnome_vfs_uri_ref (uri); result->fd = fd; return result; } static void file_handle_destroy (FileHandle *handle) { gnome_vfs_uri_unref (handle->uri); g_free (handle); } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *file_handle; gint close_retval; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; do { close_retval = close (file_handle->fd); } while (close_retval != 0 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); /* FIXME bugzilla.eazel.com 1163: Should do this even after a failure? */ file_handle_destroy (file_handle); if (close_retval != 0) { return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *file_handle; gint read_val; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; do { read_val = read (file_handle->fd, buffer, num_bytes); } while (read_val == -1 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); if (read_val == -1) { *bytes_read = 0; return gnome_vfs_result_from_errno (); } else { *bytes_read = read_val; /* Getting 0 from read() means EOF! */ if (read_val == 0) { return GNOME_VFS_ERROR_EOF; } } return GNOME_VFS_OK; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { FileHandle *file_handle; gint write_val; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; do { write_val = write (file_handle->fd, buffer, num_bytes); } while (write_val == -1 && errno == EINTR && ! gnome_vfs_context_check_cancellation (context)); if (write_val == -1) { *bytes_written = 0; return gnome_vfs_result_from_errno (); } else { *bytes_written = write_val; return GNOME_VFS_OK; } } static gint seek_position_to_unix (GnomeVFSSeekPosition position) { switch (position) { case GNOME_VFS_SEEK_START: return SEEK_SET; case GNOME_VFS_SEEK_CURRENT: return SEEK_CUR; case GNOME_VFS_SEEK_END: return SEEK_END; default: return SEEK_SET; /* bogus */ } } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *file_handle; gint lseek_whence; file_handle = (FileHandle *) method_handle; lseek_whence = seek_position_to_unix (whence); if (lseek (file_handle->fd, offset, lseek_whence) == -1) { if (errno == ESPIPE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } else { return gnome_vfs_result_from_errno (); } } return GNOME_VFS_OK; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *file_handle; off_t offset; file_handle = (FileHandle *) method_handle; offset = lseek (file_handle->fd, 0, SEEK_CUR); if (offset == -1) { if (errno == ESPIPE) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } else { return gnome_vfs_result_from_errno (); } } *offset_return = offset; return GNOME_VFS_OK; } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { FileHandle *file_handle; g_return_val_if_fail (method_handle != NULL, GNOME_VFS_ERROR_INTERNAL); file_handle = (FileHandle *) method_handle; if (ftruncate (file_handle->fd, where) == 0) { return GNOME_VFS_OK; } else { switch (errno) { case EBADF: case EROFS: return GNOME_VFS_ERROR_READ_ONLY; case EINVAL: return GNOME_VFS_ERROR_NOT_SUPPORTED; default: return GNOME_VFS_ERROR_GENERIC; } } } static GnomeVFSResult get_stat_info_from_handle (GnomeVFSFileInfo *file_info, FileHandle *handle, GnomeVFSFileInfoOptions options, struct stat *statptr) { struct stat statbuf; if (statptr == NULL) { statptr = &statbuf; } if (fstat (handle->fd, statptr) != 0) { return gnome_vfs_result_from_errno (); } gnome_vfs_stat_to_file_info (file_info, statptr); GNOME_VFS_FILE_INFO_SET_LOCAL (file_info, TRUE); return GNOME_VFS_OK; } /* MIME detection code. */ static void get_mime_type (GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options, struct stat *stat_buffer) { const char *mime_type; mime_type = NULL; if ((options & GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == 0 && (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK)) { /* we are a symlink and aren't asked to follow - * return the type for a symlink */ mime_type = "x-special/symlink"; } else { mime_type = gnome_vfs_get_file_mime_type (NULL, stat_buffer, (options & GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE) != 0); } g_assert (mime_type); info->mime_type = g_strdup (mime_type); info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *file_handle; struct stat statbuf; GnomeVFSResult result; file_handle = (FileHandle *) method_handle; file_info->valid_fields = GNOME_VFS_FILE_INFO_FIELDS_NONE; result = get_stat_info_from_handle (file_info, file_handle, options, &statbuf); if (result != GNOME_VFS_OK) { return result; } if (options & GNOME_VFS_FILE_INFO_GET_MIME_TYPE) { get_mime_type (file_info, options, &statbuf); } return GNOME_VFS_OK; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { return TRUE; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), NULL, /* do_open */ NULL, /* do_create */ do_close, do_read, do_write, do_seek, do_tell, do_truncate_handle, NULL, /* do_open_directory */ NULL, /* do_close_directory */ NULL, /* do_read_directory */ NULL, /* do_get_file_info */ do_get_file_info_from_handle, do_is_local, NULL, /* do_make_directory */ NULL, /* do_remove_directory */ NULL, /* do_move */ NULL, /* do_unlink */ NULL, /* do_check_same_fs */ NULL, /* do_set_file_info */ NULL, /* do_truncate */ NULL, /* do_find_directory */ NULL, /* do_create_symbolic_link */ NULL, /* do_monitor_add */ NULL, /* do_monitor_cancel */ }; static GnomeVFSOpenMode get_open_mode (gint filedes) { #ifndef G_OS_WIN32 int flags; flags = fcntl(filedes, F_GETFL); if (flags & O_RDONLY) { return GNOME_VFS_OPEN_READ; } else if (flags & O_WRONLY) { return GNOME_VFS_OPEN_WRITE; } else if (flags & O_RDWR) { return (GNOME_VFS_OPEN_READ | GNOME_VFS_OPEN_WRITE); } #endif return GNOME_VFS_OPEN_READ; /* bogus */ } /** * gnome_vfs_open_fd: * @handle: A pointer to a pointer to a GnomeVFSHandle object * @filedes: a UNIX file descriptor * * Converts an open unix file descript into a GnomeVFSHandle that * can be used with the normal GnomeVFS file operations. When the * handle is closed the file descriptor will also be closed. * * Return Value: %GNOME_VFS_OK if the open was ok, a suitable error otherwise. * * Since 2.2 **/ GnomeVFSResult gnome_vfs_open_fd (GnomeVFSHandle **handle, int filedes) { GnomeVFSURI* uri; FileHandle* file_handle; GnomeVFSOpenMode open_mode; g_return_val_if_fail(handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = create_anonymous_uri (&method); open_mode = get_open_mode (filedes); file_handle = file_handle_new (uri, filedes); *handle = _gnome_vfs_handle_new (uri, (GnomeVFSMethodHandle*)file_handle, open_mode); if (!handle) { return GNOME_VFS_ERROR_INTERNAL; } return GNOME_VFS_OK; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-handlers.c0000644000175000001440000015124111334251016017524 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-mime-handlers.c - Mime type handlers for the GNOME Virtual File System. Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Maciej Stachowiak */ #include #include "gnome-vfs-mime-handlers.h" #include "gnome-vfs-application-registry.h" #include "gnome-vfs-mime-info.h" #include "gnome-vfs-mime-info-cache.h" #include "gnome-vfs-mime.h" #include "gnome-vfs-mime-private.h" #include "gnome-vfs-result.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-utils.h" #include #include #include #include #include #define MIXED_API_WARNING "Cannot call %s with a GNOMEVFSMimeApplication structure "\ "constructed by the deprecated application registry", \ G_STRFUNC struct _GnomeVFSMimeApplicationPrivate { char *desktop_file_path; char *generic_name; char *icon; char *exec; char *binary_name; char *path; gboolean supports_uris; gboolean startup_notification; char *startup_wm_class; }; extern GList * _gnome_vfs_configuration_get_methods_list (void); static GnomeVFSResult expand_application_parameters (GnomeVFSMimeApplication *application, GList **uri_list, int *argc, char ***argv); static GList * copy_str_list (GList *string_list); /** * gnome_vfs_mime_get_description: * @mime_type: the mime type. * * Query the MIME database for a description of the @mime_type. * * Return value: description of MIME type @mime_type. */ const char * gnome_vfs_mime_get_description (const char *mime_type) { /* We use a different folder type than the freedesktop spec */ if (strcmp (mime_type, "x-directory/normal") == 0) { mime_type = "inode/directory"; } return gnome_vfs_mime_get_value (mime_type, "description"); } /** * gnome_vfs_mime_set_description: * @mime_type: a const char * containing a mime type. * @description: a description of this MIME type. * * Set the @description of this MIME type in the MIME database. The @description * should be something like "Gnumeric spreadsheet". * * Return value: #GnomeVFSResult indicating the success of the operation or any * errors that may have occurred. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_set_description (const char *mime_type, const char *description) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_get_default_action_type: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * * Query the MIME database for the type of action to be performed on @mime_type. * * Deprecated: This function does not work with the new mime system. * It always returns none * * Return value: The type of action to be performed on a file of * MIME type @mime_type by default. */ GnomeVFSMimeActionType gnome_vfs_mime_get_default_action_type (const char *mime_type) { return GNOME_VFS_MIME_ACTION_TYPE_NONE; } /** * gnome_vfs_mime_get_default_action: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * * Query the MIME database for default action associated with @mime_type. * * Deprecated: Use gnome_vfs_mime_get_default_application() instead. * * Return value: a #GnomeVFSMimeAction representing the default action to perform upon * file of type @mime_type. */ GnomeVFSMimeAction * gnome_vfs_mime_get_default_action (const char *mime_type) { GnomeVFSMimeAction *action; action = g_new0 (GnomeVFSMimeAction, 1); action->action_type = GNOME_VFS_MIME_ACTION_TYPE_APPLICATION; action->action.application = gnome_vfs_mime_get_default_application (mime_type); if (action->action.application == NULL) { g_free (action); action = NULL; } return action; } /** * gnome_vfs_mime_get_default_application: * @mime_type: a const char * containing a mime type, e.g. "image/png". * * Query the MIME database for the application to be executed on files of MIME type * @mime_type by default. * * If you know the actual uri of the file you should use gnome_vfs_mime_get_default_application_for_uri * instead, as it will then be able to pick a better app. For instance it won't pick * an app that claims to only handle local files for a remote uri. * * Return value: a #GnomeVFSMimeApplication representing the default handler of @mime_type. */ GnomeVFSMimeApplication * gnome_vfs_mime_get_default_application (const char *mime_type) { GnomeVFSMimeApplication *app; GList *applications, *l; app = NULL; applications = gnome_vfs_mime_get_all_desktop_entries (mime_type); for (l = applications; l != NULL; l = l->next) { app = gnome_vfs_mime_application_new_from_id (l->data); if (app != NULL) { break; } } g_list_foreach (applications, (GFunc) g_free, NULL); g_list_free (applications); return app; } /** * gnome_vfs_mime_get_icon: * @mime_type: a const char * containing a MIME type. * * Query the MIME database for an icon representing the @mime_type. * * It usually returns a filename without path information, e.g. "i-chardev.png", and sometimes * does not have an extension, e.g. "i-regular" if the icon is supposed to be image * type agnostic between icon themes. Icons are generic and not theme specific. These * will not necessarily match with the icons a user sees in Nautilus, you have been warned. * * Return value: The filename of the icon as listed in the MIME database. * * Deprecated: Use gnome_icon_lookup() function in libgnomeui instead. */ const char * gnome_vfs_mime_get_icon (const char *mime_type) { return gnome_vfs_mime_get_value (mime_type, "icon_filename"); } /** * gnome_vfs_mime_set_icon: * @mime_type: a const char * containing a MIME type. * @filename: a const char * containing an image filename. * * Set the icon entry for @mime_type in the MIME database. Note that * icon entries need not necessarily contain the full path, and do not necessarily need to * specify an extension. So "i-regular", "my-special-icon.png", and "some-icon" * are all valid icon filenames. * * Return value: a #GnomeVFSResult indicating the success of the operation * or any errors that may have occurred. * * Deprecated: User modifications to the MIME database are no longer * supported in gnome-vfs. * */ GnomeVFSResult gnome_vfs_mime_set_icon (const char *mime_type, const char *filename) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_can_be_executable: * @mime_type: a const char * containing a mime type. * * Check whether files of @mime_type might conceivably be executable. * Default for known types if %FALSE. Default for unknown types is %TRUE. * * Return value: %TRUE if files of @mime_type * can be executable, %FALSE otherwise. */ gboolean gnome_vfs_mime_can_be_executable (const char *mime_type) { const char *result_as_string; gboolean result; result_as_string = gnome_vfs_mime_get_value (mime_type, "can_be_executable"); if (result_as_string != NULL) { result = strcmp (result_as_string, "TRUE") == 0; } else { /* If type is not known, we treat it as potentially executable. * If type is known, we use default value of not executable. */ result = !gnome_vfs_mime_type_is_known (mime_type); if (!strncmp (mime_type, "x-directory", strlen ("x-directory"))) { result = FALSE; } } return result; } /** * gnome_vfs_mime_set_can_be_executable: * @mime_type: a const char * containing a mime type. * @new_value: a boolean value indicating whether @mime_type could be executable. * * Set whether files of @mime_type might conceivably be executable. * * Return value: a #GnomeVFSResult indicating the success of the operation or any * errors that may have occurred. */ GnomeVFSResult gnome_vfs_mime_set_can_be_executable (const char *mime_type, gboolean new_value) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_get_short_list_applications: * @mime_type: a const char * containing a mime type, e.g. "image/png". * * Return an alphabetically sorted list of #GnomeVFSMimeApplication data * structures for the @mime_type. gnome-vfs no longer supports the * concept of a "short list" of applications that the user might be interested * in. * * Return value: a #GList * where the elements are #GnomeVFSMimeApplication * * representing various applications to display in the short list for @mime_type. * * Deprecated: Use gnome_vfs_mime_get_all_applications() instead. */ GList * gnome_vfs_mime_get_short_list_applications (const char *mime_type) { return gnome_vfs_mime_get_all_applications (mime_type); } /** * gnome_vfs_mime_get_all_applications: * @mime_type: a const char * containing a mime type, e.g. "image/png". * * Return an alphabetically sorted list of #GnomeVFSMimeApplication * data structures representing all applications in the MIME database registered * to handle files of MIME type @mime_type (and supertypes). * * Return value: a #GList * where the elements are #GnomeVFSMimeApplication * * representing applications that handle MIME type @mime_type. */ GList * gnome_vfs_mime_get_all_applications (const char *mime_type) { GList *applications, *node, *next; char *application_id; GnomeVFSMimeApplication *application; g_return_val_if_fail (mime_type != NULL, NULL); applications = gnome_vfs_mime_get_all_desktop_entries (mime_type); /* Convert to GnomeVFSMimeApplication's (leaving out NULLs) */ for (node = applications; node != NULL; node = next) { next = node->next; application_id = node->data; application = gnome_vfs_mime_application_new_from_id (application_id); /* Replace the application ID with the application */ if (application == NULL) { applications = g_list_remove_link (applications, node); g_list_free_1 (node); } else { node->data = application; } g_free (application_id); } return applications; } /** * gnome_vfs_mime_set_default_action_type: * @mime_type: a const char * containing a mime type, e.g. "image/png". * @action_type: a #GnomeVFSMimeActionType containing the action to perform by default. * * Sets the default action type to be performed on files of @mime_type. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_set_default_action_type (const char *mime_type, GnomeVFSMimeActionType action_type) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_set_default_application: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @application_id: a key representing an application in the MIME database * (#GnomeVFSMimeApplication->id, for example). * * Sets the default application to be run on files of @mime_type. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_set_default_application (const char *mime_type, const char *application_id) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_set_default_component: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @component_iid: OAFIID of a component. * * Sets the default component to be activated for files of @mime_type. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_set_default_component (const char *mime_type, const char *component_iid) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_set_short_list_applications: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @application_ids: #GList of const char * application ids. * * Set the short list of applications for the specified MIME type. The short list * contains applications recommended for possible selection by the user. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_set_short_list_applications (const char *mime_type, GList *application_ids) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_set_short_list_components: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @component_iids: #GList of const char * OAFIIDs. * * Set the short list of components for the @mime_type. The short list * contains companents recommended for possible selection by the user. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_set_short_list_components (const char *mime_type, GList *component_iids) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /* FIXME bugzilla.eazel.com 1148: * The next set of helper functions are all replicated in nautilus-mime-actions.c. * Need to refactor so they can share code. */ static gint gnome_vfs_mime_application_has_id (GnomeVFSMimeApplication *application, const char *id) { return strcmp (application->id, id); } static gint gnome_vfs_mime_id_matches_application (const char *id, GnomeVFSMimeApplication *application) { return gnome_vfs_mime_application_has_id (application, id); } static gint gnome_vfs_mime_application_matches_id (GnomeVFSMimeApplication *application, const char *id) { return gnome_vfs_mime_id_matches_application (id, application); } /** * gnome_vfs_mime_id_in_application_list: * @id: an application id. * @applications: a #GList * whose nodes are #GnomeVFSMimeApplications, such as the * result of gnome_vfs_mime_get_short_list_applications(). * * Check whether an application id is in a list of #GnomeVFSMimeApplications. * * Return value: %TRUE if an application whose id matches @id is in @applications. * * Deprecated: */ gboolean gnome_vfs_mime_id_in_application_list (const char *id, GList *applications) { return g_list_find_custom (applications, (gpointer) id, (GCompareFunc) gnome_vfs_mime_application_matches_id) != NULL; } /** * gnome_vfs_mime_id_list_from_application_list: * @applications: a #GList * whose nodes are GnomeVFSMimeApplications, such as the * result of gnome_vfs_mime_get_short_list_applications(). * * Create a list of application ids from a list of #GnomeVFSMimeApplications. * * Return value: a new list where each #GnomeVFSMimeApplication in the original * list is replaced by a char * with the application's id. The original list is * not modified. * * Deprecated: */ GList * gnome_vfs_mime_id_list_from_application_list (GList *applications) { GList *result; GList *node; result = NULL; for (node = applications; node != NULL; node = node->next) { result = g_list_append (result, g_strdup (((GnomeVFSMimeApplication *)node->data)->id)); } return result; } /** * gnome_vfs_mime_add_application_to_short_list: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @application_id: const char * containing the application's id in the MIME database. * * Add an application to the short list for @mime_type. The short list contains * applications recommended for display as choices to the user for a particular MIME type. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_add_application_to_short_list (const char *mime_type, const char *application_id) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_remove_application_from_list: * @applications: a #GList * whose nodes are #GnomeVFSMimeApplications, such as the * result of gnome_vfs_mime_get_short_list_applications(). * @application_id: id of an application to remove from @applications. * @did_remove: If non-NULL, this is filled in with %TRUE if the application * was found in the list, %FALSE otherwise. * * Remove an application specified by id from a list of #GnomeVFSMimeApplications. * * Return value: The modified list. If the application is not found, the list will * be unchanged. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GList * gnome_vfs_mime_remove_application_from_list (GList *applications, const char *application_id, gboolean *did_remove) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return NULL; } /** * gnome_vfs_mime_remove_application_from_short_list: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @application_id: const char * containing the application's id in the MIME database. * * Remove an application specified by @application_id from the short list for @mime_type. A short list contains * applications recommended for display as choices to the user for a particular MIME type. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_remove_application_from_short_list (const char *mime_type, const char *application_id) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_add_component_to_short_list: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @iid: const char * containing the component's OAFIID. * * Add a component to the short list for @mime_type. A short list contains * components recommended for display as choices to the user for a particular MIME type. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_add_component_to_short_list (const char *mime_type, const char *iid) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_remove_component_from_short_list: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @iid: const char * containing the component's OAFIID. * * Remove a component from the short list for @mime_type. The short list contains * components recommended for display as choices to the user for a particular MIME type. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_remove_component_from_short_list (const char *mime_type, const char *iid) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_add_extension: * @extension: extension to add (e.g. "txt"). * @mime_type: mime type to add the mapping to. * * Add a file extension to the specificed MIME type in the MIME database. * * Return value: a #GnomeVFSResult indicating the success of the operation or any * errors that may have occurred. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_add_extension (const char *mime_type, const char *extension) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_remove_extension: * @extension: extension to remove. * @mime_type: mime type to remove the extension from. * * Removes a file extension from the @mime_type in the MIME database. * * Return value: a #GnomeVFSResult indicating the success of the operation or any * errors that may have occurred. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_remove_extension (const char *mime_type, const char *extension) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_extend_all_applications: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @application_ids: a #GList of const char * containing application ids. * * Register @mime_type as being handled by all applications list in @application_ids. * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_extend_all_applications (const char *mime_type, GList *application_ids) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_remove_from_all_applications: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @application_ids: a #GList of const char * containing application ids. * * Remove @mime_type as a handled type from every application in @application_ids * * Return value: a #GnomeVFSResult indicating the success of the operation or reporting * any errors encountered. * * Deprecated: User modifications to the MIME database are no longer supported by gnome-vfs. */ GnomeVFSResult gnome_vfs_mime_remove_from_all_applications (const char *mime_type, GList *application_ids) { g_warning (_("Deprecated function. User modifications to the MIME database are no longer supported.")); return GNOME_VFS_ERROR_DEPRECATED_FUNCTION; } /** * gnome_vfs_mime_application_equal: * @app_a: a #GnomeVFSMimeApplication. * @app_b: a #GnomeVFSMimeApplication. * * Compare @app_a and @app_b. * * Return value: %TRUE if @app_a and @app_b are equal, %FALSE otherwise. * * Since: 2.10 */ gboolean gnome_vfs_mime_application_equal (GnomeVFSMimeApplication *app_a, GnomeVFSMimeApplication *app_b) { g_return_val_if_fail (app_a != NULL, FALSE); g_return_val_if_fail (app_b != NULL, FALSE); return (strcmp (app_a->id, app_b->id) == 0); } /** * gnome_vfs_mime_application_copy: * @application: a #GnomeVFSMimeApplication to be duplicated. * * Creates a newly referenced copy of a #GnomeVFSMimeApplication object. * * Return value: a copy of @application. */ GnomeVFSMimeApplication * gnome_vfs_mime_application_copy (GnomeVFSMimeApplication *application) { GnomeVFSMimeApplication *result; if (application == NULL) { return NULL; } result = g_new0 (GnomeVFSMimeApplication, 1); result->id = g_strdup (application->id); result->name = g_strdup (application->name); result->command = g_strdup (application->command); result->can_open_multiple_files = application->can_open_multiple_files; result->expects_uris = application->expects_uris; result->supported_uri_schemes = copy_str_list (application->supported_uri_schemes); result->requires_terminal = application->requires_terminal; result->priv = g_new0 (GnomeVFSMimeApplicationPrivate, 1); result->priv->desktop_file_path = g_strdup (application->priv->desktop_file_path); result->priv->generic_name = g_strdup (application->priv->generic_name); result->priv->icon = g_strdup (application->priv->icon); result->priv->exec = g_strdup (application->priv->exec); result->priv->binary_name = g_strdup (application->priv->binary_name); result->priv->path = g_strdup (application->priv->path); result->priv->supports_uris = application->priv->supports_uris; result->priv->startup_notification = application->priv->startup_notification; result->priv->startup_wm_class = g_strdup (application->priv->startup_wm_class); return result; } /** * gnome_vfs_mime_application_free: * @application: a #GnomeVFSMimeApplication to be freed. * * Frees a #GnomeVFSMimeApplication *. * */ void gnome_vfs_mime_application_free (GnomeVFSMimeApplication *application) { if (application != NULL) { GnomeVFSMimeApplicationPrivate *priv = application->priv; if (priv != NULL) { g_free (priv->desktop_file_path); g_free (priv->generic_name); g_free (priv->icon); g_free (priv->exec); g_free (priv->binary_name); g_free (priv->path); g_free (priv->startup_wm_class); } g_free (priv); g_free (application->name); g_free (application->command); g_list_foreach (application->supported_uri_schemes, (GFunc) g_free, NULL); g_list_free (application->supported_uri_schemes); g_free (application->id); g_free (application); } } /** * gnome_vfs_mime_action_free: * @action: a #GnomeVFSMimeAction to be freed. * * Frees a #GnomeVFSMimeAction *. * * Deprecated: #GnomeVFSMimeAction structures should not be used in new * code. */ void gnome_vfs_mime_action_free (GnomeVFSMimeAction *action) { switch (action->action_type) { case GNOME_VFS_MIME_ACTION_TYPE_APPLICATION: gnome_vfs_mime_application_free (action->action.application); break; default: g_assert_not_reached (); } g_free (action); } /** * gnome_vfs_mime_application_list_free: * @list: a #GList of #GnomeVFSApplication * to be freed. * * Frees lists of #GnomeVFSApplications, as returned from functions such * as gnome_vfs_get_all_applications(). */ void gnome_vfs_mime_application_list_free (GList *list) { g_list_foreach (list, (GFunc) gnome_vfs_mime_application_free, NULL); g_list_free (list); } /** * gnome_vfs_mime_application_new_from_id: * @id: a const char * containing an application id. * * Fetches the #GnomeVFSMimeApplication associated with the specified * application @id from the MIME database. * * Return value: a #GnomeVFSMimeApplication * corresponding to @id. * * Deprecated: Use gnome_vfs_mime_application_new_from_desktop_id() * instead. */ GnomeVFSMimeApplication * gnome_vfs_mime_application_new_from_id (const char *id) { return gnome_vfs_mime_application_new_from_desktop_id (id); } /** * gnome_vfs_mime_action_launch: * @action: the #GnomeVFSMimeAction to launch. * @uris: parameters for the #GnomeVFSMimeAction. * * Launches the given mime @action with the given parameters. If * the @action is an application the command line parameters will * be expanded as required by the application. The application * will also be launched in a terminal if that is required. If the * application only supports one argument per instance then multiple * instances of the application will be launched. * * If the default action is a component it will be launched with * the component viewer application defined using the gconf value: * /desktop/gnome/application/component_viewer/exec. The parameters * %s and %c in the command line will be replaced with the list of * parameters and the default component IID respectively. * * Return value: %GNOME_VFS_OK if the @action was launched, * %GNOME_VFS_ERROR_BAD_PARAMETERS for an invalid @action. * %GNOME_VFS_ERROR_NOT_SUPPORTED if the uri protocol is * not supported by the @action. * %GNOME_VFS_ERROR_PARSE if the @action command can not be parsed. * %GNOME_VFS_ERROR_LAUNCH if the @action command can not be launched. * %GNOME_VFS_ERROR_INTERNAL for other internal and GConf errors. * * Since: 2.4 * * Deprecated: MIME actions are deprecated, use * gnome_vfs_mime_application_launch() instead. */ GnomeVFSResult gnome_vfs_mime_action_launch (GnomeVFSMimeAction *action, GList *uris) { return gnome_vfs_mime_action_launch_with_env (action, uris, NULL); } /** * gnome_vfs_mime_action_launch_with_env: * @action: the #GnomeVFSMimeAction to launch. * @uris: parameters for the #GnomeVFSMimeAction. * @envp: the environment to use for the action. * * Same as gnome_vfs_mime_action_launch() except that the * application or component viewer will be launched with * the given environment. * * Return value: same as gnome_vfs_mime_action_launch(). * * Since: 2.4 * * Deprecated: MIME actions are deprecated, use * gnome_vfs_mime_application_launch_with_env() instead. */ GnomeVFSResult gnome_vfs_mime_action_launch_with_env (GnomeVFSMimeAction *action, GList *uris, char **envp) { g_return_val_if_fail (action != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (uris != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); switch (action->action_type) { case GNOME_VFS_MIME_ACTION_TYPE_APPLICATION: return gnome_vfs_mime_application_launch_with_env (action->action.application, uris, envp); case GNOME_VFS_MIME_ACTION_TYPE_COMPONENT: return GNOME_VFS_OK; default: g_assert_not_reached (); } return GNOME_VFS_ERROR_BAD_PARAMETERS; } /** * gnome_vfs_mime_application_launch: * @app: the #GnomeVFSMimeApplication to launch. * @uris: parameters for the #GnomeVFSMimeApplication. * * Launches the given mime application with the given parameters. * Command line parameters will be expanded as required by the * application. The application will also be launched in a terminal * if that is required. If the application only supports one argument * per instance then multiple instances of the application will be * launched. * * Return value: * %GNOME_VFS_OK if the application was launched. * %GNOME_VFS_ERROR_NOT_SUPPORTED if the uri protocol is not * supported by the application. * %GNOME_VFS_ERROR_PARSE if the application command can not * be parsed. * %GNOME_VFS_ERROR_LAUNCH if the application command can not * be launched. * %GNOME_VFS_ERROR_INTERNAL for other internal and GConf errors. * * Since: 2.4 */ GnomeVFSResult gnome_vfs_mime_application_launch (GnomeVFSMimeApplication *app, GList *uris) { return gnome_vfs_mime_application_launch_with_env (app, uris, NULL); } /** * gnome_vfs_mime_application_launch_with_env: * @app: the #GnomeVFSMimeApplication to launch. * @uris: parameters for the #GnomeVFSMimeApplication. * @envp: the environment to use for the application. * * Same as gnome_vfs_mime_application_launch() except that * the application will be launched with the given environment. * * Return value: same as gnome_vfs_mime_application_launch(). * * Since: 2.4 */ GnomeVFSResult gnome_vfs_mime_application_launch_with_env (GnomeVFSMimeApplication *app, GList *uris, char **envp) { GnomeVFSResult result; char **argv; int argc; g_return_val_if_fail (app != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (uris != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); while (uris != NULL) { result = expand_application_parameters (app, &uris, &argc, &argv); if (result != GNOME_VFS_OK) { return result; } if (app->requires_terminal) { if (!_gnome_vfs_prepend_terminal_to_vector (&argc, &argv)) { g_strfreev (argv); return GNOME_VFS_ERROR_INTERNAL; } } if (!g_spawn_async (app->priv->path, /* working directory */ argv, envp, G_SPAWN_SEARCH_PATH /* flags */, NULL /* child_setup */, NULL /* data */, NULL /* child_pid */, NULL /* error */)) { g_strfreev (argv); return GNOME_VFS_ERROR_LAUNCH; } g_strfreev (argv); } return GNOME_VFS_OK; } static char * expand_macro_single (char macro, const char *uri) { char *result = NULL, *path; switch (macro) { case 'u': case 'U': result = g_shell_quote (uri); break; case 'f': case 'F': path = gnome_vfs_get_local_path_from_uri (uri); if (path) { result = g_shell_quote (path); g_free (path); } break; case 'd': case 'D': path = gnome_vfs_get_local_path_from_uri (uri); if (path) { result = g_shell_quote (g_path_get_dirname (path)); g_free (path); } break; case 'n': case 'N': path = gnome_vfs_get_local_path_from_uri (uri); if (path) { result = g_shell_quote (g_path_get_basename (path)); g_free (path); } break; } return result; } static void expand_macro (char macro, GString *exec, GnomeVFSMimeApplication *application, GList **uri_list) { GList *uris = *uri_list; char *expanded; g_return_if_fail (uris != NULL); g_return_if_fail (exec != NULL); if (uris == NULL) { return; } switch (macro) { case 'u': case 'f': case 'd': case 'n': expanded = expand_macro_single (macro, uris->data); if (expanded) { g_string_append (exec, expanded); g_free (expanded); } uris = uris->next; break; case 'U': case 'F': case 'D': case 'N': while (uris) { expanded = expand_macro_single (macro, uris->data); if (expanded) { g_string_append (exec, expanded); g_free (expanded); } uris = uris->next; if (uris != NULL && expanded) { g_string_append_c (exec, ' '); } } break; case 'i': if (application->priv->icon) { g_string_append (exec, "--icon "); g_string_append (exec, application->priv->icon); } break; case 'c': if (application->name) { g_string_append (exec, application->name); } break; case 'k': if (application->priv->desktop_file_path) { g_string_append (exec, application->priv->desktop_file_path); } case 'm': /* deprecated */ break; case '%': g_string_append_c (exec, '%'); break; } *uri_list = uris; } static GnomeVFSResult expand_application_parameters (GnomeVFSMimeApplication *application, GList **uris, int *argc, char ***argv) { GList *uri_list = *uris; const char *p = application->priv->exec; GString *expanded_exec = g_string_new (NULL); g_return_val_if_fail (p != NULL, GNOME_VFS_ERROR_PARSE); while (*p) { if (p[0] == '%' && p[1] != '\0') { expand_macro (p[1], expanded_exec, application, uris); p++; } else { g_string_append_c (expanded_exec, *p); } p++; } /* No substitutions */ if (uri_list == *uris) { return GNOME_VFS_ERROR_PARSE; } if (!g_shell_parse_argv (expanded_exec->str, argc, argv, NULL)) { return GNOME_VFS_ERROR_PARSE; } return GNOME_VFS_OK; } #ifdef TEXT_EXEC_MACRO_EXPANSION static void print_expansion_data (GList *uris, const char *exec) { GList *l; int i; g_print ("Exec %s\n", exec); for (l = uris, i = 0; l != NULL; l = l->next, i++) { g_print ("URI %d: %s\n", i, (char *)l->data); } } static void print_macro_expansion (char **argv, GnomeVFSResult res) { int i; if (res != GNOME_VFS_OK) { g_print ("Error\n"); } else { for (i = 0; argv[i] != NULL; i++) { g_print ("Arg %d: %s\n", i, argv[i]); } } } static void test_exec_array (GList *apps, GList *uris) { int argc; char **argv; GList *app; for (app = apps; app != NULL; app = app->next) { GnomeVFSMimeApplication *application = app->data; GList *l = uris; print_expansion_data (uris, application->priv->exec); while (l != NULL) { GnomeVFSResult res; res = expand_application_parameters (application, &l, &argc, &argv); print_macro_expansion (argv, res); g_strfreev (argv); } g_print ("---------------------\n"); } } void test_exec_macro_expansion (void); void test_exec_macro_expansion (void) { GList *uris = NULL; const char *local[] = { "test --open-file=%f", "test --open-files %F", "test %d", "test %D", "test %n", "test %N", NULL }; const char *remote[] = { "test --open-uri=%u", "test --open-uris %U", "test %u", "test %U", NULL }; const char **p; GList* applications = NULL; GnomeVFSMimeApplication *application, *app; application = g_new0 (GnomeVFSMimeApplication, 1); application->priv = g_new0 (GnomeVFSMimeApplicationPrivate, 1); application->id = g_strdup ("foobar.desktop"); aplication->name = g_strdup ("foobar"); application->priv->icon = g_strdup ("icon.png"); for (p = local; p ; p++) { app = gnome_vfs_mime_application_copy (application); g_free (app->priv->exec); app->priv->exec = g_strdup (*p); applications = g_list_prepend(applications, app); } uris = g_list_append (uris, "file:///home/test/test1.txt"); uris = g_list_append (uris, "file:///home/test/test2.txt"); test_exec_array (applications, uris); gnome_vfs_mime_application_list_free (applications); applications = NULL; for (p = remote; p ; p++) { app = gnome_vfs_mime_application_copy (application); g_free (app->priv->exec); app->priv->exec = g_strdup (*p); applications = g_list_prepend (applications, app); } uris = g_list_append (uris, "http://www.test.org/test1.txt"); uris = g_list_append (uris, "http://www.test.org/test2.txt"); test_exec_array (applications, uris); gnome_vfs_mime_application_list_free (applications); g_list_free (uris); gnome_vfs_mime_application_free (application); } #endif static GList * copy_str_list (GList *string_list) { GList *copy, *node; copy = NULL; for (node = string_list; node != NULL; node = node->next) { copy = g_list_prepend (copy, g_strdup ((char *) node->data)); } return g_list_reverse (copy); } static void guess_deprecated_fields_from_exec (GnomeVFSMimeApplication *application) { char *p; application->command = g_strdup (application->priv->exec); /* Guess on these last fields based on parameters passed to Exec line */ if ((p = strstr (application->command, "%f")) != NULL || (p = strstr (application->command, "%d")) != NULL || (p = strstr (application->command, "%n")) != NULL) { do { *p = '\0'; p--; } while (p >= application->command && g_ascii_isspace (*p)); application->can_open_multiple_files = FALSE; application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS; application->supported_uri_schemes = NULL; } else if ((p = strstr (application->command, "%F")) != NULL || (p = strstr (application->command, "%D")) != NULL || (p = strstr (application->command, "%N")) != NULL) { do { *p = '\0'; p--; } while (p >= application->command && g_ascii_isspace (*p)); application->can_open_multiple_files = TRUE; application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS; application->supported_uri_schemes = NULL; } else if ((p = strstr (application->command, "%u")) != NULL) { do { *p = '\0'; p--; } while (p >= application->command && g_ascii_isspace (*p)); application->can_open_multiple_files = FALSE; application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS; application->supported_uri_schemes = _gnome_vfs_configuration_get_methods_list (); } else if ((p = strstr (application->command, "%U")) != NULL) { do { *p = '\0'; p--; } while (p >= application->command && g_ascii_isspace (*p)); application->can_open_multiple_files = TRUE; application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS; application->supported_uri_schemes = _gnome_vfs_configuration_get_methods_list (); } else { application->can_open_multiple_files = FALSE; application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES; application->supported_uri_schemes = _gnome_vfs_configuration_get_methods_list (); } } /** * gnome_vfs_mime_application_new_from_desktop_id: * @id: the identifier of a desktop entry. * * Returns a new #GnomeVFSMimeApplication for the @id. * * Return value: a #GnomeVFSMimeApplication. * * Since: 2.10 */ GnomeVFSMimeApplication * gnome_vfs_mime_application_new_from_desktop_id (const char *id) { GError *err = NULL; GKeyFile *key_file; GnomeVFSMimeApplication *app; char **argv; int argc; char *filename; g_return_val_if_fail (id != NULL, NULL); app = g_new0 (GnomeVFSMimeApplication, 1); app->priv = g_new0 (GnomeVFSMimeApplicationPrivate, 1); app->id = g_strdup (id); filename = g_build_filename ("applications", id, NULL); key_file = g_key_file_new (); if (!g_key_file_load_from_data_dirs (key_file, filename, &app->priv->desktop_file_path, G_KEY_FILE_NONE, &err)) { goto exit; } app->name = g_key_file_get_locale_string (key_file, DESKTOP_ENTRY_GROUP, "Name", NULL, &err); if (err) goto exit; /* Not REQUIRED by the specification but required in our context */ app->priv->exec = g_key_file_get_string (key_file, DESKTOP_ENTRY_GROUP, "Exec", &err); if (err) goto exit; /* If there is no macro default to %f. This is also what KDE does */ if (!strchr (app->priv->exec, '%')) { char *exec; exec = g_strconcat (app->priv->exec, " %f", NULL); g_free (app->priv->exec); app->priv->exec = exec; } if (!g_shell_parse_argv (app->priv->exec, &argc, &argv, NULL)) { goto exit; } app->priv->binary_name = g_strdup (argv[0]); g_strfreev (argv); app->priv->path = g_key_file_get_string (key_file, DESKTOP_ENTRY_GROUP, "Path", NULL); /* 'Path=' .desktop item is not working. bugzilla.gnome.org/389273 */ if (app->priv->path != NULL && *app->priv->path == 0) { g_free (app->priv->path); app->priv->path = NULL; } app->requires_terminal = g_key_file_get_boolean (key_file, DESKTOP_ENTRY_GROUP, "Terminal", &err); if (err) { g_error_free (err); err = NULL; app->requires_terminal = FALSE; } app->priv->startup_notification = g_key_file_get_boolean (key_file, DESKTOP_ENTRY_GROUP, "StartupNotify", &err); if (err) { g_error_free (err); err = NULL; app->priv->startup_notification = FALSE; } app->priv->generic_name = g_key_file_get_locale_string (key_file, DESKTOP_ENTRY_GROUP, "GenericName", NULL, NULL); app->priv->icon = g_key_file_get_string (key_file, DESKTOP_ENTRY_GROUP, "Icon", NULL); app->priv->startup_wm_class = g_key_file_get_string (key_file, DESKTOP_ENTRY_GROUP, "StartupWMClass", NULL); app->priv->supports_uris = strstr (app->priv->exec, "%u") || strstr (app->priv->exec, "%U"); guess_deprecated_fields_from_exec (app); exit: g_free (filename); g_key_file_free (key_file); if (err) { g_error_free (err); gnome_vfs_mime_application_free (app); return NULL; } return app; } static gboolean uri_is_local (const char *uri) { char *scheme; gboolean local; local = FALSE; scheme = gnome_vfs_get_uri_scheme (uri); if (scheme != NULL) { local = (strcmp (scheme, "file") == 0); g_free (scheme); } return local; } /** * gnome_vfs_mime_application_get_default_application_for_uri: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @uri: a stringified uri. * * Query the MIME database for the application to be executed on the file * identified by @uri of @mime_type by default. * * Return value: a #GnomeVFSMimeApplication representing the default handler. * * Since: 2.10 */ GnomeVFSMimeApplication * gnome_vfs_mime_get_default_application_for_uri (const char *uri, const char *mime_type) { GList *applications, *l; GnomeVFSMimeApplication *app = NULL; gboolean local; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (mime_type != NULL, NULL); local = uri_is_local (uri); applications = gnome_vfs_mime_get_all_desktop_entries (mime_type); for (l = applications; l != NULL; l = l->next) { app = gnome_vfs_mime_application_new_from_id (l->data); if (app != NULL) { if (local || gnome_vfs_mime_application_supports_uris (app)) { break; } else { gnome_vfs_mime_application_free (app); app = NULL; } } } g_list_foreach (applications, (GFunc) g_free, NULL); g_list_free (applications); return app; } /** * gnome_vfs_mime_get_all_applications_for_uri: * @mime_type: a const char * containing a mime type, e.g. "application/x-php". * @uri: a stringified uri. * * Return an alphabetically sorted list of #GnomeVFSMimeApplication * data structures representing all applications in the MIME database able * to handle the file identified by @uri of @mime_type (and supertypes). * * Return value: a #GList * where the elements are #GnomeVFSMimeApplication * * representing all possible handlers * * Since: 2.10 */ GList * gnome_vfs_mime_get_all_applications_for_uri (const char *uri, const char *mime_type) { GList *applications, *l, *result = NULL; GnomeVFSMimeApplication *app; gboolean local; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (mime_type != NULL, NULL); local = uri_is_local (uri); applications = gnome_vfs_mime_get_all_desktop_entries (mime_type); for (l = applications; l != NULL; l = l->next) { app = gnome_vfs_mime_application_new_from_id (l->data); if (app != NULL) { if (local || gnome_vfs_mime_application_supports_uris (app)) { result = g_list_append (result, app); } else { gnome_vfs_mime_application_free (app); } } } g_list_foreach (applications, (GFunc) g_free, NULL); g_list_free (applications); return result; } /** * gnome_vfs_mime_application_get_desktop_id: * @app: a #GnomeVFSMimeApplication. * * Returns the identifier of the desktop entry. * * Return value: the identifier of the desktop entry. * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_desktop_id (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return NULL; } return app->id; } /** * gnome_vfs_mime_application_get_desktop_file_path: * @app: a #GnomeVFSMimeApplication. * * Returns the path of the desktop entry, a configuration * file describing the properties of a particular program like * it's name, how it is to be launched, how it appears in menus. * * Return value: the path of the .desktop file. * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_desktop_file_path (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return NULL; } return app->priv->desktop_file_path; } /** * gnome_vfs_mime_application_get_name: * @app: a #GnomeVFSMimeApplication. * * Returns the name of the application @app * * Return value: the name of the application. * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_name (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); return app->name; } /** * gnome_vfs_mime_application_get_generic_name: * @app: a #GnomeVFSMimeApplication. * * Returns the generic name of the application. * * Return value: the generic name of the application. * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_generic_name (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return NULL; } return app->priv->generic_name; } /** * gnome_vfs_mime_application_get_icon: * @app: a #GnomeVFSMimeApplication. * * Returns an icon representing the specified application. * * Return value: the filename of the icon usually without path information, * e.g. "gedit-icon.png", and sometimes does not have an extension, * e.g. "gnome-pdf" if the icon is supposed to be image type agnostic between * icon themes. Icons are generic, and not theme specific. * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_icon (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return NULL; } return app->priv->icon; } /** * gnome_vfs_mime_application_get_exec: * @app: a #GnomeVFSMimeApplication. * * Returns the program to execute, possibly with arguments * and parameter variables, as specified by the * * Desktop Entry Specification. * * Return value: the command line to execute. * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_exec (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return NULL; } return app->priv->exec; } /** * gnome_vfs_mime_application_get_binary_name: * @app: a #GnomeVFSMimeApplication. * * Returns the binary name of the specified application. * Useful to implement startup notification. * Note that this only provides partial information about * application execution, it misses arguments and macros. * DO NOT USE it to launch the application. * Use gnome_vfs_mime_application_launch or * gnome_vfs_mime_application_get_exec() if you really * need to write a custom launcher. * * Return value: the application's binary name. * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_binary_name (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return NULL; } return app->priv->binary_name; } /** * gnome_vfs_mime_application_supports_uris: * @app: a #GnomeVFSMimeApplication. * * Returns whether the application accept uris as command * lines arguments. * * Return value: %TRUE if the application can handle uris. * * Since: 2.10 */ gboolean gnome_vfs_mime_application_supports_uris (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, FALSE); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return FALSE; } return app->priv->supports_uris; } /** * gnome_vfs_mime_application_requires_terminal: * @app: a #GnomeVFSMimeApplication. * * Returns whether the application runs in a terminal window. * * Return value: %TRUE if the application runs in a terminal. * * Since: 2.10 */ gboolean gnome_vfs_mime_application_requires_terminal (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, FALSE); return app->requires_terminal; } /** * gnome_vfs_mime_application_supports_startup_notification: * @app: a #GnomeVFSMimeApplication. * * Returns whether the application supports startup notification. * If true, it is KNOWN that the application will send a * "remove" message when started with the DESKTOP_LAUNCH_ID * environment variable set. * * Return value: %TRUE if the application supports startup notification. * * Since: 2.10 */ gboolean gnome_vfs_mime_application_supports_startup_notification (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, FALSE); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return FALSE; } return app->priv->startup_notification; } /** * gnome_vfs_mime_application_get_startup_wm_class: * @app: a #GnomeVFSMimeApplication * * Returns the WM class of the main window of the application. * * Return value: The WM class of the application's window * * Since: 2.10 */ const char * gnome_vfs_mime_application_get_startup_wm_class (GnomeVFSMimeApplication *app) { g_return_val_if_fail (app != NULL, NULL); if (app->priv == NULL) { g_warning (MIXED_API_WARNING); return NULL; } return app->priv->startup_wm_class; } gnome-vfs-2.24.4/libgnomevfs/xdgmimemagic.c0000644000175000001440000004425711334251016015543 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimemagic.: Private file. Datastructure for storing magic files. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include "xdgmimemagic.h" #include "xdgmimeint.h" #include #include #include #include #include #include #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif #if !defined getc_unlocked && !defined HAVE_GETC_UNLOCKED # define getc_unlocked(fp) getc (fp) #endif typedef struct XdgMimeMagicMatch XdgMimeMagicMatch; typedef struct XdgMimeMagicMatchlet XdgMimeMagicMatchlet; typedef enum { XDG_MIME_MAGIC_SECTION, XDG_MIME_MAGIC_MAGIC, XDG_MIME_MAGIC_ERROR, XDG_MIME_MAGIC_EOF } XdgMimeMagicState; struct XdgMimeMagicMatch { const char *mime_type; int priority; XdgMimeMagicMatchlet *matchlet; XdgMimeMagicMatch *next; }; struct XdgMimeMagicMatchlet { int indent; int offset; unsigned int value_length; unsigned char *value; unsigned char *mask; unsigned int range_length; unsigned int word_size; XdgMimeMagicMatchlet *next; }; struct XdgMimeMagic { XdgMimeMagicMatch *match_list; int max_extent; }; static XdgMimeMagicMatch * _xdg_mime_magic_match_new (void) { return calloc (1, sizeof (XdgMimeMagicMatch)); } static XdgMimeMagicMatchlet * _xdg_mime_magic_matchlet_new (void) { XdgMimeMagicMatchlet *matchlet; matchlet = malloc (sizeof (XdgMimeMagicMatchlet)); matchlet->indent = 0; matchlet->offset = 0; matchlet->value_length = 0; matchlet->value = NULL; matchlet->mask = NULL; matchlet->range_length = 1; matchlet->word_size = 1; matchlet->next = NULL; return matchlet; } static void _xdg_mime_magic_matchlet_free (XdgMimeMagicMatchlet *mime_magic_matchlet) { if (mime_magic_matchlet) { if (mime_magic_matchlet->next) _xdg_mime_magic_matchlet_free (mime_magic_matchlet->next); if (mime_magic_matchlet->value) free (mime_magic_matchlet->value); if (mime_magic_matchlet->mask) free (mime_magic_matchlet->mask); free (mime_magic_matchlet); } } /* Frees mime_magic_match and the remainder of its list */ static void _xdg_mime_magic_match_free (XdgMimeMagicMatch *mime_magic_match) { XdgMimeMagicMatch *ptr, *next; ptr = mime_magic_match; while (ptr) { next = ptr->next; if (ptr->mime_type) free ((void *) ptr->mime_type); if (ptr->matchlet) _xdg_mime_magic_matchlet_free (ptr->matchlet); free (ptr); ptr = next; } } /* Reads in a hunk of data until a newline character or a '\000' is hit. The * returned string is null terminated, and doesn't include the newline. */ static unsigned char * _xdg_mime_magic_read_to_newline (FILE *magic_file, int *end_of_file) { unsigned char *retval; int c; int len, pos; len = 128; pos = 0; retval = malloc (len); *end_of_file = FALSE; while (TRUE) { c = getc_unlocked (magic_file); if (c == EOF) { *end_of_file = TRUE; break; } if (c == '\n' || c == '\000') break; retval[pos++] = (unsigned char) c; if (pos % 128 == 127) { len = len + 128; retval = realloc (retval, len); } } retval[pos] = '\000'; return retval; } /* Returns the number read from the file, or -1 if no number could be read. */ static int _xdg_mime_magic_read_a_number (FILE *magic_file, int *end_of_file) { /* LONG_MAX is about 20 characters on my system */ #define MAX_NUMBER_SIZE 30 char number_string[MAX_NUMBER_SIZE + 1]; int pos = 0; int c; long retval = -1; while (TRUE) { c = getc_unlocked (magic_file); if (c == EOF) { *end_of_file = TRUE; break; } if (! isdigit (c)) { ungetc (c, magic_file); break; } number_string[pos] = (char) c; pos++; if (pos == MAX_NUMBER_SIZE) break; } if (pos > 0) { number_string[pos] = '\000'; errno = 0; retval = strtol (number_string, NULL, 10); if ((retval < INT_MIN) || (retval > INT_MAX) || (errno != 0)) return -1; } return retval; } /* Headers are of the format: * [:] */ static XdgMimeMagicState _xdg_mime_magic_parse_header (FILE *magic_file, XdgMimeMagicMatch *match) { int c; char *buffer; char *end_ptr; int end_of_file = 0; assert (magic_file != NULL); assert (match != NULL); c = getc_unlocked (magic_file); if (c == EOF) return XDG_MIME_MAGIC_EOF; if (c != '[') return XDG_MIME_MAGIC_ERROR; match->priority = _xdg_mime_magic_read_a_number (magic_file, &end_of_file); if (end_of_file) return XDG_MIME_MAGIC_EOF; if (match->priority == -1) return XDG_MIME_MAGIC_ERROR; c = getc_unlocked (magic_file); if (c == EOF) return XDG_MIME_MAGIC_EOF; if (c != ':') return XDG_MIME_MAGIC_ERROR; buffer = (char *)_xdg_mime_magic_read_to_newline (magic_file, &end_of_file); if (end_of_file) return XDG_MIME_MAGIC_EOF; end_ptr = buffer; while (*end_ptr != ']' && *end_ptr != '\000' && *end_ptr != '\n') end_ptr++; if (*end_ptr != ']') { free (buffer); return XDG_MIME_MAGIC_ERROR; } *end_ptr = '\000'; match->mime_type = strdup (buffer); free (buffer); return XDG_MIME_MAGIC_MAGIC; } static XdgMimeMagicState _xdg_mime_magic_parse_error (FILE *magic_file) { int c; while (1) { c = getc_unlocked (magic_file); if (c == EOF) return XDG_MIME_MAGIC_EOF; if (c == '\n') return XDG_MIME_MAGIC_SECTION; } } /* Headers are of the format: * [ indent ] ">" start-offset "=" value * [ "&" mask ] [ "~" word-size ] [ "+" range-length ] "\n" */ static XdgMimeMagicState _xdg_mime_magic_parse_magic_line (FILE *magic_file, XdgMimeMagicMatch *match) { XdgMimeMagicMatchlet *matchlet; int c; int end_of_file; int indent = 0; int bytes_read; assert (magic_file != NULL); /* Sniff the buffer to make sure it's a valid line */ c = getc_unlocked (magic_file); if (c == EOF) return XDG_MIME_MAGIC_EOF; else if (c == '[') { ungetc (c, magic_file); return XDG_MIME_MAGIC_SECTION; } else if (c == '\n') return XDG_MIME_MAGIC_MAGIC; /* At this point, it must be a digit or a '>' */ end_of_file = FALSE; if (isdigit (c)) { ungetc (c, magic_file); indent = _xdg_mime_magic_read_a_number (magic_file, &end_of_file); if (end_of_file) return XDG_MIME_MAGIC_EOF; if (indent == -1) return XDG_MIME_MAGIC_ERROR; c = getc_unlocked (magic_file); if (c == EOF) return XDG_MIME_MAGIC_EOF; } if (c != '>') return XDG_MIME_MAGIC_ERROR; matchlet = _xdg_mime_magic_matchlet_new (); matchlet->indent = indent; matchlet->offset = _xdg_mime_magic_read_a_number (magic_file, &end_of_file); if (end_of_file) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_EOF; } if (matchlet->offset == -1) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_ERROR; } c = getc_unlocked (magic_file); if (c == EOF) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_EOF; } else if (c != '=') { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_ERROR; } /* Next two bytes determine how long the value is */ matchlet->value_length = 0; c = getc_unlocked (magic_file); if (c == EOF) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_EOF; } matchlet->value_length = c & 0xFF; matchlet->value_length = matchlet->value_length << 8; c = getc_unlocked (magic_file); if (c == EOF) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_EOF; } matchlet->value_length = matchlet->value_length + (c & 0xFF); matchlet->value = malloc (matchlet->value_length); /* OOM */ if (matchlet->value == NULL) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_ERROR; } bytes_read = fread (matchlet->value, 1, matchlet->value_length, magic_file); if (bytes_read != matchlet->value_length) { _xdg_mime_magic_matchlet_free (matchlet); if (feof (magic_file)) return XDG_MIME_MAGIC_EOF; else return XDG_MIME_MAGIC_ERROR; } c = getc_unlocked (magic_file); if (c == '&') { matchlet->mask = malloc (matchlet->value_length); /* OOM */ if (matchlet->mask == NULL) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_ERROR; } bytes_read = fread (matchlet->mask, 1, matchlet->value_length, magic_file); if (bytes_read != matchlet->value_length) { _xdg_mime_magic_matchlet_free (matchlet); if (feof (magic_file)) return XDG_MIME_MAGIC_EOF; else return XDG_MIME_MAGIC_ERROR; } c = getc_unlocked (magic_file); } if (c == '~') { matchlet->word_size = _xdg_mime_magic_read_a_number (magic_file, &end_of_file); if (end_of_file) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_EOF; } if (matchlet->word_size != 0 && matchlet->word_size != 1 && matchlet->word_size != 2 && matchlet->word_size != 4) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_ERROR; } c = getc_unlocked (magic_file); } if (c == '+') { matchlet->range_length = _xdg_mime_magic_read_a_number (magic_file, &end_of_file); if (end_of_file) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_EOF; } if (matchlet->range_length == -1) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_ERROR; } c = getc_unlocked (magic_file); } if (c == '\n') { /* We clean up the matchlet, byte swapping if needed */ if (matchlet->word_size > 1) { int i; if (matchlet->value_length % matchlet->word_size != 0) { _xdg_mime_magic_matchlet_free (matchlet); return XDG_MIME_MAGIC_ERROR; } /* FIXME: need to get this defined in a style file */ #if LITTLE_ENDIAN for (i = 0; i < matchlet->value_length; i = i + matchlet->word_size) { if (matchlet->word_size == 2) *((xdg_uint16_t *) matchlet->value + i) = SWAP_BE16_TO_LE16 (*((xdg_uint16_t *) (matchlet->value + i))); else if (matchlet->word_size == 4) *((xdg_uint32_t *) matchlet->value + i) = SWAP_BE32_TO_LE32 (*((xdg_uint32_t *) (matchlet->value + i))); if (matchlet->mask) { if (matchlet->word_size == 2) *((xdg_uint16_t *) matchlet->mask + i) = SWAP_BE16_TO_LE16 (*((xdg_uint16_t *) (matchlet->mask + i))); else if (matchlet->word_size == 4) *((xdg_uint32_t *) matchlet->mask + i) = SWAP_BE32_TO_LE32 (*((xdg_uint32_t *) (matchlet->mask + i))); } } #endif } matchlet->next = match->matchlet; match->matchlet = matchlet; return XDG_MIME_MAGIC_MAGIC; } _xdg_mime_magic_matchlet_free (matchlet); if (c == EOF) return XDG_MIME_MAGIC_EOF; return XDG_MIME_MAGIC_ERROR; } static int _xdg_mime_magic_matchlet_compare_to_data (XdgMimeMagicMatchlet *matchlet, const void *data, size_t len) { int i, j; for (i = matchlet->offset; i < matchlet->offset + matchlet->range_length; i++) { int valid_matchlet = TRUE; if (i + matchlet->value_length > len) return FALSE; if (matchlet->mask) { for (j = 0; j < matchlet->value_length; j++) { if ((matchlet->value[j] & matchlet->mask[j]) != ((((unsigned char *) data)[j + i]) & matchlet->mask[j])) { valid_matchlet = FALSE; break; } } } else { for (j = 0; j < matchlet->value_length; j++) { if (matchlet->value[j] != ((unsigned char *) data)[j + i]) { valid_matchlet = FALSE; break; } } } if (valid_matchlet) return TRUE; } return FALSE; } static int _xdg_mime_magic_matchlet_compare_level (XdgMimeMagicMatchlet *matchlet, const void *data, size_t len, int indent) { while ((matchlet != NULL) && (matchlet->indent == indent)) { if (_xdg_mime_magic_matchlet_compare_to_data (matchlet, data, len)) { if ((matchlet->next == NULL) || (matchlet->next->indent <= indent)) return TRUE; if (_xdg_mime_magic_matchlet_compare_level (matchlet->next, data, len, indent + 1)) return TRUE; } do { matchlet = matchlet->next; } while (matchlet && matchlet->indent > indent); } return FALSE; } static int _xdg_mime_magic_match_compare_to_data (XdgMimeMagicMatch *match, const void *data, size_t len) { return _xdg_mime_magic_matchlet_compare_level (match->matchlet, data, len, 0); } static void _xdg_mime_magic_insert_match (XdgMimeMagic *mime_magic, XdgMimeMagicMatch *match) { XdgMimeMagicMatch *list; if (mime_magic->match_list == NULL) { mime_magic->match_list = match; return; } if (match->priority > mime_magic->match_list->priority) { match->next = mime_magic->match_list; mime_magic->match_list = match; return; } list = mime_magic->match_list; while (list->next != NULL) { if (list->next->priority < match->priority) { match->next = list->next; list->next = match; return; } list = list->next; } list->next = match; match->next = NULL; } XdgMimeMagic * _xdg_mime_magic_new (void) { return calloc (1, sizeof (XdgMimeMagic)); } void _xdg_mime_magic_free (XdgMimeMagic *mime_magic) { if (mime_magic) { _xdg_mime_magic_match_free (mime_magic->match_list); free (mime_magic); } } int _xdg_mime_magic_get_buffer_extents (XdgMimeMagic *mime_magic) { return mime_magic->max_extent; } const char * _xdg_mime_magic_lookup_data (XdgMimeMagic *mime_magic, const void *data, size_t len, int *result_prio, const char *mime_types[], int n_mime_types) { XdgMimeMagicMatch *match; const char *mime_type; int n; int prio; prio = 0; mime_type = NULL; for (match = mime_magic->match_list; match; match = match->next) { if (_xdg_mime_magic_match_compare_to_data (match, data, len)) { prio = match->priority; mime_type = match->mime_type; break; } else { for (n = 0; n < n_mime_types; n++) { if (mime_types[n] && _xdg_mime_mime_type_equal (mime_types[n], match->mime_type)) mime_types[n] = NULL; } } } if (mime_type == NULL) { for (n = 0; n < n_mime_types; n++) { if (mime_types[n]) mime_type = mime_types[n]; } } if (result_prio) *result_prio = prio; return mime_type; } static void _xdg_mime_update_mime_magic_extents (XdgMimeMagic *mime_magic) { XdgMimeMagicMatch *match; int max_extent = 0; for (match = mime_magic->match_list; match; match = match->next) { XdgMimeMagicMatchlet *matchlet; for (matchlet = match->matchlet; matchlet; matchlet = matchlet->next) { int extent; extent = matchlet->value_length + matchlet->offset + matchlet->range_length; if (max_extent < extent) max_extent = extent; } } mime_magic->max_extent = max_extent; } static XdgMimeMagicMatchlet * _xdg_mime_magic_matchlet_mirror (XdgMimeMagicMatchlet *matchlets) { XdgMimeMagicMatchlet *new_list; XdgMimeMagicMatchlet *tmp; if ((matchlets == NULL) || (matchlets->next == NULL)) return matchlets; new_list = NULL; tmp = matchlets; while (tmp != NULL) { XdgMimeMagicMatchlet *matchlet; matchlet = tmp; tmp = tmp->next; matchlet->next = new_list; new_list = matchlet; } return new_list; } static void _xdg_mime_magic_read_magic_file (XdgMimeMagic *mime_magic, FILE *magic_file) { XdgMimeMagicState state; XdgMimeMagicMatch *match = NULL; /* Quiet compiler */ state = XDG_MIME_MAGIC_SECTION; while (state != XDG_MIME_MAGIC_EOF) { switch (state) { case XDG_MIME_MAGIC_SECTION: match = _xdg_mime_magic_match_new (); state = _xdg_mime_magic_parse_header (magic_file, match); if (state == XDG_MIME_MAGIC_EOF || state == XDG_MIME_MAGIC_ERROR) _xdg_mime_magic_match_free (match); break; case XDG_MIME_MAGIC_MAGIC: state = _xdg_mime_magic_parse_magic_line (magic_file, match); if (state == XDG_MIME_MAGIC_SECTION || (state == XDG_MIME_MAGIC_EOF && match->mime_type)) { match->matchlet = _xdg_mime_magic_matchlet_mirror (match->matchlet); _xdg_mime_magic_insert_match (mime_magic, match); } else if (state == XDG_MIME_MAGIC_EOF || state == XDG_MIME_MAGIC_ERROR) _xdg_mime_magic_match_free (match); break; case XDG_MIME_MAGIC_ERROR: state = _xdg_mime_magic_parse_error (magic_file); break; case XDG_MIME_MAGIC_EOF: default: /* Make the compiler happy */ assert (0); } } _xdg_mime_update_mime_magic_extents (mime_magic); } void _xdg_mime_magic_read_from_file (XdgMimeMagic *mime_magic, const char *file_name) { FILE *magic_file; char header[12]; magic_file = fopen (file_name, "r"); if (magic_file == NULL) return; if (fread (header, 1, 12, magic_file) == 12) { if (memcmp ("MIME-Magic\0\n", header, 12) == 0) _xdg_mime_magic_read_magic_file (mime_magic, magic_file); } fclose (magic_file); } gnome-vfs-2.24.4/libgnomevfs/Makefile.in0000644000175000001440000013015211450333332015000 00000000000000# 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@ subdir = libgnomevfs DIST_COMMON = $(libgnomevfsinclude_HEADERS) \ $(libgnomevfsmoduleinclude_HEADERS) \ $(libgnomevfsplatforminclude_HEADERS) $(noinst_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/gnome-vfs-file-size.h.in \ $(srcdir)/gnome-vfs-version.h.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 = gnome-vfs-file-size.h gnome-vfs-version.h CONFIG_CLEAN_VPATH_FILES = 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)$(libdir)" \ "$(DESTDIR)$(libgnomevfsincludedir)" \ "$(DESTDIR)$(libgnomevfsmoduleincludedir)" \ "$(DESTDIR)$(libgnomevfsplatformincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libgnomevfs_2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(FNMATCH_LIBS) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__libgnomevfs_2_la_SOURCES_DIST = gnome-vfs-ace.c gnome-vfs-acl.c \ gnome-vfs-application-registry.c gnome-vfs-address.c \ gnome-vfs-async-job-map.c gnome-vfs-async-ops.c \ gnome-vfs-cancellable-ops.c gnome-vfs-cancellation.c \ gnome-vfs-configuration.c gnome-vfs-context.c \ gnome-vfs-directory.c gnome-vfs-drive.c gnome-vfs-file-info.c \ gnome-vfs-filesystem-type.c gnome-vfs-find-directory.c \ gnome-vfs-handle.c gnome-vfs-inet-connection.c \ gnome-vfs-init.c gnome-vfs-job-queue.c gnome-vfs-job.c \ gnome-vfs-method.c gnome-vfs-mime-handlers.c \ gnome-vfs-mime-info.c gnome-vfs-mime-info-cache.c \ gnome-vfs-mime-monitor.c gnome-vfs-mime-sniff-buffer.c \ gnome-vfs-mime.c gnome-vfs-mime-magic.c \ gnome-vfs-module-callback-module-api.c \ gnome-vfs-module-callback-private.c \ gnome-vfs-module-callback.c gnome-vfs-module-shared.c \ gnome-vfs-module.c gnome-vfs-monitor.c gnome-vfs-open-fd.c \ gnome-vfs-ops.c gnome-vfs-private-utils.c gnome-vfs-private.c \ gnome-vfs-resolve.c gnome-vfs-result.c \ gnome-vfs-socket-buffer.c gnome-vfs-socket.c gnome-vfs-ssl.c \ gnome-vfs-transform.c gnome-vfs-uri.c gnome-vfs-utils.c \ gnome-vfs-volume-monitor.c gnome-vfs-volume.c gnome-vfs-xfer.c \ xdgmimemagic.c xdgmime.c xdgmimecache.c xdgmimeglob.c \ xdgmimeint.c xdgmimealias.c xdgmimeparent.c xdgmimeicon.c \ gnome-vfs-enum-types.c gnome-vfs-cdrom.c \ gnome-vfs-daemon-method.c gnome-vfs-dbus-utils.c \ gnome-vfs-dns-sd.c gnome-vfs-module-callback-marshall.c \ gnome-vfs-parse-ls.c gnome-vfs-pty.c \ gnome-vfs-volume-monitor-client.c gnome-vfs-volume-ops.c \ gnome-vfs-dllmain.c am__objects_1 = gnome-vfs-enum-types.lo am__objects_2 = am__objects_3 = gnome-vfs-cdrom.lo gnome-vfs-daemon-method.lo \ gnome-vfs-dbus-utils.lo gnome-vfs-dns-sd.lo \ gnome-vfs-module-callback-marshall.lo gnome-vfs-parse-ls.lo \ gnome-vfs-pty.lo gnome-vfs-volume-monitor-client.lo \ gnome-vfs-volume-ops.lo $(am__objects_2) am__objects_4 = gnome-vfs-dllmain.lo $(am__objects_2) @OS_WIN32_FALSE@am__objects_5 = $(am__objects_3) @OS_WIN32_TRUE@am__objects_5 = $(am__objects_4) am_libgnomevfs_2_la_OBJECTS = gnome-vfs-ace.lo gnome-vfs-acl.lo \ gnome-vfs-application-registry.lo gnome-vfs-address.lo \ gnome-vfs-async-job-map.lo gnome-vfs-async-ops.lo \ gnome-vfs-cancellable-ops.lo gnome-vfs-cancellation.lo \ gnome-vfs-configuration.lo gnome-vfs-context.lo \ gnome-vfs-directory.lo gnome-vfs-drive.lo \ gnome-vfs-file-info.lo gnome-vfs-filesystem-type.lo \ gnome-vfs-find-directory.lo gnome-vfs-handle.lo \ gnome-vfs-inet-connection.lo gnome-vfs-init.lo \ gnome-vfs-job-queue.lo gnome-vfs-job.lo gnome-vfs-method.lo \ gnome-vfs-mime-handlers.lo gnome-vfs-mime-info.lo \ gnome-vfs-mime-info-cache.lo gnome-vfs-mime-monitor.lo \ gnome-vfs-mime-sniff-buffer.lo gnome-vfs-mime.lo \ gnome-vfs-mime-magic.lo \ gnome-vfs-module-callback-module-api.lo \ gnome-vfs-module-callback-private.lo \ gnome-vfs-module-callback.lo gnome-vfs-module-shared.lo \ gnome-vfs-module.lo gnome-vfs-monitor.lo gnome-vfs-open-fd.lo \ gnome-vfs-ops.lo gnome-vfs-private-utils.lo \ gnome-vfs-private.lo gnome-vfs-resolve.lo gnome-vfs-result.lo \ gnome-vfs-socket-buffer.lo gnome-vfs-socket.lo \ gnome-vfs-ssl.lo gnome-vfs-transform.lo gnome-vfs-uri.lo \ gnome-vfs-utils.lo gnome-vfs-volume-monitor.lo \ gnome-vfs-volume.lo gnome-vfs-xfer.lo xdgmimemagic.lo \ xdgmime.lo xdgmimecache.lo xdgmimeglob.lo xdgmimeint.lo \ xdgmimealias.lo xdgmimeparent.lo xdgmimeicon.lo \ $(am__objects_1) $(am__objects_5) $(am__objects_2) libgnomevfs_2_la_OBJECTS = $(am_libgnomevfs_2_la_OBJECTS) libgnomevfs_2_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgnomevfs_2_la_LDFLAGS) $(LDFLAGS) -o $@ libgnomevfsdaemon_2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) libgnomevfs-2.la $(am__DEPENDENCIES_1) am_libgnomevfsdaemon_2_la_OBJECTS = gnome-vfs-filesystem-type.lo \ gnome-vfs-cdrom.lo gnome-vfs-hal-mounts.lo \ gnome-vfs-volume-monitor-daemon.lo gnome-vfs-volume-monitor.lo \ gnome-vfs-unix-mounts.lo $(am__objects_2) libgnomevfsdaemon_2_la_OBJECTS = $(am_libgnomevfsdaemon_2_la_OBJECTS) @OS_WIN32_FALSE@am_libgnomevfsdaemon_2_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libgnomevfs_2_la_SOURCES) \ $(libgnomevfsdaemon_2_la_SOURCES) DIST_SOURCES = $(am__libgnomevfs_2_la_SOURCES_DIST) \ $(libgnomevfsdaemon_2_la_SOURCES) HEADERS = $(libgnomevfsinclude_HEADERS) \ $(libgnomevfsmoduleinclude_HEADERS) \ $(libgnomevfsplatforminclude_HEADERS) $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = @OS_WIN32_TRUE@FNMATCH_CFLAGS = -I$(top_srcdir)/imported/fnmatch @OS_WIN32_TRUE@FNMATCH_LIBS = ../imported/fnmatch/libfnmatch.la INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ $(LIBGNOMEVFS_CFLAGS) \ $(LIBGNOMEVFSDAEMON_CFLAGS) \ $(VFS_CFLAGS) \ $(FNMATCH_CFLAGS) \ -DXDG_PREFIX=_gnome_vfs_xdg \ -DDBUS_API_SUBJECT_TO_CHANGE \ -D_FILE_OFFSET_BITS=64 \ -D_BSD_SOURCE \ -D_LARGEFILE64_SOURCE \ -D_POSIX_PTHREAD_SEMANTICS \ -D_REENTRANT \ -DG_DISABLE_DEPRECATED \ -DGNOME_VFS_PREFIX=\"$(prefix)\" \ -DGNOME_VFS_BINDIR=\"$(bindir)\" \ -DGNOME_VFS_DATADIR=\"$(datadir)\" \ -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ -DGNOME_VFS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" \ -DGNOME_VFS_SYSCONFDIR=\"$(sysconfdir)\"\ -DG_LOG_DOMAIN=\"libgnomevfs\" \ $(NULL) libgnomevfs_headers_to_scan_for_enums = \ gnome-vfs-address.h \ gnome-vfs-application-registry.h \ gnome-vfs-async-ops.h \ gnome-vfs-cancellation.h \ gnome-vfs-context.h \ gnome-vfs-directory.h \ gnome-vfs-drive.h \ gnome-vfs-file-info.h \ gnome-vfs-file-size.h \ gnome-vfs-find-directory.h \ gnome-vfs-handle.h \ gnome-vfs-init.h \ gnome-vfs-job-limit.h \ gnome-vfs-mime.h \ gnome-vfs-mime-deprecated.h \ gnome-vfs-mime-handlers.h \ gnome-vfs-mime-info-cache.h \ gnome-vfs-mime-monitor.h \ gnome-vfs-mime-utils.h \ gnome-vfs-module-callback.h \ gnome-vfs-monitor.h \ gnome-vfs-ops.h \ gnome-vfs-resolve.h \ gnome-vfs-result.h \ gnome-vfs-standard-callbacks.h \ gnome-vfs-types.h \ gnome-vfs-utils.h \ gnome-vfs-volume.h \ gnome-vfs-volume-monitor.h \ gnome-vfs-xfer.h \ gnome-vfs.h \ $(NULL) libgnomevfs_headers = \ $(libgnomevfs_headers_to_scan_for_enums)\ gnome-vfs-dns-sd.h \ gnome-vfs-version.h \ gnome-vfs-uri.h \ $(NULL) export_symbols = $(LIBTOOL_EXPORT_OPTIONS) # Generate the enums source code, with glib-mkenums: # This is based on the same Makefile.am stuff in pango: libgnomevfs_built_headers = gnome-vfs-enum-types.h libgnomevfs_built_cfiles = gnome-vfs-enum-types.c lib_LTLIBRARIES = libgnomevfs-2.la @OS_WIN32_TRUE@SOCKET_LIBS = -lws2_32 @OS_WIN32_FALSE@noinst_LTLIBRARIES = libgnomevfsdaemon-2.la libgnomevfs_2_la_LIBADD = \ $(LIBGNOMEVFS_LIBS) \ $(FNMATCH_LIBS) \ $(SOCKET_LIBS) \ $(INTLLIBS) \ $(SELINUX_LIBS) \ $(NULL) libgnomevfs_2_la_LDFLAGS = \ -version-info $(LIBGNOMEVFS_CURRENT):$(LIBGNOMEVFS_REVISION):$(LIBGNOMEVFS_AGE) \ -no-undefined \ $(export_symbols) \ $(NULL) libgnomevfsdaemon_2_la_LIBADD = \ $(LIBGNOMEVFS_LIBS) \ $(LIBGNOMEVFSDAEMON_LIBS) \ libgnomevfs-2.la \ $(NULL) libgnomevfsincludedir = $(includedir)/gnome-vfs-2.0/libgnomevfs libgnomevfsmoduleincludedir = $(includedir)/gnome-vfs-module-2.0/libgnomevfs # mime-sniff-buffers and cancellabe-ops are used by modules noinst_HEADERS = \ gnome-vfs-async-job-map.h \ gnome-vfs-backend.h \ gnome-vfs-cancellable-ops.h \ gnome-vfs-cancellation-private.h \ gnome-vfs-cdrom.h \ gnome-vfs-configuration.h \ gnome-vfs-daemon-method.h \ gnome-vfs-dbus-utils.h \ gnome-vfs-filesystem-type.h \ gnome-vfs-handle-private.h \ gnome-vfs-hal-mounts.h \ gnome-vfs-iso9660.h \ gnome-vfs-job-queue.h \ gnome-vfs-job.h \ gnome-vfs-mime-magic.h \ gnome-vfs-mime-private.h \ gnome-vfs-mime-sniff-buffer-private.h \ gnome-vfs-mime-sniff-buffer.h \ gnome-vfs-module-callback-private.h \ gnome-vfs-monitor-private.h \ gnome-vfs-private-utils.h \ gnome-vfs-private.h \ gnome-vfs-unix-mounts.h \ gnome-vfs-volume-monitor-client.h \ gnome-vfs-volume-monitor-daemon.h \ gnome-vfs-volume-monitor-private.h \ xdgmime.h \ xdgmimecache.h \ xdgmimeglob.h \ xdgmimemagic.h \ xdgmimeint.h \ xdgmimealias.h \ xdgmimeparent.h \ xdgmimeicon.h \ $(NULL) libgnomevfsmoduleinclude_HEADERS = \ gnome-vfs-cancellable-ops.h \ gnome-vfs-inet-connection.h \ gnome-vfs-method.h \ gnome-vfs-mime-info.h \ gnome-vfs-module-callback-module-api.h \ gnome-vfs-module-shared.h \ gnome-vfs-module.h \ gnome-vfs-parse-ls.h \ gnome-vfs-ssl.h \ gnome-vfs-transform.h \ gnome-vfs-socket-buffer.h \ gnome-vfs-socket.h \ gnome-vfs-pty.h \ $(NULL) libgnomevfsinclude_HEADERS = \ gnome-vfs-ace.h \ gnome-vfs-acl.h \ gnome-vfs-application-registry.h \ gnome-vfs-address.h \ gnome-vfs-async-ops.h \ gnome-vfs-cancellation.h \ gnome-vfs-context.h \ gnome-vfs-directory.h \ gnome-vfs-dns-sd.h \ gnome-vfs-drive.h \ gnome-vfs-enum-types.h \ gnome-vfs-file-info.h \ gnome-vfs-file-size.h \ gnome-vfs-find-directory.h \ gnome-vfs-handle.h \ gnome-vfs-init.h \ gnome-vfs-job-limit.h \ gnome-vfs-mime.h \ gnome-vfs-mime-deprecated.h \ gnome-vfs-mime-handlers.h \ gnome-vfs-mime-info-cache.h \ gnome-vfs-mime-monitor.h \ gnome-vfs-mime-utils.h \ gnome-vfs-module-callback.h \ gnome-vfs-monitor.h \ gnome-vfs-ops.h \ gnome-vfs-resolve.h \ gnome-vfs-result.h \ gnome-vfs-standard-callbacks.h \ gnome-vfs-types.h \ gnome-vfs-uri.h \ gnome-vfs-utils.h \ gnome-vfs-version.h \ gnome-vfs-volume-monitor.h \ gnome-vfs-volume.h \ gnome-vfs-xfer.h \ gnome-vfs.h \ $(NULL) libgnomevfs_win32_sources = \ gnome-vfs-dllmain.c \ $(NULL) libgnomevfs_unix_sources = \ gnome-vfs-cdrom.c \ gnome-vfs-daemon-method.c \ gnome-vfs-dbus-utils.c \ gnome-vfs-dns-sd.c \ gnome-vfs-module-callback-marshall.c \ gnome-vfs-parse-ls.c \ gnome-vfs-pty.c \ gnome-vfs-volume-monitor-client.c \ gnome-vfs-volume-ops.c \ $(NULL) @OS_WIN32_FALSE@libgnomevfs_platform_sources = $(libgnomevfs_unix_sources) @OS_WIN32_TRUE@libgnomevfs_platform_sources = $(libgnomevfs_win32_sources) libgnomevfs_2_la_SOURCES = \ gnome-vfs-ace.c \ gnome-vfs-acl.c \ gnome-vfs-application-registry.c \ gnome-vfs-address.c \ gnome-vfs-async-job-map.c \ gnome-vfs-async-ops.c \ gnome-vfs-cancellable-ops.c \ gnome-vfs-cancellation.c \ gnome-vfs-configuration.c \ gnome-vfs-context.c \ gnome-vfs-directory.c \ gnome-vfs-drive.c \ gnome-vfs-file-info.c \ gnome-vfs-filesystem-type.c \ gnome-vfs-find-directory.c \ gnome-vfs-handle.c \ gnome-vfs-inet-connection.c \ gnome-vfs-init.c \ gnome-vfs-job-queue.c \ gnome-vfs-job.c \ gnome-vfs-method.c \ gnome-vfs-mime-handlers.c \ gnome-vfs-mime-info.c \ gnome-vfs-mime-info-cache.c \ gnome-vfs-mime-monitor.c \ gnome-vfs-mime-sniff-buffer.c \ gnome-vfs-mime.c \ gnome-vfs-mime-magic.c \ gnome-vfs-module-callback-module-api.c \ gnome-vfs-module-callback-private.c \ gnome-vfs-module-callback.c \ gnome-vfs-module-shared.c \ gnome-vfs-module.c \ gnome-vfs-monitor.c \ gnome-vfs-open-fd.c \ gnome-vfs-ops.c \ gnome-vfs-private-utils.c \ gnome-vfs-private.c \ gnome-vfs-resolve.c \ gnome-vfs-result.c \ gnome-vfs-socket-buffer.c \ gnome-vfs-socket.c \ gnome-vfs-ssl.c \ gnome-vfs-transform.c \ gnome-vfs-uri.c \ gnome-vfs-utils.c \ gnome-vfs-volume-monitor.c \ gnome-vfs-volume.c \ gnome-vfs-xfer.c \ xdgmimemagic.c \ xdgmime.c \ xdgmimecache.c \ xdgmimeglob.c \ xdgmimeint.c \ xdgmimealias.c \ xdgmimeparent.c \ xdgmimeicon.c \ $(libgnomevfs_built_cfiles) \ $(libgnomevfs_platform_sources) \ $(NULL) # The daemon uses all interfaces in gnome-vfs-cdrom # and uses _gnome_vfs_filesystem_volume_name, which all # only use static data. # libgnomevfsdaemon_2_la_SOURCES = \ gnome-vfs-filesystem-type.c \ gnome-vfs-cdrom.c \ gnome-vfs-hal-mounts.c \ gnome-vfs-volume-monitor-daemon.c \ gnome-vfs-volume-monitor.c \ gnome-vfs-unix-mounts.c \ $(NULL) # Platform specific includes libgnomevfsplatformincludedir = $(libdir)/gnome-vfs-2.0/include libgnomevfsplatforminclude_HEADERS = \ gnome-vfs-file-size.h # TESTS = check-headers.pl EXTRA_DIST = check-headers.pl $(libgnomevfs_win32_sources) BUILT_SOURCES = \ gnome-vfs-enum-types.h \ gnome-vfs-enum-types.c \ gnome-vfs-version.h \ $(NULL) CLEANFILES = $(BUILT_SOURCES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(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 libgnomevfs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu libgnomevfs/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): gnome-vfs-file-size.h: $(top_builddir)/config.status $(srcdir)/gnome-vfs-file-size.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ gnome-vfs-version.h: $(top_builddir)/config.status $(srcdir)/gnome-vfs-version.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 \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ 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)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done 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 clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_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 libgnomevfs-2.la: $(libgnomevfs_2_la_OBJECTS) $(libgnomevfs_2_la_DEPENDENCIES) $(libgnomevfs_2_la_LINK) -rpath $(libdir) $(libgnomevfs_2_la_OBJECTS) $(libgnomevfs_2_la_LIBADD) $(LIBS) libgnomevfsdaemon-2.la: $(libgnomevfsdaemon_2_la_OBJECTS) $(libgnomevfsdaemon_2_la_DEPENDENCIES) $(LINK) $(am_libgnomevfsdaemon_2_la_rpath) $(libgnomevfsdaemon_2_la_OBJECTS) $(libgnomevfsdaemon_2_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-ace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-acl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-address.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-application-registry.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-async-job-map.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-async-ops.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-cancellable-ops.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-cancellation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-cdrom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-configuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-context.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-daemon-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-dbus-utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-directory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-dllmain.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-dns-sd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-drive.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-enum-types.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-file-info.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-filesystem-type.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-find-directory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-hal-mounts.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-handle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-inet-connection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-init.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-job-queue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-job.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-method.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-mime-handlers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-mime-info-cache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-mime-info.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-mime-magic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-mime-monitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-mime-sniff-buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-mime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-module-callback-marshall.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-module-callback-module-api.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-module-callback-private.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-module-callback.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-module-shared.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-monitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-open-fd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-ops.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-parse-ls.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-private-utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-private.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-pty.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-resolve.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-result.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-socket-buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-socket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-ssl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-transform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-unix-mounts.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-uri.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-volume-monitor-client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-volume-monitor-daemon.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-volume-monitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-volume-ops.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-volume.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnome-vfs-xfer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmimealias.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmimecache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmimeglob.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmimeicon.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmimeint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmimemagic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xdgmimeparent.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-libgnomevfsincludeHEADERS: $(libgnomevfsinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(libgnomevfsincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgnomevfsincludedir)" @list='$(libgnomevfsinclude_HEADERS)'; test -n "$(libgnomevfsincludedir)" || 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_HEADER) $$files '$(DESTDIR)$(libgnomevfsincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgnomevfsincludedir)" || exit $$?; \ done uninstall-libgnomevfsincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgnomevfsinclude_HEADERS)'; test -n "$(libgnomevfsincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(libgnomevfsincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libgnomevfsincludedir)" && rm -f $$files install-libgnomevfsmoduleincludeHEADERS: $(libgnomevfsmoduleinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(libgnomevfsmoduleincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgnomevfsmoduleincludedir)" @list='$(libgnomevfsmoduleinclude_HEADERS)'; test -n "$(libgnomevfsmoduleincludedir)" || 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_HEADER) $$files '$(DESTDIR)$(libgnomevfsmoduleincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgnomevfsmoduleincludedir)" || exit $$?; \ done uninstall-libgnomevfsmoduleincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgnomevfsmoduleinclude_HEADERS)'; test -n "$(libgnomevfsmoduleincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(libgnomevfsmoduleincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libgnomevfsmoduleincludedir)" && rm -f $$files install-libgnomevfsplatformincludeHEADERS: $(libgnomevfsplatforminclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(libgnomevfsplatformincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgnomevfsplatformincludedir)" @list='$(libgnomevfsplatforminclude_HEADERS)'; test -n "$(libgnomevfsplatformincludedir)" || 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_HEADER) $$files '$(DESTDIR)$(libgnomevfsplatformincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgnomevfsplatformincludedir)" || exit $$?; \ done uninstall-libgnomevfsplatformincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libgnomevfsplatforminclude_HEADERS)'; test -n "$(libgnomevfsplatformincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(libgnomevfsplatformincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libgnomevfsplatformincludedir)" && 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 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libgnomevfsincludedir)" "$(DESTDIR)$(libgnomevfsmoduleincludedir)" "$(DESTDIR)$(libgnomevfsplatformincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) 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." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-libgnomevfsincludeHEADERS \ install-libgnomevfsmoduleincludeHEADERS \ install-libgnomevfsplatformincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES \ uninstall-libgnomevfsincludeHEADERS \ uninstall-libgnomevfsmoduleincludeHEADERS \ uninstall-libgnomevfsplatformincludeHEADERS .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ 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-html install-html-am install-info \ install-info-am install-libLTLIBRARIES \ install-libgnomevfsincludeHEADERS \ install-libgnomevfsmoduleincludeHEADERS \ install-libgnomevfsplatformincludeHEADERS 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-libLTLIBRARIES uninstall-libgnomevfsincludeHEADERS \ uninstall-libgnomevfsmoduleincludeHEADERS \ uninstall-libgnomevfsplatformincludeHEADERS # Don't build the library until we have built the header that it needs: $(OBJECTS) $(libgnomevfs_2_la_OBJECTS): $(libgnomevfs_built_headers) gnome-vfs-enum-types.h: @REBUILD@ $(libgnomevfs_headers_to_scan_for_enums) Makefile (cd $(srcdir) && glib-mkenums \ --fhead "#ifndef __LIBGNOMEVFS_ENUM_TYPES_H__\n#define __LIBGNOMEVFS_ENUM_TYPES_H__\n\n#include \n\nG_BEGIN_DECLS\n" \ --fprod "/* enumerations from \"@filename@\" */\n" \ --vhead "GType @enum_name@_get_type (void);\n#define GNOME_VFS_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ --ftail "G_END_DECLS\n\n#endif /* __LIBGNOMEVFS_ENUM_TYPES_H__ */" \ $(libgnomevfs_headers_to_scan_for_enums)) > $@ gnome-vfs-enum-types.c: @REBUILD@ $(libgnomevfs_headers_to_scan_for_enums) Makefile (cd $(srcdir) && glib-mkenums \ --fhead "#include \n" \ --fhead "#include \n" \ --fhead "#include " \ --fprod "\n/* enumerations from \"@filename@\" */" \ --vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \ --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ --vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \ $(libgnomevfs_headers_to_scan_for_enums)) > $@ # 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: gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-monitor-private.h0000644000175000001440000000311511334251016020137 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-monitor.h - File Monitoring for the GNOME Virtual File System. Copyright (C) 2001 Ian McKellar The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ian McKellar */ #ifndef GNOME_VFS_MONITOR_PRIVATE_H #define GNOME_VFS_MONITOR_PRIVATE_H #include #include #include #include GnomeVFSResult _gnome_vfs_monitor_do_add (GnomeVFSMethod *method, GnomeVFSMonitorHandle **handle, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type, GnomeVFSMonitorCallback callback, gpointer user_data); GnomeVFSResult _gnome_vfs_monitor_do_cancel (GnomeVFSMonitorHandle *handle); #endif /* GNOME_VFS_MONITOR_PRIVATE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-hal-mounts.c0000644000175000001440000015066411334251016017076 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-hal-mounts.c - read and monitor volumes using freedesktop HAL Copyright (C) 2004-2005 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: David Zeuthen */ #include #ifdef USE_HAL /* uncomment to get helpful debug messages */ /* #define HAL_SHOW_DEBUG */ #include #include #include #include #ifdef HAVE_SYS_SYSMACROS_H #include #endif #include #include #include #include #include #include #include #include #include #include #include "gnome-vfs-hal-mounts.h" #include "gnome-vfs-volume-monitor-daemon.h" #include "gnome-vfs-volume-monitor-private.h" #ifndef PATHNAME_MAX # define PATHNAME_MAX 1024 #endif typedef struct { GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; } GnomeVFSHalUserData; typedef enum { HAL_ICON_DRIVE_REMOVABLE_DISK = 0x10000, HAL_ICON_DRIVE_REMOVABLE_DISK_IDE = 0x10001, HAL_ICON_DRIVE_REMOVABLE_DISK_SCSI = 0x10002, HAL_ICON_DRIVE_REMOVABLE_DISK_USB = 0x10003, HAL_ICON_DRIVE_REMOVABLE_DISK_IEEE1394 = 0x10004, HAL_ICON_DRIVE_REMOVABLE_DISK_CCW = 0x10005, HAL_ICON_DRIVE_DISK = 0x10100, HAL_ICON_DRIVE_DISK_IDE = 0x10101, HAL_ICON_DRIVE_DISK_SCSI = 0x10102, HAL_ICON_DRIVE_DISK_USB = 0x10103, HAL_ICON_DRIVE_DISK_IEEE1394 = 0x10104, HAL_ICON_DRIVE_DISK_CCW = 0x10105, HAL_ICON_DRIVE_CDROM = 0x10200, HAL_ICON_DRIVE_CDWRITER = 0x102ff, HAL_ICON_DRIVE_FLOPPY = 0x10300, HAL_ICON_DRIVE_TAPE = 0x10400, HAL_ICON_DRIVE_COMPACT_FLASH = 0x10500, HAL_ICON_DRIVE_MEMORY_STICK = 0x10600, HAL_ICON_DRIVE_SMART_MEDIA = 0x10700, HAL_ICON_DRIVE_SD_MMC = 0x10800, HAL_ICON_DRIVE_CAMERA = 0x10900, HAL_ICON_DRIVE_PORTABLE_AUDIO_PLAYER = 0x10a00, HAL_ICON_DRIVE_ZIP = 0x10b00, HAL_ICON_DRIVE_JAZ = 0x10c00, HAL_ICON_DRIVE_FLASH_KEY = 0x10d00, HAL_ICON_VOLUME_REMOVABLE_DISK = 0x20000, HAL_ICON_VOLUME_REMOVABLE_DISK_IDE = 0x20001, HAL_ICON_VOLUME_REMOVABLE_DISK_SCSI = 0x20002, HAL_ICON_VOLUME_REMOVABLE_DISK_USB = 0x20003, HAL_ICON_VOLUME_REMOVABLE_DISK_IEEE1394 = 0x20004, HAL_ICON_VOLUME_REMOVABLE_DISK_CCW = 0x20005, HAL_ICON_VOLUME_DISK = 0x20100, HAL_ICON_VOLUME_DISK_IDE = 0x20101, HAL_ICON_VOLUME_DISK_SCSI = 0x20102, HAL_ICON_VOLUME_DISK_USB = 0x20103, HAL_ICON_VOLUME_DISK_IEEE1394 = 0x20104, HAL_ICON_VOLUME_DISK_CCW = 0x20105, /* specifically left out as we use icons based on media type in the optical drive HAL_ICON_VOLUME_CDROM = 0x20200 */ HAL_ICON_VOLUME_FLOPPY = 0x20300, HAL_ICON_VOLUME_TAPE = 0x20400, HAL_ICON_VOLUME_COMPACT_FLASH = 0x20500, HAL_ICON_VOLUME_MEMORY_STICK = 0x20600, HAL_ICON_VOLUME_SMART_MEDIA = 0x20700, HAL_ICON_VOLUME_SD_MMC = 0x20800, HAL_ICON_VOLUME_CAMERA = 0x20900, HAL_ICON_VOLUME_PORTABLE_AUDIO_PLAYER = 0x20a00, HAL_ICON_VOLUME_ZIP = 0x20b00, HAL_ICON_VOLUME_JAZ = 0x20c00, HAL_ICON_VOLUME_FLASH_KEY = 0x20d00, HAL_ICON_DISC_CDROM = 0x30000, HAL_ICON_DISC_CDR = 0x30001, HAL_ICON_DISC_CDRW = 0x30002, HAL_ICON_DISC_DVDROM = 0x30003, HAL_ICON_DISC_DVDRAM = 0x30004, HAL_ICON_DISC_DVDR = 0x30005, HAL_ICON_DISC_DVDRW = 0x30006, HAL_ICON_DISC_DVDPLUSR = 0x30007, HAL_ICON_DISC_DVDPLUSRW = 0x30008, HAL_ICON_DISC_DVDPLUSR_DL = 0x30009 } HalIcon; typedef struct { HalIcon icon; const char *icon_path; } HalIconPair; /* by design, the enums are laid out so we can do easy computations */ static const HalIconPair hal_icon_mapping[] = { {HAL_ICON_DRIVE_REMOVABLE_DISK, "gnome-dev-removable"}, {HAL_ICON_DRIVE_REMOVABLE_DISK_IDE, "gnome-dev-removable"}, {HAL_ICON_DRIVE_REMOVABLE_DISK_SCSI, "gnome-dev-removable"}, {HAL_ICON_DRIVE_REMOVABLE_DISK_USB, "gnome-dev-removable-usb"}, {HAL_ICON_DRIVE_REMOVABLE_DISK_IEEE1394, "gnome-dev-removable-1394"}, {HAL_ICON_DRIVE_REMOVABLE_DISK_CCW, "gnome-dev-removable"}, {HAL_ICON_DRIVE_DISK, "gnome-dev-removable"}, {HAL_ICON_DRIVE_DISK_IDE, "gnome-dev-removable"}, {HAL_ICON_DRIVE_DISK_SCSI, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-scsi */ {HAL_ICON_DRIVE_DISK_USB, "gnome-dev-removable-usb"}, {HAL_ICON_DRIVE_DISK_IEEE1394, "gnome-dev-removable-1394"}, {HAL_ICON_DRIVE_DISK_CCW, "gnome-dev-removable"}, {HAL_ICON_DRIVE_CDROM, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-cdrom */ {HAL_ICON_DRIVE_CDWRITER, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-cdwriter */ {HAL_ICON_DRIVE_FLOPPY, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-floppy */ {HAL_ICON_DRIVE_TAPE, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-tape */ {HAL_ICON_DRIVE_COMPACT_FLASH, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-cf */ {HAL_ICON_DRIVE_MEMORY_STICK, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-ms */ {HAL_ICON_DRIVE_SMART_MEDIA, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-sm */ {HAL_ICON_DRIVE_SD_MMC, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-sdmmc */ {HAL_ICON_DRIVE_CAMERA, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-camera */ {HAL_ICON_DRIVE_PORTABLE_AUDIO_PLAYER, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-ipod */ {HAL_ICON_DRIVE_ZIP, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-zip */ {HAL_ICON_DRIVE_JAZ, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-jaz */ {HAL_ICON_DRIVE_FLASH_KEY, "gnome-dev-removable"}, /* TODO: gnome-dev-removable-pendrive */ {HAL_ICON_VOLUME_REMOVABLE_DISK, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_REMOVABLE_DISK_IDE, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_REMOVABLE_DISK_SCSI, "gnome-dev-harddisk"}, /* TODO: gnome-dev-harddisk-scsi */ {HAL_ICON_VOLUME_REMOVABLE_DISK_USB, "gnome-dev-harddisk-usb"}, {HAL_ICON_VOLUME_REMOVABLE_DISK_IEEE1394, "gnome-dev-harddisk-1394"}, {HAL_ICON_VOLUME_REMOVABLE_DISK_CCW, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_DISK, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_DISK_IDE, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_DISK_SCSI, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_DISK_USB, "gnome-dev-harddisk-usb"}, {HAL_ICON_VOLUME_DISK_IEEE1394, "gnome-dev-harddisk-1394"}, {HAL_ICON_VOLUME_DISK_CCW, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_FLOPPY, "gnome-dev-floppy"}, {HAL_ICON_VOLUME_TAPE, "gnome-dev-harddisk"}, {HAL_ICON_VOLUME_COMPACT_FLASH, "gnome-dev-media-cf"}, {HAL_ICON_VOLUME_MEMORY_STICK, "gnome-dev-media-ms"}, {HAL_ICON_VOLUME_SMART_MEDIA, "gnome-dev-media-sm"}, {HAL_ICON_VOLUME_SD_MMC, "gnome-dev-media-sdmmc"}, {HAL_ICON_VOLUME_CAMERA, "camera"}, {HAL_ICON_VOLUME_PORTABLE_AUDIO_PLAYER, "gnome-dev-ipod"}, {HAL_ICON_VOLUME_ZIP, "gnome-dev-zipdisk"}, {HAL_ICON_VOLUME_JAZ, "gnome-dev-jazdisk"}, {HAL_ICON_VOLUME_FLASH_KEY, "gnome-dev-harddisk"}, /* TODO: gnome-dev-pendrive */ {HAL_ICON_DISC_CDROM, "gnome-dev-cdrom"}, {HAL_ICON_DISC_CDR, "gnome-dev-disc-cdr"}, {HAL_ICON_DISC_CDRW, "gnome-dev-disc-cdrw"}, {HAL_ICON_DISC_DVDROM, "gnome-dev-disc-dvdrom"}, {HAL_ICON_DISC_DVDRAM, "gnome-dev-disc-dvdram"}, {HAL_ICON_DISC_DVDR, "gnome-dev-disc-dvdr"}, {HAL_ICON_DISC_DVDRW, "gnome-dev-disc-dvdrw"}, {HAL_ICON_DISC_DVDPLUSR, "gnome-dev-disc-dvdr-plus"}, {HAL_ICON_DISC_DVDPLUSRW, "gnome-dev-disc-dvdrw"}, /* TODO: gnome-dev-disc-dvdrw-plus */ {HAL_ICON_DISC_DVDPLUSR_DL, "gnome-dev-disc-dvdr-plus"}, /* TODO: gnome-dev-disc-dvdr-plus-dl */ {0x00, NULL} }; /*------------------------------------------------------------------------*/ static const char * _hal_lookup_icon (HalIcon icon) { int i; const char *result; result = NULL; /* TODO: could make lookup better than O(n) */ for (i = 0; hal_icon_mapping[i].icon_path != NULL; i++) { if (hal_icon_mapping[i].icon == icon) { result = hal_icon_mapping[i].icon_path; break; } } return result; } /* hal_volume may be NULL */ static char * _hal_drive_policy_get_icon (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { const char *name; LibHalDriveBus bus; LibHalDriveType drive_type; name = libhal_drive_get_dedicated_icon_drive (hal_drive); if (name != NULL) goto out; bus = libhal_drive_get_bus (hal_drive); drive_type = libhal_drive_get_type (hal_drive); /* by design, the enums are laid out so we can do easy computations */ switch (drive_type) { case LIBHAL_DRIVE_TYPE_REMOVABLE_DISK: case LIBHAL_DRIVE_TYPE_DISK: name = _hal_lookup_icon (0x10000 + drive_type*0x100 + bus); break; case LIBHAL_DRIVE_TYPE_CDROM: { LibHalDriveCdromCaps cdrom_caps; gboolean cdrom_can_burn; /* can burn if other flags than cdrom and dvdrom */ cdrom_caps = libhal_drive_get_cdrom_caps (hal_drive); cdrom_can_burn = ((cdrom_caps & (LIBHAL_DRIVE_CDROM_CAPS_CDROM| LIBHAL_DRIVE_CDROM_CAPS_DVDROM)) == cdrom_caps); name = _hal_lookup_icon (0x10000 + drive_type*0x100 + (cdrom_can_burn ? 0xff : 0x00)); break; } default: name = _hal_lookup_icon (0x10000 + drive_type*0x100); } out: if (name != NULL) return g_strdup (name); else { g_warning ("_hal_drive_policy_get_icon : error looking up icon; defaulting to gnome-dev-removable"); return g_strdup ("gnome-dev-removable"); } } static char * _hal_volume_policy_get_icon (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { const char *name; LibHalDriveBus bus; LibHalDriveType drive_type; LibHalVolumeDiscType disc_type; name = libhal_drive_get_dedicated_icon_volume (hal_drive); if (name != NULL) goto out; /* by design, the enums are laid out so we can do easy computations */ if (libhal_volume_is_disc (hal_volume)) { disc_type = libhal_volume_get_disc_type (hal_volume); name = _hal_lookup_icon (0x30000 + disc_type); goto out; } if (hal_drive == NULL) { name = _hal_lookup_icon (HAL_ICON_VOLUME_REMOVABLE_DISK); goto out; } bus = libhal_drive_get_bus (hal_drive); drive_type = libhal_drive_get_type (hal_drive); switch (drive_type) { case LIBHAL_DRIVE_TYPE_REMOVABLE_DISK: case LIBHAL_DRIVE_TYPE_DISK: name = _hal_lookup_icon (0x20000 + drive_type*0x100 + bus); break; default: name = _hal_lookup_icon (0x20000 + drive_type*0x100); } out: if (name != NULL) return g_strdup (name); else { g_warning ("_hal_volume_policy_get_icon : error looking up icon; defaulting to gnome-dev-harddisk"); return g_strdup ("gnome-dev-harddisk"); } } /*------------------------------------------------------------------------*/ /* hal_volume may be NULL */ static char * _hal_drive_policy_get_display_name (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { const char *model; const char *vendor; LibHalDriveType drive_type; char *name; char *vm_name; gboolean may_prepend_external; name = NULL; may_prepend_external = FALSE; drive_type = libhal_drive_get_type (hal_drive); /* Handle disks without removable media */ if ((drive_type == LIBHAL_DRIVE_TYPE_DISK) && !libhal_drive_uses_removable_media (hal_drive) && hal_volume != NULL) { const char *label; const char *size_str; /* use label if available */ label = libhal_volume_get_label (hal_volume); if (label != NULL && strlen (label) > 0) { name = g_strdup (label); goto out; } /* Otherwise, just use volume size */ size_str = gnome_vfs_format_file_size_for_display (libhal_volume_get_size (hal_volume)); if (size_str != NULL) { name = g_strdup_printf (_("%s Volume"), size_str); } goto out; } /* removable media and special drives */ /* drives we know the type of */ if (drive_type == LIBHAL_DRIVE_TYPE_CDROM) { const char *first; const char *second; LibHalDriveCdromCaps drive_cdrom_caps; drive_cdrom_caps = libhal_drive_get_cdrom_caps (hal_drive); first = _("CD-ROM"); if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_CDR) first = _("CD-R"); if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_CDRW) first = _("CD-RW"); second = NULL; if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDROM) second = _("DVD-ROM"); if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR) second = _("DVD+R"); if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW) second = _("DVD+RW"); if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDR) second = _("DVD-R"); if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRW) second = _("DVD-RW"); if (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRAM) second = _("DVD-RAM"); if ((drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDR) && (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSR)) second = _("DVD±R"); if ((drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDRW) && (drive_cdrom_caps & LIBHAL_DRIVE_CDROM_CAPS_DVDPLUSRW)) second = _("DVD±RW"); if (second != NULL) { name = g_strdup_printf (_("%s/%s Drive"), first, second); } else { name = g_strdup_printf (_("%s Drive"), first); } may_prepend_external = TRUE; } else if (drive_type == LIBHAL_DRIVE_TYPE_FLOPPY) { name = g_strdup (_("Floppy Drive")); may_prepend_external = TRUE; } else if (drive_type == LIBHAL_DRIVE_TYPE_COMPACT_FLASH) { name = g_strdup (_("Compact Flash Drive")); } else if (drive_type == LIBHAL_DRIVE_TYPE_MEMORY_STICK) { name = g_strdup (_("Memory Stick Drive")); } else if (drive_type == LIBHAL_DRIVE_TYPE_SMART_MEDIA) { name = g_strdup (_("Smart Media Drive")); } else if (drive_type == LIBHAL_DRIVE_TYPE_SD_MMC) { name = g_strdup (_("SD/MMC Drive")); } else if (drive_type == LIBHAL_DRIVE_TYPE_ZIP) { name = g_strdup (_("Zip Drive")); may_prepend_external = TRUE; } else if (drive_type == LIBHAL_DRIVE_TYPE_JAZ) { name = g_strdup (_("Jaz Drive")); may_prepend_external = TRUE; } else if (drive_type == LIBHAL_DRIVE_TYPE_FLASHKEY) { name = g_strdup (_("Pen Drive")); } else if (drive_type == LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER) { const char *vendor; const char *model; vendor = libhal_drive_get_vendor (hal_drive); model = libhal_drive_get_model (hal_drive); name = g_strdup_printf (_("%s %s Music Player"), vendor != NULL ? vendor : "", model != NULL ? model : ""); } else if (drive_type == LIBHAL_DRIVE_TYPE_CAMERA) { const char *vendor; const char *model; vendor = libhal_drive_get_vendor (hal_drive); model = libhal_drive_get_model (hal_drive); name = g_strdup_printf (_("%s %s Digital Camera"), vendor != NULL ? vendor : "", model != NULL ? model : ""); } if (name != NULL) goto out; /* model and vendor at last resort */ model = libhal_drive_get_model (hal_drive); vendor = libhal_drive_get_vendor (hal_drive); vm_name = NULL; if (vendor == NULL || strlen (vendor) == 0) { if (model != NULL && strlen (model) > 0) vm_name = g_strdup (model); } else { if (model == NULL || strlen (model) == 0) vm_name = g_strdup (vendor); else { vm_name = g_strdup_printf ("%s %s", vendor, model); } } if (vm_name != NULL) { name = vm_name; } out: /* lame fallback */ if (name == NULL) name = g_strdup (_("Drive")); if (may_prepend_external) { if (libhal_drive_is_hotpluggable (hal_drive)) { char *tmp = name; name = g_strdup_printf (_("External %s"), name); g_free (tmp); } } return name; } static char * _hal_volume_policy_get_display_name (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { LibHalDriveType drive_type; const char *volume_label; char *name; char *size_str; name = NULL; drive_type = libhal_drive_get_type (hal_drive); volume_label = libhal_volume_get_label (hal_volume); /* Use volume label if available */ if (volume_label != NULL) { name = g_strdup (volume_label); goto out; } /* Handle media in optical drives */ if (drive_type == LIBHAL_DRIVE_TYPE_CDROM) { switch (libhal_volume_get_disc_type (hal_volume)) { default: /* explict fallthrough */ case LIBHAL_VOLUME_DISC_TYPE_CDROM: name = g_strdup (_("CD-ROM Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_CDR: if (libhal_volume_disc_is_blank (hal_volume)) name = g_strdup (_("Blank CD-R Disc")); else name = g_strdup (_("CD-R Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_CDRW: if (libhal_volume_disc_is_blank (hal_volume)) name = g_strdup (_("Blank CD-RW Disc")); else name = g_strdup (_("CD-RW Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_DVDROM: name = g_strdup (_("DVD-ROM Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_DVDRAM: if (libhal_volume_disc_is_blank (hal_volume)) name = g_strdup (_("Blank DVD-RAM Disc")); else name = g_strdup (_("DVD-RAM Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_DVDR: if (libhal_volume_disc_is_blank (hal_volume)) name = g_strdup (_("Blank DVD-R Disc")); else name = g_strdup (_("DVD-R Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_DVDRW: if (libhal_volume_disc_is_blank (hal_volume)) name = g_strdup (_("Blank DVD-RW Disc")); else name = g_strdup (_("DVD-RW Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR: if (libhal_volume_disc_is_blank (hal_volume)) name = g_strdup (_("Blank DVD+R Disc")); else name = g_strdup (_("DVD+R Disc")); break; case LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW: if (libhal_volume_disc_is_blank (hal_volume)) name = g_strdup (_("Blank DVD+RW Disc")); else name = g_strdup (_("DVD+RW Disc")); break; } /* Special case for pure audio disc */ if (libhal_volume_disc_has_audio (hal_volume) && !libhal_volume_disc_has_data (hal_volume)) { free (name); name = g_strdup (_("Audio Disc")); } goto out; } /* Fallback: size of media */ size_str = gnome_vfs_format_file_size_for_display (libhal_volume_get_size (hal_volume)); if (size_str != NULL) { if (libhal_drive_uses_removable_media (hal_drive)) { name = g_strdup_printf (_("%s Removable Volume"), size_str); } else { name = g_strdup_printf (_("%s Volume"), size_str); } g_free (size_str); } out: /* lame fallback */ if (name == NULL) name = g_strdup (_("Volume")); return name; } /*------------------------------------------------------------------------*/ /* hal_volume may be NULL */ static gboolean _hal_drive_policy_check (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { gboolean ret; GnomeVFSHalUserData *hal_userdata; ret = FALSE; g_return_val_if_fail (volume_monitor_daemon != NULL, ret); hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (volume_monitor_daemon->hal_ctx); g_return_val_if_fail (hal_userdata != NULL, ret); ret = TRUE; return ret; } static gboolean _hal_volume_policy_check (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { #if 0 const char *label; const char *fstype; #endif gboolean ret; const char *fhs23_toplevel_mount_points[] = { "/", "/bin", "/boot", "/dev", "/etc", "/home", "/lib", "/lib64", "/media", "/mnt", "/opt", "/root", "/sbin", "/srv", "/tmp", "/usr", "/var", "/proc", "/sbin", NULL }; ret = FALSE; /* need to pass drive checks before considering volumes */ if (!_hal_drive_policy_check (volume_monitor_daemon, hal_drive, hal_volume)) goto out; /* needs to be a mountable filesystem OR contain crypto bits OR audio disc OR blank disc */ if (! ((libhal_volume_get_fsusage (hal_volume) == LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM) || (libhal_volume_get_fsusage (hal_volume) == LIBHAL_VOLUME_USAGE_CRYPTO) || libhal_volume_disc_has_audio (hal_volume) || libhal_volume_disc_is_blank (hal_volume))) goto out; /* if we contain crypto bits, only show if our cleartext volume is not yet setup */ if (libhal_volume_get_fsusage (hal_volume) == LIBHAL_VOLUME_USAGE_CRYPTO) { char *clear_udi; clear_udi = libhal_volume_crypto_get_clear_volume_udi (volume_monitor_daemon->hal_ctx, hal_volume); if (clear_udi != NULL) { free (clear_udi); goto out; } } /* for volumes the vendor and/or sysadmin wants to be ignore (e.g. bootstrap HFS * partitions on the Mac, HP_RECOVERY partitions on HP systems etc.) */ if (libhal_volume_should_ignore (hal_volume)) goto out; /* if mounted; discard if it got a FHS-2.3 name (to get /, /boot, /usr etc. out of the way) * * (yes, this breaks if the user mounts it later but that is not normally the case for such volumes) */ if (libhal_volume_is_mounted (hal_volume)) { int i; const char *mount_point; mount_point = libhal_volume_get_mount_point (hal_volume); /* blacklist fhs2.3 top level mount points */ if (mount_point != NULL) { for (i = 0; fhs23_toplevel_mount_points[i] != NULL; i++) { if (strcmp (mount_point, fhs23_toplevel_mount_points[i]) == 0) goto out; } } } #if 0 label = libhal_volume_get_label (hal_volume); fstype = libhal_volume_get_fstype (hal_volume); /* blacklist partitions with name 'bootstrap' of type HFS (Apple uses that) */ if (label != NULL && fstype != NULL && strcmp (label, "bootstrap") == 0 && strcmp (fstype, "hfs") == 0) goto out; #endif ret = TRUE; out: return ret; } static gboolean _hal_volume_temp_udi (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { const char *volume_udi; gboolean ret; ret = FALSE; volume_udi = libhal_volume_get_udi (hal_volume); if (strncmp (volume_udi, "/org/freedesktop/Hal/devices/temp", strlen ("/org/freedesktop/Hal/devices/temp")) == 0) ret = TRUE; return ret; } static gboolean _hal_volume_policy_show_on_desktop (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { gboolean ret; ret = TRUE; /* Right now we show everything on the desktop as there is no setting * for this.. potentially we could hide fixed drives.. */ return ret; } /*------------------------------------------------------------------------*/ static int _hal_get_gnome_vfs_device_type (LibHalDrive *hal_drive) { int result; /* fallthroughs are explicit */ switch (libhal_drive_get_type (hal_drive)) { case LIBHAL_DRIVE_TYPE_CDROM: result = GNOME_VFS_DEVICE_TYPE_CDROM; break; case LIBHAL_DRIVE_TYPE_FLOPPY: result = GNOME_VFS_DEVICE_TYPE_FLOPPY; break; case LIBHAL_DRIVE_TYPE_ZIP: result = GNOME_VFS_DEVICE_TYPE_ZIP; break; case LIBHAL_DRIVE_TYPE_JAZ: result = GNOME_VFS_DEVICE_TYPE_JAZ; break; case LIBHAL_DRIVE_TYPE_CAMERA: result = GNOME_VFS_DEVICE_TYPE_CAMERA; break; case LIBHAL_DRIVE_TYPE_COMPACT_FLASH: case LIBHAL_DRIVE_TYPE_SMART_MEDIA: case LIBHAL_DRIVE_TYPE_SD_MMC: case LIBHAL_DRIVE_TYPE_FLASHKEY: case LIBHAL_DRIVE_TYPE_MEMORY_STICK: result = GNOME_VFS_DEVICE_TYPE_MEMORY_STICK; break; case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER: result = GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER; break; case LIBHAL_DRIVE_TYPE_TAPE: case LIBHAL_DRIVE_TYPE_REMOVABLE_DISK: case LIBHAL_DRIVE_TYPE_DISK: default: result = GNOME_VFS_DEVICE_TYPE_HARDDRIVE; break; } return result; } static void _hal_add_drive_without_volumes (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive) { GnomeVFSDrive *drive; GnomeVFSVolumeMonitor *volume_monitor; char *name; DBusError error; gboolean media_check_enabled; g_return_if_fail (hal_drive != NULL); #ifdef HAL_SHOW_DEBUG g_debug ("entering _hal_add_drive_without_volumes for\n drive udi '%s'\n", libhal_drive_get_udi (hal_drive)); #endif volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon); if (!_hal_drive_policy_check (volume_monitor_daemon, hal_drive, NULL)) { /* make sure to delete the drive/volume for policy changes */ drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi ( volume_monitor, libhal_drive_get_udi (hal_drive)); if (drive != NULL) { #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSDrive for device path %s", drive->priv->device_path); #endif _gnome_vfs_volume_monitor_disconnected (volume_monitor, drive); } goto out; } /* don't add if it's already there */ drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi (volume_monitor, libhal_drive_get_udi (hal_drive)); if (drive != NULL) { goto out; } /* doesn't make sense for devices without removable storage */ if (!libhal_drive_uses_removable_media (hal_drive)) { goto out; } dbus_error_init (&error); media_check_enabled = libhal_device_get_property_bool (volume_monitor_daemon->hal_ctx, libhal_drive_get_udi (hal_drive), "storage.media_check_enabled", &error); if (dbus_error_is_set (&error)) { g_warning ("Error retrieving storage.media_check_enabled on '%s': Error: '%s' Message: '%s'", libhal_drive_get_udi (hal_drive), error.name, error.message); dbus_error_free (&error); media_check_enabled = FALSE; } drive = g_object_new (GNOME_VFS_TYPE_DRIVE, NULL); drive->priv->activation_uri = g_strdup (""); drive->priv->is_connected = 1; drive->priv->device_path = g_strdup (libhal_drive_get_device_file (hal_drive)); drive->priv->device_type = _hal_get_gnome_vfs_device_type (hal_drive); drive->priv->icon = _hal_drive_policy_get_icon (volume_monitor_daemon, hal_drive, NULL); name = _hal_drive_policy_get_display_name (volume_monitor_daemon, hal_drive, NULL); drive->priv->display_name = _gnome_vfs_volume_monitor_uniquify_drive_name (volume_monitor, name); g_free (name); drive->priv->is_user_visible = !media_check_enabled; /* See http://bugzilla.gnome.org/show_bug.cgi?id=321320 */ name = g_utf8_casefold (drive->priv->display_name, -1); drive->priv->display_name_key = g_utf8_collate_key (name, -1); g_free (name); drive->priv->volumes = NULL; drive->priv->hal_udi = g_strdup (libhal_drive_get_udi (hal_drive)); drive->priv->must_eject_at_unmount = libhal_drive_requires_eject (hal_drive); #ifdef HAL_SHOW_DEBUG g_debug ("Adding GnomeVFSDrive for device path %s", libhal_drive_get_device_file (hal_drive)); #endif _gnome_vfs_volume_monitor_connected (volume_monitor, drive); gnome_vfs_drive_unref (drive); out: ; } static gboolean _hal_add_volume (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, LibHalDrive *hal_drive, LibHalVolume *hal_volume) { gboolean ret; GnomeVFSVolume *vol; GnomeVFSDrive *drive; GnomeVFSVolumeMonitor *volume_monitor; char *name; gboolean allowed_by_policy; const char *backing_udi; g_return_val_if_fail (hal_drive != NULL, FALSE); g_return_val_if_fail (hal_volume != NULL, FALSE); ret = FALSE; backing_udi = NULL; volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon); allowed_by_policy = _hal_volume_policy_check (volume_monitor_daemon, hal_drive, hal_volume); #ifdef HAL_SHOW_DEBUG g_debug ("entering _hal_add_volume for\n" " drive udi '%s'\n" " volume udi '%s'\n" " allowd_by_policy %s", libhal_drive_get_udi (hal_drive), libhal_volume_get_udi (hal_volume), allowed_by_policy ? "yes" : "no"); #endif if (!allowed_by_policy) { /* make sure to completey delete any existing drive/volume for policy changes if the * user_visible flag differs... */ vol = _gnome_vfs_volume_monitor_find_volume_by_hal_udi ( volume_monitor, libhal_volume_get_udi (hal_volume)); if (vol != NULL && vol->priv->is_user_visible) { #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSVolume for device path %s", vol->priv->device_path); #endif _gnome_vfs_volume_monitor_unmounted (volume_monitor, vol); vol = NULL; } drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi ( volume_monitor, libhal_volume_get_udi (hal_volume)); if (drive != NULL && drive->priv->is_user_visible) { if (vol != NULL) { #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSVolume for device path %s", vol->priv->device_path); #endif _gnome_vfs_volume_monitor_unmounted (volume_monitor, vol); vol = NULL; } #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSDrive for device path %s", drive->priv->device_path); #endif _gnome_vfs_volume_monitor_disconnected (volume_monitor, drive); } } if ( _hal_volume_temp_udi (volume_monitor_daemon, hal_drive, hal_volume)) goto out; /* OK, check if we got a drive_without_volumes drive and delete that since we're going to add a * drive for added partitions */ drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi (volume_monitor, libhal_drive_get_udi (hal_drive)); if (drive != NULL) { #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSDrive for device path %s", drive->priv->device_path); #endif _gnome_vfs_volume_monitor_disconnected (volume_monitor, drive); } if (!allowed_by_policy && libhal_volume_get_fsusage (hal_volume) != LIBHAL_VOLUME_USAGE_MOUNTABLE_FILESYSTEM) goto out; /* If we're stemming from a crypto volume... then remove the * GnomeVFSDrive we added so users had a way to invoke * gnome-mount for asking for the pass-phrase... */ backing_udi = libhal_volume_crypto_get_backing_volume_udi (hal_volume); if (backing_udi != NULL) { GnomeVFSDrive *backing_drive; backing_drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi (volume_monitor, backing_udi); if (backing_drive != NULL) { #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSDrive for crypto device with path %s " "(got cleartext device at path %s)", backing_drive->priv->device_path, libhal_volume_get_device_file (hal_volume)); #endif _gnome_vfs_volume_monitor_disconnected (volume_monitor, backing_drive); } } /* if we had a drive from here but where we weren't mounted, just use that drive since nothing actually * changed */ drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi (volume_monitor, libhal_volume_get_udi (hal_volume)); if (drive == NULL && allowed_by_policy) { drive = g_object_new (GNOME_VFS_TYPE_DRIVE, NULL); if (libhal_volume_disc_has_audio (hal_volume)) { drive->priv->activation_uri = g_strdup_printf ("cdda://%s", libhal_volume_get_device_file (hal_volume)); } else if (libhal_volume_disc_is_blank (hal_volume)) { drive->priv->activation_uri = g_strdup ("burn:///"); } else if (libhal_volume_is_mounted (hal_volume)) { drive->priv->activation_uri = gnome_vfs_get_uri_from_local_path ( libhal_volume_get_mount_point (hal_volume)); } else { /* This sucks but it doesn't make sense to talk about the activation_uri if we're not mounted! * So just set it to the empty string */ drive->priv->activation_uri = g_strdup (""); } drive->priv->is_connected = TRUE; drive->priv->device_path = g_strdup (libhal_volume_get_device_file (hal_volume)); drive->priv->device_type = _hal_get_gnome_vfs_device_type (hal_drive); /* TODO: could add an icon of a drive with media in it since this codepath only * handles drives with media in them */ drive->priv->icon = _hal_drive_policy_get_icon (volume_monitor_daemon, hal_drive, NULL); name = _hal_drive_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume); drive->priv->display_name = _gnome_vfs_volume_monitor_uniquify_drive_name (volume_monitor, name); g_free (name); name = g_utf8_casefold (drive->priv->display_name, -1); drive->priv->display_name_key = g_utf8_collate_key (name, -1); g_free (name); drive->priv->is_user_visible = allowed_by_policy; drive->priv->volumes = NULL; drive->priv->hal_udi = g_strdup (libhal_volume_get_udi (hal_volume)); drive->priv->hal_drive_udi = g_strdup (libhal_drive_get_udi (hal_drive)); drive->priv->hal_backing_crypto_volume_udi = g_strdup (backing_udi); drive->priv->must_eject_at_unmount = libhal_drive_requires_eject (hal_drive); #ifdef HAL_SHOW_DEBUG g_debug ("Adding GnomeVFSDrive for device path %s", libhal_volume_get_device_file (hal_volume)); #endif _gnome_vfs_volume_monitor_connected (volume_monitor, drive); gnome_vfs_drive_unref (drive); } vol = _gnome_vfs_volume_monitor_find_volume_by_hal_udi (volume_monitor, libhal_volume_get_udi (hal_volume)); if (vol == NULL && (libhal_volume_is_mounted (hal_volume) || libhal_volume_disc_has_audio (hal_volume) || libhal_volume_disc_is_blank (hal_volume))) { vol = g_object_new (GNOME_VFS_TYPE_VOLUME, NULL); vol->priv->volume_type = GNOME_VFS_VOLUME_TYPE_MOUNTPOINT; vol->priv->device_path = g_strdup (libhal_volume_get_device_file (hal_volume)); vol->priv->unix_device = makedev (libhal_volume_get_device_major (hal_volume), libhal_volume_get_device_minor (hal_volume)); if (libhal_volume_disc_has_audio (hal_volume)) { vol->priv->volume_type = GNOME_VFS_VOLUME_TYPE_VFS_MOUNT; vol->priv->activation_uri = g_strdup_printf ("cdda://%s", libhal_volume_get_device_file (hal_volume)); } else if (libhal_volume_disc_is_blank (hal_volume)) { vol->priv->volume_type = GNOME_VFS_VOLUME_TYPE_VFS_MOUNT; vol->priv->activation_uri = g_strdup ("burn:///"); } else { vol->priv->activation_uri = gnome_vfs_get_uri_from_local_path ( libhal_volume_get_mount_point (hal_volume)); } vol->priv->filesystem_type = g_strdup (libhal_volume_get_fstype (hal_volume)); vol->priv->is_read_only = libhal_device_get_property_bool (volume_monitor_daemon->hal_ctx, libhal_volume_get_udi (hal_volume), "volume.is_mounted_read_only", NULL); vol->priv->is_mounted = TRUE; vol->priv->device_type = _hal_get_gnome_vfs_device_type (hal_drive); name = _hal_volume_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume); vol->priv->display_name = _gnome_vfs_volume_monitor_uniquify_volume_name (volume_monitor, name); g_free (name); name = g_utf8_casefold (vol->priv->display_name, -1); vol->priv->display_name_key = g_utf8_collate_key (name, -1); g_free (name); vol->priv->icon = _hal_volume_policy_get_icon (volume_monitor_daemon, hal_drive, hal_volume); vol->priv->is_user_visible = allowed_by_policy && _hal_volume_policy_show_on_desktop (volume_monitor_daemon, hal_drive, hal_volume); vol->priv->hal_udi = g_strdup (libhal_volume_get_udi (hal_volume)); vol->priv->hal_drive_udi = g_strdup (libhal_drive_get_udi (hal_drive)); if (drive) { vol->priv->drive = drive; gnome_vfs_drive_add_mounted_volume_private (drive, vol); } #ifdef HAL_SHOW_DEBUG g_debug ("Adding GnomeVFSVolume for device path %s", libhal_volume_get_device_file (hal_volume)); #endif _gnome_vfs_volume_monitor_mounted (volume_monitor, vol); gnome_vfs_volume_unref (vol); } ret = TRUE; out: return ret; } static void _hal_update_all (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { char **drives; int num_drives; DBusError error; #ifdef HAL_SHOW_DEBUG g_debug ("entering _hal_update_all"); #endif dbus_error_init (&error); drives = libhal_find_device_by_capability (volume_monitor_daemon->hal_ctx, "storage", &num_drives, &error); if (drives != NULL) { int i; for (i = 0; i < num_drives; i++) { LibHalDrive *drive; #ifdef HAL_SHOW_DEBUG g_debug ("drive = '%s'", drives[i]); #endif drive = libhal_drive_from_udi (volume_monitor_daemon->hal_ctx, drives[i]); if (drive != NULL) { char **volumes; int num_volumes; int num_volumes_added; num_volumes_added = 0; volumes = libhal_drive_find_all_volumes (volume_monitor_daemon->hal_ctx, drive, &num_volumes); if (num_volumes > 0) { int j; for (j = 0; j < num_volumes; j++) { LibHalVolume *volume; #ifdef HAL_SHOW_DEBUG g_debug (" volume = '%s'", volumes[j]); #endif volume = libhal_volume_from_udi (volume_monitor_daemon->hal_ctx, volumes[j]); if (_hal_add_volume (volume_monitor_daemon, drive, volume)) num_volumes_added++; libhal_volume_free (volume); } /* TODO: figure out why this crashes: libhal_free_string_array (volumes); */ } #ifdef HAL_SHOW_DEBUG g_debug (" added %d volumes", num_volumes_added); #endif if (num_volumes_added == 0) { /* if we didn't add any volumes show the drive_without_volumes drive */ _hal_add_drive_without_volumes (volume_monitor_daemon, drive); } libhal_drive_free (drive); } } libhal_free_string_array (drives); } #ifdef HAL_SHOW_DEBUG g_debug ("leaving _hal_update_all"); #endif } static void _hal_device_added (LibHalContext *hal_ctx, const char *udi) { GnomeVFSHalUserData *hal_userdata; GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; #ifdef HAL_SHOW_DEBUG g_debug ("Entering %s for udi %s", G_STRFUNC, udi); #endif hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (hal_ctx); volume_monitor_daemon = hal_userdata->volume_monitor_daemon; if (libhal_device_query_capability (hal_ctx, udi, "volume", NULL)) { char *drive_udi; LibHalDrive *drive; LibHalVolume *volume; DBusError error; drive = NULL; volume = NULL; dbus_error_init (&error); drive_udi = libhal_device_get_property_string (hal_ctx, udi, "block.storage_device", &error); if (dbus_error_is_set (&error)) { g_warning ("Error retrieving block.storage_device on '%s': Error: '%s' Message: '%s'", udi, error.name, error.message); dbus_error_free (&error); goto vol_add_out; } drive = libhal_drive_from_udi (volume_monitor_daemon->hal_ctx, drive_udi); volume = libhal_volume_from_udi (volume_monitor_daemon->hal_ctx, udi); if (drive == NULL || volume == NULL) goto vol_add_out; _hal_add_volume (volume_monitor_daemon, drive, volume); vol_add_out: if (drive_udi != NULL) libhal_free_string (drive_udi); if (drive != NULL) libhal_drive_free (drive); if (volume != NULL) libhal_volume_free (volume); } else if (libhal_device_query_capability (hal_ctx, udi, "storage", NULL)) { char **devs; int num_dev; DBusError error; dbus_error_init (&error); /* don't want to add as drive if we got volumes */ devs = libhal_manager_find_device_string_match (volume_monitor_daemon->hal_ctx, "block.storage_device", udi, &num_dev, &error); if (dbus_error_is_set (&error)) { g_warning ("Error retrieving finding devs on '%s': Error: '%s' Message: '%s'", udi, error.name, error.message); dbus_error_free (&error); goto drive_add_out; } /* our own device object also got block.storage_device==udi so num_dev must be one */ if (num_dev == 1) { LibHalDrive *drive; drive = libhal_drive_from_udi (volume_monitor_daemon->hal_ctx, udi); if (drive != NULL) { _hal_add_drive_without_volumes (volume_monitor_daemon, drive); libhal_drive_free (drive); } } libhal_free_string_array (devs); drive_add_out: ; } } static void _hal_device_removed (LibHalContext *hal_ctx, const char *udi) { GnomeVFSDrive *drive; GnomeVFSVolume *volume; GnomeVFSHalUserData *hal_userdata; GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; char *hal_drive_udi; #ifdef HAL_SHOW_DEBUG g_debug ("Entering %s for udi %s", G_STRFUNC, udi); #endif hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (hal_ctx); volume_monitor_daemon = hal_userdata->volume_monitor_daemon; volume = _gnome_vfs_volume_monitor_find_volume_by_hal_udi ( GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), udi); drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi ( GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), udi); hal_drive_udi = NULL; if (volume != NULL) { #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSVolume for device path %s", volume->priv->device_path); #endif _gnome_vfs_volume_monitor_unmounted (GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), volume); } if (drive != NULL) { char *backing_udi; if (hal_drive_udi == NULL) hal_drive_udi = g_strdup (drive->priv->hal_drive_udi); #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSDrive for device path %s", drive->priv->device_path); #endif if (drive->priv->hal_backing_crypto_volume_udi != NULL) backing_udi = g_strdup (drive->priv->hal_backing_crypto_volume_udi); else backing_udi = NULL; _gnome_vfs_volume_monitor_disconnected (GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), drive); if (backing_udi != NULL) { LibHalVolume *crypto_volume; #ifdef HAL_SHOW_DEBUG g_debug ("Adding back GnomeVFSDrive for crypto volume"); #endif crypto_volume = libhal_volume_from_udi (volume_monitor_daemon->hal_ctx, backing_udi); if (crypto_volume != NULL) { LibHalDrive *crypto_drive; crypto_drive = libhal_drive_from_udi ( volume_monitor_daemon->hal_ctx, libhal_volume_get_storage_device_udi (crypto_volume)); if (crypto_drive != NULL) { _hal_add_volume (volume_monitor_daemon, crypto_drive, crypto_volume); libhal_drive_free (crypto_drive); } libhal_volume_free (crypto_volume); } g_free (backing_udi); } } #ifdef HAL_SHOW_DEBUG g_debug ("hal_drive_udi = %s", hal_drive_udi); #endif /* if there are no other drives with the same hal_drive_udi as us, add a drive_without_volumes object */ if (hal_drive_udi != NULL && _gnome_vfs_volume_monitor_find_drive_by_hal_drive_udi ( GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), hal_drive_udi) == NULL) { LibHalDrive *drive; #ifdef HAL_SHOW_DEBUG g_debug ("going to add drive_without_volumes for %s", hal_drive_udi); #endif drive = libhal_drive_from_udi (volume_monitor_daemon->hal_ctx, hal_drive_udi); if (drive != NULL) { _hal_add_drive_without_volumes (volume_monitor_daemon, drive); libhal_drive_free (drive); } } g_free (hal_drive_udi); } static void _hal_device_property_modified (LibHalContext *hal_ctx, const char *udi, const char *key, dbus_bool_t is_removed, dbus_bool_t is_added) { DBusError error; GnomeVFSHalUserData *hal_userdata; GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; GnomeVFSVolumeMonitor *volume_monitor; char *drive_udi; LibHalDrive *drive; LibHalVolume *volume; drive_udi = NULL; drive = NULL; volume = NULL; hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (hal_ctx); volume_monitor_daemon = hal_userdata->volume_monitor_daemon; volume_monitor = GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon); if (!is_removed && g_ascii_strcasecmp (key, "volume.is_mounted") == 0) { gboolean is_mounted; gboolean is_audio_disc; gboolean is_blank_disc; dbus_error_init (&error); is_mounted = libhal_device_get_property_bool (hal_ctx, udi, "volume.is_mounted", &error); if (dbus_error_is_set (&error)) { g_warning ("Error retrieving volume.is_mounted on '%s': Error: '%s' Message: '%s'", udi, error.name, error.message); dbus_error_free (&error); goto out; } is_blank_disc = libhal_device_get_property_bool (hal_ctx, udi, "volume.disc.is_blank", NULL); is_audio_disc = libhal_device_get_property_bool (hal_ctx, udi, "volume.disc.has_audio", NULL); if (is_mounted || is_blank_disc || is_audio_disc) { /* add new volume since it's now mounted */ drive_udi = libhal_device_get_property_string (hal_ctx, udi, "block.storage_device", &error); if (dbus_error_is_set (&error)) { g_warning ("Error retrieving block.storage_device on '%s': Error: '%s' Message: '%s'", udi, error.name, error.message); dbus_error_free (&error); goto out; } drive = libhal_drive_from_udi (volume_monitor_daemon->hal_ctx, drive_udi); volume = libhal_volume_from_udi (volume_monitor_daemon->hal_ctx, udi); if (drive == NULL || volume == NULL) goto out; _hal_add_volume (volume_monitor_daemon, drive, volume); } else { GnomeVFSVolume *vol; vol = _gnome_vfs_volume_monitor_find_volume_by_hal_udi (volume_monitor, udi); if (vol != NULL) { /* remove volume since it's unmounted */ #ifdef HAL_SHOW_DEBUG g_debug ("Removing GnomeVFSVolume for device path %s", vol->priv->device_path); #endif _gnome_vfs_volume_monitor_unmounted (volume_monitor, vol); } } } out: if (drive_udi != NULL) libhal_free_string (drive_udi); if (drive != NULL) libhal_drive_free (drive); if (volume != NULL) libhal_volume_free (volume); } gboolean _gnome_vfs_hal_mounts_init (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { DBusError error; DBusConnection *dbus_connection; GnomeVFSHalUserData *hal_userdata; #ifdef HAL_SHOW_DEBUG g_debug ("Entering %s", G_STRFUNC); #endif /* Initialise the connection to the hal daemon */ if ((volume_monitor_daemon->hal_ctx = libhal_ctx_new ()) == NULL) { g_warning ("libhal_ctx_new failed\n"); return FALSE; } dbus_error_init (&error); dbus_connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); if (dbus_error_is_set (&error)) { g_warning ("Error connecting to D-BUS system bus: %s", error.message); dbus_error_free (&error); return FALSE; } dbus_connection_setup_with_g_main (dbus_connection, NULL); libhal_ctx_set_dbus_connection (volume_monitor_daemon->hal_ctx, dbus_connection); libhal_ctx_set_device_added (volume_monitor_daemon->hal_ctx, _hal_device_added); libhal_ctx_set_device_removed (volume_monitor_daemon->hal_ctx, _hal_device_removed); libhal_ctx_set_device_property_modified (volume_monitor_daemon->hal_ctx, _hal_device_property_modified); if (!libhal_ctx_init (volume_monitor_daemon->hal_ctx, &error)) { g_warning ("libhal_ctx_init failed: %s\n", error.message); dbus_error_free (&error); return FALSE; } /* Tie some data with the libhal context */ hal_userdata = g_new0 (GnomeVFSHalUserData, 1); hal_userdata->volume_monitor_daemon = volume_monitor_daemon; libhal_ctx_set_user_data (volume_monitor_daemon->hal_ctx, hal_userdata); /* Simply watch all property changes instead of dynamically * adding/removing match rules bus-side to only match certain * objects... */ libhal_device_property_watch_all (volume_monitor_daemon->hal_ctx, &error); /* add drives/volumes from HAL */ _hal_update_all (volume_monitor_daemon); return TRUE; } void _gnome_vfs_hal_mounts_shutdown (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { DBusError error; dbus_error_init (&error); if (!libhal_ctx_shutdown (volume_monitor_daemon->hal_ctx, &error)) { g_warning ("hal_shutdown failed: %s\n", error.message); dbus_error_free (&error); return; } if (!libhal_ctx_free (volume_monitor_daemon->hal_ctx)) { g_warning ("hal_shutdown failed - unable to free hal context\n"); } } void _gnome_vfs_hal_mounts_force_reprobe (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) { #ifdef HAL_SHOW_DEBUG g_debug ("entering _gnome_vfs_hal_mounts_force_reprobe"); #endif _hal_update_all (volume_monitor_daemon); } /**************************************************************************/ GnomeVFSDrive * _gnome_vfs_hal_mounts_modify_drive (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, GnomeVFSDrive *drive) { GnomeVFSDrive *result; LibHalContext *hal_ctx; LibHalDrive *hal_drive; char path[PATH_MAX + 5] = "/dev/"; char *target = path + 5; int ret; hal_drive = NULL; result = drive; if ((hal_ctx = volume_monitor_daemon->hal_ctx) == NULL) goto out; if (drive == NULL || drive->priv == NULL || drive->priv->device_path == NULL) goto out; /* Note, the device_path may point to what hal calls a volume, e.g. * /dev/sda1 etc, however we get the Drive object for the parent if * that is the case. This is a feature of libhal-storage. */ hal_drive = libhal_drive_from_device_file (hal_ctx, drive->priv->device_path); if (hal_drive != NULL) { /* ok, this device file is in HAL and thus managed by this backend */ gnome_vfs_drive_unref (drive); result = NULL; goto out; } /* No luck? Let's see if device_path is a symlink and check its target, too */ ret = readlink (drive->priv->device_path, target, PATH_MAX - 1); if (ret < 0) goto out; target[ret] = '\0'; /* Save some prepending and store the "/dev/" needed for relative links */ if (target[0] != '/') target = path; hal_drive = libhal_drive_from_device_file (hal_ctx, target); if (hal_drive != NULL) { /* ok, this device file is in HAL and thus managed by this backend */ gnome_vfs_drive_unref (drive); result = NULL; } out: libhal_drive_free (hal_drive); return result; } GnomeVFSVolume * _gnome_vfs_hal_mounts_modify_volume (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, GnomeVFSVolume *volume) { GnomeVFSVolume *result; LibHalContext *hal_ctx; LibHalDrive *hal_drive; char path[PATH_MAX + 5] = "/dev/"; char *target = path + 5; int ret; hal_drive = NULL; result = volume; if ((hal_ctx = volume_monitor_daemon->hal_ctx) == NULL) goto out; if (volume == NULL || volume->priv == NULL || volume->priv->device_path == NULL) goto out; /* Note, the device_path may point to what hal calls a volume, e.g. * /dev/sda1 etc, however we get the Drive object for the parent if * that is the case. This is a feature of libhal-storage. */ hal_drive = libhal_drive_from_device_file (hal_ctx, volume->priv->device_path); if (hal_drive != NULL) { /* handle drives that HAL can't poll and the user can still mount */ if (libhal_device_get_property_bool (hal_ctx, libhal_drive_get_udi (hal_drive), "storage.media_check_enabled", NULL) == FALSE) { GnomeVFSDrive *drive; if ((drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi ( GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), libhal_drive_get_udi (hal_drive))) != NULL) { volume->priv->drive = drive; gnome_vfs_drive_add_mounted_volume_private (drive, volume); goto out; } } /* ok, this device file is in HAL and thus managed by this backend */ gnome_vfs_volume_unref (volume); result = NULL; goto out; } /* No luck? Let's see if device_path is a symlink and check its target, too */ ret = readlink (volume->priv->device_path, target, PATH_MAX - 1); if (ret < 0) goto out; target[ret] = '\0'; /* Save some prepending and store the "/dev/" needed for relative links */ if (target[0] != '/') target = path; hal_drive = libhal_drive_from_device_file (hal_ctx, target); if (hal_drive != NULL) { /* handle drives that HAL can't poll and the user can still mount */ if (libhal_device_get_property_bool (hal_ctx, libhal_drive_get_udi (hal_drive), "storage.media_check_enabled", NULL) == FALSE) { GnomeVFSDrive *drive; if ((drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi ( GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), libhal_drive_get_udi (hal_drive))) != NULL) { volume->priv->drive = drive; gnome_vfs_drive_add_mounted_volume_private (drive, volume); goto out; } } /* ok, this device file is in HAL and thus managed by this backend */ gnome_vfs_volume_unref (volume); result = NULL; } out: libhal_drive_free (hal_drive); return result; } #endif /* USE_HAL */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-job-queue.h0000644000175000001440000000263711334251016016704 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-job-queue.h - Job queue for asynchronous operation of the GNOME Virtual File System (version for POSIX threads). Copyright (C) 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: László Péter */ #ifndef GNOME_VFS_JOB_QUEUE_H #define GNOME_VFS_JOB_QUEUE_H #include "gnome-vfs-job.h" G_GNUC_INTERNAL void _gnome_vfs_job_queue_init (void); G_GNUC_INTERNAL void _gnome_vfs_job_queue_shutdown (void); G_GNUC_INTERNAL gboolean _gnome_vfs_job_schedule (GnomeVFSJob *job); #endif /* GNOME_VFS_JOB_QUEUE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-address.c0000644000175000001440000003341511334251016016426 00000000000000/* gnome-vfs-address.c - Address functions Copyright (C) 2004 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #ifndef G_OS_WIN32 #include #include #include #include #else #include #include #endif struct _GnomeVFSAddress { struct sockaddr *sa; }; #define SA(__s) ((struct sockaddr *) __s) #define SIN_LEN sizeof (struct sockaddr_in) #define SIN(__s) ((struct sockaddr_in *) __s) #ifdef ENABLE_IPV6 /* OSX seems to already define this */ # if defined(SIN6_LEN) && defined(__APPLE__) # undef SIN6_LEN # endif # define SIN6_LEN sizeof (struct sockaddr_in6) # define SIN6(__s) ((struct sockaddr_in6 *) __s) # define VALID_AF(__sa) (__sa->sa_family == AF_INET || __sa->sa_family == AF_INET6) # define SA_SIZE(__sa) (__sa->sa_family == AF_INET ? SIN_LEN : \ SIN6_LEN) # define AF_SIZE(__af) (__af == AF_INET6 ? SIN6_LEN : SIN_LEN) # define MAX_ADDRSTRLEN INET6_ADDRSTRLEN #else /* ENABLE_IPV6 */ # define VALID_AF(__sa) (__sa->sa_family == AF_INET) # define AF_SIZE(__af) SIN_LEN # define SA_SIZE(_sa) SIN_LEN # define MAX_ADDRSTRLEN INET_ADDRSTRLEN #endif /* Register GnomeVFSAddress in the glib type system */ GType gnome_vfs_address_get_type (void) { static GType addr_type = 0; if (addr_type == 0) { addr_type = g_boxed_type_register_static ("GnomeVFSAddress", (GBoxedCopyFunc) gnome_vfs_address_dup, (GBoxedFreeFunc) gnome_vfs_address_free); } return addr_type; } /** * gnome_vfs_address_new_from_string: * @address: A string representation of the address. * * Creates a new #GnomeVFSAddress from the given string or %NULL * if @address isn't a valid. * * Return value: The new #GnomeVFSAddress. * * Since: 2.8 **/ GnomeVFSAddress * gnome_vfs_address_new_from_string (const char *address) { struct sockaddr_in sin; #ifdef G_OS_WIN32 int address_length; #endif #if (defined (G_OS_WIN32) || defined (HAVE_INET_PTON)) && defined (ENABLE_IPV6) struct sockaddr_in6 sin6; #endif sin.sin_family = AF_INET; #ifdef G_OS_WIN32 address_length = SIN_LEN; if (WSAStringToAddress ((LPTSTR) address, AF_INET, NULL, (LPSOCKADDR) &sin.sin_addr, &address_length) == 0) return gnome_vfs_address_new_from_sockaddr (SA (&sin), SIN_LEN); # ifdef ENABLE_IPV6 address_length = SIN6_LEN; if (WSAStringToAddress ((LPTSTR) address, AF_INET6, NULL, (LPSOCKADDR) &sin6.sin6_addr, &address_length) == 0) { sin6.sin6_family = AF_INET6; return gnome_vfs_address_new_from_sockaddr (SA (&sin6), SIN6_LEN); } # endif /* ENABLE_IPV6 */ #elif defined (HAVE_INET_PTON) if (inet_pton (AF_INET, address, &sin.sin_addr) > 0) return gnome_vfs_address_new_from_sockaddr (SA (&sin), SIN_LEN); # ifdef ENABLE_IPV6 if (inet_pton (AF_INET6, address, &sin6.sin6_addr) > 0) { sin6.sin6_family = AF_INET6; return gnome_vfs_address_new_from_sockaddr (SA (&sin6), SIN6_LEN); } # endif /* ENABLE_IPV6 */ #elif defined (HAVE_INET_ATON) if (inet_aton (address, &sin.sin_addr) > 0) return gnome_vfs_address_new_from_sockaddr (SA (&sin), SIN_LEN); #else if ((sin.sin_addr.s_addr = inet_addr (address)) != INADDR_NONE) return gnome_vfs_address_new_from_sockaddr (SA (&sin), SIN_LEN); #endif return NULL; } /** * gnome_vfs_address_new_from_sockaddr: * @sa: A pointer to a sockaddr. * @len: The size of @sa. * * Creates a new #GnomeVFSAddress from @sa. * * Return value: The new #GnomeVFSAddress * or %NULL if @sa was invalid or the address family isn't supported. * * Since: 2.8 **/ GnomeVFSAddress * gnome_vfs_address_new_from_sockaddr (struct sockaddr *sa, int len) { GnomeVFSAddress *addr; g_return_val_if_fail (sa != NULL, NULL); g_return_val_if_fail (len == AF_SIZE (sa->sa_family), NULL); if (VALID_AF (sa) == FALSE) { return NULL; } addr = g_new0 (GnomeVFSAddress, 1); addr->sa = g_memdup (sa, len); return addr; } /** * gnome_vfs_address_new_from_ipv4: * @ipv4_address: A IPv4 Address in network byte order * * Creates a new #GnomeVFSAddress from @ipv4_address. * * Note that this function should be avoided because newly written * code should be protocol independent. * * Return value: A new #GnomeVFSAdress. * * Since: 2.8 **/ GnomeVFSAddress * gnome_vfs_address_new_from_ipv4 (guint32 ipv4_address) { GnomeVFSAddress *addr; struct sockaddr_in *sin; sin = g_new0 (struct sockaddr_in, 1); sin->sin_addr.s_addr = ipv4_address; sin->sin_family = AF_INET; addr = gnome_vfs_address_new_from_sockaddr (SA (sin), SIN_LEN); return addr; } /** * gnome_vfs_address_get_family_type: * @address: A pointer to a #GnomeVFSAddress * * Use this function to retrive the address family of @address. * * Return value: The address family of @address. * * Since: 2.8 **/ int gnome_vfs_address_get_family_type (GnomeVFSAddress *address) { g_return_val_if_fail (address != NULL, -1); return address->sa->sa_family; } /** * gnome_vfs_address_to_string: * @address: A pointer to a #GnomeVFSAddress * * Translate @address to a printable string. * * Returns: A newly alloced string representation of @address which * the caller must free. * * Since: 2.8 **/ char * gnome_vfs_address_to_string (GnomeVFSAddress *address) { #ifdef G_OS_WIN32 char text_addr[100]; DWORD text_length = sizeof (text_addr); if (WSAAddressToString (address->sa, SA_SIZE (address->sa), NULL, text_addr, &text_length) == 0) return g_strdup (text_addr); return NULL; #else const char *text_addr; #ifdef HAVE_INET_NTOP char buf[MAX_ADDRSTRLEN]; #endif g_return_val_if_fail (address != NULL, NULL); text_addr = NULL; switch (address->sa->sa_family) { #if defined (ENABLE_IPV6) && defined (HAVE_INET_NTOP) case AF_INET6: text_addr = inet_ntop (AF_INET6, &SIN6 (address->sa)->sin6_addr, buf, sizeof (buf)); break; #endif case AF_INET: #if HAVE_INET_NTOP text_addr = inet_ntop (AF_INET, &SIN (address->sa)->sin_addr, buf, sizeof (buf)); #else text_addr = inet_ntoa (SIN (address->sa)->sin_addr); #endif /* HAVE_INET_NTOP */ break; } return text_addr != NULL ? g_strdup (text_addr) : NULL; #endif } /** * gnome_vfs_address_get_ipv4: * @address: A #GnomeVFSAddress. * * Returns: The associated IPv4 address in network byte order. * * Note that you should avoid using this function because newly written * code should be protocol independent. * * Since: 2.8 **/ guint32 gnome_vfs_address_get_ipv4 (GnomeVFSAddress *address) { g_return_val_if_fail (address != NULL, 0); g_return_val_if_fail (address->sa != NULL, 0); if (address->sa->sa_family != AF_INET) return 0; return (guint32) SIN (address->sa)->sin_addr.s_addr; } /** * gnome_vfs_address_get_sockaddr: * @address: A #GnomeVFSAddress * @port: A valid port in host byte order to set in the returned sockaddr * structure. * @len: A pointer to an int which will contain the length of the * return sockaddr structure. * * This function tanslates @address into a equivalent * sockaddr structure. The port specified at @port will * be set in the structure and @len will be set to the length * of the structure. * * * Return value: A newly allocated sockaddr structure the caller must free * or %NULL if @address did not point to a valid #GnomeVFSAddress. **/ struct sockaddr * gnome_vfs_address_get_sockaddr (GnomeVFSAddress *address, guint16 port, int *len) { struct sockaddr *sa; g_return_val_if_fail (address != NULL, NULL); sa = g_memdup (address->sa, SA_SIZE (address->sa)); switch (address->sa->sa_family) { #ifdef ENABLE_IPV6 case AF_INET6: SIN6 (sa)->sin6_port = g_htons (port); if (len != NULL) { *len = SIN6_LEN; } break; #endif case AF_INET: SIN (sa)->sin_port = g_htons (port); if (len != NULL) { *len = SIN_LEN; } break; } return sa; } static gboolean v4_v4_equal (const struct sockaddr_in *a, const struct sockaddr_in *b) { return a->sin_addr.s_addr == b->sin_addr.s_addr; } static gboolean v4_v4_match (const struct sockaddr_in *a, const struct sockaddr_in *b, guint prefix) { struct in_addr cmask; cmask.s_addr = g_htonl (~0 << (32 - prefix)); return (a->sin_addr.s_addr & cmask.s_addr) == (b->sin_addr.s_addr & cmask.s_addr); } #ifdef ENABLE_IPV6 static gboolean v6_v6_equal (const struct sockaddr_in6 *a, const struct sockaddr_in6 *b) { return IN6_ARE_ADDR_EQUAL (&a->sin6_addr, &b->sin6_addr); } static gboolean v4_v6_match (const struct sockaddr_in *a4, const struct sockaddr_in6 *b6, guint prefix) { struct sockaddr_in b4; guint32 v4_numeric; if (! IN6_IS_ADDR_V4MAPPED (&b6->sin6_addr)) { return FALSE; } memset (&b4, 0, sizeof (b4)); v4_numeric = b6->sin6_addr.s6_addr[12] << 24 | b6->sin6_addr.s6_addr[13] << 16 | b6->sin6_addr.s6_addr[14] << 8 | b6->sin6_addr.s6_addr[15]; b4.sin_addr.s_addr = g_htonl (v4_numeric); if (prefix == 0 || prefix > 31) { return v4_v4_equal (a4, &b4); } return v4_v4_match (a4, &b4, prefix); } static gboolean v6_v6_match (const struct sockaddr_in6 *a, const struct sockaddr_in6 *b, guint prefix) { guint8 i; guint8 n; const guint8 *ia; const guint8 *ib; /* XXX: optimize that for known platfroms (e.g.: Linux) */ /* n are bytes in this for here */ n = prefix / 8; ia = a->sin6_addr.s6_addr; ib = b->sin6_addr.s6_addr; for (i = 0; i < n; i++) { if (*ia++ != *ib++) { return FALSE; } } /* n are the rest bits (if any) for here */ if ((n = (8 - prefix % 8)) != 8) { if ((*ia & (0xff << n)) != (*ib & (0xff << n))) { return FALSE; } } return TRUE; } #endif /** * gnome_vfs_address_match: * @a: A #GnomeVFSAddress * @b: A #GnomeVFSAddress to compare with @a * @prefix: Number of bits to take into account starting * from the left most one. * * Matches the first @prefix number of bits of two given #GnomeVFSAddress * objects and returns TRUE of they match otherwise FALSE. This function can * also match mapped address (i.e. IPv4 mapped IPv6 addresses). * * Return value: TRUE if the two addresses match. * * Since: 2.14 **/ gboolean gnome_vfs_address_match (const GnomeVFSAddress *a, const GnomeVFSAddress *b, guint prefix) { guint8 fam_a; guint8 fam_b; g_return_val_if_fail (a != NULL || a->sa != NULL, FALSE); g_return_val_if_fail (b != NULL || b->sa != NULL, FALSE); fam_a = a->sa->sa_family; fam_b = b->sa->sa_family; if (fam_a == AF_INET && fam_b == AF_INET) { if (prefix == 0 || prefix > 31) { return v4_v4_equal (SIN (a->sa), SIN (b->sa)); } else { return v4_v4_match (SIN (a->sa), SIN (b->sa), prefix); } } #ifdef ENABLE_IPV6 else if (fam_a == AF_INET6 && fam_b == AF_INET6) { if (prefix == 0 || prefix > 127) { return v6_v6_equal (SIN6 (a->sa), SIN6 (b->sa)); } else { return v6_v6_match (SIN6 (a->sa), SIN6 (b->sa), prefix); } } else if (fam_a == AF_INET && fam_b == AF_INET6) { return v4_v6_match (SIN (a->sa), SIN6 (b->sa), prefix); } else if (fam_a == AF_INET6 && fam_b == AF_INET) { return v4_v6_match (SIN (b->sa), SIN6 (a->sa), prefix); } #endif /* This is the case when we are trying to compare unkown family types */ g_assert_not_reached (); return FALSE; } /** * gnome_vfs_address_equal: * @a: A #GnomeVFSAddress * @b: A #GnomeVFSAddress to compare with @a * * Compares two #GnomeVFSAddress objects and returns TRUE if they have the * addresses are equal as well as the address family type. * * Return value: TRUE if the two addresses match. * * Since: 2.14 **/ gboolean gnome_vfs_address_equal (const GnomeVFSAddress *a, const GnomeVFSAddress *b) { guint8 fam_a; guint8 fam_b; g_return_val_if_fail (a != NULL || a->sa != NULL, FALSE); g_return_val_if_fail (b != NULL || b->sa != NULL, FALSE); fam_a = a->sa->sa_family; fam_b = b->sa->sa_family; if (fam_a == AF_INET && fam_b == AF_INET) { return v4_v4_equal (SIN (a->sa), SIN (b->sa)); } #ifdef ENABLE_IPV6 else if (fam_a == AF_INET6 && fam_b == AF_INET6) { return v6_v6_equal (SIN6 (a->sa), SIN6 (b->sa)); } #endif return FALSE; } /** * gnome_vfs_address_dup: * @address: A #GnomeVFSAddress. * * Duplicates @address. * * Return value: Duplicated @address or %NULL if @address was not valid. * * Since: 2.8 **/ GnomeVFSAddress * gnome_vfs_address_dup (GnomeVFSAddress *address) { GnomeVFSAddress *addr; g_return_val_if_fail (address != NULL, NULL); g_return_val_if_fail (VALID_AF (address->sa), NULL); addr = g_new0 (GnomeVFSAddress, 1); addr->sa = g_memdup (address->sa, SA_SIZE (address->sa)); return addr; } /** * gnome_vfs_address_free: * @address: A #GnomeVFSAddress. * * Frees the memory allocated for @address. * * Since: 2.8 **/ void gnome_vfs_address_free (GnomeVFSAddress *address) { g_return_if_fail (address != NULL); g_free (address->sa); g_free (address); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-drive.c0000644000175000001440000005114611334251016016113 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-drive.c - Handling of drives for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include #include "gnome-vfs-drive.h" #include "gnome-vfs-volume-monitor-private.h" static void gnome_vfs_drive_class_init (GnomeVFSDriveClass *klass); static void gnome_vfs_drive_init (GnomeVFSDrive *drive); static void gnome_vfs_drive_finalize (GObject *object); enum { VOLUME_MOUNTED, VOLUME_PRE_UNMOUNT, VOLUME_UNMOUNTED, LAST_SIGNAL }; static GObjectClass *parent_class = NULL; static guint drive_signals [LAST_SIGNAL] = { 0 }; G_LOCK_DEFINE_STATIC (drives); GType gnome_vfs_drive_get_type (void) { static GType drive_type = 0; if (!drive_type) { const GTypeInfo drive_info = { sizeof (GnomeVFSDriveClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) gnome_vfs_drive_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GnomeVFSDrive), 0, /* n_preallocs */ (GInstanceInitFunc) gnome_vfs_drive_init }; drive_type = g_type_register_static (G_TYPE_OBJECT, "GnomeVFSDrive", &drive_info, 0); } return drive_type; } static void gnome_vfs_drive_class_init (GnomeVFSDriveClass *class) { GObjectClass *o_class; parent_class = g_type_class_peek_parent (class); o_class = (GObjectClass *) class; /* GObject signals */ o_class->finalize = gnome_vfs_drive_finalize; /** * GnomeVFSDrive::volume-mounted: * @drive: the #GnomeVFSDrive which received the signal. * @volume: the #GnomeVFSVolume that has been mounted. * * This signal is emitted after the #GnomeVFSVolume @volume has been mounted. * * When the @volume is mounted, it is added to the @drive's list of mounted * volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes(). * * It is also added to the list of the #GnomeVFSVolumeMonitor's list of mounted * volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes(). **/ drive_signals[VOLUME_MOUNTED] = g_signal_new ("volume_mounted", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSDriveClass, volume_mounted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_VOLUME); /** * GnomeVFSDrive::volume-pre-unmount: * @drive: the #GnomeVFSDrive which received the signal. * @volume: the #GnomeVFSVolume that is about to be unmounted. * * This signal is emitted when the #GnomeVFSVolume @volume, which has been present in * the #GnomeVFSDrive @drive, is about to be unmounted. * * When the @volume is unmounted, it is removed from the @drive's list of mounted * volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes(). * * It is also removed from the #GnomeVFSVolumeMonitor's list of mounted volumes, * which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes(). * * When a client application receives this signal, it must free all resources * associated with the @volume, for instance cancel all pending file operations * on the @volume, and cancel all pending file monitors using gnome_vfs_monitor_cancel(). **/ drive_signals[VOLUME_PRE_UNMOUNT] = g_signal_new ("volume_pre_unmount", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSDriveClass, volume_pre_unmount), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_VOLUME); /** * GnomeVFSDrive::volume-unmounted: * @drive: the #GnomeVFSDrive which received the signal. * @volume: the #GnomeVFSVolume that has been unmounted. * * This signal is emitted after the #GnomeVFSVolume @volume, which had been present in * the #GnomeVFSDrive @drive, has been unmounted. * * When the @volume is unmounted, it is removed from the @drive's list of mounted * volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes(). * * It is also removed from the #GnomeVFSVolumeMonitor's list of mounted volumes, * which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes(). **/ drive_signals[VOLUME_UNMOUNTED] = g_signal_new ("volume_unmounted", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSDriveClass, volume_unmounted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_VOLUME); } static void gnome_vfs_drive_init (GnomeVFSDrive *drive) { static int drive_id_counter = 1; drive->priv = g_new0 (GnomeVFSDrivePrivate, 1); G_LOCK (drives); drive->priv->id = drive_id_counter++; G_UNLOCK (drives); } /** * gnome_vfs_drive_ref: * @drive: a #GnomeVFSDrive, or %NULL. * * Increases the refcount of the @drive by 1, if it is not %NULL. * * Returns: the @drive with its refcount increased by one, * or %NULL if @drive is %NULL. * * Since: 2.6 */ GnomeVFSDrive * gnome_vfs_drive_ref (GnomeVFSDrive *drive) { if (drive == NULL) { return NULL; } G_LOCK (drives); g_object_ref (drive); G_UNLOCK (drives); return drive; } /** * gnome_vfs_drive_unref: * @drive: a #GnomeVFSDrive, or %NULL. * * Decreases the refcount of the @drive by 1, if it is not %NULL. * * Since: 2.6 */ void gnome_vfs_drive_unref (GnomeVFSDrive *drive) { if (drive == NULL) { return; } G_LOCK (drives); g_object_unref (drive); G_UNLOCK (drives); } /* Remeber that this could be running on a thread other * than the main thread */ static void gnome_vfs_drive_finalize (GObject *object) { GnomeVFSDrive *drive = (GnomeVFSDrive *) object; GnomeVFSDrivePrivate *priv; GList *current_vol; priv = drive->priv; for (current_vol = priv->volumes; current_vol != NULL; current_vol = current_vol->next) { GnomeVFSVolume *vol; vol = GNOME_VFS_VOLUME (current_vol->data); gnome_vfs_volume_unset_drive_private (vol, drive); gnome_vfs_volume_unref (vol); } g_list_free (priv->volumes); g_free (priv->device_path); g_free (priv->activation_uri); g_free (priv->display_name); g_free (priv->display_name_key); g_free (priv->icon); g_free (priv->hal_udi); g_free (priv->hal_drive_udi); g_free (priv->hal_backing_crypto_volume_udi); g_free (priv); drive->priv = NULL; if (G_OBJECT_CLASS (parent_class)->finalize) (* G_OBJECT_CLASS (parent_class)->finalize) (object); } /** * gnome_vfs_drive_get_id: * @drive: a #GnomeVFSDrive. * * Returns: drive id, a #gulong value. * * Since: 2.6 */ gulong gnome_vfs_drive_get_id (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, 0); return drive->priv->id; } /** * gnome_vfs_drive_get_device_type: * @drive: a #GnomeVFSDrive. * * Returns: device type, a #GnomeVFSDeviceType value. * * Since: 2.6 */ GnomeVFSDeviceType gnome_vfs_drive_get_device_type (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, GNOME_VFS_DEVICE_TYPE_UNKNOWN); return drive->priv->device_type; } /** * gnome_vfs_drive_get_mounted_volume: * @drive: a #GnomeVFSDrive. * * Returns the first mounted volume for the @drive. * * Returns: a #GnomeVFSVolume. * * Since: 2.6 * Deprecated: Use gnome_vfs_drive_get_mounted_volumes() instead. */ GnomeVFSVolume * gnome_vfs_drive_get_mounted_volume (GnomeVFSDrive *drive) { GnomeVFSVolume *vol; GList *first_vol; g_return_val_if_fail (drive != NULL, NULL); G_LOCK (drives); first_vol = g_list_first (drive->priv->volumes); if (first_vol != NULL) { vol = gnome_vfs_volume_ref (GNOME_VFS_VOLUME (first_vol->data)); } else { vol = NULL; } G_UNLOCK (drives); return vol; } /** * gnome_vfs_drive_volume_list_free: * @volumes: list of #GnomeVFSVolumes to be freed, or %NULL. * * Frees the list @volumes, if it is not %NULL. * * Since: 2.8 */ void gnome_vfs_drive_volume_list_free (GList *volumes) { if (volumes != NULL) { g_list_foreach (volumes, (GFunc)gnome_vfs_volume_unref, NULL); g_list_free (volumes); } } /** * gnome_vfs_drive_get_mounted_volumes: * @drive: a #GnomeVFSDrive. * * Returns: list of mounted volumes for the @drive. * * Since: 2.8 */ GList * gnome_vfs_drive_get_mounted_volumes (GnomeVFSDrive *drive) { GList *return_list; g_return_val_if_fail (drive != NULL, NULL); G_LOCK (drives); return_list = g_list_copy (drive->priv->volumes); g_list_foreach (return_list, (GFunc)gnome_vfs_volume_ref, NULL); G_UNLOCK (drives); return return_list; } /** * gnome_vfs_drive_is_mounted: * @drive: a #GnomeVFSDrive. * * Returns: %TRUE if the @drive is mounted, %FALSE otherwise. * * Since: 2.6 */ gboolean gnome_vfs_drive_is_mounted (GnomeVFSDrive *drive) { gboolean res; g_return_val_if_fail (drive != NULL, FALSE); G_LOCK (drives); res = drive->priv->volumes != NULL; G_UNLOCK (drives); return res; } /** * gnome_vfs_drive_needs_eject: * @drive: a #GnomeVFSDrive. * * Returns: %TRUE if the @drive needs to be ejected, %FALSE otherwise. * * Since: 2.16 */ gboolean gnome_vfs_drive_needs_eject (GnomeVFSDrive *drive) { gboolean res; g_return_val_if_fail (drive != NULL, FALSE); G_LOCK (drives); res = drive->priv->must_eject_at_unmount; G_UNLOCK (drives); return res; } void gnome_vfs_drive_remove_volume_private (GnomeVFSDrive *drive, GnomeVFSVolume *volume) { G_LOCK (drives); g_assert ((g_list_find (drive->priv->volumes, volume)) != NULL); drive->priv->volumes = g_list_remove (drive->priv->volumes, volume); G_UNLOCK (drives); gnome_vfs_volume_unref (volume); } void gnome_vfs_drive_add_mounted_volume_private (GnomeVFSDrive *drive, GnomeVFSVolume *volume) { G_LOCK (drives); g_assert ((g_list_find (drive->priv->volumes, volume)) == NULL); drive->priv->volumes = g_list_append (drive->priv->volumes, gnome_vfs_volume_ref (volume)); G_UNLOCK (drives); } /** * gnome_vfs_drive_get_device_path: * @drive: a #GnomeVFSDrive. * * Returns the device path of a #GnomeVFSDrive. * * For HAL drives, this returns the value of the * drives's "block.device" key. For UNIX mounts, * it returns the %mntent's %mnt_fsname entry. * * Otherwise, it returns %NULL. * * Returns: a newly allocated string for the device path of the #drive. * * Since: 2.6 */ char * gnome_vfs_drive_get_device_path (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, NULL); return g_strdup (drive->priv->device_path); } /** * gnome_vfs_drive_get_activation_uri: * @drive: a #GnomeVFSDrive. * * Returns the activation URI of a #GnomeVFSDrive. * * The returned URI usually refers to a valid location. You can check the * validity of the location by calling gnome_vfs_uri_new() with the URI, * and checking whether the return value is not %NULL. * * Returns: a newly allocated string for the activation uri of the #drive. * * Since: 2.6 */ char * gnome_vfs_drive_get_activation_uri (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, NULL); return g_strdup (drive->priv->activation_uri); } /** * gnome_vfs_drive_get_hal_udi: * @drive: a #GnomeVFSDrive. * * Returns the HAL UDI of a #GnomeVFSDrive. * * For HAL drives, this matches the value of the "info.udi" key, * for other drives it is %NULL. * * Returns: a newly allocated string for the unique device id of the @drive, or %NULL. * * Since: 2.6 */ char * gnome_vfs_drive_get_hal_udi (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, NULL); return g_strdup (drive->priv->hal_udi); } /** * gnome_vfs_drive_get_display_name: * @drive: a #GnomeVFSDrive. * * Returns: a newly allocated string for the display name of the @drive. * * Since: 2.6 */ char * gnome_vfs_drive_get_display_name (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, NULL); return g_strdup (drive->priv->display_name); } /** * gnome_vfs_drive_get_icon: * @drive: a #GnomeVFSDrive. * * Returns: a newly allocated string for the icon filename of the @drive. * * Since: 2.6 */ char * gnome_vfs_drive_get_icon (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, NULL); return g_strdup (drive->priv->icon); } /** * gnome_vfs_drive_is_user_visible: * @drive: a #GnomeVFSDrive. * * Returns whether the @drive is visible to the user. This * should be used by applications to determine whether it * is included in user interfaces listing available drives. * * Returns: %TRUE if the @drive is visible to the user, %FALSE otherwise. * * Since: 2.6 */ gboolean gnome_vfs_drive_is_user_visible (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, FALSE); return drive->priv->is_user_visible; } /** * gnome_vfs_drive_is_connected: * @drive: a #GnomeVFSDrive. * * Returns: %TRUE if the @drive is connected, %FALSE otherwise. * * Since: 2.6 */ gboolean gnome_vfs_drive_is_connected (GnomeVFSDrive *drive) { g_return_val_if_fail (drive != NULL, FALSE); return drive->priv->is_connected; } /** * gnome_vfs_drive_compare: * @a: a #GnomeVFSDrive. * @b: a #GnomeVFSDrive. * * Compares two #GnomeVFSDrive objects @a and @b. Two * #GnomeVFSDrive objects referring to different drives * are guaranteed to not return 0 when comparing them, * if they refer to the same drive 0 is returned. * * The resulting #gint should be used to determine the * order in which @a and @b are displayed in graphical * user interfces. * * The comparison algorithm first of all peeks the device * type of @a and @b, they will be sorted in the following * order: * * Magnetic and opto-magnetic drives (ZIP, floppy) * Optical drives (CD, DVD) * External drives (USB sticks, music players) * Mounted hard disks< * Other drives< * * * Afterwards, the display name of @a and @b is compared * using a locale-sensitive sorting algorithm, which * involves g_utf8_collate_key(). * * If two drives have the same display name, their * unique ID is compared which can be queried using * gnome_vfs_drive_get_id(). * * Returns: 0 if the drives refer to the same @GnomeVFSDrive, * a negative value if @a should be displayed before @b, * or a positive value if @a should be displayed after @b. * * Since: 2.6 */ gint gnome_vfs_drive_compare (GnomeVFSDrive *a, GnomeVFSDrive *b) { GnomeVFSDrivePrivate *priva, *privb; gint res; if (a == b) { return 0; } priva = a->priv; privb = b->priv; res = _gnome_vfs_device_type_get_sort_group (priva->device_type) - _gnome_vfs_device_type_get_sort_group (privb->device_type); if (res != 0) { return res; } res = strcmp (priva->display_name_key, privb->display_name_key); if (res != 0) { return res; } return privb->id - priva->id; } #ifdef USE_DAEMON static void utils_append_string_or_null (DBusMessageIter *iter, const gchar *str) { if (str == NULL) str = ""; dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &str); } static gchar * utils_get_string_or_null (DBusMessageIter *iter, gboolean empty_is_null) { const gchar *str; dbus_message_iter_get_basic (iter, &str); if (empty_is_null && *str == 0) { return NULL; } else { return g_strdup (str); } } gboolean gnome_vfs_drive_to_dbus (DBusMessageIter *iter, GnomeVFSDrive *drive) { GnomeVFSDrivePrivate *priv; DBusMessageIter struct_iter; DBusMessageIter array_iter; GnomeVFSVolume *volume; gint32 i; GList *l; g_return_val_if_fail (iter != NULL, FALSE); g_return_val_if_fail (drive != NULL, FALSE); priv = drive->priv; if (!dbus_message_iter_open_container (iter, DBUS_TYPE_STRUCT, NULL, /* for struct */ &struct_iter)) { return FALSE; } i = priv->id; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = priv->device_type; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); if (!dbus_message_iter_open_container (&struct_iter, DBUS_TYPE_ARRAY, DBUS_TYPE_INT32_AS_STRING, &array_iter)) { return FALSE; } for (l = drive->priv->volumes; l != NULL; l = l->next) { volume = GNOME_VFS_VOLUME (l->data); i = volume->priv->id; dbus_message_iter_append_basic (&array_iter, DBUS_TYPE_INT32, &i); } if (!dbus_message_iter_close_container (&struct_iter, &array_iter)) { return FALSE; } utils_append_string_or_null (&struct_iter, priv->device_path); utils_append_string_or_null (&struct_iter, priv->activation_uri); utils_append_string_or_null (&struct_iter, priv->display_name); utils_append_string_or_null (&struct_iter, priv->icon); utils_append_string_or_null (&struct_iter, priv->hal_udi); dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BOOLEAN, &priv->is_user_visible); dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BOOLEAN, &priv->is_connected); dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BOOLEAN, &priv->must_eject_at_unmount); if (!dbus_message_iter_close_container (iter, &struct_iter)) { return FALSE; } return TRUE; } GnomeVFSDrive * _gnome_vfs_drive_from_dbus (DBusMessageIter *iter, GnomeVFSVolumeMonitor *volume_monitor) { DBusMessageIter struct_iter; DBusMessageIter array_iter; GnomeVFSDrive *drive; GnomeVFSDrivePrivate *priv; gint32 i; g_return_val_if_fail (iter != NULL, NULL); g_return_val_if_fail (volume_monitor != NULL, NULL); g_assert (dbus_message_iter_get_arg_type (iter) == DBUS_TYPE_STRUCT); /* Note: the drives lock is locked in _init. */ drive = g_object_new (GNOME_VFS_TYPE_DRIVE, NULL); priv = drive->priv; dbus_message_iter_recurse (iter, &struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); priv->id = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); priv->device_type = i; dbus_message_iter_next (&struct_iter); if (dbus_message_iter_get_arg_type (&struct_iter) == DBUS_TYPE_ARRAY) { dbus_message_iter_recurse (&struct_iter, &array_iter); while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_INT32) { GnomeVFSVolume *volume; dbus_message_iter_get_basic (&array_iter, &i); volume = gnome_vfs_volume_monitor_get_volume_by_id (volume_monitor, i); if (volume != NULL) { gnome_vfs_drive_add_mounted_volume_private (drive, volume); gnome_vfs_volume_set_drive_private (volume, drive); } if (!dbus_message_iter_has_next (&array_iter)) { break; } dbus_message_iter_next (&array_iter); } } dbus_message_iter_next (&struct_iter); priv->device_path = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); priv->activation_uri = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); priv->display_name = utils_get_string_or_null (&struct_iter, TRUE); if (drive->priv->display_name != NULL) { char *tmp = g_utf8_casefold (drive->priv->display_name, -1); drive->priv->display_name_key = g_utf8_collate_key (tmp, -1); g_free (tmp); } else { drive->priv->display_name_key = NULL; } dbus_message_iter_next (&struct_iter); priv->icon = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); priv->hal_udi = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &priv->is_user_visible); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &priv->is_connected); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &priv->must_eject_at_unmount); return drive; } #endif /* USE_DAEMON */ gnome-vfs-2.24.4/libgnomevfs/xdgmime.c0000644000175000001440000005063711334251016014541 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmime.c: XDG Mime Spec mime resolver. Based on version 0.11 of the spec. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003,2004 Red Hat, Inc. * Copyright (C) 2003,2004 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "xdgmime.h" #include "xdgmimeint.h" #include "xdgmimeglob.h" #include "xdgmimemagic.h" #include "xdgmimealias.h" #include "xdgmimeicon.h" #include "xdgmimeparent.h" #include "xdgmimecache.h" #include #include #include #include #include #include #include typedef struct XdgDirTimeList XdgDirTimeList; typedef struct XdgCallbackList XdgCallbackList; static int need_reread = TRUE; static time_t last_stat_time = 0; static XdgGlobHash *global_hash = NULL; static XdgMimeMagic *global_magic = NULL; static XdgAliasList *alias_list = NULL; static XdgParentList *parent_list = NULL; static XdgDirTimeList *dir_time_list = NULL; static XdgCallbackList *callback_list = NULL; static XdgIconList *icon_list = NULL; static XdgIconList *generic_icon_list = NULL; XdgMimeCache **_caches = NULL; static int n_caches = 0; const char xdg_mime_type_unknown[] = "application/octet-stream"; enum { XDG_CHECKED_UNCHECKED, XDG_CHECKED_VALID, XDG_CHECKED_INVALID }; struct XdgDirTimeList { time_t mtime; char *directory_name; int checked; XdgDirTimeList *next; }; struct XdgCallbackList { XdgCallbackList *next; XdgCallbackList *prev; int callback_id; XdgMimeCallback callback; void *data; XdgMimeDestroy destroy; }; /* Function called by xdg_run_command_on_dirs. If it returns TRUE, further * directories aren't looked at */ typedef int (*XdgDirectoryFunc) (const char *directory, void *user_data); static void xdg_dir_time_list_add (char *file_name, time_t mtime) { XdgDirTimeList *list; for (list = dir_time_list; list; list = list->next) { if (strcmp (list->directory_name, file_name) == 0) return; } list = calloc (1, sizeof (XdgDirTimeList)); list->checked = XDG_CHECKED_UNCHECKED; list->directory_name = file_name; list->mtime = mtime; list->next = dir_time_list; dir_time_list = list; } static void xdg_dir_time_list_free (XdgDirTimeList *list) { XdgDirTimeList *next; while (list) { next = list->next; free (list->directory_name); free (list); list = next; } } static int xdg_mime_init_from_directory (const char *directory) { char *file_name; struct stat st; assert (directory != NULL); file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache"); if (stat (file_name, &st) == 0) { XdgMimeCache *cache = _xdg_mime_cache_new_from_file (file_name); if (cache != NULL) { xdg_dir_time_list_add (file_name, st.st_mtime); _caches = realloc (_caches, sizeof (XdgMimeCache *) * (n_caches + 2)); _caches[n_caches] = cache; _caches[n_caches + 1] = NULL; n_caches++; return FALSE; } } free (file_name); file_name = malloc (strlen (directory) + strlen ("/mime/globs2") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/globs2"); if (stat (file_name, &st) == 0) { _xdg_mime_glob_read_from_file (global_hash, file_name, TRUE); xdg_dir_time_list_add (file_name, st.st_mtime); } else { free (file_name); file_name = malloc (strlen (directory) + strlen ("/mime/globs") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/globs"); if (stat (file_name, &st) == 0) { _xdg_mime_glob_read_from_file (global_hash, file_name, FALSE); xdg_dir_time_list_add (file_name, st.st_mtime); } else { free (file_name); } } file_name = malloc (strlen (directory) + strlen ("/mime/magic") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/magic"); if (stat (file_name, &st) == 0) { _xdg_mime_magic_read_from_file (global_magic, file_name); xdg_dir_time_list_add (file_name, st.st_mtime); } else { free (file_name); } file_name = malloc (strlen (directory) + strlen ("/mime/aliases") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/aliases"); _xdg_mime_alias_read_from_file (alias_list, file_name); free (file_name); file_name = malloc (strlen (directory) + strlen ("/mime/subclasses") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/subclasses"); _xdg_mime_parent_read_from_file (parent_list, file_name); free (file_name); file_name = malloc (strlen (directory) + strlen ("/mime/icons") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/icons"); _xdg_mime_icon_read_from_file (icon_list, file_name); free (file_name); file_name = malloc (strlen (directory) + strlen ("/mime/generic-icons") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/generic-icons"); _xdg_mime_icon_read_from_file (generic_icon_list, file_name); free (file_name); return FALSE; /* Keep processing */ } /* Runs a command on all the directories in the search path */ static void xdg_run_command_on_dirs (XdgDirectoryFunc func, void *user_data) { const char *xdg_data_home; const char *xdg_data_dirs; const char *ptr; xdg_data_home = getenv ("XDG_DATA_HOME"); if (xdg_data_home) { if ((func) (xdg_data_home, user_data)) return; } else { const char *home; home = getenv ("HOME"); if (home != NULL) { char *guessed_xdg_home; int stop_processing; guessed_xdg_home = malloc (strlen (home) + strlen ("/.local/share/") + 1); strcpy (guessed_xdg_home, home); strcat (guessed_xdg_home, "/.local/share/"); stop_processing = (func) (guessed_xdg_home, user_data); free (guessed_xdg_home); if (stop_processing) return; } } xdg_data_dirs = getenv ("XDG_DATA_DIRS"); if (xdg_data_dirs == NULL) xdg_data_dirs = "/usr/local/share/:/usr/share/"; ptr = xdg_data_dirs; while (*ptr != '\000') { const char *end_ptr; char *dir; int len; int stop_processing; end_ptr = ptr; while (*end_ptr != ':' && *end_ptr != '\000') end_ptr ++; if (end_ptr == ptr) { ptr++; continue; } if (*end_ptr == ':') len = end_ptr - ptr; else len = end_ptr - ptr + 1; dir = malloc (len + 1); strncpy (dir, ptr, len); dir[len] = '\0'; stop_processing = (func) (dir, user_data); free (dir); if (stop_processing) return; ptr = end_ptr; } } /* Checks file_path to make sure it has the same mtime as last time it was * checked. If it has a different mtime, or if the file doesn't exist, it * returns FALSE. * * FIXME: This doesn't protect against permission changes. */ static int xdg_check_file (const char *file_path, int *exists) { struct stat st; /* If the file exists */ if (stat (file_path, &st) == 0) { XdgDirTimeList *list; if (exists) *exists = TRUE; for (list = dir_time_list; list; list = list->next) { if (! strcmp (list->directory_name, file_path)) { if (st.st_mtime == list->mtime) list->checked = XDG_CHECKED_VALID; else list->checked = XDG_CHECKED_INVALID; return (list->checked != XDG_CHECKED_VALID); } } return TRUE; } if (exists) *exists = FALSE; return FALSE; } static int xdg_check_dir (const char *directory, int *invalid_dir_list) { int invalid, exists; char *file_name; assert (directory != NULL); /* Check the mime.cache file */ file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache"); invalid = xdg_check_file (file_name, &exists); free (file_name); if (invalid) { *invalid_dir_list = TRUE; return TRUE; } else if (exists) { return FALSE; } /* Check the globs file */ file_name = malloc (strlen (directory) + strlen ("/mime/globs") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/globs"); invalid = xdg_check_file (file_name, NULL); free (file_name); if (invalid) { *invalid_dir_list = TRUE; return TRUE; } /* Check the magic file */ file_name = malloc (strlen (directory) + strlen ("/mime/magic") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/magic"); invalid = xdg_check_file (file_name, NULL); free (file_name); if (invalid) { *invalid_dir_list = TRUE; return TRUE; } return FALSE; /* Keep processing */ } /* Walks through all the mime files stat()ing them to see if they've changed. * Returns TRUE if they have. */ static int xdg_check_dirs (void) { XdgDirTimeList *list; int invalid_dir_list = FALSE; for (list = dir_time_list; list; list = list->next) list->checked = XDG_CHECKED_UNCHECKED; xdg_run_command_on_dirs ((XdgDirectoryFunc) xdg_check_dir, &invalid_dir_list); if (invalid_dir_list) return TRUE; for (list = dir_time_list; list; list = list->next) { if (list->checked != XDG_CHECKED_VALID) return TRUE; } return FALSE; } /* We want to avoid stat()ing on every single mime call, so we only look for * newer files every 5 seconds. This will return TRUE if we need to reread the * mime data from disk. */ static int xdg_check_time_and_dirs (void) { struct timeval tv; time_t current_time; int retval = FALSE; gettimeofday (&tv, NULL); current_time = tv.tv_sec; if (current_time >= last_stat_time + 5) { retval = xdg_check_dirs (); last_stat_time = current_time; } return retval; } /* Called in every public function. It reloads the hash function if need be. */ static void xdg_mime_init (void) { if (xdg_check_time_and_dirs ()) { xdg_mime_shutdown (); } if (need_reread) { global_hash = _xdg_glob_hash_new (); global_magic = _xdg_mime_magic_new (); alias_list = _xdg_mime_alias_list_new (); parent_list = _xdg_mime_parent_list_new (); icon_list = _xdg_mime_icon_list_new (); generic_icon_list = _xdg_mime_icon_list_new (); xdg_run_command_on_dirs ((XdgDirectoryFunc) xdg_mime_init_from_directory, NULL); need_reread = FALSE; } } const char * xdg_mime_get_mime_type_for_data (const void *data, size_t len, int *result_prio) { const char *mime_type; xdg_mime_init (); if (_caches) return _xdg_mime_cache_get_mime_type_for_data (data, len, result_prio); mime_type = _xdg_mime_magic_lookup_data (global_magic, data, len, result_prio, NULL, 0); if (mime_type) return mime_type; return XDG_MIME_TYPE_UNKNOWN; } const char * xdg_mime_get_mime_type_for_file (const char *file_name, struct stat *statbuf) { const char *mime_type; /* currently, only a few globs occur twice, and none * more often, so 5 seems plenty. */ const char *mime_types[5]; FILE *file; unsigned char *data; int max_extent; int bytes_read; struct stat buf; const char *base_name; int n; if (file_name == NULL) return NULL; if (! _xdg_utf8_validate (file_name)) return NULL; xdg_mime_init (); if (_caches) return _xdg_mime_cache_get_mime_type_for_file (file_name, statbuf); base_name = _xdg_get_base_name (file_name); n = _xdg_glob_hash_lookup_file_name (global_hash, base_name, mime_types, 5); if (n == 1) return mime_types[0]; if (!statbuf) { if (stat (file_name, &buf) != 0) return XDG_MIME_TYPE_UNKNOWN; statbuf = &buf; } if (!S_ISREG (statbuf->st_mode)) return XDG_MIME_TYPE_UNKNOWN; /* FIXME: Need to make sure that max_extent isn't totally broken. This could * be large and need getting from a stream instead of just reading it all * in. */ max_extent = _xdg_mime_magic_get_buffer_extents (global_magic); data = malloc (max_extent); if (data == NULL) return XDG_MIME_TYPE_UNKNOWN; file = fopen (file_name, "r"); if (file == NULL) { free (data); return XDG_MIME_TYPE_UNKNOWN; } bytes_read = fread (data, 1, max_extent, file); if (ferror (file)) { free (data); fclose (file); return XDG_MIME_TYPE_UNKNOWN; } mime_type = _xdg_mime_magic_lookup_data (global_magic, data, bytes_read, NULL, mime_types, n); free (data); fclose (file); if (mime_type) return mime_type; return XDG_MIME_TYPE_UNKNOWN; } const char * xdg_mime_get_mime_type_from_file_name (const char *file_name) { const char *mime_type; xdg_mime_init (); if (_caches) return _xdg_mime_cache_get_mime_type_from_file_name (file_name); if (_xdg_glob_hash_lookup_file_name (global_hash, file_name, &mime_type, 1)) return mime_type; else return XDG_MIME_TYPE_UNKNOWN; } int xdg_mime_get_mime_types_from_file_name (const char *file_name, const char *mime_types[], int n_mime_types) { xdg_mime_init (); if (_caches) return _xdg_mime_cache_get_mime_types_from_file_name (file_name, mime_types, n_mime_types); return _xdg_glob_hash_lookup_file_name (global_hash, file_name, mime_types, n_mime_types); } int xdg_mime_is_valid_mime_type (const char *mime_type) { /* FIXME: We should make this a better test */ return _xdg_utf8_validate (mime_type); } void xdg_mime_shutdown (void) { XdgCallbackList *list; /* FIXME: Need to make this (and the whole library) thread safe */ if (dir_time_list) { xdg_dir_time_list_free (dir_time_list); dir_time_list = NULL; } if (global_hash) { _xdg_glob_hash_free (global_hash); global_hash = NULL; } if (global_magic) { _xdg_mime_magic_free (global_magic); global_magic = NULL; } if (alias_list) { _xdg_mime_alias_list_free (alias_list); alias_list = NULL; } if (parent_list) { _xdg_mime_parent_list_free (parent_list); parent_list = NULL; } if (icon_list) { _xdg_mime_icon_list_free (icon_list); icon_list = NULL; } if (generic_icon_list) { _xdg_mime_icon_list_free (generic_icon_list); generic_icon_list = NULL; } if (_caches) { int i; for (i = 0; i < n_caches; i++) _xdg_mime_cache_unref (_caches[i]); free (_caches); _caches = NULL; n_caches = 0; } for (list = callback_list; list; list = list->next) (list->callback) (list->data); need_reread = TRUE; } int xdg_mime_get_max_buffer_extents (void) { xdg_mime_init (); if (_caches) return _xdg_mime_cache_get_max_buffer_extents (); return _xdg_mime_magic_get_buffer_extents (global_magic); } const char * _xdg_mime_unalias_mime_type (const char *mime_type) { const char *lookup; if (_caches) return _xdg_mime_cache_unalias_mime_type (mime_type); if ((lookup = _xdg_mime_alias_list_lookup (alias_list, mime_type)) != NULL) return lookup; return mime_type; } const char * xdg_mime_unalias_mime_type (const char *mime_type) { xdg_mime_init (); return _xdg_mime_unalias_mime_type (mime_type); } int _xdg_mime_mime_type_equal (const char *mime_a, const char *mime_b) { const char *unalias_a, *unalias_b; unalias_a = _xdg_mime_unalias_mime_type (mime_a); unalias_b = _xdg_mime_unalias_mime_type (mime_b); if (strcmp (unalias_a, unalias_b) == 0) return 1; return 0; } int xdg_mime_mime_type_equal (const char *mime_a, const char *mime_b) { xdg_mime_init (); return _xdg_mime_mime_type_equal (mime_a, mime_b); } int xdg_mime_media_type_equal (const char *mime_a, const char *mime_b) { char *sep; sep = strchr (mime_a, '/'); if (sep && strncmp (mime_a, mime_b, sep - mime_a + 1) == 0) return 1; return 0; } #if 1 static int xdg_mime_is_super_type (const char *mime) { int length; const char *type; length = strlen (mime); type = &(mime[length - 2]); if (strcmp (type, "/*") == 0) return 1; return 0; } #endif int _xdg_mime_mime_type_subclass (const char *mime, const char *base) { const char *umime, *ubase; const char **parents; if (_caches) return _xdg_mime_cache_mime_type_subclass (mime, base); umime = _xdg_mime_unalias_mime_type (mime); ubase = _xdg_mime_unalias_mime_type (base); if (strcmp (umime, ubase) == 0) return 1; #if 1 /* Handle supertypes */ if (xdg_mime_is_super_type (ubase) && xdg_mime_media_type_equal (umime, ubase)) return 1; #endif /* Handle special cases text/plain and application/octet-stream */ if (strcmp (ubase, "text/plain") == 0 && strncmp (umime, "text/", 5) == 0) return 1; if (strcmp (ubase, "application/octet-stream") == 0) return 1; parents = _xdg_mime_parent_list_lookup (parent_list, umime); for (; parents && *parents; parents++) { if (_xdg_mime_mime_type_subclass (*parents, ubase)) return 1; } return 0; } int xdg_mime_mime_type_subclass (const char *mime, const char *base) { xdg_mime_init (); return _xdg_mime_mime_type_subclass (mime, base); } char ** xdg_mime_list_mime_parents (const char *mime) { const char **parents; char **result; int i, n; if (_caches) return _xdg_mime_cache_list_mime_parents (mime); parents = xdg_mime_get_mime_parents (mime); if (!parents) return NULL; for (i = 0; parents[i]; i++) ; n = (i + 1) * sizeof (char *); result = (char **) malloc (n); memcpy (result, parents, n); return result; } const char ** xdg_mime_get_mime_parents (const char *mime) { const char *umime; xdg_mime_init (); umime = _xdg_mime_unalias_mime_type (mime); return _xdg_mime_parent_list_lookup (parent_list, umime); } void xdg_mime_dump (void) { xdg_mime_init(); printf ("*** ALIASES ***\n\n"); _xdg_mime_alias_list_dump (alias_list); printf ("\n*** PARENTS ***\n\n"); _xdg_mime_parent_list_dump (parent_list); printf ("\n*** CACHE ***\n\n"); _xdg_glob_hash_dump (global_hash); printf ("\n*** GLOBS ***\n\n"); _xdg_glob_hash_dump (global_hash); printf ("\n*** GLOBS REVERSE TREE ***\n\n"); _xdg_mime_cache_glob_dump (); } /* Registers a function to be called every time the mime database reloads its files */ int xdg_mime_register_reload_callback (XdgMimeCallback callback, void *data, XdgMimeDestroy destroy) { XdgCallbackList *list_el; static int callback_id = 1; /* Make a new list element */ list_el = calloc (1, sizeof (XdgCallbackList)); list_el->callback_id = callback_id; list_el->callback = callback; list_el->data = data; list_el->destroy = destroy; list_el->next = callback_list; if (list_el->next) list_el->next->prev = list_el; callback_list = list_el; callback_id ++; return callback_id - 1; } void xdg_mime_remove_callback (int callback_id) { XdgCallbackList *list; for (list = callback_list; list; list = list->next) { if (list->callback_id == callback_id) { if (list->next) list->next = list->prev; if (list->prev) list->prev->next = list->next; else callback_list = list->next; /* invoke the destroy handler */ (list->destroy) (list->data); free (list); return; } } } const char * xdg_mime_get_icon (const char *mime) { xdg_mime_init (); if (_caches) return _xdg_mime_cache_get_icon (mime); return _xdg_mime_icon_list_lookup (icon_list, mime); } const char * xdg_mime_get_generic_icon (const char *mime) { xdg_mime_init (); if (_caches) return _xdg_mime_cache_get_generic_icon (mime); return _xdg_mime_icon_list_lookup (generic_icon_list, mime); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-monitor-daemon.h0000644000175000001440000000517711334251016021247 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-monitor-daemon.h - daemon implementation of volume monitor Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_VOLUME_MONITOR_DAEMON_H #define GNOME_VFS_VOLUME_MONITOR_DAEMON_H #include #include #include #include "gnome-vfs-volume-monitor.h" #ifdef USE_HAL #include #endif /* USE_HAL */ G_BEGIN_DECLS #define GNOME_VFS_TYPE_VOLUME_MONITOR_DAEMON (gnome_vfs_volume_monitor_daemon_get_type ()) #define GNOME_VFS_VOLUME_MONITOR_DAEMON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_VOLUME_MONITOR_DAEMON, GnomeVFSVolumeMonitorDaemon)) #define GNOME_VFS_VOLUME_MONITOR_DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_VOLUME_MONITOR_DAEMON, GnomeVFSVolumeMonitorDaemonClass)) #define GNOME_IS_VFS_VOLUME_MONITOR_DAEMON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_VOLUME_MONITOR_DAEMON)) #define GNOME_IS_VFS_VOLUME_MONITOR_DAEMON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_VOLUME_MONITOR_DAEMON)) typedef struct _GnomeVFSVolumeMonitorDaemon GnomeVFSVolumeMonitorDaemon; typedef struct _GnomeVFSVolumeMonitorDaemonClass GnomeVFSVolumeMonitorDaemonClass; struct _GnomeVFSVolumeMonitorDaemon { GnomeVFSVolumeMonitor parent; #ifdef USE_HAL LibHalContext *hal_ctx; #endif /* USE_HAL */ GList *last_fstab; GList *last_mtab; GList *last_connected_servers; GConfClient *gconf_client; guint connected_id; }; struct _GnomeVFSVolumeMonitorDaemonClass { GnomeVFSVolumeMonitorClass parent_class; }; GType gnome_vfs_volume_monitor_daemon_get_type (void) G_GNUC_CONST; void gnome_vfs_volume_monitor_daemon_force_probe (GnomeVFSVolumeMonitor *volume_monitor_daemon); G_END_DECLS #endif /* GNOME_VFS_VOLUME_MONITOR_DAEMON_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-shared.h0000644000175000001440000000452011334251016017532 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-module-shared.h - code shared between the different modules place. Copyright (C) 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Seth Nickell #include #include G_BEGIN_DECLS const char * gnome_vfs_mime_type_from_mode (mode_t mode); const char * gnome_vfs_mime_type_from_mode_or_default (mode_t mode, const char *defaultv); void gnome_vfs_stat_to_file_info (GnomeVFSFileInfo *file_info, const struct stat *statptr); GnomeVFSResult gnome_vfs_set_meta (GnomeVFSFileInfo *info, const char *file_name, const char *meta_key); GnomeVFSResult gnome_vfs_set_meta_for_list (GnomeVFSFileInfo *info, const char *file_name, const GList *meta_keys); const char *gnome_vfs_get_special_mime_type (GnomeVFSURI *uri); void gnome_vfs_monitor_callback (GnomeVFSMethodHandle *method_handle, GnomeVFSURI *info_uri, GnomeVFSMonitorEventType event_type); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-drive.h0000644000175000001440000001003711334251016016112 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-drive.h - Handling of drives for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_DRIVE_H #define GNOME_VFS_DRIVE_H #include #include G_BEGIN_DECLS #define GNOME_VFS_TYPE_DRIVE (gnome_vfs_drive_get_type ()) #define GNOME_VFS_DRIVE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_DRIVE, GnomeVFSDrive)) #define GNOME_VFS_DRIVE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_DRIVE, GnomeVFSDriveClass)) #define GNOME_IS_VFS_DRIVE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_DRIVE)) #define GNOME_IS_VFS_DRIVE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_DRIVE)) typedef struct _GnomeVFSDrivePrivate GnomeVFSDrivePrivate; struct _GnomeVFSDrive { GObject parent; /*< private >*/ GnomeVFSDrivePrivate *priv; }; typedef struct _GnomeVFSDriveClass GnomeVFSDriveClass; struct _GnomeVFSDriveClass { GObjectClass parent_class; void (* volume_mounted) (GnomeVFSDrive *drive, GnomeVFSVolume *volume); void (* volume_pre_unmount) (GnomeVFSDrive *drive, GnomeVFSVolume *volume); void (* volume_unmounted) (GnomeVFSDrive *drive, GnomeVFSVolume *volume); }; GType gnome_vfs_drive_get_type (void) G_GNUC_CONST; GnomeVFSDrive *gnome_vfs_drive_ref (GnomeVFSDrive *drive); void gnome_vfs_drive_unref (GnomeVFSDrive *drive); void gnome_vfs_drive_volume_list_free (GList *volumes); gulong gnome_vfs_drive_get_id (GnomeVFSDrive *drive); GnomeVFSDeviceType gnome_vfs_drive_get_device_type (GnomeVFSDrive *drive); #ifndef GNOME_VFS_DISABLE_DEPRECATED GnomeVFSVolume * gnome_vfs_drive_get_mounted_volume (GnomeVFSDrive *drive); #endif /*GNOME_VFS_DISABLE_DEPRECATED*/ GList * gnome_vfs_drive_get_mounted_volumes (GnomeVFSDrive *drive); char * gnome_vfs_drive_get_device_path (GnomeVFSDrive *drive); char * gnome_vfs_drive_get_activation_uri (GnomeVFSDrive *drive); char * gnome_vfs_drive_get_display_name (GnomeVFSDrive *drive); char * gnome_vfs_drive_get_icon (GnomeVFSDrive *drive); char * gnome_vfs_drive_get_hal_udi (GnomeVFSDrive *drive); gboolean gnome_vfs_drive_is_user_visible (GnomeVFSDrive *drive); gboolean gnome_vfs_drive_is_connected (GnomeVFSDrive *drive); gboolean gnome_vfs_drive_is_mounted (GnomeVFSDrive *drive); gboolean gnome_vfs_drive_needs_eject (GnomeVFSDrive *drive); gint gnome_vfs_drive_compare (GnomeVFSDrive *a, GnomeVFSDrive *b); void gnome_vfs_drive_mount (GnomeVFSDrive *drive, GnomeVFSVolumeOpCallback callback, gpointer user_data); void gnome_vfs_drive_unmount (GnomeVFSDrive *drive, GnomeVFSVolumeOpCallback callback, gpointer user_data); void gnome_vfs_drive_eject (GnomeVFSDrive *drive, GnomeVFSVolumeOpCallback callback, gpointer user_data); G_END_DECLS #endif /* GNOME_VFS_DRIVE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-filesystem-type.c0000644000175000001440000001050011334251016020132 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-filesystem-type.c - Handling of filesystems for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include #include #include "gnome-vfs-filesystem-type.h" struct FSInfo { char *fs_type; char *fs_name; gboolean use_trash; }; /* NB: Keep in sync with gnome_vfs_volume_get_filesystem_type() * documentation! */ static struct FSInfo fs_data[] = { { "affs" , N_("AFFS Volume"), 0}, { "afs" , N_("AFS Network Volume"), 0 }, { "auto" , N_("Auto-detected Volume"), 0 }, { "btrfs" , N_("Btrfs Linux Volume"), 1 }, { "cd9660" , N_("CD-ROM Drive"), 0 }, { "cdda" , N_("CD Digital Audio"), 0 }, { "cdrom" , N_("CD-ROM Drive"), 0 }, { "devfs" , N_("Hardware Device Volume"), 0 }, { "encfs" , N_("EncFS Volume"), 1 }, { "ecryptfs" , N_("eCryptfs Volume"), 1}, { "ext2" , N_("Ext2 Linux Volume"), 1 }, { "ext2fs" , N_("Ext2 Linux Volume"), 1 }, { "ext3" , N_("Ext3 Linux Volume"), 1 }, { "ext4" , N_("Ext4 Linux Volume"), 1 }, { "ext4dev" , N_("Ext4 Linux Volume"), 1 }, { "fat" , N_("MSDOS Volume"), 1 }, { "ffs" , N_("BSD Volume"), 1 }, { "fuse" , N_("FUSE Volume"), 1 }, { "hfs" , N_("MacOS Volume"), 1 }, { "hfsplus" , N_("MacOS Volume"), 0 }, { "iso9660" , N_("CDROM Volume"), 0 }, { "hsfs" , N_("Hsfs CDROM Volume"), 0 }, { "jfs" , N_("JFS Volume"), 1 }, { "hpfs" , N_("Windows NT Volume"), 0 }, { "kernfs" , N_("System Volume"), 0 }, { "lfs" , N_("BSD Volume"), 1 }, { "linprocfs", N_("System Volume"), 0 }, { "mfs" , N_("Memory Volume"), 1 }, { "minix" , N_("Minix Volume"), 0 }, { "msdos" , N_("MSDOS Volume"), 0 }, { "msdosfs" , N_("MSDOS Volume"), 0 }, { "nfs" , N_("NFS Network Volume"), 1 }, { "ntfs" , N_("Windows NT Volume"), 0 }, { "ntfs-3g" , N_("Windows NT Volume"), 1 }, { "nilfs2" , N_("NILFS Linux Volume"), 1 }, { "nwfs" , N_("Netware Volume"), 0 }, { "proc" , N_("System Volume"), 0 }, { "procfs" , N_("System Volume"), 0 }, { "ptyfs" , N_("System Volume"), 0 }, { "reiser4" , N_("Reiser4 Linux Volume"), 1 }, { "reiserfs" , N_("ReiserFS Linux Volume"), 1 }, { "smbfs" , N_("Windows Shared Volume"), 1 }, { "supermount",N_("SuperMount Volume"), 0 }, { "udf" , N_("DVD Volume"), 0 }, { "ufs" , N_("Solaris/BSD Volume"), 1 }, { "udfs" , N_("Udfs Solaris Volume"), 1 }, { "pcfs" , N_("Pcfs Solaris Volume"), 1 }, { "samfs" , N_("Sun SAM-QFS Volume"), 1 }, { "tmpfs" , N_("Temporary Volume"), 1 }, { "umsdos" , N_("Enhanced DOS Volume"), 0 }, { "vfat" , N_("Windows VFAT Volume"), 1 }, { "xenix" , N_("Xenix Volume"), 0 }, { "xfs" , N_("XFS Linux Volume"), 1 }, { "xiafs" , N_("XIAFS Volume"), 0 }, { "cifs" , N_("CIFS Volume"), 1 }, }; static struct FSInfo * find_fs_info (const char *fs_type) { int i; for (i = 0; i < G_N_ELEMENTS (fs_data); i++) { if (strcmp (fs_data[i].fs_type, fs_type) == 0) { return &fs_data[i]; } } return NULL; } char * _gnome_vfs_filesystem_volume_name (const char *fs_type) { struct FSInfo *info; info = find_fs_info (fs_type); if (info != NULL) { return g_strdup (_(info->fs_name)); } return g_strdup (_("Unknown")); } gboolean _gnome_vfs_filesystem_use_trash (const char *fs_type) { struct FSInfo *info; info = find_fs_info (fs_type); if (info != NULL) { return info->use_trash; } return FALSE; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-cancellation-private.h0000644000175000001440000000265711334251016021116 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-cancellation-private.h - Cancellation handling for the GNOME Virtual File System access methods. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_CANCELLATION_PRIVATE_H #define GNOME_VFS_CANCELLATION_PRIVATE_H #include "gnome-vfs-cancellation.h" G_BEGIN_DECLS void _gnome_vfs_cancellation_set_handle (GnomeVFSCancellation *cancellation, gint32 connection, gint32 handle); void _gnome_vfs_cancellation_unset_handle (GnomeVFSCancellation *cancellation); G_END_DECLS #endif /* GNOME_VFS_CANCELLATION_PRIVATE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-monitor.h0000644000175000001440000000720611334251016020001 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-monitor.h - Handling of volumes for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_VOLUME_MONITOR_H #define GNOME_VFS_VOLUME_MONITOR_H #include #include G_BEGIN_DECLS #define GNOME_VFS_TYPE_VOLUME_MONITOR (gnome_vfs_volume_monitor_get_type ()) #define GNOME_VFS_VOLUME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_VOLUME_MONITOR, GnomeVFSVolumeMonitor)) #define GNOME_VFS_VOLUME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_VOLUME_MONITOR, GnomeVFSVolumeMonitorClass)) #define GNOME_IS_VFS_VOLUME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_VOLUME_MONITOR)) #define GNOME_IS_VFS_VOLUME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_VOLUME_MONITOR)) typedef struct _GnomeVFSVolumeMonitorPrivate GnomeVFSVolumeMonitorPrivate; typedef struct _GnomeVFSVolumeMonitor GnomeVFSVolumeMonitor; typedef struct _GnomeVFSVolumeMonitorClass GnomeVFSVolumeMonitorClass; struct _GnomeVFSVolumeMonitor { GObject parent; GnomeVFSVolumeMonitorPrivate *priv; }; struct _GnomeVFSVolumeMonitorClass { GObjectClass parent_class; /*< public >*/ /* signals */ void (* volume_mounted) (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume); void (* volume_pre_unmount) (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume); void (* volume_unmounted) (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume); void (* drive_connected) (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive); void (* drive_disconnected) (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive); }; GType gnome_vfs_volume_monitor_get_type (void) G_GNUC_CONST; GnomeVFSVolumeMonitor *gnome_vfs_get_volume_monitor (void); GnomeVFSVolumeMonitor *gnome_vfs_volume_monitor_ref (GnomeVFSVolumeMonitor *volume_monitor); void gnome_vfs_volume_monitor_unref (GnomeVFSVolumeMonitor *volume_monitor); GList * gnome_vfs_volume_monitor_get_mounted_volumes (GnomeVFSVolumeMonitor *volume_monitor); GList * gnome_vfs_volume_monitor_get_connected_drives (GnomeVFSVolumeMonitor *volume_monitor); GnomeVFSVolume *gnome_vfs_volume_monitor_get_volume_for_path (GnomeVFSVolumeMonitor *volume_monitor, const char *path); GnomeVFSVolume *gnome_vfs_volume_monitor_get_volume_by_id (GnomeVFSVolumeMonitor *volume_monitor, gulong id); GnomeVFSDrive * gnome_vfs_volume_monitor_get_drive_by_id (GnomeVFSVolumeMonitor *volume_monitor, gulong id); G_END_DECLS #endif /* GNOME_VFS_VOLUME_MONITOR_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime.h0000644000175000001440000000463011334251016015732 00000000000000/* * Copyright (C) 1997-2001 Free Software Foundation * Copyright (C) 2000, 2001 Eazel, Inc. * All rights reserved. * * This file is part of the Gnome Library. * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_MIME_H #define GNOME_VFS_MIME_H #include #include G_BEGIN_DECLS struct stat; #ifndef GNOME_VFS_DISABLE_DEPRECATED void gnome_vfs_mime_shutdown (void); #endif #ifndef GNOME_VFS_DISABLE_DEPRECATED const char *gnome_vfs_mime_type_from_name (const char *filename); #endif const char *gnome_vfs_mime_type_from_name_or_default (const char *filename, const char *defaultv); const char *gnome_vfs_get_mime_type_common (GnomeVFSURI *uri); /* FIXME: This function should be named more clearly, maybe to show that it gets the mime type only using the uri information. */ const char *gnome_vfs_get_mime_type_from_uri (GnomeVFSURI *uri); #ifndef GNOME_VFS_DISABLE_DEPRECATED const char *gnome_vfs_get_mime_type_from_file_data (GnomeVFSURI *uri); #endif const char * gnome_vfs_get_file_mime_type_fast (const char *path, const struct stat *optional_stat_info); const char *gnome_vfs_get_file_mime_type (const char *path, const struct stat *optional_stat_info, gboolean suffix_only); gboolean gnome_vfs_mime_type_is_supertype (const char *mime_type); char *gnome_vfs_get_supertype_from_mime_type (const char *mime_type); void gnome_vfs_mime_info_cache_reload (const char *dir); void gnome_vfs_mime_reload (void); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-async-job-map.h0000644000175000001440000000440411334251016017442 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-async-job-map.h: The async job map, maps GnomeVFSAsyncHandles to GnomeVFSJobs. Many async operations, keep the same 'GnomeVFSJob' over the course of several operations. Copyright (C) 2001 Eazel Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Pavel Cisler */ #ifndef GNOME_VFS_ASYNC_JOB_MAP_H #define GNOME_VFS_ASYNC_JOB_MAP_H #include "gnome-vfs-job.h" /* async job map calls */ void _gnome_vfs_async_job_map_init (void); void _gnome_vfs_async_job_map_shutdown (void); gboolean _gnome_vfs_async_job_completed (GnomeVFSAsyncHandle *handle); void _gnome_vfs_async_job_map_add_job (GnomeVFSJob *job); void _gnome_vfs_async_job_map_remove_job (GnomeVFSJob *job); GnomeVFSJob *_gnome_vfs_async_job_map_get_job (const GnomeVFSAsyncHandle *handle); void _gnome_vfs_async_job_map_assert_locked (void); void _gnome_vfs_async_job_map_lock (void); void _gnome_vfs_async_job_map_unlock (void); /* async job callback map calls */ void _gnome_vfs_async_job_callback_valid (guint callback_id, gboolean *valid, gboolean *cancelled); gboolean _gnome_vfs_async_job_add_callback (GnomeVFSJob *job, GnomeVFSNotifyResult *notify_result); void _gnome_vfs_async_job_remove_callback (guint callback_id); void _gnome_vfs_async_job_cancel_job_and_callbacks (GnomeVFSAsyncHandle *job_handle, GnomeVFSJob *job); #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-handle.h0000644000175000001440000000766411334251016016250 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-handle.h - Handle object for GNOME VFS files. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_HANDLE_H #define GNOME_VFS_HANDLE_H #include #include #include G_BEGIN_DECLS /** * GnomeVFSMethodHandle: * * Generic handle (pointer) that encapsulates the method internals * associated with a specific resource. * * Methods are supposed to store all information and open resources * regarding a handle in a dynamically allocated structure, which * is casted into a #GnomeVFSMethodHandle (in fact a void pointer) * when it is passed around in generic GnomeVFS functions. * During the lifetime of a handle, GnomeVFS stores it as a * generic pointer. After closing a handle, it will not be * known to GnomeVFS anymore. * * There are file handles and file monitor handles. * * File handles are opened in the #GnomeVFSMethod's * #GnomeVFSMethodOpenFunc, #GnomeVFSMethodCreateFunc * and #GnomeVFSMethodOpenDirectoryFunc * and closed in its #GnomeVFSMethodCloseFunc and * #GnomeVFSMethodCloseDirectoryFunc. * * A number of #GnomeVFSMethod operations rely on file handles: * * #GnomeVFSMethodReadFunc * #GnomeVFSMethodWriteFunc * #GnomeVFSMethodSeekFunc * #GnomeVFSMethodTellFunc * #GnomeVFSMethodGetFileInfoFromHandleFunc * #GnomeVFSMethodTruncateHandleFunc * #GnomeVFSMethodFileControlFunc * * File monitor handles however are created using * #GnomeVFSMethodMonitorAddFunc * and cancelled using * #GnomeVFSMethodMonitorCancelFunc **/ typedef gpointer GnomeVFSMethodHandle; /** * GnomeVFSHandle: * * Handle to a file. * * A handle is obtained using gnome_vfs_open() and gnome_vfs_create() * family of functions on the file. A handle represents a file stream, gnome_vfs_close(), * gnome_vfs_write(), gnome_vfs_read() and all the other I/O operations take a * GnomeVFSHandle * that identifies the file where the operation is going to be * performed. **/ typedef struct GnomeVFSHandle GnomeVFSHandle; /** * GnomeVFSOpenMode: * @GNOME_VFS_OPEN_NONE: No access. * @GNOME_VFS_OPEN_READ: Read access. * @GNOME_VFS_OPEN_WRITE: Write access. * @GNOME_VFS_OPEN_RANDOM: Random access. * @GNOME_VFS_OPEN_TRUNCATE: Truncate file before accessing it, i.e. delete its contents. * * Mode in which files are opened. If GNOME_VFS_OPEN_RANDOM is not used, the * file will be have to be accessed sequentially. **/ typedef enum { GNOME_VFS_OPEN_NONE = 0, GNOME_VFS_OPEN_READ = 1 << 0, GNOME_VFS_OPEN_WRITE = 1 << 1, GNOME_VFS_OPEN_RANDOM = 1 << 2, GNOME_VFS_OPEN_TRUNCATE = 1 << 3 } GnomeVFSOpenMode; /** * GnomeVFSSeekPosition: * @GNOME_VFS_SEEK_START: Start of the file. * @GNOME_VFS_SEEK_CURRENT: Current position. * @GNOME_VFS_SEEK_END: End of the file. * * This is used to specify the start position for seek operations. **/ typedef enum { GNOME_VFS_SEEK_START, GNOME_VFS_SEEK_CURRENT, GNOME_VFS_SEEK_END } GnomeVFSSeekPosition; G_END_DECLS #endif /* GNOME_VFS_HANDLE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-cdrom.h0000644000175000001440000000260711334251016016111 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-cdro.h - cdrom utilities Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_CDROM_H #define GNOME_VFS_CDROM_H #define CDS_NO_INFO 0 /* if not implemented */ #define CDS_AUDIO 100 #define CDS_DATA_1 101 #define CDS_DATA_2 102 #define CDS_XA_2_1 103 #define CDS_XA_2_2 104 #define CDS_MIXED 105 char *_gnome_vfs_get_iso9660_volume_name (int fd); int _gnome_vfs_get_cdrom_type (const char *vol_dev_path, int *fd); #endif /* GNOME_VFS_CDROM_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-dns-sd.c0000644000175000001440000017010311334251016016165 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-dns-sd.c - DNS-SD functions Copyright (C) 2004 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #if HAVE_UNISTD_H # include #endif /* #if HAVE_UNISTD_H */ #include #include #include #include #include #include #include "gnome-vfs-dns-sd.h" #include #include #ifdef HAVE_AVAHI #include #include #include #include #include #include #endif #ifdef HAVE_HOWL /* Need to work around howl exporting its config file... */ #undef PACKAGE #undef VERSION #include #endif #define PATH_GCONF_GNOME_VFS_DNS_SD "/system/dns_sd" #define PATH_GCONF_GNOME_VFS_DNS_SD_EXTRA_DOMAINS "/system/dns_sd/extra_domains" #define DNS_REPLY_SIZE (64*1024) /* Some systems don't those namespaced constants defined, see * http://bugzilla.gnome.org/show_bug.cgi?id=162289 * I'm assuming that if 1 constant isn't defined, then all the others * are missing too, please file a bug if that's not the case on your system */ #ifndef NS_MAXDNAME #define NS_MAXDNAME MAXDNAME #define NS_HFIXEDSZ HFIXEDSZ #define ns_c_in C_IN #define ns_t_any T_ANY #define ns_t_srv T_SRV #define ns_t_txt T_TXT #define ns_t_ptr T_PTR #endif /* NS_MAXDNAME */ /* Unicast DNS browsing: */ typedef struct { guint16 id; guint16 flags; guint16 qdcount; guint16 ancount; guint16 nscount; guint16 arcount; } dns_message_header; typedef struct { char name[NS_MAXDNAME]; guint16 type; guint16 class; guint32 ttl; guint16 rdlength; } dns_message_rr; /* Normally, this would be autogenerated by glib-mkenums, but in this case it has no way to guess correctly. */ GType gnome_vfs_dns_sd_service_status_get_type (void) { static GType etype = 0; if (etype == 0) { static const GEnumValue values[] = { { GNOME_VFS_DNS_SD_SERVICE_ADDED, "GNOME_VFS_DNS_SD_SERVICE_ADDED", "added" }, { GNOME_VFS_DNS_SD_SERVICE_REMOVED, "GNOME_VFS_DNS_SD_SERVICE_REMOVED", "removed" }, { 0, NULL, NULL } }; etype = g_enum_register_static ("GnomeVFSDNSSDServiceStatus", values); } return etype; } static GHashTable * decode_txt_record (char *raw_txt, int raw_txt_len) { GHashTable *hash; int i; int len; char *key, *value, *end; char *key_dup, *value_dup; if (raw_txt == NULL) return NULL; hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); i = 0; while (i < raw_txt_len) { len = raw_txt[i++]; if (i + len > raw_txt_len) { break; } if (len == 0) { continue; } key = &raw_txt[i]; end = &raw_txt[i + len]; i += len; if (*key == '=') { /* 6.4 - silently ignore keys starting with = */ continue; } value = memchr (key, '=', len); if (value) { key_dup = g_strndup (key, value - key); value++; /* Skip '=' */ value_dup = g_strndup (value, end - value); } else { key_dup = g_strndup (key, len); value_dup = NULL; } if (!g_hash_table_lookup_extended (hash, key_dup, NULL, NULL)) { g_hash_table_insert (hash, key_dup, value_dup); } else { g_free (key_dup); g_free (value_dup); } } return hash; } static guint16 decode_16 (unsigned char *p) { return p[0] << 8 | p[1]; } static guint32 decode_32 (unsigned char *p) { return p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3]; } static void split_service_instance (char *name, char *service, char *type, char *domain) { int i, n_dots; i = 0; while (*name != 0) { if (*name == '.') { name++; break; } if (*name == '\\') { name++; if (g_ascii_isdigit (*name)) { if (g_ascii_isdigit (name[1]) && g_ascii_isdigit (name[2])) { service[i++] = g_ascii_digit_value (name[0]) * 100 + g_ascii_digit_value (name[1]) * 10 + g_ascii_digit_value (name[2]); name += 3; } } else if (*name != 0) { service[i++] = *name++; } } else { service[i++] = *name++; } } service[i] = 0; i = 0; n_dots = 0; while (*name != 0) { if (*name == '.') { n_dots++; } if (n_dots == 2) { name++; break; } type[i++] = *name++; } type[i] = 0; i = 0; while (*name != 0) { domain[i++] = *name++; } domain[i] = 0; } static gboolean is_valid_dns_sd_type (const char *type) { return type[0] == '_' && (g_str_has_suffix (type, "._tcp") || g_str_has_suffix (type, "._udp")); } static int parse_header (unsigned char *reply, int reply_len, unsigned char *p, dns_message_header *header) { if (reply_len < NS_HFIXEDSZ) return -1; header->id = decode_16 (p); p += 2; header->flags = decode_16 (p); p += 2; header->qdcount = decode_16 (p); p += 2; header->ancount = decode_16 (p); p += 2; header->nscount = decode_16 (p); p += 2; header->arcount = decode_16 (p); p += 2; return NS_HFIXEDSZ; } static int parse_qs (unsigned char *reply, int reply_len, unsigned char *p, char *name, int name_size, int *qtype, int *qclass) { int len; unsigned char *start, *end; start = p; end = reply + reply_len; if (p >= end) return -1; len = dn_expand (reply, reply + reply_len, p, name, name_size); if (len < 0) return -1; p += len; if (p + 4 > end) return -1; *qtype = decode_16 (p); p += 2; *qclass = decode_16 (p); p += 2; return p - start; } static int parse_rr (unsigned char *reply, int reply_len, unsigned char *p, dns_message_rr *rr) { int len; unsigned char *start, *end; start = p; end = reply + reply_len; if (p >= end) return -1; len = dn_expand (reply, reply + reply_len, p, rr->name, sizeof (rr->name)); if (len < 0) return -1; p += len; if (p + 10 > end) return -1; rr->type = decode_16 (p); p += 2; rr->class = decode_16 (p); p += 2; rr->ttl = decode_32 (p); p += 4; rr->rdlength = decode_16 (p); p += 2; if (p + rr->rdlength > end) return -1; return p - start; } static GnomeVFSResult unicast_list_domains_sync (const char *domain, GList **domains) { int reply_len, len, i; unsigned char reply[DNS_REPLY_SIZE]; unsigned char *p; char *searchdomain; char name[NS_MAXDNAME]; dns_message_header header; dns_message_rr rr; int res; GList *l; *domains = NULL; res = res_init (); if (res != 0) { return GNOME_VFS_ERROR_INTERNAL; } /* Use TCP to support large queries */ _res.options |= RES_USEVC; searchdomain = g_strconcat ("_browse._dns-sd._udp.", domain, NULL); reply_len = res_search (searchdomain, ns_c_in, ns_t_ptr, reply, sizeof (reply)); g_free (searchdomain); if (reply_len == -1) { return GNOME_VFS_ERROR_GENERIC; } /* Parse out query */ p = reply; len = parse_header (reply, reply_len, p, &header); if (len < 0) { goto error; } p += len; if ((header.flags & (1 << 15)) == 0) { /* Not a reply */ goto error; } if (header.flags & (1 << 9)) { /* Truncated */ goto error; } for (i = 0; i < header.qdcount; i++) { int qtype, qclass; len = parse_qs (reply, reply_len, p, name, sizeof(name), &qtype, &qclass); if (len < 0) goto error; p += len; } for (i = 0; i < header.ancount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; if (rr.type == ns_t_ptr) { len = dn_expand (reply, reply + reply_len, p, name, sizeof(name)); if (len < 0) goto error; *domains = g_list_prepend (*domains, g_strdup (name)); } p += rr.rdlength; } for (i = 0; i < header.nscount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; p += rr.rdlength; } for (i = 0; i < header.arcount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; p += rr.rdlength; } return GNOME_VFS_OK; error: for (l = *domains; l != NULL; l = l->next) { g_free (l->data); } g_list_free (*domains); *domains = NULL; return GNOME_VFS_ERROR_GENERIC; } static GnomeVFSResult unicast_browse_sync (const char *domain, const char *type, int *num_services, GnomeVFSDNSSDService **services) { int reply_len, len, i; unsigned char reply[DNS_REPLY_SIZE]; unsigned char *p; char *searchdomain; char name[NS_MAXDNAME]; dns_message_header header; dns_message_rr rr; GArray *array; GnomeVFSDNSSDService *service; int res; array = NULL; res = res_init (); if (res != 0) { return GNOME_VFS_ERROR_INTERNAL; } /* Use TCP to support large queries */ _res.options |= RES_USEVC; searchdomain = g_strconcat (type, ".", domain, NULL); reply_len = res_search (searchdomain, ns_c_in, ns_t_ptr, reply, sizeof (reply)); g_free (searchdomain); if (reply_len == -1) { return GNOME_VFS_ERROR_GENERIC; } /* Parse out query */ p = reply; len = parse_header (reply, reply_len, p, &header); if (len < 0) { goto error; } p += len; if ((header.flags & (1 << 15)) == 0) { /* Not a reply */ goto error; } if (header.flags & (1 << 9)) { /* Truncated */ goto error; } for (i = 0; i < header.qdcount; i++) { int qtype, qclass; len = parse_qs (reply, reply_len, p, name, sizeof(name), &qtype, &qclass); if (len < 0) goto error; p += len; } array = g_array_new (FALSE, FALSE, sizeof (GnomeVFSDNSSDService)); for (i = 0; i < header.ancount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; if (rr.type == ns_t_ptr) { GnomeVFSDNSSDService service; char ptr_service[NS_MAXDNAME]; char ptr_type[NS_MAXDNAME]; char ptr_domain[NS_MAXDNAME]; len = dn_expand (reply, reply + reply_len, p, name, sizeof(name)); if (len < 0) goto error; split_service_instance (name, ptr_service, ptr_type, ptr_domain); if (is_valid_dns_sd_type (ptr_type)) { service.name = g_strdup (ptr_service); service.type = g_strdup (ptr_type); service.domain = g_strdup (ptr_domain); g_array_append_val(array, service); } } p += rr.rdlength; } for (i = 0; i < header.nscount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; p += rr.rdlength; } for (i = 0; i < header.arcount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; p += rr.rdlength; } *num_services = array->len; *services = (GnomeVFSDNSSDService *)g_array_free (array, FALSE); return GNOME_VFS_OK; error: for (i = 0; i < array->len; i++) { service = &g_array_index (array, GnomeVFSDNSSDService, i); g_free (service->name); g_free (service->type); g_free (service->domain); } g_array_free (array, TRUE); return GNOME_VFS_ERROR_GENERIC; } static char * service_to_dns_name (const char *name, const char *type, const char *domain) { GString *string; const char *p; string = g_string_new (NULL); p = name; while (*p) { if (*p == '\\') g_string_append (string, "\\\\"); else if (*p == '.') g_string_append (string, "\\."); else g_string_append_c (string, *p); p++; } g_string_append_c (string, '.'); g_string_append (string, type); g_string_append_c (string, '.'); g_string_append (string, domain); return g_string_free (string, FALSE); } static GnomeVFSResult unicast_resolve_sync (const char *name, const char *type, const char *domain, char **host, int *port_out, int *text_raw_len_out, char **text_raw_out) { int reply_len, len, i; unsigned char reply[DNS_REPLY_SIZE]; unsigned char *p; char dnsname[NS_MAXDNAME]; dns_message_header header; dns_message_rr rr; char *full_name; int res; *host = NULL; *port_out = 0; *text_raw_len_out = 0; *text_raw_out = NULL; res = res_init (); if (res != 0) { return GNOME_VFS_ERROR_INTERNAL; } /* Use TCP to support large queries */ _res.options |= RES_USEVC; full_name = service_to_dns_name (name, type, domain); reply_len = res_search (full_name, ns_c_in, ns_t_any, reply, sizeof (reply)); g_free (full_name); if (reply_len == -1) { return GNOME_VFS_ERROR_GENERIC; } /* Parse out query */ p = reply; len = parse_header (reply, reply_len, p, &header); if (len < 0) goto error; p += len; if ((header.flags & (1 << 15)) == 0) { /* Not a reply */ goto error; } if (header.flags & (1 << 9)) { /* Truncated */ g_warning ("dns-sd reply truncated!\n"); goto error; } for (i = 0; i < header.qdcount; i++) { int qtype, qclass; len = parse_qs (reply, reply_len, p, dnsname, sizeof(dnsname), &qtype, &qclass); if (len < 0) goto error; p += len; } for (i = 0; i < header.ancount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; if (rr.type == ns_t_srv) { unsigned char *pp; int priority, weight, port; pp = p; priority = decode_16 (pp); pp += 2; weight = decode_16 (pp); pp += 2; port = decode_16 (pp); pp += 2; len = dn_expand (reply, reply + reply_len, pp, dnsname, sizeof(dnsname)); if (len < 0) goto error; /* TODO: look at prio and weigth. For now use the first */ if (*host == NULL) { *host = g_strdup (dnsname); *port_out = port; } } if (rr.type == ns_t_txt) { *text_raw_out = g_memdup (p, rr.rdlength); *text_raw_len_out = rr.rdlength; } p += rr.rdlength; } for (i = 0; i < header.nscount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; p += rr.rdlength; } for (i = 0; i < header.arcount; i++) { len = parse_rr (reply, reply_len, p, &rr); if (len < 0) goto error; p += len; p += rr.rdlength; } return GNOME_VFS_OK; error: g_free (*host); *host = NULL; g_free (*text_raw_out); *text_raw_out = NULL; return GNOME_VFS_ERROR_GENERIC; } /* multicast DNS functions */ #ifdef HAVE_AVAHI static AvahiClient *global_client = NULL; static gboolean avahi_initialized = FALSE; static GSList *browse_handles = NULL; static AvahiClient *get_global_avahi_client (void); static void add_service_browser_cb (gpointer data, gpointer user_data); static void remove_service_browser_cb (gpointer data, gpointer user_data); /* Callback for state changes on the Client */ static void avahi_client_callback (AvahiClient *client, AvahiClientState state, void *userdata) { if (state == AVAHI_CLIENT_FAILURE) { if (avahi_client_errno (client) == AVAHI_ERR_DISCONNECTED) { /* Remove the service browsers from the handles */ g_slist_foreach (browse_handles, remove_service_browser_cb, NULL); /* Destroy old client */ avahi_client_free (client); global_client = NULL; avahi_initialized = FALSE; /* Reconnect */ get_global_avahi_client (); } } else if (state == AVAHI_CLIENT_S_RUNNING) { /* Start browsing again */ g_slist_foreach (browse_handles, add_service_browser_cb, NULL); } } static AvahiClient * get_global_avahi_client (void) { static AvahiGLibPoll *glib_poll = NULL; int error; if (!avahi_initialized) { if (glib_poll == NULL) { glib_poll = avahi_glib_poll_new (NULL, G_PRIORITY_DEFAULT); } /* Create a new AvahiClient instance */ global_client = avahi_client_new (avahi_glib_poll_get (glib_poll), AVAHI_CLIENT_NO_FAIL, avahi_client_callback, glib_poll, &error); if (global_client == NULL) { /* Print out the error string */ g_warning ("Error initializing Avahi: %s", avahi_strerror (error)); avahi_glib_poll_free (glib_poll); glib_poll = NULL; return NULL; } avahi_initialized = TRUE; } return global_client; } #endif #ifdef HAVE_HOWL static gboolean howl_input (GIOChannel *io_channel, GIOCondition cond, gpointer callback_data) { sw_discovery session; sw_salt salt; session = callback_data; if (sw_discovery_salt (session, &salt) == SW_OKAY) { sw_salt_lock (salt); sw_discovery_read_socket (session); sw_salt_unlock (salt); } return TRUE; } static void set_up_howl_session (sw_discovery session) { int fd; GIOChannel *channel; fd = sw_discovery_socket (session); channel = g_io_channel_unix_new (fd); g_io_add_watch (channel, G_IO_IN, howl_input, session); g_io_channel_unref (channel); } static sw_discovery get_global_howl_session (void) { static sw_discovery global_session = NULL; static gboolean initialized = FALSE; if (!initialized) { if (sw_discovery_init (&global_session) != SW_OKAY) { g_warning ("get_global_howl_session - howl init failed\n"); return NULL; } set_up_howl_session (global_session); initialized = TRUE; } return global_session; } #endif /* HAVE_HOWL */ struct GnomeVFSDNSSDBrowseHandle { char *domain; char *type; GnomeVFSDNSSDBrowseCallback callback; gpointer callback_data; GDestroyNotify callback_data_destroy_func; gboolean is_local; gboolean cancelled; /* multicast: */ #ifdef HAVE_AVAHI AvahiServiceBrowser *avahi_sb; #endif #ifdef HAVE_HOWL sw_discovery_oid howl_id; #endif /* unicast data: */ int n_services; GnomeVFSDNSSDService *services; GnomeVFSResult res; gboolean finished; }; static void free_browse_handle (GnomeVFSDNSSDBrowseHandle *handle) { int i; g_free (handle->domain); g_free (handle->type); for (i = 0; i < handle->n_services; i++) { g_free (handle->services[i].name); g_free (handle->services[i].type); g_free (handle->services[i].domain); } g_free (handle->services); if (handle->callback_data_destroy_func != NULL) handle->callback_data_destroy_func (handle->callback_data); g_free (handle); } static gboolean unicast_browse_idle (gpointer data) { GnomeVFSDNSSDBrowseHandle *handle; int i; handle = data; if (!handle->cancelled && handle->res == GNOME_VFS_OK) { for (i = 0; i < handle->n_services; i++) { handle->callback (data, GNOME_VFS_DNS_SD_SERVICE_ADDED, &handle->services[i], handle->callback_data); } } handle->finished = TRUE; if (handle->cancelled) free_browse_handle (handle); return FALSE; } static gpointer unicast_browse_thread (gpointer data) { GnomeVFSDNSSDBrowseHandle *handle; handle = data; handle->res = unicast_browse_sync (handle->domain, handle->type, &handle->n_services, &handle->services); g_idle_add (unicast_browse_idle, handle); return NULL; } #ifdef HAVE_AVAHI static void avahi_browse_callback (AvahiServiceBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name, const char *type, const char *domain, AvahiLookupResultFlags flags, void *userdata) { GnomeVFSDNSSDBrowseHandle *handle; GnomeVFSDNSSDService service; handle = userdata; service.name = (char *)name; service.type = (char *)type; service.domain = (char *)domain; if (event == AVAHI_BROWSER_FAILURE || event == AVAHI_BROWSER_ALL_FOR_NOW || event == AVAHI_BROWSER_CACHE_EXHAUSTED) { return; } if (!handle->cancelled) { handle->callback (handle, (event == AVAHI_BROWSER_NEW) ? GNOME_VFS_DNS_SD_SERVICE_ADDED : GNOME_VFS_DNS_SD_SERVICE_REMOVED, &service, handle->callback_data); } } static void remove_service_browser_cb (gpointer data, gpointer user_data) { GnomeVFSDNSSDBrowseHandle *handle = data; handle->avahi_sb = NULL; } static void add_service_browser_cb (gpointer data, gpointer user_data) { GnomeVFSDNSSDBrowseHandle *handle = data; AvahiServiceBrowser *sb; AvahiClient *client; client = get_global_avahi_client (); if (!client) return; sb = avahi_service_browser_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, handle->type, NULL, AVAHI_LOOKUP_USE_MULTICAST, avahi_browse_callback, handle); if (sb != NULL) { handle->avahi_sb = sb; return; } g_warning ("Failed to create service browser: %s\n", avahi_strerror( avahi_client_errno (client))); } #endif #ifdef HAVE_HOWL struct howl_browse_idle_data { GnomeVFSDNSSDBrowseHandle *handle; GnomeVFSDNSSDServiceStatus status; GnomeVFSDNSSDService service; }; static gboolean howl_browse_idle (gpointer data) { struct howl_browse_idle_data *idle_data; GnomeVFSDNSSDBrowseHandle *handle; idle_data = data; handle = idle_data->handle; if (handle->cancelled) return FALSE; handle->callback (handle, idle_data->status, &idle_data->service, handle->callback_data); return FALSE; } static void browse_idle_data_free (struct howl_browse_idle_data *idle_data) { g_free (idle_data->service.name); g_free (idle_data->service.type); g_free (idle_data->service.domain); g_free (idle_data); } static gboolean free_browse_handle_idle (gpointer data) { free_browse_handle (data); return FALSE; } static sw_result howl_browse_reply (sw_discovery discovery, sw_discovery_oid oid, sw_discovery_browse_status status, sw_uint32 interface_index, sw_const_string name, sw_const_string type, sw_const_string domain, sw_opaque extra) { GnomeVFSDNSSDBrowseHandle *handle; struct howl_browse_idle_data *idle_data; int len; handle = extra; if (status == SW_DISCOVERY_BROWSE_RELEASE) { /* free in an idle to make sure the other idles are done, and to give sane environment for destroy callback */ g_idle_add (free_browse_handle_idle, handle); return SW_OKAY; } if (handle->cancelled) return SW_OKAY; idle_data = g_new (struct howl_browse_idle_data, 1); idle_data->handle = handle; if (status == SW_DISCOVERY_BROWSE_ADD_SERVICE) { idle_data->status = GNOME_VFS_DNS_SD_SERVICE_ADDED; } else if (status == SW_DISCOVERY_BROWSE_REMOVE_SERVICE) { idle_data->status = GNOME_VFS_DNS_SD_SERVICE_REMOVED; } else { g_warning ("Unknown browse status\n"); g_free (idle_data); return SW_OKAY; } idle_data->service.name = g_strdup (name); idle_data->service.type = g_strdup (type); idle_data->service.domain = g_strdup (domain); /* We don't want last dots in the domain or type */ len = strlen (idle_data->service.type); if (len > 0 && idle_data->service.type[len-1] == '.') idle_data->service.type[len-1] = 0; len = strlen (idle_data->service.domain); if (len > 0 && idle_data->service.domain[len-1] == '.') idle_data->service.domain[len-1] = 0; g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, howl_browse_idle, idle_data, (GDestroyNotify) browse_idle_data_free); return SW_OKAY; } #endif /* HAVE_HOWL */ /** * gnome_vfs_dns_sd_browse: * @handle: pointer to a pointer to a #GnomeVFSDNSSDBrowseHandle object. * @domain: dns domain to browse, or "local" for multicast DNS. * @type: type of service to browse for. * @callback: function to be called when service is discovered. * @callback_data: data to pass to @callback. * @callback_data_destroy_func: optional destructor function for @callback_data. * * Browses @domain for service of the type @type, calling @callback whenever * a new one is found or removed. * * The domain to use can be "local" for multicast dns on the local network * (known as mDNS), or it can be the domain of the current host. You can also * use gnome_vfs_dns_sd_list_browse_domains_sync() to get a list of domains * that are interested in a particular domain. * * The type is a string of the form "_type._tcp" or "_type._udp", where type * is a service type registered at http://www.dns-sd.org/ServiceTypes.html. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_dns_sd_browse (GnomeVFSDNSSDBrowseHandle **handle_out, const char *domain, const char *type, GnomeVFSDNSSDBrowseCallback callback, gpointer callback_data, GDestroyNotify callback_data_destroy_func) { GnomeVFSDNSSDBrowseHandle *handle; *handle_out = NULL; handle = g_new0 (GnomeVFSDNSSDBrowseHandle, 1); handle->domain = g_strdup (domain); handle->type = g_strdup (type); handle->callback = callback; handle->callback_data = callback_data; handle->callback_data_destroy_func = callback_data_destroy_func; if (strcmp (domain, "local") == 0) { #ifdef HAVE_AVAHI AvahiClient *client; AvahiServiceBrowser *sb; handle->is_local = TRUE; client = get_global_avahi_client (); if (client) { sb = avahi_service_browser_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, type, NULL, AVAHI_LOOKUP_USE_MULTICAST, avahi_browse_callback, handle); if (sb != NULL) { handle->avahi_sb = sb; *handle_out = handle; browse_handles = g_slist_append (browse_handles, handle); return GNOME_VFS_OK; } g_warning ("Failed to create service browser: %s\n", avahi_strerror( avahi_client_errno (client))); } return GNOME_VFS_ERROR_GENERIC; #elif defined (HAVE_HOWL) sw_result res; sw_discovery session; handle->is_local = TRUE; session = get_global_howl_session (); if (session) { res = sw_discovery_browse (session, 0, type, domain, howl_browse_reply, handle, &handle->howl_id); if (res == SW_OKAY) { *handle_out = handle; return GNOME_VFS_OK; } } return GNOME_VFS_ERROR_GENERIC; #else free_browse_handle (handle); return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } else { handle->is_local = FALSE; if (g_thread_create (unicast_browse_thread, handle, FALSE, NULL) == NULL) { g_free (handle->domain); g_free (handle->type); g_free (handle); return GNOME_VFS_ERROR_INTERNAL; } *handle_out = handle; return GNOME_VFS_OK; } } /** * gnome_vfs_dns_sd_stop_browse: * @handle: handle of the browse operation to be stopped. * * Stops browsing a domain started with gnome_vfs_dns_sd_browse(). * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_dns_sd_stop_browse (GnomeVFSDNSSDBrowseHandle *handle) { if (handle->is_local) { #ifdef HAVE_AVAHI handle->cancelled = TRUE; if (handle->avahi_sb) avahi_service_browser_free (handle->avahi_sb); browse_handles = g_slist_remove (browse_handles, handle); free_browse_handle (handle); #endif #ifdef HAVE_HOWL handle->cancelled = TRUE; sw_discovery_cancel (get_global_howl_session (), handle->howl_id); #endif return GNOME_VFS_OK; } else { if (handle->finished) free_browse_handle (handle); else handle->cancelled = TRUE; return GNOME_VFS_OK; } } struct GnomeVFSDNSSDResolveHandle { char *name; char *domain; char *type; GnomeVFSDNSSDResolveCallback callback; gpointer callback_data; GDestroyNotify callback_data_destroy_func; gboolean is_local; char *host; int port; char *text; int text_len; /* multicast: */ #ifdef HAVE_AVAHI AvahiServiceResolver *avahi_sr; #endif #ifdef HAVE_HOWL sw_discovery_oid howl_id; guint timeout_tag; #endif /* unicast data: */ gboolean cancelled; GnomeVFSResult res; guint idle_tag; }; static void free_resolve_handle (GnomeVFSDNSSDResolveHandle *handle) { g_free (handle->name); g_free (handle->domain); g_free (handle->type); g_free (handle->host); g_free (handle->text); if (handle->callback_data_destroy_func != NULL) handle->callback_data_destroy_func (handle->callback_data); g_free (handle); } static gboolean unicast_resolve_idle (gpointer data) { GnomeVFSDNSSDResolveHandle *handle; GnomeVFSDNSSDService service; GHashTable *hash; handle = data; if (!handle->cancelled) { service.name = handle->name; service.type = handle->type; service.domain = handle->domain; hash = decode_txt_record (handle->text, handle->text_len); handle->callback (data, handle->res, &service, handle->host, handle->port, hash, handle->text_len, handle->text, handle->callback_data); if (hash) g_hash_table_destroy (hash); } free_resolve_handle (handle); return FALSE; } static gpointer unicast_resolve_thread (gpointer data) { GnomeVFSDNSSDResolveHandle *handle; handle = data; handle->res = unicast_resolve_sync (handle->name, handle->type, handle->domain, &handle->host, &handle->port, &handle->text_len, &handle->text); g_idle_add (unicast_resolve_idle, handle); return NULL; } #ifdef HAVE_AVAHI struct sync_resolve_data { AvahiSimplePoll *poll; AvahiIfIndex interface; AvahiProtocol protocol; gboolean got_link_local_ipv6; gboolean got_data; char *host; int port; char *text; int text_len; }; static void avahi_resolve_sync_client_callback (AvahiClient *c, AvahiClientState state, void *user_data) { struct sync_resolve_data *data; data = user_data; if (state == AVAHI_CLIENT_FAILURE) { avahi_simple_poll_quit (data->poll); } } static void avahi_resolve_host_name_sync_callback (AvahiHostNameResolver *r, AvahiIfIndex interface G_GNUC_UNUSED, AvahiProtocol protocol G_GNUC_UNUSED, AvahiResolverEvent event, const char *name G_GNUC_UNUSED, const AvahiAddress *address, AvahiLookupResultFlags flags G_GNUC_UNUSED, void *user_data) { struct sync_resolve_data *data; char a[128]; data = user_data; if (event == AVAHI_RESOLVER_FOUND) { if (address->proto == AVAHI_PROTO_INET6 && address->data.ipv6.address[0] == 0xfe && address->data.ipv6.address[1] == 0x80) { data->got_link_local_ipv6 = TRUE; goto out; } data->got_data = TRUE; avahi_address_snprint (a, sizeof(a), address); data->host = g_strdup (a); } out: avahi_host_name_resolver_free (r); avahi_simple_poll_quit (data->poll); } static GnomeVFSResult avahi_resolve_host_name (AvahiIfIndex interface, AvahiProtocol protocol, const char *host_name, char **address) { GnomeVFSResult result = GNOME_VFS_ERROR_GENERIC; struct sync_resolve_data resolve_data; AvahiHostNameResolver *hr = NULL; AvahiClient *client = NULL; int error = 0; retry: resolve_data.got_data = FALSE; resolve_data.got_link_local_ipv6 = FALSE; resolve_data.poll = avahi_simple_poll_new (); if (resolve_data.poll == NULL) { g_warning ("Failed to create simple poll object"); goto cleanup; } client = avahi_client_new (avahi_simple_poll_get (resolve_data.poll), 0, avahi_resolve_sync_client_callback, &resolve_data, &error); /* Check wether creating the client object succeeded */ if (client == NULL) { g_warning ("Failed to create client: %s\n", avahi_strerror (error)); goto cleanup; } hr = avahi_host_name_resolver_new (client, interface, protocol, host_name, AVAHI_PROTO_UNSPEC, 0, avahi_resolve_host_name_sync_callback, &resolve_data); if (hr == NULL) { g_warning ("Failed to resolve host name '%s': %s\n", host_name, avahi_strerror (avahi_client_errno (client))); goto cleanup; } for (;;) if (avahi_simple_poll_iterate (resolve_data.poll, -1) != 0) break; if (resolve_data.got_link_local_ipv6) { /* We ignore non-routable ipv6 link-local addresses here, because our api doesn't give the iface, so they are useless. Prefer ipv4 address instead */ protocol = AVAHI_PROTO_INET; avahi_client_free (client); avahi_simple_poll_free (resolve_data.poll); client = NULL; resolve_data.poll = NULL; goto retry; } if (resolve_data.got_data) { result = GNOME_VFS_OK; *address = resolve_data.host; } else { result = GNOME_VFS_ERROR_HOST_NOT_FOUND; } cleanup: if (client) avahi_client_free (client); if (resolve_data.poll) avahi_simple_poll_free (resolve_data.poll); return result; } static void avahi_resolve_async_callback (AvahiServiceResolver *r, AvahiIfIndex interface, AvahiProtocol protocol, AvahiResolverEvent event, const char *name, const char *type, const char *domain, const char *host_name, const AvahiAddress *address, uint16_t port, AvahiStringList *txt, AvahiLookupResultFlags flags, void *user_data) { GnomeVFSDNSSDResolveHandle *handle; GnomeVFSDNSSDService service; GHashTable *hash; size_t text_len; char *resolved = NULL; const char *host; char *text; char a[128]; handle = user_data; if (event == AVAHI_RESOLVER_FOUND) { text_len = avahi_string_list_serialize (txt, NULL, 0); text = g_malloc (text_len); text_len = avahi_string_list_serialize (txt, text, text_len); hash = decode_txt_record (text, text_len); service.name = (char *)name; service.type = (char *)type; service.domain = (char *)domain; if (address) { avahi_address_snprint (a, sizeof(a), address); host = a; } else { g_assert (NULL != host_name); if (g_str_has_suffix (host_name, ".local") && GNOME_VFS_OK == avahi_resolve_host_name (interface, protocol, host_name, &resolved)) { host = resolved; } else { host = host_name; } } handle->callback (handle, GNOME_VFS_OK, &service, host, port, hash, handle->text_len, handle->text, handle->callback_data); g_free (resolved); if (hash) { g_hash_table_destroy (hash); } g_free (text); } else if (event == AVAHI_RESOLVER_FAILURE) { handle->callback (handle, GNOME_VFS_ERROR_HOST_NOT_FOUND, NULL, NULL, 0, NULL, 0, NULL, handle->callback_data); } avahi_service_resolver_free (r); free_resolve_handle (handle); } #endif #ifdef HAVE_HOWL static gboolean howl_resolve_idle (gpointer data) { GnomeVFSDNSSDResolveHandle *handle; GnomeVFSDNSSDService service; GHashTable *hash; handle = data; hash = decode_txt_record (handle->text, handle->text_len); service.name = handle->name; service.type = handle->type; service.domain = handle->domain; handle->callback (handle, GNOME_VFS_OK, &service, handle->host, handle->port, hash, handle->text_len, handle->text, handle->callback_data); if (hash) { g_hash_table_destroy (hash); } free_resolve_handle (handle); return FALSE; } static sw_result howl_resolve_reply (sw_discovery discovery, sw_discovery_oid id, sw_uint32 interface_index, sw_const_string name, sw_const_string type, sw_const_string domain, sw_ipv4_address address, sw_port port, sw_octets text_record, sw_ulong text_record_len, sw_opaque extra) { GnomeVFSDNSSDResolveHandle *handle; handle = extra; g_assert (handle->idle_tag == 0); handle->host = g_malloc (16); sw_ipv4_address_name (address, handle->host, 16); handle->port = port; handle->text = g_memdup (text_record, text_record_len); handle->text_len = text_record_len; /* We want no more replies */ sw_discovery_cancel (get_global_howl_session (), handle->howl_id); g_source_remove (handle->timeout_tag); handle->idle_tag = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, howl_resolve_idle, handle, (GDestroyNotify) NULL); return SW_OKAY; } static gboolean howl_resolve_timeout (gpointer data) { GnomeVFSDNSSDResolveHandle *handle; handle = data; handle->callback (handle, GNOME_VFS_ERROR_HOST_NOT_FOUND, NULL, NULL, 0, NULL, 0, NULL, handle->callback_data); if (handle->idle_tag) { /* We already resolved, but the idle hasn't run yet */ g_source_remove (handle->idle_tag); } else { /* TODO: We shouldn't get any callbacks after stopping, but there is a bug in howl 0.9.5 where it can still happen */ sw_discovery_cancel (get_global_howl_session (), handle->howl_id); } free_resolve_handle (handle); return FALSE; } #endif /** * gnome_vfs_dns_sd_resolve: * @handle: pointer to a pointer to a #GnomeVFSDNSSDResolveHandle object. * @name: name of the service to resolve in UTF-8 encoding. * @type: type of the service to resolve. * @domain: dns domain of the service to resolve, or "local" for multicast DNS. * @timeout: maximum time (in milliseconds) to try to resolve, or zero if no maximum. * @callback: function to be called when the service has been resolved. * @callback_data: data to pass to @callback. * @callback_data_destroy_func: optional destructor function for @callback_data. * * Tries to resolve a specific service (typically recieved from * gnome_vfs_dns_sd_browse()) into a hostname/ip, port number and additional * options. * * If you ever have to save a reference to a service you should store the * unresolved name/type/domain tripplet, because the actual host for the * service can change. * * The @timeout argument is primarily useful for local resolves, since the * host owning the service might no longer be around to answer. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_dns_sd_resolve (GnomeVFSDNSSDResolveHandle **handle_out, const char *name, const char *type, const char *domain, int timeout, GnomeVFSDNSSDResolveCallback callback, gpointer callback_data, GDestroyNotify callback_data_destroy_func) { GnomeVFSDNSSDResolveHandle *handle; *handle_out = NULL; handle = g_new0 (GnomeVFSDNSSDResolveHandle, 1); handle->name = g_strdup (name); handle->domain = g_strdup (domain); handle->type = g_strdup (type); handle->callback = callback; handle->callback_data = callback_data; handle->callback_data_destroy_func = callback_data_destroy_func; if (strcmp (domain, "local") == 0) { #ifdef HAVE_AVAHI AvahiClient *client; AvahiServiceResolver *sr; handle->is_local = TRUE; client = get_global_avahi_client (); if (client) { sr = avahi_service_resolver_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, name, type, domain, AVAHI_PROTO_UNSPEC, AVAHI_LOOKUP_NO_ADDRESS, avahi_resolve_async_callback, handle); if (sr != NULL) { handle->avahi_sr = sr; *handle_out = handle; return GNOME_VFS_OK; } } return GNOME_VFS_ERROR_GENERIC; #elif defined (HAVE_HOWL) sw_result res; sw_discovery session; handle->is_local = TRUE; session = get_global_howl_session (); if (session) { res = sw_discovery_resolve (session, 0, name, type, domain, howl_resolve_reply, handle, &handle->howl_id); if (res == SW_OKAY) { if (timeout != 0) { handle->timeout_tag = g_timeout_add (timeout, howl_resolve_timeout, handle); } *handle_out = handle; return GNOME_VFS_OK; } } return GNOME_VFS_ERROR_GENERIC; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } else { handle->is_local = FALSE; if (g_thread_create (unicast_resolve_thread, handle, FALSE, NULL) == NULL) { g_free (handle->domain); g_free (handle->type); g_free (handle); return GNOME_VFS_ERROR_INTERNAL; } *handle_out = handle; return GNOME_VFS_OK; } } /** * gnome_vfs_dns_sd_cancel_resolve: * @handle: handle of the resolve operation to be cancelled. * * Cancels resolving a service started with gnome_vfs_dns_sd_resolve(). * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_dns_sd_cancel_resolve (GnomeVFSDNSSDResolveHandle *handle) { if (handle->is_local) { #ifdef HAVE_AVAHI avahi_service_resolver_free (handle->avahi_sr); free_resolve_handle (handle); #endif #ifdef HAVE_HOWL g_source_remove (handle->timeout_tag); if (handle->idle_tag) { /* We already resolved, but the idle hasn't run yet */ g_source_remove (handle->idle_tag); } else { /* TODO: We shouldn't get any callbacks after stopping, but there is a bug in howl 0.9.5 where it can still happen */ sw_discovery_cancel (get_global_howl_session (), handle->howl_id); } free_resolve_handle (handle); #endif return GNOME_VFS_OK; } else { handle->cancelled = TRUE; return GNOME_VFS_OK; } } #if defined(HAVE_AVAHI) || defined(HAVE_HOWL) static int find_existing_service (GArray *array, const char *name, const char *type, const char *domain) { GnomeVFSDNSSDService *existing; int i; for (i = 0; i < array->len; i++) { existing = &g_array_index (array, GnomeVFSDNSSDService, i); if (strcmp (existing->name, name) == 0 && strcmp (existing->type, type) == 0 && strcmp (existing->domain, domain) == 0) { return i; } } return -1; } #endif #ifdef HAVE_AVAHI struct sync_browse_data { AvahiSimplePoll *poll; GArray *array; }; static void avahi_browse_sync_client_callback (AvahiClient *client, AvahiClientState state, void *user_data) { struct sync_browse_data *data; data = user_data; if (state == AVAHI_CLIENT_FAILURE) { avahi_simple_poll_quit (data->poll); } } static void avahi_browse_sync_callback (AvahiServiceBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name, const char *type, const char *domain, AvahiLookupResultFlags flags, void *user_data) { struct sync_browse_data *data; GnomeVFSDNSSDService service, *existing; int i; gboolean free_service; data = user_data; free_service = TRUE; service.name = g_strdup (name); service.type = g_strdup (type); service.domain = g_strdup (domain); if (event == AVAHI_BROWSER_NEW) { if (find_existing_service (data->array, service.name, service.type, service.domain) == -1) { free_service = FALSE; g_array_append_val (data->array, service); } } else if (event == AVAHI_BROWSER_REMOVE) { i = find_existing_service (data->array, service.name, service.type, service.domain); if (i != -1) { existing = &g_array_index (data->array, GnomeVFSDNSSDService, i); g_free (existing->name); g_free (existing->type); g_free (existing->domain); g_array_remove_index (data->array, i); } } else if (event == AVAHI_BROWSER_ALL_FOR_NOW) { avahi_simple_poll_quit (data->poll); } if (free_service) { g_free (service.name); g_free (service.type); g_free (service.domain); } } static void stop_poll_timeout (AvahiTimeout *timeout, void *user_data) { AvahiSimplePoll *poll = user_data; avahi_simple_poll_quit (poll); } #endif #ifdef HAVE_HOWL static sw_result howl_browse_reply_sync (sw_discovery discovery, sw_discovery_oid id, sw_discovery_browse_status status, sw_uint32 interface_index, sw_const_string name, sw_const_string type, sw_const_string domain, sw_opaque extra) { GnomeVFSDNSSDService service, *existing; GArray *array; int i, len; gboolean free_service; array = extra; if (status == SW_DISCOVERY_BROWSE_RELEASE) { /* free in an idle to make sure the other idles are done, and to give sane environment for destroy callback */ return SW_OKAY; } free_service = TRUE; service.name = g_strdup (name); service.type = g_strdup (type); service.domain = g_strdup (domain); /* We don't want last dots in the domain or type */ len = strlen (service.type); if (len > 0 && service.type[len-1] == '.') service.type[len-1] = 0; len = strlen (service.domain); if (len > 0 && service.domain[len-1] == '.') service.domain[len-1] = 0; if (status == SW_DISCOVERY_BROWSE_ADD_SERVICE) { if (find_existing_service (array, service.name, service.type, service.domain) == -1) { free_service = FALSE; g_array_append_val (array, service); } } else if (status == SW_DISCOVERY_BROWSE_REMOVE_SERVICE) { i = find_existing_service (array, service.name, service.type, service.domain); if (i != -1) { existing = &g_array_index (array, GnomeVFSDNSSDService, i); g_free (existing->name); g_free (existing->type); g_free (existing->domain); g_array_remove_index (array, i); } } else { g_warning ("Unknown browse status\n"); } if (free_service) { g_free (service.name); g_free (service.type); g_free (service.domain); } return SW_OKAY; } #endif /* HAVE_HOWL */ /** * gnome_vfs_dns_sd_browse_sync: * @domain: The dns domain to browse, or "local" for multicast DNS. * @type: type of the service to browse for. * @timeout_msec: maximum time to browse, in milliseconds. * @n_services: pointer to location to store number of returned services. * @services: pointer to location to store returned services. * * Browses @domain for service of the type @type, returning the result * after blocking for the duration of the browse. For details about @domain * and @type, see gnome_vfs_dns_sd_browse(). * * @timeout is essential for the "local" domain, since you can never really * know when you've gotten the full set of return values when using multicast. * * The returned list can be freed with gnome_vfs_dns_sd_service_list_free(). * * This is a synchronous version of gnome_vfs_dns_sd_browse(), see that for * more details. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_dns_sd_browse_sync (const char *domain, const char *type, int timeout_msec, int *n_services, GnomeVFSDNSSDService **services) { *n_services = 0; *services = NULL; if (strcmp (domain, "local") == 0) { #ifdef HAVE_AVAHI AvahiSimplePoll *simple_poll; const AvahiPoll *poll; AvahiClient *client = NULL; AvahiServiceBrowser *sb; int error; GArray *array; struct sync_browse_data data; struct timeval tv; simple_poll = avahi_simple_poll_new (); data.poll = simple_poll; if (simple_poll == NULL) { g_warning ("Failed to create simple poll object"); return GNOME_VFS_ERROR_GENERIC; } poll = avahi_simple_poll_get (simple_poll); client = avahi_client_new (poll, 0, avahi_browse_sync_client_callback, &data, &error); /* Check wether creating the client object succeeded */ if (client == NULL) { g_warning ("Failed to create client: %s\n", avahi_strerror (error)); avahi_simple_poll_free (simple_poll); return GNOME_VFS_ERROR_GENERIC; } array = g_array_new (FALSE, FALSE, sizeof (GnomeVFSDNSSDService)); data.array = array; sb = avahi_service_browser_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, type, NULL, AVAHI_LOOKUP_USE_MULTICAST, avahi_browse_sync_callback, &data); if (sb == NULL) { g_warning ("Failed to create service browser: %s\n", avahi_strerror (avahi_client_errno (client))); g_array_free (array, TRUE); avahi_client_free (client); avahi_simple_poll_free (simple_poll); return GNOME_VFS_ERROR_GENERIC; } avahi_elapse_time (&tv, timeout_msec, 0); poll->timeout_new (poll, &tv, stop_poll_timeout, (void *)simple_poll); /* Run the main loop util reply or timeout */ for (;;) if (avahi_simple_poll_iterate (simple_poll, -1) != 0) break; avahi_service_browser_free (sb); avahi_client_free (client); avahi_simple_poll_free (simple_poll); *n_services = array->len; *services = (GnomeVFSDNSSDService *)g_array_free (array, FALSE); return GNOME_VFS_OK; #elif defined (HAVE_HOWL) sw_discovery session; sw_salt salt; sw_result res; sw_ulong timeout; sw_discovery_oid browse_id; struct timeval end_tv, tv; GArray *array; if (sw_discovery_init (&session) != SW_OKAY) { g_warning ("gnome_vfs_dns_sd_browse_sync - howl init failed\n"); return GNOME_VFS_ERROR_GENERIC; } if (sw_discovery_salt (session, &salt) != SW_OKAY) { g_warning ("gnome_vfs_dns_sd_browse_sync - couldn't get salt\n"); sw_discovery_fina (session); return GNOME_VFS_ERROR_GENERIC; } array = g_array_new (FALSE, FALSE, sizeof (GnomeVFSDNSSDService)); res = sw_discovery_browse (session, 0, type, domain, howl_browse_reply_sync, array, &browse_id); if (res != SW_OKAY) { g_warning ("gnome_vfs_dns_sd_browse_sync - howl browse failed\n"); g_array_free (array, TRUE); sw_discovery_fina (session); return GNOME_VFS_ERROR_GENERIC; } gettimeofday (&end_tv, NULL); tv = end_tv; end_tv.tv_sec += timeout_msec / 1000; end_tv.tv_usec += (timeout_msec % 1000) * 1000; end_tv.tv_sec += end_tv.tv_usec / 1000000; end_tv.tv_usec %= 1000000; do { timeout = timeout_msec; sw_salt_step (salt, &timeout); gettimeofday (&tv, NULL); timeout_msec = (end_tv.tv_sec - tv.tv_sec) * 1000 + (end_tv.tv_usec - tv.tv_usec) / 1000; } while (timeout_msec > 0); sw_discovery_cancel (session, browse_id); sw_discovery_fina (session); *n_services = array->len; *services = (GnomeVFSDNSSDService *)g_array_free (array, FALSE); return GNOME_VFS_OK; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } else { return unicast_browse_sync (domain, type, n_services, services); } } #ifdef HAVE_AVAHI static void avahi_resolve_sync_callback (AvahiServiceResolver *r, AvahiIfIndex interface, AvahiProtocol protocol, AvahiResolverEvent event, const char *name, const char *type, const char *domain, const char *host_name, const AvahiAddress *address, uint16_t port, AvahiStringList *txt, AvahiLookupResultFlags flags, void *user_data) { struct sync_resolve_data *data; data = user_data; if (event == AVAHI_RESOLVER_FOUND) { data->got_data = TRUE; data->protocol = protocol; data->interface = interface; data->host = g_strdup (host_name); data->port = port; data->text_len = avahi_string_list_serialize (txt, NULL, 0); data->text = g_malloc (data->text_len); avahi_string_list_serialize (txt, data->text, data->text_len); } avahi_service_resolver_free (r); avahi_simple_poll_quit (data->poll); } #endif #ifdef HAVE_HOWL struct sync_resolve_data { gboolean got_data; char *host; int port; char *text; int text_len; }; static sw_result howl_resolve_reply_sync (sw_discovery discovery, sw_discovery_oid id, sw_uint32 interface_index, sw_const_string name, sw_const_string type, sw_const_string domain, sw_ipv4_address address, sw_port port, sw_octets text_record, sw_ulong text_record_len, sw_opaque extra) { struct sync_resolve_data *data; data = extra; data->got_data = TRUE; data->host = g_malloc (16); sw_ipv4_address_name (address, data->host, 16); data->port = port; data->text = g_memdup (text_record, text_record_len); data->text_len = text_record_len; return SW_OKAY; } #endif /** * gnome_vfs_dns_sd_resolve_sync: * @name: name of the service to resolve in UTF-8 encoding. * @type: type of the service to resolve. * @domain: dns domain of the service to resolve, or "local" for multicast DNS. * @timeout_msec: maximum time(in milliseconds) to try to resolve. * @host: location to store the host name or ip of the host hosting the service. * @port: location to store the port number to use for the service. * @text: location to store a hash table giving additional options about the service. * @text_raw_len_out: location to store length of @text_raw_out. * @text_raw_out: location to store raw version of the additional options in @text. * * Tries to resolve a specific service (typically recieved from * gnome_vfs_dns_sd_browse()) into a hostname/ip, port number and additional * options. * * This is a synchronous version of gnome_vfs_dns_sd_resolve(), see that (and * its callback GnomeVFSDNSSDResolveCallback()) for more details. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_dns_sd_resolve_sync (const char *name, const char *type, const char *domain, int timeout_msec, char **host, int *port, GHashTable **text, int *text_raw_len_out, char **text_raw_out) { int text_raw_len; char *text_raw; GnomeVFSResult res; if (strcmp (domain, "local") == 0) { #ifdef HAVE_AVAHI AvahiSimplePoll *simple_poll; AvahiClient *client = NULL; AvahiServiceResolver *sr; int error; struct sync_resolve_data resolve_data = {0}; AvahiLookupFlags flags = AVAHI_LOOKUP_NO_ADDRESS; simple_poll = avahi_simple_poll_new (); resolve_data.poll = simple_poll; if (simple_poll == NULL) { g_warning ("Failed to create simple poll object"); return GNOME_VFS_ERROR_GENERIC; } client = avahi_client_new (avahi_simple_poll_get (simple_poll), 0, avahi_resolve_sync_client_callback, &resolve_data, &error); /* Check wether creating the client object succeeded */ if (client == NULL) { g_warning ("Failed to create client: %s\n", avahi_strerror (error)); avahi_simple_poll_free (simple_poll); return GNOME_VFS_ERROR_GENERIC; } if (!text && !text_raw_out) flags|= AVAHI_LOOKUP_NO_TXT; sr = avahi_service_resolver_new (client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, name, type, domain, AVAHI_PROTO_UNSPEC, flags, avahi_resolve_sync_callback, &resolve_data); if (sr == NULL) { g_warning ("Failed to resolve service '%s': %s\n", name, avahi_strerror (avahi_client_errno (client))); avahi_client_free (client); avahi_simple_poll_free (simple_poll); return GNOME_VFS_ERROR_GENERIC; } /* Run the main loop util reply or timeout */ for (;;) if (avahi_simple_poll_iterate (simple_poll, -1) != 0) break; avahi_client_free (client); avahi_simple_poll_free (simple_poll); if (resolve_data.got_data) { GnomeVFSResult result = GNOME_VFS_OK; if (g_str_has_suffix (resolve_data.host, ".local")) { result = avahi_resolve_host_name ( resolve_data.interface, resolve_data.protocol, resolve_data.host, host); g_free (resolve_data.host); } else { *host = resolve_data.host; } *port = resolve_data.port; if (text != NULL) *text = decode_txt_record (resolve_data.text, resolve_data.text_len); if (text_raw_len_out != NULL && text_raw_out) { *text_raw_len_out = resolve_data.text_len; *text_raw_out = resolve_data.text; } else { g_free (resolve_data.text); } return result; } return GNOME_VFS_ERROR_HOST_NOT_FOUND; #elif defined (HAVE_HOWL) sw_discovery session; sw_salt salt; sw_result res; sw_ulong timeout; sw_discovery_oid resolve_id; struct timeval end_tv, tv; struct sync_resolve_data resolve_data = {0}; if (sw_discovery_init (&session) != SW_OKAY) { g_warning ("gnome_vfs_dns_sd_resolve_sync - howl init failed\n"); return GNOME_VFS_ERROR_GENERIC; } if (sw_discovery_salt (session, &salt) != SW_OKAY) { g_warning ("gnome_vfs_dns_sd_resolve_sync - couldn't get salt\n"); sw_discovery_fina (session); return GNOME_VFS_ERROR_GENERIC; } res = sw_discovery_resolve (session, 0, name, type, domain, howl_resolve_reply_sync, &resolve_data, &resolve_id); if (res != SW_OKAY) { g_warning ("gnome_vfs_dns_sd_resolve_sync - howl resolve failed\n"); sw_discovery_fina (session); return GNOME_VFS_ERROR_GENERIC; } gettimeofday (&end_tv, NULL); tv = end_tv; end_tv.tv_sec += timeout_msec / 1000; end_tv.tv_usec += (timeout_msec % 1000) * 1000; end_tv.tv_sec += end_tv.tv_usec / 1000000; end_tv.tv_usec %= 1000000; do { timeout = timeout_msec; sw_salt_step (salt, &timeout); gettimeofday (&tv, NULL); timeout_msec = (end_tv.tv_sec - tv.tv_sec) * 1000 + (end_tv.tv_usec - tv.tv_usec) / 1000; } while (!resolve_data.got_data && timeout_msec > 0); sw_discovery_cancel (session, resolve_id); sw_discovery_fina (session); if (resolve_data.got_data) { *host = resolve_data.host; *port = resolve_data.port; if (text != NULL) *text = decode_txt_record (resolve_data.text, resolve_data.text_len); if (text_raw_len_out != NULL && text_raw_out) { *text_raw_len_out = resolve_data.text_len; *text_raw_out = resolve_data.text; } else { g_free (resolve_data.text); } return GNOME_VFS_OK; } return GNOME_VFS_ERROR_HOST_NOT_FOUND; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } else { res = unicast_resolve_sync (name, type, domain, host, port, &text_raw_len, &text_raw); if (res == GNOME_VFS_OK) { if (text != NULL) { *text = decode_txt_record (text_raw, text_raw_len); } if (text_raw_len_out != NULL) { *text_raw_len_out = text_raw_len; *text_raw_out = text_raw; } else { g_free (text_raw); } } return res; } } /** * gnome_vfs_dns_sd_service_list_free: * @services: the list of services to free. * @n_services: the number of services to free. * * Frees a list of services as returned by gnome_vfs_dns_sd_browse_sync(). */ void gnome_vfs_dns_sd_service_list_free (GnomeVFSDNSSDService *services, int n_services) { int i; for (i = 0; i < n_services; i++) { g_free (services[i].name); g_free (services[i].type); g_free (services[i].domain); } g_free (services); } /** * gnome_vfs_dns_sd_list_browse_domains_sync: * @domain: the domain to list browsable domains in. * @timeout_msec: maximum time to run, in milliseconds. * @domains: location to store the returned list of domain names strings. * * Lists the recommended browsing domains for a specific dns domain. * This can be used to find interesting domains for the domain * you are currently in. These can then be browsed with gnome_vfs_dns_sd_browse(). * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_dns_sd_list_browse_domains_sync (const char *domain, int timeout_msec, GList **domains) { if (strcmp (domain, "local") == 0) { /* TODO: Not supported at the moment */ return GNOME_VFS_ERROR_NOT_SUPPORTED; } else { return unicast_list_domains_sync (domain, domains); } } /** * gnome_vfs_get_default_browse_domains: * * Returns a list of domain names that is useful to * browse for standard services. The list is generated * by contacting the dns server of the domain part the * hostname and asking for the list of browse domains. * Then extra domains from a gconf setting is added. * * The "local" domain is not normally returned by this. * Care should be taken with local services so that its * obvious that they are local, and cannot be confused * with non-local services. * * Return value: a #GList of domain name strings. */ GList * gnome_vfs_get_default_browse_domains (void) { char hostname[256]; char *domain, *dot; GList *domains; char *extra_domains; char **domainsv; GConfClient *client; int i; domain = NULL; if (gethostname (hostname, sizeof(hostname)) == 0) { dot = strchr (hostname, '.'); if (dot != NULL && dot[0] != 0 && dot[1] != 0) { domain = dot + 1; } } domains = NULL; if (domain != NULL) { gnome_vfs_dns_sd_list_browse_domains_sync (domain, 2000, &domains); } if (!gconf_is_initialized ()) { if (!gconf_init (0, NULL, NULL)) { return domains; } } client = gconf_client_get_default (); extra_domains = gconf_client_get_string (client, PATH_GCONF_GNOME_VFS_DNS_SD_EXTRA_DOMAINS, NULL); if (extra_domains != NULL) { domainsv = g_strsplit (extra_domains, ",", 0); for (i = 0; domainsv[i] != NULL; i++) { domains = g_list_prepend (domains, g_strdup (domainsv[i])); } g_strfreev (domainsv); } g_free (extra_domains); g_object_unref (G_OBJECT (client)); return domains; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-private.c0000644000175000001440000000006311334251016016444 00000000000000#include #include "gnome-vfs-private.h" gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-file-info.c0000644000175000001440000002555211334251016016654 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-file-info.c - Handling of file information for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-file-info.h" #include #include /* Mutex for making GnomeVFSFileInfo ref's/unref's atomic */ /* Note that an atomic increment function (such as is present in NSPR) is preferable */ /* FIXME: This mutex is probably not needed and might be causing performance issues */ static GStaticMutex file_info_ref_lock = G_STATIC_MUTEX_INIT; /* Register GnomeVFSFileInfo in the type system */ GType gnome_vfs_file_info_get_type (void) { static GType fi_type = 0; if (fi_type == 0) { fi_type = g_boxed_type_register_static ( "GnomeVFSFileInfo", (GBoxedCopyFunc) gnome_vfs_file_info_dup, (GBoxedFreeFunc) gnome_vfs_file_info_unref); } return fi_type; } /** * gnome_vfs_file_info_new: * * Allocate and initialize a new #GnomeVFSFileInfo struct. * * Returns: a pointer to the newly allocated file information struct. */ GnomeVFSFileInfo * gnome_vfs_file_info_new (void) { GnomeVFSFileInfo *new; new = g_new0 (GnomeVFSFileInfo, 1); /* `g_new0()' is enough to initialize everything (we just want all the members to be set to zero). */ new->refcount = 1; return new; } /** * gnome_vfs_file_info_ref: * @info: pointer to a file information struct. * * Increment refcount of @info by 1. */ void gnome_vfs_file_info_ref (GnomeVFSFileInfo *info) { g_return_if_fail (info != NULL); g_return_if_fail (info->refcount > 0); g_static_mutex_lock (&file_info_ref_lock); info->refcount += 1; g_static_mutex_unlock (&file_info_ref_lock); } /** * gnome_vfs_file_info_unref: * @info: pointer to a file information struct. * * Decreases the refcount of @info by 1. Frees the struct @info if refcount becomes 0. */ void gnome_vfs_file_info_unref (GnomeVFSFileInfo *info) { g_return_if_fail (info != NULL); g_return_if_fail (info->refcount > 0); g_static_mutex_lock (&file_info_ref_lock); info->refcount -= 1; g_static_mutex_unlock (&file_info_ref_lock); if (info->refcount == 0) { gnome_vfs_file_info_clear (info); g_free (info); } } /** * gnome_vfs_file_info_clear: * @info: pointer to a file information struct. * * Clear @info so that it's ready to accept new data. This is * supposed to be used when @info already contains meaningful information which * we want to replace. */ void gnome_vfs_file_info_clear (GnomeVFSFileInfo *info) { guint old_refcount; g_return_if_fail (info != NULL); g_free (info->name); g_free (info->symlink_name); g_free (info->mime_type); g_free (info->selinux_context); /* Ensure the ref count is maintained correctly */ g_static_mutex_lock (&file_info_ref_lock); old_refcount = info->refcount; memset (info, 0, sizeof (*info)); info->refcount = old_refcount; g_static_mutex_unlock (&file_info_ref_lock); } /** * gnome_vfs_file_info_get_mime_type: * @info: a pointer to a file information struct. * * Retrieve MIME type from @info. There is no need to free the return * value. * * Returns: a pointer to a string representing the MIME type. */ const gchar * gnome_vfs_file_info_get_mime_type (GnomeVFSFileInfo *info) { g_return_val_if_fail (info != NULL, NULL); return info->mime_type; } /** * gnome_vfs_file_info_copy: * @dest: pointer to a struct to copy @src's information into. * @src: pointer to the information to be copied into @dest. * * Copy information from @src into @dest. */ void gnome_vfs_file_info_copy (GnomeVFSFileInfo *dest, const GnomeVFSFileInfo *src) { guint old_refcount; g_return_if_fail (dest != NULL); g_return_if_fail (src != NULL); /* The primary purpose of this lock is to guarentee that the * refcount is correctly maintained, not to make the copy * atomic. If you want to make the copy atomic, you probably * want serialize access differently (or perhaps you shouldn't * use copy) */ g_static_mutex_lock (&file_info_ref_lock); old_refcount = dest->refcount; /* Copy basic information all at once; we will fix pointers later. */ memcpy (dest, src, sizeof (*src)); /* Duplicate dynamically allocated strings. */ dest->name = g_strdup (src->name); dest->symlink_name = g_strdup (src->symlink_name); dest->mime_type = g_strdup (src->mime_type); dest->selinux_context = g_strdup (src->selinux_context); dest->refcount = old_refcount; g_static_mutex_unlock (&file_info_ref_lock); } /** * gnome_vfs_file_info_dup: * @orig: pointer to a file information structure to duplicate. * * Duplicates @orig and returns it. * * Returns: a new file information struct that duplicates the information in @orig. */ GnomeVFSFileInfo * gnome_vfs_file_info_dup (const GnomeVFSFileInfo *orig) { GnomeVFSFileInfo * ret; g_return_val_if_fail (orig != NULL, NULL); ret = gnome_vfs_file_info_new(); gnome_vfs_file_info_copy (ret, orig); return ret; } static gboolean mime_matches (char *a, char *b) { if (a == NULL && b == NULL) { return TRUE; } else if ((a != NULL && b == NULL) || (a == NULL && b != NULL)) { return FALSE; } else { g_assert (a != NULL && b != NULL); return g_ascii_strcasecmp (a, b) == 0; } } static gboolean symlink_name_matches (char *a, char *b) { if (a == NULL && b == NULL) { return TRUE; } else if ((a != NULL && b == NULL) || (a == NULL && b != NULL)) { return FALSE; } else { g_assert (a != NULL && b != NULL); return strcmp (a, b) == 0; } } static gboolean selinux_context_matches (char *a, char*b) { return symlink_name_matches (a, b); } /** * gnome_vfs_file_info_matches: * @a: first #GnomeVFSFileInfo struct to compare. * @b: second #GnomeVFSFileInfo struct to compare. * * Compare the two file info structs, return %TRUE if they match exactly * the same file data. * * Returns: %TRUE if the two #GnomeVFSFileInfos match, otherwise return %FALSE. */ gboolean gnome_vfs_file_info_matches (const GnomeVFSFileInfo *a, const GnomeVFSFileInfo *b) { g_return_val_if_fail (a != NULL, FALSE); g_return_val_if_fail (b != NULL, FALSE); g_return_val_if_fail (a->name != NULL, FALSE); g_return_val_if_fail (b->name != NULL, FALSE); /* This block of code assumes that the GnomeVfsFileInfo was correctly allocated with g_new0 which means that each pair of fields are either invalid and equal to NULL or are valid If both GnomeVfsFileInfos have only invalid fields, the function returns TRUE. That is, it says the infos match which is, in a sense, true :) */ if (a->type != b->type || a->size != b->size || a->block_count != b->block_count || a->atime != b->atime || a->mtime != b->mtime || a->ctime != b->ctime || a->flags != b->flags || a->permissions != b->permissions || a->device != b->device || a->inode != b->inode || a->link_count != b->link_count || a->uid != b->uid || a->gid != b->gid || strcmp (a->name, b->name) != 0 || !selinux_context_matches (a->selinux_context, b->selinux_context) || !mime_matches (a->mime_type, b->mime_type) || !symlink_name_matches (a->symlink_name, b->symlink_name)) { return FALSE; } else { return TRUE; } } /** * gnome_vfs_file_info_list_ref: * @list: list of #GnomeVFSFileInfo elements. * * Increments the refcount of the items in @list by one. * * Return value: @list. */ GList * gnome_vfs_file_info_list_ref (GList *list) { g_list_foreach (list, (GFunc) gnome_vfs_file_info_ref, NULL); return list; } /** * gnome_vfs_file_info_list_unref: * @list: list of #GnomeVFSFileInfo elements. * * Decrements the refcount of the items in @list by one. * Note that the list is *not freed* even if each member of the list * is freed. * Return value: @list. */ GList * gnome_vfs_file_info_list_unref (GList *list) { g_list_foreach (list, (GFunc) gnome_vfs_file_info_unref, NULL); return list; } /** * gnome_vfs_file_info_list_copy: * @list: list of #GnomeVFSFileInfo elements. * * Creates a duplicate of @list, and references each member of * that list. * * Return value: a newly referenced duplicate of @list. */ GList * gnome_vfs_file_info_list_copy (GList *list) { return g_list_copy (gnome_vfs_file_info_list_ref (list)); } /** * gnome_vfs_file_info_list_free: * @list: list of #GnomeVFSFileInfo elements. * * Decrements the refcount of each member of @list by one, * and frees the list itself. */ void gnome_vfs_file_info_list_free (GList *list) { g_list_free (gnome_vfs_file_info_list_unref (list)); } /* Register GnomeVfsGetFileInfoResult into the GType system */ GType gnome_vfs_get_file_info_result_get_type (void) { static GType our_type = 0; if (our_type == 0) { our_type = g_boxed_type_register_static ("GnomeVfsGetFileInfoResult", (GBoxedCopyFunc) gnome_vfs_get_file_info_result_dup, (GBoxedFreeFunc) gnome_vfs_get_file_info_result_free); } return our_type; } /** * gnome_vfs_get_file_info_result_dup: * @result: a #GnomeVFSGetFileInfoResult. * * Duplicate @result. * * Note: The internal uri and fileinfo objects are not duplicated * but their refcount is incremented by 1. * * Return value: a duplicated version of @result. * * Since: 2.12 */ GnomeVFSGetFileInfoResult* gnome_vfs_get_file_info_result_dup (GnomeVFSGetFileInfoResult *result) { GnomeVFSGetFileInfoResult* copy; g_return_val_if_fail (result != NULL, NULL); copy = g_new0 (GnomeVFSGetFileInfoResult, 1); /* "Copy" and ref the objects: */ copy->uri = result->uri; gnome_vfs_uri_ref (copy->uri); copy->result = result->result; copy->file_info = result->file_info; gnome_vfs_file_info_ref (copy->file_info); return copy; } /** * gnome_vfs_get_file_info_result_free: * @result: a #GnomeVFSGetFileInfoResult. * * Unrefs the internal uri and fileinfo objects and frees the * memory allocated for @result. * * Since: 2.12 */ void gnome_vfs_get_file_info_result_free (GnomeVFSGetFileInfoResult *result) { g_return_if_fail (result != NULL); gnome_vfs_uri_unref (result->uri); result->uri = NULL; gnome_vfs_file_info_unref (result->file_info); result->file_info = NULL; g_free (result); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-info.h0000644000175000001440000000556711334251016016675 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-mime-info.h * * Copyright (C) 1998 Miguel de Icaza * Copyright (C) 2000 Eazel, Inc * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_MIME_INFO_H #define GNOME_VFS_MIME_INFO_H #include #include G_BEGIN_DECLS const char *gnome_vfs_mime_get_value (const char *mime_type, const char *key); gboolean gnome_vfs_mime_type_is_known (const char *mime_type); void gnome_vfs_mime_freeze (void); void gnome_vfs_mime_thaw (void); GList *gnome_vfs_mime_get_extensions_list (const char *mime_type); void gnome_vfs_mime_extensions_list_free (GList *list); GnomeVFSResult gnome_vfs_mime_set_registered_type_key (const char *mime_type, const char *key, const char *data); /* forces a reload of the config files */ void gnome_vfs_mime_info_reload (void); #ifndef GNOME_VFS_DISABLE_DEPRECATED /* functions which access to the .keys files */ GnomeVFSResult gnome_vfs_mime_set_value (const char *mime_type, const char *key, const char *value); GList *gnome_vfs_mime_get_key_list (const char *mime_type); void gnome_vfs_mime_keys_list_free (GList *mime_type_list); /* functions to access the .mime files */ char *gnome_vfs_mime_get_extensions_string (const char *mime_type); char *gnome_vfs_mime_get_extensions_pretty_string (const char *mime_type); GList *gnome_vfs_get_registered_mime_types (void); void gnome_vfs_mime_registered_mime_type_list_free (GList *list); GnomeVFSResult gnome_vfs_mime_set_extensions_list (const char *mime_type, const char *extensions_list); void gnome_vfs_mime_registered_mime_type_delete (const char *mime_type); void gnome_vfs_mime_reset (void); #endif /* GNOME_VFS_DISABLE_DEPRECATED */ G_END_DECLS #endif /* GNOME_VFS_MIME_INFO_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-iso9660.h0000644000175000001440000000743211334251016016125 00000000000000/* * Header file iso9660.h - assorted structure definitions and typecasts. * specific to iso9660 filesystem. Written by Eric Youngdale (1993). Copyright 1993 Yggdrasil Computing, Incorporated This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _ISOFS_FS_H #define _ISOFS_FS_H /* * The isofs filesystem constants/structures */ #define ISODCL(from, to) (to - from + 1) struct iso_volume_descriptor { char type[ISODCL(1,1)]; /* 711 */ char id[ISODCL(2,6)]; char version[ISODCL(7,7)]; char data[ISODCL(8,2048)]; }; /* volume descriptor types */ #define ISO_VD_PRIMARY 1 #define ISO_VD_SUPPLEMENTARY 2 #define ISO_VD_END 255 #define ISO_STANDARD_ID "CD001" struct iso_primary_descriptor { char type [ISODCL ( 1, 1)]; /* 711 */ char id [ISODCL ( 2, 6)]; char version [ISODCL ( 7, 7)]; /* 711 */ char unused1 [ISODCL ( 8, 8)]; char system_id [ISODCL ( 9, 40)]; /* achars */ char volume_id [ISODCL ( 41, 72)]; /* dchars */ char unused2 [ISODCL ( 73, 80)]; char volume_space_size [ISODCL ( 81, 88)]; /* 733 */ char unused3 [ISODCL ( 89, 120)]; char volume_set_size [ISODCL (121, 124)]; /* 723 */ char volume_sequence_number [ISODCL (125, 128)]; /* 723 */ char logical_block_size [ISODCL (129, 132)]; /* 723 */ char path_table_size [ISODCL (133, 140)]; /* 733 */ char type_l_path_table [ISODCL (141, 144)]; /* 731 */ char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */ char type_m_path_table [ISODCL (149, 152)]; /* 732 */ char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */ char root_directory_record [ISODCL (157, 190)]; /* 9.1 */ char volume_set_id [ISODCL (191, 318)]; /* dchars */ char publisher_id [ISODCL (319, 446)]; /* achars */ char preparer_id [ISODCL (447, 574)]; /* achars */ char application_id [ISODCL (575, 702)]; /* achars */ char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */ char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */ char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */ char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */ char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */ char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */ char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */ char file_structure_version [ISODCL (882, 882)]; /* 711 */ char unused4 [ISODCL (883, 883)]; char application_data [ISODCL (884, 1395)]; char unused5 [ISODCL (1396, 2048)]; }; /* We use this to help us look up the parent inode numbers. */ struct iso_path_table{ unsigned char name_len[2]; /* 721 */ char extent[4]; /* 731 */ char parent[2]; /* 721 */ char name[1]; }; struct iso_directory_record { unsigned char length [ISODCL (1, 1)]; /* 711 */ char ext_attr_length [ISODCL (2, 2)]; /* 711 */ char extent [ISODCL (3, 10)]; /* 733 */ char size [ISODCL (11, 18)]; /* 733 */ char date [ISODCL (19, 25)]; /* 7 by 711 */ char flags [ISODCL (26, 26)]; char file_unit_size [ISODCL (27, 27)]; /* 711 */ char interleave [ISODCL (28, 28)]; /* 711 */ char volume_sequence_number [ISODCL (29, 32)]; /* 723 */ unsigned char name_len [ISODCL (33, 33)]; /* 711 */ char name [34]; /* Not really, but we need something here */ }; #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-version.h0000644000175000001440000000300311450333344016465 00000000000000/* gnome-vfs-version.h - GnomeVFS version checking Copyright (C) 2006 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_VERSION_H #define GNOME_VFS_VERSION_H /* compile time versioning */ #define GNOME_VFS_MAJOR_VERSION (2) #define GNOME_VFS_MINOR_VERSION (24) #define GNOME_VFS_MICRO_VERSION (4) /* check whether a GnomeVFS version equal to or greater than * major.minor.micro is present. */ #define GNOME_VFS_CHECK_VERSION(major,minor,micro) \ (GNOME_VFS_MAJOR_VERSION > (major) || \ (GNOME_VFS_MAJOR_VERSION == (major) && \ GNOME_VFS_MINOR_VERSION > (minor)) || \ (GNOME_VFS_MAJOR_VERSION == (major) && \ GNOME_VFS_MINOR_VERSION == (minor) && \ GNOME_VFS_MICRO_VERSION >= (micro))) #endif /* GNOME_VFS_VERSION_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-method.c0000644000175000001440000003005511334251016016256 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-method.c - Handling of access methods in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-method.h" #include "gnome-vfs-configuration.h" #include "gnome-vfs-private.h" #ifdef G_OS_WIN32 #include "gnome-vfs-private-utils.h" #endif #include #include #include #include #ifdef USE_DAEMON #include "gnome-vfs-daemon-method.h" #endif #include #include #include #include #define GNOME_VFS_MODULE_INIT "vfs_module_init" #define GNOME_VFS_MODULE_TRANSFORM "vfs_module_transform" #define GNOME_VFS_MODULE_SHUTDOWN "vfs_module_shutdown" struct _ModuleElement { char *name; const char *args; GnomeVFSMethod *method; GnomeVFSTransform *transform; GnomeVFSMethodShutdownFunc shutdown_function; gboolean run_in_daemon; }; typedef struct _ModuleElement ModuleElement; static gboolean method_already_initialized = FALSE; static gboolean gnome_vfs_is_daemon = FALSE; static GType daemon_volume_monitor_type = 0; static void (*daemon_force_probe_callback) (GnomeVFSVolumeMonitor *volume_monitor) = NULL; static GHashTable *module_hash = NULL; G_LOCK_DEFINE_STATIC (gnome_vfs_method_init); static GStaticRecMutex module_hash_lock = G_STATIC_REC_MUTEX_INIT; static GList *module_path_list = NULL; /* Pass some integration stuff here, so we can make the library not depend on the daemon-side code */ void gnome_vfs_set_is_daemon (GType volume_monitor_type, GnomeVFSDaemonForceProbeCallback force_probe_callback) { gnome_vfs_is_daemon = TRUE; daemon_volume_monitor_type = volume_monitor_type; daemon_force_probe_callback = force_probe_callback; } gboolean gnome_vfs_get_is_daemon (void) { return gnome_vfs_is_daemon; } GType gnome_vfs_get_daemon_volume_monitor_type (void) { return daemon_volume_monitor_type; } GnomeVFSDaemonForceProbeCallback _gnome_vfs_get_daemon_force_probe_callback (void) { return daemon_force_probe_callback; } static void module_element_free (gpointer elementp) { ModuleElement *element = (ModuleElement *) elementp; if (element->shutdown_function != NULL) { (* element->shutdown_function) (element->method); } /* NB: this is the key */ g_free (element->name); g_free (element); } static gboolean init_hash_table (void) { module_hash = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, module_element_free); return TRUE; } static gboolean install_path_list (const gchar *user_path_list) { const gchar *p, *oldp; /* Notice that this assumes the list has already been locked. */ oldp = user_path_list; while (1) { gchar *elem; p = strchr (oldp, G_SEARCHPATH_SEPARATOR); if (p == NULL) { if (*oldp != '\0') { elem = g_strdup (oldp); module_path_list = g_list_append (module_path_list, elem); } break; } else if (p != oldp) { elem = g_strndup (oldp, p - oldp); module_path_list = g_list_append (module_path_list, elem); } else { elem = NULL; } oldp = p + 1; } return TRUE; } static gboolean init_path_list (void) { const gchar *user_path_list; if (module_path_list != NULL) return TRUE; /* User-supplied path. */ user_path_list = getenv ("GNOME_VFS_MODULE_PATH"); if (user_path_list != NULL) { if (! install_path_list (user_path_list)) return FALSE; } /* Default path. It comes last so that users can override it. */ module_path_list = g_list_append (module_path_list, g_build_filename (GNOME_VFS_LIBDIR, GNOME_VFS_MODULE_SUBDIR, NULL)); return TRUE; } /** * gnome_vfs_method_init: * * Initializes the gnome-vfs methods. If already initialized then will simply return * %TRUE. * * Return value: Returns %TRUE. */ gboolean gnome_vfs_method_init (void) { G_LOCK (gnome_vfs_method_init); if (method_already_initialized) goto gnome_vfs_method_init_out; if (! init_hash_table ()) goto gnome_vfs_method_init_out; if (! init_path_list ()) goto gnome_vfs_method_init_out; method_already_initialized = TRUE; gnome_vfs_method_init_out: G_UNLOCK (gnome_vfs_method_init); return method_already_initialized; } static void load_module (const gchar *module_name, const char *method_name, const char *args, GnomeVFSMethod **method, GnomeVFSTransform **transform, GnomeVFSMethodShutdownFunc *shutdown_function) { GModule *module; GnomeVFSMethod *temp_method = NULL; GnomeVFSTransform *temp_transform = NULL; GnomeVFSMethodInitFunc init_function = NULL; GnomeVFSTransformInitFunc transform_function = NULL; *method = NULL; *transform = NULL; *shutdown_function = NULL; module = g_module_open (module_name, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); if (module == NULL) { g_warning ("Cannot load module `%s' (%s)", module_name, g_module_error ()); return; } g_module_symbol (module, GNOME_VFS_MODULE_INIT, (gpointer *) &init_function); g_module_symbol (module, GNOME_VFS_MODULE_TRANSFORM, (gpointer *) &transform_function); g_module_symbol (module, GNOME_VFS_MODULE_SHUTDOWN, (gpointer *) shutdown_function); if ((init_function == NULL || *shutdown_function == NULL) && (transform_function == NULL)) { g_warning ("module '%s' does not have init, transform and shutfown functions; may be an out-of-date module", module_name); return; } if (init_function) temp_method = (* init_function) (method_name, args); if (temp_method == NULL && init_function) { g_warning ("module '%s' returned a NULL handle", module_name); return; } if (temp_method != NULL) { /* Some basic checks */ if (temp_method->method_table_size == 0) { g_warning ("module '%s' has 0 table size", module_name); return; } else if (temp_method->method_table_size > (0x100 * sizeof (GnomeVFSMethod))) { g_warning ("module '%s' has unreasonable table size, perhaps it is using the old GnomeVFSMethod struct?", module_name); return; } else if (!VFS_METHOD_HAS_FUNC(temp_method, open)) { g_warning ("module '%s' has no open fn", module_name); return; #if 0 } else if (!VFS_METHOD_HAS_FUNC(temp_method, create)) { g_warning ("module '%s' has no create fn", module_name); return; #endif } else if (!VFS_METHOD_HAS_FUNC(temp_method, is_local)) { g_warning ("module '%s' has no is-local fn", module_name); return; #if 0 } else if (!VFS_METHOD_HAS_FUNC(temp_method, get_file_info)) { g_warning ("module '%s' has no get-file-info fn", module_name); return; #endif } /* More advanced assumptions. */ if (VFS_METHOD_HAS_FUNC(temp_method, tell) && !VFS_METHOD_HAS_FUNC(temp_method, seek)) { g_warning ("module '%s' has tell and no seek", module_name); return; } if (VFS_METHOD_HAS_FUNC(temp_method, seek) && !VFS_METHOD_HAS_FUNC(temp_method, tell)) { g_warning ("module '%s' has seek and no tell", module_name); return; } } if (transform_function) temp_transform = (* transform_function) (method_name, args); if (temp_transform) { if (temp_transform->transform == NULL) { g_warning ("module '%s' has no transform method", module_name); return; } } *method = temp_method; *transform = temp_transform; } static void load_module_in_path_list (const gchar *base_name, const char *method_name, const char *args, GnomeVFSMethod **method, GnomeVFSTransform **transform, GnomeVFSMethodShutdownFunc *shutdown_function) { GList *p; *method = NULL; *transform = NULL; for (p = module_path_list; p != NULL; p = p->next) { const gchar *path; gchar *name; path = p->data; name = g_module_build_path (path, base_name); load_module (name, method_name, args, method, transform, shutdown_function); g_free (name); if (*method != NULL || *transform != NULL) return; } } static ModuleElement * gnome_vfs_add_module_to_hash_table (const gchar *name) { GnomeVFSMethod *method = NULL; GnomeVFSTransform *transform = NULL; GnomeVFSMethodShutdownFunc shutdown_function = NULL; ModuleElement *module_element; const char *module_name; #if defined (HAVE_SETEUID) || defined (HAVE_SETRESUID) uid_t saved_uid; #endif #if defined (HAVE_SETEGID) || defined (HAVE_SETRESGID) gid_t saved_gid; #endif const char *args; gboolean run_in_daemon; g_static_rec_mutex_lock (&module_hash_lock); module_element = g_hash_table_lookup (module_hash, name); if (module_element != NULL) goto add_module_out; module_name = _gnome_vfs_configuration_get_module_path (name, &args, &run_in_daemon); if (module_name == NULL) goto add_module_out; if (gnome_vfs_is_daemon || !run_in_daemon) { /* Set the effective UID/GID to the user UID/GID to prevent attacks to setuid/setgid executables. */ #if defined (HAVE_SETEUID) || defined (HAVE_SETRESUID) saved_uid = geteuid (); #endif #if defined (HAVE_SETEGID) || defined (HAVE_SETRESGID) saved_gid = getegid (); #endif #if defined(HAVE_SETEUID) seteuid (getuid ()); #elif defined(HAVE_SETRESUID) setresuid (-1, getuid (), -1); #endif #if defined(HAVE_SETEGID) setegid (getgid ()); #elif defined(HAVE_SETRESGID) setresgid (-1, getgid (), -1); #endif if (g_path_is_absolute (module_name)) load_module (module_name, name, args, &method, &transform, &shutdown_function); else load_module_in_path_list (module_name, name, args, &method, &transform, &shutdown_function); #if defined(HAVE_SETEUID) seteuid (saved_uid); #elif defined(HAVE_SETRESUID) setresuid (-1, saved_uid, -1); #endif #if defined(HAVE_SETEGID) setegid (saved_gid); #elif defined(HAVE_SETRESGID) setresgid (-1, saved_gid, -1); #endif } else { #ifdef USE_DAEMON method = _gnome_vfs_daemon_method_get (); #endif } if (method == NULL && transform == NULL) goto add_module_out; module_element = g_new (ModuleElement, 1); module_element->name = g_strdup (name); module_element->method = method; module_element->transform = transform; module_element->shutdown_function = shutdown_function; module_element->run_in_daemon = run_in_daemon; g_hash_table_insert (module_hash, module_element->name, module_element); add_module_out: g_static_rec_mutex_unlock (&module_hash_lock); return module_element; } /** * gnome_vfs_method_get: * @name: name of the protocol. * * Returns the method handle for the given protocol @name. @name could be any protocol * which gnome-vfs implements. Like ftp, http, smb etc.. */ GnomeVFSMethod * gnome_vfs_method_get (const gchar *name) { ModuleElement *module_element; g_return_val_if_fail (name != NULL, NULL); module_element = gnome_vfs_add_module_to_hash_table (name); return module_element ? module_element->method : NULL; } /** * gnome_vfs_transform_get: * @name: name of the method to get the transform of. * * Get the transform for the method @name. * * Return value: a #GnomeVFSTransform handle for @name. */ GnomeVFSTransform * gnome_vfs_transform_get (const gchar *name) { ModuleElement *module_element; g_return_val_if_fail (name != NULL, NULL); module_element = gnome_vfs_add_module_to_hash_table (name); return module_element ? module_element->transform : NULL; } void _gnome_vfs_method_shutdown (void) { G_LOCK (gnome_vfs_method_init); if (module_hash != NULL) { g_hash_table_destroy (module_hash); module_hash = NULL; } method_already_initialized = FALSE; G_UNLOCK (gnome_vfs_method_init); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-job.h0000644000175000001440000002613611334251016015562 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-job.h - Jobs for asynchronous operation of the GNOME Virtual File System (version for POSIX threads). Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_JOB_H #define GNOME_VFS_JOB_H /* * The following includes help Solaris copy with its own headers. (With 64- * bit stuff enabled they like to #define open open64, etc.) * See http://bugzilla.gnome.org/show_bug.cgi?id=71184 for details. */ #ifndef _WIN32 #include #include #endif #include #include typedef struct GnomeVFSJob GnomeVFSJob; typedef struct GnomeVFSModuleCallbackStackInfo GnomeVFSModuleCallbackStackInfo; #define GNOME_VFS_JOB_DEBUG 0 #if GNOME_VFS_JOB_DEBUG #include extern GStaticMutex debug_mutex; #define JOB_DEBUG_PRINT(x) \ G_STMT_START{ \ struct timeval _tt; \ gettimeofday(&_tt, NULL); \ printf ("%ld:%6.ld ", _tt.tv_sec, _tt.tv_usec); \ g_static_mutex_lock (&debug_mutex); \ fputs (__FUNCTION__, stdout); \ printf (": %d ", __LINE__); \ printf x; \ fputc ('\n', stdout); \ fflush (stdout); \ g_static_mutex_unlock (&debug_mutex); \ }G_STMT_END #endif #if GNOME_VFS_JOB_DEBUG #include #define JOB_DEBUG(x) JOB_DEBUG_PRINT(x) #define JOB_DEBUG_ONLY(x) x #define JOB_DEBUG_TYPE(x) (job_debug_types[(x)]) #else #define JOB_DEBUG(x) #define JOB_DEBUG_ONLY(x) #define JOB_DEBUG_TYPE(x) #endif /* GNOME_VFS_OP_MODULE_CALLBACK: is not a real OpType; * its intended to mark GnomeVFSAsyncModuleCallback's in the * job_callback queue */ enum GnomeVFSOpType { GNOME_VFS_OP_OPEN, GNOME_VFS_OP_OPEN_AS_CHANNEL, GNOME_VFS_OP_CREATE, GNOME_VFS_OP_CREATE_SYMBOLIC_LINK, GNOME_VFS_OP_CREATE_AS_CHANNEL, GNOME_VFS_OP_CLOSE, GNOME_VFS_OP_READ, GNOME_VFS_OP_WRITE, GNOME_VFS_OP_SEEK, GNOME_VFS_OP_READ_WRITE_DONE, GNOME_VFS_OP_LOAD_DIRECTORY, GNOME_VFS_OP_FIND_DIRECTORY, GNOME_VFS_OP_XFER, GNOME_VFS_OP_GET_FILE_INFO, GNOME_VFS_OP_SET_FILE_INFO, GNOME_VFS_OP_MODULE_CALLBACK, GNOME_VFS_OP_FILE_CONTROL }; typedef enum GnomeVFSOpType GnomeVFSOpType; typedef struct { GnomeVFSURI *uri; GnomeVFSOpenMode open_mode; } GnomeVFSOpenOp; typedef struct { GnomeVFSAsyncOpenCallback callback; void *callback_data; GnomeVFSResult result; } GnomeVFSOpenOpResult; typedef struct { GnomeVFSURI *uri; GnomeVFSOpenMode open_mode; guint advised_block_size; } GnomeVFSOpenAsChannelOp; typedef struct { GnomeVFSAsyncOpenAsChannelCallback callback; void *callback_data; GnomeVFSResult result; GIOChannel *channel; } GnomeVFSOpenAsChannelOpResult; typedef struct { GnomeVFSURI *uri; GnomeVFSOpenMode open_mode; gboolean exclusive; guint perm; } GnomeVFSCreateOp; typedef struct { GnomeVFSAsyncCreateCallback callback; void *callback_data; GnomeVFSResult result; } GnomeVFSCreateOpResult; typedef struct { GnomeVFSURI *uri; char *uri_reference; } GnomeVFSCreateLinkOp; typedef struct { GnomeVFSURI *uri; GnomeVFSOpenMode open_mode; gboolean exclusive; guint perm; } GnomeVFSCreateAsChannelOp; typedef struct { GnomeVFSAsyncCreateAsChannelCallback callback; void *callback_data; GnomeVFSResult result; GIOChannel *channel; } GnomeVFSCreateAsChannelOpResult; typedef struct { char dummy; /* ANSI C does not allow empty structs */ } GnomeVFSCloseOp; typedef struct { GnomeVFSAsyncCloseCallback callback; void *callback_data; GnomeVFSResult result; } GnomeVFSCloseOpResult; typedef struct { GnomeVFSFileSize num_bytes; gpointer buffer; } GnomeVFSReadOp; typedef struct { GnomeVFSAsyncReadCallback callback; void *callback_data; GnomeVFSFileSize num_bytes; gpointer buffer; GnomeVFSResult result; GnomeVFSFileSize bytes_read; } GnomeVFSReadOpResult; typedef struct { GnomeVFSFileSize num_bytes; gconstpointer buffer; } GnomeVFSWriteOp; typedef struct { GnomeVFSAsyncWriteCallback callback; void *callback_data; GnomeVFSFileSize num_bytes; gconstpointer buffer; GnomeVFSResult result; GnomeVFSFileSize bytes_written; } GnomeVFSWriteOpResult; typedef struct { GnomeVFSSeekPosition whence; GnomeVFSFileOffset offset; } GnomeVFSSeekOp; typedef struct { GnomeVFSAsyncSeekCallback callback; void *callback_data; GnomeVFSResult result; } GnomeVFSSeekOpResult; typedef struct { GList *uris; /* GnomeVFSURI* */ GnomeVFSFileInfoOptions options; } GnomeVFSGetFileInfoOp; typedef struct { GnomeVFSAsyncGetFileInfoCallback callback; void *callback_data; GList *result_list; /* GnomeVFSGetFileInfoResult* */ } GnomeVFSGetFileInfoOpResult; typedef struct { GnomeVFSURI *uri; GnomeVFSFileInfo *info; GnomeVFSSetFileInfoMask mask; GnomeVFSFileInfoOptions options; } GnomeVFSSetFileInfoOp; typedef struct { GnomeVFSAsyncSetFileInfoCallback callback; void *callback_data; GnomeVFSResult set_file_info_result; GnomeVFSResult get_file_info_result; GnomeVFSFileInfo *info; } GnomeVFSSetFileInfoOpResult; typedef struct { GList *uris; /* GnomeVFSURI* */ GnomeVFSFindDirectoryKind kind; gboolean create_if_needed; gboolean find_if_needed; guint permissions; } GnomeVFSFindDirectoryOp; typedef struct { GnomeVFSAsyncFindDirectoryCallback callback; void *callback_data; GList *result_list; /* GnomeVFSFindDirectoryResult */ } GnomeVFSFindDirectoryOpResult; typedef struct { GnomeVFSURI *uri; GnomeVFSFileInfoOptions options; guint items_per_notification; } GnomeVFSLoadDirectoryOp; typedef struct { GnomeVFSAsyncDirectoryLoadCallback callback; void *callback_data; GnomeVFSResult result; GList *list; guint entries_read; } GnomeVFSLoadDirectoryOpResult; typedef struct { GList *source_uri_list; GList *target_uri_list; GnomeVFSXferOptions xfer_options; GnomeVFSXferErrorMode error_mode; GnomeVFSXferOverwriteMode overwrite_mode; GnomeVFSXferProgressCallback progress_sync_callback; gpointer sync_callback_data; } GnomeVFSXferOp; typedef struct { GnomeVFSAsyncXferProgressCallback callback; void *callback_data; GnomeVFSXferProgressInfo *progress_info; int reply; } GnomeVFSXferOpResult; typedef struct { GnomeVFSAsyncModuleCallback callback; gpointer user_data; gconstpointer in; size_t in_size; gpointer out; size_t out_size; GnomeVFSModuleCallbackResponse response; gpointer response_data; } GnomeVFSModuleCallbackOpResult; typedef struct { char *operation; gpointer operation_data; GDestroyNotify operation_data_destroy_func; } GnomeVFSFileControlOp; typedef struct { GnomeVFSAsyncFileControlCallback callback; gpointer callback_data; GnomeVFSResult result; gpointer operation_data; GDestroyNotify operation_data_destroy_func; } GnomeVFSFileControlOpResult; typedef union { GnomeVFSOpenOp open; GnomeVFSOpenAsChannelOp open_as_channel; GnomeVFSCreateOp create; GnomeVFSCreateLinkOp create_symbolic_link; GnomeVFSCreateAsChannelOp create_as_channel; GnomeVFSCloseOp close; GnomeVFSReadOp read; GnomeVFSWriteOp write; GnomeVFSSeekOp seek; GnomeVFSLoadDirectoryOp load_directory; GnomeVFSXferOp xfer; GnomeVFSGetFileInfoOp get_file_info; GnomeVFSSetFileInfoOp set_file_info; GnomeVFSFindDirectoryOp find_directory; GnomeVFSFileControlOp file_control; } GnomeVFSSpecificOp; typedef struct { /* ID of the job (e.g. open, create, close...). */ GnomeVFSOpType type; /* The callback for when the op is completed. */ GFunc callback; gpointer callback_data; /* Details of the op. */ GnomeVFSSpecificOp specifics; /* The context for cancelling the operation. */ GnomeVFSContext *context; GnomeVFSModuleCallbackStackInfo *stack_info; } GnomeVFSOp; typedef union { GnomeVFSOpenOpResult open; GnomeVFSOpenAsChannelOpResult open_as_channel; GnomeVFSCreateOpResult create; GnomeVFSCreateAsChannelOpResult create_as_channel; GnomeVFSCloseOpResult close; GnomeVFSReadOpResult read; GnomeVFSWriteOpResult write; GnomeVFSSeekOpResult seek; GnomeVFSGetFileInfoOpResult get_file_info; GnomeVFSSetFileInfoOpResult set_file_info; GnomeVFSFindDirectoryOpResult find_directory; GnomeVFSLoadDirectoryOpResult load_directory; GnomeVFSXferOpResult xfer; GnomeVFSModuleCallbackOpResult callback; GnomeVFSFileControlOpResult file_control; } GnomeVFSSpecificNotifyResult; typedef struct { GnomeVFSAsyncHandle *job_handle; guint callback_id; /* By the time the callback got reached the job might have been cancelled. * We find out by checking this flag. */ gboolean cancelled; /* ID of the job (e.g. open, create, close...). */ GnomeVFSOpType type; GnomeVFSSpecificNotifyResult specifics; } GnomeVFSNotifyResult; /* FIXME bugzilla.eazel.com 1135: Move private stuff out of the header. */ struct GnomeVFSJob { /* Handle being used for file access. */ GnomeVFSHandle *handle; /* By the time the entry routine for the job got reached * the job might have been cancelled. We find out by checking * this flag. */ gboolean cancelled; /* Read or create returned with an error - helps * flagging that we do not expect a cancel */ gboolean failed; /* Global lock for accessing job's 'op' and 'handle' */ GMutex *job_lock; /* This condition is signalled when the master thread gets a notification and wants to acknowledge it. */ GCond *notify_ack_condition; /* Operations that are being done and those that are completed and * ready for notification to take place. */ GnomeVFSOp *op; /* Unique identifier of this job (a uint, really) */ GnomeVFSAsyncHandle *job_handle; /* The priority of this job */ int priority; }; G_GNUC_INTERNAL GnomeVFSJob *_gnome_vfs_job_new (GnomeVFSOpType type, int priority, GFunc callback, gpointer callback_data); G_GNUC_INTERNAL void _gnome_vfs_job_destroy (GnomeVFSJob *job); G_GNUC_INTERNAL void _gnome_vfs_job_set (GnomeVFSJob *job, GnomeVFSOpType type, GFunc callback, gpointer callback_data); G_GNUC_INTERNAL void _gnome_vfs_job_go (GnomeVFSJob *job); G_GNUC_INTERNAL void _gnome_vfs_job_execute (GnomeVFSJob *job); G_GNUC_INTERNAL void _gnome_vfs_job_module_cancel (GnomeVFSJob *job); int gnome_vfs_job_get_count (void); G_GNUC_INTERNAL gboolean _gnome_vfs_job_complete (GnomeVFSJob *job); #endif /* GNOME_VFS_JOB_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-acl.h0000644000175000001440000000627311334251016015547 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-acl.h - ACL Handling for the GNOME Virtual File System. Access Control List Object Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner */ #ifndef GNOME_VFS_ACL_H #define GNOME_VFS_ACL_H #include #include #include #include G_BEGIN_DECLS /* ************************************************************************** */ /* ACL Kinds */ const char * gnome_vfs_acl_kind_to_string (GnomeVFSACLKind kind); enum { GNOME_VFS_ACL_KIND_NULL = 0, GNOME_VFS_ACL_USER, GNOME_VFS_ACL_GROUP, GNOME_VFS_ACL_OTHER, GNOME_VFS_ACL_MASK, GNOME_VFS_ACL_KIND_SYS_LAST }; /* ACL Permissions */ const char * gnome_vfs_acl_perm_to_string (GnomeVFSACLPerm perm); enum { GNOME_VFS_ACL_PERM_NULL = 0, GNOME_VFS_ACL_READ = 1, GNOME_VFS_ACL_WRITE, GNOME_VFS_ACL_EXECUTE, GNOME_VFS_ACL_PERM_SYS_LAST }; /* ************************************************************************** */ #define GNOME_VFS_TYPE_ACL (gnome_vfs_acl_get_type ()) #define GNOME_VFS_ACL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_VFS_TYPE_ACL, GnomeVFSACL)) #define GNOME_VFS_ACL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_VFS_TYPE_ACL, GnomeVFSACLClass)) #define GNOME_VFS_IS_ACL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_VFS_TYPE_ACL)) #define GNOME_VFS_IS_ACL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_VFS_TYPE_ACL)) typedef struct _GnomeVFSACL GnomeVFSACL; typedef struct _GnomeVFSACLClass GnomeVFSACLClass; typedef struct _GnomeVFSACLPrivate GnomeVFSACLPrivate; struct _GnomeVFSACL { GObject parent; GnomeVFSACLPrivate *priv; }; struct _GnomeVFSACLClass { GObjectClass parent_class; }; GType gnome_vfs_acl_get_type (void) G_GNUC_CONST; GnomeVFSACL * gnome_vfs_acl_new (void); void gnome_vfs_acl_clear (GnomeVFSACL *acl); void gnome_vfs_acl_set (GnomeVFSACL *acl, GnomeVFSACE *ace); void gnome_vfs_acl_unset (GnomeVFSACL *acl, GnomeVFSACE *ace); GList * gnome_vfs_acl_get_ace_list (GnomeVFSACL *acl); void gnome_vfs_acl_free_ace_list (GList *ace_list); G_END_DECLS #endif /*GNOME_VFS_ACL_H*/ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-find-directory.h0000644000175000001440000000376211334251016017732 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-find-directory.h - Special directory location functions for the GNOME Virtual File System. Copyright (C) 2000 Eazel, Inc. Copyright (C) 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Pavel Cisler Seth Nickell */ #ifndef GNOME_VFS_FIND_DIRECTORY_H #define GNOME_VFS_FIND_DIRECTORY_H #include #include G_BEGIN_DECLS /** * GnomeVFSFindDirectoryKind: * @GNOME_VFS_DIRECTORY_KIND_DESKTOP: Desktop directory. * @GNOME_VFS_DIRECTORY_KIND_TRASH: Trash directory. * * Specifies what directory gnome_vfs_find_directory() or * gnome_vfs_find_directory_cancellable() should find. **/ typedef enum { GNOME_VFS_DIRECTORY_KIND_DESKTOP = 1000, GNOME_VFS_DIRECTORY_KIND_TRASH = 1001 } GnomeVFSFindDirectoryKind; GnomeVFSResult gnome_vfs_find_directory (GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result, gboolean create_if_needed, gboolean find_if_needed, guint permissions); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-context.c0000644000175000001440000000731611334251016016466 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-context.c - context VFS modules can use to communicate with gnome-vfs proper Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Havoc Pennington */ #include #include "gnome-vfs-context.h" #include "gnome-vfs-backend.h" #include "gnome-vfs-cancellation.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-utils.h" #include #if 1 #define DEBUG_MSG (x) printf x #else #define DEBUG_MSG (x) #endif struct GnomeVFSContext { GnomeVFSCancellation *cancellation; }; /* This is a token Context to return in situations * where we don't normally have a context: eg, during sync calls */ static const GnomeVFSContext sync_context = {NULL}; /** * gnome_vfs_context_new: * * Creates a new context and cancellation object. Must be called * from the main glib event loop. * * Return value: a newly allocated #GnomeVFSContext. */ GnomeVFSContext* gnome_vfs_context_new (void) { GnomeVFSContext *ctx; ctx = g_new0(GnomeVFSContext, 1); ctx->cancellation = gnome_vfs_cancellation_new(); return ctx; } /** * gnome_vfs_context_free: * @ctx: context to be freed. * * Free @ctx and destroy the associated #GnomeVFSCancellation. */ void gnome_vfs_context_free (GnomeVFSContext *ctx) { g_return_if_fail(ctx != NULL); gnome_vfs_cancellation_destroy(ctx->cancellation); g_free(ctx); } /** * gnome_vfs_context_get_cancellation: * @ctx: context to get the #GnomeVFSCancellation from. * * Retrieve the #GnomeVFSCancellation associated with @ctx. * * Return value: @ctx 's #GnomeVFSCancellation. */ GnomeVFSCancellation* gnome_vfs_context_get_cancellation (const GnomeVFSContext *ctx) { g_return_val_if_fail(ctx != NULL, NULL); return ctx->cancellation; } /** * gnome_vfs_context_peek_current: * * Get the currently active context. It shouldn't be * manipulated but can be compared to contexts module * holds to determine whether they are active. * * Return value: the currently active #GnomeVFSContext. */ const GnomeVFSContext * gnome_vfs_context_peek_current (void) { const GnomeVFSContext *ret; _gnome_vfs_get_current_context ((GnomeVFSContext **)&ret); /* If the context is NULL, then this must be a synchronous call */ if (ret == NULL) { ret = &sync_context; } return ret; } /** * gnome_vfs_context_check_cancellation_current: * * Check to see if the currently active context has been cancelled. * * Return value: %TRUE if the currently active context has been cancelled, otherwise %FALSE. */ gboolean gnome_vfs_context_check_cancellation_current (void) { const GnomeVFSContext *current_ctx; current_ctx = gnome_vfs_context_peek_current (); if (current_ctx == &sync_context) { return FALSE; } else if (current_ctx != NULL) { return gnome_vfs_cancellation_check (gnome_vfs_context_get_cancellation (current_ctx)); } else { return FALSE; } } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-callback-private.c0000644000175000001440000000010311334251016021454 00000000000000#include #include "gnome-vfs-module-callback-private.h" gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-cancellable-ops.c0000644000175000001440000003364411334251016020031 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-private-ops.c - Private synchronous operations for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ /* This file provides private versions of the ops for internal use. These are meant to be used within the GNOME VFS and its modules: they are not for public consumption through the external API. */ #include #include "gnome-vfs-cancellable-ops.h" #include "gnome-vfs-method.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-utils.h" #include "gnome-vfs-handle-private.h" #include #include GnomeVFSResult gnome_vfs_open_uri_cancellable (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, GnomeVFSContext *context) { GnomeVFSMethodHandle *method_handle; GnomeVFSResult result; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (uri->method != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (!VFS_METHOD_HAS_FUNC(uri->method, open)) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = (uri->method->open) (uri->method, &method_handle, uri, open_mode, context); if (result != GNOME_VFS_OK) return result; *handle = _gnome_vfs_handle_new (uri, method_handle, open_mode); return GNOME_VFS_OK; } GnomeVFSResult gnome_vfs_create_uri_cancellable (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { GnomeVFSMethodHandle *method_handle; GnomeVFSResult result; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (!VFS_METHOD_HAS_FUNC(uri->method, create)) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = uri->method->create (uri->method, &method_handle, uri, open_mode, exclusive, perm, context); if (result != GNOME_VFS_OK) return result; *handle = _gnome_vfs_handle_new (uri, method_handle, open_mode); return GNOME_VFS_OK; } GnomeVFSResult gnome_vfs_close_cancellable (GnomeVFSHandle *handle, GnomeVFSContext *context) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; return _gnome_vfs_handle_do_close (handle, context); } GnomeVFSResult gnome_vfs_read_cancellable (GnomeVFSHandle *handle, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { GnomeVFSFileSize dummy_bytes_read; GnomeVFSResult res; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (bytes_read == NULL) { bytes_read = &dummy_bytes_read; } if (bytes == 0) { *bytes_read = 0; return GNOME_VFS_OK; } res = _gnome_vfs_handle_do_read (handle, buffer, bytes, bytes_read, context); if (res != GNOME_VFS_OK) { *bytes_read = 0; } return res; } GnomeVFSResult gnome_vfs_write_cancellable (GnomeVFSHandle *handle, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { GnomeVFSFileSize dummy_bytes_written; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (bytes_written == NULL) { bytes_written = &dummy_bytes_written; } if (bytes == 0) { *bytes_written = 0; return GNOME_VFS_OK; } return _gnome_vfs_handle_do_write (handle, buffer, bytes, bytes_written, context); } GnomeVFSResult gnome_vfs_seek_cancellable (GnomeVFSHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; return _gnome_vfs_handle_do_seek (handle, whence, offset, context); } GnomeVFSResult gnome_vfs_get_file_info_uri_cancellable (GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSResult result; g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (info != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (!VFS_METHOD_HAS_FUNC(uri->method, get_file_info)) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = uri->method->get_file_info (uri->method, uri, info, options, context); return result; } GnomeVFSResult gnome_vfs_get_file_info_from_handle_cancellable (GnomeVFSHandle *handle, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSResult result; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; result = _gnome_vfs_handle_do_get_file_info (handle, info, options, context); return result; } GnomeVFSResult gnome_vfs_truncate_uri_cancellable (GnomeVFSURI *uri, GnomeVFSFileSize length, GnomeVFSContext *context) { g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (!VFS_METHOD_HAS_FUNC(uri->method, truncate)) return GNOME_VFS_ERROR_NOT_SUPPORTED; return uri->method->truncate(uri->method, uri, length, context); } GnomeVFSResult gnome_vfs_truncate_handle_cancellable (GnomeVFSHandle *handle, GnomeVFSFileSize length, GnomeVFSContext *context) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; return _gnome_vfs_handle_do_truncate (handle, length, context); } GnomeVFSResult gnome_vfs_make_directory_for_uri_cancellable (GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { GnomeVFSResult result; g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (!VFS_METHOD_HAS_FUNC(uri->method, make_directory)) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = uri->method->make_directory (uri->method, uri, perm, context); return result; } GnomeVFSResult gnome_vfs_find_directory_cancellable (GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { GnomeVFSResult result; GnomeVFSURI *resolved_uri; g_return_val_if_fail (result_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *result_uri = NULL; if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (near_uri != NULL) { gnome_vfs_uri_ref (near_uri); } else { char *text_uri; text_uri = gnome_vfs_get_uri_from_local_path (g_get_home_dir ()); g_assert (text_uri != NULL); /* assume file: method and the home directory */ near_uri = gnome_vfs_uri_new (text_uri); g_free (text_uri); } g_assert (near_uri != NULL); if (!VFS_METHOD_HAS_FUNC (near_uri->method, find_directory)) { /* skip file systems not supporting find_directory. * * TODO if we decide to introduce cross-method links (e.g. http allows * arbitrary URIs), this could be slightly wrong, because the target * method may support find_directory, so we'd also have to make sure * that a method doesn't support cross-method links. **/ return GNOME_VFS_ERROR_NOT_SUPPORTED; } /* Need to expand the final symlink, since if the directory is a symlink * we want to look at the device the symlink points to, not the one the * symlink is stored on */ result = _gnome_vfs_uri_resolve_all_symlinks_uri (near_uri, &resolved_uri); if (result == GNOME_VFS_OK) { gnome_vfs_uri_unref (near_uri); near_uri = resolved_uri; } else return result; g_assert (near_uri != NULL); if (!VFS_METHOD_HAS_FUNC(near_uri->method, find_directory)) { gnome_vfs_uri_unref (near_uri); return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = near_uri->method->find_directory (near_uri->method, near_uri, kind, result_uri, create_if_needed, find_if_needed, permissions, context); gnome_vfs_uri_unref (near_uri); return result; } GnomeVFSResult gnome_vfs_remove_directory_from_uri_cancellable (GnomeVFSURI *uri, GnomeVFSContext *context) { GnomeVFSResult result; g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) { return GNOME_VFS_ERROR_CANCELLED; } if (!VFS_METHOD_HAS_FUNC(uri->method, remove_directory)) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = uri->method->remove_directory (uri->method, uri, context); return result; } GnomeVFSResult gnome_vfs_unlink_from_uri_cancellable (GnomeVFSURI *uri, GnomeVFSContext *context) { g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) { return GNOME_VFS_ERROR_CANCELLED; } if (!VFS_METHOD_HAS_FUNC(uri->method, unlink)) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } return uri->method->unlink (uri->method, uri, context); } GnomeVFSResult gnome_vfs_create_symbolic_link_cancellable (GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) { return GNOME_VFS_ERROR_CANCELLED; } if (!VFS_METHOD_HAS_FUNC(uri->method, create_symbolic_link)) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } return uri->method->create_symbolic_link (uri->method, uri, target_reference, context); } static gboolean check_same_fs_in_uri (GnomeVFSURI *a, GnomeVFSURI *b) { if (a->method != b->method) { return FALSE; } if (strcmp (a->method_string, b->method_string) != 0) { return FALSE; } return TRUE; } GnomeVFSResult gnome_vfs_move_uri_cancellable (GnomeVFSURI *old, GnomeVFSURI *new, gboolean force_replace, GnomeVFSContext *context) { g_return_val_if_fail (old != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (new != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (! check_same_fs_in_uri (old, new)) return GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; if (gnome_vfs_uri_equal (old, new)) { return GNOME_VFS_OK; } if (!VFS_METHOD_HAS_FUNC(old->method, move)) return GNOME_VFS_ERROR_NOT_SUPPORTED; return old->method->move (old->method, old, new, force_replace, context); } GnomeVFSResult gnome_vfs_check_same_fs_uris_cancellable (GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { g_return_val_if_fail (a != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (b != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (same_fs_return != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (! check_same_fs_in_uri (a, b)) { *same_fs_return = FALSE; return GNOME_VFS_OK; } if (!VFS_METHOD_HAS_FUNC(a->method, check_same_fs)) { *same_fs_return = FALSE; return GNOME_VFS_OK; } return a->method->check_same_fs (a->method, a, b, same_fs_return, context); } GnomeVFSResult gnome_vfs_set_file_info_cancellable (GnomeVFSURI *a, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { g_return_val_if_fail (a != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (info != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; if (!VFS_METHOD_HAS_FUNC(a->method, set_file_info)) return GNOME_VFS_ERROR_NOT_SUPPORTED; if (mask & GNOME_VFS_SET_FILE_INFO_NAME) { if (strchr (info->name, '/') != NULL #ifdef G_OS_WIN32 || strchr (info->name, '\\') != NULL #endif ) { return GNOME_VFS_ERROR_BAD_PARAMETERS; } } return a->method->set_file_info (a->method, a, info, mask, context); } GnomeVFSResult gnome_vfs_file_control_cancellable (GnomeVFSHandle *handle, const char *operation, gpointer operation_data, GnomeVFSContext *context) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (operation != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (gnome_vfs_context_check_cancellation (context)) return GNOME_VFS_ERROR_CANCELLED; return _gnome_vfs_handle_do_file_control (handle, operation, operation_data, context); } gnome-vfs-2.24.4/libgnomevfs/xdgmimeglob.c0000644000175000001440000003563211334251016015403 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimeglob.c: Private file. Datastructure for storing the globs. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "xdgmimeglob.h" #include "xdgmimeint.h" #include #include #include #include #include #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif typedef struct XdgGlobHashNode XdgGlobHashNode; typedef struct XdgGlobList XdgGlobList; struct XdgGlobHashNode { xdg_unichar_t character; const char *mime_type; int weight; int case_sensitive; XdgGlobHashNode *next; XdgGlobHashNode *child; }; struct XdgGlobList { const char *data; const char *mime_type; int weight; int case_sensitive; XdgGlobList *next; }; struct XdgGlobHash { XdgGlobList *literal_list; XdgGlobHashNode *simple_node; XdgGlobList *full_list; }; /* XdgGlobList */ static XdgGlobList * _xdg_glob_list_new (void) { XdgGlobList *new_element; new_element = calloc (1, sizeof (XdgGlobList)); return new_element; } /* Frees glob_list and all of it's children */ static void _xdg_glob_list_free (XdgGlobList *glob_list) { XdgGlobList *ptr, *next; ptr = glob_list; while (ptr != NULL) { next = ptr->next; if (ptr->data) free ((void *) ptr->data); if (ptr->mime_type) free ((void *) ptr->mime_type); free (ptr); ptr = next; } } static XdgGlobList * _xdg_glob_list_append (XdgGlobList *glob_list, void *data, const char *mime_type, int weight, int case_sensitive) { XdgGlobList *new_element; XdgGlobList *tmp_element; tmp_element = glob_list; while (tmp_element != NULL) { if (strcmp (tmp_element->data, data) == 0 && strcmp (tmp_element->mime_type, mime_type) == 0) return glob_list; tmp_element = tmp_element->next; } new_element = _xdg_glob_list_new (); new_element->data = data; new_element->mime_type = mime_type; new_element->weight = weight; new_element->case_sensitive = case_sensitive; if (glob_list == NULL) return new_element; tmp_element = glob_list; while (tmp_element->next != NULL) tmp_element = tmp_element->next; tmp_element->next = new_element; return glob_list; } /* XdgGlobHashNode */ static XdgGlobHashNode * _xdg_glob_hash_node_new (void) { XdgGlobHashNode *glob_hash_node; glob_hash_node = calloc (1, sizeof (XdgGlobHashNode)); return glob_hash_node; } static void _xdg_glob_hash_node_dump (XdgGlobHashNode *glob_hash_node, int depth) { int i; for (i = 0; i < depth; i++) printf (" "); printf ("%c", (char)glob_hash_node->character); if (glob_hash_node->mime_type) printf (" - %s %d\n", glob_hash_node->mime_type, glob_hash_node->weight); else printf ("\n"); if (glob_hash_node->child) _xdg_glob_hash_node_dump (glob_hash_node->child, depth + 1); if (glob_hash_node->next) _xdg_glob_hash_node_dump (glob_hash_node->next, depth); } static XdgGlobHashNode * _xdg_glob_hash_insert_ucs4 (XdgGlobHashNode *glob_hash_node, xdg_unichar_t *text, const char *mime_type, int weight, int case_sensitive) { XdgGlobHashNode *node; xdg_unichar_t character; character = text[0]; if ((glob_hash_node == NULL) || (character < glob_hash_node->character)) { node = _xdg_glob_hash_node_new (); node->character = character; node->next = glob_hash_node; glob_hash_node = node; } else if (character == glob_hash_node->character) { node = glob_hash_node; } else { XdgGlobHashNode *prev_node; int found_node = FALSE; /* Look for the first character of text in glob_hash_node, and insert it if we * have to.*/ prev_node = glob_hash_node; node = prev_node->next; while (node != NULL) { if (character < node->character) { node = _xdg_glob_hash_node_new (); node->character = character; node->next = prev_node->next; prev_node->next = node; found_node = TRUE; break; } else if (character == node->character) { found_node = TRUE; break; } prev_node = node; node = node->next; } if (! found_node) { node = _xdg_glob_hash_node_new (); node->character = character; node->next = prev_node->next; prev_node->next = node; } } text++; if (*text == 0) { if (node->mime_type) { if (strcmp (node->mime_type, mime_type) != 0) { XdgGlobHashNode *child; int found_node = FALSE; child = node->child; while (child && child->character == 0) { if (strcmp (child->mime_type, mime_type) == 0) { found_node = TRUE; break; } child = child->next; } if (!found_node) { child = _xdg_glob_hash_node_new (); child->character = 0; child->mime_type = strdup (mime_type); child->weight = weight; child->case_sensitive = case_sensitive; child->child = NULL; child->next = node->child; node->child = child; } } } else { node->mime_type = strdup (mime_type); node->weight = weight; node->case_sensitive = case_sensitive; } } else { node->child = _xdg_glob_hash_insert_ucs4 (node->child, text, mime_type, weight, case_sensitive); } return glob_hash_node; } /* glob must be valid UTF-8 */ static XdgGlobHashNode * _xdg_glob_hash_insert_text (XdgGlobHashNode *glob_hash_node, const char *text, const char *mime_type, int weight, int case_sensitive) { XdgGlobHashNode *node; xdg_unichar_t *unitext; int len; unitext = _xdg_convert_to_ucs4 (text, &len); _xdg_reverse_ucs4 (unitext, len); node = _xdg_glob_hash_insert_ucs4 (glob_hash_node, unitext, mime_type, weight, case_sensitive); free (unitext); return node; } typedef struct { const char *mime; int weight; } MimeWeight; static int _xdg_glob_hash_node_lookup_file_name (XdgGlobHashNode *glob_hash_node, const char *file_name, int len, int case_sensitive_check, MimeWeight mime_types[], int n_mime_types) { int n; XdgGlobHashNode *node; xdg_unichar_t character; if (glob_hash_node == NULL) return 0; character = file_name[len - 1]; for (node = glob_hash_node; node && character >= node->character; node = node->next) { if (character == node->character) { len--; n = 0; if (len > 0) { n = _xdg_glob_hash_node_lookup_file_name (node->child, file_name, len, case_sensitive_check, mime_types, n_mime_types); } if (n == 0) { if (node->mime_type && (case_sensitive_check || !node->case_sensitive)) { mime_types[n].mime = node->mime_type; mime_types[n].weight = node->weight; n++; } node = node->child; while (n < n_mime_types && node && node->character == 0) { if (node->mime_type && (case_sensitive_check || !node->case_sensitive)) { mime_types[n].mime = node->mime_type; mime_types[n].weight = node->weight; n++; } node = node->next; } } return n; } } return 0; } static int compare_mime_weight (const void *a, const void *b) { const MimeWeight *aa = (const MimeWeight *)a; const MimeWeight *bb = (const MimeWeight *)b; return aa->weight - bb->weight; } #define ISUPPER(c) ((c) >= 'A' && (c) <= 'Z') static char * ascii_tolower (const char *str) { char *p, *lower; lower = strdup (str); p = lower; while (*p != 0) { char c = *p; *p++ = ISUPPER (c) ? c - 'A' + 'a' : c; } return lower; } int _xdg_glob_hash_lookup_file_name (XdgGlobHash *glob_hash, const char *file_name, const char *mime_types[], int n_mime_types) { XdgGlobList *list; int i, n; MimeWeight mimes[10]; int n_mimes = 10; int len; char *lower_case; int try_lower_case; /* First, check the literals */ assert (file_name != NULL && n_mime_types > 0); n = 0; lower_case = ascii_tolower (file_name); for (list = glob_hash->literal_list; list; list = list->next) { if (strcmp ((const char *)list->data, file_name) == 0) { mime_types[0] = list->mime_type; free (lower_case); return 1; } } for (list = glob_hash->literal_list; list; list = list->next) { if (!list->case_sensitive && strcmp ((const char *)list->data, lower_case) == 0) { mime_types[0] = list->mime_type; free (lower_case); return 1; } } len = strlen (file_name); n = _xdg_glob_hash_node_lookup_file_name (glob_hash->simple_node, lower_case, len, FALSE, mimes, n_mimes); if (n == 0) n = _xdg_glob_hash_node_lookup_file_name (glob_hash->simple_node, file_name, len, TRUE, mimes, n_mimes); if (n == 0) { for (list = glob_hash->full_list; list && n < n_mime_types; list = list->next) { if (fnmatch ((const char *)list->data, file_name, 0) == 0) { mimes[n].mime = list->mime_type; mimes[n].weight = list->weight; n++; } } } free (lower_case); qsort (mimes, n, sizeof (MimeWeight), compare_mime_weight); if (n_mime_types < n) n = n_mime_types; for (i = 0; i < n; i++) mime_types[i] = mimes[i].mime; return n; } /* XdgGlobHash */ XdgGlobHash * _xdg_glob_hash_new (void) { XdgGlobHash *glob_hash; glob_hash = calloc (1, sizeof (XdgGlobHash)); return glob_hash; } static void _xdg_glob_hash_free_nodes (XdgGlobHashNode *node) { if (node) { if (node->child) _xdg_glob_hash_free_nodes (node->child); if (node->next) _xdg_glob_hash_free_nodes (node->next); if (node->mime_type) free ((void *) node->mime_type); free (node); } } void _xdg_glob_hash_free (XdgGlobHash *glob_hash) { _xdg_glob_list_free (glob_hash->literal_list); _xdg_glob_list_free (glob_hash->full_list); _xdg_glob_hash_free_nodes (glob_hash->simple_node); free (glob_hash); } XdgGlobType _xdg_glob_determine_type (const char *glob) { const char *ptr; int maybe_in_simple_glob = FALSE; int first_char = TRUE; ptr = glob; while (*ptr != '\0') { if (*ptr == '*' && first_char) maybe_in_simple_glob = TRUE; else if (*ptr == '\\' || *ptr == '[' || *ptr == '?' || *ptr == '*') return XDG_GLOB_FULL; first_char = FALSE; ptr = _xdg_utf8_next_char (ptr); } if (maybe_in_simple_glob) return XDG_GLOB_SIMPLE; else return XDG_GLOB_LITERAL; } /* glob must be valid UTF-8 */ void _xdg_glob_hash_append_glob (XdgGlobHash *glob_hash, const char *glob, const char *mime_type, int weight, int case_sensitive) { XdgGlobType type; assert (glob_hash != NULL); assert (glob != NULL); type = _xdg_glob_determine_type (glob); switch (type) { case XDG_GLOB_LITERAL: glob_hash->literal_list = _xdg_glob_list_append (glob_hash->literal_list, strdup (glob), strdup (mime_type), weight, case_sensitive); break; case XDG_GLOB_SIMPLE: glob_hash->simple_node = _xdg_glob_hash_insert_text (glob_hash->simple_node, glob + 1, mime_type, weight, case_sensitive); break; case XDG_GLOB_FULL: glob_hash->full_list = _xdg_glob_list_append (glob_hash->full_list, strdup (glob), strdup (mime_type), weight, case_sensitive); break; } } void _xdg_glob_hash_dump (XdgGlobHash *glob_hash) { XdgGlobList *list; printf ("LITERAL STRINGS\n"); if (!glob_hash || glob_hash->literal_list == NULL) { printf (" None\n"); } else { for (list = glob_hash->literal_list; list; list = list->next) printf (" %s - %s %d\n", (char *)list->data, list->mime_type, list->weight); } printf ("\nSIMPLE GLOBS\n"); if (!glob_hash || glob_hash->simple_node == NULL) { printf (" None\n"); } else { _xdg_glob_hash_node_dump (glob_hash->simple_node, 4); } printf ("\nFULL GLOBS\n"); if (!glob_hash || glob_hash->full_list == NULL) { printf (" None\n"); } else { for (list = glob_hash->full_list; list; list = list->next) printf (" %s - %s %d\n", (char *)list->data, list->mime_type, list->weight); } } void _xdg_mime_glob_read_from_file (XdgGlobHash *glob_hash, const char *file_name, int version_two) { FILE *glob_file; char line[255]; char *p; glob_file = fopen (file_name, "r"); if (glob_file == NULL) return; /* FIXME: Not UTF-8 safe. Doesn't work if lines are greater than 255 chars. * Blah */ while (fgets (line, 255, glob_file) != NULL) { char *colon; char *mimetype, *glob, *end; int weight; int case_sensitive; if (line[0] == '#' || line[0] == 0) continue; end = line + strlen(line) - 1; if (*end == '\n') *end = 0; p = line; if (version_two) { colon = strchr (p, ':'); if (colon == NULL) continue; *colon = 0; weight = atoi (p); p = colon + 1; } else weight = 50; colon = strchr (p, ':'); if (colon == NULL) continue; *colon = 0; mimetype = p; p = colon + 1; glob = p; case_sensitive = FALSE; colon = strchr (p, ':'); if (version_two && colon != NULL) { char *flag; /* We got flags */ *colon = 0; p = colon + 1; /* Flags end at next colon */ colon = strchr (p, ':'); if (colon != NULL) *colon = 0; flag = strstr (p, "cs"); if (flag != NULL && /* Start or after comma */ (flag == p || flag[-1] == ',') && /* ends with comma or end of string */ (flag[2] == 0 || flag[2] == ',')) case_sensitive = TRUE; } _xdg_glob_hash_append_glob (glob_hash, glob, mimetype, weight, case_sensitive); } fclose (glob_file); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-monitor.c0000644000175000001440000003035411334251016016467 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-monitor.c - File Monitoring for the GNOME Virtual File System. Copyright (C) 2001 Ian McKellar The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ian McKellar */ #include #include #include #include #include #include #include #include typedef enum { CALLBACK_STATE_NOT_SENT, CALLBACK_STATE_SENDING, CALLBACK_STATE_SENT } CallbackState; struct GnomeVFSMonitorHandle { GnomeVFSURI *uri; /* the URI being monitored */ GnomeVFSMethodHandle *method_handle; GnomeVFSMonitorType type; GnomeVFSMonitorCallback callback; gpointer user_data; /* FIXME - how does this get freed */ gboolean cancelled; gboolean in_dispatch; GQueue *pending_callbacks; /* protected by handle_hash */ guint pending_timeout; /* protected by handle_hash */ time_t min_send_at; }; struct GnomeVFSMonitorCallbackData { char *info_uri; GnomeVFSMonitorEventType event_type; CallbackState send_state; time_t send_at; }; /* Number of seconds between consecutive events of the same type to the same file */ #define CONSECUTIVE_CALLBACK_DELAY 2 typedef struct GnomeVFSMonitorCallbackData GnomeVFSMonitorCallbackData; /* This hash maps the module-supplied handle pointer to our own MonitrHandle */ static GHashTable *handle_hash = NULL; G_LOCK_DEFINE_STATIC (handle_hash); static gint actually_dispatch_callback (gpointer data); static guint32 get_min_send_at (GQueue *queue); static void init_hash_table (void) { G_LOCK (handle_hash); if (handle_hash == NULL) { handle_hash = g_hash_table_new (g_direct_hash, g_direct_equal); } G_UNLOCK (handle_hash); } static void free_callback_data (GnomeVFSMonitorCallbackData *callback_data) { g_free (callback_data->info_uri); g_free (callback_data); } GnomeVFSResult _gnome_vfs_monitor_do_add (GnomeVFSMethod *method, GnomeVFSMonitorHandle **handle, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type, GnomeVFSMonitorCallback callback, gpointer user_data) { GnomeVFSResult result; GnomeVFSMonitorHandle *monitor_handle = g_new0(GnomeVFSMonitorHandle, 1); init_hash_table (); gnome_vfs_uri_ref (uri); monitor_handle->uri = uri; monitor_handle->type = monitor_type; monitor_handle->callback = callback; monitor_handle->user_data = user_data; monitor_handle->pending_callbacks = g_queue_new (); monitor_handle->min_send_at = 0; result = uri->method->monitor_add (uri->method, &monitor_handle->method_handle, uri, monitor_type); if (result != GNOME_VFS_OK) { gnome_vfs_uri_unref (uri); g_free (monitor_handle); monitor_handle = NULL; } else { G_LOCK (handle_hash); g_hash_table_insert (handle_hash, monitor_handle->method_handle, monitor_handle); G_UNLOCK (handle_hash); } *handle = monitor_handle; return result; } /* Called with handle_hash lock held */ static gboolean no_live_callbacks (GnomeVFSMonitorHandle *monitor_handle) { GList *l; GnomeVFSMonitorCallbackData *callback_data; l = monitor_handle->pending_callbacks->head; while (l != NULL) { callback_data = l->data; if (callback_data->send_state == CALLBACK_STATE_NOT_SENT || callback_data->send_state == CALLBACK_STATE_SENDING) { return FALSE; } l = l->next; } return TRUE; } /* Called with handle_hash lock held */ static void destroy_monitor_handle (GnomeVFSMonitorHandle *handle) { gboolean res; if (handle->pending_timeout) g_source_remove (handle->pending_timeout); g_queue_foreach (handle->pending_callbacks, (GFunc) free_callback_data, NULL); g_queue_free (handle->pending_callbacks); handle->pending_callbacks = NULL; res = g_hash_table_remove (handle_hash, handle->method_handle); if (!res) { g_warning ("gnome-vfs-monitor.c: A monitor handle was destroyed " "before it was added to the method hash table. This " "is a bug in the application and can cause crashes. " "It is probably a race-condition."); } gnome_vfs_uri_unref (handle->uri); g_free (handle); } GnomeVFSResult _gnome_vfs_monitor_do_cancel (GnomeVFSMonitorHandle *handle) { GnomeVFSResult result; init_hash_table (); if (!VFS_METHOD_HAS_FUNC(handle->uri->method, monitor_cancel)) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = handle->uri->method->monitor_cancel (handle->uri->method, handle->method_handle); if (result == GNOME_VFS_OK) { G_LOCK (handle_hash); /* mark this monitor as cancelled */ handle->cancelled = TRUE; /* we might be in the unlocked part of actually_dispatch_callback, * in that case, don't free the handle now. * Instead we do it in actually_dispatch_callback. */ if (!handle->in_dispatch) { destroy_monitor_handle (handle); } G_UNLOCK (handle_hash); } return result; } /* Called with handle_hash lock held */ static void install_timeout (GnomeVFSMonitorHandle *monitor_handle, time_t now) { gint delay; if (monitor_handle->pending_timeout) g_source_remove (monitor_handle->pending_timeout); delay = monitor_handle->min_send_at - now; if (delay <= 0) monitor_handle->pending_timeout = g_idle_add (actually_dispatch_callback, monitor_handle); else monitor_handle->pending_timeout = g_timeout_add (delay * 1000, actually_dispatch_callback, monitor_handle); } static gint actually_dispatch_callback (gpointer data) { GnomeVFSMonitorHandle *monitor_handle = data; GnomeVFSMonitorCallbackData *callback_data; gchar *uri; GList *l, *next; GList *dispatch; time_t now; /* This function runs on the main loop, so it won't reenter, * although other threads may add stuff to the pending queue * while we don't have the lock */ time (&now); G_LOCK (handle_hash); /* Mark this so that do_cancel doesn't free the handle while * we run without the lock during dispatch */ monitor_handle->in_dispatch = TRUE; if (!monitor_handle->cancelled) { /* Find all callbacks that needs to be dispatched */ dispatch = NULL; l = monitor_handle->pending_callbacks->head; while (l != NULL) { callback_data = l->data; g_assert (callback_data->send_state != CALLBACK_STATE_SENDING); if (callback_data->send_state == CALLBACK_STATE_NOT_SENT && callback_data->send_at <= now) { callback_data->send_state = CALLBACK_STATE_SENDING; dispatch = g_list_prepend (dispatch, callback_data); } l = l->next; } dispatch = g_list_reverse (dispatch); G_UNLOCK (handle_hash); l = dispatch; while (l != NULL) { callback_data = l->data; uri = gnome_vfs_uri_to_string (monitor_handle->uri, GNOME_VFS_URI_HIDE_NONE); /* actually run app code */ monitor_handle->callback (monitor_handle, uri, callback_data->info_uri, callback_data->event_type, monitor_handle->user_data); g_free (uri); callback_data->send_state = CALLBACK_STATE_SENT; l = l->next; } g_list_free (dispatch); G_LOCK (handle_hash); l = monitor_handle->pending_callbacks->head; while (l != NULL) { callback_data = l->data; next = l->next; g_assert (callback_data->send_state != CALLBACK_STATE_SENDING); /* If we've sent the event, and its not affecting coming events, free it */ if (callback_data->send_state == CALLBACK_STATE_SENT && callback_data->send_at + CONSECUTIVE_CALLBACK_DELAY <= now) { /* free the callback_data */ free_callback_data (callback_data); g_queue_delete_link (monitor_handle->pending_callbacks, l); } l = next; } } monitor_handle->in_dispatch = FALSE; /* if we were waiting for this callback to be dispatched * to free this monitor, then do it now. */ if (monitor_handle->cancelled) { destroy_monitor_handle (monitor_handle); } else if (no_live_callbacks (monitor_handle)) { monitor_handle->pending_timeout = 0; monitor_handle->min_send_at = 0; } else { /* pending callbacks left, install another timeout */ monitor_handle->min_send_at = get_min_send_at (monitor_handle->pending_callbacks); install_timeout (monitor_handle, now); } G_UNLOCK (handle_hash); return FALSE; } /* Called with handle_hash lock held */ static void send_uri_changes_now (GnomeVFSMonitorHandle *monitor_handle, const char *uri, gint32 now) { GList *l; GnomeVFSMonitorCallbackData *callback_data; l = monitor_handle->pending_callbacks->head; while (l != NULL) { callback_data = l->data; if (callback_data->send_state != CALLBACK_STATE_SENT && strcmp (callback_data->info_uri, uri) == 0) { callback_data->send_at = now; } l = l->next; } } /* Called with handle_hash lock held */ static guint32 get_min_send_at (GQueue *queue) { time_t min_send_at; GnomeVFSMonitorCallbackData *callback_data; GList *list; min_send_at = G_MAXINT; list = queue->head; while (list != NULL) { callback_data = list->data; if (callback_data->send_state == CALLBACK_STATE_NOT_SENT) { min_send_at = MIN (min_send_at, callback_data->send_at); } list = list->next; } return min_send_at; } /** * gnome_vfs_monitor_callback: * @method_handle: Method-specific monitor handle obtained through gnome_vfs_monitor_add(). * @info_uri: URI that triggered the callback. * @event_type: The event obtained for @info_uri. * * gnome_vfs_monitor_callback() is used by #GnomeVFSMethods to indicate that a particular * resource changed, and will issue the emission of the #GnomeVFSMonitorCallback registered * using gnome_vfs_monitor_add(). **/ void gnome_vfs_monitor_callback (GnomeVFSMethodHandle *method_handle, GnomeVFSURI *info_uri, GnomeVFSMonitorEventType event_type) { GnomeVFSMonitorCallbackData *callback_data, *other_data, *last_data; GnomeVFSMonitorHandle *monitor_handle; char *uri; time_t now; GList *l; g_return_if_fail (info_uri != NULL); init_hash_table (); /* We need to loop here, because there is a race after we add the * handle and when we add it to the hash table. */ do { G_LOCK (handle_hash); monitor_handle = g_hash_table_lookup (handle_hash, method_handle); if (monitor_handle == NULL) { G_UNLOCK (handle_hash); } } while (monitor_handle == NULL); if (monitor_handle->cancelled) { G_UNLOCK (handle_hash); return; } time (&now); uri = gnome_vfs_uri_to_string (info_uri, GNOME_VFS_URI_HIDE_NONE); last_data = NULL; l = monitor_handle->pending_callbacks->tail; while (l != NULL) { other_data = l->data; if (strcmp (other_data->info_uri, uri) == 0) { last_data = l->data; break; } l = l->prev; } if (last_data == NULL || (last_data->event_type != event_type || last_data->send_state == CALLBACK_STATE_SENT)) { callback_data = g_new0 (GnomeVFSMonitorCallbackData, 1); callback_data->info_uri = g_strdup (uri); callback_data->event_type = event_type; callback_data->send_state = CALLBACK_STATE_NOT_SENT; if (last_data == NULL) { callback_data->send_at = now; } else { if (last_data->event_type != event_type) { /* New type, flush old events */ send_uri_changes_now (monitor_handle, uri, now); callback_data->send_at = now; } else { callback_data->send_at = last_data->send_at + CONSECUTIVE_CALLBACK_DELAY; } } g_queue_push_tail (monitor_handle->pending_callbacks, callback_data); if (monitor_handle->min_send_at == 0 || callback_data->send_at < monitor_handle->min_send_at) { monitor_handle->min_send_at = callback_data->send_at; install_timeout (monitor_handle, now); } } g_free (uri); G_UNLOCK (handle_hash); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-info-cache.h0000644000175000001440000000257511334251016017732 00000000000000/* gnome-vfs-mime-info-cache.h * * Copyright (C) 2004 Red Hat, Inc * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_DISABLE_DEPRECATED #ifndef GNOME_VFS_MIME_INFO_CACHE_H #define GNOME_VFS_MIME_INFO_CACHE_H #include G_BEGIN_DECLS /** * DESKTOP_ENTRY_GROUP: * * The #GKeyFile group used for desktop entries. **/ #define DESKTOP_ENTRY_GROUP "Desktop Entry" GList *gnome_vfs_mime_get_all_desktop_entries (const char *mime_type); gchar *gnome_vfs_mime_get_default_desktop_entry (const char *mime_type); G_END_DECLS #endif /* GNOME_VFS_MIME_INFO_CACHE_H */ #endif /* GNOME_VFS_DISABLE_DEPRECATED */ gnome-vfs-2.24.4/libgnomevfs/xdgmimeint.h0000644000175000001440000000554211334251016015254 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimeint.h: Internal defines and functions. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_INT_H__ #define __XDG_MIME_INT_H__ #include "xdgmime.h" #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif /* FIXME: Needs to be configure check */ typedef unsigned int xdg_unichar_t; typedef unsigned char xdg_uchar8_t; typedef unsigned short xdg_uint16_t; typedef unsigned int xdg_uint32_t; #ifdef XDG_PREFIX #define _xdg_utf8_skip XDG_RESERVED_ENTRY(utf8_skip) #define _xdg_utf8_to_ucs4 XDG_RESERVED_ENTRY(utf8_to_ucs4) #define _xdg_ucs4_to_lower XDG_RESERVED_ENTRY(ucs4_to_lower) #define _xdg_utf8_validate XDG_RESERVED_ENTRY(utf8_validate) #define _xdg_get_base_name XDG_RESERVED_ENTRY(get_base_name) #define _xdg_convert_to_ucs4 XDG_RESERVED_ENTRY(convert_to_ucs4) #define _xdg_reverse_ucs4 XDG_RESERVED_ENTRY(reverse_ucs4) #endif #define SWAP_BE16_TO_LE16(val) (xdg_uint16_t)(((xdg_uint16_t)(val) << 8)|((xdg_uint16_t)(val) >> 8)) #define SWAP_BE32_TO_LE32(val) (xdg_uint32_t)((((xdg_uint32_t)(val) & 0xFF000000U) >> 24) | \ (((xdg_uint32_t)(val) & 0x00FF0000U) >> 8) | \ (((xdg_uint32_t)(val) & 0x0000FF00U) << 8) | \ (((xdg_uint32_t)(val) & 0x000000FFU) << 24)) /* UTF-8 utils */ extern const char *const _xdg_utf8_skip; #define _xdg_utf8_next_char(p) (char *)((p) + _xdg_utf8_skip[*(unsigned char *)(p)]) #define _xdg_utf8_char_size(p) (int) (_xdg_utf8_skip[*(unsigned char *)(p)]) xdg_unichar_t _xdg_utf8_to_ucs4 (const char *source); xdg_unichar_t _xdg_ucs4_to_lower (xdg_unichar_t source); int _xdg_utf8_validate (const char *source); xdg_unichar_t *_xdg_convert_to_ucs4 (const char *source, int *len); void _xdg_reverse_ucs4 (xdg_unichar_t *source, int len); const char *_xdg_get_base_name (const char *file_name); #endif /* __XDG_MIME_INT_H__ */ gnome-vfs-2.24.4/libgnomevfs/xdgmimemagic.h0000644000175000001440000000456311334251016015544 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimemagic.h: Private file. Datastructure for storing the magic files. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_MAGIC_H__ #define __XDG_MIME_MAGIC_H__ #include #include "xdgmime.h" typedef struct XdgMimeMagic XdgMimeMagic; #ifdef XDG_PREFIX #define _xdg_mime_glob_read_from_file XDG_RESERVED_ENTRY(glob_read_from_file) #define _xdg_mime_magic_new XDG_RESERVED_ENTRY(magic_new) #define _xdg_mime_magic_read_from_file XDG_RESERVED_ENTRY(magic_read_from_file) #define _xdg_mime_magic_free XDG_RESERVED_ENTRY(magic_free) #define _xdg_mime_magic_get_buffer_extents XDG_RESERVED_ENTRY(magic_get_buffer_extents) #define _xdg_mime_magic_lookup_data XDG_RESERVED_ENTRY(magic_lookup_data) #endif XdgMimeMagic *_xdg_mime_magic_new (void); void _xdg_mime_magic_read_from_file (XdgMimeMagic *mime_magic, const char *file_name); void _xdg_mime_magic_free (XdgMimeMagic *mime_magic); int _xdg_mime_magic_get_buffer_extents (XdgMimeMagic *mime_magic); const char *_xdg_mime_magic_lookup_data (XdgMimeMagic *mime_magic, const void *data, size_t len, int *result_prio, const char *mime_types[], int n_mime_types); #endif /* __XDG_MIME_MAGIC_H__ */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-handle-private.h0000644000175000001440000000714711334251016017714 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-handle-private.h - Handle object functions for GNOME VFS files. Copyright (C) 2002 Seth Nickell The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Seth Nickell */ #ifndef GNOME_VFS_HANDLE_PRIVATE_H #define GNOME_VFS_HANDLE_PRIVATE_H G_BEGIN_DECLS GnomeVFSHandle * _gnome_vfs_handle_new (GnomeVFSURI *uri, GnomeVFSMethodHandle *method_handle, GnomeVFSOpenMode open_mode); void _gnome_vfs_handle_destroy (GnomeVFSHandle *handle); GnomeVFSOpenMode _gnome_vfs_handle_get_open_mode (GnomeVFSHandle *handle); GnomeVFSResult _gnome_vfs_handle_do_close (GnomeVFSHandle *handle, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_handle_do_read (GnomeVFSHandle *handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_handle_do_write (GnomeVFSHandle *handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context); GnomeVFSResult __gnome_vfs_handle_do_close_directory (GnomeVFSHandle *handle, GnomeVFSContext *context); GnomeVFSResult __gnome_vfs_handle_do_read_directory (GnomeVFSHandle *handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_handle_do_seek (GnomeVFSHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileSize offset, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_handle_do_tell (GnomeVFSHandle *handle, GnomeVFSFileSize *offset_return); GnomeVFSResult _gnome_vfs_handle_do_get_file_info (GnomeVFSHandle *handle, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_handle_do_truncate (GnomeVFSHandle *handle, GnomeVFSFileSize length, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_handle_do_file_control (GnomeVFSHandle *handle, const char *operation, gpointer operation_data, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_handle_forget_cache (GnomeVFSHandle *handle, GnomeVFSFileOffset offset, GnomeVFSFileSize size); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-job-queue.c0000644000175000001440000001245311334251016016674 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-job-queue.c - Job queue for asynchronous GnomeVFSJobs Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner */ #include #include "gnome-vfs-job-queue.h" #include "gnome-vfs-async-job-map.h" #include #ifndef DEFAULT_THREAD_COUNT_LIMIT #define DEFAULT_THREAD_COUNT_LIMIT 10 #endif #ifndef MIN_THREADS #define MIN_THREADS 2 #endif static GThreadPool *thread_pool = NULL; static volatile gboolean gnome_vfs_quitting = FALSE; static void thread_entry_point (gpointer data, gpointer user_data) { GnomeVFSJob *job; gboolean complete; job = (GnomeVFSJob *) data; /* job map must always be locked before the job_lock * if both locks are needed */ _gnome_vfs_async_job_map_lock (); if (_gnome_vfs_async_job_map_get_job (job->job_handle) == NULL) { JOB_DEBUG (("job already dead, bail %p", job->job_handle)); _gnome_vfs_async_job_map_unlock (); /* FIXME: doesn't that leak here? */ return; } JOB_DEBUG (("locking job_lock %p", job->job_handle)); g_mutex_lock (job->job_lock); _gnome_vfs_async_job_map_unlock (); _gnome_vfs_job_execute (job); complete = _gnome_vfs_job_complete (job); JOB_DEBUG (("Unlocking access lock %p", job->job_handle)); g_mutex_unlock (job->job_lock); if (complete) { _gnome_vfs_async_job_map_lock (); JOB_DEBUG (("job %p done, removing from map and destroying", job->job_handle)); _gnome_vfs_async_job_completed (job->job_handle); _gnome_vfs_job_destroy (job); _gnome_vfs_async_job_map_unlock (); } } static gint prioritize_threads (gconstpointer a, gconstpointer b, gpointer user_data) { GnomeVFSJob *job_a; GnomeVFSJob *job_b; int prio_a; int prio_b; int retval; job_a = (GnomeVFSJob *) a; job_b = (GnomeVFSJob *) b; prio_a = job_a->priority; prio_b = job_b->priority; /* From glib gtk-doc: * * a negative value if the first task should be processed * before the second or a positive value if the * second task should be processed first. * */ if (prio_a > prio_b) { return -1; } else if (prio_a < prio_b) { return 1; } /* Since job_handles are just increasing u-ints * we return a negative value if job_a->job_handle > * job_b->job_handle so we have sort the old job * before the newer one */ retval = GPOINTER_TO_UINT (job_a->job_handle) - GPOINTER_TO_UINT (job_b->job_handle); return retval; } void _gnome_vfs_job_queue_init (void) { GError *err = NULL; thread_pool = g_thread_pool_new (thread_entry_point, NULL, DEFAULT_THREAD_COUNT_LIMIT, FALSE, &err); if (G_UNLIKELY (thread_pool == NULL)) { g_error ("Could not create threadpool: %s", err->message); } g_thread_pool_set_sort_function (thread_pool, prioritize_threads, NULL); } gboolean _gnome_vfs_job_schedule (GnomeVFSJob *job) { GError *err = NULL; if (G_UNLIKELY (gnome_vfs_quitting)) { /* The application is quitting, the threadpool might already * be dead, just return FALSE * We are also not calling _gnome_vfs_async_job_completed * because the job map might also be dead */ g_warning ("Starting of GnomeVFS async calls after quit."); return FALSE; } g_thread_pool_push (thread_pool, job, &err); if (G_UNLIKELY (err != NULL)) { g_warning ("Could not push thread %s into pool\n", err->message); /* thread did not start up, remove the job from the hash table */ _gnome_vfs_async_job_completed (job->job_handle); return FALSE; } return TRUE; } /** * gnome_vfs_async_set_job_limit: * @limit: maximum number of allowable threads. * * Restrict the number of worker threads used by async operations * to @limit. */ void gnome_vfs_async_set_job_limit (int limit) { if (limit < MIN_THREADS) { g_warning ("Attempt to set the thread_count_limit below %d", MIN_THREADS); return; } g_thread_pool_set_max_threads (thread_pool, limit, NULL); } /** * gnome_vfs_async_get_job_limit: * * Get the current maximum allowable number of * worker threads for async operations. * * Return value: current maximum number of threads. */ int gnome_vfs_async_get_job_limit (void) { return g_thread_pool_get_max_threads (thread_pool); } void _gnome_vfs_job_queue_shutdown (void) { g_thread_pool_free (thread_pool, FALSE, FALSE); gnome_vfs_quitting = TRUE; while (gnome_vfs_job_get_count () != 0) { g_main_context_iteration (NULL, FALSE); g_usleep (20000); } _gnome_vfs_async_job_map_shutdown (); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-init.c0000644000175000001440000001276211413132751015750 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-init.c - Initialization for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-init.h" #include "gnome-vfs-mime.h" #include "gnome-vfs-configuration.h" #include "gnome-vfs-method.h" #include "gnome-vfs-utils.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-async-job-map.h" #include "gnome-vfs-job-queue.h" #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-module-callback-private.h" #include #include #include #include #ifdef USE_DAEMON #ifndef DBUS_API_SUBJECT_TO_CHANGE #define DBUS_API_SUBJECT_TO_CHANGE 1 #endif #include #endif #include #include #include static gboolean vfs_already_initialized = FALSE; G_LOCK_DEFINE_STATIC (vfs_already_initialized); static GPrivate * private_is_primary_thread; static gboolean ensure_dot_gnome_exists (void) { gboolean retval = TRUE; gboolean create_dirs; gchar *dirname; /* If the user does not have a writable HOME directory, then avoid creating the directory. */ create_dirs = (g_access (g_get_home_dir(), W_OK) == 0); if (create_dirs != TRUE) return TRUE; dirname = g_build_filename (g_get_home_dir (), ".gnome2", NULL); if (!g_file_test (dirname, G_FILE_TEST_EXISTS)) { if (g_mkdir (dirname, S_IRWXU) != 0) { g_warning ("Unable to create ~/.gnome2 directory: %s", g_strerror (errno)); retval = FALSE; } } else if (!g_file_test (dirname, G_FILE_TEST_IS_DIR)) { g_warning ("Error: ~/.gnome2 must be a directory."); retval = FALSE; } g_free (dirname); return retval; } static void gnome_vfs_thread_init (void) { private_is_primary_thread = g_private_new (NULL); g_private_set (private_is_primary_thread, GUINT_TO_POINTER (1)); _gnome_vfs_module_callback_private_init (); _gnome_vfs_async_job_map_init (); _gnome_vfs_job_queue_init (); } /** * gnome_vfs_init: * * If gnome-vfs is not already initialized, initialize it. This must be * called prior to performing any other gnome-vfs operations, and may * be called multiple times without error. * * Return value: %TRUE if gnome-vfs is successfully initialized (or was * already initialized). */ gboolean gnome_vfs_init (void) { gboolean retval; /* char *bogus_argv[2] = { "dummy", NULL }; */ if (!ensure_dot_gnome_exists ()) { return FALSE; } if (!g_thread_supported ()) g_thread_init (NULL); G_LOCK (vfs_already_initialized); if (!vfs_already_initialized) { #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, GNOME_VFS_LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); #endif gnome_vfs_thread_init (); #ifdef USE_DAEMON dbus_g_thread_init (); #endif /* Make sure the type system is inited. */ g_type_init (); retval = gnome_vfs_method_init (); if (retval) { retval = _gnome_vfs_configuration_init (); } #ifdef SIGPIPE if (retval) { signal (SIGPIPE, SIG_IGN); } #endif } else { retval = TRUE; /* Who cares after all. */ } vfs_already_initialized = TRUE; G_UNLOCK (vfs_already_initialized); return retval; } /** * gnome_vfs_initialized: * * Detects if gnome-vfs has already been initialized (gnome-vfs must be * initialized prior to using any methods or operations). * * Return value: %TRUE if gnome-vfs has already been initialized. */ gboolean gnome_vfs_initialized (void) { gboolean out; G_LOCK (vfs_already_initialized); out = vfs_already_initialized; G_UNLOCK (vfs_already_initialized); return out; } /** * gnome_vfs_shutdown: * * Cease all active gnome-vfs operations and unload the MIME * database from memory. * */ void gnome_vfs_shutdown (void) { gnome_vfs_mime_shutdown (); #ifndef G_OS_WIN32 _gnome_vfs_volume_monitor_shutdown (); #endif _gnome_vfs_method_shutdown (); } void gnome_vfs_loadinit (gpointer app, gpointer modinfo) { } void gnome_vfs_preinit (gpointer app, gpointer modinfo) { } void gnome_vfs_postinit (gpointer app, gpointer modinfo) { G_LOCK (vfs_already_initialized); gnome_vfs_thread_init (); gnome_vfs_method_init (); _gnome_vfs_configuration_init (); #ifdef SIGPIPE signal (SIGPIPE, SIG_IGN); #endif vfs_already_initialized = TRUE; G_UNLOCK (vfs_already_initialized); } /** * gnome_vfs_is_primary_thread: * * Check if the current thread is the thread with the main glib event loop. * * Return value: %TRUE if the current thread is the thread with the * main glib event loop. */ gboolean gnome_vfs_is_primary_thread (void) { if (g_thread_supported()) { return GPOINTER_TO_UINT(g_private_get (private_is_primary_thread)) == 1; } else { return TRUE; } } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-monitor.h0000644000175000001440000000654211334251016016476 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-monitor.h - File Monitoring for the GNOME Virtual File System. Copyright (C) 2001 Ian McKellar The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ian McKellar */ #ifndef GNOME_VFS_MONITOR_H #define GNOME_VFS_MONITOR_H #include /** * GnomeVFSMonitorType: * @GNOME_VFS_MONITOR_FILE: the monitor is registered for a single file. * @GNOME_VFS_MONITOR_DIRECTORY: the monitor is registered for all files in a directory, * and the directory itself. * * Type of resources that can be monitored. **/ typedef enum { GNOME_VFS_MONITOR_FILE, GNOME_VFS_MONITOR_DIRECTORY } GnomeVFSMonitorType; /** * GnomeVFSMonitorEventType: * @GNOME_VFS_MONITOR_EVENT_CHANGED: file data changed (FAM, inotify). * @GNOME_VFS_MONITOR_EVENT_DELETED: file deleted event (FAM, inotify). * @GNOME_VFS_MONITOR_EVENT_STARTEXECUTING: file was executed (FAM only). * @GNOME_VFS_MONITOR_EVENT_STOPEXECUTING: executed file isn't executed anymore (FAM only). * @GNOME_VFS_MONITOR_EVENT_CREATED: file created event (FAM, inotify). * @GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED: file metadata changed (inotify only). * * Types of events that can be monitored. **/ typedef enum { GNOME_VFS_MONITOR_EVENT_CHANGED, GNOME_VFS_MONITOR_EVENT_DELETED, GNOME_VFS_MONITOR_EVENT_STARTEXECUTING, GNOME_VFS_MONITOR_EVENT_STOPEXECUTING, GNOME_VFS_MONITOR_EVENT_CREATED, GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED } GnomeVFSMonitorEventType; /** * GnomeVFSMonitorHandle: * * a handle representing a file or directory monitor that * was registered using gnome_vfs_monitor_add() and that * can be cancelled using gnome_vfs_monitor_cancel(). **/ typedef struct GnomeVFSMonitorHandle GnomeVFSMonitorHandle; /** * GnomeVFSMonitorCallback: * @handle: the handle of the monitor that created the event * @monitor_uri: the URI of the monitor that was triggered * @info_uri: the URI of the actual file this event is concerned with (this can be different * from @monitor_uri if it was a directory monitor) * @event_type: what happened to @info_uri * @user_data: user data passed to gnome_vfs_monitor_add() when the monitor was created * * Function called when a monitor detects a change. * **/ typedef void (* GnomeVFSMonitorCallback) (GnomeVFSMonitorHandle *handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data); #endif /* GNOME_VFS_MONITOR_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-private-utils.c0000644000175000001440000006363111334251016017614 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-utils.c - Private utility functions for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli `_gnome_vfs_canonicalize_pathname()' derived from code by Brian Fox and Chet Ramey in GNU Bash, the Bourne Again SHell. Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992 Free Software Foundation, Inc. */ #include #include "gnome-vfs-private-utils.h" #include "gnome-vfs-utils.h" #include "gnome-vfs-cancellation.h" #include "gnome-vfs-ops.h" #include "gnome-vfs-uri.h" #include #include #include #include #include #include #include #include #include #ifndef G_OS_WIN32 #include #include #else #include #endif #define GCONF_URL_HANDLER_PATH "/desktop/gnome/url-handlers/" #define GCONF_DEFAULT_TERMINAL_EXEC_PATH "/desktop/gnome/applications/terminal/exec" #define GCONF_DEFAULT_TERMINAL_ARG_PATH "/desktop/gnome/applications/terminal/exec_arg" /* Check whether the node is IPv6 enabled.*/ gboolean _gnome_vfs_have_ipv6 (void) { #ifdef ENABLE_IPV6 int s; s = socket (AF_INET6, SOCK_STREAM, 0); if (s != -1) { close (s); return TRUE; } #endif return FALSE; } static int find_next_slash (const char *path, int current_offset) { const char *match; g_assert (current_offset <= strlen (path)); match = strchr (path + current_offset, GNOME_VFS_URI_PATH_CHR); return match == NULL ? -1 : match - path; } static int find_slash_before_offset (const char *path, int to) { int result; int next_offset; result = -1; next_offset = 0; for (;;) { next_offset = find_next_slash (path, next_offset); if (next_offset < 0 || next_offset >= to) { break; } result = next_offset; next_offset++; } return result; } static void collapse_slash_runs (char *path, int from_offset) { int i; /* Collapse multiple `/'s in a row. */ for (i = from_offset;; i++) { if (path[i] != GNOME_VFS_URI_PATH_CHR) { break; } } if (from_offset < i) { memmove (path + from_offset, path + i, strlen (path + i) + 1); i = from_offset + 1; } } /* Canonicalize path, and return a new path. Do everything in situ. The new path differs from path in: Multiple `/'s are collapsed to a single `/'. Leading `./'s and trailing `/.'s are removed. Non-leading `../'s and trailing `..'s are handled by removing portions of the path. */ gchar * _gnome_vfs_canonicalize_pathname (gchar *path) { int i, marker; if (path == NULL || strlen (path) == 0) { return ""; } /* Walk along path looking for things to compact. */ for (i = 0, marker = 0;;) { if (!path[i]) break; /* Check for `../', `./' or trailing `.' by itself. */ if (path[i] == '.') { /* Handle trailing `.' by itself. */ if (path[i + 1] == '\0') { if (i > 1 && path[i - 1] == GNOME_VFS_URI_PATH_CHR) { /* strip the trailing /. */ path[i - 1] = '\0'; } else { /* convert path "/." to "/" */ path[i] = '\0'; } break; } /* Handle `./'. */ if (path[i + 1] == GNOME_VFS_URI_PATH_CHR) { memmove (path + i, path + i + 2, strlen (path + i + 2) + 1); if (i == 0) { /* don't leave leading '/' for paths that started * as relative (.//foo) */ collapse_slash_runs (path, i); marker = 0; } continue; } /* Handle `../' or trailing `..' by itself. * Remove the previous xxx/ part */ if (path[i + 1] == '.' && (path[i + 2] == GNOME_VFS_URI_PATH_CHR || path[i + 2] == '\0')) { /* ignore ../ at the beginning of a path */ if (i != 0) { marker = find_slash_before_offset (path, i - 1); /* Either advance past '/' or point to the first character */ marker ++; if (path [i + 2] == '\0' && marker > 1) { /* If we are looking at a /.. at the end of the uri and we * need to eat the last '/' too. */ marker--; } g_assert(marker < i); if (path[i + 2] == GNOME_VFS_URI_PATH_CHR) { /* strip the entire ../ string */ i++; } memmove (path + marker, path + i + 2, strlen (path + i + 2) + 1); i = marker; } else { i = 2; if (path[i] == GNOME_VFS_URI_PATH_CHR) { i++; } } collapse_slash_runs (path, i); continue; } } /* advance to the next '/' */ i = find_next_slash (path, i); /* If we didn't find any slashes, then there is nothing left to do. */ if (i < 0) { break; } marker = i++; collapse_slash_runs (path, i); } return path; } /** * gnome_vfs_create_temp: * @prefix: Prefix for the name of the temporary file * @name_return: Pointer to a pointer that, on return, will point to * the dynamically allocated name for the new temporary file created. * @handle_return: Pointer to a variable that will hold a file handle for * the new temporary file on return. * * Create a temporary file whose name is prefixed with @prefix, and return an * open file handle for it in @*handle_return. * * Return value: An integer value representing the result of the operation **/ GnomeVFSResult gnome_vfs_create_temp (const gchar *prefix, gchar **name_return, GnomeVFSHandle **handle_return) { GnomeVFSHandle *handle; GnomeVFSResult result; gchar *name; gint fd; while (1) { name = g_strdup_printf("%sXXXXXX", prefix); fd = g_mkstemp (name); if (fd < 0) return GNOME_VFS_ERROR_INTERNAL; #ifdef HAVE_FCHMOD fchmod (fd, 0600); #endif close (fd); result = gnome_vfs_open (&handle, name, GNOME_VFS_OPEN_WRITE | GNOME_VFS_OPEN_READ); if (result == GNOME_VFS_OK) { *name_return = name; *handle_return = handle; return GNOME_VFS_OK; } if (result != GNOME_VFS_ERROR_FILE_EXISTS) { *name_return = NULL; *handle_return = NULL; g_free (name); return result; } } } #ifndef G_OS_WIN32 /* The following comes from GNU Wget with minor changes by myself. Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. */ /* Converts struct tm to time_t, assuming the data in tm is UTC rather than local timezone (mktime assumes the latter). Contributed by Roger Beeman , with the help of Mark Baushke and the rest of the Gurus at CISCO. */ static time_t mktime_from_utc (struct tm *t) { time_t tl, tb; tl = mktime (t); if (tl == -1) return -1; tb = mktime (gmtime (&tl)); return (tl <= tb ? (tl + (tl - tb)) : (tl - (tb - tl))); } /* Check whether the result of strptime() indicates success. strptime() returns the pointer to how far it got to in the string. The processing has been successful if the string is at `GMT' or `+X', or at the end of the string. In extended regexp parlance, the function returns 1 if P matches "^ *(GMT|[+-][0-9]|$)", 0 otherwise. P being NULL (a valid result of strptime()) is considered a failure and 0 is returned. */ static int check_end (const gchar *p) { if (!p) return 0; while (g_ascii_isspace (*p)) ++p; if (!*p || (p[0] == 'G' && p[1] == 'M' && p[2] == 'T') || ((p[0] == '+' || p[1] == '-') && g_ascii_isdigit (p[1]))) return 1; else return 0; } #endif /* G_OS_WIN32 */ /* Convert TIME_STRING time to time_t. TIME_STRING can be in any of the three formats RFC2068 allows the HTTP servers to emit -- RFC1123-date, RFC850-date or asctime-date. Timezones are ignored, and should be GMT. We use strptime() to recognize various dates, which makes it a little bit slacker than the RFC1123/RFC850/asctime (e.g. it always allows shortened dates and months, one-digit days, etc.). It also allows more than one space anywhere where the specs require one SP. The routine should probably be even more forgiving (as recommended by RFC2068), but I do not have the time to write one. Return the computed time_t representation, or -1 if all the schemes fail. Needless to say, what we *really* need here is something like Marcus Hennecke's atotm(), which is forgiving, fast, to-the-point, and does not use strptime(). atotm() is to be found in the sources of `phttpd', a little-known HTTP server written by Peter Erikson. */ gboolean gnome_vfs_atotm (const gchar *time_string, time_t *value_return) { #ifndef G_OS_WIN32 struct tm t; /* Roger Beeman says: "This function dynamically allocates struct tm t, but does no initialization. The only field that actually needs initialization is tm_isdst, since the others will be set by strptime. Since strptime does not set tm_isdst, it will return the data structure with whatever data was in tm_isdst to begin with. For those of us in timezones where DST can occur, there can be a one hour shift depending on the previous contents of the data area where the data structure is allocated." */ t.tm_isdst = -1; /* Note that under foreign locales Solaris strptime() fails to recognize English dates, which renders this function useless. I assume that other non-GNU strptime's are plagued by the same disease. We solve this by setting only LC_MESSAGES in i18n_initialize(), instead of LC_ALL. Another solution could be to temporarily set locale to C, invoke strptime(), and restore it back. This is slow and dirty, however, and locale support other than LC_MESSAGES can mess other things, so I rather chose to stick with just setting LC_MESSAGES. Also note that none of this is necessary under GNU strptime(), because it recognizes both international and local dates. */ /* NOTE: We don't use `%n' for white space, as OSF's strptime uses it to eat all white space up to (and including) a newline, and the function fails if there is no newline (!). Let's hope all strptime() implementations use ` ' to skip *all* whitespace instead of just one (it works that way on all the systems I've tested it on). */ /* RFC1123: Thu, 29 Jan 1998 22:12:57 */ if (check_end (strptime (time_string, "%a, %d %b %Y %T", &t))) { *value_return = mktime_from_utc (&t); return TRUE; } /* RFC850: Thu, 29-Jan-98 22:12:57 */ if (check_end (strptime (time_string, "%a, %d-%b-%y %T", &t))) { *value_return = mktime_from_utc (&t); return TRUE; } /* asctime: Thu Jan 29 22:12:57 1998 */ if (check_end (strptime (time_string, "%a %b %d %T %Y", &t))) { *value_return = mktime_from_utc (&t); return TRUE; } /* Failure. */ return FALSE; #else g_error ("Not yet implemented: gnome_vfs_atotm()"); return FALSE; #endif /* G_OS_WIN32 */ } /* _gnome_vfs_istr_has_prefix * copy-pasted from Nautilus */ gboolean _gnome_vfs_istr_has_prefix (const char *haystack, const char *needle) { const char *h, *n; char hc, nc; /* Eat one character at a time. */ h = haystack == NULL ? "" : haystack; n = needle == NULL ? "" : needle; do { if (*n == '\0') { return TRUE; } if (*h == '\0') { return FALSE; } hc = *h++; nc = *n++; hc = g_ascii_tolower (hc); nc = g_ascii_tolower (nc); } while (hc == nc); return FALSE; } /* _gnome_vfs_istr_has_suffix * copy-pasted from Nautilus */ gboolean _gnome_vfs_istr_has_suffix (const char *haystack, const char *needle) { const char *h, *n; char hc, nc; if (needle == NULL) { return TRUE; } if (haystack == NULL) { return needle[0] == '\0'; } /* Eat one character at a time. */ h = haystack + strlen (haystack); n = needle + strlen (needle); do { if (n == needle) { return TRUE; } if (h == haystack) { return FALSE; } hc = *--h; nc = *--n; hc = g_ascii_tolower (hc); nc = g_ascii_tolower (nc); } while (hc == nc); return FALSE; } /** * _gnome_vfs_use_handler_for_scheme: * @scheme: the URI scheme * * Checks GConf to see if there is a URL handler * defined for this scheme and if it is enabled. * * Return value: TRUE if handler is defined and enabled, * FALSE otherwise. * * Since: 2.4 */ gboolean _gnome_vfs_use_handler_for_scheme (const char *scheme) { GConfClient *client; gboolean ret; char *path; g_return_val_if_fail (scheme != NULL, FALSE); if (!gconf_is_initialized ()) { if (!gconf_init (0, NULL, NULL)) { return FALSE; } } client = gconf_client_get_default (); path = g_strconcat (GCONF_URL_HANDLER_PATH, scheme, "/enabled", NULL); ret = gconf_client_get_bool (client, path, NULL); g_free (path); g_object_unref (G_OBJECT (client)); return ret; } /** * _gnome_vfs_url_show_using_handler_with_env: * @url: the url to show * @envp: environment for the handler * * Same as gnome_url_show_using_handler except that the handler * will be launched with the given environment. * * Return value: GNOME_VFS_OK on success. * GNOME_VFS_ERROR_BAD_PAREMETER if the URL is invalid. * GNOME_VFS_ERROR_NOT_SUPPORTED if no handler is defined. * GNOME_VFS_ERROR_PARSE if the handler command can not be parsed. * GNOME_VFS_ERROR_LAUNCH if the handler command can not be launched. * GNOME_VFS_ERROR_INTERNAL for internal/GConf errors. * * Since: 2.4 */ GnomeVFSResult _gnome_vfs_url_show_using_handler_with_env (const char *url, char **envp) { GConfClient *client; char *path; char *scheme; char *template; char **argv; int argc; int i; gboolean ret; g_return_val_if_fail (url != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); scheme = gnome_vfs_get_uri_scheme (url); g_return_val_if_fail (scheme != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); if (!gconf_is_initialized ()) { if (!gconf_init (0, NULL, NULL)) { g_free (scheme); return GNOME_VFS_ERROR_INTERNAL; } } client = gconf_client_get_default (); path = g_strconcat (GCONF_URL_HANDLER_PATH, scheme, "/command", NULL); template = gconf_client_get_string (client, path, NULL); g_free (path); if (template == NULL) { g_free (template); g_free (scheme); g_object_unref (G_OBJECT (client)); return GNOME_VFS_ERROR_NO_HANDLER; } if (!g_shell_parse_argv (template, &argc, &argv, NULL)) { g_free (template); g_free (scheme); g_object_unref (G_OBJECT (client)); return GNOME_VFS_ERROR_PARSE; } g_free (template); path = g_strconcat (GCONF_URL_HANDLER_PATH, scheme, "/needs_terminal", NULL); if (gconf_client_get_bool (client, path, NULL)) { if (!_gnome_vfs_prepend_terminal_to_vector (&argc, &argv)) { g_free (path); g_free (scheme); g_strfreev (argv); return GNOME_VFS_ERROR_INTERNAL; } } g_free (path); g_free (scheme); g_object_unref (G_OBJECT (client)); for (i = 0; i < argc; i++) { char *arg; char **strs; if (!strstr (argv[i], "%s")) continue; /* we can't simply printf the uri into argv[i], since the format * string might contain other specifiers (%d and friends) or multiple * references to the URI, which may result in crashes if expanded using * printf. */ arg = argv[i]; strs = g_strsplit (argv[i], "%s", 0); argv[i] = g_strjoinv (url, strs); g_strfreev (strs); g_free (arg); } ret = g_spawn_async (NULL /* working directory */, argv, envp, G_SPAWN_SEARCH_PATH /* flags */, NULL /* child_setup */, NULL /* data */, NULL /* child_pid */, NULL); g_strfreev (argv); if (!ret) { return GNOME_VFS_ERROR_LAUNCH; } return GNOME_VFS_OK; } /* This is a copy from libgnome, internalized here to avoid strange dependency loops */ /** * _gnome_vfs_prepend_terminal_to_vector: * @argc: a pointer to the vector size * @argv: a pointer to the vector * * Prepends a terminal (either the one configured as default in GnomeVFS * or one of the common xterm emulators) to the passed in vector, modifying * it in the process. The vector should be allocated with #g_malloc, as * this will #g_free the original vector. Also all elements must * have been allocated separately. That is the standard glib/GNOME way of * doing vectors. If the integer that @argc points to is negative, the * size will first be computed. Also note that passing in pointers to a vector * that is empty, will just create a new vector for you. * * Return value: TRUE if successful, FALSE otherwise. * * Since: 2.4 */ gboolean _gnome_vfs_prepend_terminal_to_vector (int *argc, char ***argv) { #ifndef G_OS_WIN32 char **real_argv; int real_argc; int i, j; char **term_argv = NULL; int term_argc = 0; GConfClient *client; char *terminal = NULL; char **the_argv; g_return_val_if_fail (argc != NULL, FALSE); g_return_val_if_fail (argv != NULL, FALSE); /* sanity */ if(*argv == NULL) { *argc = 0; } the_argv = *argv; /* compute size if not given */ if (*argc < 0) { for (i = 0; the_argv[i] != NULL; i++) ; *argc = i; } if (!gconf_is_initialized ()) { if (!gconf_init (0, NULL, NULL)) { return FALSE; } } client = gconf_client_get_default (); terminal = gconf_client_get_string (client, GCONF_DEFAULT_TERMINAL_EXEC_PATH, NULL); if (terminal) { gchar *exec_flag; exec_flag = gconf_client_get_string (client, GCONF_DEFAULT_TERMINAL_ARG_PATH, NULL); if (exec_flag == NULL) { term_argc = 1; term_argv = g_new0 (char *, 2); term_argv[0] = terminal; term_argv[1] = NULL; } else { term_argc = 2; term_argv = g_new0 (char *, 3); term_argv[0] = terminal; term_argv[1] = exec_flag; term_argv[2] = NULL; } } g_object_unref (G_OBJECT (client)); if (term_argv == NULL) { char *check; term_argc = 2; term_argv = g_new0 (char *, 3); check = g_find_program_in_path ("gnome-terminal"); if (check != NULL) { term_argv[0] = check; /* Note that gnome-terminal takes -x and * as -e in gnome-terminal is broken we use that. */ term_argv[1] = g_strdup ("-x"); } else { if (check == NULL) check = g_find_program_in_path ("nxterm"); if (check == NULL) check = g_find_program_in_path ("color-xterm"); if (check == NULL) check = g_find_program_in_path ("rxvt"); if (check == NULL) check = g_find_program_in_path ("xterm"); if (check == NULL) check = g_find_program_in_path ("dtterm"); if (check == NULL) { check = g_strdup ("xterm"); g_warning ("couldn't find a terminal, falling back to xterm"); } term_argv[0] = check; term_argv[1] = g_strdup ("-e"); } } real_argc = term_argc + *argc; real_argv = g_new (char *, real_argc + 1); for (i = 0; i < term_argc; i++) real_argv[i] = term_argv[i]; for (j = 0; j < *argc; j++, i++) real_argv[i] = (char *)the_argv[j]; real_argv[i] = NULL; g_free (*argv); *argv = real_argv; *argc = real_argc; /* we use g_free here as we sucked all the inner strings * out from it into real_argv */ g_free (term_argv); return TRUE; #else return FALSE; #endif /* G_OS_WIN32 */ } #ifndef G_OS_WIN32 /** * _gnome_vfs_set_fd_flags: * @fd: a valid file descriptor * @flags: file status flags to set * * Set the file status flags part of the descriptor’s flags to the * value specified by @flags. * * Return value: TRUE if successful, FALSE otherwise. * * Since: 2.7 */ static gboolean _set_fd_flags (int fd, int flags) { int val; val = fcntl (fd, F_GETFL, 0); if (val < 0) { g_warning ("fcntl() F_GETFL failed: %s", strerror (errno)); return FALSE; } val |= flags; val = fcntl (fd, F_SETFL, val); if (val < 0) { g_warning ("fcntl() F_SETFL failed: %s", strerror (errno)); return FALSE; } return TRUE; } /** * _gnome_vfs_clear_fd_flags: * @fd: a valid file descriptor * @flags: file status flags to clear * * Clear the flags sepcified by @flags of the file status flags part of the * descriptor flags. * * Return value: TRUE if successful, FALSE otherwise. * * Since: 2.7 */ static gboolean _clear_fd_flags (int fd, int flags) { int val; val = fcntl (fd, F_GETFL, 0); if (val < 0) { g_warning ("fcntl() F_GETFL failed: %s", strerror (errno)); return FALSE; } val &= ~flags; val = fcntl (fd, F_SETFL, val); if (val < 0) { g_warning ("fcntl() F_SETFL failed: %s", strerror (errno)); return FALSE; } return TRUE; } #endif /* G_OS_WIN32 */ gboolean _gnome_vfs_socket_set_blocking (int sock_fd, gboolean blocking) { #ifndef G_OS_WIN32 gboolean result; if (blocking) { result = _clear_fd_flags (sock_fd, O_NONBLOCK); } else { result = _set_fd_flags (sock_fd, O_NONBLOCK); } return result; #else u_long val; val = blocking ? 0 : 1; if (ioctlsocket (sock_fd, FIONBIO, &val) == SOCKET_ERROR) { g_warning ("ioctlsocket(FIONBIO) failed: %s", _gnome_vfs_winsock_strerror (WSAGetLastError ())); return FALSE; } return TRUE; #endif /* G_OS_WIN32 */ } /** * _gnome_vfs_pipe: * @fds: a pointer to an array or two ints * * Creates a unidirectional IPC pipe. On Unix, a pipe. On Win32, a * pair of connected TCP sockets (thus actually bidirectional, but * ignore that). * * Return value: TRUE if successful, FALSE otherwise. * * Since: 2.11 */ int _gnome_vfs_pipe (int *fds) { #ifndef G_OS_WIN32 return pipe (fds); #else SOCKET temp, socket1 = -1, socket2 = -1; struct sockaddr_in saddr; int len; u_long arg; fd_set read_set, write_set; struct timeval tv; temp = socket (AF_INET, SOCK_STREAM, 0); if (temp == INVALID_SOCKET) { _gnome_vfs_map_winsock_error_to_errno (); goto out0; } arg = 1; if (ioctlsocket (temp, FIONBIO, &arg) == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); goto out0; } memset (&saddr, 0, sizeof (saddr)); saddr.sin_family = AF_INET; saddr.sin_port = 0; saddr.sin_addr.s_addr = htonl (INADDR_LOOPBACK); if (bind (temp, (struct sockaddr *)&saddr, sizeof (saddr))) { _gnome_vfs_map_winsock_error_to_errno (); goto out0; } if (listen (temp, 1) == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); goto out0; } len = sizeof (saddr); if (getsockname (temp, (struct sockaddr *)&saddr, &len)) { _gnome_vfs_map_winsock_error_to_errno (); goto out0; } socket1 = socket (AF_INET, SOCK_STREAM, 0); if (socket1 == INVALID_SOCKET) { _gnome_vfs_map_winsock_error_to_errno (); goto out0; } arg = 1; if (ioctlsocket (socket1, FIONBIO, &arg) == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); goto out1; } if (connect (socket1, (struct sockaddr *)&saddr, len) != SOCKET_ERROR || WSAGetLastError () != WSAEWOULDBLOCK) { _gnome_vfs_map_winsock_error_to_errno (); goto out1; } FD_ZERO (&read_set); FD_SET (temp, &read_set); tv.tv_sec = 0; tv.tv_usec = 0; if (select (0, &read_set, NULL, NULL, NULL) == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); goto out1; } if (!FD_ISSET (temp, &read_set)) { errno = EIO; /* Oh well, whatever */ goto out1; } socket2 = accept (temp, (struct sockaddr *) &saddr, &len); if (socket2 == INVALID_SOCKET) { _gnome_vfs_map_winsock_error_to_errno (); goto out1; } FD_ZERO (&write_set); FD_SET (socket1, &write_set); tv.tv_sec = 0; tv.tv_usec = 0; if (select (0, NULL, &write_set, NULL, NULL) == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); goto out2; } if (!FD_ISSET (socket1, &write_set)) { errno = EIO; goto out2; } arg = 0; if (ioctlsocket (socket1, FIONBIO, &arg) == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); goto out2; } arg = 0; if (ioctlsocket (socket2, FIONBIO, &arg) == SOCKET_ERROR) { _gnome_vfs_map_winsock_error_to_errno (); goto out2; } fds[0] = socket1; fds[1] = socket2; closesocket (temp); return 0; out2: closesocket (socket2); out1: closesocket (socket1); out0: closesocket (temp); return -1; #endif } gboolean _gnome_vfs_pipe_set_blocking (int pipe_fd, gboolean blocking) { return _gnome_vfs_socket_set_blocking (pipe_fd, blocking); } #ifdef G_OS_WIN32 void _gnome_vfs_map_winsock_error_to_errno (void) { errno = WSAGetLastError (); switch (errno) { case WSAEBADF: errno = EBADF; break; case WSAEWOULDBLOCK: errno = EAGAIN; break; default: errno = EIO; break; /* Oh well */ } } const char * _gnome_vfs_winsock_strerror (int error) { switch (error) { case WSAEOPNOTSUPP: return "Operation not supported on transport endpoint"; case WSAEPFNOSUPPORT: return "Protocol family not supported"; case WSAECONNRESET: return "Connection reset by peer"; case WSAENOBUFS: return "No buffer space available"; case WSAEAFNOSUPPORT: return "Address family not supported by protocol family"; case WSAENOTSOCK: return "Socket operation on non-socket"; case WSAENOPROTOOPT: return "Protocol not available"; case WSAESHUTDOWN: return "Can't send after socket shutdown"; case WSAECONNREFUSED: return "Connection refused"; case WSAEADDRINUSE: return "Address already in use"; case WSAECONNABORTED: return "Connection aborted"; case WSAENETUNREACH: return "Network is unreachable"; case WSAENETDOWN: return "Network interface is not configured"; case WSAETIMEDOUT: return "Connection timed out"; case WSAEHOSTDOWN: return "Host is down"; case WSAEHOSTUNREACH: return "Host is unreachable"; case WSAEINPROGRESS: return "Connection already in progress"; case WSAEALREADY: return "Socket already connected"; case WSAEPROTONOSUPPORT: return "Unknown protocol"; case WSAESOCKTNOSUPPORT: return "Socket type not supported"; case WSAEADDRNOTAVAIL: return "Address not available"; case WSAEISCONN: return "Socket is already connected"; case WSAENOTCONN: return "Socket is not connected"; } return "Unknown Windows Sockets error"; } #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-unix-mounts.h0000644000175000001440000000522611334251016017313 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-unix-mounts.h - read and monitor fstab/mtab Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_UNIX_MOUNTS_H #define GNOME_VFS_UNIX_MOUNTS_H #include #include #include #ifndef G_OS_WIN32 #include #endif G_BEGIN_DECLS typedef struct { char *mount_path; char *device_path; char *filesystem_type; gboolean is_read_only; } GnomeVFSUnixMount; typedef struct { char *mount_path; char *device_path; char *filesystem_type; char *dev_opt; gboolean is_read_only; gboolean is_user_mountable; gboolean is_loopback; } GnomeVFSUnixMountPoint; typedef void (* GnomeVFSUnixMountCallback) (gpointer user_data); void _gnome_vfs_unix_mount_free (GnomeVFSUnixMount *mount_entry); void _gnome_vfs_unix_mount_point_free (GnomeVFSUnixMountPoint *mount_point); gint _gnome_vfs_unix_mount_compare (GnomeVFSUnixMount *mount_entry1, GnomeVFSUnixMount *mount_entry2); gint _gnome_vfs_unix_mount_point_compare (GnomeVFSUnixMountPoint *mount_point1, GnomeVFSUnixMountPoint *mount_point2); gboolean _gnome_vfs_get_unix_mount_table (GList **return_list); gboolean _gnome_vfs_get_current_unix_mounts (GList **return_list); GList * _gnome_vfs_unix_mount_get_unix_device (GList *mounts); void _gnome_vfs_monitor_unix_mounts (GnomeVFSUnixMountCallback mount_table_changed, gpointer mount_table_changed_user_data, GnomeVFSUnixMountCallback current_mounts_changed, gpointer current_mounts_user_data); void _gnome_vfs_stop_monitoring_unix_mounts (void); G_END_DECLS #endif /* GNOME_VFS_UNIX_MOUNTS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-file-size.h0000644000175000001440000000376011450333344016701 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-file-size.h - Typedefs of GnomeVFSFileSize and GnomeVFSFileOffset Note: This file is generated by configure, please edit gnome-vfs-file-size.h.in Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: George Lebl, */ #ifndef GNOME_VFS_FILE_SIZE_H #define GNOME_VFS_FILE_SIZE_H #include /* * This defines GnomeVFSFileSize and GnomeVFSFileOffset * * It also defines GNOME_VFS_SIZE_IS_ and GNOME_VFS_OFFSET_IS_ * where type is INT, UNSIGNED_INT, LONG, UNSIGNED_LONG, LONG_LONG * or UNSIGNED_LONG_LONG. Note that size is always unsigned and offset * is always signed. * * It also defines GNOME_VFS_SIZE_FORMAT_STR and GNOME_VFS_OFFSET_FORMAT_STR * which is the string representation to be used in printf style expressions. * This is without the %, so for example for long it would be "ld" */ #define GNOME_VFS_SIZE_IS_UNSIGNED_LONG_LONG #define GNOME_VFS_OFFSET_IS_LONG_LONG #define GNOME_VFS_SIZE_FORMAT_STR G_GUINT64_FORMAT #define GNOME_VFS_OFFSET_FORMAT_STR G_GINT64_FORMAT G_GNUC_EXTENSION typedef guint64 GnomeVFSFileSize; G_GNUC_EXTENSION typedef gint64 GnomeVFSFileOffset; #endif /* GNOME_VFS_FILE_SIZE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-uri.h0000644000175000001440000002026511334251016015604 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-uri.h - URI handling for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_URI_H #define GNOME_VFS_URI_H #include #include /* For GType */ G_BEGIN_DECLS /** * GnomeVFSURI: * @ref_count: Reference count. The URI is freed when it drops to zero. * @text: A canonical representation of the path associated with this resource. * @fragment_id: Extra data identifying this resource. * @method_string: The @method's method associated with this resource. * One #GnomeVFSMethod can be used for multiple method strings. * @method: The #GnomeVFSMethod associated with this resource. * @parent: Pointer to the parent element, or %NULL for #GnomeVFSURI that * have no enclosing #GnomeVFSURI. The process of encapsulating one * URI in another one is called URI chaining. * * Holds information about the location of a particular resource. **/ typedef struct GnomeVFSURI { /*< public >*/ guint ref_count; gchar *text; gchar *fragment_id; gchar *method_string; struct GnomeVFSMethod *method; struct GnomeVFSURI *parent; /*< private >*/ /* Reserved to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSURI; /** * GnomeVFSToplevelURI: * @host_name: The name of the host used to access this resource, o %NULL. * @host_port: The port used to access this resource, or %0. * @user_name: Unescaped user name used to access this resource, or %NULL. * @password: Unescaped password used to access this resource, or %NULL. * @urn: The parent URN, or %NULL if it doesn't exist. * * This is the toplevel URI element used to access ressources stored on * a remote server. Toplevel method implementations should cast the #GnomeVFSURI * argument to this type to get the additional host and authentication information. * * If any of the elements is 0 respectively %NULL, it is unspecified. **/ typedef struct { GnomeVFSURI uri; /*< public >*/ gchar *host_name; guint host_port; gchar *user_name; gchar *password; gchar *urn; /*< private >*/ /* Reserved to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSToplevelURI; /** * GnomeVFSURIHideOptions: * @GNOME_VFS_URI_HIDE_NONE: don't hide anything * @GNOME_VFS_URI_HIDE_USER_NAME: hide the user name * @GNOME_VFS_URI_HIDE_PASSWORD: hide the password * @GNOME_VFS_URI_HIDE_HOST_NAME: hide the host name * @GNOME_VFS_URI_HIDE_HOST_PORT: hide the port * @GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD: hide the method (e.g. http, file) * @GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER: hide the fragment identifier * * Packed boolean bitfield controlling hiding of various elements * of a #GnomeVFSURI when it is converted to a string using * gnome_vfs_uri_to_string(). **/ typedef enum { GNOME_VFS_URI_HIDE_NONE = 0, GNOME_VFS_URI_HIDE_USER_NAME = 1 << 0, GNOME_VFS_URI_HIDE_PASSWORD = 1 << 1, GNOME_VFS_URI_HIDE_HOST_NAME = 1 << 2, GNOME_VFS_URI_HIDE_HOST_PORT = 1 << 3, GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD = 1 << 4, GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER = 1 << 8 } GnomeVFSURIHideOptions; GType gnome_vfs_uri_hide_options_get_type (void); #define GNOME_VFS_TYPE_VFS_URI_HIDE_OPTIONS (gnome_vfs_uri_hide_options_get_type()) /** * GNOME_VFS_URI_MAGIC_CHR: * * The character used to divide location from * extra "arguments" passed to the method. **/ /** * GNOME_VFS_URI_MAGIC_STR: * * The character used to divide location from * extra "arguments" passed to the method. **/ #define GNOME_VFS_URI_MAGIC_CHR '#' #define GNOME_VFS_URI_MAGIC_STR "#" /** * GNOME_VFS_URI_PATH_CHR: * * Defines the path seperator character. **/ /** * GNOME_VFS_URI_PATH_STR: * * Defines the path seperator string. **/ #define GNOME_VFS_URI_PATH_CHR '/' #define GNOME_VFS_URI_PATH_STR "/" /* FUNCTIONS */ GnomeVFSURI *gnome_vfs_uri_new (const gchar *text_uri); GnomeVFSURI *gnome_vfs_uri_resolve_relative (const GnomeVFSURI *base, const gchar *relative_reference); GnomeVFSURI *gnome_vfs_uri_resolve_symbolic_link (const GnomeVFSURI *base, const gchar *relative_reference); GnomeVFSURI *gnome_vfs_uri_ref (GnomeVFSURI *uri); void gnome_vfs_uri_unref (GnomeVFSURI *uri); GnomeVFSURI *gnome_vfs_uri_append_string (const GnomeVFSURI *uri, const char *uri_fragment); GnomeVFSURI *gnome_vfs_uri_append_path (const GnomeVFSURI *uri, const char *path); GnomeVFSURI *gnome_vfs_uri_append_file_name (const GnomeVFSURI *uri, const gchar *filename); gchar *gnome_vfs_uri_to_string (const GnomeVFSURI *uri, GnomeVFSURIHideOptions hide_options); GnomeVFSURI *gnome_vfs_uri_dup (const GnomeVFSURI *uri); gboolean gnome_vfs_uri_is_local (const GnomeVFSURI *uri); gboolean gnome_vfs_uri_has_parent (const GnomeVFSURI *uri); GnomeVFSURI *gnome_vfs_uri_get_parent (const GnomeVFSURI *uri); GnomeVFSToplevelURI *gnome_vfs_uri_get_toplevel (const GnomeVFSURI *uri); const gchar *gnome_vfs_uri_get_host_name (const GnomeVFSURI *uri); const gchar *gnome_vfs_uri_get_scheme (const GnomeVFSURI *uri); guint gnome_vfs_uri_get_host_port (const GnomeVFSURI *uri); const gchar *gnome_vfs_uri_get_user_name (const GnomeVFSURI *uri); const gchar *gnome_vfs_uri_get_password (const GnomeVFSURI *uri); void gnome_vfs_uri_set_host_name (GnomeVFSURI *uri, const gchar *host_name); void gnome_vfs_uri_set_host_port (GnomeVFSURI *uri, guint host_port); void gnome_vfs_uri_set_user_name (GnomeVFSURI *uri, const gchar *user_name); void gnome_vfs_uri_set_password (GnomeVFSURI *uri, const gchar *password); gboolean gnome_vfs_uri_equal (const GnomeVFSURI *a, const GnomeVFSURI *b); gboolean gnome_vfs_uri_is_parent (const GnomeVFSURI *possible_parent, const GnomeVFSURI *possible_child, gboolean recursive); const gchar *gnome_vfs_uri_get_path (const GnomeVFSURI *uri); const gchar *gnome_vfs_uri_get_fragment_identifier (const GnomeVFSURI *uri); gchar *gnome_vfs_uri_extract_dirname (const GnomeVFSURI *uri); gchar *gnome_vfs_uri_extract_short_name (const GnomeVFSURI *uri); gchar *gnome_vfs_uri_extract_short_path_name (const GnomeVFSURI *uri); gint gnome_vfs_uri_hequal (gconstpointer a, gconstpointer b); guint gnome_vfs_uri_hash (gconstpointer p); GList *gnome_vfs_uri_list_parse (const gchar* uri_list); GList *gnome_vfs_uri_list_ref (GList *list); GList *gnome_vfs_uri_list_unref (GList *list); GList *gnome_vfs_uri_list_copy (GList *list); void gnome_vfs_uri_list_free (GList *list); char *gnome_vfs_uri_make_full_from_relative (const char *base_uri, const char *relative_uri); G_END_DECLS #endif /* GNOME_VFS_URI_H */ gnome-vfs-2.24.4/libgnomevfs/xdgmimeint.c0000644000175000001440000001030511334251016015240 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimeint.c: Internal defines and functions. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "xdgmimeint.h" #include #include #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif static const char _xdg_utf8_skip_data[256] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1 }; const char * const _xdg_utf8_skip = _xdg_utf8_skip_data; /* Returns the number of unprocessed characters. */ xdg_unichar_t _xdg_utf8_to_ucs4(const char *source) { xdg_unichar_t ucs32; if( ! ( *source & 0x80 ) ) { ucs32 = *source; } else { int bytelength = 0; xdg_unichar_t result; if ( ! (*source & 0x40) ) { ucs32 = *source; } else { if ( ! (*source & 0x20) ) { result = *source++ & 0x1F; bytelength = 2; } else if ( ! (*source & 0x10) ) { result = *source++ & 0x0F; bytelength = 3; } else if ( ! (*source & 0x08) ) { result = *source++ & 0x07; bytelength = 4; } else if ( ! (*source & 0x04) ) { result = *source++ & 0x03; bytelength = 5; } else if ( ! (*source & 0x02) ) { result = *source++ & 0x01; bytelength = 6; } else { result = *source++; bytelength = 1; } for ( bytelength --; bytelength > 0; bytelength -- ) { result <<= 6; result |= *source++ & 0x3F; } ucs32 = result; } } return ucs32; } /* hullo. this is great code. don't rewrite it */ xdg_unichar_t _xdg_ucs4_to_lower (xdg_unichar_t source) { /* FIXME: Do a real to_upper sometime */ /* CaseFolding-3.2.0.txt has a table of rules. */ if ((source & 0xFF) == source) return (xdg_unichar_t) tolower ((unsigned char) source); return source; } int _xdg_utf8_validate (const char *source) { /* FIXME: actually write */ return TRUE; } const char * _xdg_get_base_name (const char *file_name) { const char *base_name; if (file_name == NULL) return NULL; base_name = strrchr (file_name, '/'); if (base_name == NULL) return file_name; else return base_name + 1; } xdg_unichar_t * _xdg_convert_to_ucs4 (const char *source, int *len) { xdg_unichar_t *out; int i; const char *p; out = malloc (sizeof (xdg_unichar_t) * (strlen (source) + 1)); p = source; i = 0; while (*p) { out[i++] = _xdg_utf8_to_ucs4 (p); p = _xdg_utf8_next_char (p); } out[i] = 0; *len = i; return out; } void _xdg_reverse_ucs4 (xdg_unichar_t *source, int len) { xdg_unichar_t c; int i; for (i = 0; i < len - i - 1; i++) { c = source[i]; source[i] = source[len - i - 1]; source[len - i - 1] = c; } } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-application-registry.c0000644000175000001440000014577511334251016021167 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-mime-info.c - GNOME mime-information implementation. Copyright (C) 1998 Miguel de Icaza Copyright (C) 2000 Eazel, Inc All rights reserved. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * Authors: George Lebl * Based on original mime-info database code by Miguel de Icaza */ #include "config.h" #include "gnome-vfs-application-registry.h" #include "gnome-vfs-configuration.h" #include "gnome-vfs-mime-handlers.h" #include "gnome-vfs-mime-private.h" #include "gnome-vfs-mime.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-result.h" #include #include #include #include #include #include #include #include #include #include #include #if !defined getc_unlocked && !defined HAVE_GETC_UNLOCKED # define getc_unlocked(fp) getc (fp) #endif typedef struct _Application Application; struct _Application { char *app_id; int ref_count; /* The following is true if this was found in the * home directory or if the user changed any keys * here. It means that it will be saved into a user * file */ gboolean user_owned; GHashTable *keys; GnomeVFSMimeApplicationArgumentType expects_uris; GList *mime_types; GList *supported_uri_schemes; /* The user_owned version of this if this is a system * version */ Application *user_application; }; /* Describes the directories we scan for information */ typedef struct { char *dirname; unsigned int valid : 1; unsigned int system_dir : 1; } ApplicationRegistryDir; /* These ones are used to automatically reload mime info on demand */ static FileDateTracker *registry_date_tracker; static ApplicationRegistryDir gnome_registry_dir; static ApplicationRegistryDir user_registry_dir; /* To initialize the module automatically */ static gboolean gnome_vfs_application_registry_initialized = FALSE; /* we want to replace the previous key if the current key has a lower (ie: better) language level */ static char *previous_key = NULL; static int previous_key_lang_level = -1; /* * A hash table containing application registry record (Application) * keyed by application ids. */ static GHashTable *global_applications = NULL; /* * A hash table containing GList's of application registry records (Application) * keyed by the mime types */ /* specific mime_types (e.g. image/png) */ static GHashTable *specific_mime_types = NULL; /* generic mime_types (e.g. image/) */ static GHashTable *generic_mime_types = NULL; /* * Dirty flag, just to make sure we don't sync needlessly */ static gboolean user_file_dirty = FALSE; /* * Some local prototypes */ static void gnome_vfs_application_registry_init (void); static void application_clear_mime_types (Application *application); static Application * application_ref (Application *application) { g_return_val_if_fail(application != NULL, NULL); application->ref_count ++; return application; } static void hash_foreach_free_key_value(gpointer key, gpointer value, gpointer user_data) { g_free(key); g_free(value); } static void application_unref (Application *application) { g_return_if_fail(application != NULL); application->ref_count --; if (application->ref_count == 0) { application_clear_mime_types (application); if (application->keys != NULL) { g_hash_table_foreach(application->keys, hash_foreach_free_key_value, NULL); g_hash_table_destroy(application->keys); application->keys = NULL; } g_free(application->app_id); application->app_id = NULL; if (application->user_application != NULL) { application_unref (application->user_application); application->user_application = NULL; } g_free(application); } } static Application * application_new (const char *app_id, gboolean user_owned) { Application *application; application = g_new0 (Application, 1); application->app_id = g_strdup(app_id); application->ref_count = 1; application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS; application->user_owned = user_owned; return application; } static Application * application_lookup_or_create (const char *app_id, gboolean user_owned) { Application *application; g_return_val_if_fail(app_id != NULL, NULL); gnome_vfs_application_registry_init (); application = g_hash_table_lookup (global_applications, app_id); if (application != NULL) { if ( ! user_owned) { /* if we find only a user app, do magic */ if (application->user_owned) { Application *new_application; new_application = application_new (app_id, FALSE/*user_owned*/); new_application->user_application = application; /* override the user application */ g_hash_table_insert (global_applications, new_application->app_id, new_application); return new_application; } else { return application; } } else { if (application->user_owned) { return application; } if (application->user_application != NULL) { return application->user_application; } else { Application *new_application; new_application = application_new (app_id, TRUE/*user_owned*/); application->user_application = new_application; return new_application; } } } application = application_new (app_id, user_owned); g_hash_table_insert (global_applications, application->app_id, application); return application; } static Application * application_lookup (const char *app_id) { g_return_val_if_fail(app_id != NULL, NULL); if (global_applications == NULL) return NULL; return g_hash_table_lookup (global_applications, app_id); } static const char * peek_value (const Application *application, const char *key) { g_return_val_if_fail(application != NULL, NULL); g_return_val_if_fail(key != NULL, NULL); if (application->keys == NULL) return NULL; return g_hash_table_lookup (application->keys, key); } static void set_value (Application *application, const char *key, const char *value) { char *old_value, *old_key; g_return_if_fail(application != NULL); g_return_if_fail(key != NULL); g_return_if_fail(value != NULL); if (application->keys == NULL) application->keys = g_hash_table_new (g_str_hash, g_str_equal); if (g_hash_table_lookup_extended (application->keys, key, (gpointer *)&old_key, (gpointer *)&old_value)) { g_hash_table_insert (application->keys, old_key, g_strdup (value)); g_free (old_value); } else { g_hash_table_insert (application->keys, g_strdup (key), g_strdup (value)); } } static void unset_key (Application *application, const char *key) { char *old_value, *old_key; g_return_if_fail(application != NULL); g_return_if_fail(key != NULL); if (application->keys == NULL) return; if (g_hash_table_lookup_extended (application->keys, key, (gpointer *)&old_key, (gpointer *)&old_value)) { g_hash_table_remove (application->keys, old_key); g_free (old_key); g_free (old_value); } } static gboolean value_looks_true (const char *value) { if (value && (value[0] == 'T' || value[0] == 't' || value[0] == 'Y' || value[0] == 'y' || atoi (value) != 0)) { return TRUE; } else { return FALSE; } } static gboolean get_bool_value (const Application *application, const char *key, gboolean *got_key) { const char *value = peek_value (application, key); if (got_key) { if (value != NULL) *got_key = TRUE; else *got_key = FALSE; } return value_looks_true (value); } static void set_bool_value (Application *application, const char *key, gboolean value) { set_value (application, key, value ? "true" : "false"); } static int application_compare (Application *application1, Application *application2) { return strcmp (application1->app_id, application2->app_id); } static void add_application_to_mime_type_table (Application *application, const char *mime_type) { GList *application_list; GHashTable *table; char *old_key; if (gnome_vfs_mime_type_is_supertype (mime_type)) table = generic_mime_types; else table = specific_mime_types; g_assert (table != NULL); if (g_hash_table_lookup_extended (table, mime_type, (gpointer *)&old_key, (gpointer *)&application_list)) { /* Sorted order is important as we can then easily * uniquify the results */ application_list = g_list_insert_sorted (application_list, application_ref (application), (GCompareFunc) application_compare); g_hash_table_insert (table, old_key, application_list); } else { application_list = g_list_prepend (NULL, application_ref (application)); g_hash_table_insert (table, g_strdup (mime_type), application_list); } } static void add_mime_type_to_application (Application *application, const char *mime_type) { /* if this exists already, just return */ if (g_list_find_custom (application->mime_types, /*glib is const incorrect*/(gpointer)mime_type, (GCompareFunc) strcmp) != NULL) return; application->mime_types = g_list_prepend (application->mime_types, g_strdup (mime_type)); add_application_to_mime_type_table (application, mime_type); } static void add_supported_uri_scheme_to_application (Application *application, const char *supported_uri_scheme) { if (g_list_find_custom (application->supported_uri_schemes, /*glib is const incorrect*/(gpointer) supported_uri_scheme, (GCompareFunc) strcmp) != NULL) { return; } application->supported_uri_schemes = g_list_prepend (application->supported_uri_schemes, g_strdup (supported_uri_scheme)); } static GList * supported_uri_scheme_list_copy (GList *supported_uri_schemes) { GList *copied_list, *node; copied_list = NULL; for (node = supported_uri_schemes; node != NULL; node = node->next) { copied_list = g_list_prepend (copied_list, g_strdup ((char *) node->data)); } return copied_list; } static void remove_application_from_mime_type_table (Application *application, const char *mime_type) { GHashTable *table; char *old_key; GList *application_list, *entry; if (gnome_vfs_mime_type_is_supertype (mime_type)) table = generic_mime_types; else table = specific_mime_types; g_assert (table != NULL); if (g_hash_table_lookup_extended (table, mime_type, (gpointer *)&old_key, (gpointer *)&application_list)) { entry = g_list_find (application_list, application); /* if this fails we're in deep doodoo I guess */ g_assert (entry != NULL); application_list = g_list_remove_link (application_list, entry); entry->data = NULL; application_unref (application); if (application_list != NULL) { g_hash_table_insert (table, old_key, application_list); } else { g_hash_table_remove (table, old_key); g_free(old_key); } } else g_assert_not_reached (); } static void remove_mime_type_for_application (Application *application, const char *mime_type) { GList *entry; g_return_if_fail(application != NULL); g_return_if_fail(mime_type != NULL); entry = g_list_find_custom (application->mime_types, /*glib is const incorrect*/(gpointer)mime_type, (GCompareFunc) strcmp); /* if this doesn't exist, just return */ if (entry == NULL) { return; } remove_application_from_mime_type_table (application, mime_type); /* Free data last, in case caller passed in mime_type string * that was stored in this table. */ application->mime_types = g_list_remove_link (application->mime_types, entry); g_free (entry->data); g_list_free_1 (entry); } static void application_clear_mime_types (Application *application) { g_return_if_fail (application != NULL); while (application->mime_types) remove_mime_type_for_application (application, application->mime_types->data); } static void application_remove (Application *application) { Application *main_application; g_return_if_fail (application != NULL); if (global_applications == NULL) { return; } main_application = application_lookup (application->app_id); if (main_application == NULL) { return; } /* We make sure the mime types are killed even if the application * entry lives after unreffing it */ application_clear_mime_types (application); if (main_application == application) { if (application->user_application) application_clear_mime_types (application->user_application); g_hash_table_remove (global_applications, application->app_id); } else { /* This must be a user application */ g_assert (main_application->user_application == application); main_application->user_application = NULL; } application_unref (application); } static void sync_key (gpointer key, gpointer value, gpointer user_data) { char *key_string = key; char *value_string = value; FILE *fp = user_data; fprintf (fp, "\t%s=%s\n", key_string, value_string); } /* write an application to a file */ static void application_sync (Application *application, FILE *fp) { GList *li; g_return_if_fail (application != NULL); g_return_if_fail (application->app_id != NULL); g_return_if_fail (fp != NULL); fprintf (fp, "%s\n", application->app_id); if (application->keys != NULL) g_hash_table_foreach (application->keys, sync_key, fp); if (application->mime_types != NULL) { char *separator; fprintf (fp, "\tmime_types="); separator = ""; for (li = application->mime_types; li != NULL; li = li->next) { char *mime_type = li->data; fprintf (fp, "%s%s", separator, mime_type); separator = ","; } fprintf (fp, "\n"); } fprintf (fp, "\n"); } /* this gives us a number of the language in the current language list, the lower the number the "better" the translation */ static int language_level (const char *lang) { const char * const *lang_list; int i; if (lang == NULL) lang = "C"; /* The returned list is sorted from most desirable to least desirable and always contains the default locale "C". */ lang_list = g_get_language_names(); for (i = 0; lang_list[i]; i++) if (strcmp (lang_list[i], lang) == 0) return i; return -1; } static void application_add_key (Application *application, const char *key, const char *lang, const char *value) { int lang_level; g_return_if_fail (application != NULL); g_return_if_fail (key != NULL); g_return_if_fail (value != NULL); if (strcmp (key, "mime_types") == 0 || strcmp (key, "supported_uri_schemes") == 0) { char *value_copy = g_strdup (value); char *next_value; /* FIXME: There used to be a check here for the value of "lang", but spamming the terminal about it is not really the right way to deal with that, nor is "MIME Types can't have languages, bad!" which is what was here before */ next_value = strtok (value_copy, ", \t"); while (next_value != NULL) { if (strcmp (key, "mime_types") == 0) { add_mime_type_to_application (application, next_value); } else { add_supported_uri_scheme_to_application (application, next_value); } next_value = strtok (NULL, ", \t"); } g_free(value_copy); /* fall through so that we can store the values as keys too */ } else if (strcmp (key, "expects_uris") == 0) { if (strcmp (value, "non-file") == 0) { application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES; } else if (value_looks_true (value)) { application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS; } else { application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS; } } lang_level = language_level (lang); /* wrong language completely */ if (lang_level < 0) return; /* if we have some language defined and if there was a previous_key */ if (lang_level > 0 && previous_key && /* our language level really sucks and the previous translation was of better language quality so just ignore us */ previous_key_lang_level < lang_level) { return; } set_value (application, key, value); /* set this as the previous key */ g_free(previous_key); previous_key = g_strdup(key); previous_key_lang_level = lang_level; } typedef enum { STATE_NONE, STATE_LANG, STATE_LOOKING_FOR_KEY, STATE_ON_APPLICATION, STATE_ON_KEY, STATE_ON_VALUE } ParserState; /** * strip_trailing_whitespace * * string * * strips the white space from a string. * */ static void strip_trailing_whitespace (GString *string) { int i; for (i = string->len - 1; i >= 0; i--) { if (!g_ascii_isspace (string->str[i])) break; } g_string_truncate (string, i + 1); } /** * load_application_info_from * * filename: Target filename to application info from. * user_owned: if application is user owned or not. * * This function will load application info from a file and parse through the * application loading the registry with the information contained in the file. * * **/ static void load_application_info_from (const char *filename, gboolean user_owned) { FILE *fp; gboolean in_comment, app_used; GString *line; int column, c; ParserState state; Application *application; char *key; char *lang; fp = g_fopen (filename, "r"); if (fp == NULL) return; in_comment = FALSE; app_used = FALSE; column = -1; application = NULL; key = NULL; lang = NULL; line = g_string_sized_new (120); state = STATE_NONE; while ((c = getc_unlocked (fp)) != EOF){ column++; if (c == '\r') continue; if (c == '#' && column == 0){ in_comment = TRUE; continue; } if (c == '\n'){ in_comment = FALSE; column = -1; if (state == STATE_ON_APPLICATION) { /* set previous key to nothing for this mime type */ g_free(previous_key); previous_key = NULL; previous_key_lang_level = -1; strip_trailing_whitespace (line); application = application_lookup_or_create (line->str, user_owned); app_used = FALSE; g_string_assign (line, ""); state = STATE_LOOKING_FOR_KEY; continue; } if (state == STATE_ON_VALUE){ app_used = TRUE; application_add_key (application, key, lang, line->str); g_string_assign (line, ""); g_free (key); key = NULL; g_free (lang); lang = NULL; state = STATE_LOOKING_FOR_KEY; continue; } continue; } if (in_comment) continue; switch (state){ case STATE_NONE: if (c != ' ' && c != '\t') state = STATE_ON_APPLICATION; else break; /* fall down */ case STATE_ON_APPLICATION: if (c == ':'){ in_comment = TRUE; break; } g_string_append_c (line, c); break; case STATE_LOOKING_FOR_KEY: if (c == '\t' || c == ' ') break; if (c == '['){ state = STATE_LANG; break; } if (column == 0){ state = STATE_ON_APPLICATION; g_string_append_c (line, c); break; } state = STATE_ON_KEY; /* falldown */ case STATE_ON_KEY: if (c == '\\'){ c = getc (fp); if (c == EOF) break; } if (c == '='){ key = g_strdup (line->str); g_string_assign (line, ""); state = STATE_ON_VALUE; break; } g_string_append_c (line, c); break; case STATE_ON_VALUE: g_string_append_c (line, c); break; case STATE_LANG: if (c == ']'){ state = STATE_ON_KEY; if (line->str [0]){ g_free(lang); lang = g_strdup(line->str); } else { in_comment = TRUE; state = STATE_LOOKING_FOR_KEY; } g_string_assign (line, ""); break; } g_string_append_c (line, c); break; } } if (application){ if (key && line->str [0]) application_add_key (application, key, lang, line->str); else if ( ! app_used) application_remove (application); } g_string_free (line, TRUE); g_free (key); g_free (lang); /* free the previous_key stuff */ g_free(previous_key); previous_key = NULL; previous_key_lang_level = -1; fclose (fp); _gnome_vfs_file_date_tracker_start_tracking_file (registry_date_tracker, filename); } /** * application_info_load * * source: * * */ static void application_info_load (ApplicationRegistryDir *source) { GDir *dir; const char *dent; const int extlen = sizeof (".applications") - 1; char *filename; struct stat s; if (g_stat (source->dirname, &s) != -1) source->valid = TRUE; else source->valid = FALSE; dir = g_dir_open (source->dirname, 0, NULL); if (dir == NULL) { source->valid = FALSE; return; } if (source->system_dir) { filename = g_build_filename (source->dirname, "gnome-vfs.applications", NULL); load_application_info_from (filename, FALSE /*user_owned*/); g_free (filename); } while ((dent = g_dir_read_name (dir)) != NULL){ int len = strlen (dent); if (len <= extlen) continue; if (strcmp (dent + len - extlen, ".applications")) continue; if (source->system_dir && strcmp (dent, "gnome-vfs.applications") == 0) continue; if ( ! source->system_dir && strcmp (dent, "user.applications") == 0) continue; filename = g_build_filename (source->dirname, dent, NULL); load_application_info_from (filename, FALSE /*user_owned*/); g_free (filename); } if ( ! source->system_dir) { filename = g_build_filename (source->dirname, "user.applications", NULL); /* Currently this is the only file that is "user * owned". It actually makes sense. Editting of * other files from the API would be too complex */ load_application_info_from (filename, TRUE /*user_owned*/); g_free (filename); } g_dir_close (dir); _gnome_vfs_file_date_tracker_start_tracking_file (registry_date_tracker, source->dirname); } /** * load_application_info * * This function will load the registry for an application from disk. **/ static void load_application_info (void) { application_info_load (&gnome_registry_dir); application_info_load (&user_registry_dir); } /** * gnome_vfs_application_registry_init * * This function initializes the gnome-vfs application registry. * **/ static void gnome_vfs_application_registry_init (void) { if (gnome_vfs_application_registry_initialized) return; registry_date_tracker = _gnome_vfs_file_date_tracker_new (); /* * The hash tables that store the mime keys. */ global_applications = g_hash_table_new (g_str_hash, g_str_equal); generic_mime_types = g_hash_table_new (g_str_hash, g_str_equal); specific_mime_types = g_hash_table_new (g_str_hash, g_str_equal); /* * Setup the descriptors for the information loading */ gnome_registry_dir.dirname = g_build_filename (GNOME_VFS_DATADIR, "application-registry", NULL); gnome_registry_dir.system_dir = TRUE; user_registry_dir.dirname = g_build_filename (g_get_home_dir(), ".gnome", "application-info", NULL); user_registry_dir.system_dir = FALSE; /* Make sure user directory exists */ if (g_mkdir (user_registry_dir.dirname, 0700) && errno != EEXIST) { g_warning("Could not create per-user Gnome application-registry directory: %s", user_registry_dir.dirname); } /* Things have been initialized flag it as ready so that we can load * the applications without attempting to reinitialize */ gnome_vfs_application_registry_initialized = TRUE; load_application_info (); } /* * maybe_reload * * This function will initialize the registry in memory and then reloads the * */ static void maybe_reload (void) { gnome_vfs_application_registry_init (); if (!_gnome_vfs_file_date_tracker_date_has_changed (registry_date_tracker)) { return; } gnome_vfs_application_registry_reload (); } /** * remove_apps * * key: * value: * user_data: * * FIXME: I need a clearer explanation on what this does. * */ static gboolean remove_apps (gpointer key, gpointer value, gpointer user_data) { Application *application = value; application_clear_mime_types (application); application_unref (application); return TRUE; } /** * gnome_vfs_application_registry_clear: * * This will wipe the registry clean removing everything from the registry. * This is different from gnome_vfs_application_registry_shutdown which will * actually delete the registry and leave it in an uninitialized state. * */ static void gnome_vfs_application_registry_clear (void) { if (global_applications != NULL) g_hash_table_foreach_remove (global_applications, remove_apps, NULL); } /** * gnome_vfs_application_registry_shutdown * * Synchronize gnome-vfs application registry data to disk, and free * resources. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. */ void gnome_vfs_application_registry_shutdown (void) { gnome_vfs_application_registry_clear (); if (global_applications != NULL) { g_hash_table_destroy (global_applications); global_applications = NULL; } if(generic_mime_types != NULL) { g_hash_table_destroy (generic_mime_types); generic_mime_types = NULL; } if(specific_mime_types != NULL) { g_hash_table_destroy (specific_mime_types); specific_mime_types = NULL; } _gnome_vfs_file_date_tracker_free (registry_date_tracker); g_free(gnome_registry_dir.dirname); gnome_registry_dir.dirname = NULL; g_free(user_registry_dir.dirname); user_registry_dir.dirname = NULL; gnome_vfs_application_registry_initialized = FALSE; } /** * gnome_vfs_application_registry_reload * * If this function is called for the first time it will initialize the * registry. Subsequent calls to the function will clear out the current * registry contents and load registry contents from the save file. Make * certain that you've saved your registry before calling this function. It * will destroy unsaved changes. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. */ void gnome_vfs_application_registry_reload (void) { if ( ! gnome_vfs_application_registry_initialized) { /* If not initialized, initialization will do a "reload" */ gnome_vfs_application_registry_init (); } else { gnome_vfs_application_registry_clear (); load_application_info (); } } /* * Existance check */ /** * gnome_vfs_application_registry_exists * @app_id: an application ID * * This function will return TRUE if there is an entry for @app_id in * the registry, otherwise FALSE. * * Returns: TRUE if the application is in the registry, FALSE if not * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ gboolean gnome_vfs_application_registry_exists (const char *app_id) { g_return_val_if_fail (app_id != NULL, FALSE); maybe_reload (); if (application_lookup (app_id) != NULL) return TRUE; else return FALSE; } /* * Getting arbitrary keys */ /** * get_keys_foreach * * key: * user_data: * * FIXME: I have no idea what this function does. **/ static void get_keys_foreach(gpointer key, gpointer value, gpointer user_data) { GList **listp = user_data; /* make sure we only insert unique keys */ if ( (*listp) && strcmp ((const char *) (*listp)->data, (const char *) key) == 0) return; (*listp) = g_list_insert_sorted ((*listp), key, (GCompareFunc) strcmp); } /** * gnome_vfs_application_registry_get_keys: * @app_id: the application ID for which to get keys * * This function wil return a list of strings which is the list of * keys set for @app_id in the application registry. * * Returns: A list of the keys set for @app_id * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ GList * gnome_vfs_application_registry_get_keys (const char *app_id) { GList *retval; Application *application; g_return_val_if_fail (app_id != NULL, NULL); maybe_reload (); application = application_lookup (app_id); if (application == NULL) return NULL; retval = NULL; if (application->keys != NULL) g_hash_table_foreach (application->keys, get_keys_foreach, &retval); if (application->user_application != NULL && application->user_application->keys) g_hash_table_foreach (application->user_application->keys, get_keys_foreach, &retval); return retval; } /** * real_peek_value: * * @application: registry application * @key: target key * * Returns: the value associated with the key, or NULL if there is no * associated value. * * This function looks and returns the value of the target key in the registry * application * */ static const char * real_peek_value (const Application *application, const char *key) { const char *retval; g_return_val_if_fail (application != NULL, NULL); g_return_val_if_fail (key != NULL, NULL); retval = NULL; if (application->user_application) retval = peek_value (application->user_application, key); if (retval == NULL) retval = peek_value (application, key); return retval; } /** * real_get_bool_value * * application: Application structure * key: taget key * got_key: actual key stored in application if key exists. * * This function will try to determine whether a key exists in the application. * It first checks the user applications and then the system applications and * then returns whether the key exists and what the value is from the value of * got_key. * * Returns: gboolean **/ static gboolean real_get_bool_value (const Application *application, const char *key, gboolean *got_key) { gboolean sub_got_key, retval; g_return_val_if_fail (application != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); sub_got_key = FALSE; retval = FALSE; if (application->user_application) retval = get_bool_value (application->user_application, key, &sub_got_key); if ( ! sub_got_key) retval = get_bool_value (application, key, &sub_got_key); if (got_key != NULL) *got_key = sub_got_key; return retval; } /** * gnome_vfs_application_registry_peek_value * @app_id: the application ID for which to look up a value * @key: the key to look up * * This will return the value associated with @key for @app_id in the * application registry. There is no need to free the return value. * * Returns: the value associated with the key, or NULL if there is no * associated value * * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. */ const char * gnome_vfs_application_registry_peek_value (const char *app_id, const char *key) { Application *application; g_return_val_if_fail (app_id != NULL, NULL); g_return_val_if_fail (key != NULL, NULL); maybe_reload (); application = application_lookup (app_id); if (application == NULL) return NULL; return real_peek_value (application, key); } /** * gnome_vfs_application_registry_get_bool_value * @app_id: registry id of the application * @key: key to look up * @got_key: TRUE if a setting was dound, otherwise FALSE * * This will look up a key in the structure pointed to by app_id and return the * boolean value of that key. It will return false if there are no * applications associated with the app_id. * * Returns: TRUE if @key is set to "true" or "yes" for @app_id, otherwise FALSE * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ gboolean gnome_vfs_application_registry_get_bool_value (const char *app_id, const char *key, gboolean *got_key) { Application *application; g_return_val_if_fail (app_id != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); maybe_reload (); application = application_lookup (app_id); if (application == NULL) return FALSE; return real_get_bool_value (application, key, got_key); } /* * Setting stuff */ /** * gnome_vfs_application_registry_remove_application * @app_id: registry id of the application * * Given the registry id this function will remove all applications that has * been set by the user. You will need to call * gnome_vfs_application_registry_sync to save the changes. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ void gnome_vfs_application_registry_remove_application (const char *app_id) { Application *application; g_return_if_fail (app_id != NULL); maybe_reload (); application = application_lookup (app_id); if (application == NULL) return; /* Only remove the user_owned stuff */ if (application->user_owned) { application_remove (application); user_file_dirty = TRUE; } else if (application->user_application != NULL) { application_remove (application->user_application); user_file_dirty = TRUE; } } /** * gnome_vfs_application_registry_set_value * @app_id: registry id of the application * @key: target key * @value: value to set the target key to * * This function will set values pertaining to registry entry pointed to by * app_id. You will need to call gnome_vfs_application_registry_sync to * realize the changes. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ void gnome_vfs_application_registry_set_value (const char *app_id, const char *key, const char *value) { Application *application; g_return_if_fail (app_id != NULL); g_return_if_fail (key != NULL); g_return_if_fail (value != NULL); maybe_reload (); application = application_lookup_or_create (app_id, TRUE/*user_owned*/); set_value (application, key, value); user_file_dirty = TRUE; } /** * gnome_vfs_application_registry_set_bool_value: * @app_id: registry id of the application * @key: target key * @value: value you want to set the target key to * * This function will modify those registry values that are of type boolean to * a value specified by the user. You will need to call * gnome_vfs_application_registry_sync to save your changes. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ void gnome_vfs_application_registry_set_bool_value (const char *app_id, const char *key, gboolean value) { Application *application; g_return_if_fail (app_id != NULL); g_return_if_fail (key != NULL); maybe_reload (); application = application_lookup_or_create (app_id, TRUE/*user_owned*/); set_bool_value (application, key, value); user_file_dirty = TRUE; } /** * gnome_vfs_application_registry_unset_key: * @app_id: registry id of the application * @key: search key * * This function given the application and the target will wipe the current * value that the key contains. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ void gnome_vfs_application_registry_unset_key (const char *app_id, const char *key) { Application *application; g_return_if_fail (app_id != NULL); g_return_if_fail (key != NULL); maybe_reload (); application = application_lookup_or_create (app_id, TRUE/*user_owned*/); unset_key (application, key); user_file_dirty = TRUE; } /* * Query functions */ static void cb_application_collect (gpointer key, gpointer value, gpointer user_data) { Application *application = value; GList **list = user_data; *list = g_list_prepend (*list, application->app_id); } /** * gnome_vfs_application_registry_get_applications * @mime_type: mime type string * * This will return all applications from the registry that are associated with * the given mime type string, if NULL it returns all applications. * * Returns: a list of the application IDs for all applications which * support the given mime type. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ GList * gnome_vfs_application_registry_get_applications (const char *mime_type) { GList *app_list, *app_list2, *retval, *li; char *supertype; retval = NULL; app_list2 = NULL; maybe_reload (); if (mime_type == NULL) { g_hash_table_foreach (global_applications, cb_application_collect, &retval); return retval; } if (gnome_vfs_mime_type_is_supertype (mime_type)) { app_list = g_hash_table_lookup (generic_mime_types, mime_type); } else { app_list = g_hash_table_lookup (specific_mime_types, mime_type); supertype = gnome_vfs_get_supertype_from_mime_type (mime_type); if (supertype != NULL) { app_list2 = g_hash_table_lookup (generic_mime_types, supertype); g_free (supertype); } } for (li = app_list; li != NULL; li = li->next) { Application *application = li->data; /* Note that this list is sorted so to kill duplicates * in app_list we only need to check the first entry */ if (retval == NULL || strcmp ((const char *) retval->data, application->app_id) != 0) retval = g_list_prepend (retval, application->app_id); } for (li = app_list2; li != NULL; li = li->next) { Application *application = li->data; if (g_list_find_custom (retval, application->app_id, (GCompareFunc) strcmp) == NULL) retval = g_list_prepend (retval, application->app_id); } return retval; } /** * gnome_vfs_application_registry_get_mime_types * @app_id: registry id of application * * This function returns a list of strings that represent the mime * types that can be handled by an application. * * Returns: a list of the mime types supported * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ GList * gnome_vfs_application_registry_get_mime_types (const char *app_id) { Application *application; GList *retval; g_return_val_if_fail (app_id != NULL, NULL); maybe_reload (); application = application_lookup (app_id); if (application == NULL) return NULL; retval = g_list_copy (application->mime_types); /* merge in the mime types from the user_application, * if it exists */ if (application->user_application) { GList *li; for (li = application->user_application->mime_types; li != NULL; li = li->next) { char *mimetype = li->data; if (g_list_find_custom (retval, mimetype, (GCompareFunc) strcmp) == NULL) retval = g_list_prepend (retval, mimetype); } } return retval; } /** * gnome_vfs_application_registry_supports_uri_scheme * @app_id: registry id of application * @uri_scheme: uri schme string * * Given the id of the application this function will determine if the * uri scheme will given is supported. * * Returns: TRUE if @app_id supports @uri_scheme, otherwise FALSE * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ gboolean gnome_vfs_application_registry_supports_uri_scheme (const char *app_id, const char *uri_scheme) { Application *application; gboolean uses_gnomevfs; g_return_val_if_fail (app_id != NULL, FALSE); g_return_val_if_fail (uri_scheme != NULL, FALSE); maybe_reload (); application = application_lookup (app_id); if (application == NULL) return FALSE; uses_gnomevfs = real_get_bool_value (application, GNOME_VFS_APPLICATION_REGISTRY_USES_GNOMEVFS, NULL); if (strcmp (uri_scheme, "file") == 0 && uses_gnomevfs == FALSE && application->supported_uri_schemes == NULL && application->user_application->supported_uri_schemes == NULL) { return TRUE; } /* check both the application and the user application * mime_types lists */ /* FIXME: This method does not allow a user to override and remove uri schemes that an application can handle. Is this an issue? */ if ((g_list_find_custom (application->supported_uri_schemes, /*glib is const incorrect*/(gpointer)uri_scheme, (GCompareFunc) strcmp) != NULL) || (application->user_application && g_list_find_custom (application->user_application->supported_uri_schemes, /*glib is const incorrect*/(gpointer) uri_scheme, (GCompareFunc) strcmp) != NULL)) { return TRUE; } /* check in the list of uris supported by gnome-vfs if necessary */ else if (uses_gnomevfs) { GList *supported_uris; gboolean res; supported_uris = _gnome_vfs_configuration_get_methods_list(); res = (g_list_find_custom(supported_uris, /*glib is const incorrect*/(gpointer) uri_scheme, (GCompareFunc) strcmp) != NULL); g_list_foreach(supported_uris, (GFunc) g_free, NULL); g_list_free(supported_uris); return res; } return FALSE; } /** * gnome_vfs_application_registry_supports_mime_type * @app_id: registry id of application * @mime_type: mime type string * * Use this function to see if there is an application associated with a given * mime type. The function will return true or false. * * Returns: TRUE if @app_id supports @mime_type, otherwise FALSE. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ gboolean gnome_vfs_application_registry_supports_mime_type (const char *app_id, const char *mime_type) { Application *application; g_return_val_if_fail (app_id != NULL, FALSE); g_return_val_if_fail (mime_type != NULL, FALSE); maybe_reload (); application = application_lookup (app_id); if (application == NULL) return FALSE; /* check both the application and the user application * mime_types lists */ /* FIXME: This method does not allow a user to override and remove mime types that an application can handle. Is this an issue? */ if ((g_list_find_custom (application->mime_types, /*glib is const incorrect*/(gpointer)mime_type, (GCompareFunc) strcmp) != NULL) || (application->user_application && g_list_find_custom (application->user_application->mime_types, /*glib is const incorrect*/(gpointer)mime_type, (GCompareFunc) strcmp) != NULL)) return TRUE; else return FALSE; } /* * Mime type functions * Note that mime_type can be a specific (image/png) or generic (image/) type */ /** * gnome_vfs_application_registry_clear_mime_types * @app_id: Application id * * This function will remove the mime types associated with the application. * Changes are not realized until the gnome_vfs_application_registry_sync * function is called to save the changes to the file. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ void gnome_vfs_application_registry_clear_mime_types (const char *app_id) { Application *application; g_return_if_fail (app_id != NULL); maybe_reload (); application = application_lookup_or_create (app_id, TRUE/*user_owned*/); application_clear_mime_types (application); user_file_dirty = TRUE; } /** * gnome_vfs_application_registry_add_mime_type * @app_id: registry id of application * @mime_type: mime type string * * This function will associate a mime type with an application given the * application registry id and the mime type. Changes are not realized until * the gnome_vfs_application_registry_sync function is called to save the * changes to the file. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ void gnome_vfs_application_registry_add_mime_type (const char *app_id, const char *mime_type) { Application *application; g_return_if_fail (app_id != NULL); g_return_if_fail (mime_type != NULL); maybe_reload (); application = application_lookup_or_create (app_id, TRUE/*user_owned*/); add_mime_type_to_application (application, mime_type); user_file_dirty = TRUE; } /** * gnome_vfs_application_registry_remove_mime_type * @app_id: registry id of the application * @mime_type: mime type string * * This function will de-associate a mime type from an application registry. * Given the application registry id and the mime type. Changes are not * realized until the gnome_vfs_application_registry_sync function is called to * save the changes to the file. * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ void gnome_vfs_application_registry_remove_mime_type (const char *app_id, const char *mime_type) { Application *application; g_return_if_fail (app_id != NULL); maybe_reload (); application = application_lookup_or_create (app_id, TRUE/*user_owned*/); remove_mime_type_for_application (application, mime_type); user_file_dirty = TRUE; } /* * Syncing to disk */ static void application_sync_foreach (gpointer key, gpointer value, gpointer user_data) { Application *application = value; FILE *fp = user_data; /* Only sync things that are user owned */ if (application->user_owned) application_sync (application, fp); else if (application->user_application) application_sync (application->user_application, fp); } /** * gnome_vfs_application_registry_sync * * This function will sync the registry. Typically you would use this function * after a modification of the registry. When you modify the registry a dirty * flag is set. Calling this function will save your modifications to disk and * reset the flag. * * If successful, will return GNOME_VFS_OK * * Returns: GnomeVFSResult * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ GnomeVFSResult gnome_vfs_application_registry_sync (void) { FILE *fp; char *file; time_t curtime; if ( ! user_file_dirty) return GNOME_VFS_OK; maybe_reload (); file = g_build_filename (user_registry_dir.dirname, "user.applications", NULL); fp = g_fopen (file, "w"); if ( ! fp) { g_warning ("Cannot open '%s' for writing", file); g_free (file); return gnome_vfs_result_from_errno (); } g_free (file); time(&curtime); fprintf (fp, "# This file is automatically generated by gnome-vfs " "application registry\n" "# Do NOT edit by hand\n# Generated: %s\n", ctime (&curtime)); if (global_applications != NULL) g_hash_table_foreach (global_applications, application_sync_foreach, fp); fclose (fp); user_file_dirty = FALSE; return GNOME_VFS_OK; } /** * gnome_vfs_application_registry_get_mime_application * @app_id: registry id of the application * * Returns a structure that contains the application that handles * the mime type associated by the application referred by app_id. * * Returns: GnomeVFSMimeApplication * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. * */ GnomeVFSMimeApplication * gnome_vfs_application_registry_get_mime_application (const char *app_id) { Application *i_application; GnomeVFSMimeApplication *application; gboolean uses_gnomevfs = FALSE; g_return_val_if_fail (app_id != NULL, NULL); maybe_reload (); i_application = application_lookup (app_id); if (i_application == NULL) return NULL; application = g_new0 (GnomeVFSMimeApplication, 1); application->id = g_strdup (app_id); application->name = g_strdup (real_peek_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_NAME)); application->command = g_strdup (real_peek_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_COMMAND)); application->can_open_multiple_files = real_get_bool_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES, NULL); application->expects_uris = i_application->expects_uris; application->supported_uri_schemes = supported_uri_scheme_list_copy (i_application->supported_uri_schemes); application->requires_terminal = real_get_bool_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL, NULL); uses_gnomevfs = real_get_bool_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_USES_GNOMEVFS, NULL); if (uses_gnomevfs) { GList *methods_list = _gnome_vfs_configuration_get_methods_list(); GList *l; if (application->expects_uris == GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS) { application->expects_uris = GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS; } for (l = methods_list; l != NULL; l = l->next) { if (g_list_find_custom (application->supported_uri_schemes, /*glib is const incorrect*/(gpointer) l->data, (GCompareFunc) strcmp) == NULL) { application->supported_uri_schemes = g_list_prepend(application->supported_uri_schemes, l->data); } else { g_free(l->data); } } g_list_free(methods_list); } return application; } /** * gnome_vfs_application_registry_save_mime_application * @application: application associated with the mime type * * This will save to the registry the application that will be associated with * a defined mime type. The defined mime type is located within the * GnomeVFSMimeApplication structure. Changes are not realized until the * gnome_vfs_application_registry_sync function is called. * * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. */ void gnome_vfs_application_registry_save_mime_application (const GnomeVFSMimeApplication *application) { Application *i_application; g_return_if_fail (application != NULL); /* make us a new user application */ i_application = application_lookup_or_create (application->id, TRUE); application_ref (i_application); set_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_NAME, application->name); set_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_COMMAND, application->command); set_bool_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES, application->can_open_multiple_files); i_application->expects_uris = application->expects_uris; set_bool_value (i_application, GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL, application->requires_terminal); /* FIXME: Need to save supported_uri_schemes information */ user_file_dirty = TRUE; } /** * gnome_vfs_application_is_user_owned_application * @application: data structure of the mime application * * This function will determine if a mime application is user owned or not. By * user ownered this means that the application is not a system application * located in the prerequisite /usr area but rather in the user's area. * * Returns: gboolean * * Deprecated: All application registry functions have been * deprecated. Use the functions available in gnome-mime-handlers * instead. */ gboolean gnome_vfs_application_is_user_owned_application (const GnomeVFSMimeApplication *application) { Application *i_application; g_return_val_if_fail (application != NULL, FALSE); /* make us a new user application */ i_application = g_hash_table_lookup (global_applications, application->id); if (i_application != NULL) { return i_application->user_owned; } return FALSE; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-async-ops.h0000644000175000001440000005524511334251016016727 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-async-ops.h - Asynchronous operations in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_ASYNC_OPS_H #define GNOME_VFS_ASYNC_OPS_H #include #include #include #include #include G_BEGIN_DECLS /** * GNOME_VFS_PRIORITY_MIN: * * The minimuum priority a job can have. **/ /** * GNOME_VFS_PRIORITY_MAX: * * The maximuum priority a job can have. **/ /** * GNOME_VFS_PRIORITY_DEFAULT: * * The default job priority. Its best to use this * unless you have a reason to do otherwise. **/ #define GNOME_VFS_PRIORITY_MIN -10 #define GNOME_VFS_PRIORITY_MAX 10 #define GNOME_VFS_PRIORITY_DEFAULT 0 typedef struct GnomeVFSAsyncHandle GnomeVFSAsyncHandle; /** * GnomeVFSAsyncCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @callback_data: user data defined when the callback was established * * Basic callback from an async operation that passes no data back, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data); /** * GnomeVFSAsyncOpenCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @callback_data: user data defined when the callback was established * * Callback for the gnome_vfs_async_open() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncOpenCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data); /** * GnomeVFSAsyncCreateCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @callback_data: user data defined when the callback was established * * Callback for the gnome_vfs_async_create() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncCreateCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data); /** * GnomeVFSAsyncCloseCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @callback_data: user data defined when the callback was established * * Callback for the gnome_vfs_async_close() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncCloseCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data); #ifndef GNOME_VFS_DISABLE_DEPRECATED /** * GnomeVFSAsyncOpenAsChannelCallback: * @handle: handle of the operation generating the callback. * @channel: a #GIOChannel corresponding to the file opened * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @callback_data: user data defined when the callback was established. * * Callback for the gnome_vfs_async_open_as_channel() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncOpenAsChannelCallback) (GnomeVFSAsyncHandle *handle, GIOChannel *channel, GnomeVFSResult result, gpointer callback_data); #endif #ifndef GNOME_VFS_DISABLE_DEPRECATED /** * GnomeVFSAsyncCreateAsChannelCallback: * @handle: handle of the operation generating the callback. * @channel: a #GIOChannel corresponding to the file created * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @callback_data: user data defined when the callback was established. * * Callback for the gnome_vfs_async_create_as_channel() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncCreateAsChannelCallback) (GnomeVFSAsyncHandle *handle, GIOChannel *channel, GnomeVFSResult result, gpointer callback_data); #endif /** * GnomeVFSAsyncReadCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @buffer: buffer containing data read from @handle. * @bytes_requested: the number of bytes asked for in the call to * gnome_vfs_async_read(). * @bytes_read: the number of bytes actually read from @handle into @buffer. * @callback_data: user data defined when the callback was established * * Callback for the gnome_vfs_async_read() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncReadCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer buffer, GnomeVFSFileSize bytes_requested, GnomeVFSFileSize bytes_read, gpointer callback_data); /** * GnomeVFSAsyncWriteCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @buffer: buffer containing data written to @handle. * @bytes_requested: the number of bytes asked to write in the call to * gnome_vfs_async_write(). * @bytes_written: the number of bytes actually written to @handle from @buffer. * @callback_data: user data defined when the callback was established. * * Callback for the gnome_vfs_async_write() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncWriteCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gconstpointer buffer, GnomeVFSFileSize bytes_requested, GnomeVFSFileSize bytes_written, gpointer callback_data); /** * GnomeVFSAsyncSeekCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise * an error code. * @callback_data: user data defined when the callback was established. * * Callback for the gnome_vfs_async_seek() function, * informing the user of the @result of the operation. **/ typedef void (* GnomeVFSAsyncSeekCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data); /** * GnomeVFSAsyncGetFileInfoCallback: * @handle: handle of the operation generating the callback * @results: #GList of #GnomeVFSFileInfoResult * items representing * the success of each gnome_vfs_get_file_info() and the data retrieved. * @callback_data: user data defined when the callback was established. * * Callback for the gnome_vfs_async_get_file_info() function, * informing the user of the @results of the operation. **/ typedef void (* GnomeVFSAsyncGetFileInfoCallback) (GnomeVFSAsyncHandle *handle, GList *results, gpointer callback_data); /** * GnomeVFSAsyncSetFileInfoCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise a * #GnomeVFSResult error code. * @file_info: if @result is %GNOME_VFS_OK, a #GnomeVFSFileInfo struct containing * information about the file. * @callback_data: user data defined when the callback was established * * Callback for the gnome_vfs_async_set_file_info() function, * informing the user of the @result of the operation and * returning the new @file_info. * * * * Setting the file info sometimes changes more information than the * caller specified; for example, if the name changes the MIME type might * change, and if the owner changes the SUID & SGID bits might change. * Therefore the callback returns the new @file_info for the caller's * convenience. The GnomeVFSFileInfoOptions passed here are those used * for the returned file info; they are not used when setting. * * **/ typedef void (* GnomeVFSAsyncSetFileInfoCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, GnomeVFSFileInfo *file_info, gpointer callback_data); /** * GnomeVFSAsyncDirectoryLoadCallback: * @handle: handle of the operation generating the callback. * @result: %GNOME_VFS_OK if the operation was sucessful, * %GNOME_VFS_ERROR_EOF if the last file in the directory * has been read, otherwise a #GnomeVFSResult error code * @list: a #GList of #GnomeVFSFileInfo structs representing * information about the files just loaded. * @entries_read: number of entries read from @handle for this instance of * the callback. * @callback_data: user data defined when the callback was established. * * Callback for the gnome_vfs_async_directory_load() function. * informing the user of the @result of the operation and * providing a file @list if the @result is %GNOME_VFS_OK. **/ typedef void (* GnomeVFSAsyncDirectoryLoadCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, GList *list, guint entries_read, gpointer callback_data); /** * GnomeVFSAsyncXferProgressCallback: * @handle: Handle of the Xfer operation generating the callback. * @info: Information on the current progress in the transfer. * @user_data: The user data that was passed to gnome_vfs_async_xfer(). * * This callback is passed to gnome_vfs_async_xfer() and should * be used for user interaction. That said, it serves two purposes: * Informing the user about the progress of the operation, and * making decisions. * * On the one hand, when the transfer progresses normally, * i.e. when the @info's status is %GNOME_VFS_XFER_PROGRESS_STATUS_OK * it is called periodically whenever new progress information * is available, and it wasn't called already within the last * 100 milliseconds. * * On the other hand, it is called whenever a decision is * requested from the user, i.e. whenever the @info's %status * is not %GNOME_VFS_XFER_PROGRESS_STATUS_OK. * * Either way, it acts like #GnomeVFSXferProgressCallback * would act in non-asynchronous mode. The differences in * invocation are explained in the gnome_vfs_async_xfer() * documentation. * * Returns: %gint depending on the #GnomeVFSXferProgressInfo. * Please consult #GnomeVFSXferProgressCallback for details. * **/ typedef gint (* GnomeVFSAsyncXferProgressCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSXferProgressInfo *info, gpointer user_data); /** * GnomeVFSFindDirectoryResult: * @uri: The #GnomeVFSURI that was found. * @result: The #GnomeVFSResult that was obtained when finding @uri. * * This structure is passed to a #GnomeVFSAsyncFindDirectoryCallback * by gnome_vfs_async_find_directory() and contains the information * associated with a single #GnomeVFSURI matching the specified * find request. **/ struct _GnomeVFSFindDirectoryResult { /*< public >*/ GnomeVFSURI *uri; GnomeVFSResult result; /*< private >*/ /* Reserved to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; }; typedef struct _GnomeVFSFindDirectoryResult GnomeVFSFindDirectoryResult; GType gnome_vfs_find_directory_result_get_type (void); GnomeVFSFindDirectoryResult* gnome_vfs_find_directory_result_dup (GnomeVFSFindDirectoryResult* result); void gnome_vfs_find_directory_result_free (GnomeVFSFindDirectoryResult* result); /** * GnomeVFSAsyncFindDirectoryCallback: * @handle: handle of the operation generating the callback * @results: #GList of #GnomeVFSFindDirectoryResult *s containing * special directories matching the find criteria. * @data: user data defined when the operation was established * * Callback for the gnome_vfs_async_find_directory() function, * informing the user of the @results of the operation. **/ typedef void (* GnomeVFSAsyncFindDirectoryCallback) (GnomeVFSAsyncHandle *handle, GList *results, gpointer data); /** * GnomeVFSAsyncFileControlCallback: * @handle: handle of the operation generating the callback * @result: %GNOME_VFS_OK if the operation was successful, otherwise a * #GnomeVFSResult error code. * @operation_data: The data requested from the module if @result * is %GNOME_VFS_OK. * @callback_data: User data defined when the operation was established. * * Callback for the gnome_vfs_async_find_directory() function. * informing the user of the @result of the operation, and * providing the requested @operation_data. **/ typedef void (* GnomeVFSAsyncFileControlCallback) (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer operation_data, gpointer callback_data); void gnome_vfs_async_cancel (GnomeVFSAsyncHandle *handle); void gnome_vfs_async_open (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data); void gnome_vfs_async_open_uri (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data); #ifndef GNOME_VFS_DISABLE_DEPRECATED void gnome_vfs_async_open_as_channel (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, guint advised_block_size, int priority, GnomeVFSAsyncOpenAsChannelCallback callback, gpointer callback_data); void gnome_vfs_async_open_uri_as_channel (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, guint advised_block_size, int priority, GnomeVFSAsyncOpenAsChannelCallback callback, gpointer callback_data); #endif /* GNOME_VFS_DISABLE_DEPRECATED */ void gnome_vfs_async_create (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data); void gnome_vfs_async_create_uri (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data); void gnome_vfs_async_create_symbolic_link (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, const gchar *uri_reference, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data); #ifndef GNOME_VFS_DISABLE_DEPRECATED void gnome_vfs_async_create_as_channel (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncCreateAsChannelCallback callback, gpointer callback_data); void gnome_vfs_async_create_uri_as_channel (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncCreateAsChannelCallback callback, gpointer callback_data); #endif /* GNOME_VFS_DISABLE_DEPRECATED */ void gnome_vfs_async_close (GnomeVFSAsyncHandle *handle, GnomeVFSAsyncCloseCallback callback, gpointer callback_data); void gnome_vfs_async_read (GnomeVFSAsyncHandle *handle, gpointer buffer, guint bytes, GnomeVFSAsyncReadCallback callback, gpointer callback_data); void gnome_vfs_async_write (GnomeVFSAsyncHandle *handle, gconstpointer buffer, guint bytes, GnomeVFSAsyncWriteCallback callback, gpointer callback_data); void gnome_vfs_async_seek (GnomeVFSAsyncHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSAsyncSeekCallback callback, gpointer callback_data); void gnome_vfs_async_get_file_info (GnomeVFSAsyncHandle **handle_return, GList *uri_list, GnomeVFSFileInfoOptions options, int priority, GnomeVFSAsyncGetFileInfoCallback callback, gpointer callback_data); void gnome_vfs_async_set_file_info (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSFileInfoOptions options, int priority, GnomeVFSAsyncSetFileInfoCallback callback, gpointer callback_data); void gnome_vfs_async_load_directory (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSFileInfoOptions options, guint items_per_notification, int priority, GnomeVFSAsyncDirectoryLoadCallback callback, gpointer callback_data); void gnome_vfs_async_load_directory_uri (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, guint items_per_notification, int priority, GnomeVFSAsyncDirectoryLoadCallback callback, gpointer callback_data); GnomeVFSResult gnome_vfs_async_xfer (GnomeVFSAsyncHandle **handle_return, GList *source_uri_list, GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, int priority, GnomeVFSAsyncXferProgressCallback progress_update_callback, gpointer update_callback_data, GnomeVFSXferProgressCallback progress_sync_callback, gpointer sync_callback_data); void gnome_vfs_async_find_directory (GnomeVFSAsyncHandle **handle_return, GList *near_uri_list, GnomeVFSFindDirectoryKind kind, gboolean create_if_needed, gboolean find_if_needed, guint permissions, int priority, GnomeVFSAsyncFindDirectoryCallback callback, gpointer user_data); void gnome_vfs_async_file_control (GnomeVFSAsyncHandle *handle, const char *operation, gpointer operation_data, GDestroyNotify operation_data_destroy_func, GnomeVFSAsyncFileControlCallback callback, gpointer callback_data); G_END_DECLS #endif /* GNOME_VFS_ASYNC_OPS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-standard-callbacks.h0000644000175000001440000010221311334251016020514 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* Copyright (C) 2001 Eazel, Inc Copyright (C) 2002 Seth Nickell The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Michael Fleming Seth Nickell */ #ifndef GNOME_VFS_STANDARD_CALLBACKS_H #define GNOME_VFS_STANDARD_CALLBACKS_H #include #include G_BEGIN_DECLS /* * defined callback structures */ /** * GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION: * * A module callback name used together with gnome_vfs_module_callback_invoke() to * ask the user for login data. This includes username and password, but also * special login choices like anonymous login. * * * in arg : * * * A #GnomeVFSModuleCallbackFullAuthenticationIn * passed to the application, * specifying the authentication request. * * * * out arg : * * * A #GnomeVFSModuleCallbackFullAuthenticationOut * passing the user's * provided authentication data (i.e. his username/password etc.) back to the module. * * * * */ #define GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION "full-authentication" /** * GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION: * * A module callback name used together with gnome_vfs_module_callback_invoke() to * ask the keyring manager for login data. It is expected to return stored or cached * login data, but may not query the user. * * The login data consists of a username, a password and a domain, and is used to * access a resource. If the data is not suitable for accessing the resource, the * #GnomeVFSModule typically issues a #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION * module callback to query the user right after the authentication failed. * * * in arg : * * * A #GnomeVFSModuleCallbackFillAuthenticationIn * passed to the application, * specifying the authentication request. The application will usually proxy this * request to the keyring manager of the desktop environment, but it can also handle * the request itself. * * * * out arg : * * * A #GnomeVFSModuleCallbackFillAuthenticationOut * passing the cached * keyring data (i.e. username/password etc.) back to the module. Usually, * this is data that was stored using #GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, * and is either stored permanently on disk or cached. * * * * **/ #define GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION "fill-authentication" /** * GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION: * * A module callback name used together with gnome_vfs_module_callback_invoke() to * request permanent or temporary storage of login data. The storage is typically * done using a keyring manager. * * Called after a successfull authentication, to allow the client to e.g. * store the password for future use. It may be queried again within the * current session (temporary storage) or in future sessions (permanent * storage) using #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION. * * This is typically called after the user provided login data with * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION. * * * in arg : * * * A #GnomeVFSModuleCallbackSaveAuthenticationIn * specifying the login data. * * * * out arg : * * * A #GnomeVFSModuleCallbackSaveAuthenticationOut * (unused). * * * * */ #define GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION "save-authentication" #ifndef GNOME_VFS_DISABLE_DEPRECATED /** * GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION * * A module callback name formerly used together with gnome_vfs_module_callback_invoke(). * * Formerly called when access to a URI requires a username/password. * * * in arg : * * * A #GnomeVFSModuleCallbackAuthenticationIn *. * * * * out arg : * * * A #GnomeVFSModuleCallbackAuthenticationOut *. * * * * * * Deprecated: Modules should use #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION * and #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION. */ #define GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION "simple-authentication" /** * GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION: * * A module callback name formerly used together with gnome_vfs_module_callback_invoke() * to ask the user for HTTP proxy login data. It works exactly like * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, and used to be kept separate to * allow applications to distinguish proxy authentication from actual server * authentication, so that the wording of the interface could be adapted. * * Formerly called when access to an HTTP proxy required a username/password. * * * in arg : * * * A #GnomeVFSModuleCallbackAuthenticationIn *. * * * * out arg : * * * A #GnomeVFSModuleCallbackAuthenticationOut *. * * * * * * Deprecated: Proxy authentication now works desktop-wide through GConf. **/ #define GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION "http:proxy-authentication" #endif /* GNOME_VFS_DISABLE_DEPRECATED */ /** * GNOME_VFS_MODULE_CALLBACK_QUESTION: * * A module callback name used together with gnome_vfs_module_callback_invoke() to * ask the user a question. * * Called when access to a URI requires the user to make a choice. * * * in arg : * * * A #GnomeVFSModuleCallbackFullAuthenticationIn * passed to the application, * * * * out arg : * * * specifying the proxy authentication request. * A #GnomeVFSModuleCallbackFullAuthenticationOut * passing the user's * provided proxy authentication data (i.e. his username/password) back to the module. * * * * */ #define GNOME_VFS_MODULE_CALLBACK_QUESTION "ask-question" /** * GnomeVFSModuleCallbackFillAuthenticationIn: * @uri: The textual URI of the resource that requires authentication. * @protocol: One of the protocols supported by the invoking module. * Typically matches @uri's protocol. * @server: The server that contains the resource that requires authentication. * Typically matches @uri's hostname. * @object: The type of the resource that requires authentication. * @port: The port that was used to connect to @server. 0 means unset. * @authtype: The type of authentication that was requested. For the * HTTP method, this may be "basic" or "proxy". For the SFTP method, * this may be "publickey" or "password". * @username: The username that was used to connect to @server. * @domain: The domain that @server belongs to (only used by the SMB method). * * A pointer to a #GnomeVFSModuleCallbackFillAuthenticationIn structure is passed to the * #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION callback, and informs the application * about the authentication parameters that should be requested from the user. * * The #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION application callback will then set * the members of a pointer to a #GnomeVFSModuleCallbackFillAuthenticationOut structure * according to the stored or cached data. **/ typedef struct { /*< public >*/ char *uri; char *protocol; char *server; char *object; int port; char *authtype; char *username; char *domain; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackFillAuthenticationIn; /** * GnomeVFSModuleCallbackFillAuthenticationOut: * @valid: Whether stored or cached login data was found for the resource referenced by * the #GnomeVFSModuleCallbackFillAuthenticationIn structure. * @username: The cached username that should be used to access the resource. * This will be freed by the module when it isn't needed any longer. May only * be set if @valid is %TRUE. * @password: The cached password that should be used to access the resource. * This will be freed by the module when it isn't needed any longer. May only * be set if @valid is %TRUE. * @domain: The cached domain that should be used to access the resource. * This will be freed by the module when it isn't needed any longer. May only * be set if @valid is %TRUE. * * A pointer to a #GnomeVFSModuleCallbackFillAuthenticationOut structure is passed to the * #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION callback, and informs the module * about the authentication parameters that were found in the cache or permanently stored. * * The login data returned by #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION was usually * previously stored using ##GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION. **/ typedef struct { /*< public >*/ gboolean valid; char *username; char *domain; char *password; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackFillAuthenticationOut; /** * GnomeVFSModuleCallbackFullAuthenticationFlags: * @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED: This is not the first login attempt, * i.e. this callback was already invoked but the provided login data was not suitable for a successful login. * @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD: The application should ask the user for * a password and set the @password field of #GnomeVFSModuleCallbackFullAuthenticationOut. * @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME: The application should ask the user for * a username and set the @username field of #GnomeVFSModuleCallbackFullAuthenticationOut. * @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN: The application should ask the user for * a domain and set the @domain field of #GnomeVFSModuleCallbackFullAuthenticationOut. * @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED: The application may ask the user * whether he wants to save the password. If this flag is not present, or the user does not want to * save the password, the application must set the @save_password field of #GnomeVFSModuleCallbackFullAuthenticationOut * to %FALSE and its keyring field to %NULL. If the @save_password field is %TRUE, the module invoking * the #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback is expected to invoke the * #GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION callback if the login attempt was successful with * the @username, @password, @domain and @keyring fields of #GnomeVFSModuleCallbackFullAuthenticationOut. * @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED: The application * should offer the user a choice to login anonymously (used for example by the FTP module). * If the user requests anonymous login, #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED * must be set in the @out_flags field of #GnomeVFSModuleCallbackFullAuthenticationOut. * * These flags will be passed to the #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback, * as part of the #GnomeVFSModuleCallbackFullAuthenticationIn structure. The output data * will be stored in a #GnomeVFSModuleCallbackFullAuthenticationOut structure. **/ typedef enum { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_PREVIOUS_ATTEMPT_FAILED = 1<<0, GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD = 1<<1, GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME = 1<<2, GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN = 1<<3, GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED = 1<<4, GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED = 1<<5 } GnomeVFSModuleCallbackFullAuthenticationFlags; /** * GnomeVFSModuleCallbackFullAuthenticationIn: * @flags: #GnomeVFSModuleCallbackFullAuthenticationFlags influencing the user query. * @uri: The textual URI of the resource that requires authentication. * @protocol: One of the protocols supported by the invoking module. Typically matches @uri's protocol. * @server: The server that contains the resource that requires authentication. Typically matches @uri's hostname. * @object: The type of the resource that requires authentication. * @port: The port that was used to connect to @server. 0 means unset. * @authtype: The type of authentication that was requested. For the * HTTP method, this may be "basic" or "proxy". For the SFTP method, * this may be "publickey" or "password". * @username: The username that was used to connect to @server. This variable * should just be used for display purposes, i.e. like You were trying * to access foo@bar.com where foo is the @username and bar.com is the * @server. Do not make the contents of the #GnomeVFSModuleCallbackFullAuthenticationOut * output variables depend on the value of this variable. If you want to handle * absence of user input, pass back @default_user instead. * @domain: The domain that @server belongs to (only used by the SMB method). * This variable should just be used for display purposes where foo is the @username * and bar.com is the @server. Do not make the contents of the * #GnomeVFSModuleCallbackFullAuthenticationOut output variables depend on the value * of this variable. If you want to handle absence of user input, pass back * @default_domain instead. * @default_user: The username that should be provided to the user by default. * Typically matches @username. * @default_domain: The domain that should be provided to the user by default. * Typically matches @domain. * * A pointer to a #GnomeVFSModuleCallbackFullAuthenticationIn structure is passed to the * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback, and informs the application * about the authentication parameters that should be requested from the user. * * The #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION application callback will then set * the members of a pointer to a #GnomeVFSModuleCallbackFullAuthenticationOut structure * according to the user input. **/ typedef struct { /*< public >*/ GnomeVFSModuleCallbackFullAuthenticationFlags flags; char *uri; char *protocol; char *server; char *object; int port; char *authtype; char *username; char *domain; /* for pre-filling the dialog */ char *default_user; char *default_domain; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackFullAuthenticationIn; /** * GnomeVFSModuleCallbackFullAuthenticationOutFlags: * @GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED: Anonymous login requested. * May only be set if the #GnomeVFSModuleCallbackFullAuthenticationIn's * #GnomeVFSModuleCallbackFullAuthenticationFlags contain * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED. * * These flags will be passed from a #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback * back to the module, as part of the #GnomeVFSModuleCallbackFullAuthenticationOut structure. **/ typedef enum { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED = 1<<0 } GnomeVFSModuleCallbackFullAuthenticationOutFlags; /** * GnomeVFSModuleCallbackFullAuthenticationOut: * @abort_auth: Whether the user somehow cancelled the login process. The application * is expected to offer the user a cancellation point during the authentication query. * In a graphical user interface, this is typically achieved by providing a "Cancel" * button. * @username: The user-provided username that should be used to access the resource * referenced by #GnomeVFSModuleCallbackFullAuthenticationIn. This will be freed by * the module when it isn't needed any longer. Must not be set if the * #GnomeVFSModuleCallbackFullAuthenticationFlags don't contain * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME. * @domain: The user-provided domain that should be used to access the resource * referenced by #GnomeVFSModuleCallbackFullAuthenticationIn. This will be freed by * the module when it isn't needed any longer. Must not be set if the * #GnomeVFSModuleCallbackFullAuthenticationFlags don't contain * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN. * @password: The user-provided password that should be used to access the resource * referenced by #GnomeVFSModuleCallbackFullAuthenticationIn. This will be freed by * the module when it isn't needed any longer. Must not be set if the * #GnomeVFSModuleCallbackFullAuthenticationFlags don't contain * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSOWRD. * @save_password: Flags whether the user requested to save the provided login * data. Must be %FALSE if the #GnomeVFSModuleCallbackFullAuthenticationFlags * don't contain #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_SAVING_SUPPORTED. * @keyring: Flags which keyring should be used to save the password. This will * later be passed to the #GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION callback * if the login attempt was successful with the specified @username, @password and * @domain. This will NOT be freed by the module, so the application typically * provides a %NULL pointer or a pointer to a static string. * @out_flags: #GnomeVFSModuleCallbackFullAuthenticationOutFlags signalling a special request, for instance * anonymous access to an FTP server. * * A pointer to a #GnomeVFSModuleCallbackFullAuthenticationOut structure is passed to the * #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback, and informs the module * about the authentication parameters that the user provided by setting the respective * fields according to the user input and the passed-in #GnomeVFSModuleCallbackFullAuthenticationIn * pointer. **/ typedef struct { /*< public >*/ gboolean abort_auth; char *username; char *domain; char *password; gboolean save_password; char *keyring; gsize out_flags; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved2; } GnomeVFSModuleCallbackFullAuthenticationOut; /** * GnomeVFSModuleCallbackSaveAuthenticationIn: * @keyring: Keyring provided by #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callback. * @uri: The textual URI of the resource that is accessed. * @protocol: One of the protocols supported by the invoking module. * Typically matches @uri's protocol. * @server: The server that contains the resource that is accessed. * Typically matches @uri's hostname. * @object: The type of the resource that is accessed. * @port: The port that was used to connect to @server. 0 means unset. * @authtype: The type of authentication that was requested. For the * HTTP method, this may be "basic" or "proxy". For the SFTP method, * this may be "publickey" or "password". * @username: The username that was used to connect to @server. * @domain: The domain that @server belongs to (only used by the SMB method). * @password: The password that was used to connect to @server. * * A #GnomeVFSModuleCallbackSaveAuthenticatioIn pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION application callback, * and specifies the login data that should be stored permanently on * disk or temporarily cached. * * This data may be queried in future sessions (permanent storage) or within * the current session (temporary storage) using * #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION. **/ typedef struct { /*< public >*/ char *keyring; char *uri; char *protocol; char *server; char *object; int port; char *authtype; char *username; char *domain; char *password; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackSaveAuthenticationIn; /** * GnomeVFSModuleCallbackSaveAuthenticationOut: * * A #GnomeVFSModuleCallbackSaveAuthenticationOut pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION application callback, * and is reserved for future use. Applications are not expected * to modify this data, because its interpretation might change * in the future. **/ typedef struct { /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackSaveAuthenticationOut; #ifndef GNOME_VFS_DISABLE_DEPRECATED /** * GnomeVFSModuleCallbackAuthenticationAuthType: * @AuthTypeBasic: transmit password unencrypted. * @AuthTypeDigest: transmit digest instead of plaintext credentials. * * This defines the possible values of the #GnomeVFSModuleCallbackAuthenticationIn's * %auth_type field. * * Deprecated: Modules should use #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION * and #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION. **/ typedef enum { AuthTypeBasic, AuthTypeDigest } GnomeVFSModuleCallbackAuthenticationAuthType; /** * GnomeVFSModuleCallbackAuthenticationIn: * @uri: The textual URI of the resource that requires authentication. * @realm: "auth" for HTTP, %NULL for others. * @previous_attempt_failed: %TRUE if there already was login data * specified for this request, but the login failed. %FALSE if no * previous login attempt has been made right before this one. * @auth_type: Whether the login data will be transmitted in plaintext or encrypted. * * A pointer to a #GnomeVFSModuleCallbackAuthenticationIn structure that used to be * passed to the #GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION callback, and informed * the application about the authentication parameters that should be requested. * * Deprecated: Modules should use #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION * and #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION. **/ typedef struct { /*< public >*/ char *uri; char *realm; gboolean previous_attempt_failed; GnomeVFSModuleCallbackAuthenticationAuthType auth_type; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackAuthenticationIn; #endif /* GNOME_VFS_DISABLE_DEPRECATED */ #ifndef GNOME_VFS_DISABLE_DEPRECATED /** * GnomeVFSModuleCallbackAuthenticationOut: * @username: The username that should be used to access the resource * referenced by #GnomeVFSModuleCallbackFullAuthenticationIn, or %NULL * if no data was provided. This will be freed by the module when it * isn't needed any longer. * @password: The password that should be used to access the resource * referenced by #GnomeVFSModuleCallbackFullAuthenticationIn. This will * be freed by the module when it isn't needed any longer. * * A pointer to a #GnomeVFSModuleCallbackAuthenticationOut structure that used to be * passed to the #GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION callback, and was * used to pass the login data back to the module. * * Deprecated: Modules should use #GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION * and #GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION. **/ typedef struct { /*< public >*/ char *username; char *password; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackAuthenticationOut; #endif /* GNOME_VFS_DISABLE_DEPRECATED */ /** * GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS: * * A module callback name used together with gnome_vfs_module_callback_invoke() to * request additional HTTP headers. * * Called before sending headers to an HTTP server. Client applications can add * additional headers. * * * in arg : * * * A #GnomeVFSModuleCallbackAdditionalHeadersIn * identifying the resource. * * * * out arg : * * * A #GnomeVFSModuleCallbackAdditionalHeadersOut * allowing to add headers * to the request. * * * * **/ #define GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS "http:send-additional-headers" /** * GnomeVFSModuleCallbackAdditionalHeadersIn: * @uri: A #GnomeVFSURI identifying the resource of the currently pending request. * * A #GnomeVFSModuleCallbackAdditionalHeadersIn pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS application * callback, to inform it about a pending HTTP request and allow it to * add additional headers. **/ typedef struct { /*< public >*/ GnomeVFSURI *uri; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackAdditionalHeadersIn; /** * GnomeVFSModuleCallbackAdditionalHeadersOut: * @headers: A #GList of strings, each of them is an additional header that * is added to the HTTP request. @headers and all its strings will be freed * by the module when they aren't needed any longer. * * A #GnomeVFSModuleCallbackAdditionalHeadersOut pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_HTTP_SEND_ADDITIONAL_HEADERS application * callback, to store the headers the application wants to add to * a pending HTTP request. **/ typedef struct { /*< public >*/ GList *headers; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackAdditionalHeadersOut; /** * GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS: * * A module callback name used together with gnome_vfs_module_callback_invoke() to * inform an application about the delivery of a HTTP request. * * #GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS is called after * receiving HTTP headers from a server that belonged to a HTTP * request that was issued by the application and allows the * application to analyze the returned headers. * * * in arg : * * * A #GnomeVFSModuleCallbackReceivedHeadersIn *. * * * * out arg : * * * A #GnomeVFSModuleCallbackReceivedHeadersOut * (not used). * * * * */ #define GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS "http:received-headers" /** * GnomeVFSModuleCallbackReceivedHeadersIn: * @uri: A #GnomeVFSURI identifying the resource of the currently delivered request. * @headers: A #GList of strings, each of them is a header that was received when * delivering the HTTP request. @headers and all its strings will be freed * by the module when they aren't needed any longer. * * A #GnomeVFSModuleCallbackReceivedHeadersIn pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS application * callback, to inform it about a delivered HTTP request and allow * it to analyze the returned headers. **/ typedef struct { /*< public >*/ GnomeVFSURI *uri; GList *headers; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackReceivedHeadersIn; /** * GnomeVFSModuleCallbackReceivedHeadersOut: * @dummy: unused. * * A #GnomeVFSModuleCallbackReceivedHeadersOut pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_HTTP_RECEIVED_HEADERS application * callback, and is reserved for future use. Applications are not * expected to modify this data, because its interpretation might * change in the future. **/ typedef struct { /*< public >*/ int dummy; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackReceivedHeadersOut; /** * GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE: * * A module callback name used together with gnome_vfs_module_callback_invoke() to * inform the user about an ongoing operation. * * Called when a #GnomeVFSModule has a status message to return to the user. * * * in arg : * * * A #GnomeVFSModuleCallbackStatusMessageIn * containing the message to present to the user. * * * * out arg : * * * A #GnomeVFSModuleCallbackStatusMessageOut * (not used). * * * * **/ #define GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE "status-message" /** * GnomeVFSModuleCallbackStatusMessageIn: * @uri: The textual URI the status message refers to. * @message: The message the application should display to the user, * indicating the current state, or it is %NULL. * @percentage: The percentage indicating the completeness of * a currently pending operation on @uri (1-100), or -1 if there * is no progress percentage to report. * * A #GnomeVFSModuleCallbackStatusMessageIn pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE application callback, * to inform it about the progress and/or status of an ongoing operation. **/ typedef struct { /*< public >*/ char *uri; char *message; int percentage; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackStatusMessageIn; /** * GnomeVFSModuleCallbackStatusMessageOut: * @dummy: unused. * * A #GnomeVFSModuleCallbackStatusMessageOut pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_STATUS_MESSAGE application callback, * and is reserved for future use. Applications are not expected * to modify this data, because its interpretation might change * in the future. **/ typedef struct { /*< public >*/ /* empty structs not allowed */ int dummy; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackStatusMessageOut; /** * GnomeVFSModuleCallbackQuestionIn: * @primary_message: A short message explaining the question to the user, * or %NULL if there is no message. * @secondary_message: The long version of the message, containing more * details, or %NULL if there is no message. * @choices: %NULL-terminated string list of choices the user has to choose from. * The first item in the list should be affermative, and will be put on the right * in a GUI dialog. * * A #GnomeVFSModuleCallbackQuestionIn pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_QUESTION application callback. * Applications are expected to request a decision from the * user, and store the answer in a #GnomeVFSModuleCallbackQuestionOut * structure. **/ typedef struct { /*< public >*/ char *primary_message; char *secondary_message; char **choices; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackQuestionIn; /** * GnomeVFSModuleCallbackQuestionOut: * @answer: The index of the answer the user picked. Matches the base * pointer address of the user's choice in #GnomeVFSModuleCallbackQuestionIn, * i.e. its index in choices, where the first choice has index %0. * * A #GnomeVFSModuleCallbackQuestionOut pointer is passed to a * #GNOME_VFS_MODULE_CALLBACK_QUESTION application callback, and * is used by applications to store the user's decision. **/ typedef struct { /*< public >*/ int answer; /*< private >*/ /* Reserved "padding" to avoid future breaks in ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSModuleCallbackQuestionOut; G_END_DECLS #endif /* GNOME_VFS_STANDARD_CALLBACKS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-resolve.h0000644000175000001440000000310411334251016016455 00000000000000/* gnome-vfs-resolve.h - Resolver API * * Copyright (C) 2004 Christian Kellner * * The Gnome 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. * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_RESOLVE_H #define GNOME_VFS_RESOLVE_H #include #include G_BEGIN_DECLS typedef struct GnomeVFSResolveHandle_ GnomeVFSResolveHandle; GnomeVFSResult gnome_vfs_resolve (const char *hostname, GnomeVFSResolveHandle **handle); gboolean gnome_vfs_resolve_next_address (GnomeVFSResolveHandle *handle, GnomeVFSAddress **address); void gnome_vfs_resolve_reset_to_beginning (GnomeVFSResolveHandle *handle); void gnome_vfs_resolve_free (GnomeVFSResolveHandle *handle); G_END_DECLS #endif /* ! GNOME_VFS_RESOLVE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-private-utils.h0000644000175000001440000001047411334251016017616 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-private-utils.h - Private utility functions for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_PRIVATE_UTILS_H #define GNOME_VFS_PRIVATE_UTILS_H /* You should not use calls in here outside GnomeVFS. The APIs in here may * break even when the GnomeVFS APIs are otherwise frozen. */ #include #include #include #ifdef G_OS_WIN32 #include #undef GNOME_VFS_DATADIR extern char *_gnome_vfs_datadir; #define GNOME_VFS_DATADIR _gnome_vfs_datadir #undef GNOME_VFS_LIBDIR extern char *_gnome_vfs_libdir; #define GNOME_VFS_LIBDIR _gnome_vfs_libdir #undef GNOME_VFS_PREFIX extern char *_gnome_vfs_prefix; #define GNOME_VFS_PREFIX _gnome_vfs_prefix #undef GNOME_VFS_LOCALEDIR extern char *_gnome_vfs_localedir; #define GNOME_VFS_LOCALEDIR _gnome_vfs_localedir #undef GNOME_VFS_SYSCONFDIR extern char *_gnome_vfs_sysconfdir; #define GNOME_VFS_SYSCONFDIR _gnome_vfs_sysconfdir #endif G_BEGIN_DECLS gboolean _gnome_vfs_have_ipv6 (void); gchar *_gnome_vfs_canonicalize_pathname (char *path); GnomeVFSResult gnome_vfs_remove_optional_escapes (char *escaped_uri); GnomeVFSResult gnome_vfs_create_temp (const gchar *prefix, gchar **name_return, GnomeVFSHandle **handle_return); gboolean gnome_vfs_atotm (const gchar *time_string, time_t *value_return); GnomeVFSURI *gnome_vfs_uri_new_private (const gchar *text_uri, gboolean allow_unknown_method, gboolean allow_unsafe_method, gboolean allow_translate); gboolean _gnome_vfs_istr_has_prefix (const char *haystack, const char *needle); gboolean _gnome_vfs_istr_has_suffix (const char *haystack, const char *needle); GnomeVFSResult _gnome_vfs_uri_resolve_all_symlinks_uri (GnomeVFSURI *uri, GnomeVFSURI **result_uri); GnomeVFSResult _gnome_vfs_uri_resolve_all_symlinks (const char *text_uri, char **resolved_text_uri); char * gnome_vfs_resolve_symlink (const char *path, const char *symlink); gboolean _gnome_vfs_uri_is_in_subdir (GnomeVFSURI *uri, GnomeVFSURI *dir); GnomeVFSResult _gnome_vfs_url_show_using_handler_with_env (const char *url, char **envp); gboolean _gnome_vfs_use_handler_for_scheme (const char *scheme); gboolean _gnome_vfs_prepend_terminal_to_vector (int *argc, char ***argv); gboolean _gnome_vfs_socket_set_blocking (int sock_fd, gboolean blocking); int _gnome_vfs_pipe (int *fds); gboolean _gnome_vfs_pipe_set_blocking (int pipe_fd, gboolean blocking); #ifdef G_OS_WIN32 void _gnome_vfs_map_winsock_error_to_errno (void); const char *_gnome_vfs_winsock_strerror (int error); #define _GNOME_VFS_SOCKET_IS_ERROR(s) ((s) == SOCKET_ERROR) #define _GNOME_VFS_SOCKET_CLOSE(s) closesocket(s) #define _GNOME_VFS_SOCKET_READ(s,b,n) recv(s,b,n,0) #define _GNOME_VFS_SOCKET_WRITE(s,b,n) send(s,b,n,0) #else #define _GNOME_VFS_SOCKET_IS_ERROR(s) ((s) < 0) #define _GNOME_VFS_SOCKET_CLOSE(s) close(s) #define _GNOME_VFS_SOCKET_READ(s,b,n) read(s,b,n) #define _GNOME_VFS_SOCKET_WRITE(s,b,n) write(s,b,n) #endif G_END_DECLS #endif /* _GNOME_VFS_PRIVATE_UTILS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-job-limit.h0000644000175000001440000000245111334251016016670 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-job-limit.h - Job queue limit manipulation for asynchronous operations of the GNOME Virtual File System (version for POSIX threads). Copyright (C) 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Laszlo Peter */ #ifndef GNOME_VFS_JOB_LIMIT_H #define GNOME_VFS_JOB_LIMIT_H void gnome_vfs_async_set_job_limit (int limit); int gnome_vfs_async_get_job_limit (void); #endif /* GNOME_VFS_JOB_LIMIT_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-callback-module-api.c0000644000175000001440000000010611334251016022041 00000000000000#include #include "gnome-vfs-module-callback-module-api.h" gnome-vfs-2.24.4/libgnomevfs/xdgmimealias.h0000644000175000001440000000410011334251016015540 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimealias.h: Private file. Datastructure for storing the aliases. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 200 Matthias Clasen * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_ALIAS_H__ #define __XDG_MIME_ALIAS_H__ #include "xdgmime.h" typedef struct XdgAliasList XdgAliasList; #ifdef XDG_PREFIX #define _xdg_mime_alias_read_from_file XDG_RESERVED_ENTRY(alias_read_from_file) #define _xdg_mime_alias_list_new XDG_RESERVED_ENTRY(alias_list_new) #define _xdg_mime_alias_list_free XDG_RESERVED_ENTRY(alias_list_free) #define _xdg_mime_alias_list_lookup XDG_RESERVED_ENTRY(alias_list_lookup) #define _xdg_mime_alias_list_dump XDG_RESERVED_ENTRY(alias_list_dump) #endif void _xdg_mime_alias_read_from_file (XdgAliasList *list, const char *file_name); XdgAliasList *_xdg_mime_alias_list_new (void); void _xdg_mime_alias_list_free (XdgAliasList *list); const char *_xdg_mime_alias_list_lookup (XdgAliasList *list, const char *alias); void _xdg_mime_alias_list_dump (XdgAliasList *list); #endif /* __XDG_MIME_ALIAS_H__ */ gnome-vfs-2.24.4/libgnomevfs/xdgmimeparent.c0000644000175000001440000001131411334251016015740 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimealias.c: Private file. Datastructure for storing the hierarchy. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 2004 Matthias Clasen * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "xdgmimeparent.h" #include "xdgmimeint.h" #include #include #include #include #include #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif typedef struct XdgMimeParents XdgMimeParents; struct XdgMimeParents { char *mime; char **parents; int n_parents; }; struct XdgParentList { struct XdgMimeParents *parents; int n_mimes; }; XdgParentList * _xdg_mime_parent_list_new (void) { XdgParentList *list; list = malloc (sizeof (XdgParentList)); list->parents = NULL; list->n_mimes = 0; return list; } void _xdg_mime_parent_list_free (XdgParentList *list) { int i; char **p; if (list->parents) { for (i = 0; i < list->n_mimes; i++) { for (p = list->parents[i].parents; *p; p++) free (*p); free (list->parents[i].parents); free (list->parents[i].mime); } free (list->parents); } free (list); } static int parent_entry_cmp (const void *v1, const void *v2) { return strcmp (((XdgMimeParents *)v1)->mime, ((XdgMimeParents *)v2)->mime); } const char ** _xdg_mime_parent_list_lookup (XdgParentList *list, const char *mime) { XdgMimeParents *entry; XdgMimeParents key; if (list->n_mimes > 0) { key.mime = (char *)mime; key.parents = NULL; entry = bsearch (&key, list->parents, list->n_mimes, sizeof (XdgMimeParents), &parent_entry_cmp); if (entry) return (const char **)entry->parents; } return NULL; } void _xdg_mime_parent_read_from_file (XdgParentList *list, const char *file_name) { FILE *file; char line[255]; int i, alloc; XdgMimeParents *entry; file = fopen (file_name, "r"); if (file == NULL) return; /* FIXME: Not UTF-8 safe. Doesn't work if lines are greater than 255 chars. * Blah */ alloc = list->n_mimes + 16; list->parents = realloc (list->parents, alloc * sizeof (XdgMimeParents)); while (fgets (line, 255, file) != NULL) { char *sep; if (line[0] == '#') continue; sep = strchr (line, ' '); if (sep == NULL) continue; *(sep++) = '\000'; sep[strlen (sep) -1] = '\000'; entry = NULL; for (i = 0; i < list->n_mimes; i++) { if (strcmp (list->parents[i].mime, line) == 0) { entry = &(list->parents[i]); break; } } if (!entry) { if (list->n_mimes == alloc) { alloc <<= 1; list->parents = realloc (list->parents, alloc * sizeof (XdgMimeParents)); } list->parents[list->n_mimes].mime = strdup (line); list->parents[list->n_mimes].parents = NULL; entry = &(list->parents[list->n_mimes]); list->n_mimes++; } if (!entry->parents) { entry->n_parents = 1; entry->parents = malloc ((entry->n_parents + 1) * sizeof (char *)); } else { entry->n_parents += 1; entry->parents = realloc (entry->parents, (entry->n_parents + 2) * sizeof (char *)); } entry->parents[entry->n_parents - 1] = strdup (sep); entry->parents[entry->n_parents] = NULL; } list->parents = realloc (list->parents, list->n_mimes * sizeof (XdgMimeParents)); fclose (file); if (list->n_mimes > 1) qsort (list->parents, list->n_mimes, sizeof (XdgMimeParents), &parent_entry_cmp); } void _xdg_mime_parent_list_dump (XdgParentList *list) { int i; char **p; if (list->parents) { for (i = 0; i < list->n_mimes; i++) { for (p = list->parents[i].parents; *p; p++) printf ("%s %s\n", list->parents[i].mime, *p); } } } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-cancellable-ops.h0000644000175000001440000001251611334251016020031 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-private-ops.h - Private synchronous operations for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_CANCELLABLE_OPS_H #define GNOME_VFS_CANCELLABLE_OPS_H #include #include #include #include G_BEGIN_DECLS GnomeVFSResult gnome_vfs_open_uri_cancellable (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_create_uri_cancellable (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_close_cancellable (GnomeVFSHandle *handle, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_read_cancellable (GnomeVFSHandle *handle, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_write_cancellable (GnomeVFSHandle *handle, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_seek_cancellable (GnomeVFSHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_get_file_info_uri_cancellable (GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_get_file_info_from_handle_cancellable (GnomeVFSHandle *handle, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_truncate_uri_cancellable (GnomeVFSURI *uri, GnomeVFSFileSize length, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_truncate_handle_cancellable (GnomeVFSHandle *handle, GnomeVFSFileSize length, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_make_directory_for_uri_cancellable (GnomeVFSURI *uri, guint perm, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_find_directory_cancellable (GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_remove_directory_from_uri_cancellable (GnomeVFSURI *uri, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_unlink_from_uri_cancellable (GnomeVFSURI *uri, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_create_symbolic_link_cancellable (GnomeVFSURI *uri, const gchar *target_reference, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_move_uri_cancellable (GnomeVFSURI *old, GnomeVFSURI *new, gboolean force_replace, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_check_same_fs_uris_cancellable (GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_set_file_info_cancellable (GnomeVFSURI *a, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context); GnomeVFSResult _gnome_vfs_xfer_private (const GList *source_uri_list, const GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSXferProgressCallback progress_callback, gpointer data, GnomeVFSXferProgressCallback sync_progress_callback, gpointer sync_progress_data); GnomeVFSResult gnome_vfs_directory_read_next_cancellable (GnomeVFSDirectoryHandle *handle, GnomeVFSFileInfo *info, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_directory_open_from_uri_cancellable (GnomeVFSDirectoryHandle **handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); GnomeVFSResult gnome_vfs_file_control_cancellable (GnomeVFSHandle *handle, const char *operation, gpointer operation_data, GnomeVFSContext *context); G_END_DECLS #endif /* GNOME_VFS_CANCELLABLE_OPS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-directory.c0000644000175000001440000004757011334251016017014 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-directory.c - Directory handling for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-directory.h" #include "gnome-vfs-cancellable-ops.h" #include "gnome-vfs-method.h" #include "gnome-vfs-ops.h" #include #define VFS_MAXIMUM_SYMBOLIC_LINK_DEPTH 256 struct GnomeVFSDirectoryHandle { /* URI of the directory being accessed through the handle. */ GnomeVFSURI *uri; /* Options. */ GnomeVFSFileInfoOptions options; /* Method-specific handle. */ GnomeVFSMethodHandle *method_handle; }; #define CHECK_IF_SUPPORTED(vfs_method, what) \ G_STMT_START{ \ if (!VFS_METHOD_HAS_FUNC(vfs_method, what)) \ return GNOME_VFS_ERROR_NOT_SUPPORTED; \ }G_STMT_END static GnomeVFSDirectoryHandle * gnome_vfs_directory_handle_new (GnomeVFSURI *uri, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfoOptions options) { GnomeVFSDirectoryHandle *new; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (method_handle != NULL, NULL); new = g_new (GnomeVFSDirectoryHandle, 1); gnome_vfs_uri_ref (uri); new->uri = uri; new->method_handle = method_handle; new->options = options; return new; } static void gnome_vfs_directory_handle_destroy (GnomeVFSDirectoryHandle *handle) { g_return_if_fail (handle != NULL); gnome_vfs_uri_unref (handle->uri); g_free (handle); } static GnomeVFSResult open_from_uri (GnomeVFSDirectoryHandle **handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSMethodHandle *method_handle; GnomeVFSResult result; CHECK_IF_SUPPORTED (uri->method, open_directory); result = uri->method->open_directory (uri->method, &method_handle, uri, options, context); if (result != GNOME_VFS_OK) { return result; } *handle = gnome_vfs_directory_handle_new (uri, method_handle, options); return GNOME_VFS_OK; } static GnomeVFSResult do_open (GnomeVFSDirectoryHandle **handle, const gchar *text_uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { GnomeVFSURI *uri; GnomeVFSResult result; uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; result = open_from_uri (handle, uri, options, context); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_directory_open: * @handle: pointer to a pointer to a #GnomeVFSDirectoryHandle object. * @text_uri: string representing the uri to open. * @options: options for reading file information. * * Open directory @text_uri for reading. On return, @*handle will point to * a #GnomeVFSDirectoryHandle object which can be used to read the directory * entries one by one. * * Returns: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_directory_open (GnomeVFSDirectoryHandle **handle, const gchar *text_uri, GnomeVFSFileInfoOptions options) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *handle = NULL; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return do_open (handle, text_uri, options, NULL); } /** * gnome_vfs_directory_open_from_uri: * @handle: pointer to a pointer to a #GnomeVFSDirectoryHandle object. * @uri: uri to open. * @options: options for reading file information. * * Open directory @text_uri for reading. On return, @*handle will point to * a #GnomeVFSDirectoryHandle object which can be used to read the directory * entries one by one. * * Returns: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_directory_open_from_uri (GnomeVFSDirectoryHandle **handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *handle = NULL; g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return open_from_uri (handle, uri, options, NULL); } GnomeVFSResult gnome_vfs_directory_open_from_uri_cancellable (GnomeVFSDirectoryHandle **handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *handle = NULL; g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return open_from_uri (handle, uri, options, context); } /** * gnome_vfs_directory_read_next: * @handle: a directory handle. * @file_info: pointer to a #GnomeVFSFileInfo struct where the data about * the directory at @handle will be stored. * * Read the next directory entry from @handle. * * Returns: an integer value representing the result of the operation. */ GnomeVFSResult gnome_vfs_directory_read_next (GnomeVFSDirectoryHandle *handle, GnomeVFSFileInfo *file_info) { CHECK_IF_SUPPORTED (handle->uri->method, read_directory); gnome_vfs_file_info_clear (file_info); return handle->uri->method->read_directory (handle->uri->method, handle->method_handle, file_info, NULL); } /** * gnome_vfs_directory_read_next_cancellable: * @handle: a directory handle. * @file_info: pointer to a #GnomeVFSFileInfo struct where the data about * the directory at @handle will be stored. * @context: a #GnomeVFSContext. * * Read the next directory entry from @handle. * * Returns: an integer value representing the result of the operation. */ GnomeVFSResult gnome_vfs_directory_read_next_cancellable (GnomeVFSDirectoryHandle *handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { CHECK_IF_SUPPORTED (handle->uri->method, read_directory); gnome_vfs_file_info_clear (file_info); return handle->uri->method->read_directory (handle->uri->method, handle->method_handle, file_info, context); } /** * gnome_vfs_directory_close: * @handle: a directory handle. * * Close @handle. * * Returns: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_directory_close (GnomeVFSDirectoryHandle *handle) { GnomeVFSResult result; CHECK_IF_SUPPORTED (handle->uri->method, close_directory); result = handle->uri->method->close_directory (handle->uri->method, handle->method_handle, NULL); gnome_vfs_directory_handle_destroy (handle); return result; } struct _DirectoryReference { ino_t inode; dev_t device; }; typedef struct _DirectoryReference DirectoryReference; static GList * prepend_reference (GList *reference_list, GnomeVFSFileInfo *info) { DirectoryReference *reference; reference = g_new (DirectoryReference, 1); reference->device = info->device; reference->inode = info->inode; return g_list_prepend (reference_list, reference); } static GList * remove_first_reference (GList *reference_list) { GList *first; if (reference_list == NULL) return NULL; first = reference_list; g_free (first->data); reference_list = g_list_remove_link (reference_list, first); g_list_free (first); return reference_list; } static gboolean lookup_ancestor (GList *ancestors, gboolean inode_and_device_are_valid, ino_t inode, dev_t device) { GList *p; if (!inode_and_device_are_valid) { return g_list_length (ancestors) >= VFS_MAXIMUM_SYMBOLIC_LINK_DEPTH; } for (p = ancestors; p != NULL; p = p->next) { DirectoryReference *reference; reference = p->data; if (reference->inode == inode && reference->device == device) return TRUE; } return FALSE; } static GnomeVFSResult directory_visit_internal (GnomeVFSURI *uri, const gchar *prefix, GList *ancestor_references, /* DirectoryReference */ GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data) { GnomeVFSFileInfo *info; GnomeVFSDirectoryHandle *handle; GnomeVFSResult result; gboolean stop; /* The first time, initialize the ancestor list with this directory. */ if (prefix == NULL) { GnomeVFSFileInfo *info; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (uri, info, info_options); if (result != GNOME_VFS_OK) { gnome_vfs_file_info_unref (info); return result; } if (info->type != GNOME_VFS_FILE_TYPE_DIRECTORY) { gnome_vfs_file_info_unref (info); return GNOME_VFS_ERROR_NOT_A_DIRECTORY; } ancestor_references = prepend_reference (ancestor_references, info); gnome_vfs_file_info_unref (info); } result = gnome_vfs_directory_open_from_uri (&handle, uri, info_options); if (result != GNOME_VFS_OK) return result; info = gnome_vfs_file_info_new (); stop = FALSE; while (! stop) { gchar *rel_path; gboolean recurse; gboolean recursing_will_loop; result = gnome_vfs_directory_read_next (handle, info); if (result != GNOME_VFS_OK) break; /* Skip "." and "..". */ if (info->name[0] == '.' && (info->name[1] == 0 || (info->name[1] == '.' && info->name[2] == 0))) { gnome_vfs_file_info_clear (info); continue; } if (prefix == NULL) rel_path = g_strdup (info->name); else rel_path = g_strconcat (prefix, info->name, NULL); if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY && (visit_options & GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK)) recursing_will_loop = lookup_ancestor (ancestor_references, (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_DEVICE) && (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_INODE), info->inode, info->device); else recursing_will_loop = FALSE; recurse = FALSE; stop = ! (* callback) (rel_path, info, recursing_will_loop, data, &recurse); if (stop) result = GNOME_VFS_ERROR_INTERRUPTED; if (! stop && recurse && info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { GnomeVFSURI *new_uri; gchar *new_prefix; if (prefix == NULL) new_prefix = g_strconcat (info->name, "/", NULL); else new_prefix = g_strconcat (prefix, info->name, "/", NULL); new_uri = gnome_vfs_uri_append_file_name (uri, info->name); if (GNOME_VFS_FILE_INFO_LOCAL (info)) ancestor_references = prepend_reference (ancestor_references, info); result = directory_visit_internal (new_uri, new_prefix, ancestor_references, info_options, visit_options, callback, data); if (GNOME_VFS_FILE_INFO_LOCAL (info)) ancestor_references = remove_first_reference (ancestor_references); if (result != GNOME_VFS_OK) { if (visit_options & GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR) { result = GNOME_VFS_OK; } else { stop = TRUE; } } gnome_vfs_uri_unref (new_uri); g_free (new_prefix); } g_free (rel_path); gnome_vfs_file_info_clear (info); if (stop) break; } gnome_vfs_directory_close (handle); gnome_vfs_file_info_unref (info); /* The first time, we are responsible for de-allocating the directory reference we have added by ourselves. */ if (prefix == NULL) ancestor_references = remove_first_reference (ancestor_references); if (result == GNOME_VFS_ERROR_EOF) return GNOME_VFS_OK; else return result; } /** * gnome_vfs_directory_visit_uri: * @uri: #GnomeVFSURI of a directory to visit the files in. * @info_options: #GnomeVFSFileInfoOptions specifying what kind of file information must be * retrieved about the contents of the directory referenced by @uri. * @visit_options: #GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, * and filesystem checks. These affect the way visiting is done. * @callback: #GnomeVFSDirectoryVisitFunc callback to be called for every visited file. * @data: data to be passed to @callback at each iteration. * * Visit @uri, retrieving information as specified by @info_options. * * This function is identical to gnome_vfs_directory_visit(), except * that it takes a #GnomeVFSURI instead of a text URI. * * Returns: a #GnomeVFSResult indicating whether the operation succeeded. * */ GnomeVFSResult gnome_vfs_directory_visit_uri (GnomeVFSURI *uri, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data) { g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (callback != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return directory_visit_internal (uri, NULL, NULL, info_options, visit_options, callback, data); } /** * gnome_vfs_directory_visit: * @text_uri: uri string representation of a directory to visit the files in. * @info_options: #GnomeVFSFileInfoOptions specifying what kind of file information must be * retrieved about the contents of the directory referenced by @uri. * @visit_options: #GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, * and filesystem checks. These affect the way visiting is done. * @callback: #GnomeVFSDirectoryVisitFunc callback to be called for every visited file. * @data: data to be passed to @callback at each iteration. * * Visit @text_uri, retrieving information as specified by @info_options. * * This function is identical to gnome_vfs_directory_visit_uri(), except * that it takes a text URI instead of a #GnomeVFSURI. * * Return value: a #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_directory_visit (const gchar *text_uri, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data) { GnomeVFSURI *uri; GnomeVFSResult result; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (callback != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } result = directory_visit_internal (uri, NULL, NULL, info_options, visit_options, callback, data); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_directory_visit_files_at_uri: * @uri: #GnomeVFSURI of a directory to visit the files in. * @file_list: #GList of char *s of file names in @uri to visit. * @info_options: #GnomeVFSFileInfoOptions specifying what kind of file information must be * retrieved about the contents of the directory referenced by @uri. * @visit_options: #GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, * and filesystem checks. These affect the way visiting is done. * @callback: #GnomeVFSDirectoryVisitFunc callback to call with the file info structs. * @data: data to pass to @callback. * * Fetches information about a list of files in a base uri @uri. * * This function is identical to gnome_vfs_directory_visit_files_at_uri(), * except that it takes a #GnomeVFSURI instead of a text URI. * * If any of the files refers to a directory, and the @callback requests * recursion for the specified file, gnome_vfs_directory_visit_uri() will * be called for the directory. * * Return value: a #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_directory_visit_files_at_uri (GnomeVFSURI *uri, GList *file_list, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data) { GnomeVFSFileInfo *info; GnomeVFSResult result; GList *p; g_return_val_if_fail (uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (file_list != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (callback != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); info = gnome_vfs_file_info_new (); result = GNOME_VFS_OK; for (p = file_list; p != NULL; p = p->next) { GnomeVFSURI *file_uri; gboolean recurse; gboolean stop; file_uri = gnome_vfs_uri_append_file_name (uri, p->data); gnome_vfs_get_file_info_uri (file_uri, info, info_options); recurse = FALSE; stop = ! (* callback) (info->name, info, FALSE, data, &recurse); if (! stop && recurse && info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) result = gnome_vfs_directory_visit_uri (uri, info_options, visit_options, callback, data); gnome_vfs_uri_unref (file_uri); if (result != GNOME_VFS_OK || stop) break; } gnome_vfs_file_info_unref (info); return GNOME_VFS_OK; } /** * gnome_vfs_directory_visit_files: * @text_uri: string representing the uri of a directory to visit the files in. * @file_list: #GList of char *s of file names in @uri to visit. * @info_options: bitmask controlling the type of information to fetch. * @visit_options: #GnomeVFSDirectoryVisitOptions controlling e.g. loop prevention, * and filesystem checks. These affect the way visiting is done. * @callback: #GnomeVFSDirectoryVisitFunc callback to call with the file info structs. * @data: data to pass to @callback. * * Fetches information about a list of files in a base uri @uri. * * If any of the files refers to a directory, and the @callback requests * recursion for the specified file, gnome_vfs_directory_visit_uri() will * be called for the directory. * * This function is identical to gnome_vfs_directory_visit_files_at_uri(), * except that it takes a text URI instead of a #GnomeVFSURI. * * Return value: a #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_directory_visit_files (const gchar *text_uri, GList *file_list, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data) { GnomeVFSURI *uri; GnomeVFSResult result; uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } result = gnome_vfs_directory_visit_files_at_uri (uri, file_list, info_options, visit_options, callback, data); gnome_vfs_uri_unref (uri); return result; } static GnomeVFSResult load_from_handle (GList **list, GnomeVFSDirectoryHandle *handle) { GnomeVFSResult result; GnomeVFSFileInfo *info; *list = NULL; for (;;) { info = gnome_vfs_file_info_new (); result = gnome_vfs_directory_read_next (handle, info); if (result != GNOME_VFS_OK) break; *list = g_list_prepend (*list, info); } *list = g_list_reverse (*list); gnome_vfs_file_info_unref (info); if (result != GNOME_VFS_ERROR_EOF) { gnome_vfs_file_info_list_free (*list); *list = NULL; } return GNOME_VFS_OK; } /** * gnome_vfs_directory_list_load: * @list: address of a pointer to a list of #GnomeVFSFileInfo. * @text_uri: a string representing the uri of the directory. * @options: options for loading the directory. * * Load a directory from @text_uri with the specified @options * into a list. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_directory_list_load (GList **list, const gchar *text_uri, GnomeVFSFileInfoOptions options) { GnomeVFSDirectoryHandle *handle; GnomeVFSResult result; result = gnome_vfs_directory_open (&handle, text_uri, options); if (result != GNOME_VFS_OK) { return result; } result = load_from_handle (list, handle); gnome_vfs_directory_close (handle); return result; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-monitor.c0000644000175000001440000010143711334251016017775 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-monitor.c - Central volume handling. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include "gnome-vfs-private.h" #include "gnome-vfs-volume-monitor.h" #include "gnome-vfs-volume-monitor-private.h" #ifdef USE_DAEMON #include "gnome-vfs-volume-monitor-client.h" #endif #ifdef G_OS_WIN32 #define _WIN32_WINNT 0x0501 #include #endif #include static void gnome_vfs_volume_monitor_class_init (GnomeVFSVolumeMonitorClass *klass); static void gnome_vfs_volume_monitor_init (GnomeVFSVolumeMonitor *volume_monitor); static void gnome_vfs_volume_monitor_finalize (GObject *object); enum { VOLUME_MOUNTED, VOLUME_PRE_UNMOUNT, VOLUME_UNMOUNTED, DRIVE_CONNECTED, DRIVE_DISCONNECTED, LAST_SIGNAL }; static GObjectClass *parent_class = NULL; static guint volume_monitor_signals [LAST_SIGNAL] = { 0 }; GType gnome_vfs_volume_monitor_get_type (void) { static GType volume_monitor_type = 0; if (!volume_monitor_type) { const GTypeInfo volume_monitor_info = { sizeof (GnomeVFSVolumeMonitorClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) gnome_vfs_volume_monitor_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GnomeVFSVolumeMonitor), 0, /* n_preallocs */ (GInstanceInitFunc) gnome_vfs_volume_monitor_init }; volume_monitor_type = g_type_register_static (G_TYPE_OBJECT, "GnomeVFSVolumeMonitor", &volume_monitor_info, 0); } return volume_monitor_type; } static void gnome_vfs_volume_monitor_class_init (GnomeVFSVolumeMonitorClass *class) { GObjectClass *o_class; parent_class = g_type_class_peek_parent (class); o_class = (GObjectClass *) class; /* GObject signals */ o_class->finalize = gnome_vfs_volume_monitor_finalize; /** * GnomeVFSVolumeMonitor::volume-mounted: * @volume_monitor: the #GnomeVFSVolumeMonitor which received the signal. * @volume: the #GnomeVFSVolume that has been mounted. * * This signal is emitted after the #GnomeVFSVolume @volume has been mounted. * * When the @volume is mounted, it is present in the @volume_monitor's list of mounted * volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes(). * * If the @volume has an associated #GnomeVFSDrive, it also appears in the drive's * list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes(). **/ volume_monitor_signals[VOLUME_MOUNTED] = g_signal_new ("volume_mounted", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSVolumeMonitorClass, volume_mounted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_VOLUME); /** * GnomeVFSVolumeMonitor::volume-pre-unmount: * @volume_monitor: the #GnomeVFSVolumeMonitor which received the signal. * @volume: the #GnomeVFSVolume that is about to be unmounted. * * This signal is emitted when the #GnomeVFSVolume @volume is about to be unmounted. * * When the @volume is unmounted, it is removed from the @volume_monitor's list of mounted * volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes(). * * If the @volume has an associated #GnomeVFSDrive, it is also removed from in the drive's * list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes(). * * When a client application receives this signal, it must free all resources * associated with the @volume, for instance cancel all pending file operations * on the @volume, and cancel all pending file monitors using gnome_vfs_monitor_cancel(). **/ volume_monitor_signals[VOLUME_PRE_UNMOUNT] = g_signal_new ("volume_pre_unmount", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSVolumeMonitorClass, volume_pre_unmount), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_VOLUME); /** * GnomeVFSVolumeMonitor::volume-unmounted: * @volume_monitor: the #GnomeVFSVolumeMonitor which received the signal. * @volume: the #GnomeVFSVolume that has been unmounted. * * This signal is emitted after the #GnomeVFSVolume @volume has been unmounted. * * When the @volume is unmounted, it is removed from the @volume_monitor's list of mounted * volumes, which can be queried using gnome_vfs_volume_monitor_get_mounted_volumes(). * * If the @volume has an associated #GnomeVFSDrive, it is also removed from in the drive's * list of mounted volumes, which can be queried using gnome_vfs_drive_get_mounted_volumes(). **/ volume_monitor_signals[VOLUME_UNMOUNTED] = g_signal_new ("volume_unmounted", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSVolumeMonitorClass, volume_unmounted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_VOLUME); /** * GnomeVFSVolumeMonitor::drive-connected: * @volume_monitor: the #GnomeVFSVolumeMonitor which received the signal. * @drive: the #GnomeVFSDrive that has been connected. * * This signal is emitted when the #GnomeVFSDrive @drive has been connected. * * When the @drive is connected, it is present in the @volume_monitor's list of connected * drives, which can be queried using gnome_vfs_volume_monitor_get_connected_drives(). **/ volume_monitor_signals[DRIVE_CONNECTED] = g_signal_new ("drive_connected", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSVolumeMonitorClass, drive_connected), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_DRIVE); /** * GnomeVFSVolumeMonitor::drive-disconnected: * @volume_monitor: the #GnomeVFSVolumeMonitor which received the signal. * @drive: the #GnomeVFSDrive that has been disconnected. * * This signal is emitted after the #GnomeVFSDrive @drive has been disconnected. * * When the @drive is disconnected, it is removed from the @volume_monitor's list of connected * drives, which can be queried using gnome_vfs_volume_monitor_get_connected_drives(). **/ volume_monitor_signals[DRIVE_DISCONNECTED] = g_signal_new ("drive_disconnected", G_TYPE_FROM_CLASS (o_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeVFSVolumeMonitorClass, drive_disconnected), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GNOME_VFS_TYPE_DRIVE); } static void gnome_vfs_volume_monitor_init (GnomeVFSVolumeMonitor *volume_monitor) { volume_monitor->priv = g_new0 (GnomeVFSVolumeMonitorPrivate, 1); volume_monitor->priv->mutex = g_mutex_new (); } G_LOCK_DEFINE_STATIC (volume_monitor_ref); /** * gnome_vfs_volume_monitor_ref: * @volume_monitor: the #GnomeVFSVolumeMonitor, or %NULL. * * Increases the refcount of @volume_monitor by one, if it is not %NULL. * * You shouldn't use this function unless you know what you are doing: * #GnomeVFSVolumeMonitor is to be used as a singleton object, see * gnome_vfs_get_volume_monitor() for more details. * * Returns: @volume_monitor with its refcount increased by one, * or %NULL if @volume_monitor is %NULL. * * Since: 2.6 */ GnomeVFSVolumeMonitor * gnome_vfs_volume_monitor_ref (GnomeVFSVolumeMonitor *volume_monitor) { if (volume_monitor == NULL) { return NULL; } G_LOCK (volume_monitor_ref); g_object_ref (volume_monitor); G_UNLOCK (volume_monitor_ref); return volume_monitor; } /** * gnome_vfs_volume_monitor_unref: * @volume_monitor: #GnomeVFSVolumeMonitor, or %NULL. * * Decreases the refcount of @volume_monitor by one, if it is not %NULL. * * You shouldn't use this function unless you know what you are doing: * #GnomeVFSVolumeMonitor is to be used as a singleton object, see * gnome_vfs_get_volume_monitor() for more details. * * Since: 2.6 */ void gnome_vfs_volume_monitor_unref (GnomeVFSVolumeMonitor *volume_monitor) { if (volume_monitor == NULL) { return; } G_LOCK (volume_monitor_ref); g_object_unref (volume_monitor); G_UNLOCK (volume_monitor_ref); } /* Remeber that this could be running on a thread other * than the main thread */ static void gnome_vfs_volume_monitor_finalize (GObject *object) { GnomeVFSVolumeMonitor *volume_monitor = (GnomeVFSVolumeMonitor *) object; GnomeVFSVolumeMonitorPrivate *priv; priv = volume_monitor->priv; g_list_foreach (priv->mtab_volumes, (GFunc)gnome_vfs_volume_unref, NULL); g_list_free (priv->mtab_volumes); g_list_foreach (priv->server_volumes, (GFunc)gnome_vfs_volume_unref, NULL); g_list_free (priv->server_volumes); g_list_foreach (priv->vfs_volumes, (GFunc)gnome_vfs_volume_unref, NULL); g_list_free (priv->vfs_volumes); g_list_foreach (priv->fstab_drives, (GFunc)gnome_vfs_drive_unref, NULL); g_list_free (priv->fstab_drives); g_list_foreach (priv->vfs_drives, (GFunc)gnome_vfs_drive_unref, NULL); g_list_free (priv->vfs_drives); g_mutex_free (priv->mutex); g_free (priv); volume_monitor->priv = NULL; if (G_OBJECT_CLASS (parent_class)->finalize) (* G_OBJECT_CLASS (parent_class)->finalize) (object); } #ifndef USE_DAEMON #ifdef G_OS_WIN32 static void handle_volume (GnomeVFSVolumeMonitor *volume_monitor, wchar_t *volume_device) { wchar_t path_names[MAX_PATH*10]; DWORD path_names_len; if (GetVolumePathNamesForVolumeNameW (volume_device, path_names, G_N_ELEMENTS (path_names), &path_names_len)) { GnomeVFSVolume *volume; GnomeVFSVolumePrivate *volume_priv; GnomeVFSDrive *drive; GnomeVFSDrivePrivate *drive_priv; UINT drive_type; wchar_t volume_name[MAX_PATH]; wchar_t file_system_name[MAX_PATH]; gchar *tmp; DWORD file_system_flags; drive_type = GetDriveTypeW (volume_device); if (drive_type == DRIVE_UNKNOWN || drive_type == DRIVE_NO_ROOT_DIR) return; drive = g_object_new (GNOME_VFS_TYPE_DRIVE, NULL); drive_priv = drive->priv; drive_priv->device_type = GNOME_VFS_DEVICE_TYPE_WINDOWS; drive_priv->device_path = g_utf16_to_utf8 (volume_device, -1, NULL, NULL, NULL); drive_priv->activation_uri = g_filename_to_uri (drive_priv->device_path, NULL, NULL); volume_name[0] = '\0'; file_system_name[0] = '\0'; GetVolumeInformationW (volume_device, volume_name, G_N_ELEMENTS (volume_name), NULL, NULL, &file_system_flags, file_system_name, G_N_ELEMENTS (file_system_name)); if (volume_name[0]) drive_priv->display_name = g_utf16_to_utf8 (volume_name, -1, NULL, NULL, NULL); else if (path_names[0]) drive_priv->display_name = g_utf16_to_utf8 (path_names, -1, NULL, NULL, NULL); else drive_priv->display_name = g_strdup (drive_priv->device_path); tmp = g_utf8_casefold (drive_priv->display_name, -1); drive_priv->display_name_key = g_utf8_collate_key (tmp, -1); g_free (tmp); /* ??? */ drive_priv->is_user_visible = TRUE; drive_priv->must_eject_at_unmount = FALSE; _gnome_vfs_volume_monitor_connected (volume_monitor, drive); gnome_vfs_drive_unref (drive); volume = g_object_new (GNOME_VFS_TYPE_VOLUME, NULL); volume_priv = volume->priv; volume_priv->volume_type = GNOME_VFS_VOLUME_TYPE_MOUNTPOINT; volume_priv->device_type = GNOME_VFS_DEVICE_TYPE_WINDOWS; volume_priv->drive = drive; gnome_vfs_drive_add_mounted_volume_private (drive, volume); volume_priv->activation_uri = g_strdup (drive_priv->activation_uri); volume_priv->filesystem_type = g_utf16_to_utf8 (file_system_name, -1, NULL, NULL, NULL); volume_priv->display_name = g_strdup (drive_priv->display_name); volume_priv->display_name_key = g_strdup (drive_priv->display_name_key); volume_priv->is_user_visible = TRUE; volume_priv->is_read_only = FALSE; volume_priv->device_path = g_strdup (drive_priv->device_path); volume_priv->unix_device = 0; _gnome_vfs_volume_monitor_mounted (volume_monitor, volume); gnome_vfs_volume_unref (volume); } } #endif /* Without gnome-vfs-daemon, initialise the volume data just once and hope it * doesn't change too much while the application is running. */ static void initialise_the_volume_monitor (GnomeVFSVolumeMonitor *volume_monitor) { #ifdef G_OS_WIN32 wchar_t volume_device[MAX_PATH]; HANDLE volume; BOOL more = TRUE; volume = FindFirstVolumeW (volume_device, G_N_ELEMENTS (volume_device)); if (volume == INVALID_HANDLE_VALUE) return; while (more) { handle_volume (volume_monitor, volume_device); more = FindNextVolumeW (volume, volume_device, G_N_ELEMENTS (volume_device)); } FindVolumeClose (volume); #else #error Add code here for once-only initialisation of the volume pseudo-monitor #endif } #endif G_LOCK_DEFINE_STATIC (the_volume_monitor); static GnomeVFSVolumeMonitor *the_volume_monitor = NULL; static gboolean volume_monitor_was_shutdown = FALSE; GnomeVFSVolumeMonitor * _gnome_vfs_get_volume_monitor_internal (gboolean create) { G_LOCK (the_volume_monitor); if (the_volume_monitor == NULL && create && !volume_monitor_was_shutdown) { #ifdef USE_DAEMON if (gnome_vfs_get_is_daemon ()) { the_volume_monitor = g_object_new (gnome_vfs_get_daemon_volume_monitor_type (), NULL); } else { the_volume_monitor = g_object_new (GNOME_VFS_TYPE_VOLUME_MONITOR_CLIENT, NULL); } #else the_volume_monitor = g_object_new (GNOME_VFS_TYPE_VOLUME_MONITOR, NULL); initialise_the_volume_monitor (the_volume_monitor); #endif } G_UNLOCK (the_volume_monitor); return the_volume_monitor; } /** * gnome_vfs_get_volume_monitor: * * Returns a pointer to the #GnomeVFSVolumeMonitor singleton. * #GnomeVFSVolumeMonitor is a singleton, this means it is guaranteed to * exist and be valid until gnome_vfs_shutdown() is called. Consequently, * it doesn't need to be refcounted since gnome-vfs will hold a reference to * it until it is shut down. * * Returns: a pointer to the #GnomeVFSVolumeMonitor singleton. * * Since: 2.6 */ GnomeVFSVolumeMonitor * gnome_vfs_get_volume_monitor (void) { return _gnome_vfs_get_volume_monitor_internal (TRUE); } void _gnome_vfs_volume_monitor_shutdown (void) { G_LOCK (the_volume_monitor); if (the_volume_monitor != NULL) { #ifdef USE_DAEMON if (!gnome_vfs_get_is_daemon ()) { gnome_vfs_volume_monitor_client_shutdown_private (GNOME_VFS_VOLUME_MONITOR_CLIENT (the_volume_monitor)); } #endif gnome_vfs_volume_monitor_unref (the_volume_monitor); the_volume_monitor = NULL; } volume_monitor_was_shutdown = TRUE; G_UNLOCK (the_volume_monitor); } #ifdef USE_HAL GnomeVFSVolume * _gnome_vfs_volume_monitor_find_volume_by_hal_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_udi) { GList *l; GnomeVFSVolume *vol, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->mtab_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv != NULL && vol->priv->hal_udi != NULL && strcmp (vol->priv->hal_udi, hal_udi) == 0) { ret = vol; break; } } /* burn:/// and cdda:// optical discs are by the hal backend added as VFS_MOUNT */ if (ret == NULL) { for (l = volume_monitor->priv->vfs_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv != NULL && vol->priv->hal_drive_udi != NULL && strcmp (vol->priv->hal_udi, hal_udi) == 0) { ret = vol; break; } } } return ret; } GnomeVFSDrive * _gnome_vfs_volume_monitor_find_drive_by_hal_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_udi) { GList *l; GnomeVFSDrive *drive, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->fstab_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv != NULL && drive->priv->hal_udi != NULL && strcmp (drive->priv->hal_udi, hal_udi) == 0) { ret = drive; break; } } return ret; } GnomeVFSVolume * _gnome_vfs_volume_monitor_find_volume_by_hal_drive_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_drive_udi) { GList *l; GnomeVFSVolume *vol, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->mtab_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv != NULL && vol->priv->hal_drive_udi != NULL && strcmp (vol->priv->hal_drive_udi, hal_drive_udi) == 0) { ret = vol; break; } } /* burn:/// and cdda:// optical discs are by the hal backend added as VFS_MOUNT */ if (ret == NULL) { for (l = volume_monitor->priv->vfs_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv != NULL && vol->priv->hal_drive_udi != NULL && strcmp (vol->priv->hal_drive_udi, hal_drive_udi) == 0) { ret = vol; break; } } } return ret; } GnomeVFSDrive * _gnome_vfs_volume_monitor_find_drive_by_hal_drive_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_drive_udi) { GList *l; GnomeVFSDrive *drive, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->fstab_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv != NULL && drive->priv->hal_drive_udi != NULL && strcmp (drive->priv->hal_drive_udi, hal_drive_udi) == 0) { ret = drive; break; } } return ret; } #endif /* USE_HAL */ GnomeVFSVolume * _gnome_vfs_volume_monitor_find_volume_by_device_path (GnomeVFSVolumeMonitor *volume_monitor, const char *device_path) { GList *l; GnomeVFSVolume *vol, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->mtab_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv != NULL && vol->priv->device_path != NULL && /* Hmm */ strcmp (vol->priv->device_path, device_path) == 0) { ret = vol; break; } } return ret; } GnomeVFSDrive * _gnome_vfs_volume_monitor_find_drive_by_device_path (GnomeVFSVolumeMonitor *volume_monitor, const char *device_path) { GList *l; GnomeVFSDrive *drive, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->fstab_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv != NULL && drive->priv->device_path != NULL && /* Hmm */ strcmp (drive->priv->device_path, device_path) == 0) { ret = drive; break; } } return ret; } GnomeVFSVolume * _gnome_vfs_volume_monitor_find_mtab_volume_by_activation_uri (GnomeVFSVolumeMonitor *volume_monitor, const char *activation_uri) { GList *l; GnomeVFSVolume *vol, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->mtab_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv->activation_uri != NULL && strcmp (vol->priv->activation_uri, activation_uri) == 0) { ret = vol; break; } } return ret; } GnomeVFSDrive * _gnome_vfs_volume_monitor_find_fstab_drive_by_activation_uri (GnomeVFSVolumeMonitor *volume_monitor, const char *activation_uri) { GList *l; GnomeVFSDrive *drive, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->fstab_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv->activation_uri != NULL && strcmp (drive->priv->activation_uri, activation_uri) == 0) { ret = drive; break; } } return ret; } GnomeVFSVolume * _gnome_vfs_volume_monitor_find_connected_server_by_gconf_id (GnomeVFSVolumeMonitor *volume_monitor, const char *id) { GList *l; GnomeVFSVolume *vol, *ret; /* Doesn't need locks, only called internally on main thread and doesn't write */ ret = NULL; for (l = volume_monitor->priv->server_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv->gconf_id != NULL && strcmp (vol->priv->gconf_id, id) == 0) { ret = vol; break; } } return ret; } /** * gnome_vfs_volume_monitor_get_volume_by_id: * @volume_monitor: a #GnomeVFSVolumeMonitor. * @id: #GnomeVFSVolume id to look for. * * Looks for a #GnomeVFSVolume whose id is @id. A valid @volume_monitor to pass * to this function can be acquired using gnome_vfs_get_volume_monitor(). * * Returns: the #GnomeVFSVolume corresponding to @id, or %NULL if no * #GnomeVFSVolume with a matching id could be found. The caller owns a * reference on the returned volume, and must call gnome_vfs_volume_unref() * when it no longer needs it. * * Since: 2.6 */ GnomeVFSVolume * gnome_vfs_volume_monitor_get_volume_by_id (GnomeVFSVolumeMonitor *volume_monitor, gulong id) { GList *l; GnomeVFSVolume *vol; g_mutex_lock (volume_monitor->priv->mutex); for (l = volume_monitor->priv->mtab_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv->id == id) { gnome_vfs_volume_ref (vol); g_mutex_unlock (volume_monitor->priv->mutex); return vol; } } for (l = volume_monitor->priv->server_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv->id == id) { gnome_vfs_volume_ref (vol); g_mutex_unlock (volume_monitor->priv->mutex); return vol; } } for (l = volume_monitor->priv->vfs_volumes; l != NULL; l = l->next) { vol = l->data; if (vol->priv->id == id) { gnome_vfs_volume_ref (vol); g_mutex_unlock (volume_monitor->priv->mutex); return vol; } } g_mutex_unlock (volume_monitor->priv->mutex); return NULL; } /** * gnome_vfs_volume_monitor_get_drive_by_id: * @volume_monitor: a #GnomeVFSVolumeMonitor. * @id: the #GnomeVFSVolume id to look for. * * Looks for a #GnomeVFSDrive whose id is @id. A valid @volume_monitor to pass * to this function can be acquired using gnome_vfs_get_volume_monitor() * * Returns: the #GnomeVFSDrive corresponding to @id, or %NULL if no * #GnomeVFSDrive with a matching id could be found. The caller owns a * reference on the returned drive, and must call gnome_vfs_drive_unref() * when it no longer needs it. * * Since: 2.6 */ GnomeVFSDrive * gnome_vfs_volume_monitor_get_drive_by_id (GnomeVFSVolumeMonitor *volume_monitor, gulong id) { GList *l; GnomeVFSDrive *drive; g_mutex_lock (volume_monitor->priv->mutex); for (l = volume_monitor->priv->fstab_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv->id == id) { gnome_vfs_drive_ref (drive); g_mutex_unlock (volume_monitor->priv->mutex); return drive; } } for (l = volume_monitor->priv->vfs_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv->id == id) { gnome_vfs_drive_ref (drive); g_mutex_unlock (volume_monitor->priv->mutex); return drive; } } g_mutex_unlock (volume_monitor->priv->mutex); return NULL; } void _gnome_vfs_volume_monitor_unmount_all (GnomeVFSVolumeMonitor *volume_monitor) { GList *l, *volumes; GnomeVFSVolume *volume; volumes = gnome_vfs_volume_monitor_get_mounted_volumes (volume_monitor); for (l = volumes; l != NULL; l = l->next) { volume = l->data; _gnome_vfs_volume_monitor_unmounted (volume_monitor, volume); gnome_vfs_volume_unref (volume); } g_list_free (volumes); } void _gnome_vfs_volume_monitor_disconnect_all (GnomeVFSVolumeMonitor *volume_monitor) { GList *l, *drives; GnomeVFSDrive *drive; drives = gnome_vfs_volume_monitor_get_connected_drives (volume_monitor); for (l = drives; l != NULL; l = l->next) { drive = l->data; _gnome_vfs_volume_monitor_disconnected (volume_monitor, drive); gnome_vfs_drive_unref (drive); } g_list_free (drives); } /** * gnome_vfs_volume_monitor_emit_pre_unmount: * @volume_monitor: a #GnomeVFSVolumeMonitor. * @volume: a #GnomeVFSVolume. * * Emits the "pre-unmount" signal on @volume. * * Since: 2.6 */ void gnome_vfs_volume_monitor_emit_pre_unmount (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume) { g_signal_emit (volume_monitor, volume_monitor_signals[VOLUME_PRE_UNMOUNT], 0, volume); } void _gnome_vfs_volume_monitor_mounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume) { gnome_vfs_volume_ref (volume); g_mutex_lock (volume_monitor->priv->mutex); switch (volume->priv->volume_type) { case GNOME_VFS_VOLUME_TYPE_MOUNTPOINT: volume_monitor->priv->mtab_volumes = g_list_prepend (volume_monitor->priv->mtab_volumes, volume); break; case GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER: volume_monitor->priv->server_volumes = g_list_prepend (volume_monitor->priv->server_volumes, volume); break; case GNOME_VFS_VOLUME_TYPE_VFS_MOUNT: volume_monitor->priv->vfs_volumes = g_list_prepend (volume_monitor->priv->vfs_volumes, volume); break; default: g_assert_not_reached (); } volume->priv->is_mounted = 1; g_mutex_unlock (volume_monitor->priv->mutex); g_signal_emit (volume_monitor, volume_monitor_signals[VOLUME_MOUNTED], 0, volume); } void _gnome_vfs_volume_monitor_unmounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume) { GnomeVFSDrive *drive; g_mutex_lock (volume_monitor->priv->mutex); volume_monitor->priv->mtab_volumes = g_list_remove (volume_monitor->priv->mtab_volumes, volume); volume_monitor->priv->server_volumes = g_list_remove (volume_monitor->priv->server_volumes, volume); volume_monitor->priv->vfs_volumes = g_list_remove (volume_monitor->priv->vfs_volumes, volume); volume->priv->is_mounted = 0; g_mutex_unlock (volume_monitor->priv->mutex); g_signal_emit (volume_monitor, volume_monitor_signals[VOLUME_UNMOUNTED], 0, volume); drive = volume->priv->drive; if (drive != NULL) { gnome_vfs_volume_unset_drive_private (volume, drive); gnome_vfs_drive_remove_volume_private (drive, volume); } gnome_vfs_volume_unref (volume); } void _gnome_vfs_volume_monitor_connected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive) { gnome_vfs_drive_ref (drive); g_mutex_lock (volume_monitor->priv->mutex); volume_monitor->priv->fstab_drives = g_list_prepend (volume_monitor->priv->fstab_drives, drive); drive->priv->is_connected = 1; g_mutex_unlock (volume_monitor->priv->mutex); g_signal_emit (volume_monitor, volume_monitor_signals[DRIVE_CONNECTED], 0, drive); } void _gnome_vfs_volume_monitor_disconnected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive) { GList *vol_list; GList *current_vol; g_mutex_lock (volume_monitor->priv->mutex); volume_monitor->priv->fstab_drives = g_list_remove (volume_monitor->priv->fstab_drives, drive); drive->priv->is_connected = 0; g_mutex_unlock (volume_monitor->priv->mutex); vol_list = gnome_vfs_drive_get_mounted_volumes (drive); for (current_vol = vol_list; current_vol != NULL; current_vol = current_vol->next) { GnomeVFSVolume *volume; volume = GNOME_VFS_VOLUME (vol_list->data); gnome_vfs_volume_unset_drive_private (volume, drive); gnome_vfs_drive_remove_volume_private (drive, volume); } g_list_free (vol_list); g_signal_emit (volume_monitor, volume_monitor_signals[DRIVE_DISCONNECTED], 0, drive); gnome_vfs_drive_unref (drive); } /** * gnome_vfs_volume_monitor_get_mounted_volumes: * @volume_monitor: a #GnomeVFSVolumeMonitor. * * Gets the list of all the mounted #GnomeVFSVolume volumes. * * Returns: #GList of #GnomeVFSVolume. The #GnomeVFSVolume objects must be * unreffed by the caller when no longer needed with gnome_vfs_volume_unref() * and the #GList must be freed. * * Since: 2.6 */ GList * gnome_vfs_volume_monitor_get_mounted_volumes (GnomeVFSVolumeMonitor *volume_monitor) { GList *ret; g_mutex_lock (volume_monitor->priv->mutex); ret = g_list_copy (volume_monitor->priv->mtab_volumes); ret = g_list_concat (ret, g_list_copy (volume_monitor->priv->server_volumes)); ret = g_list_concat (ret, g_list_copy (volume_monitor->priv->vfs_volumes)); g_list_foreach (ret, (GFunc)gnome_vfs_volume_ref, NULL); g_mutex_unlock (volume_monitor->priv->mutex); return ret; } /** * gnome_vfs_volume_monitor_get_connected_drives: * @volume_monitor: a #GnomeVFSVolumeMonitor. * * Returns a #GList of all drives connected to the machine. * The #GnomeVFSDrive objects must be unreffed by the caller when * no longer needed with gnome_vfs_drive_unref() and the #GList must * be freed. * * Returns: a #GList of all connected drives. * * Since: 2.6 */ GList * gnome_vfs_volume_monitor_get_connected_drives (GnomeVFSVolumeMonitor *volume_monitor) { GList *ret; g_mutex_lock (volume_monitor->priv->mutex); ret = g_list_copy (volume_monitor->priv->fstab_drives); g_list_foreach (ret, (GFunc)gnome_vfs_drive_ref, NULL); g_mutex_unlock (volume_monitor->priv->mutex); return ret; } static gboolean volume_name_is_unique (GnomeVFSVolumeMonitor *volume_monitor, const char *name) { GList *l; GnomeVFSVolume *volume; for (l = volume_monitor->priv->mtab_volumes; l != NULL; l = l->next) { volume = l->data; if (volume->priv->is_user_visible && strcmp (volume->priv->display_name, name) == 0) { return FALSE; } } for (l = volume_monitor->priv->server_volumes; l != NULL; l = l->next) { volume = l->data; if (volume->priv->is_user_visible && strcmp (volume->priv->display_name, name) == 0) { return FALSE; } } for (l = volume_monitor->priv->vfs_volumes; l != NULL; l = l->next) { volume = l->data; if (volume->priv->is_user_visible && strcmp (volume->priv->display_name, name) == 0) { return FALSE; } } return TRUE; } char * _gnome_vfs_volume_monitor_uniquify_volume_name (GnomeVFSVolumeMonitor *volume_monitor, const char *name) { int index; char *unique_name; index = 1; unique_name = g_strdup (name); while (!volume_name_is_unique (volume_monitor, unique_name)) { g_free (unique_name); index++; unique_name = g_strdup_printf ("%s (%d)", name, index); } return unique_name; } static gboolean drive_name_is_unique (GnomeVFSVolumeMonitor *volume_monitor, const char *name) { GList *l; GnomeVFSDrive *drive; for (l = volume_monitor->priv->fstab_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv->is_user_visible && strcmp (drive->priv->display_name, name) == 0) { return FALSE; } } for (l = volume_monitor->priv->vfs_drives; l != NULL; l = l->next) { drive = l->data; if (drive->priv->is_user_visible && strcmp (drive->priv->display_name, name) == 0) { return FALSE; } } return TRUE; } char * _gnome_vfs_volume_monitor_uniquify_drive_name (GnomeVFSVolumeMonitor *volume_monitor, const char *name) { int index; char *unique_name; index = 1; unique_name = g_strdup (name); while (!drive_name_is_unique (volume_monitor, unique_name)) { g_free (unique_name); index++; unique_name = g_strdup_printf ("%s (%d)", name, index); } return unique_name; } /** * gnome_vfs_volume_monitor_get_volume_for_path: * @volume_monitor: a #GnomeVFSVolumeMonitor. * @path: string representing a path. * * Returns the #GnomeVFSVolume corresponding to @path, or %NULL. * * The volume referring to @path is found by calling %stat on @path, * and then iterating through the list of volumes that refer * to currently mounted local file systems. * The first volume in this list maching the @path's UNIX device * is returned. * * If the %stat on @path was not successful, or no volume matches @path, * or %NULL is returned. * * Returns: the #GnomeVFSVolume corresponding to the @path, or %NULL. Volume returned * must be unreffed by the caller with gnome_vfs_volume_unref(). * * Since: 2.6 */ GnomeVFSVolume * gnome_vfs_volume_monitor_get_volume_for_path (GnomeVFSVolumeMonitor *volume_monitor, const char *path) { struct stat statbuf; dev_t device; GList *l; GnomeVFSVolume *volume, *res; if (g_stat (path, &statbuf) != 0) return NULL; device = statbuf.st_dev; res = NULL; g_mutex_lock (volume_monitor->priv->mutex); for (l = volume_monitor->priv->mtab_volumes; l != NULL; l = l->next) { volume = l->data; if (volume->priv->unix_device == device) { res = gnome_vfs_volume_ref (volume); break; } } g_mutex_unlock (volume_monitor->priv->mutex); return res; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs.h0000644000175000001440000000454111334251016015006 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs.h - The GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_H #define GNOME_VFS_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif /* GNOME_VFS_H */ gnome-vfs-2.24.4/libgnomevfs/xdgmime.h0000644000175000001440000001335611334251016014543 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmime.h: XDG Mime Spec mime resolver. Based on version 0.11 of the spec. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2003 Red Hat, Inc. * Copyright (C) 2003 Jonathan Blandford * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_H__ #define __XDG_MIME_H__ #include #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifdef XDG_PREFIX #define XDG_ENTRY(func) _XDG_ENTRY2(XDG_PREFIX,func) #define _XDG_ENTRY2(prefix,func) _XDG_ENTRY3(prefix,func) #define _XDG_ENTRY3(prefix,func) prefix##_##func #define XDG_RESERVED_ENTRY(func) _XDG_RESERVED_ENTRY2(XDG_PREFIX,func) #define _XDG_RESERVED_ENTRY2(prefix,func) _XDG_RESERVED_ENTRY3(prefix,func) #define _XDG_RESERVED_ENTRY3(prefix,func) _##prefix##_##func #endif typedef void (*XdgMimeCallback) (void *user_data); typedef void (*XdgMimeDestroy) (void *user_data); #ifdef XDG_PREFIX #define xdg_mime_get_mime_type_for_data XDG_ENTRY(get_mime_type_for_data) #define xdg_mime_get_mime_type_for_file XDG_ENTRY(get_mime_type_for_file) #define xdg_mime_get_mime_type_from_file_name XDG_ENTRY(get_mime_type_from_file_name) #define xdg_mime_get_mime_types_from_file_name XDG_ENTRY(get_mime_types_from_file_name) #define xdg_mime_is_valid_mime_type XDG_ENTRY(is_valid_mime_type) #define xdg_mime_mime_type_equal XDG_ENTRY(mime_type_equal) #define xdg_mime_media_type_equal XDG_ENTRY(media_type_equal) #define xdg_mime_mime_type_subclass XDG_ENTRY(mime_type_subclass) #define xdg_mime_get_mime_parents XDG_ENTRY(get_mime_parents) #define xdg_mime_list_mime_parents XDG_ENTRY(list_mime_parents) #define xdg_mime_unalias_mime_type XDG_ENTRY(unalias_mime_type) #define xdg_mime_get_max_buffer_extents XDG_ENTRY(get_max_buffer_extents) #define xdg_mime_shutdown XDG_ENTRY(shutdown) #define xdg_mime_dump XDG_ENTRY(dump) #define xdg_mime_register_reload_callback XDG_ENTRY(register_reload_callback) #define xdg_mime_remove_callback XDG_ENTRY(remove_callback) #define xdg_mime_type_unknown XDG_ENTRY(type_unknown) #define xdg_mime_get_icon XDG_ENTRY(get_icon) #define xdg_mime_get_generic_icon XDG_ENTRY(get_generic_icon) #define _xdg_mime_mime_type_equal XDG_RESERVED_ENTRY(mime_type_equal) #define _xdg_mime_mime_type_subclass XDG_RESERVED_ENTRY(mime_type_subclass) #define _xdg_mime_unalias_mime_type XDG_RESERVED_ENTRY(unalias_mime_type) #endif extern const char xdg_mime_type_unknown[]; #define XDG_MIME_TYPE_UNKNOWN xdg_mime_type_unknown const char *xdg_mime_get_mime_type_for_data (const void *data, size_t len, int *result_prio); const char *xdg_mime_get_mime_type_for_file (const char *file_name, struct stat *statbuf); const char *xdg_mime_get_mime_type_from_file_name (const char *file_name); int xdg_mime_get_mime_types_from_file_name(const char *file_name, const char *mime_types[], int n_mime_types); int xdg_mime_is_valid_mime_type (const char *mime_type); int xdg_mime_mime_type_equal (const char *mime_a, const char *mime_b); int xdg_mime_media_type_equal (const char *mime_a, const char *mime_b); int xdg_mime_mime_type_subclass (const char *mime_a, const char *mime_b); /* xdg_mime_get_mime_parents() is deprecated since it does * not work correctly with caches. Use xdg_mime_list_parents() * instead, but notice that that function expects you to free * the array it returns. */ const char **xdg_mime_get_mime_parents (const char *mime); char ** xdg_mime_list_mime_parents (const char *mime); const char *xdg_mime_unalias_mime_type (const char *mime); const char *xdg_mime_get_icon (const char *mime); const char *xdg_mime_get_generic_icon (const char *mime); int xdg_mime_get_max_buffer_extents (void); void xdg_mime_shutdown (void); void xdg_mime_dump (void); int xdg_mime_register_reload_callback (XdgMimeCallback callback, void *data, XdgMimeDestroy destroy); void xdg_mime_remove_callback (int callback_id); /* Private versions of functions that don't call xdg_mime_init () */ int _xdg_mime_mime_type_equal (const char *mime_a, const char *mime_b); int _xdg_mime_mime_type_subclass (const char *mime, const char *base); const char *_xdg_mime_unalias_mime_type (const char *mime); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __XDG_MIME_H__ */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-sniff-buffer-private.h0000644000175000001440000000323411334251016021753 00000000000000/* * gnome-vfs-mime-sniff-buffer-private.h * Utility for implementing gnome_vfs_mime_type_from_magic, and other * mime-type sniffing calls. * * Copyright (C) 2000 Eazel, Inc. * All rights reserved. * * This file is part of the Gnome Library. * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_MIME_SNIFF_BUFFER_PRIVATE_H #define GNOME_VFS_MIME_SNIFF_BUFFER_PRIVATE_H #include struct GnomeVFSMimeSniffBuffer { guchar *buffer; gssize buffer_length; gboolean read_whole_file; gboolean owning; GnomeVFSSniffBufferSeekCall seek; GnomeVFSSniffBufferReadCall read; gpointer context; }; const char *_gnome_vfs_get_mime_type_internal (GnomeVFSMimeSniffBuffer *buffer, const char *file_name, gboolean use_suffix); const char *_gnome_vfs_mime_get_type_from_magic_table (GnomeVFSMimeSniffBuffer *buffer); #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-transform.c0000644000175000001440000000006511334251016017007 00000000000000#include #include "gnome-vfs-transform.h" gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-unix-mounts.c0000644000175000001440000006312311334251016017306 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-unix-mounts.h - read and monitor fstab/mtab Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include #include #ifndef HAVE_SYSCTLBYNAME #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_POLL_H #include #endif #endif #ifdef HAVE_POLL_H #include #endif #include #include #include #include #include #include #include #include "gnome-vfs-unix-mounts.h" #define MOUNT_POLL_INTERVAL 3000 #ifdef HAVE_SYS_MNTTAB_H #define MNTOPT_RO "ro" #endif #ifdef HAVE_MNTENT_H #include #elif defined (HAVE_SYS_MNTTAB_H) #include #endif #ifdef HAVE_SYS_VFSTAB_H #include #endif #if defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H) #include #include #include #include #endif #if defined(HAVE_GETMNTINFO) && defined(HAVE_FSTAB_H) && defined(HAVE_SYS_MOUNT_H) #include #include #include #include #ifdef HAVE_SYS_SYSCTL_H #include #endif #endif #define STAT_TIMEOUT_SECONDS 3 /* Ideally this should not nonblocking stat, since that can block on * downed NFS mounts forever, however there seems to be no good way * to avoid this... * Various ugly workarounds can be tried later. */ GList * _gnome_vfs_unix_mount_get_unix_device (GList *mounts) { GList *result = NULL; while (mounts) { dev_t unix_device = 0; pid_t pid; int pipes[2]; int status; if (pipe (pipes) == -1) goto error; pid = fork (); if (pid == -1) { close (pipes[0]); close (pipes[1]); goto error; } if (pid == 0) { /* Child */ close (pipes[0]); /* Fork an intermediate child that immediately exits * so we can waitpid it. This means the final process * will get owned by init and not go zombie. */ pid = fork (); if (pid == 0) { /* Grandchild */ struct stat statbuf; while (mounts) { GnomeVFSUnixMount *mount = mounts->data; unix_device = stat (mount->mount_path, &statbuf) == 0 ? statbuf.st_dev : 0; write (pipes[1], (char *)&unix_device, sizeof (dev_t)); mounts = mounts->next; } } close (pipes[1]); _exit (0); g_assert_not_reached (); } /* Parent */ close (pipes[1]); retry_waitpid: if (waitpid (pid, &status, 0) < 0) { if (errno == EINTR) goto retry_waitpid; else if (errno == ECHILD) ; /* do nothing, child already reaped */ else g_warning ("waitpid() should not fail in gnome_vfs_unix_mount_get_unix_device"); } while (mounts) { int res; do { #ifdef HAVE_POLL struct pollfd poll_fd; poll_fd.fd = pipes[0]; poll_fd.events = POLLIN; res = poll (&poll_fd, 1, STAT_TIMEOUT_SECONDS * 1000); #else struct timeval tv; fd_set read_fds; tv.tv_sec = STAT_TIMEOUT_SECONDS; tv.tv_usec = 0; FD_ZERO(&read_fds); FD_SET(pipes[0], &read_fds); res = select (pipes[0] + 1, &read_fds, NULL, NULL, &tv); #endif } while (res == -1 && errno == EINTR); if (res <= 0 || read (pipes[0], (char *)&unix_device, sizeof (dev_t)) != sizeof (dev_t)) break; result = g_list_prepend (result, GUINT_TO_POINTER ((gulong)unix_device)); mounts = mounts->next; } close (pipes[0]); error: if (mounts) { unix_device = 0; result = g_list_prepend (result, GUINT_TO_POINTER ((gulong)unix_device)); mounts = mounts->next; } } return g_list_reverse (result); } #ifndef HAVE_SETMNTENT #define setmntent(f,m) fopen(f,m) #endif #ifndef HAVE_ENDMNTENT #define endmntent(f) fclose(f) #endif #ifdef HAVE_MNTENT_H static char * get_mtab_read_file (void) { #ifdef _PATH_MOUNTED # ifdef __linux__ return "/proc/mounts"; # else return _PATH_MOUNTED; # endif #else return "/etc/mtab"; #endif } static char * get_mtab_monitor_file (void) { #ifdef _PATH_MOUNTED return _PATH_MOUNTED; #else return "/etc/mtab"; #endif } gboolean _gnome_vfs_get_current_unix_mounts (GList **return_list) { static time_t last_mtime = 0; static off_t last_size = 0; struct mntent *mntent; FILE *file; char *read_file; char *stat_file; struct stat sb; GnomeVFSUnixMount *mount_entry; GHashTable *mounts_hash; read_file = get_mtab_read_file (); stat_file = get_mtab_monitor_file (); *return_list = NULL; if (stat (stat_file, &sb) < 0) { g_warning ("Unable to stat %s: %s", stat_file, g_strerror (errno)); return TRUE; } if (sb.st_mtime == last_mtime && sb.st_size == last_size) { return FALSE; } last_mtime = sb.st_mtime; last_size = sb.st_size; file = setmntent (read_file, "r"); if (file == NULL) { return TRUE; } mounts_hash = g_hash_table_new (g_str_hash, g_str_equal); while ((mntent = getmntent (file)) != NULL) { /* ignore any mnt_fsname that is repeated and begins with a '/' * * We do this to avoid being fooled by --bind mounts, since * these have the same device as the location they bind to. * Its not an ideal solution to the problem, but its likely that * the most important mountpoint is first and the --bind ones after * that aren't as important. So it should work. * * The '/' is to handle procfs, tmpfs and other no device mounts. */ if (mntent->mnt_fsname != NULL && mntent->mnt_fsname[0] == '/' && g_hash_table_lookup (mounts_hash, mntent->mnt_fsname)) { continue; } mount_entry = g_new0 (GnomeVFSUnixMount, 1); mount_entry->mount_path = g_strdup (mntent->mnt_dir); mount_entry->device_path = g_strdup (mntent->mnt_fsname); mount_entry->filesystem_type = g_strdup (mntent->mnt_type); g_hash_table_insert (mounts_hash, mount_entry->device_path, mount_entry->device_path); #if defined (HAVE_HASMNTOPT) if (hasmntopt (mntent, MNTOPT_RO) != NULL) { mount_entry->is_read_only = TRUE; } #endif *return_list = g_list_prepend (*return_list, mount_entry); } g_hash_table_destroy (mounts_hash); endmntent (file); *return_list = g_list_reverse (*return_list); return TRUE; } #elif defined (HAVE_SYS_MNTTAB_H) static char * get_mtab_read_file (void) { #ifdef _PATH_MOUNTED return _PATH_MOUNTED; #else return "/etc/mnttab"; #endif } static char * get_mtab_monitor_file (void) { return get_mtab_read_file (); } gboolean _gnome_vfs_get_current_unix_mounts (GList **return_list) { static time_t last_mtime = 0; static off_t last_size = 0; struct mnttab mntent; FILE *file; char *read_file; char *stat_file; struct stat sb; GnomeVFSUnixMount *mount_entry; read_file = get_mtab_read_file (); stat_file = get_mtab_monitor_file (); *return_list = NULL; if (stat (stat_file, &sb) < 0) { g_warning ("Unable to stat %s: %s", stat_file, g_strerror (errno)); return TRUE; } if (sb.st_mtime == last_mtime && sb.st_size == last_size) { return FALSE; } last_mtime = sb.st_mtime; last_size = sb.st_size; file = setmntent (read_file, "r"); if (file == NULL) { return TRUE; } while (! getmntent (file, &mntent)) { mount_entry = g_new0 (GnomeVFSUnixMount, 1); mount_entry->mount_path = g_strdup (mntent.mnt_mountp); mount_entry->device_path = g_strdup (mntent.mnt_special); mount_entry->filesystem_type = g_strdup (mntent.mnt_fstype); #if defined (HAVE_HASMNTOPT) if (hasmntopt (&mntent, MNTOPT_RO) != NULL) { mount_entry->is_read_only = TRUE; } #endif *return_list = g_list_prepend (*return_list, mount_entry); } endmntent (file); *return_list = g_list_reverse (*return_list); return TRUE; } #elif defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H) static char * get_mtab_monitor_file (void) { return NULL; } gboolean _gnome_vfs_get_current_unix_mounts (GList **return_list) { struct vfs_ent *fs_info; struct vmount *vmount_info; int vmount_number; unsigned int vmount_size; int current; *return_list = NULL; if (mntctl (MCTL_QUERY, sizeof (vmount_size), &vmount_size) != 0) { g_warning ("Unable to know the number of mounted volumes\n"); return TRUE; } vmount_info = (struct vmount*)g_malloc (vmount_size); if (vmount_info == NULL) { g_warning ("Unable to allocate memory\n"); return TRUE; } vmount_number = mntctl (MCTL_QUERY, vmount_size, vmount_info); if (vmount_info->vmt_revision != VMT_REVISION) { g_warning ("Bad vmount structure revision number, want %d, got %d\n", VMT_REVISION, vmount_info->vmt_revision); } if (vmount_number < 0) { g_warning ("Unable to recover mounted volumes information\n"); g_free (vmount_info); return TRUE; } while (vmount_number > 0) { mount_entry = g_new0 (GnomeVFSUnixMount, 1); mount_entry->device_path = g_strdup (vmt2dataptr (vmount_info, VMT_OBJECT)); mount_entry->mount_path = g_strdup (vmt2dataptr (vmount_info, VMT_STUB)); /* is_removable = (vmount_info->vmt_flags & MNT_REMOVABLE) ? 1 : 0; */ mount_entry->is_read_only = (vmount_info->vmt_flags & MNT_READONLY) ? 1 : 0; fs_info = getvfsbytype (vmount_info->vmt_gfstype); if (fs_info == NULL) { mount_entry->filesystem_type = g_strdup ("unknown"); } else { mount_entry->filesystem_type = g_strdup (fs_info->vfsent_name); } *return_list = g_list_prepend (*return_list, mount_entry); vmount_info = (struct vmount *)( (char*)vmount_info + vmount_info->vmt_length); vmount_number--; } g_free (vmount_info); *return_list = g_list_reverse (*return_list); return TRUE; } #elif defined(HAVE_GETMNTINFO) && defined(HAVE_FSTAB_H) && defined(HAVE_SYS_MOUNT_H) static char * get_mtab_monitor_file (void) { return NULL; } gboolean _gnome_vfs_get_current_unix_mounts (GList **return_list) { struct statfs *mntent = NULL; int num_mounts, i; GnomeVFSUnixMount *mount_entry; *return_list = NULL; /* Pass MNT_NOWAIT to avoid blocking trying to update NFS mounts. */ if ((num_mounts = getmntinfo (&mntent, MNT_NOWAIT)) == 0) { return TRUE; } for (i = 0; i < num_mounts; i++) { mount_entry = g_new0 (GnomeVFSUnixMount, 1); mount_entry->mount_path = g_strdup (mntent[i].f_mntonname); mount_entry->device_path = g_strdup (mntent[i].f_mntfromname); mount_entry->filesystem_type = g_strdup (mntent[i].f_fstypename); if (mntent[i].f_flags & MNT_RDONLY) { mount_entry->is_read_only = TRUE; } *return_list = g_list_prepend (*return_list, mount_entry); } *return_list = g_list_reverse (*return_list); return TRUE; } #else #error No _gnome_vfs_get_current_unix_mounts() implementation for system #endif /* _gnome_vfs_get_unix_mount_table(): * read the fstab. * don't return swap and ignore mounts. */ static char * get_fstab_file (void) { #if defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H) /* AIX */ return "/etc/filesystems"; #elif defined(_PATH_MNTTAB) return _PATH_MNTTAB; #elif defined(VFSTAB) return VFSTAB; #else return "/etc/fstab"; #endif } #ifdef HAVE_MNTENT_H gboolean _gnome_vfs_get_unix_mount_table (GList **return_list) { static time_t last_mtime = 0; static off_t last_size = 0; struct mntent *mntent; FILE *file; char *read_file; char *stat_file; char *opt, *opt_end; struct stat sb; GnomeVFSUnixMountPoint *mount_entry; stat_file = read_file = get_fstab_file (); *return_list = NULL; if (stat (stat_file, &sb) < 0) { g_warning ("Unable to stat %s: %s", stat_file, g_strerror (errno)); return TRUE; } if (sb.st_mtime == last_mtime && sb.st_size == last_size) { return FALSE; } last_mtime = sb.st_mtime; last_size = sb.st_size; file = setmntent (read_file, "r"); if (file == NULL) { return TRUE; } while ((mntent = getmntent (file)) != NULL) { if ((strcmp (mntent->mnt_dir, "ignore") == 0) || (strcmp (mntent->mnt_dir, "swap") == 0)) { continue; } mount_entry = g_new0 (GnomeVFSUnixMountPoint, 1); mount_entry->mount_path = g_strdup (mntent->mnt_dir); mount_entry->device_path = g_strdup (mntent->mnt_fsname); mount_entry->filesystem_type = g_strdup (mntent->mnt_type); #ifdef HAVE_HASMNTOPT if (hasmntopt (mntent, MNTOPT_RO) != NULL) { mount_entry->is_read_only = TRUE; } if (hasmntopt (mntent, "loop") != NULL) { mount_entry->is_loopback = TRUE; } if ((opt = hasmntopt (mntent, "dev=")) != NULL) { opt = opt + strlen("dev="); opt_end = strchr (opt, ','); if (opt_end) { mount_entry->dev_opt = g_strndup (opt, opt_end - opt); } else { mount_entry->dev_opt = g_strdup (opt); } } #endif if ((mntent->mnt_type != NULL && strcmp ("supermount", mntent->mnt_type) == 0) #ifdef HAVE_HASMNTOPT || (hasmntopt (mntent, "user") != NULL && hasmntopt (mntent, "user") != hasmntopt (mntent, "user_xattr")) || hasmntopt (mntent, "pamconsole") != NULL || hasmntopt (mntent, "users") != NULL || hasmntopt (mntent, "owner") != NULL #endif ) { mount_entry->is_user_mountable = TRUE; } *return_list = g_list_prepend (*return_list, mount_entry); } endmntent (file); *return_list = g_list_reverse (*return_list); return TRUE; } #elif defined (HAVE_SYS_MNTTAB_H) gboolean _gnome_vfs_get_unix_mount_table (GList **return_list) { static time_t last_mtime = 0; static off_t last_size = 0; struct mnttab mntent; FILE *file; char *read_file; char *stat_file; struct stat sb; GnomeVFSUnixMountPoint *mount_entry; stat_file = read_file = get_fstab_file (); *return_list = NULL; if (stat (stat_file, &sb) < 0) { g_warning ("Unable to stat %s: %s", stat_file, g_strerror (errno)); return TRUE; } if (sb.st_mtime == last_mtime && sb.st_size == last_size) { return FALSE; } last_mtime = sb.st_mtime; last_size = sb.st_size; file = setmntent (read_file, "r"); if (file == NULL) { return TRUE; } while (! getmntent (file, &mntent)) { if ((strcmp (mntent.mnt_mountp, "ignore") == 0) || (strcmp (mntent.mnt_mountp, "swap") == 0)) { continue; } mount_entry = g_new0 (GnomeVFSUnixMountPoint, 1); mount_entry->mount_path = g_strdup (mntent.mnt_mountp); mount_entry->device_path = g_strdup (mntent.mnt_special); mount_entry->filesystem_type = g_strdup (mntent.mnt_fstype); #ifdef HAVE_HASMNTOPT if (hasmntopt (&mntent, MNTOPT_RO) != NULL) { mount_entry->is_read_only = TRUE; } if (hasmntopt (&mntent, "lofs") != NULL) { mount_entry->is_loopback = TRUE; } #endif if ((mntent.mnt_fstype != NULL) #ifdef HAVE_HASMNTOPT || (hasmntopt (&mntent, "user") != NULL && hasmntopt (&mntent, "user") != hasmntopt (&mntent, "user_xattr")) || hasmntopt (&mntent, "pamconsole") != NULL || hasmntopt (&mntent, "users") != NULL || hasmntopt (&mntent, "owner") != NULL #endif ) { mount_entry->is_user_mountable = TRUE; } *return_list = g_list_prepend (*return_list, mount_entry); } endmntent (file); *return_list = g_list_reverse (*return_list); return TRUE; } #elif defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H) /* functions to parse /etc/filesystems on aix */ /* read character, ignoring comments (begin with '*', end with '\n' */ static int aix_fs_getc (FILE *fd) { int c; while ((c = getc (fd)) == '*') { while (((c = getc (fd)) != '\n') && (c != EOF)) { } } } /* eat all continuous spaces in a file */ static int aix_fs_ignorespace (FILE *fd) { int c; while ((c = aix_fs_getc (fd)) != EOF) { if (!g_ascii_isspace (c)) { ungetc (c,fd); return c; } } return EOF; } /* read one word from file */ static int aix_fs_getword (FILE *fd, char *word) { int c; aix_fs_ignorespace (fd); while (((c = aix_fs_getc (fd)) != EOF) && !g_ascii_isspace (c)) { if (c == '"') { while (((c = aix_fs_getc (fd)) != EOF) && (c != '"')) { *word++ = c; } } else { *word++ = c; } } *word = 0; return c; } typedef struct { char mnt_mount[PATH_MAX]; char mnt_special[PATH_MAX]; char mnt_fstype[16]; char mnt_options[128]; } AixMountTableEntry; /* read mount points properties */ static int aix_fs_get (FILE *fd, AixMountTableEntry *prop) { static char word[PATH_MAX] = { 0 }; char value[PATH_MAX]; /* read stanza */ if (word[0] == 0) { if (aix_fs_getword (fd, word) == EOF) return EOF; } word[strlen(word) - 1] = 0; strcpy (prop->mnt_mount, word); /* read attributes and value */ while (aix_fs_getword (fd, word) != EOF) { /* test if is attribute or new stanza */ if (word[strlen(word) - 1] == ':') { return 0; } /* read "=" */ aix_fs_getword (fd, value); /* read value */ aix_fs_getword (fd, value); if (strcmp (word, "dev") == 0) { strcpy (prop->mnt_special, value); } else if (strcmp (word, "vfs") == 0) { strcpy (prop->mnt_fstype, value); } else if (strcmp (word, "options") == 0) { strcpy(prop->mnt_options, value); } } return 0; } gboolean _gnome_vfs_get_unix_mount_table (GList **return_list) { static time_t last_mtime = 0; static off_t last_size = 0; struct mntent *mntent; FILE *file; char *read_file; char *stat_file; struct stat sb; GnomeVFSUnixMountPoint *mount_entry; AixMountTableEntry mntent; stat_file = read_file = get_fstab_file (); *return_list = NULL; if (stat (stat_file, &sb) < 0) { g_warning ("Unable to stat %s: %s", stat_file, g_strerror (errno)); return TRUE; } if (last_mtime != 0 && fsb.st_mtime == last_mtime && fsb.st_size == last_size) { return FALSE; } last_mtime = fsb.st_mtime; last_size = fsb.st_size; file = setmntent (read_file, "r"); if (file == NULL) { return TRUE; } while (!aix_fs_get (file, &mntent)) { if (strcmp ("cdrfs", mntent.mnt_fstype) == 0) { mount_entry = g_new0 (GnomeVFSUnixMountPoint, 1); mount_entry->mount_path = g_strdup (mntent.mnt_mount); mount_entry->device_path = g_strdup (mntent.mnt_special); mount_entry->filesystem_type = g_strdup (mntent.mnt_fstype); mount_entry->is_read_only = TRUE; mount_entry->is_user_mountable = TRUE; *return_list = g_list_prepend (*return_list, mount_entry); } } endmntent (file); *return_list = g_list_reverse (*return_list); return TRUE; } #elif defined(HAVE_GETMNTINFO) && defined(HAVE_FSTAB_H) && defined(HAVE_SYS_MOUNT_H) gboolean _gnome_vfs_get_unix_mount_table (GList **return_list) { static time_t last_mtime = 0; static off_t last_size = 0; struct fstab *fstab = NULL; char *stat_file; struct stat fsb; GnomeVFSUnixMountPoint *mount_entry; #ifdef HAVE_SYS_SYSCTL_H int usermnt = 0; size_t len = sizeof(usermnt); struct stat sb; #endif stat_file = get_fstab_file (); *return_list = NULL; if (stat (stat_file, &fsb) < 0) { g_warning ("Unable to stat %s: %s", stat_file, g_strerror (errno)); return TRUE; } if (last_mtime != 0 && fsb.st_mtime == last_mtime && fsb.st_size == last_size) { return FALSE; } last_mtime = fsb.st_mtime; last_size = fsb.st_size; *return_list = NULL; if (!setfsent ()) { return TRUE; } #ifdef HAVE_SYS_SYSCTL_H #if defined(HAVE_SYSCTLBYNAME) sysctlbyname ("vfs.usermount", &usermnt, &len, NULL, 0); #elif defined(CTL_VFS) && defined(VFS_USERMOUNT) { int mib[2]; mib[0] = CTL_VFS; mib[1] = VFS_USERMOUNT; sysctl (mib, 2, &usermnt, &len, NULL, 0); } #elif defined(CTL_KERN) && defined(KERN_USERMOUNT) { int mib[2]; mib[0] = CTL_KERN; mib[1] = KERN_USERMOUNT; sysctl (mib, 2, &usermnt, &len, NULL, 0); } #endif #endif while ((fstab = getfsent ()) != NULL) { if (strcmp (fstab->fs_vfstype, "swap") == 0) { continue; } mount_entry = g_new0 (GnomeVFSUnixMountPoint, 1); mount_entry->mount_path = g_strdup (fstab->fs_file); mount_entry->device_path = g_strdup (fstab->fs_spec); mount_entry->filesystem_type = g_strdup (fstab->fs_vfstype); if (strcmp (fstab->fs_type, "ro") == 0) { mount_entry->is_read_only = TRUE; } #ifdef HAVE_SYS_SYSCTL_H if (usermnt != 0) { uid_t uid = getuid (); if (stat (fstab->fs_file, &sb) == 0) { if (uid == 0 || sb.st_uid == uid) { mount_entry->is_user_mountable = TRUE; } } } #endif *return_list = g_list_prepend (*return_list, mount_entry); } endfsent (); *return_list = g_list_reverse (*return_list); return TRUE; } #else #error No _gnome_vfs_get_mount_table() implementation for system #endif static GnomeVFSMonitorHandle *fstab_monitor = NULL; static GnomeVFSUnixMountCallback fstab_callback = NULL; static GnomeVFSMonitorHandle *mtab_monitor = NULL; static GnomeVFSUnixMountCallback mtab_callback = NULL; static guint mtab_poll_tag = 0; static guint fstab_poll_tag = 0; static void fstab_monitor_callback (GnomeVFSMonitorHandle *handle, const char *monitor_uri, const char *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) { (*fstab_callback) (user_data); } static void mtab_monitor_callback (GnomeVFSMonitorHandle *handle, const char *monitor_uri, const char *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) { (*mtab_callback) (user_data); } static gboolean poll_fstab (gpointer user_data) { (*fstab_callback) (user_data); return TRUE; } static gboolean poll_mtab (gpointer user_data) { (*mtab_callback) (user_data); return TRUE; } void _gnome_vfs_monitor_unix_mounts (GnomeVFSUnixMountCallback mount_table_changed, gpointer mount_table_changed_user_data, GnomeVFSUnixMountCallback current_mounts_changed, gpointer current_mounts_user_data) { char *fstab_file; char *fstab_uri; char *mtab_file; char *mtab_uri; g_assert (fstab_monitor == NULL); g_assert (mtab_monitor == NULL); fstab_callback = mount_table_changed; mtab_callback = current_mounts_changed; fstab_file = get_fstab_file (); if (fstab_file != NULL) { fstab_uri = gnome_vfs_get_uri_from_local_path (fstab_file); gnome_vfs_monitor_add (&fstab_monitor, fstab_uri, GNOME_VFS_MONITOR_FILE, fstab_monitor_callback, mount_table_changed_user_data); g_free (fstab_uri); } mtab_file = get_mtab_monitor_file (); if (mtab_file != NULL) { mtab_uri = gnome_vfs_get_uri_from_local_path (mtab_file); gnome_vfs_monitor_add (&mtab_monitor, mtab_uri, GNOME_VFS_MONITOR_FILE, mtab_monitor_callback, current_mounts_user_data); g_free (mtab_uri); } if (fstab_monitor == NULL) { fstab_poll_tag = g_timeout_add (MOUNT_POLL_INTERVAL, poll_fstab, mount_table_changed_user_data); } if (mtab_monitor == NULL) { mtab_poll_tag = g_timeout_add (MOUNT_POLL_INTERVAL, poll_mtab, current_mounts_user_data); } } void _gnome_vfs_stop_monitoring_unix_mounts (void) { if (fstab_monitor != NULL) { gnome_vfs_monitor_cancel (fstab_monitor); fstab_monitor = NULL; } if (mtab_monitor != NULL) { gnome_vfs_monitor_cancel (mtab_monitor); mtab_monitor = NULL; } if (mtab_poll_tag != 0) { g_source_remove (mtab_poll_tag); mtab_poll_tag = 0; } if (fstab_poll_tag != 0) { g_source_remove (fstab_poll_tag); fstab_poll_tag = 0; } } void _gnome_vfs_unix_mount_free (GnomeVFSUnixMount *mount_entry) { g_free (mount_entry->mount_path); g_free (mount_entry->device_path); g_free (mount_entry->filesystem_type); g_free (mount_entry); } void _gnome_vfs_unix_mount_point_free (GnomeVFSUnixMountPoint *mount_point) { g_free (mount_point->mount_path); g_free (mount_point->device_path); g_free (mount_point->filesystem_type); g_free (mount_point->dev_opt); g_free (mount_point); } static int strcmp_null (const char *str1, const char *str2) { if (str1 == str2) { return 0; } if (str1 == NULL && str2 != NULL) { return -1; } if (str1 != NULL && str2 == NULL) { return 1; } return strcmp (str1, str2); } gint _gnome_vfs_unix_mount_compare (GnomeVFSUnixMount *mount1, GnomeVFSUnixMount *mount2) { int res; res = strcmp_null (mount1->mount_path, mount2->mount_path); if (res != 0) { return res; } res = strcmp_null (mount1->device_path, mount2->device_path); if (res != 0) { return res; } res = strcmp_null (mount1->filesystem_type, mount2->filesystem_type); if (res != 0) { return res; } res = mount1->is_read_only - mount2->is_read_only; if (res != 0) { return res; } return 0; } gint _gnome_vfs_unix_mount_point_compare (GnomeVFSUnixMountPoint *mount1, GnomeVFSUnixMountPoint *mount2) { int res; res = strcmp_null (mount1->mount_path, mount2->mount_path); if (res != 0) { return res; } res = strcmp_null (mount1->device_path, mount2->device_path); if (res != 0) { return res; } res = strcmp_null (mount1->filesystem_type, mount2->filesystem_type); if (res != 0) { return res; } res = strcmp_null (mount1->dev_opt, mount2->dev_opt); if (res != 0) { return res; } res = mount1->is_read_only - mount2->is_read_only; if (res != 0) { return res; } res = mount1->is_user_mountable - mount2->is_user_mountable; if (res != 0) { return res; } res = mount1->is_loopback - mount2->is_loopback; if (res != 0) { return res; } return 0; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-cdrom.c0000644000175000001440000001433511334251016016105 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-cdrom.c - cdrom utilities Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson Gene Z. Ragan Seth Nickell */ #include #include #include #include #include #include #include #include #include #ifdef __linux__ #include #endif #ifdef HAVE_SYS_CDIO_H #include #endif #include "gnome-vfs-iso9660.h" #include "gnome-vfs-cdrom.h" int _gnome_vfs_get_cdrom_type (const char *vol_dev_path, int* fd) { #if defined (HAVE_SYS_MNTTAB_H) /* Solaris */ GString *new_dev_path; struct cdrom_tocentry entry; struct cdrom_tochdr header; int type; /* For ioctl call to work dev_path has to be /vol/dev/rdsk. * There has to be a nicer way to do this. */ new_dev_path = g_string_new (vol_dev_path); new_dev_path = g_string_insert_c (new_dev_path, 9, 'r'); *fd = open (new_dev_path->str, O_RDONLY | O_NONBLOCK); g_string_free (new_dev_path, TRUE); if (*fd < 0) { return -1; } if (ioctl (*fd, CDROMREADTOCHDR, &header) == 0) { return -1; } type = CDS_DATA_1; for (entry.cdte_track = 1; entry.cdte_track <= header.cdth_trk1; entry.cdte_track++) { entry.cdte_format = CDROM_LBA; if (ioctl (*fd, CDROMREADTOCENTRY, &entry) == 0) { if (entry.cdte_ctrl & CDROM_DATA_TRACK) { type = CDS_AUDIO; break; } } } return type; #elif defined(HAVE_SYS_MNTCTL_H) return CDS_NO_INFO; #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) struct ioc_toc_header header; #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) struct ioc_read_toc_single_entry entry; #else struct ioc_read_toc_entry entries; struct cd_toc_entry entry; int i; #endif int type; #ifndef CDROM_DATA_TRACK #define CDROM_DATA_TRACK 4 #endif *fd = open (vol_dev_path, O_RDONLY|O_NONBLOCK); if (*fd < 0) { return -1; } if (ioctl (*fd, CDIOREADTOCHEADER, &header) == 0) { return -1; } type = CDS_DATA_1; #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) for (entry.track = header.starting_track; entry.track <= header.ending_track; entry.track++) { entry.address_format = CD_LBA_FORMAT; if (ioctl (*fd, CDIOREADTOCENTRY, &entry) == 0) { if (entry.entry.control & CDROM_DATA_TRACK) { type = CDS_AUDIO; break; } } } #else /* defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)*/ entries.data_len = sizeof(entry); entries.data = &entry; for (i = header.starting_track; i <= header.ending_track; i++) { entries.starting_track = i; entries.address_format = CD_LBA_FORMAT; if (ioctl (*fd, CDIOREADTOCENTRYS, &entries) == 0) { if (entry.control & CDROM_DATA_TRACK) { type = CDS_AUDIO; break; } } } #endif /* defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)*/ return type; #elif defined(__linux__) *fd = open (vol_dev_path, O_RDONLY|O_NONBLOCK); if (*fd < 0) { return -1; } if (ioctl (*fd, CDROM_DRIVE_STATUS, CDSL_CURRENT) != CDS_DISC_OK) { close (*fd); *fd = -1; return -1; } return ioctl (*fd, CDROM_DISC_STATUS, CDSL_CURRENT); #else /* defined(__linux__) */ return CDS_NO_INFO; #endif /* defined(__linux__) */ } #ifdef __linux__ static int get_iso9660_volume_name_data_track_offset (int fd) { struct cdrom_tocentry toc; char toc_header[2]; int i, offset; if (ioctl (fd, CDROMREADTOCHDR, &toc_header)) { return 0; } for (i = toc_header[0]; i <= toc_header[1]; i++) { memset (&toc, 0, sizeof (struct cdrom_tocentry)); toc.cdte_track = i; toc.cdte_format = CDROM_MSF; if (ioctl (fd, CDROMREADTOCENTRY, &toc)) { return 0; } if (toc.cdte_ctrl & CDROM_DATA_TRACK) { offset = ((i == 1) ? 0 : (int)toc.cdte_addr.msf.frame + (int)toc.cdte_addr.msf.second*75 + (int)toc.cdte_addr.msf.minute*75*60 - 150); return offset; } } return 0; } #endif char * _gnome_vfs_get_iso9660_volume_name (int fd) { struct iso_primary_descriptor iso_buffer; int offset; int i; int vd_alt_offset; gchar *joliet_label; memset (&iso_buffer, 0, sizeof (struct iso_primary_descriptor)); #ifdef __linux__ offset = get_iso9660_volume_name_data_track_offset (fd); #else offset = 0; #endif #define ISO_SECTOR_SIZE 2048 #define ISO_ROOT_START (ISO_SECTOR_SIZE * (offset + 16)) #define ISO_VD_MAX 84 joliet_label = NULL; for (i = 0, vd_alt_offset = ISO_ROOT_START + ISO_SECTOR_SIZE; i < ISO_VD_MAX; i++, vd_alt_offset += ISO_SECTOR_SIZE) { lseek (fd, (off_t) vd_alt_offset, SEEK_SET); read (fd, &iso_buffer, ISO_SECTOR_SIZE); if ((unsigned char)iso_buffer.type[0] == ISO_VD_END) break; if (iso_buffer.type[0] != ISO_VD_SUPPLEMENTARY) continue; joliet_label = g_convert (iso_buffer.volume_id, 32, "UTF-8", "UTF-16BE", NULL, NULL, NULL); if (!joliet_label) continue; break; } lseek (fd, (off_t) ISO_ROOT_START, SEEK_SET); read (fd, &iso_buffer, ISO_SECTOR_SIZE); if (iso_buffer.volume_id[0] == 0 && !joliet_label) { return g_strdup (_("ISO 9660 Volume")); } if (joliet_label) { if (strncmp (joliet_label, iso_buffer.volume_id, 16) != 0) return joliet_label; g_free (joliet_label); } return g_strndup (iso_buffer.volume_id, 32); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-callback-marshall.c0000644000175000001440000006003711334251016021621 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include "gnome-vfs-module-callback.h" #include "gnome-vfs-module-callback-module-api.h" #include "gnome-vfs-module-callback-private.h" #include "gnome-vfs-backend.h" #include "gnome-vfs-private.h" #include "gnome-vfs-standard-callbacks.h" #include "gnome-vfs-dbus-utils.h" static void utils_append_string_or_null (DBusMessageIter *iter, const gchar *str) { if (str == NULL) str = ""; dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &str); } static gchar * utils_get_string_or_null (DBusMessageIter *iter, gboolean empty_is_null) { const gchar *str; dbus_message_iter_get_basic (iter, &str); if (empty_is_null && *str == 0) { return NULL; } else { return g_strdup (str); } } static gboolean fill_auth_marshal_in (gconstpointer in, gsize in_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackFillAuthenticationIn *auth_in; gint32 i; if (in_size != sizeof (GnomeVFSModuleCallbackFillAuthenticationIn)) { return FALSE; } auth_in = in; utils_append_string_or_null (iter, auth_in->uri); utils_append_string_or_null (iter, auth_in->protocol); utils_append_string_or_null (iter, auth_in->server); utils_append_string_or_null (iter, auth_in->object); i = auth_in->port; dbus_message_iter_append_basic (iter, DBUS_TYPE_INT32, &i); utils_append_string_or_null (iter, auth_in->username); utils_append_string_or_null (iter, auth_in->authtype); utils_append_string_or_null (iter, auth_in->domain); return TRUE; } static gboolean fill_auth_demarshal_in (DBusMessageIter *iter, gpointer *in, gsize *in_size, gpointer *out, gsize *out_size) { GnomeVFSModuleCallbackFillAuthenticationIn *auth_in; gint32 i; auth_in = *in = g_new0 (GnomeVFSModuleCallbackFillAuthenticationIn, 1); *in_size = sizeof (GnomeVFSModuleCallbackFillAuthenticationIn); *out = g_new0 (GnomeVFSModuleCallbackFillAuthenticationOut, 1); *out_size = sizeof (GnomeVFSModuleCallbackFillAuthenticationOut); auth_in->uri = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->protocol = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->server = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->object = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); dbus_message_iter_get_basic (iter, &i); auth_in->port = i; dbus_message_iter_next (iter); auth_in->username = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->authtype = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->domain = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); return TRUE; } static gboolean fill_auth_marshal_out (gconstpointer out, gsize out_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackFillAuthenticationOut *auth_out; gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackFillAuthenticationOut)) { return FALSE; } auth_out = out; b = auth_out->valid; dbus_message_iter_append_basic (iter, DBUS_TYPE_BOOLEAN, &b); utils_append_string_or_null (iter, auth_out->username); utils_append_string_or_null (iter, auth_out->domain); utils_append_string_or_null (iter, auth_out->password); return TRUE; } static gboolean fill_auth_demarshal_out (DBusMessageIter *iter, gpointer out, gsize out_size) { GnomeVFSModuleCallbackFillAuthenticationOut *auth_out; gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackFillAuthenticationOut)) { return FALSE; } auth_out = out; dbus_message_iter_get_basic (iter, &b); auth_out->valid = b; dbus_message_iter_next (iter); auth_out->username = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_out->domain = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_out->password = utils_get_string_or_null (iter, TRUE); return TRUE; } static void fill_auth_free_in (gpointer in) { GnomeVFSModuleCallbackFillAuthenticationIn *auth_in; auth_in = in; g_free (auth_in->uri); g_free (auth_in->protocol); g_free (auth_in->server); g_free (auth_in->object); g_free (auth_in->authtype); g_free (auth_in->username); g_free (auth_in->domain); g_free (auth_in); } static void fill_auth_free_out (gpointer out) { GnomeVFSModuleCallbackFillAuthenticationOut *auth_out; auth_out = out; g_free (auth_out->username); g_free (auth_out->domain); g_free (auth_out->password); g_free (auth_out); } static gboolean auth_marshal_in (gconstpointer in, gsize in_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackAuthenticationIn *auth_in; gboolean b; gint32 i; if (in_size != sizeof (GnomeVFSModuleCallbackAuthenticationIn)) { return FALSE; } auth_in = in; utils_append_string_or_null (iter, auth_in->uri); utils_append_string_or_null (iter, auth_in->realm); b = auth_in->previous_attempt_failed; dbus_message_iter_append_basic (iter, DBUS_TYPE_BOOLEAN, &b); i = auth_in->auth_type; dbus_message_iter_append_basic (iter, DBUS_TYPE_INT32, &i); return TRUE; } static gboolean auth_demarshal_in (DBusMessageIter *iter, gpointer *in, gsize *in_size, gpointer *out, gsize *out_size) { GnomeVFSModuleCallbackAuthenticationIn *auth_in; gboolean b; gint32 i; auth_in = *in = g_new0 (GnomeVFSModuleCallbackAuthenticationIn, 1); *in_size = sizeof (GnomeVFSModuleCallbackAuthenticationIn); *out = g_new0 (GnomeVFSModuleCallbackAuthenticationOut, 1); *out_size = sizeof (GnomeVFSModuleCallbackAuthenticationOut); auth_in->uri = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->realm = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); dbus_message_iter_get_basic (iter, &b); auth_in->previous_attempt_failed = b; dbus_message_iter_next (iter); dbus_message_iter_get_basic (iter, &i); auth_in->auth_type = i; dbus_message_iter_next (iter); return TRUE; } static gboolean auth_marshal_out (gconstpointer out, gsize out_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackAuthenticationOut *auth_out; gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackAuthenticationOut)) { return FALSE; } auth_out = out; b = auth_out->username == NULL; dbus_message_iter_append_basic (iter, DBUS_TYPE_BOOLEAN, &b); utils_append_string_or_null (iter, auth_out->username); utils_append_string_or_null (iter, auth_out->password); return TRUE; } static gboolean auth_demarshal_out (DBusMessageIter *iter, gpointer out, gsize out_size) { GnomeVFSModuleCallbackAuthenticationOut *auth_out; gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackAuthenticationOut)) { return FALSE; } auth_out = out; dbus_message_iter_get_basic (iter, &b); dbus_message_iter_next (iter); auth_out->username = utils_get_string_or_null (iter, b); dbus_message_iter_next (iter); auth_out->password = utils_get_string_or_null (iter, b); dbus_message_iter_next (iter); return TRUE; } static void auth_free_in (gpointer in) { GnomeVFSModuleCallbackAuthenticationIn *auth_in; auth_in = in; g_free (auth_in->uri); g_free (auth_in->realm); g_free (auth_in); } static void auth_free_out (gpointer out) { GnomeVFSModuleCallbackAuthenticationOut *auth_out; auth_out = out; g_free (auth_out->username); g_free (auth_out->password); g_free (auth_out); } static gboolean full_auth_marshal_in (gconstpointer in, gsize in_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackFullAuthenticationIn *auth_in; gint32 i; if (in_size != sizeof (GnomeVFSModuleCallbackFullAuthenticationIn)) { return FALSE; } auth_in = in; i = auth_in->flags; dbus_message_iter_append_basic (iter, DBUS_TYPE_INT32, &i); utils_append_string_or_null (iter, auth_in->uri); utils_append_string_or_null (iter, auth_in->protocol); utils_append_string_or_null (iter, auth_in->server); utils_append_string_or_null (iter, auth_in->object); i = auth_in->port; dbus_message_iter_append_basic (iter, DBUS_TYPE_INT32, &i); utils_append_string_or_null (iter, auth_in->username); utils_append_string_or_null (iter, auth_in->authtype); utils_append_string_or_null (iter, auth_in->domain); utils_append_string_or_null (iter, auth_in->default_user); utils_append_string_or_null (iter, auth_in->default_domain); return TRUE; } static gboolean full_auth_demarshal_in (DBusMessageIter *iter, gpointer *in, gsize *in_size, gpointer *out, gsize *out_size) { GnomeVFSModuleCallbackFullAuthenticationIn *auth_in; gint32 i; auth_in = *in = g_new0 (GnomeVFSModuleCallbackFullAuthenticationIn, 1); *in_size = sizeof (GnomeVFSModuleCallbackFullAuthenticationIn); *out = g_new0 (GnomeVFSModuleCallbackFullAuthenticationOut, 1); *out_size = sizeof (GnomeVFSModuleCallbackFullAuthenticationOut); dbus_message_iter_get_basic (iter, &i); auth_in->flags = i; dbus_message_iter_next (iter); auth_in->uri = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->protocol = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->server = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->object = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); dbus_message_iter_get_basic (iter, &i); auth_in->port = i; dbus_message_iter_next (iter); auth_in->username = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->authtype = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->domain = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->default_user = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->default_domain = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); return TRUE; } static gboolean full_auth_marshal_out (gconstpointer out, gsize out_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackFullAuthenticationOut *auth_out; gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackFullAuthenticationOut)) { return FALSE; } auth_out = out; b = auth_out->abort_auth; dbus_message_iter_append_basic (iter, DBUS_TYPE_BOOLEAN, &b); utils_append_string_or_null (iter, auth_out->username); utils_append_string_or_null (iter, auth_out->domain); utils_append_string_or_null (iter, auth_out->password); b = auth_out->save_password; dbus_message_iter_append_basic (iter, DBUS_TYPE_BOOLEAN, &b); utils_append_string_or_null (iter, auth_out->keyring); return TRUE; } static gboolean full_auth_demarshal_out (DBusMessageIter *iter, gpointer out, gsize out_size) { GnomeVFSModuleCallbackFullAuthenticationOut *auth_out; gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackFullAuthenticationOut)) { return FALSE; } auth_out = out; dbus_message_iter_get_basic (iter, &b); auth_out->abort_auth = b; dbus_message_iter_next (iter); auth_out->username = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_out->domain = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_out->password = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); dbus_message_iter_get_basic (iter, &b); auth_out->save_password = b; dbus_message_iter_next (iter); auth_out->keyring = utils_get_string_or_null (iter, TRUE); return TRUE; } static void full_auth_free_in (gpointer in) { GnomeVFSModuleCallbackFullAuthenticationIn *auth_in; auth_in = in; g_free (auth_in->uri); g_free (auth_in->protocol); g_free (auth_in->server); g_free (auth_in->object); g_free (auth_in->authtype); g_free (auth_in->username); g_free (auth_in->domain); g_free (auth_in->default_user); g_free (auth_in->default_domain); g_free (auth_in); } static void full_auth_free_out (gpointer out) { GnomeVFSModuleCallbackFullAuthenticationOut *auth_out; auth_out = out; g_free (auth_out->username); g_free (auth_out->domain); g_free (auth_out->password); g_free (auth_out->keyring); g_free (auth_out); } static gboolean save_auth_marshal_in (gconstpointer in, gsize in_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackSaveAuthenticationIn *auth_in; gint32 i; if (in_size != sizeof (GnomeVFSModuleCallbackSaveAuthenticationIn)) { return FALSE; } auth_in = in; utils_append_string_or_null (iter, auth_in->keyring); utils_append_string_or_null (iter, auth_in->uri); utils_append_string_or_null (iter, auth_in->protocol); utils_append_string_or_null (iter, auth_in->server); utils_append_string_or_null (iter, auth_in->object); i = auth_in->port; dbus_message_iter_append_basic (iter, DBUS_TYPE_INT32, &i); utils_append_string_or_null (iter, auth_in->username); utils_append_string_or_null (iter, auth_in->authtype); utils_append_string_or_null (iter, auth_in->domain); utils_append_string_or_null (iter, auth_in->password); return TRUE; } static gboolean save_auth_demarshal_in (DBusMessageIter *iter, gpointer *in, gsize *in_size, gpointer *out, gsize *out_size) { GnomeVFSModuleCallbackSaveAuthenticationIn *auth_in; gint32 i; auth_in = *in = g_new0 (GnomeVFSModuleCallbackSaveAuthenticationIn, 1); *in_size = sizeof (GnomeVFSModuleCallbackSaveAuthenticationIn); *out = g_new0 (GnomeVFSModuleCallbackSaveAuthenticationOut, 1); *out_size = sizeof (GnomeVFSModuleCallbackSaveAuthenticationOut); auth_in->keyring = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->uri = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->protocol = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->server = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->object = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); dbus_message_iter_get_basic (iter, &i); auth_in->port = i; dbus_message_iter_next (iter); auth_in->username = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->authtype = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->domain = utils_get_string_or_null (iter, TRUE); dbus_message_iter_next (iter); auth_in->password = utils_get_string_or_null (iter, FALSE); dbus_message_iter_next (iter); return TRUE; } static gboolean save_auth_marshal_out (gconstpointer out, gsize out_size, DBusMessageIter *iter) { gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackSaveAuthenticationOut)) { return FALSE; } /* Must marshal something */ b = TRUE; dbus_message_iter_append_basic (iter, DBUS_TYPE_BOOLEAN, &b); return TRUE; } static gboolean save_auth_demarshal_out (DBusMessageIter *iter, gpointer out, gsize out_size) { gboolean b; if (out_size != sizeof (GnomeVFSModuleCallbackSaveAuthenticationOut)) { return FALSE; } dbus_message_iter_get_basic (iter, &b); return TRUE; } static void save_auth_free_in (gpointer in) { GnomeVFSModuleCallbackSaveAuthenticationIn *auth_in; auth_in = in; g_free (auth_in->keyring); g_free (auth_in->uri); g_free (auth_in->protocol); g_free (auth_in->server); g_free (auth_in->object); g_free (auth_in->authtype); g_free (auth_in->username); g_free (auth_in->domain); g_free (auth_in->password); g_free (auth_in); } static void save_auth_free_out (gpointer out) { GnomeVFSModuleCallbackSaveAuthenticationOut *auth_out; auth_out = out; g_free (auth_out); } static gboolean question_marshal_in (gconstpointer in, gsize in_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackQuestionIn *question_in; DBusMessageIter array_iter; int cnt; if (in_size != sizeof (GnomeVFSModuleCallbackQuestionIn)) { return FALSE; } question_in = in; utils_append_string_or_null (iter, question_in->primary_message); utils_append_string_or_null (iter, question_in->secondary_message); if (!dbus_message_iter_open_container (iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &array_iter)) { return FALSE; } if (question_in->choices) { for (cnt=0; question_in->choices[cnt] != NULL; cnt++) { utils_append_string_or_null (&array_iter, question_in->choices[cnt]); } } if (!dbus_message_iter_close_container (iter, &array_iter)) { return FALSE; } return TRUE; } static gboolean question_demarshal_in (DBusMessageIter *iter, gpointer *in, gsize *in_size, gpointer *out, gsize *out_size) { GnomeVFSModuleCallbackQuestionIn *question_in; DBusMessageIter array_iter; int cnt; question_in = *in = g_new0 (GnomeVFSModuleCallbackQuestionIn, 1); *in_size = sizeof (GnomeVFSModuleCallbackQuestionIn); *out = g_new0 (GnomeVFSModuleCallbackQuestionOut, 1); *out_size = sizeof (GnomeVFSModuleCallbackQuestionOut); question_in->primary_message = utils_get_string_or_null (iter, FALSE); dbus_message_iter_next (iter); question_in->secondary_message = utils_get_string_or_null (iter, FALSE); dbus_message_iter_next (iter); if (dbus_message_iter_get_arg_type (iter) == DBUS_TYPE_ARRAY) { dbus_message_iter_recurse (iter, &array_iter); cnt = 0; while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRING) { cnt++; if (!dbus_message_iter_has_next (&array_iter)) { break; } dbus_message_iter_next (&array_iter); } question_in->choices = g_new (char *, cnt + 1); dbus_message_iter_recurse (iter, &array_iter); cnt = 0; while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRING) { question_in->choices[cnt++] = utils_get_string_or_null (&array_iter, FALSE); if (!dbus_message_iter_has_next (&array_iter)) { break; } dbus_message_iter_next (&array_iter); } question_in->choices[cnt++] = NULL; } dbus_message_iter_next (iter); return TRUE; } static gboolean question_marshal_out (gconstpointer out, gsize out_size, DBusMessageIter *iter) { const GnomeVFSModuleCallbackQuestionOut *question_out; gint32 i; if (out_size != sizeof (GnomeVFSModuleCallbackQuestionOut)) { return FALSE; } question_out = out; i = question_out->answer; dbus_message_iter_append_basic (iter, DBUS_TYPE_INT32, &i); return TRUE; } static gboolean question_demarshal_out (DBusMessageIter *iter, gpointer out, gsize out_size) { GnomeVFSModuleCallbackQuestionOut *question_out; gint32 i; if (out_size != sizeof (GnomeVFSModuleCallbackQuestionOut)) { return FALSE; } question_out = out; dbus_message_iter_get_basic (iter, &i); question_out->answer = i; dbus_message_iter_next (iter); return TRUE; } static void question_free_in (gpointer in) { GnomeVFSModuleCallbackQuestionIn *question_in; question_in = in; g_free (question_in->primary_message); g_free (question_in->secondary_message); g_strfreev (question_in->choices); g_free (question_in); } static void question_free_out (gpointer out) { GnomeVFSModuleCallbackQuestionOut *question_out; question_out = out; g_free (question_out); } struct ModuleCallbackMarshaller { char *name; gboolean (*marshal_in)(gconstpointer in, gsize in_size, DBusMessageIter *message); gboolean (*demarshal_in)(DBusMessageIter *iter, gpointer *in, gsize *in_size, gpointer *out, gsize *out_size); gboolean (*marshal_out)(gconstpointer out, gsize out_size, DBusMessageIter *iter); gboolean (*demarshal_out)(DBusMessageIter *iter, gpointer out, gsize out_size); void (*free_in)(gpointer in); void (*free_out)(gpointer out); }; static struct ModuleCallbackMarshaller module_callback_marshallers[] = { { GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION, auth_marshal_in, auth_demarshal_in, auth_marshal_out, auth_demarshal_out, auth_free_in, auth_free_out }, { GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION, auth_marshal_in, auth_demarshal_in, auth_marshal_out, auth_demarshal_out, auth_free_in, auth_free_out }, { GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, full_auth_marshal_in, full_auth_demarshal_in, full_auth_marshal_out, full_auth_demarshal_out, full_auth_free_in, full_auth_free_out }, { GNOME_VFS_MODULE_CALLBACK_FILL_AUTHENTICATION, fill_auth_marshal_in, fill_auth_demarshal_in, fill_auth_marshal_out, fill_auth_demarshal_out, fill_auth_free_in, fill_auth_free_out }, { GNOME_VFS_MODULE_CALLBACK_SAVE_AUTHENTICATION, save_auth_marshal_in, save_auth_demarshal_in, save_auth_marshal_out, save_auth_demarshal_out, save_auth_free_in, save_auth_free_out }, { GNOME_VFS_MODULE_CALLBACK_QUESTION, question_marshal_in, question_demarshal_in, question_marshal_out, question_demarshal_out, question_free_in, question_free_out }, }; static struct ModuleCallbackMarshaller * lookup_marshaller (const char *callback_name) { int i; for (i = 0; i < G_N_ELEMENTS (module_callback_marshallers); i++) { if (strcmp (module_callback_marshallers[i].name, callback_name) == 0) { return &module_callback_marshallers[i]; } } return NULL; } gboolean _gnome_vfs_module_callback_marshal_invoke (const char *callback_name, gconstpointer in, gsize in_size, gpointer out, gsize out_size) { DBusMessage *message; DBusMessage *reply; DBusConnection *conn; struct ModuleCallbackMarshaller *marshaller; DBusError error; DBusMessageIter iter; conn = _gnome_vfs_daemon_get_current_connection (); if (conn == NULL) { return FALSE; } marshaller = lookup_marshaller (callback_name); if (marshaller == NULL) { return FALSE; } message = dbus_message_new_method_call (NULL, DVD_CLIENT_OBJECT, DVD_CLIENT_INTERFACE, DVD_CLIENT_METHOD_CALLBACK); dbus_message_append_args (message, DBUS_TYPE_STRING, &callback_name, DBUS_TYPE_INVALID); dbus_message_iter_init_append (message, &iter); if (!(marshaller->marshal_in)(in, in_size, &iter)) { dbus_message_unref (message); return FALSE; } dbus_error_init (&error); reply = dbus_connection_send_with_reply_and_block (conn, message, -1, &error); dbus_message_unref (message); if (reply == NULL) { return FALSE; } if (!dbus_message_iter_init (reply, &iter)) { dbus_message_unref (reply); return FALSE; } if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_INVALID) { dbus_message_unref (reply); return FALSE; } if (!(marshaller->demarshal_out)(&iter, out, out_size)) { dbus_message_unref (reply); return FALSE; } dbus_message_unref (reply); return TRUE; } gboolean _gnome_vfs_module_callback_demarshal_invoke (const char *callback_name, DBusMessageIter *iter_in, DBusMessage *reply) { gboolean res; gpointer in, out; gsize in_size, out_size; struct ModuleCallbackMarshaller *marshaller; DBusMessageIter iter_out; marshaller = lookup_marshaller (callback_name); if (marshaller == NULL) { return FALSE; } if (!(marshaller->demarshal_in) (iter_in, &in, &in_size, &out, &out_size)) { return FALSE; } res = gnome_vfs_module_callback_invoke (callback_name, in, in_size, out, out_size); if (!res) { (marshaller->free_in) (in); g_free (out); /* only shallow free necessary */ return FALSE; } (marshaller->free_in) (in); dbus_message_iter_init_append (reply, &iter_out); res = (marshaller->marshal_out)(out, out_size, &iter_out); (marshaller->free_out) (out); return res; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ops.h0000644000175000001440000001243111334251016015602 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-ops.h - Synchronous operations for the GNOME Virtual File System. Copyright (C) 1999, 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Seth Nickell */ #ifndef GNOME_VFS_OPS_H #define GNOME_VFS_OPS_H #include #include #include #include G_BEGIN_DECLS GnomeVFSResult gnome_vfs_open (GnomeVFSHandle **handle, const gchar *text_uri, GnomeVFSOpenMode open_mode); GnomeVFSResult gnome_vfs_open_uri (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode); GnomeVFSResult gnome_vfs_create (GnomeVFSHandle **handle, const gchar *text_uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm); GnomeVFSResult gnome_vfs_create_uri (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm); GnomeVFSResult gnome_vfs_close (GnomeVFSHandle *handle); GnomeVFSResult gnome_vfs_read (GnomeVFSHandle *handle, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read); GnomeVFSResult gnome_vfs_write (GnomeVFSHandle *handle, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written); GnomeVFSResult gnome_vfs_seek (GnomeVFSHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset); GnomeVFSResult gnome_vfs_tell (GnomeVFSHandle *handle, GnomeVFSFileSize *offset_return); GnomeVFSResult gnome_vfs_get_file_info (const gchar *text_uri, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options); GnomeVFSResult gnome_vfs_get_file_info_uri (GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options); GnomeVFSResult gnome_vfs_get_file_info_from_handle (GnomeVFSHandle *handle, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options); GnomeVFSResult gnome_vfs_truncate (const gchar *text_uri, GnomeVFSFileSize length); GnomeVFSResult gnome_vfs_truncate_uri (GnomeVFSURI *uri, GnomeVFSFileSize length); GnomeVFSResult gnome_vfs_truncate_handle (GnomeVFSHandle *handle, GnomeVFSFileSize length); GnomeVFSResult gnome_vfs_make_directory_for_uri (GnomeVFSURI *uri, guint perm); GnomeVFSResult gnome_vfs_make_directory (const gchar *text_uri, guint perm); GnomeVFSResult gnome_vfs_remove_directory_from_uri (GnomeVFSURI *uri); GnomeVFSResult gnome_vfs_remove_directory (const gchar *text_uri); GnomeVFSResult gnome_vfs_unlink_from_uri (GnomeVFSURI *uri); GnomeVFSResult gnome_vfs_create_symbolic_link (GnomeVFSURI *uri, const gchar *target_reference); GnomeVFSResult gnome_vfs_unlink (const gchar *text_uri); GnomeVFSResult gnome_vfs_move_uri (GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace); GnomeVFSResult gnome_vfs_move (const gchar *old_text_uri, const gchar *new_text_uri, gboolean force_replace); GnomeVFSResult gnome_vfs_check_same_fs_uris (GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, gboolean *same_fs_return); GnomeVFSResult gnome_vfs_check_same_fs (const gchar *source, const gchar *target, gboolean *same_fs_return); gboolean gnome_vfs_uri_exists (GnomeVFSURI *uri); GnomeVFSResult gnome_vfs_set_file_info_uri (GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask); GnomeVFSResult gnome_vfs_set_file_info (const gchar *text_uri, GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask); GnomeVFSResult gnome_vfs_monitor_add (GnomeVFSMonitorHandle **handle, const gchar *text_uri, GnomeVFSMonitorType monitor_type, GnomeVFSMonitorCallback callback, gpointer user_data); GnomeVFSResult gnome_vfs_monitor_cancel (GnomeVFSMonitorHandle *handle); GnomeVFSResult gnome_vfs_file_control (GnomeVFSHandle *handle, const char *operation, gpointer operation_data); GnomeVFSResult gnome_vfs_forget_cache (GnomeVFSHandle *handle, GnomeVFSFileOffset offset, GnomeVFSFileSize size); G_END_DECLS #endif /* GNOME_VFS_OPS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-enum-types.h0000644000175000001440000001140411450333352017111 00000000000000 #ifndef __LIBGNOMEVFS_ENUM_TYPES_H__ #define __LIBGNOMEVFS_ENUM_TYPES_H__ #include G_BEGIN_DECLS /* enumerations from "gnome-vfs-directory.h" */ GType gnome_vfs_directory_visit_options_get_type (void); #define GNOME_VFS_TYPE_VFS_DIRECTORY_VISIT_OPTIONS (gnome_vfs_directory_visit_options_get_type()) /* enumerations from "gnome-vfs-file-info.h" */ GType gnome_vfs_file_flags_get_type (void); #define GNOME_VFS_TYPE_VFS_FILE_FLAGS (gnome_vfs_file_flags_get_type()) GType gnome_vfs_file_type_get_type (void); #define GNOME_VFS_TYPE_VFS_FILE_TYPE (gnome_vfs_file_type_get_type()) GType gnome_vfs_file_info_fields_get_type (void); #define GNOME_VFS_TYPE_VFS_FILE_INFO_FIELDS (gnome_vfs_file_info_fields_get_type()) GType gnome_vfs_file_permissions_get_type (void); #define GNOME_VFS_TYPE_VFS_FILE_PERMISSIONS (gnome_vfs_file_permissions_get_type()) GType gnome_vfs_file_info_options_get_type (void); #define GNOME_VFS_TYPE_VFS_FILE_INFO_OPTIONS (gnome_vfs_file_info_options_get_type()) GType gnome_vfs_set_file_info_mask_get_type (void); #define GNOME_VFS_TYPE_VFS_SET_FILE_INFO_MASK (gnome_vfs_set_file_info_mask_get_type()) /* enumerations from "gnome-vfs-find-directory.h" */ GType gnome_vfs_find_directory_kind_get_type (void); #define GNOME_VFS_TYPE_VFS_FIND_DIRECTORY_KIND (gnome_vfs_find_directory_kind_get_type()) /* enumerations from "gnome-vfs-handle.h" */ GType gnome_vfs_open_mode_get_type (void); #define GNOME_VFS_TYPE_VFS_OPEN_MODE (gnome_vfs_open_mode_get_type()) GType gnome_vfs_seek_position_get_type (void); #define GNOME_VFS_TYPE_VFS_SEEK_POSITION (gnome_vfs_seek_position_get_type()) /* enumerations from "gnome-vfs-mime-deprecated.h" */ GType gnome_vfs_mime_action_type_get_type (void); #define GNOME_VFS_TYPE_VFS_MIME_ACTION_TYPE (gnome_vfs_mime_action_type_get_type()) /* enumerations from "gnome-vfs-mime-handlers.h" */ GType gnome_vfs_mime_application_argument_type_get_type (void); #define GNOME_VFS_TYPE_VFS_MIME_APPLICATION_ARGUMENT_TYPE (gnome_vfs_mime_application_argument_type_get_type()) /* enumerations from "gnome-vfs-mime-utils.h" */ GType gnome_vfs_mime_equivalence_get_type (void); #define GNOME_VFS_TYPE_VFS_MIME_EQUIVALENCE (gnome_vfs_mime_equivalence_get_type()) /* enumerations from "gnome-vfs-monitor.h" */ GType gnome_vfs_monitor_type_get_type (void); #define GNOME_VFS_TYPE_VFS_MONITOR_TYPE (gnome_vfs_monitor_type_get_type()) GType gnome_vfs_monitor_event_type_get_type (void); #define GNOME_VFS_TYPE_VFS_MONITOR_EVENT_TYPE (gnome_vfs_monitor_event_type_get_type()) /* enumerations from "gnome-vfs-result.h" */ GType gnome_vfs_result_get_type (void); #define GNOME_VFS_TYPE_VFS_RESULT (gnome_vfs_result_get_type()) /* enumerations from "gnome-vfs-standard-callbacks.h" */ GType gnome_vfs_module_callback_full_authentication_flags_get_type (void); #define GNOME_VFS_TYPE_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_FLAGS (gnome_vfs_module_callback_full_authentication_flags_get_type()) GType gnome_vfs_module_callback_full_authentication_out_flags_get_type (void); #define GNOME_VFS_TYPE_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_FLAGS (gnome_vfs_module_callback_full_authentication_out_flags_get_type()) GType gnome_vfs_module_callback_authentication_auth_type_get_type (void); #define GNOME_VFS_TYPE_VFS_MODULE_CALLBACK_AUTHENTICATION_AUTH_TYPE (gnome_vfs_module_callback_authentication_auth_type_get_type()) /* enumerations from "gnome-vfs-utils.h" */ GType gnome_vfs_make_uri_dirs_get_type (void); #define GNOME_VFS_TYPE_VFS_MAKE_URI_DIRS (gnome_vfs_make_uri_dirs_get_type()) /* enumerations from "gnome-vfs-volume.h" */ GType gnome_vfs_device_type_get_type (void); #define GNOME_VFS_TYPE_VFS_DEVICE_TYPE (gnome_vfs_device_type_get_type()) GType gnome_vfs_volume_type_get_type (void); #define GNOME_VFS_TYPE_VFS_VOLUME_TYPE (gnome_vfs_volume_type_get_type()) /* enumerations from "gnome-vfs-xfer.h" */ GType gnome_vfs_xfer_options_get_type (void); #define GNOME_VFS_TYPE_VFS_XFER_OPTIONS (gnome_vfs_xfer_options_get_type()) GType gnome_vfs_xfer_progress_status_get_type (void); #define GNOME_VFS_TYPE_VFS_XFER_PROGRESS_STATUS (gnome_vfs_xfer_progress_status_get_type()) GType gnome_vfs_xfer_overwrite_mode_get_type (void); #define GNOME_VFS_TYPE_VFS_XFER_OVERWRITE_MODE (gnome_vfs_xfer_overwrite_mode_get_type()) GType gnome_vfs_xfer_overwrite_action_get_type (void); #define GNOME_VFS_TYPE_VFS_XFER_OVERWRITE_ACTION (gnome_vfs_xfer_overwrite_action_get_type()) GType gnome_vfs_xfer_error_mode_get_type (void); #define GNOME_VFS_TYPE_VFS_XFER_ERROR_MODE (gnome_vfs_xfer_error_mode_get_type()) GType gnome_vfs_xfer_error_action_get_type (void); #define GNOME_VFS_TYPE_VFS_XFER_ERROR_ACTION (gnome_vfs_xfer_error_action_get_type()) GType gnome_vfs_xfer_phase_get_type (void); #define GNOME_VFS_TYPE_VFS_XFER_PHASE (gnome_vfs_xfer_phase_get_type()) G_END_DECLS #endif /* __LIBGNOMEVFS_ENUM_TYPES_H__ */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-version.h.in0000644000175000001440000000312011334251016017066 00000000000000/* gnome-vfs-version.h - GnomeVFS version checking Copyright (C) 2006 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_VERSION_H #define GNOME_VFS_VERSION_H /* compile time versioning */ #define GNOME_VFS_MAJOR_VERSION (@LIBGNOMEVFS_MAJOR_VERSION@) #define GNOME_VFS_MINOR_VERSION (@LIBGNOMEVFS_MINOR_VERSION@) #define GNOME_VFS_MICRO_VERSION (@LIBGNOMEVFS_MICRO_VERSION@) /* check whether a GnomeVFS version equal to or greater than * major.minor.micro is present. */ #define GNOME_VFS_CHECK_VERSION(major,minor,micro) \ (GNOME_VFS_MAJOR_VERSION > (major) || \ (GNOME_VFS_MAJOR_VERSION == (major) && \ GNOME_VFS_MINOR_VERSION > (minor)) || \ (GNOME_VFS_MAJOR_VERSION == (major) && \ GNOME_VFS_MINOR_VERSION == (minor) && \ GNOME_VFS_MICRO_VERSION >= (micro))) #endif /* GNOME_VFS_VERSION_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-uri.c0000644000175000001440000015655211334251016015610 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-uri.c - URI handling for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000, 2001 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-uri.h" #include "gnome-vfs-module.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-transform.h" #include "gnome-vfs-utils.h" #include #include #include /* split_toplevel_uri Extract hostname and username from "path" with length "path_len" examples: sunsite.unc.edu/pub/linux miguel@sphinx.nuclecu.unam.mx/c/nc tsx-11.mit.edu:8192/ joe@foo.edu:11321/private joe:password@foo.se This function implements the following regexp: (whitespace for clarity) ( ( ([^:@/]*) (:[^@/]*)? @ )? ([^/:]*) (:([0-9]*)?) )? (/.*)? ( ( ( user ) ( pw )? )? (host) (port)? )? (path )? It returns NULL if neither nor could be matched. port is checked to ensure that it does not exceed 0xffff. return value is or is "/" if the path portion is not present All other arguments are set to 0 or NULL if their portions are not present pedantic: this function ends up doing an unbounded lookahead, making it potentially O(n^2) instead of O(n). This could be avoided. Realistically, though, its just the password field. Differences between the old and the new implemention: Old New localhost:8080 host="localhost:8080" host="localhost" port=8080 /Users/mikef host="" host=NULL */ #define URI_MOVE_PAST_DELIMITER \ do { \ cur_tok_start = (++cur); \ if (path_end == cur) { \ success = FALSE; \ goto done; \ } \ } while (0); #define uri_strlen_to(from, to) ( (to) - (from) ) #define uri_strdup_to(from, to) g_strndup ((from), uri_strlen_to((from), (to))) typedef struct { const char *chrs; gboolean primed; char bv[32]; } UriStrspnSet; static UriStrspnSet uri_strspn_sets[] = { {":@]" GNOME_VFS_URI_PATH_STR, FALSE, ""}, {"@" GNOME_VFS_URI_PATH_STR, FALSE, ""}, {":" GNOME_VFS_URI_PATH_STR, FALSE, ""}, {"]" GNOME_VFS_URI_PATH_STR, FALSE, ""} }; #define URI_DELIMITER_ALL_SET (uri_strspn_sets + 0) #define URI_DELIMITER_USER_SET (uri_strspn_sets + 1) #define URI_DELIMITER_HOST_SET (uri_strspn_sets + 2) #define URI_DELIMITER_IPV6_SET (uri_strspn_sets + 3) #define BV_SET(bv, idx) (bv)[((guchar)(idx))>>3] |= (1 << ( (idx) & 7) ) #define BV_IS_SET(bv, idx) ((bv)[((guchar)(idx))>>3] & (1 << ( (idx) & 7))) static const char * uri_strspn_to(const char *str, UriStrspnSet *set, const char *path_end) { const char *cur; const char *cur_chr; if (!set->primed) { memset (set->bv, 0, sizeof(set->bv)); for (cur_chr = set->chrs; '\0' != *cur_chr; cur_chr++) { BV_SET (set->bv, *cur_chr); } BV_SET (set->bv, '\0'); set->primed = TRUE; } for (cur = str; cur < path_end && ! BV_IS_SET (set->bv, *cur); cur++) ; if (cur >= path_end || '\0' == *cur) { return NULL; } return cur; } static gchar * split_toplevel_uri (const gchar *path, guint path_len, gchar **host_return, gchar **user_return, guint *port_return, gchar **password_return) { const char *path_end; const char *cur_tok_start; const char *cur; const char *next_delimiter; char *ret; char *host; gboolean success; g_assert (host_return != NULL); g_assert (user_return != NULL); g_assert (port_return != NULL); g_assert (password_return != NULL); *host_return = NULL; *user_return = NULL; *port_return = 0; *password_return = NULL; ret = NULL; success = FALSE; if (path == NULL || path_len == 0) { return g_strdup ("/"); } path_end = path + path_len; cur_tok_start = path; cur = uri_strspn_to (cur_tok_start, URI_DELIMITER_ALL_SET, path_end); if (cur != NULL) { const char *tmp; if (*cur == ':') { /* This ':' belongs to username or IPv6 address.*/ tmp = uri_strspn_to (cur_tok_start, URI_DELIMITER_USER_SET, path_end); if (tmp == NULL || *tmp != '@') { tmp = uri_strspn_to (cur_tok_start, URI_DELIMITER_IPV6_SET, path_end); if (tmp != NULL && *tmp == ']') { cur = tmp; } } } } if (cur != NULL) { /* Check for IPv6 address. */ if (*cur == ']') { /* No username:password in the URI */ /* cur points to ']' */ cur = uri_strspn_to (cur, URI_DELIMITER_HOST_SET, path_end); } } if (cur != NULL) { next_delimiter = uri_strspn_to (cur, URI_DELIMITER_USER_SET, path_end); } else { next_delimiter = NULL; } if (cur != NULL && (*cur == '@' || (next_delimiter != NULL && *next_delimiter != '/' ))) { /* *cur == ':' or '@' and string contains a @ before a / */ if (uri_strlen_to (cur_tok_start, cur) > 0) { char *tmp; tmp = uri_strdup_to (cur_tok_start,cur); *user_return = gnome_vfs_unescape_string (tmp, NULL); g_free (tmp); } if (*cur == ':') { URI_MOVE_PAST_DELIMITER; cur = uri_strspn_to(cur_tok_start, URI_DELIMITER_USER_SET, path_end); if (cur == NULL || *cur != '@') { success = FALSE; goto done; } else if (uri_strlen_to (cur_tok_start, cur) > 0) { char *tmp; tmp = uri_strdup_to (cur_tok_start,cur); *password_return = gnome_vfs_unescape_string (tmp, NULL); g_free (tmp); } } if (*cur != '/') { URI_MOVE_PAST_DELIMITER; /* Move cur to point to ':' after ']' */ cur = uri_strspn_to (cur_tok_start, URI_DELIMITER_IPV6_SET, path_end); if (cur != NULL && *cur == ']') { /* For IPv6 address */ cur = uri_strspn_to (cur, URI_DELIMITER_HOST_SET, path_end); } else { cur = uri_strspn_to (cur_tok_start, URI_DELIMITER_HOST_SET, path_end); } } else { cur_tok_start = cur; } } if (cur == NULL) { /* [^:/]+$ */ if (uri_strlen_to (cur_tok_start, path_end) > 0) { *host_return = uri_strdup_to (cur_tok_start, path_end); if (*(path_end - 1) == GNOME_VFS_URI_PATH_CHR) { ret = g_strdup (GNOME_VFS_URI_PATH_STR); } else { ret = g_strdup (""); } success = TRUE; } else { /* No host, no path */ success = FALSE; } goto done; } else if (*cur == ':') { guint port; /* [^:/]*:.* */ if (uri_strlen_to (cur_tok_start, cur) > 0) { *host_return = uri_strdup_to (cur_tok_start, cur); } else { success = FALSE; goto done; /*No host but a port?*/ } URI_MOVE_PAST_DELIMITER; port = 0; for ( ; cur < path_end && g_ascii_isdigit (*cur); cur++) { port *= 10; port += *cur - '0'; } /* We let :(/.*)$ be treated gracefully */ if (*cur != '\0' && *cur != GNOME_VFS_URI_PATH_CHR) { success = FALSE; goto done; /* ...but this would be an error */ } if (port > 0xffff) { success = FALSE; goto done; } *port_return = port; cur_tok_start = cur; } else /* GNOME_VFS_URI_PATH_CHR == *cur */ { /* ^[^:@/]+/.*$ */ if (uri_strlen_to (cur_tok_start, cur) > 0) { *host_return = uri_strdup_to (cur_tok_start, cur); } cur_tok_start = cur; } if (*cur_tok_start != '\0' && uri_strlen_to (cur_tok_start, path_end) > 0) { ret = uri_strdup_to(cur, path_end); } else if (*host_return != NULL) { ret = g_strdup (GNOME_VFS_URI_PATH_STR); } success = TRUE; done: if (*host_return != NULL) { /* Check for an IPv6 address in square brackets.*/ if (strchr (*host_return, '[') && strchr (*host_return, ']') && strchr (*host_return, ':')) { /* Extract the IPv6 address from square braced string. */ host = g_ascii_strdown ((*host_return) + 1, strlen (*host_return) - 2); } else { host = g_ascii_strdown (*host_return, -1); } g_free (*host_return); *host_return = host; } /* If we didn't complete our mission, discard all the partials */ if (!success) { g_free (*host_return); g_free (*user_return); g_free (*password_return); g_free (ret); *host_return = NULL; *user_return = NULL; *port_return = 0; *password_return = NULL; ret = NULL; } return ret; } static void set_uri_element (GnomeVFSURI *uri, const gchar *text, guint len) { char *escaped_text; if (text == NULL || len == 0) { uri->text = g_strdup ("/"); return; } if (uri->parent == NULL && text[0] == '/' && text[1] == '/') { GnomeVFSToplevelURI *toplevel; toplevel = (GnomeVFSToplevelURI *) uri; uri->text = split_toplevel_uri (text + 2, len - 2, &toplevel->host_name, &toplevel->user_name, &toplevel->host_port, &toplevel->password); } else { uri->text = g_strndup (text, len); } /* FIXME: this should be handled/supported by the specific method. * This is a quick and dirty hack to minimize the amount of changes * right before a milestone release. * * Do some method specific escaping. This for instance converts * '?' to %3F in every method except "http" where it has a special * meaning. */ if ( ! (strcmp (uri->method_string, "http") == 0 || strcmp (uri->method_string, "https") == 0 || strcmp (uri->method_string, "dav") == 0 || strcmp (uri->method_string, "davs") == 0 || strcmp (uri->method_string, "ghelp") == 0 || strcmp (uri->method_string, "gnome-help") == 0 || strcmp (uri->method_string, "help") == 0 )) { escaped_text = gnome_vfs_escape_set (uri->text, ";?&=+$,"); g_free (uri->text); uri->text = escaped_text; } gnome_vfs_remove_optional_escapes (uri->text); _gnome_vfs_canonicalize_pathname (uri->text); } static const gchar * get_method_string (const gchar *substring, gchar **method_string) { const gchar *p; char *method; for (p = substring; g_ascii_isalnum (*p) || *p == '+' || *p == '-' || *p == '.'; p++) ; if (*p == ':' #ifdef G_OS_WIN32 && !(p == substring + 1 && g_ascii_isalpha (*substring)) #endif ) { /* Found toplevel method specification. */ method = g_strndup (substring, p - substring); *method_string = g_ascii_strdown (method, -1); g_free (method); p++; } else { *method_string = g_strdup ("file"); p = substring; } return p; } static GnomeVFSURI * parse_uri_substring (const gchar *substring, GnomeVFSURI *parent) { GnomeVFSMethod *method; GnomeVFSURI *uri, *child_uri; gchar *method_string; const gchar *method_scanner; const gchar *extension_scanner; if (substring == NULL || *substring == '\0') { return NULL; } method_scanner = get_method_string (substring, &method_string); method = gnome_vfs_method_get (method_string); if (!method) { g_free (method_string); return NULL; } uri = g_new0 (GnomeVFSURI, 1); uri->method = method; uri->method_string = method_string; uri->ref_count = 1; uri->parent = parent; extension_scanner = strchr (method_scanner, GNOME_VFS_URI_MAGIC_CHR); if (extension_scanner == NULL) { set_uri_element (uri, method_scanner, strlen (method_scanner)); return uri; } /* handle '#' */ set_uri_element (uri, method_scanner, extension_scanner - method_scanner); if (strchr (extension_scanner, ':') == NULL) { /* extension is a fragment identifier */ uri->fragment_id = g_strdup (extension_scanner + 1); return uri; } /* extension is a uri chain */ child_uri = parse_uri_substring (extension_scanner + 1, uri); if (child_uri != NULL) { return child_uri; } return uri; } /** * gnome_vfs_uri_new: * @text_uri: an escaped string representing a uri. * * Create a new uri from @text_uri. Unsupported and unsafe methods * are not allowed and will result in %NULL being returned. URL * transforms are allowed. * * The @a text_uri must be an escaped URI string such as returned by * gnome_vfs_get_uri_from_local_path(), gnome_vfs_make_uri_from_input(), * or gtk_file_chooser_get_uri(). * * Return value: The new uri. */ GnomeVFSURI * gnome_vfs_uri_new (const gchar *text_uri) { #ifdef G_OS_WIN32 gchar *method_string; const gchar *rest; rest = get_method_string (text_uri, &method_string); if (strcmp (method_string, "file") == 0) { gchar *slashified, *p, *full; GnomeVFSURI *result; if (g_ascii_strncasecmp (text_uri, "file://", 7) == 0) rest += 2; slashified = g_strdup (rest); for (p = slashified; *p; p++) if (*p == '\\') *p = '/'; if (*slashified == '/') full = g_strconcat ("file://", slashified, NULL); else full = g_strconcat ("file:///", slashified, NULL); result = gnome_vfs_uri_new_private (full, FALSE, FALSE, TRUE); g_free (full); g_free (slashified); g_free (method_string); return result; } g_free (method_string); #endif return gnome_vfs_uri_new_private (text_uri, FALSE, FALSE, TRUE); } GnomeVFSURI * gnome_vfs_uri_new_private (const gchar *text_uri, gboolean allow_unknown_methods, gboolean allow_unsafe_methods, gboolean allow_transforms) { GnomeVFSMethod *method; GnomeVFSTransform *trans; GnomeVFSToplevelURI *toplevel; GnomeVFSURI *uri, *child_uri; const gchar *method_scanner, *extension_scanner; gchar *method_string; gchar *new_uri_string = NULL; g_return_val_if_fail (text_uri != NULL, NULL); if (text_uri[0] == '\0') { return NULL; } method_scanner = get_method_string (text_uri, &method_string); if (strcmp (method_string, "pipe") == 0 && !allow_unsafe_methods) { g_free (method_string); return NULL; } toplevel = g_new (GnomeVFSToplevelURI, 1); toplevel->host_name = NULL; toplevel->host_port = 0; toplevel->user_name = NULL; toplevel->password = NULL; uri = (GnomeVFSURI *) toplevel; uri->parent = NULL; if (allow_transforms) { trans = gnome_vfs_transform_get (method_string); if (trans != NULL && trans->transform) { const GnomeVFSContext *context; context = gnome_vfs_context_peek_current (); (* trans->transform) (trans, method_scanner, &new_uri_string, (GnomeVFSContext *) context); if (new_uri_string != NULL) { toplevel->urn = g_strdup (text_uri); g_free (method_string); method_scanner = get_method_string (new_uri_string, &method_string); } } } method = gnome_vfs_method_get (method_string); /* The toplevel URI element is special, as it also contains host/user information. */ uri->method = method; uri->ref_count = 1; uri->method_string = method_string; uri->text = NULL; uri->fragment_id = NULL; if (method == NULL && !allow_unknown_methods) { g_free (new_uri_string); gnome_vfs_uri_unref (uri); return NULL; } extension_scanner = strchr (method_scanner, GNOME_VFS_URI_MAGIC_CHR); if (extension_scanner == NULL) { set_uri_element (uri, method_scanner, strlen (method_scanner)); g_free (new_uri_string); return uri; } /* handle '#' */ set_uri_element (uri, method_scanner, extension_scanner - method_scanner); if (strchr (extension_scanner, ':') == NULL) { /* extension is a fragment identifier */ uri->fragment_id = g_strdup (extension_scanner + 1); g_free (new_uri_string); return uri; } /* extension is a uri chain */ child_uri = parse_uri_substring (extension_scanner + 1, uri); g_free (new_uri_string); if (child_uri != NULL) { return child_uri; } return uri; } /* Destroy an URI element, but not its parent. */ static void destroy_element (GnomeVFSURI *uri) { g_free (uri->text); g_free (uri->fragment_id); g_free (uri->method_string); if (uri->parent == NULL) { GnomeVFSToplevelURI *toplevel; toplevel = (GnomeVFSToplevelURI *) uri; g_free (toplevel->host_name); g_free (toplevel->user_name); g_free (toplevel->password); } g_free (uri); } static gboolean is_uri_relative (const char *uri) { const char *current; /* RFC 2396 section 3.1 */ for (current = uri ; *current && ((*current >= 'a' && *current <= 'z') || (*current >= 'A' && *current <= 'Z') || (*current >= '0' && *current <= '9') || ('-' == *current) || ('+' == *current) || ('.' == *current)) ; current++); return !(':' == *current); } /* * Remove "./" segments * Compact "../" segments inside the URI * Remove "." at the end of the URL * Leave any ".."'s at the beginning of the URI */ /* * FIXME this is not the simplest or most time-efficent way * to do this. Probably a far more clear way of doing this processing * is to split the path into segments, rather than doing the processing * in place. */ static void remove_internal_relative_components (char *uri_current) { char *segment_prev, *segment_cur; gsize len_prev, len_cur; len_prev = len_cur = 0; segment_prev = NULL; segment_cur = uri_current; while (*segment_cur) { len_cur = strcspn (segment_cur, "/"); if (len_cur == 1 && segment_cur[0] == '.') { /* Remove "." 's */ if (segment_cur[1] == '\0') { segment_cur[0] = '\0'; break; } else { memmove (segment_cur, segment_cur + 2, strlen (segment_cur + 2) + 1); continue; } } else if (len_cur == 2 && segment_cur[0] == '.' && segment_cur[1] == '.' ) { /* Remove ".."'s (and the component to the left of it) that aren't at the * beginning or to the right of other ..'s */ if (segment_prev) { if (! (len_prev == 2 && segment_prev[0] == '.' && segment_prev[1] == '.')) { if (segment_cur[2] == '\0') { segment_prev[0] = '\0'; break; } else { memmove (segment_prev, segment_cur + 3, strlen (segment_cur + 3) + 1); segment_cur = segment_prev; len_cur = len_prev; /* now we find the previous segment_prev */ if (segment_prev == uri_current) { segment_prev = NULL; } else if (segment_prev - uri_current >= 2) { segment_prev -= 2; for ( ; segment_prev > uri_current && segment_prev[0] != '/' ; segment_prev-- ); if (segment_prev[0] == '/') { segment_prev++; } } continue; } } } } /*Forward to next segment */ if (segment_cur [len_cur] == '\0') { break; } segment_prev = segment_cur; len_prev = len_cur; segment_cur += len_cur + 1; } } /* If I had known this relative uri code would have ended up this long, I would * have done it a different way */ static char * make_full_uri_from_relative (const char *base_uri, const char *uri) { char *result = NULL; char *mutable_base_uri; char *mutable_uri; char *uri_current; gsize base_uri_length; char *separator; /* We may need one extra character * to append a "/" to uri's that have no "/" * (such as help:) */ mutable_base_uri = g_malloc(strlen(base_uri)+2); strcpy (mutable_base_uri, base_uri); uri_current = mutable_uri = g_strdup (uri); /* Chew off Fragment and Query from the base_url */ separator = strrchr (mutable_base_uri, '#'); if (separator) { *separator = '\0'; } separator = strrchr (mutable_base_uri, '?'); if (separator) { *separator = '\0'; } if ('/' == uri_current[0] && '/' == uri_current [1]) { /* Relative URI's beginning with the authority * component inherit only the scheme from their parents */ separator = strchr (mutable_base_uri, ':'); if (separator) { separator[1] = '\0'; } } else if ('/' == uri_current[0]) { /* Relative URI's beginning with '/' absolute-path based * at the root of the base uri */ separator = strchr (mutable_base_uri, ':'); /* g_assert (separator), really */ if (separator) { /* If we start with //, skip past the authority section */ if ('/' == separator[1] && '/' == separator[2]) { separator = strchr (separator + 3, '/'); if (separator) { separator[0] = '\0'; } } else { /* If there's no //, just assume the scheme is the root */ separator[1] = '\0'; } } } else if ('#' != uri_current[0]) { /* Handle the ".." convention for relative uri's */ /* If there's a trailing '/' on base_url, treat base_url * as a directory path. * Otherwise, treat it as a file path, and chop off the filename */ base_uri_length = strlen (mutable_base_uri); if ('/' == mutable_base_uri[base_uri_length-1]) { /* Trim off '/' for the operation below */ mutable_base_uri[base_uri_length-1] = 0; } else { separator = strrchr (mutable_base_uri, '/'); if (separator) { /* Make sure we don't eat a domain part */ char *tmp = separator - 1; if ((separator != mutable_base_uri) && (*tmp != '/')) { *separator = '\0'; } else { /* Maybe there is no domain part and this is a toplevel URI's child */ char *tmp2 = strstr (mutable_base_uri, ":///"); if (tmp2 != NULL && tmp2 + 3 == separator) { *(separator + 1) = '\0'; } } } } remove_internal_relative_components (uri_current); /* handle the "../"'s at the beginning of the relative URI */ while (0 == strncmp ("../", uri_current, 3)) { uri_current += 3; separator = strrchr (mutable_base_uri, '/'); if (separator) { *separator = '\0'; } else { /* */ break; } } /* handle a ".." at the end */ if (uri_current[0] == '.' && uri_current[1] == '.' && uri_current[2] == '\0') { uri_current += 2; separator = strrchr (mutable_base_uri, '/'); if (separator) { *separator = '\0'; } } /* Re-append the '/' */ mutable_base_uri [strlen(mutable_base_uri)+1] = '\0'; mutable_base_uri [strlen(mutable_base_uri)] = '/'; } result = g_strconcat (mutable_base_uri, uri_current, NULL); g_free (mutable_base_uri); g_free (mutable_uri); return result; } /** * gnome_vfs_uri_resolve_relative: * @base: base uri. * @relative_reference: a string representing a possibly relative uri reference. * * Create a new uri from @relative_reference, relative to @base. The resolution * algorithm in some aspects follows RFC * 2396, section 5.2, but is not identical due to some extra assumptions GnomeVFS * makes about URIs. * * If @relative_reference begins with a valid scheme identifier followed by ':', * it is assumed to refer to an absolute URI, and a #GnomeVFSURI is created from * it using gnome_vfs_uri_new(). * * Otherwise, depending on its precise syntax, it inherits some aspects of the parent URI, * but the parents' fragment and query components are ignored. * * If @relative_reference begins with "//", it only inherits the @base scheme, * if it begins with '/' (i.e. is an absolute path reference), it inherits everything * ecxept the @base path. Otherwise, it replaces the part of @base after the last '/'. * * * This function should not be used by application authors unless they expect very * distinct semantics. Instead, authors should use gnome_vfs_uri_append_file_name(), * gnome_vfs_uri_append_path(), gnome_vfs_uri_append_string() or * gnome_vfs_uri_resolve_symbolic_link(). * * * Return value: A #GnomeVFSURI referring to @relative_reference, or %NULL * if @relative_reference was malformed. */ GnomeVFSURI * gnome_vfs_uri_resolve_relative (const GnomeVFSURI *base, const gchar *relative_reference) { char *text_base; char *text_new; GnomeVFSURI *uri; g_return_val_if_fail (relative_reference != NULL, NULL); if (base == NULL) { text_base = g_strdup (""); } else { text_base = gnome_vfs_uri_to_string (base, 0); } if (is_uri_relative (relative_reference)) { text_new = make_full_uri_from_relative (text_base, relative_reference); } else { text_new = g_strdup (relative_reference); } uri = gnome_vfs_uri_new (text_new); g_free (text_base); g_free (text_new); return uri; } /** * gnome_vfs_uri_resolve_symbolic_link: * @base: base uri. * @symbolic_link: a string representing a possibly relative or absolute path reference. * * Create a new uri from @symbolic_link, relative to @base. * * If @symbolic_link begins with a '/', it replaces the path of @base, * otherwise it is appended after the last '/' character of @base. * * Return value: A new #GnomeVFSURI referring to @symbolic_link. * * Since: 2.16 */ GnomeVFSURI * gnome_vfs_uri_resolve_symbolic_link (const GnomeVFSURI *base, const gchar *symbolic_link) { GnomeVFSURI *uri; g_return_val_if_fail (base != NULL, NULL); g_return_val_if_fail (symbolic_link != NULL, NULL); uri = gnome_vfs_uri_dup (base); g_free (uri->text); uri->text = gnome_vfs_resolve_symlink (gnome_vfs_uri_get_path (base) != NULL ? gnome_vfs_uri_get_path (base) : "/", symbolic_link); return uri; } /** * gnome_vfs_uri_ref: * @uri: a #GnomeVFSURI. * * Increment @uri's reference count. * * Return value: @uri. */ GnomeVFSURI * gnome_vfs_uri_ref (GnomeVFSURI *uri) { GnomeVFSURI *p; g_return_val_if_fail (uri != NULL, NULL); for (p = uri; p != NULL; p = p->parent) p->ref_count++; return uri; } /** * gnome_vfs_uri_unref: * @uri: a #GnomeVFSURI. * * Decrement @uri's reference count. If the reference count reaches zero, * @uri is destroyed. */ void gnome_vfs_uri_unref (GnomeVFSURI *uri) { GnomeVFSURI *p, *parent; g_return_if_fail (uri != NULL); g_return_if_fail (uri->ref_count > 0); for (p = uri; p != NULL; p = parent) { parent = p->parent; g_assert (p->ref_count > 0); p->ref_count--; if (p->ref_count == 0) destroy_element (p); } } /** * gnome_vfs_uri_dup: * @uri: a #GnomeVFSURI. * * Duplicate @uri. * * Return value: a pointer to a new uri that is exactly the same as @uri. */ GnomeVFSURI * gnome_vfs_uri_dup (const GnomeVFSURI *uri) { const GnomeVFSURI *p; GnomeVFSURI *new_uri, *child; if (uri == NULL) { return NULL; } new_uri = NULL; child = NULL; for (p = uri; p != NULL; p = p->parent) { GnomeVFSURI *new_element; if (p->parent == NULL) { GnomeVFSToplevelURI *toplevel; GnomeVFSToplevelURI *new_toplevel; toplevel = (GnomeVFSToplevelURI *) p; new_toplevel = g_new (GnomeVFSToplevelURI, 1); new_toplevel->host_name = g_strdup (toplevel->host_name); new_toplevel->host_port = toplevel->host_port; new_toplevel->user_name = g_strdup (toplevel->user_name); new_toplevel->password = g_strdup (toplevel->password); new_element = (GnomeVFSURI *) new_toplevel; } else { new_element = g_new (GnomeVFSURI, 1); } new_element->ref_count = 1; new_element->text = g_strdup (p->text); new_element->fragment_id = g_strdup (p->fragment_id); new_element->method_string = g_strdup (p->method_string); new_element->method = p->method; new_element->parent = NULL; if (child != NULL) { child->parent = new_element; } else { new_uri = new_element; } child = new_element; } return new_uri; } /** * gnome_vfs_uri_append_string: * @uri: a #GnomeVFSURI. * @uri_fragment: a piece of a uri (ie a fully escaped partial path). * * Create a new uri obtained by appending @uri_fragment to @uri. This will take care * of adding an appropriate directory separator between the end of @uri and * the start of @uri_fragment if necessary. * * Return value: The new uri obtained by combining @uri and @uri_fragment. */ GnomeVFSURI * gnome_vfs_uri_append_string (const GnomeVFSURI *uri, const gchar *uri_fragment) { gchar *uri_string; GnomeVFSURI *new_uri; gchar *new_string; guint len; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (uri_fragment != NULL, NULL); uri_string = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); len = strlen (uri_string); if (len == 0) { g_free (uri_string); return gnome_vfs_uri_new (uri_fragment); } len--; while (uri_string[len] == GNOME_VFS_URI_PATH_CHR && len > 0) { len--; } uri_string[len + 1] = '\0'; while (*uri_fragment == GNOME_VFS_URI_PATH_CHR) { uri_fragment++; } if (uri_fragment[0] != GNOME_VFS_URI_MAGIC_CHR) { new_string = g_strconcat (uri_string, GNOME_VFS_URI_PATH_STR, uri_fragment, NULL); } else { new_string = g_strconcat (uri_string, uri_fragment, NULL); } new_uri = gnome_vfs_uri_new (new_string); g_free (new_string); g_free (uri_string); return new_uri; } /** * gnome_vfs_uri_append_path: * @uri: a #GnomeVFSURI. * @path: a non-escaped file path. * * Create a new uri obtained by appending @path to @uri. This will take care * of adding an appropriate directory separator between the end of @uri and * the start of @path if necessary as well as escaping @path as necessary. * * Return value: The new uri obtained by combining @uri and @path. */ GnomeVFSURI * gnome_vfs_uri_append_path (const GnomeVFSURI *uri, const gchar *path) { gchar *escaped_string; GnomeVFSURI *new_uri; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (path != NULL, NULL); escaped_string = gnome_vfs_escape_path_string (path); new_uri = gnome_vfs_uri_append_string (uri, escaped_string); g_free (escaped_string); return new_uri; } /** * gnome_vfs_uri_append_file_name: * @uri: a #GnomeVFSURI. * @filename: any "regular" file name (can include #, /, etc) in the file system encoding. This is not an escaped URI. * * Create a new uri obtained by appending @file_name to @uri. This will take care * of adding an appropriate directory separator between the end of @uri and * the start of @file_name if necessary. @file_name might, for instance, be the * result of a call to g_dir_read_name(). * * Return value: The new uri obtained by combining @uri and @path. */ GnomeVFSURI * gnome_vfs_uri_append_file_name (const GnomeVFSURI *uri, const gchar *filename) { gchar *escaped_string; GnomeVFSURI *new_uri; g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (filename != NULL, NULL); escaped_string = gnome_vfs_escape_string (filename); new_uri = gnome_vfs_uri_append_string (uri, escaped_string); g_free (escaped_string); return new_uri; } /** * gnome_vfs_uri_to_string: * @uri: a #GnomeVFSURI. * @hide_options: bitmask specifying what uri elements (e.g. password, * user name etc.) should not be represented in the returned string. * * Translate @uri into a printable string. The string will not * contain the uri elements specified by @hide_options. * * A file: URI on Win32 might look like file:///x:/foo/bar.txt. Note * that the part after file:// is not a legal file name, you need to * remove the / in front of the drive letter. This function does that * automatically if @hide_options specifies that the toplevel method, * user name, password, host name and host port should be hidden. * * On the other hand, a file: URI for a UNC path looks like * file:////server/share/foo/bar.txt, and in that case the part after * file:// is the correct file name. * * Return value: a malloc'd printable string representing @uri. */ gchar * gnome_vfs_uri_to_string (const GnomeVFSURI *uri, GnomeVFSURIHideOptions hide_options) { GString *string; gchar *result, *tmp; g_return_val_if_fail (uri != NULL, NULL); string = g_string_new (uri->method_string); g_string_append_c (string, ':'); if (uri->parent == NULL) { GnomeVFSToplevelURI *top_level_uri = (GnomeVFSToplevelURI *)uri; gboolean shown_user_pass = FALSE; if (top_level_uri->user_name != NULL || top_level_uri->host_name != NULL || (uri->text != NULL && uri->text[0] == GNOME_VFS_URI_PATH_CHR)) { /* don't append '//' for uris such as pipe:foo */ g_string_append (string, "//"); } if ((hide_options & GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD) != 0) { g_string_free (string, TRUE); /* throw away method */ string = g_string_new (""); } if (top_level_uri->user_name != NULL && (hide_options & GNOME_VFS_URI_HIDE_USER_NAME) == 0) { tmp = gnome_vfs_escape_string (top_level_uri->user_name); g_string_append (string, tmp); g_free (tmp); shown_user_pass = TRUE; } if (top_level_uri->password != NULL && (hide_options & GNOME_VFS_URI_HIDE_PASSWORD) == 0) { tmp = gnome_vfs_escape_string (top_level_uri->password); g_string_append_c (string, ':'); g_string_append (string, tmp); g_free (tmp); shown_user_pass = TRUE; } if (shown_user_pass) { g_string_append_c (string, '@'); } if (top_level_uri->host_name != NULL && (hide_options & GNOME_VFS_URI_HIDE_HOST_NAME) == 0) { /* Check for an IPv6 address. */ if (strchr (top_level_uri->host_name, ':')) { g_string_append_c (string, '['); g_string_append (string, top_level_uri->host_name); g_string_append_c (string, ']'); } else { g_string_append (string, top_level_uri->host_name); } } if (top_level_uri->host_port > 0 && (hide_options & GNOME_VFS_URI_HIDE_HOST_PORT) == 0) { gchar temp[128]; sprintf (temp, ":%u", top_level_uri->host_port); g_string_append (string, temp); } } if (uri->text != NULL) { #ifndef G_OS_WIN32 g_string_append (string, uri->text); #else if (uri->text[0] == '/' && g_ascii_isalpha (uri->text[1]) && uri->text[2] == ':' && (hide_options & GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD) && (hide_options & GNOME_VFS_URI_HIDE_USER_NAME) && (hide_options & GNOME_VFS_URI_HIDE_PASSWORD) && (hide_options & GNOME_VFS_URI_HIDE_HOST_NAME) && (hide_options & GNOME_VFS_URI_HIDE_HOST_PORT)) g_string_append (string, uri->text + 1); else g_string_append (string, uri->text); #endif } if (uri->fragment_id != NULL && (hide_options & GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER) == 0) { g_string_append_c (string, '#'); g_string_append (string, uri->fragment_id); } if (uri->parent != NULL) { gchar *uri_str; uri_str = gnome_vfs_uri_to_string (uri->parent, hide_options); g_string_prepend_c (string, '#'); g_string_prepend (string, uri_str); g_free (uri_str); } result = string->str; g_string_free (string, FALSE); return result; } /** * gnome_vfs_uri_is_local: * @uri: a #GnomeVFSURI. * * Check if @uri is a local URI. Note that the return value of this * function entirely depends on the #GnomeVFSMethod associated with the * URI. It is up to the method author to distinguish between remote URIs * add URIs referring to entities on the local computer. * * Warning, this can be slow, as it does i/o to detect things like NFS mounts. * * Return value: %TRUE if @uri refers to a local entity, %FALSE otherwise. */ gboolean gnome_vfs_uri_is_local (const GnomeVFSURI *uri) { g_return_val_if_fail (uri != NULL, FALSE); /* It's illegal to have is_local be NULL in a method. * That's why we fail here. If we decide that it's legal, * then we can change this into an if statement. */ g_return_val_if_fail (VFS_METHOD_HAS_FUNC (uri->method, is_local), FALSE); return uri->method->is_local (uri->method, uri); } /** * gnome_vfs_uri_has_parent: * @uri: a #GnomeVFSURI. * * Check if uri has a parent or not. * * Return value: %TRUE if @uri has a parent, %FALSE otherwise. */ gboolean gnome_vfs_uri_has_parent (const GnomeVFSURI *uri) { GnomeVFSURI *parent; g_return_val_if_fail (uri != NULL, FALSE); parent = gnome_vfs_uri_get_parent (uri); if (parent == NULL) { return FALSE; } gnome_vfs_uri_unref (parent); return TRUE; } /** * gnome_vfs_uri_get_parent: * @uri: a #GnomeVFSURI. * * Retrieve @uri's parent uri. * * Return value: a pointer to @uri's parent uri. */ GnomeVFSURI * gnome_vfs_uri_get_parent (const GnomeVFSURI *uri) { g_return_val_if_fail (uri != NULL, NULL); if (uri->text != NULL && strchr (uri->text, GNOME_VFS_URI_PATH_CHR) != NULL) { gchar *p; guint len; len = strlen (uri->text); p = uri->text + len - 1; /* Skip trailing slashes */ while (p != uri->text && *p == GNOME_VFS_URI_PATH_CHR) p--; /* Search backwards to the next slash. */ while (p != uri->text && *p != GNOME_VFS_URI_PATH_CHR) p--; /* Get the parent without slashes */ while (p > uri->text + 1 && p[-1] == GNOME_VFS_URI_PATH_CHR) p--; if (p[1] != '\0') { GnomeVFSURI *new_uri; char *new_uri_text; int length; /* build a new parent text */ length = p - uri->text; if (length == 0) { new_uri_text = g_strdup (GNOME_VFS_URI_PATH_STR); } else { new_uri_text = g_malloc (length + 1); memcpy (new_uri_text, uri->text, length); new_uri_text[length] = '\0'; } /* copy the uri and replace the uri text with the new parent text */ new_uri = gnome_vfs_uri_dup (uri); g_free (new_uri->text); new_uri->text = new_uri_text; /* The parent doesn't have the child's fragment */ g_free (new_uri->fragment_id); new_uri->fragment_id = NULL; return new_uri; } } return gnome_vfs_uri_dup (uri->parent); } /** * gnome_vfs_uri_get_toplevel: * @uri: a #GnomeVFSURI. * * Retrieve the toplevel uri in @uri. * * Return value: a pointer to the toplevel uri object. */ GnomeVFSToplevelURI * gnome_vfs_uri_get_toplevel (const GnomeVFSURI *uri) { const GnomeVFSURI *p; g_return_val_if_fail (uri != NULL, NULL); for (p = uri; p->parent != NULL; p = p->parent) ; return (GnomeVFSToplevelURI *) p; } /** * gnome_vfs_uri_get_host_name: * @uri: a #GnomeVFSURI. * * Retrieve the host name for @uri. * * Return value: a string representing the host name. */ const gchar * gnome_vfs_uri_get_host_name (const GnomeVFSURI *uri) { GnomeVFSToplevelURI *toplevel; g_return_val_if_fail (uri != NULL, NULL); toplevel = gnome_vfs_uri_get_toplevel (uri); return toplevel->host_name; } /** * gnome_vfs_uri_get_scheme: * @uri: a #GnomeVFSURI. * * Retrieve the scheme used for @uri. * * Return value: a string representing the scheme. */ const gchar * gnome_vfs_uri_get_scheme (const GnomeVFSURI *uri) { g_return_val_if_fail (uri != NULL, NULL); return uri->method_string; } /** * gnome_vfs_uri_get_host_port: * @uri: a #GnomeVFSURI. * * Retrieve the host port number in @uri. * * Return value: The host port number used by @uri. If the value is zero, the * default port value for the specified toplevel access method is used. */ guint gnome_vfs_uri_get_host_port (const GnomeVFSURI *uri) { GnomeVFSToplevelURI *toplevel; g_return_val_if_fail (uri != NULL, 0); toplevel = gnome_vfs_uri_get_toplevel (uri); return toplevel->host_port; } /** * gnome_vfs_uri_get_user_name: * @uri: a #GnomeVFSURI. * * Retrieve the user name in @uri. * * Return value: a string representing the user name in @uri. */ const gchar * gnome_vfs_uri_get_user_name (const GnomeVFSURI *uri) { GnomeVFSToplevelURI *toplevel; g_return_val_if_fail (uri != NULL, NULL); toplevel = gnome_vfs_uri_get_toplevel (uri); return toplevel->user_name; } /** * gnome_vfs_uri_get_password: * @uri: a #GnomeVFSURI. * * Retrieve the password for @uri. * * Return value: The password for @uri. */ const gchar * gnome_vfs_uri_get_password (const GnomeVFSURI *uri) { GnomeVFSToplevelURI *toplevel; g_return_val_if_fail (uri != NULL, NULL); toplevel = gnome_vfs_uri_get_toplevel (uri); return toplevel->password; } /** * gnome_vfs_uri_set_host_name: * @uri: a #GnomeVFSURI. * @host_name: a string representing a host name. * * Set @host_name as the host name accessed by @uri. */ void gnome_vfs_uri_set_host_name (GnomeVFSURI *uri, const gchar *host_name) { GnomeVFSToplevelURI *toplevel; g_return_if_fail (uri != NULL); toplevel = gnome_vfs_uri_get_toplevel (uri); g_free (toplevel->host_name); toplevel->host_name = g_strdup (host_name); } /** * gnome_vfs_uri_set_host_port: * @uri: a #GnomeVFSURI. * @host_port: a TCP/IP port number. * * Set the host port number in @uri. If @host_port is zero, the default port * for @uri's toplevel access method is used. */ void gnome_vfs_uri_set_host_port (GnomeVFSURI *uri, guint host_port) { GnomeVFSToplevelURI *toplevel; g_return_if_fail (uri != NULL); toplevel = gnome_vfs_uri_get_toplevel (uri); toplevel->host_port = host_port; } /** * gnome_vfs_uri_set_user_name: * @uri: a #GnomeVFSURI. * @user_name: a string representing a user name on the host accessed by @uri. * * Set @user_name as the user name for @uri. */ void gnome_vfs_uri_set_user_name (GnomeVFSURI *uri, const gchar *user_name) { GnomeVFSToplevelURI *toplevel; g_return_if_fail (uri != NULL); toplevel = gnome_vfs_uri_get_toplevel (uri); g_free (toplevel->user_name); toplevel->user_name = g_strdup (user_name); } /** * gnome_vfs_uri_set_password: * @uri: a #GnomeVFSURI. * @password: a password string. * * Set @password as the password for @uri. */ void gnome_vfs_uri_set_password (GnomeVFSURI *uri, const gchar *password) { GnomeVFSToplevelURI *toplevel; g_return_if_fail (uri != NULL); toplevel = gnome_vfs_uri_get_toplevel (uri); g_free (toplevel->password); toplevel->password = g_strdup (password); } static gboolean string_match (const gchar *a, const gchar *b) { if (a == NULL || *a == '\0') { return b == NULL || *b == '\0'; } if (a == NULL || b == NULL) return FALSE; return strcmp (a, b) == 0; } static gboolean compare_elements (const GnomeVFSURI *a, const GnomeVFSURI *b) { if (!string_match (a->text, b->text) || !string_match (a->method_string, b->method_string)) return FALSE; /* The following should never fail, but we make sure anyway. */ return a->method == b->method; } /** * gnome_vfs_uri_equal: * @a: a #GnomeVFSURI. * @b: a #GnomeVFSURI. * * Compare @a and @b. * * FIXME: This comparison should take into account the possiblity * that unreserved characters may be escaped. * ...or perhaps gnome_vfs_uri_new() should unescape unreserved characters? * * Return value: %TRUE if @a and @b are equal, %FALSE otherwise. */ gboolean gnome_vfs_uri_equal (const GnomeVFSURI *a, const GnomeVFSURI *b) { const GnomeVFSToplevelURI *toplevel_a; const GnomeVFSToplevelURI *toplevel_b; g_return_val_if_fail (a != NULL, FALSE); g_return_val_if_fail (b != NULL, FALSE); if (a == b) return TRUE; /* First check non-toplevel elements. */ while (a->parent != NULL && b->parent != NULL) { if (!compare_elements (a, b)) { return FALSE; } } /* Now we should be at toplevel for both. */ if (a->parent != NULL || b->parent != NULL) { return FALSE; } if (!compare_elements (a, b)) { return FALSE; } toplevel_a = (GnomeVFSToplevelURI *) a; toplevel_b = (GnomeVFSToplevelURI *) b; /* Finally, compare the extra toplevel members. */ return toplevel_a->host_port == toplevel_b->host_port && string_match (toplevel_a->host_name, toplevel_b->host_name) && string_match (toplevel_a->user_name, toplevel_b->user_name) && string_match (toplevel_a->password, toplevel_b->password); } /* Convenience function that deals with the problem where we distinguish * uris "foo://bar.com" and "foo://bar.com/" but we do not define * what a child item of "foo://bar.com" would be -- to work around this, * we will consider both "foo://bar.com" and "foo://bar.com/" the parent * of "foo://bar.com/child" */ static gboolean uri_matches_as_parent (const GnomeVFSURI *possible_parent, const GnomeVFSURI *parent) { GnomeVFSURI *alternate_possible_parent; gboolean result; if (possible_parent->text == NULL || strlen (possible_parent->text) == 0) { alternate_possible_parent = gnome_vfs_uri_append_string (possible_parent, GNOME_VFS_URI_PATH_STR); result = gnome_vfs_uri_equal (alternate_possible_parent, parent); gnome_vfs_uri_unref (alternate_possible_parent); return result; } return gnome_vfs_uri_equal (possible_parent, parent); } /** * gnome_vfs_uri_is_parent: * @possible_parent: a #GnomeVFSURI. * @possible_child: a #GnomeVFSURI. * @recursive: a flag to turn recursive check on. * * Check if @possible_child is contained by @possible_parent. * If @recursive is %FALSE, just try the immediate parent directory, else * search up through the hierarchy. * * Return value: %TRUE if @possible_child is contained in @possible_parent. */ gboolean gnome_vfs_uri_is_parent (const GnomeVFSURI *possible_parent, const GnomeVFSURI *possible_child, gboolean recursive) { gboolean result; GnomeVFSURI *item_parent_uri; GnomeVFSURI *item; g_return_val_if_fail (possible_parent != NULL, FALSE); g_return_val_if_fail (possible_child != NULL, FALSE); if (!recursive) { item_parent_uri = gnome_vfs_uri_get_parent (possible_child); if (item_parent_uri == NULL) { return FALSE; } result = uri_matches_as_parent (possible_parent, item_parent_uri); gnome_vfs_uri_unref (item_parent_uri); return result; } item = gnome_vfs_uri_dup (possible_child); for (;;) { item_parent_uri = gnome_vfs_uri_get_parent (item); gnome_vfs_uri_unref (item); if (item_parent_uri == NULL) { return FALSE; } result = uri_matches_as_parent (possible_parent, item_parent_uri); if (result) { gnome_vfs_uri_unref (item_parent_uri); break; } item = item_parent_uri; } return result; } /** * gnome_vfs_uri_get_path: * @uri: a #GnomeVFSURI. * * Retrieve full path name for @uri. * * Return value: a pointer to the full path name in @uri. Notice that the * pointer points to the path name stored in @uri, so the path name returned must not * be modified nor freed. */ const gchar * gnome_vfs_uri_get_path (const GnomeVFSURI *uri) { /* FIXME bugzilla.eazel.com 1472 */ /* this is based on the assumtion that uri->text won't contain the * query string. */ g_return_val_if_fail (uri != NULL, NULL); return uri->text; } /** * gnome_vfs_uri_get_fragment_id: * @uri: a #GnomeVFSURI. * * Retrieve the optional fragment identifier for @uri. * * Return value: a pointer to the fragment identifier for the @uri or %NULL. */ const gchar * gnome_vfs_uri_get_fragment_identifier (const GnomeVFSURI *uri) { g_return_val_if_fail (uri != NULL, NULL); return uri->fragment_id; } /** * gnome_vfs_uri_extract_dirname: * @uri: a #GnomeVFSURI. * * Extract the name of the directory in which the file pointed to by @uri is * stored as a newly allocated string. The string will end with a * %GNOME_VFS_URI_PATH_CHR. * * Return value: a pointer to the newly allocated string representing the * parent directory. */ gchar * gnome_vfs_uri_extract_dirname (const GnomeVFSURI *uri) { const gchar *base; g_return_val_if_fail (uri != NULL, NULL); if (uri->text == NULL) { return NULL; } base = strrchr (uri->text, GNOME_VFS_URI_PATH_CHR); if (base == NULL || base == uri->text) { return g_strdup (GNOME_VFS_URI_PATH_STR); } return g_strndup (uri->text, base - uri->text); } /** * gnome_vfs_uri_extract_short_name: * @uri: a #GnomeVFSURI. * * Retrieve base file name for @uri, ignoring any trailing path separators. * This matches the XPG definition of basename, but not g_basename. This is * often useful when you want the name of something that's pointed to by a * uri, and don't care whether the uri has a directory or file form. * If @uri points to the root of a domain, returns the host name. If there's * no host name, returns %GNOME_VFS_URI_PATH_STR. * * See also: gnome_vfs_uri_extract_short_path_name(). * * Return value: a pointer to the newly allocated string representing the * unescaped short form of the name. */ gchar * gnome_vfs_uri_extract_short_name (const GnomeVFSURI *uri) { gchar *escaped_short_path_name, *short_path_name; const gchar *host_name; g_return_val_if_fail (uri != NULL, NULL); escaped_short_path_name = gnome_vfs_uri_extract_short_path_name (uri); short_path_name = gnome_vfs_unescape_string (escaped_short_path_name, "/"); g_free (escaped_short_path_name); if (short_path_name != NULL && strcmp (short_path_name, GNOME_VFS_URI_PATH_STR) != 0) { return short_path_name; } host_name = gnome_vfs_uri_get_host_name (uri); if (host_name != NULL && strlen (host_name) != 0) { g_free (short_path_name); return g_strdup (host_name); } else if (short_path_name != NULL) { return short_path_name; } else { return g_strdup (gnome_vfs_uri_get_path (uri)); } } /** * gnome_vfs_uri_extract_short_path_name: * @uri: a #GnomeVFSURI. * * Retrieve base file name for @uri, ignoring any trailing path separators. * This matches the XPG definition of basename, but not g_basename. This is * often useful when you want the name of something that's pointed to by a * uri, and don't care whether the uri has a directory or file form. * If @uri points to the root (including the root of any domain), * returns %GNOME_VFS_URI_PATH_STR. * * See also: gnome_vfs_uri_extract_short_name(). * * Return value: a pointer to the newly allocated string representing the * escaped short form of the name. */ gchar * gnome_vfs_uri_extract_short_path_name (const GnomeVFSURI *uri) { const gchar *p, *short_name_start, *short_name_end; g_return_val_if_fail (uri != NULL, NULL); if (uri->text == NULL) { return NULL; } /* Search for the last run of non-'/' characters. */ p = uri->text; short_name_start = NULL; short_name_end = p; do { if (*p == '\0' || *p == GNOME_VFS_URI_PATH_CHR) { /* While we are in a run of non-separators, short_name_end is NULL. */ if (short_name_end == NULL) short_name_end = p; } else { /* While we are in a run of separators, short_name_end is not NULL. */ if (short_name_end != NULL) { short_name_start = p; short_name_end = NULL; } } } while (*p++ != '\0'); g_assert (short_name_end != NULL); /* If we never found a short name, that means that the string is all directory separators. Since it can't be an empty string, that means it points to the root, so "/" is a good result. */ if (short_name_start == NULL) { return g_strdup (GNOME_VFS_URI_PATH_STR); } /* Return a copy of the short name. */ return g_strndup (short_name_start, short_name_end - short_name_start); } /* The following functions are useful for creating URI hash tables. */ /** * gnome_vfs_uri_hequal: * @a: a pointer to a #GnomeVFSURI. * @b: a pointer to a #GnomeVFSURI. * * Function intended for use as a hash table "are these two items * the same" comparison. Useful for creating a hash table of uris. * * Return value: %TRUE if the uris are the same. */ gint gnome_vfs_uri_hequal (gconstpointer a, gconstpointer b) { return gnome_vfs_uri_equal (a, b); } /** * gnome_vfs_uri_hash: * @p: a pointer to a #GnomeVFSURI. * * Creates an integer value from a #GnomeVFSURI, appropriate * for using as the key to a hash table entry. * * Return value: a hash key corresponding to @p. */ guint gnome_vfs_uri_hash (gconstpointer p) { const GnomeVFSURI *uri; const GnomeVFSURI *uri_p; guint hash_value; #define HASH_STRING(value, string) \ if ((string) != NULL) \ (value) ^= g_str_hash (string); #define HASH_NUMBER(value, number) \ (value) ^= number; uri = (const GnomeVFSURI *) p; hash_value = 0; for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { HASH_STRING (hash_value, uri_p->text); HASH_STRING (hash_value, uri_p->method_string); if (uri_p->parent == NULL) { const GnomeVFSToplevelURI *toplevel; toplevel = (const GnomeVFSToplevelURI *) uri_p; HASH_STRING (hash_value, toplevel->host_name); HASH_NUMBER (hash_value, toplevel->host_port); HASH_STRING (hash_value, toplevel->user_name); HASH_STRING (hash_value, toplevel->password); } } return hash_value; #undef HASH_STRING #undef HASH_NUMBER } /** * gnome_vfs_uri_list_ref: * @list: list of #GnomeVFSURI elements. * * Increments the reference count of the items in @list by one. * * Return value: @list. */ GList * gnome_vfs_uri_list_ref (GList *list) { g_list_foreach (list, (GFunc) gnome_vfs_uri_ref, NULL); return list; } /** * gnome_vfs_uri_list_unref: * @list: list of #GnomeVFSURI elements. * * Decrements the reference count of the items in @list by one. * Note that the list is *not freed* even if each member of the list * is freed. * * Return value: @list. */ GList * gnome_vfs_uri_list_unref (GList *list) { g_list_foreach (list, (GFunc) gnome_vfs_uri_unref, NULL); return list; } /** * gnome_vfs_uri_list_copy: * @list: list of #GnomeVFSURI elements. * * Creates a duplicate of @list, and references each member of * that list. * * Return value: a newly referenced duplicate of @list. */ GList * gnome_vfs_uri_list_copy (GList *list) { return g_list_copy (gnome_vfs_uri_list_ref (list)); } /** * gnome_vfs_uri_list_free: * @list: list of #GnomeVFSURI elements. * * Decrements the reference count of each member of @list by one, * and frees the list itself. */ void gnome_vfs_uri_list_free (GList *list) { g_list_free (gnome_vfs_uri_list_unref (list)); } /** * gnome_vfs_uri_make_full_from_relative: * @base_uri: a string representing the base uri. * @relative_uri: a uri fragment/reference to be appended to @base_uri. * * Returns a full uri given a full base uri, and a secondary uri which may * be relative. * * Return value: a newly allocated string containing the uri * (%NULL for some bad errors). */ char * gnome_vfs_uri_make_full_from_relative (const char *base_uri, const char *relative_uri) { char *result = NULL; /* See section 5.2 in RFC 2396 */ if (base_uri == NULL && relative_uri == NULL) { result = NULL; } else if (base_uri == NULL) { result = g_strdup (relative_uri); } else if (relative_uri == NULL) { result = g_strdup (base_uri); } else if (is_uri_relative (relative_uri)) { result = make_full_uri_from_relative (base_uri, relative_uri); } else { result = g_strdup (relative_uri); } return result; } /** * gnome_vfs_uri_list_parse: * @uri_list: string consists of #GnomeVFSURIs and/or paths seperated by newline character. * * Extracts a list of #GnomeVFSURI objects from a standard text/uri-list, * such as one you would get on a drop operation. Use * gnome_vfs_uri_list_free() when you are done with the list. * * Return value: a #GList of #GnomeVFSURIs. */ GList* gnome_vfs_uri_list_parse (const gchar* uri_list) { /* Note that this is mostly very stolen from old libgnome/gnome-mime.c */ const gchar *p, *q; gchar *retval; GnomeVFSURI *uri; GList *result = NULL; g_return_val_if_fail (uri_list != NULL, NULL); p = uri_list; /* We don't actually try to validate the URI according to RFC * 2396, or even check for allowed characters - we just ignore * comments and trim whitespace off the ends. We also * allow LF delimination as well as the specified CRLF. */ while (p != NULL) { if (*p != '#') { while (g_ascii_isspace (*p)) p++; q = p; while ((*q != '\0') && (*q != '\n') && (*q != '\r')) q++; if (q > p) { q--; while (q > p && g_ascii_isspace (*q)) q--; retval = g_malloc (q - p + 2); strncpy (retval, p, q - p + 1); retval[q - p + 1] = '\0'; uri = gnome_vfs_uri_new (retval); g_free (retval); if (uri != NULL) result = g_list_prepend (result, uri); } } p = strchr (p, '\n'); if (p != NULL) p++; } return g_list_reverse (result); } /* enumerations from "gnome-vfs-uri.h" * This is normally automatically-generated, but glib-mkenums could not * guess the correct get_type() function name for this enum. */ GType gnome_vfs_uri_hide_options_get_type (void) { static GType etype = 0; if (etype == 0) { static const GFlagsValue values[] = { { GNOME_VFS_URI_HIDE_NONE, "GNOME_VFS_URI_HIDE_NONE", "none" }, { GNOME_VFS_URI_HIDE_USER_NAME, "GNOME_VFS_URI_HIDE_USER_NAME", "user-name" }, { GNOME_VFS_URI_HIDE_PASSWORD, "GNOME_VFS_URI_HIDE_PASSWORD", "password" }, { GNOME_VFS_URI_HIDE_HOST_NAME, "GNOME_VFS_URI_HIDE_HOST_NAME", "host-name" }, { GNOME_VFS_URI_HIDE_HOST_PORT, "GNOME_VFS_URI_HIDE_HOST_PORT", "host-port" }, { GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD, "GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD", "toplevel-method" }, { GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER, "GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER", "fragment-identifier" }, { 0, NULL, NULL } }; etype = g_flags_register_static ("GnomeVFSURIHideOptions", values); } return etype; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-transform.h0000644000175000001440000000325311334251016017016 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-transform.h - transform function declarations Copyright (C) 1999, 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Seth Nickell */ #ifndef GNOME_VFS_TRANSFORM_H #define GNOME_VFS_TRANSFORM_H #include #include G_BEGIN_DECLS typedef struct GnomeVFSTransform GnomeVFSTransform; typedef GnomeVFSTransform * (* GnomeVFSTransformInitFunc) (const char *method_name, const char *config_args); typedef GnomeVFSResult (* GnomeVFSTransformFunc) (GnomeVFSTransform *transform, const char *old_uri, char **new_uri, GnomeVFSContext *context); struct GnomeVFSTransform { GnomeVFSTransformFunc transform; }; G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-cancellation.c0000644000175000001440000001644411334251016017440 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-cancellation.c - Cancellation handling for the GNOME Virtual File System access methods. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-cancellation-private.h" #include "gnome-vfs-utils.h" #include "gnome-vfs-private-utils.h" #ifdef USE_DAEMON #include #endif #include #ifdef G_OS_WIN32 #include #include #endif /* WARNING: this code is not general-purpose. It is supposed to make the two sides of the VFS (i.e. the main process/thread and its asynchronous slave) talk in a simple way. For this reason, only the main process/thread should be allowed to call `gnome_vfs_cancellation_cancel()'. *All* the code is based on this assumption. */ struct GnomeVFSCancellation { gboolean cancelled; gint pipe_in; gint pipe_out; #ifdef USE_DAEMON /* daemon handle */ gint32 handle; gint32 connection; #endif }; G_LOCK_DEFINE_STATIC (pipes); #ifdef USE_DAEMON G_LOCK_DEFINE_STATIC (callback); #endif /** * gnome_vfs_cancellation_new: * * Create a new #GnomeVFSCancellation object for reporting cancellation to a * gnome-vfs module. * * Return value: A pointer to the new GnomeVFSCancellation object. */ GnomeVFSCancellation * gnome_vfs_cancellation_new (void) { GnomeVFSCancellation *new; new = g_new (GnomeVFSCancellation, 1); new->cancelled = FALSE; new->pipe_in = -1; new->pipe_out = -1; #ifdef USE_DAEMON new->connection = 0; new->handle = 0; #endif return new; } /** * gnome_vfs_cancellation_destroy: * @cancellation: a #GnomeVFSCancellation object. * * Destroy @cancellation. */ void gnome_vfs_cancellation_destroy (GnomeVFSCancellation *cancellation) { g_return_if_fail (cancellation != NULL); if (cancellation->pipe_in >= 0) { close (cancellation->pipe_in); close (cancellation->pipe_out); } g_free (cancellation); } #ifdef USE_DAEMON void _gnome_vfs_cancellation_set_handle (GnomeVFSCancellation *cancellation, gint32 connection, gint32 handle) { G_LOCK (callback); /* Each client call uses its own context/cancellation */ g_assert (cancellation->handle == 0); cancellation->connection = connection; cancellation->handle = handle; G_UNLOCK (callback); } void _gnome_vfs_cancellation_unset_handle (GnomeVFSCancellation *cancellation) { G_LOCK (callback); cancellation->connection = 0; cancellation->handle = 0; G_UNLOCK (callback); } #endif /** * gnome_vfs_cancellation_cancel: * @cancellation: a #GnomeVFSCancellation object. * * Send a cancellation request through @cancellation. * * If called on a different thread than the one handling idle * callbacks, there is a small race condition where the * operation finished callback will be called even if you * cancelled the operation. Its the apps responsibility * to handle this. See gnome_vfs_async_cancel() for more * discussion about this. */ void gnome_vfs_cancellation_cancel (GnomeVFSCancellation *cancellation) { #ifdef USE_DAEMON gint32 handle, connection_id; #endif g_return_if_fail (cancellation != NULL); if (cancellation->cancelled) return; if (cancellation->pipe_out >= 0) write (cancellation->pipe_out, "c", 1); #ifdef USE_DAEMON handle = 0; connection_id = 0; G_LOCK (callback); if (cancellation->handle) { handle = cancellation->handle; connection_id = cancellation->connection; } G_UNLOCK (callback); #endif cancellation->cancelled = TRUE; #ifdef USE_DAEMON if (handle != 0) { DBusConnection *conn; DBusMessage *message; DBusError error; dbus_error_init (&error); conn = _gnome_vfs_get_main_dbus_connection (); if (conn != NULL) { message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_CANCEL); dbus_message_set_auto_start (message, TRUE); if (!message) { g_error ("Out of memory"); } if (!dbus_message_append_args (message, DBUS_TYPE_INT32, &handle, DBUS_TYPE_INT32, &connection_id, DBUS_TYPE_INVALID)) { g_error ("Out of memory"); } dbus_connection_send (conn, message, NULL); dbus_connection_flush (conn); dbus_message_unref (message); } } #endif } /** * gnome_vfs_cancellation_check: * @cancellation: a #GnomeVFSCancellation object. * * Check for pending cancellation. * * Return value: %TRUE if the operation should be interrupted. */ gboolean gnome_vfs_cancellation_check (GnomeVFSCancellation *cancellation) { if (cancellation == NULL) return FALSE; return cancellation->cancelled; } /** * gnome_vfs_cancellation_ack: * @cancellation: a #GnomeVFSCancellation object. * * Acknowledge a cancellation. This should be called if * gnome_vfs_cancellation_check() returns %TRUE or if select() reports that * input is available on the file descriptor returned by * gnome_vfs_cancellation_get_fd(). */ void gnome_vfs_cancellation_ack (GnomeVFSCancellation *cancellation) { gchar c; /* ALEX: What the heck is this supposed to be used for? * It seems totatlly wrong, and isn't used by anything. * Also, the read() seems to block if it was cancelled before * the pipe was gotten. */ if (cancellation == NULL) return; if (cancellation->pipe_in >= 0) read (cancellation->pipe_in, &c, 1); cancellation->cancelled = FALSE; } /** * gnome_vfs_cancellation_get_fd: * @cancellation: a #GnomeVFSCancellation object. * * Get a file descriptor -based notificator for @cancellation. When * @cancellation receives a cancellation request, a character will be made * available on the returned file descriptor for input. * * This is very useful for detecting cancellation during I/O operations: you * can use the select() call to check for available input/output on the file * you are reading/writing, and on the notificator's file descriptor at the * same time. If a data is available on the notificator's file descriptor, you * know you have to cancel the read/write operation. * * Return value: the notificator's file descriptor, or -1 if starved of * file descriptors. */ gint gnome_vfs_cancellation_get_fd (GnomeVFSCancellation *cancellation) { g_return_val_if_fail (cancellation != NULL, -1); G_LOCK (pipes); if (cancellation->pipe_in <= 0) { gint pipefd [2]; if (_gnome_vfs_pipe (pipefd) == -1) { G_UNLOCK (pipes); return -1; } cancellation->pipe_in = pipefd [0]; cancellation->pipe_out = pipefd [1]; } G_UNLOCK (pipes); return cancellation->pipe_in; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module.h0000644000175000001440000000535511334251016016275 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-method.h - All the VFS bits a module needs to include in one place. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Michael Meeks */ #ifndef GNOME_VFS_MODULE_H #define GNOME_VFS_MODULE_H #include G_BEGIN_DECLS /** * vfs_module_init: * @method_name: name of the method that invoked this module (e.g. "http", "ftp", "file"). * @args: not used by most modules, but potential arguments for creating the module (could * be a file to point at, for example) * * Standard extern call implemented by each filesystem module. This is called * to initialize the module and setup any basic structures / connections the * method requires. It also allows the module to identify the URI method it is * associated with in this instance. * * Return value: the module symbol table, pointing to the appropriate calls for * this module. **/ extern GnomeVFSMethod *vfs_module_init (const char *method_name, const char *args); /** * vfs_module_transform: * @method_name: name of the method that invoked this module (e.g. "http", "ftp", "file"). * @args: not used by most modules, but potential arguments for creating the module (could * be a file to point at, for example) * * Shift an already instanced module to a new method name. This call is not implemented * by most modules and is optional. * * Return value: the module symbol table, pointing to the appropriate calls for * this module. **/ extern GnomeVFSTransform *vfs_module_transform (const char *method_name, const char *args); /** * vfs_module_shutdown: * @method: the symbol table of the module being shut down * * Called to tell a module to end any active operations, free all used memory, * and close any connections (as appropriate) or resources. * **/ extern void vfs_module_shutdown (GnomeVFSMethod *method); G_END_DECLS #endif /* GNOME_VFS_MODULE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-handlers.h0000644000175000001440000001272211334251016017531 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-mime-handlers.h - Mime type handlers for the GNOME Virtual File System. Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Maciej Stachowiak */ #ifndef GNOME_VFS_MIME_HANDLERS_H #define GNOME_VFS_MIME_HANDLERS_H #include #include #include G_BEGIN_DECLS typedef enum { GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS, GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS, GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES } GnomeVFSMimeApplicationArgumentType; typedef struct _GnomeVFSMimeApplicationPrivate GnomeVFSMimeApplicationPrivate; /** * GnomeVFSMimeApplication: * @id: The desktop ID of the application. * @name: The user-visible name of the application. * * A struct encapsulating information about an * application known to the MIME database. * * Only very few fields of this information are actually * public, most of them must be queried using the * gnome_vfs_mime_application_*() * API. **/ typedef struct { /*< public > */ char *id; char *name; /*< private > */ #ifndef GNOME_VFS_DISABLE_DEPRECATED char *command; gboolean can_open_multiple_files; GnomeVFSMimeApplicationArgumentType expects_uris; GList *supported_uri_schemes; #else char *_command; gboolean _can_open_multiple_files; GnomeVFSMimeApplicationArgumentType _expects_uris; GList *_supported_uri_schemes; #endif gboolean requires_terminal; /* Padded to avoid future breaks in ABI compatibility */ void *reserved1; GnomeVFSMimeApplicationPrivate *priv; } GnomeVFSMimeApplication; /* Database */ GnomeVFSMimeApplication *gnome_vfs_mime_get_default_application (const char *mime_type); GnomeVFSMimeApplication *gnome_vfs_mime_get_default_application_for_uri (const char *uri, const char *mime_type); GList * gnome_vfs_mime_get_all_applications (const char *mime_type); GList * gnome_vfs_mime_get_all_applications_for_uri (const char *uri, const char *mime_type); /* MIME types */ const char *gnome_vfs_mime_get_description (const char *mime_type); gboolean gnome_vfs_mime_can_be_executable (const char *mime_type); /* Application */ GnomeVFSMimeApplication *gnome_vfs_mime_application_new_from_desktop_id (const char *id); GnomeVFSResult gnome_vfs_mime_application_launch (GnomeVFSMimeApplication *app, GList *uris); GnomeVFSResult gnome_vfs_mime_application_launch_with_env (GnomeVFSMimeApplication *app, GList *uris, char **envp); const char *gnome_vfs_mime_application_get_desktop_id (GnomeVFSMimeApplication *app); const char *gnome_vfs_mime_application_get_desktop_file_path (GnomeVFSMimeApplication *app); const char *gnome_vfs_mime_application_get_name (GnomeVFSMimeApplication *app); const char *gnome_vfs_mime_application_get_generic_name (GnomeVFSMimeApplication *app); const char *gnome_vfs_mime_application_get_icon (GnomeVFSMimeApplication *app); const char *gnome_vfs_mime_application_get_exec (GnomeVFSMimeApplication *app); const char *gnome_vfs_mime_application_get_binary_name (GnomeVFSMimeApplication *app); gboolean gnome_vfs_mime_application_supports_uris (GnomeVFSMimeApplication *app); gboolean gnome_vfs_mime_application_requires_terminal (GnomeVFSMimeApplication *app); gboolean gnome_vfs_mime_application_supports_startup_notification (GnomeVFSMimeApplication *app); const char *gnome_vfs_mime_application_get_startup_wm_class (GnomeVFSMimeApplication *app); GnomeVFSMimeApplication *gnome_vfs_mime_application_copy (GnomeVFSMimeApplication *application); gboolean gnome_vfs_mime_application_equal (GnomeVFSMimeApplication *app_a, GnomeVFSMimeApplication *app_b); void gnome_vfs_mime_application_free (GnomeVFSMimeApplication *application); /* Lists */ void gnome_vfs_mime_application_list_free (GList *list); G_END_DECLS #ifndef GNOME_VFS_DISABLE_DEPRECATED #include #endif #endif /* GNOME_VFS_MIME_HANDLERS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume.h0000644000175000001440000002053611334251016016315 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume.h - Handling of volumes for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_VOLUME_H #define GNOME_VFS_VOLUME_H #include #include #ifndef _WIN32 #include #endif #include G_BEGIN_DECLS #define GNOME_VFS_TYPE_VOLUME (gnome_vfs_volume_get_type ()) #define GNOME_VFS_VOLUME(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_VOLUME, GnomeVFSVolume)) #define GNOME_VFS_VOLUME_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_VOLUME, GnomeVFSVolumeClass)) #define GNOME_IS_VFS_VOLUME(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_VOLUME)) #define GNOME_IS_VFS_VOLUME_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_VOLUME)) typedef struct _GnomeVFSVolumePrivate GnomeVFSVolumePrivate; typedef struct _GnomeVFSVolume GnomeVFSVolume; struct _GnomeVFSVolume { GObject parent; /*< private >*/ GnomeVFSVolumePrivate *priv; }; typedef struct _GnomeVFSVolumeClass GnomeVFSVolumeClass; struct _GnomeVFSVolumeClass { GObjectClass parent_class; }; /** * GnomeVFSDeviceType: * @GNOME_VFS_DEVICE_TYPE_UNKNOWN: the type of this #GnomeVFSVolume or #GnomeVFSDrive is not known. * @GNOME_VFS_DEVICE_TYPE_AUDIO_CD: only used for #GnomeVFSVolume objects. Denotes that this * volume is an audio CD. * @GNOME_VFS_DEVICE_TYPE_VIDEO_DVD: only used for #GnomeVFSVolume objects. Denotes that this * volume is a video DVD. * @GNOME_VFS_DEVICE_TYPE_HARDDRIVE: this is a mount point refering to a harddisk partition that * neither has a Microsoft file system (FAT, VFAT, NTFS) nor an Apple file system (HFS, HFS+). * @GNOME_VFS_DEVICE_TYPE_CDROM: this may either be a mount point or a HAL drive/volume. Either way, * it refers to a CD-ROM device respectively volume. * @GNOME_VFS_DEVICE_TYPE_FLOPPY: the volume or drive referenced by this #GnomeVFSVolume or * #GnomeVFSDrive is a floppy disc respectively a floppy drive. * @GNOME_VFS_DEVICE_TYPE_ZIP: the volume or drive referenced by this #GnomeVFSVolume or * #GnomeVFSDrive is a ZIP disc respectively a ZIP drive. * @GNOME_VFS_DEVICE_TYPE_JAZ: the volume or drive referenced by this #GnomeVFSVolume or * #GnomeVFSDrive is a JAZ disc respectively a JAZ drive. * @GNOME_VFS_DEVICE_TYPE_NFS: this is a mount point having an NFS file system. * @GNOME_VFS_DEVICE_TYPE_AUTOFS: this is a mount point having an AutoFS file system. * @GNOME_VFS_DEVICE_TYPE_CAMERA: only used for #GnomeVFSVolume objects. Denotes that this volume is a camera. * @GNOME_VFS_DEVICE_TYPE_MEMORY_STICK: only used for #GnomeVFSVolume objects. Denotes that this volume is a memory stick. * @GNOME_VFS_DEVICE_TYPE_SMB: this is a mount point having a Samba file system. * @GNOME_VFS_DEVICE_TYPE_APPLE: this is a mount point refering to a harddisk partition, that has an * Apple file system (HFS, HFS+). * @GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER: only used for #GnomeVFSVolume objects. Denotes that this * volume is a music player. * @GNOME_VFS_DEVICE_TYPE_WINDOWS: this is a mount point refering to a harddisk partition, that has a * Microsoft file system (FAT, VFAT, NTFS). * @GNOME_VFS_DEVICE_TYPE_LOOPBACK: this is a mount point refering to a loopback device. * @GNOME_VFS_DEVICE_TYPE_NETWORK: only used for #GnomeVFSVolume objects, denoting that this volume * refers to a network mount that is not managed by the kernel VFS but exclusively known to GnomeVFS. * * Identifies the device type of a #GnomeVFSVolume or a #GnomeVFSDrive. **/ typedef enum { GNOME_VFS_DEVICE_TYPE_UNKNOWN, GNOME_VFS_DEVICE_TYPE_AUDIO_CD, GNOME_VFS_DEVICE_TYPE_VIDEO_DVD, GNOME_VFS_DEVICE_TYPE_HARDDRIVE, GNOME_VFS_DEVICE_TYPE_CDROM, GNOME_VFS_DEVICE_TYPE_FLOPPY, GNOME_VFS_DEVICE_TYPE_ZIP, GNOME_VFS_DEVICE_TYPE_JAZ, GNOME_VFS_DEVICE_TYPE_NFS, GNOME_VFS_DEVICE_TYPE_AUTOFS, GNOME_VFS_DEVICE_TYPE_CAMERA, GNOME_VFS_DEVICE_TYPE_MEMORY_STICK, GNOME_VFS_DEVICE_TYPE_SMB, GNOME_VFS_DEVICE_TYPE_APPLE, GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER, GNOME_VFS_DEVICE_TYPE_WINDOWS, GNOME_VFS_DEVICE_TYPE_LOOPBACK, GNOME_VFS_DEVICE_TYPE_NETWORK } GnomeVFSDeviceType; /** * @GNOME_VFS_VOLUME_TYPE_MOUNTPOINT: this is a mount point managed by the kernel. * @GNOME_VFS_VOLUME_TYPE_VFS_MOUNT: this is a special volume only known to GnomeVFS, * for instance a blank disk or an audio CD. * @GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER: this is a special volume only known * GnomeVFS, referring to a GnomeVFSURI network location, for instance a location * on an http, an ftp or an sftp server. * * Identifies the volume type of a #GnomeVFSVolume. **/ typedef enum { GNOME_VFS_VOLUME_TYPE_MOUNTPOINT, GNOME_VFS_VOLUME_TYPE_VFS_MOUNT, GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER } GnomeVFSVolumeType; /** * GnomeVFSVolumeOpCallback: * @succeeded: whether the volume operation succeeded * @error: a string identifying the error that occurred, if * @succeeded is %FALSE. Otherwise %NULL. * @detailed_error: a string more specifically identifying * the error that occurred, if @succeeded is %FALSE. * Otherwise %NULL. * @user_data: the user data that was passed when registering * the callback. * * Note that if succeeded is FALSE and error, detailed_error are both * empty strings the client is not supposed to display a dialog as an * external mount/umount/eject helper will have done so. * * Since: 2.6 **/ typedef void (*GnomeVFSVolumeOpCallback) (gboolean succeeded, char *error, char *detailed_error, gpointer user_data); /* Need to declare this here due to cross use in gnome-vfs-drive.h */ typedef struct _GnomeVFSDrive GnomeVFSDrive; #include GType gnome_vfs_volume_get_type (void) G_GNUC_CONST; GnomeVFSVolume *gnome_vfs_volume_ref (GnomeVFSVolume *volume); void gnome_vfs_volume_unref (GnomeVFSVolume *volume); gulong gnome_vfs_volume_get_id (GnomeVFSVolume *volume); GnomeVFSVolumeType gnome_vfs_volume_get_volume_type (GnomeVFSVolume *volume); GnomeVFSDeviceType gnome_vfs_volume_get_device_type (GnomeVFSVolume *volume); GnomeVFSDrive * gnome_vfs_volume_get_drive (GnomeVFSVolume *volume); char * gnome_vfs_volume_get_device_path (GnomeVFSVolume *volume); char * gnome_vfs_volume_get_activation_uri (GnomeVFSVolume *volume); char * gnome_vfs_volume_get_filesystem_type (GnomeVFSVolume *volume); char * gnome_vfs_volume_get_display_name (GnomeVFSVolume *volume); char * gnome_vfs_volume_get_icon (GnomeVFSVolume *volume); char * gnome_vfs_volume_get_hal_udi (GnomeVFSVolume *volume); gboolean gnome_vfs_volume_is_user_visible (GnomeVFSVolume *volume); gboolean gnome_vfs_volume_is_read_only (GnomeVFSVolume *volume); gboolean gnome_vfs_volume_is_mounted (GnomeVFSVolume *volume); gboolean gnome_vfs_volume_handles_trash (GnomeVFSVolume *volume); gint gnome_vfs_volume_compare (GnomeVFSVolume *a, GnomeVFSVolume *b); void gnome_vfs_volume_unmount (GnomeVFSVolume *volume, GnomeVFSVolumeOpCallback callback, gpointer user_data); void gnome_vfs_volume_eject (GnomeVFSVolume *volume, GnomeVFSVolumeOpCallback callback, gpointer user_data); void gnome_vfs_connect_to_server (const char *uri, const char *display_name, const char *icon); G_END_DECLS #endif /* GNOME_VFS_VOLUME_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-sniff-buffer.c0000644000175000001440000001220611334251016020275 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* * gnome-vfs-mime-sniff-buffer.c * Utility for implementing gnome_vfs_mime_type_from_magic, and other * mime-type sniffing calls. * * Copyright (C) 2000 Eazel, Inc. * All rights reserved. * * This file is part of the Gnome Library. * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include #include "gnome-vfs-mime-sniff-buffer.h" #include "gnome-vfs-handle.h" #include "gnome-vfs-mime-sniff-buffer-private.h" #include "gnome-vfs-ops.h" #include static GnomeVFSResult handle_seek_glue (gpointer context, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset) { GnomeVFSHandle *handle = (GnomeVFSHandle *)context; return gnome_vfs_seek (handle, whence, offset); } static GnomeVFSResult handle_read_glue (gpointer context, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read) { GnomeVFSHandle *handle = (GnomeVFSHandle *)context; return gnome_vfs_read (handle, buffer, bytes, bytes_read); } GnomeVFSMimeSniffBuffer * _gnome_vfs_mime_sniff_buffer_new_from_handle (GnomeVFSHandle *file) { GnomeVFSMimeSniffBuffer *result; result = g_new0 (GnomeVFSMimeSniffBuffer, 1); result->owning = TRUE; result->context = file; result->seek = handle_seek_glue; result->read = handle_read_glue; return result; } GnomeVFSMimeSniffBuffer * _gnome_vfs_mime_sniff_buffer_new_generic (GnomeVFSSniffBufferSeekCall seek_callback, GnomeVFSSniffBufferReadCall read_callback, gpointer context) { GnomeVFSMimeSniffBuffer * result; result = g_new0 (GnomeVFSMimeSniffBuffer, 1); result->owning = TRUE; result->seek = seek_callback; result->read = read_callback; result->context = context; return result; } GnomeVFSMimeSniffBuffer * _gnome_vfs_mime_sniff_buffer_new_from_memory (const guchar *buffer, gssize buffer_length) { GnomeVFSMimeSniffBuffer *result; result = g_new0 (GnomeVFSMimeSniffBuffer, 1); result->owning = TRUE; result->buffer = g_malloc (buffer_length); result->buffer_length = buffer_length; memcpy (result->buffer, buffer, buffer_length); result->read_whole_file = TRUE; return result; } GnomeVFSMimeSniffBuffer * gnome_vfs_mime_sniff_buffer_new_from_existing_data (const guchar *buffer, gssize buffer_length) { GnomeVFSMimeSniffBuffer *result; result = g_new0 (GnomeVFSMimeSniffBuffer, 1); result->owning = FALSE; result->buffer = (guchar *)buffer; result->buffer_length = buffer_length; result->read_whole_file = TRUE; return result; } void gnome_vfs_mime_sniff_buffer_free (GnomeVFSMimeSniffBuffer *buffer) { if (buffer->owning) g_free (buffer->buffer); g_free (buffer); } enum { GNOME_VFS_SNIFF_BUFFER_INITIAL_CHUNK = 256, GNOME_VFS_SNIFF_BUFFER_MIN_CHUNK = 128 }; GnomeVFSResult _gnome_vfs_mime_sniff_buffer_get (GnomeVFSMimeSniffBuffer *buffer, gssize size) { GnomeVFSResult result; GnomeVFSFileSize bytes_to_read, bytes_read; /* check to see if we already have enough data */ if (buffer->buffer_length >= size) { return GNOME_VFS_OK; } /* if we've read the whole file, don't try to read any more */ if (buffer->read_whole_file) { return GNOME_VFS_ERROR_EOF; } /* figure out how much to read */ bytes_to_read = size - buffer->buffer_length; /* don't bother to read less than this */ if (bytes_to_read < GNOME_VFS_SNIFF_BUFFER_MIN_CHUNK) { bytes_to_read = GNOME_VFS_SNIFF_BUFFER_MIN_CHUNK; } /* make room in buffer for new data */ buffer->buffer = g_realloc (buffer->buffer, buffer->buffer_length + bytes_to_read); /* read in more data */ result = (* buffer->read) (buffer->context, buffer->buffer + buffer->buffer_length, bytes_to_read, &bytes_read); if (result == GNOME_VFS_ERROR_EOF) { buffer->read_whole_file = TRUE; } else if (result != GNOME_VFS_OK) { return result; } buffer->buffer_length += bytes_read; /* check to see if we have enough data */ if (buffer->buffer_length >= size) { return GNOME_VFS_OK; } /* not enough data */ return GNOME_VFS_ERROR_EOF; } /* * gnome_vfs_get_mime_type_for_buffer: * @buffer: a sniff buffer referencing either a file or data in memory * * This routine uses a magic database to guess the mime type of the * data represented by @buffer. * * Returns a pointer to an internal copy of the mime-type for @buffer. */ const char * gnome_vfs_get_mime_type_for_buffer (GnomeVFSMimeSniffBuffer *buffer) { return _gnome_vfs_get_mime_type_internal (buffer, NULL, FALSE); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-callback-private.h0000644000175000001440000000444211334251016021473 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-module-callbacks-private.h - private entry points for module callback mechanism Copyright (C) 2001 Maciej Stachowiak The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Maciej Stachowiak */ #ifndef GNOME_VFS_MODULE_CALLBACKS_PRIVATE_H #define GNOME_VFS_MODULE_CALLBACKS_PRIVATE_H #include #include #ifdef USE_DAEMON #include #endif void _gnome_vfs_module_callback_private_init (void); GnomeVFSModuleCallbackStackInfo *_gnome_vfs_module_callback_get_stack_info (void); void _gnome_vfs_module_callback_free_stack_info (GnomeVFSModuleCallbackStackInfo *stack_info); void _gnome_vfs_module_callback_use_stack_info (GnomeVFSModuleCallbackStackInfo *stack_info); void _gnome_vfs_module_callback_clear_stacks (void); void _gnome_vfs_module_callback_set_in_async_thread (gboolean in_async_thread); /* For callback marshalling: */ gboolean _gnome_vfs_module_callback_marshal_invoke (const char *callback_name, gconstpointer in, gsize in_size, gpointer out, gsize out_size); #ifdef USE_DAEMON gboolean _gnome_vfs_module_callback_demarshal_invoke (const char *callback_name, DBusMessageIter *iter_in, DBusMessage *reply); #endif #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-resolve.c0000644000175000001440000002617111334251016016461 00000000000000/* gnome-vfs-resolve.c - Resolver API Copyright (C) 2004 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #ifndef G_OS_WIN32 /* Keep above the network includes for FreeBSD. */ #include #include #include #include #include #include #include #else #include #include #endif #include #include #ifdef HAVE_RES_NINIT #include #include /* RELOAD_TIMEVAL specifies the minimum of seconds between resolver reloads */ #define RELOAD_TIMEVAL 2 #endif #include #include #define INIT_BUFSIZE 8192 /* Unix Network Programming Chapter 11 Page 304 :) */ #if !HAVE_GETADDRINFO && !HAVE_GETHOSTBYNAME_R_GLIBC && !HAVE_GETHOSTBYNAME_R_SOLARIS && !HAVE_GETHOSTBYNAME_R_HPUX G_LOCK_DEFINE (dns_lock); # ifndef G_OS_WIN32 # ifndef h_errno extern int h_errno; # endif /* h_errno */ # endif /* G_OS_WIN32 */ #endif struct GnomeVFSResolveHandle_ { #ifdef HAVE_GETADDRINFO struct addrinfo *result; struct addrinfo *current; #else GList *result; GList *current; #endif }; #ifndef HAVE_GETADDRINFO static GnomeVFSResult resolvehandle_from_hostent (struct hostent *he, GnomeVFSResolveHandle **handle) { GnomeVFSAddress *addr; GList *result; char **iter; void *aptr; size_t addrlen; struct sockaddr *sa; struct sockaddr_in sin; #ifdef ENABLE_IPV6 struct sockaddr_in6 sin6; #endif switch (he->h_addrtype) { case AF_INET: memset (&sin, 0, sizeof (sin)); sin.sin_family = AF_INET; aptr = &(sin.sin_addr); sa = (struct sockaddr *) &sin; addrlen = sizeof (struct sockaddr_in); break; #ifdef ENABLE_IPV6 case AF_INET6: memset (&sin6, 0, sizeof (sin6)); sin6.sin6_family = AF_INET6; aptr = &(sin6.sin6_addr); sa = (struct sockaddr *) &sin6; addrlen = sizeof (struct sockaddr_in6); break; #endif default: return GNOME_VFS_ERROR_INTERNAL; } result = NULL; *handle = NULL; for (iter = he->h_addr_list; *iter != NULL; iter++) { g_memmove (aptr, *iter, he->h_length); addr = gnome_vfs_address_new_from_sockaddr (sa, addrlen); if (addr != NULL) result = g_list_append (result, addr); } if (result == NULL) return GNOME_VFS_ERROR_INTERNAL; *handle = g_new0 (GnomeVFSResolveHandle, 1); (*handle)->result = result; (*handle)->current = result; return GNOME_VFS_OK; } #endif #ifdef HAVE_RES_NINIT static gboolean restart_resolve (void) { static GTimeVal last_reload = { 0, 0 }; static GStaticMutex mutex = G_STATIC_MUTEX_INIT; GTimeVal now; gboolean ret; g_static_mutex_lock (&mutex); g_get_current_time (&now); if ((now.tv_sec - last_reload.tv_sec) > RELOAD_TIMEVAL) { last_reload.tv_sec = now.tv_sec; ret = (res_ninit (&_res) == 0); } else { ret = FALSE; } g_static_mutex_unlock (&mutex); return ret; } #else #define restart_resolve() FALSE #endif #ifdef HAVE_GETADDRINFO static GnomeVFSResult _gnome_vfs_result_from_gai_error (int error) { switch (error) { case EAI_NONAME: return GNOME_VFS_ERROR_HOST_NOT_FOUND; #ifdef EAI_ADDRFAMILY case EAI_ADDRFAMILY: return GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS; #endif #ifdef EAI_NODATA case EAI_NODATA: return GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS; #endif #ifdef EAI_SYSTEM case EAI_SYSTEM: return gnome_vfs_result_from_errno (); #endif case EAI_FAIL: case EAI_AGAIN: return GNOME_VFS_ERROR_NAMESERVER; case EAI_MEMORY: return GNOME_VFS_ERROR_NO_MEMORY; /* We should not get these errors there just here to have complete list of getaddrinfo errors*/ case EAI_FAMILY: case EAI_SOCKTYPE: case EAI_SERVICE: case EAI_BADFLAGS: default: return GNOME_VFS_ERROR_INTERNAL; } } #endif /** * gnome_vfs_resolve: * @hostname: hostname you want to resolve. * @handle: pointer to a pointer to a #GnomeVFSResolveHandle. * * Tries to resolve @hostname. If the operation was successful you can * get the resolved addresses in form of #GnomeVFSAddress by calling * gnome_vfs_resolve_next_address(). * * Return value: A #GnomeVFSResult indicating the success of the operation. * * Since: 2.8 */ GnomeVFSResult gnome_vfs_resolve (const char *hostname, GnomeVFSResolveHandle **handle) { #ifdef HAVE_GETADDRINFO struct addrinfo hints, *result; int res; gboolean retry = TRUE; restart: memset (&hints, 0, sizeof (hints)); hints.ai_socktype = SOCK_STREAM; #ifdef ENABLE_IPV6 # ifdef HAVE_AI_ADDRCONFIG /* RFC3493 */ hints.ai_flags = AI_ADDRCONFIG; hints.ai_family = AF_UNSPEC; # else hints.ai_family = AF_UNSPEC; # endif #else hints.ai_family = AF_INET; #endif /* ENABLE_IPV6 */ res = getaddrinfo (hostname, NULL, &hints, &result); if (res != 0) { if (retry && restart_resolve ()) { retry = FALSE; goto restart; } else { return _gnome_vfs_result_from_gai_error (res); } } *handle = g_new0 (GnomeVFSResolveHandle, 1); (*handle)->result = result; (*handle)->current = result; return GNOME_VFS_OK; #else /* HAVE_GETADDRINFO */ struct hostent resbuf, *result = &resbuf; GnomeVFSResult ret; int res; gboolean retry = TRUE; #ifdef HAVE_GETHOSTBYNAME_R_GLIBC size_t buflen; char *buf; int h_errnop; restart: buf = NULL; buflen = INIT_BUFSIZE; h_errnop = 0; do { buf = g_renew (char, buf, buflen); res = gethostbyname_r (hostname, &resbuf, buf, buflen, &result, &h_errnop); buflen *= 2; } while (res == ERANGE); if (res != 0 || result == NULL || result->h_addr_list[0] == NULL) { g_free (buf); if (retry && restart_resolve ()) { retry = FALSE; goto restart; } else { return gnome_vfs_result_from_h_errno_val (h_errnop); } } ret = resolvehandle_from_hostent (result, handle); g_free (buf); #elif HAVE_GETHOSTBYNAME_R_SOLARIS size_t buflen; char *buf; int h_errnop; restart: buf = NULL; buflen = INIT_BUFSIZE; h_errnop = 0; do { buf = g_renew (char, buf, buflen); result = gethostbyname_r (hostname, &resbuf, buf, buflen, &h_errnop); buflen *= 2; } while (h_errnop == ERANGE); if (result == NULL) { g_free (buf); if (retry && restart_resolve ()) { retry = FALSE; goto restart; } else { return gnome_vfs_result_from_h_errno_val (h_errnop); } } ret = resolvehandle_from_hostent (result, handle); g_free (buf); #elif HAVE_GETHOSTBYNAME_R_HPUX struct hostent_data buf; restart: res = gethostbyname_r (hostname, result, &buf); if (res != 0) { if (retry && restart_resolve ()) { retry = FALSE; goto restart; } else { return gnome_vfs_result_from_h_errno_val (h_errnop); } } ret = resolvehandle_from_hostent (result, handle); #else /* !HAVE_GETHOSTBYNAME_R_GLIBC && !HAVE_GETHOSTBYNAME_R_SOLARIS && !HAVE_GETHOSTBYNAME_R_HPUX */ res = 0;/* only set to avoid unused variable error */ G_LOCK (dns_lock); restart: result = gethostbyname (hostname); if (result == NULL) { if (retry && restart_resolve ()) { retry = FALSE; goto restart; } else { #ifndef G_OS_WIN32 ret = gnome_vfs_result_from_h_errno (); #else switch (WSAGetLastError ()) { case WSAHOST_NOT_FOUND: ret = GNOME_VFS_ERROR_HOST_NOT_FOUND; break; case WSANO_DATA: ret = GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS; break; case WSATRY_AGAIN: case WSANO_RECOVERY: ret = GNOME_VFS_ERROR_NAMESERVER; default: ret = GNOME_VFS_ERROR_GENERIC; } #endif } } else { ret = resolvehandle_from_hostent (result, handle); } G_UNLOCK (dns_lock); #endif /* !HAVE_GETHOSTBYNAME_R_GLIBC && !HAVE_GETHOSTBYNAME_R_SOLARIS && !HAVE_GETHOSTBYNAME_R_HPUX */ return ret; #endif /* HAVE_GETADDRINFO */ } /** * gnome_vfs_resolve_reset_to_beginning: * @handle: a #GnomeVFSResolveHandle. * * Reset @handle so that a following call to gnome_vfs_resolve_next_address() * will return the first resolved address. * * Since: 2.8 */ void gnome_vfs_resolve_reset_to_beginning (GnomeVFSResolveHandle *handle) { g_return_if_fail (handle != NULL); handle->current = handle->result; } /** * gnome_vfs_resolve_next_address: * @handle: a #GnomeVFSResolveHandle. * @address: a pointer to a pointer to a #GnomeVFSAddress. * * Stores the next #GnomeVFSAddress available in @handle of the * former lookup in @address. * * Return value: %TRUE if the next address was stored in @address or * %FALSE if no other address is available. * * Since: 2.8 */ gboolean gnome_vfs_resolve_next_address (GnomeVFSResolveHandle *handle, GnomeVFSAddress **address) { g_return_val_if_fail (address != NULL, FALSE); g_return_val_if_fail (handle != NULL, FALSE); *address = NULL; #ifdef HAVE_GETADDRINFO while (*address == NULL && handle->current != NULL) { #ifdef _AIX /* getaddrinfo() on AIX 4.3.2 and probably others don't set sa_family in ai_addr so we have to copy it from ai_family */ handle->current->ai_addr->sa_family = handle->current->ai_family; #endif *address = gnome_vfs_address_new_from_sockaddr (handle->current->ai_addr, handle->current->ai_addrlen); handle->current = handle->current->ai_next; } #else if (handle->current) { *address = gnome_vfs_address_dup (handle->current->data); handle->current = handle->current->next; } #endif return *address != NULL; } /** * gnome_vfs_resolve_free: * @handle: a #GnomeVFSResolveHandle. * * Use this function to free a #GnomeVFSResolveHandle returned by * gnome_vfs_resolve(). * * Since: 2.8 */ void gnome_vfs_resolve_free (GnomeVFSResolveHandle *handle) { #ifdef HAVE_GETADDRINFO if (handle->result != NULL) freeaddrinfo (handle->result); #else for (handle->current = handle->result; handle->current != NULL; handle->current = handle->current->next) { gnome_vfs_address_free (handle->current->data); } g_list_free (handle->result); #endif g_free (handle); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-method.h0000644000175000001440000002327611334251016016272 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-method.h - Virtual class for access methods in the GNOME Virtual File System. Copyright (C) 1999, 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Seth Nickell */ #ifndef GNOME_VFS_METHOD_H #define GNOME_VFS_METHOD_H /* * The following include helps Solaris copy with its own headers. (With 64- * bit stuff enabled they like to #define open open64, etc.) * See http://bugzilla.gnome.org/show_bug.cgi?id=71184 for details. */ #ifndef _WIN32 #include #endif #include #include #include #include #include #include G_BEGIN_DECLS #define _GNOME_VFS_METHOD_PARAM_CHECK(expression) \ g_return_val_if_fail ((expression), GNOME_VFS_ERROR_BAD_PARAMETERS); typedef struct GnomeVFSMethod GnomeVFSMethod; typedef GnomeVFSMethod * (* GnomeVFSMethodInitFunc)(const char *method_name, const char *config_args); typedef void (*GnomeVFSMethodShutdownFunc)(GnomeVFSMethod *method); typedef GnomeVFSResult (* GnomeVFSMethodOpenFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCreateFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCloseFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodReadFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read_return, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodWriteFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written_return, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodSeekFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodTellFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return); typedef GnomeVFSResult (* GnomeVFSMethodOpenDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCloseDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodReadDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodGetFileInfoFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodGetFileInfoFromHandleFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodTruncateFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize length, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodTruncateHandleFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *handle, GnomeVFSFileSize length, GnomeVFSContext *context); typedef gboolean (* GnomeVFSMethodIsLocalFunc) (GnomeVFSMethod *method, const GnomeVFSURI *uri); typedef GnomeVFSResult (* GnomeVFSMethodMakeDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodFindDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSURI *find_near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint perm, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodRemoveDirectoryFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodMoveFunc) (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodUnlinkFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCheckSameFSFunc) (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodSetFileInfo) (GnomeVFSMethod *method, GnomeVFSURI *a, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodCreateSymbolicLinkFunc) (GnomeVFSMethod *method, GnomeVFSURI *uri, const gchar *target_reference, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodMonitorAddFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle_return, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type); typedef GnomeVFSResult (* GnomeVFSMethodMonitorCancelFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *handle); typedef GnomeVFSResult (* GnomeVFSMethodFileControlFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, const char *operation, gpointer operation_data, GnomeVFSContext *context); typedef GnomeVFSResult (* GnomeVFSMethodForgetCacheFunc) (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileOffset offset, GnomeVFSFileSize size); typedef GnomeVFSResult (* GnomeVFSMethodGetVolumeFreeSpaceFunc) (GnomeVFSMethod *method, const GnomeVFSURI *uri, GnomeVFSFileSize *free_space); /* Use this macro to test whether a given function is implemented in * a given GnomeVFSMethod. Note that it checks the expected size of the structure * prior to testing NULL. */ #define VFS_METHOD_HAS_FUNC(method,func) ((((char *)&((method)->func)) - ((char *)(method)) < (method)->method_table_size) && method->func != NULL) /* Structure defining an access method. This is also defined as an opaque type in `gnome-vfs-types.h'. */ struct GnomeVFSMethod { gsize method_table_size; /* Used for versioning */ GnomeVFSMethodOpenFunc open; GnomeVFSMethodCreateFunc create; GnomeVFSMethodCloseFunc close; GnomeVFSMethodReadFunc read; GnomeVFSMethodWriteFunc write; GnomeVFSMethodSeekFunc seek; GnomeVFSMethodTellFunc tell; GnomeVFSMethodTruncateHandleFunc truncate_handle; GnomeVFSMethodOpenDirectoryFunc open_directory; GnomeVFSMethodCloseDirectoryFunc close_directory; GnomeVFSMethodReadDirectoryFunc read_directory; GnomeVFSMethodGetFileInfoFunc get_file_info; GnomeVFSMethodGetFileInfoFromHandleFunc get_file_info_from_handle; GnomeVFSMethodIsLocalFunc is_local; GnomeVFSMethodMakeDirectoryFunc make_directory; GnomeVFSMethodRemoveDirectoryFunc remove_directory; GnomeVFSMethodMoveFunc move; GnomeVFSMethodUnlinkFunc unlink; GnomeVFSMethodCheckSameFSFunc check_same_fs; GnomeVFSMethodSetFileInfo set_file_info; GnomeVFSMethodTruncateFunc truncate; GnomeVFSMethodFindDirectoryFunc find_directory; GnomeVFSMethodCreateSymbolicLinkFunc create_symbolic_link; GnomeVFSMethodMonitorAddFunc monitor_add; GnomeVFSMethodMonitorCancelFunc monitor_cancel; GnomeVFSMethodFileControlFunc file_control; GnomeVFSMethodForgetCacheFunc forget_cache; GnomeVFSMethodGetVolumeFreeSpaceFunc get_volume_free_space; }; gboolean gnome_vfs_method_init (void); GnomeVFSMethod *gnome_vfs_method_get (const gchar *name); GnomeVFSTransform *gnome_vfs_transform_get (const gchar *name); void _gnome_vfs_method_shutdown (void); G_END_DECLS #endif /* GNOME_VFS_METHOD_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-monitor-private.h0000644000175000001440000001450711334251016021453 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-monitor-private.h - Handling of volumes for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_VOLUME_MONITOR_PRIVATE_H #define GNOME_VFS_VOLUME_MONITOR_PRIVATE_H #include #include "gnome-vfs-volume-monitor.h" #ifdef USE_DAEMON #include #endif #define CONNECTED_SERVERS_DIR "/desktop/gnome/connected_servers" struct _GnomeVFSVolumeMonitorPrivate { GMutex *mutex; GList *fstab_drives; GList *vfs_drives; GList *mtab_volumes; GList *server_volumes; GList *vfs_volumes; }; struct _GnomeVFSVolumePrivate { gulong id; GnomeVFSVolumeType volume_type; GnomeVFSDeviceType device_type; GnomeVFSDrive *drive; /* Non-owning ref */ char *activation_uri; char *filesystem_type; char *display_name; char *display_name_key; char *icon; gboolean is_user_visible; gboolean is_read_only; gboolean is_mounted; /* Only for unix mounts: */ char *device_path; dev_t unix_device; /* Only for HAL devices: */ char *hal_udi; char *hal_drive_udi; /* only available to daemon; not exported */ /* Only for connected servers */ char *gconf_id; }; struct _GnomeVFSDrivePrivate { gulong id; GnomeVFSDeviceType device_type; GList *volumes; /* GnomeVFSVolume list (Owning ref) */ /* Only for unix mounts: */ char *device_path; char *activation_uri; char *display_name; char *display_name_key; char *icon; gboolean is_user_visible; gboolean is_connected; /* Only for HAL devices: */ char *hal_udi; char *hal_drive_udi; /* only available to daemon; not exported */ char *hal_backing_crypto_volume_udi; /* only available to daemon; not exported */ gboolean must_eject_at_unmount; }; void gnome_vfs_volume_set_drive_private (GnomeVFSVolume *volume, GnomeVFSDrive *drive); void gnome_vfs_drive_add_mounted_volume_private (GnomeVFSDrive *drive, GnomeVFSVolume *volume); void gnome_vfs_drive_remove_volume_private (GnomeVFSDrive *drive, GnomeVFSVolume *volume); void gnome_vfs_volume_unset_drive_private (GnomeVFSVolume *volume, GnomeVFSDrive *drive); void _gnome_vfs_volume_monitor_mounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume); void _gnome_vfs_volume_monitor_unmounted (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume); void _gnome_vfs_volume_monitor_connected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive); void _gnome_vfs_volume_monitor_disconnected (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSDrive *drive); void _gnome_vfs_volume_monitor_disconnect_all (GnomeVFSVolumeMonitor *volume_monitor); void _gnome_vfs_volume_monitor_unmount_all (GnomeVFSVolumeMonitor *volume_monitor); void gnome_vfs_volume_monitor_emit_pre_unmount (GnomeVFSVolumeMonitor *volume_monitor, GnomeVFSVolume *volume); void _gnome_vfs_volume_monitor_force_probe (GnomeVFSVolumeMonitor *volume_monitor); GnomeVFSVolumeMonitor *_gnome_vfs_get_volume_monitor_internal (gboolean create); void _gnome_vfs_volume_monitor_shutdown (void); int _gnome_vfs_device_type_get_sort_group (GnomeVFSDeviceType type); #ifdef USE_DAEMON GnomeVFSVolume *_gnome_vfs_volume_from_dbus (DBusMessageIter *iter, GnomeVFSVolumeMonitor *volume_monitor); gboolean gnome_vfs_volume_to_dbus (DBusMessageIter *iter, GnomeVFSVolume *volume); gboolean gnome_vfs_drive_to_dbus (DBusMessageIter *iter, GnomeVFSDrive *drive); GnomeVFSDrive * _gnome_vfs_drive_from_dbus (DBusMessageIter *iter, GnomeVFSVolumeMonitor *volume_monitor); #endif GnomeVFSVolume *_gnome_vfs_volume_monitor_find_mtab_volume_by_activation_uri (GnomeVFSVolumeMonitor *volume_monitor, const char *activation_uri); GnomeVFSDrive * _gnome_vfs_volume_monitor_find_fstab_drive_by_activation_uri (GnomeVFSVolumeMonitor *volume_monitor, const char *activation_uri); GnomeVFSVolume *_gnome_vfs_volume_monitor_find_connected_server_by_gconf_id (GnomeVFSVolumeMonitor *volume_monitor, const char *id); #ifdef USE_HAL GnomeVFSVolume *_gnome_vfs_volume_monitor_find_volume_by_hal_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_udi); GnomeVFSDrive *_gnome_vfs_volume_monitor_find_drive_by_hal_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_udi); GnomeVFSVolume *_gnome_vfs_volume_monitor_find_volume_by_hal_drive_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_drive_udi); GnomeVFSDrive *_gnome_vfs_volume_monitor_find_drive_by_hal_drive_udi (GnomeVFSVolumeMonitor *volume_monitor, const char *hal_drive_udi); #endif /* USE_HAL */ GnomeVFSVolume *_gnome_vfs_volume_monitor_find_volume_by_device_path (GnomeVFSVolumeMonitor *volume_monitor, const char *device_path); GnomeVFSDrive *_gnome_vfs_volume_monitor_find_drive_by_device_path (GnomeVFSVolumeMonitor *volume_monitor, const char *device_path); char *_gnome_vfs_volume_monitor_uniquify_volume_name (GnomeVFSVolumeMonitor *volume_monitor, const char *name); char *_gnome_vfs_volume_monitor_uniquify_drive_name (GnomeVFSVolumeMonitor *volume_monitor, const char *name); #endif /* GNOME_VFS_VOLUME_MONITOR_PRIVATE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-find-directory.c0000644000175000001440000000531311334251016017717 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-find-directory.c - Public utility functions for the GNOME Virtual File System. Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Pavel Cisler */ #include #include "gnome-vfs-find-directory.h" #include "gnome-vfs-cancellable-ops.h" /** * gnome_vfs_find_directory: * @near_uri: find a well known directory on the same volume as @near_uri. * @kind: kind of well known directory. * @result: newly created uri of the directory we found. * @create_if_needed: if directory we are looking for does not exist, try to create it. * @find_if_needed: if we don't know where directory is yet, look for it. * @permissions: if creating, use these permissions. * * Used to return well known directories such as Trash, Desktop, etc. from different * file systems. * * There is quite a complicated logic behind finding/creating a Trash directory * and you need to be aware of some implications: * Finding the Trash the first time when using the file method may be pretty * expensive. A cache file is used to store the location of that Trash file * for next time. * If @create_if_needed is specified without @find_if_needed, you may end up * creating a Trash file when there already is one. Your app should start out * by doing a gnome_vfs_find_directory() with the @find_if_needed to avoid this * and then use the @create_if_needed flag to create Trash lazily when it is * needed for throwing away an item on a given disk. * * Returns: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_find_directory (GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result, gboolean create_if_needed, gboolean find_if_needed, guint permissions) { return gnome_vfs_find_directory_cancellable (near_uri, kind, result, create_if_needed, find_if_needed, permissions, NULL); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-backend.h0000644000175000001440000000127111334251016016370 00000000000000#ifndef GNOME_VFS_BACKEND_H #define GNOME_VFS_BACKEND_H #include #include G_BEGIN_DECLS void _gnome_vfs_get_current_context (/* OUT */ GnomeVFSContext **context); void _gnome_vfs_dispatch_module_callback (GnomeVFSAsyncModuleCallback callback, gconstpointer in, gsize in_size, gpointer out, gsize out_size, gpointer user_data, GnomeVFSModuleCallbackResponse response, gpointer response_data); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/xdgmimecache.h0000644000175000001440000001021111334251016015512 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimecache.h: Private file. Datastructure for mmapped caches. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2005 Matthias Clasen * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_CACHE_H__ #define __XDG_MIME_CACHE_H__ #include "xdgmime.h" typedef struct _XdgMimeCache XdgMimeCache; #ifdef XDG_PREFIX #define _xdg_mime_cache_new_from_file XDG_RESERVED_ENTRY(cache_new_from_file) #define _xdg_mime_cache_ref XDG_RESERVED_ENTRY(cache_ref) #define _xdg_mime_cache_unref XDG_RESERVED_ENTRY(cache_unref) #define _xdg_mime_cache_get_max_buffer_extents XDG_RESERVED_ENTRY(cache_get_max_buffer_extents) #define _xdg_mime_cache_get_mime_type_for_data XDG_RESERVED_ENTRY(cache_get_mime_type_for_data) #define _xdg_mime_cache_get_mime_type_for_file XDG_RESERVED_ENTRY(cache_get_mime_type_for_file) #define _xdg_mime_cache_get_mime_type_from_file_name XDG_RESERVED_ENTRY(cache_get_mime_type_from_file_name) #define _xdg_mime_cache_get_mime_types_from_file_name XDG_RESERVED_ENTRY(cache_get_mime_types_from_file_name) #define _xdg_mime_cache_list_mime_parents XDG_RESERVED_ENTRY(cache_list_mime_parents) #define _xdg_mime_cache_mime_type_subclass XDG_RESERVED_ENTRY(cache_mime_type_subclass) #define _xdg_mime_cache_unalias_mime_type XDG_RESERVED_ENTRY(cache_unalias_mime_type) #define _xdg_mime_cache_get_icon XDG_RESERVED_ENTRY(cache_get_icon) #define _xdg_mime_cache_get_generic_icon XDG_RESERVED_ENTRY(cache_get_generic_icon) #define _xdg_mime_cache_glob_dump XDG_RESERVED_ENTRY(cache_glob_dump) #endif extern XdgMimeCache **_caches; XdgMimeCache *_xdg_mime_cache_new_from_file (const char *file_name); XdgMimeCache *_xdg_mime_cache_ref (XdgMimeCache *cache); void _xdg_mime_cache_unref (XdgMimeCache *cache); const char *_xdg_mime_cache_get_mime_type_for_data (const void *data, size_t len, int *result_prio); const char *_xdg_mime_cache_get_mime_type_for_file (const char *file_name, struct stat *statbuf); int _xdg_mime_cache_get_mime_types_from_file_name (const char *file_name, const char *mime_types[], int n_mime_types); const char *_xdg_mime_cache_get_mime_type_from_file_name (const char *file_name); int _xdg_mime_cache_is_valid_mime_type (const char *mime_type); int _xdg_mime_cache_mime_type_equal (const char *mime_a, const char *mime_b); int _xdg_mime_cache_media_type_equal (const char *mime_a, const char *mime_b); int _xdg_mime_cache_mime_type_subclass (const char *mime_a, const char *mime_b); char **_xdg_mime_cache_list_mime_parents (const char *mime); const char *_xdg_mime_cache_unalias_mime_type (const char *mime); int _xdg_mime_cache_get_max_buffer_extents (void); const char *_xdg_mime_cache_get_icon (const char *mime); const char *_xdg_mime_cache_get_generic_icon (const char *mime); void _xdg_mime_cache_glob_dump (void); #endif /* __XDG_MIME_CACHE_H__ */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-utils.h0000644000175000001440000000542111334251016017067 00000000000000/* * Copyright (C) 1997-2001 Free Software Foundation * Copyright (C) 2000, 2001 Eazel, Inc. * All rights reserved. * * This file is part of the Gnome Library. * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_MIME_UTILS_H #define GNOME_VFS_MIME_UTILS_H #include G_BEGIN_DECLS /** * GNOME_VFS_MIME_TYPE_UNKNOWN: * * The value returned for the MIME type when a file did * not match any entries in the MIME database. May be * treated as a file of an unknown type. **/ #define GNOME_VFS_MIME_TYPE_UNKNOWN "application/octet-stream" /** * GnomeVFSMimeEquivalence: * @GNOME_VFS_MIME_UNRELATED: The two MIME types are not related. * @GNOME_VFS_MIME_IDENTICAL: The two MIME types are identical. * @GNOME_VFS_MIME_PARENT: One of the two MIME types is a parent of the other one. * Note that this relationship is transient, i.e. if * %a is a parent of %b and %b is a parent of %c, * %a is also considered a parent of %c. * * Describes the possible relationship between two MIME types, returned by * gnome_vfs_mime_type_get_equivalence(). */ typedef enum { GNOME_VFS_MIME_UNRELATED, GNOME_VFS_MIME_IDENTICAL, GNOME_VFS_MIME_PARENT } GnomeVFSMimeEquivalence; GnomeVFSMimeEquivalence gnome_vfs_mime_type_get_equivalence (const char *mime_type, const char *base_mime_type); gboolean gnome_vfs_mime_type_is_equal (const char *a, const char *b); const char *gnome_vfs_get_mime_type_for_name (const char *filename); const char *gnome_vfs_get_mime_type_for_data (gconstpointer data, int data_size); const char *gnome_vfs_get_mime_type_for_name_and_data (const char *filename, gconstpointer data, gssize data_size); char *gnome_vfs_get_mime_type (const char *text_uri); char *gnome_vfs_get_slow_mime_type (const char *text_uri); G_END_DECLS #endif /* GNOME_VFS_MIME_UTILS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-magic.h0000644000175000001440000000016511334251016017007 00000000000000#ifndef GNOME_VFS_MIME_MAGIC_H #define GNOME_VFS_MIME_MAGIC_H #include G_BEGIN_DECLS G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-pty.h0000644000175000001440000000271711334251016015623 00000000000000/* * Copyright (C) 2001,2002,2004 Red Hat, Inc. * * This 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 distributed in the hope 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 Library General Public * License along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef PTY_OPEN_H #define PTY_OPEN_H #include G_BEGIN_DECLS enum { GNOME_VFS_PTY_REAP_CHILD = 1, GNOME_VFS_PTY_LOGIN_TTY = 2 }; /* Start up the given binary (exact path, not interpreted at all) in a * pseudo-terminal of its own, returning the descriptor for the master * side of the PTY pair, logging the session to the specified files, and * storing the child's PID in the given argument. */ int gnome_vfs_pty_open(pid_t *child, guint flags, char **env_add, const char *command, char **argv, const char *directory, int columns, int rows, int *stdin_fd, int *stdout_fd, int *stderr_fd); int _gnome_vfs_pty_get_size(int master, int *columns, int *rows); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-daemon-method.c0000644000175000001440000012756411334251016017533 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004-2006 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. */ #include #include #include #include #include #include #include #include #include #include #include #include /* This is the current max in D-BUS, any number larger are getting set to * 6 hours. */ #define DBUS_TIMEOUT_OPEN_CLOSE (5 * 60 * 60 * 1000) /* Will be used for other operations */ #define DBUS_TIMEOUT_DEFAULT 30 * 1000 #define d(x) typedef struct { gint32 handle_id; GList *dirs; GList *current; } DirectoryHandle; typedef struct { gint32 handle_id; /* Probably need more stuff here? */ } FileHandle; typedef struct { DBusConnection *connection; gint conn_id; gint handle; } LocalConnection; static void append_args_valist (DBusMessage *message, DvdArgumentType first_arg_type, va_list var_args); static DBusMessage * execute_operation (const gchar *method, GnomeVFSContext *context, GnomeVFSResult *result, gint timeout, DvdArgumentType type, ...); static gboolean check_if_reply_is_error (DBusMessage *reply, GnomeVFSResult *result); static DBusMessage * create_method_call (const gchar *method); static gint32 cancellation_id_new (GnomeVFSContext *context, LocalConnection *conn); static void cancellation_id_free (gint32 cancellation_id, GnomeVFSContext *context); static void connection_unregistered_func (DBusConnection *conn, gpointer data); static DBusHandlerResult connection_message_func (DBusConnection *conn, DBusMessage *message, gpointer data); static GStaticPrivate local_connection_private = G_STATIC_PRIVATE_INIT; static DBusObjectPathVTable connection_vtable = { connection_unregistered_func, connection_message_func, NULL }; static void utils_append_string_or_null (DBusMessageIter *iter, const gchar *str) { if (str == NULL) str = ""; dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &str); } static const gchar * utils_peek_string_or_null (DBusMessageIter *iter, gboolean empty_is_null) { const gchar *str; dbus_message_iter_get_basic (iter, &str); if (empty_is_null && *str == 0) { return NULL; } else { return str; } } /* * FileInfo messages */ gboolean gnome_vfs_daemon_message_iter_append_file_info (DBusMessageIter *iter, const GnomeVFSFileInfo *info) { DBusMessageIter struct_iter; gint32 i; guint32 u; gint64 i64; gchar *str; g_return_val_if_fail (iter != NULL, FALSE); g_return_val_if_fail (info != NULL, FALSE); if (!dbus_message_iter_open_container (iter, DBUS_TYPE_STRUCT, NULL, /* for struct */ &struct_iter)) { return FALSE; } i = info->valid_fields; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); str = gnome_vfs_escape_path_string (info->name); utils_append_string_or_null (&struct_iter, str); g_free (str); i = info->type; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = info->permissions; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = info->flags; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = info->device; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i64 = info->inode; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT64, &i64); i = info->link_count; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); u = info->uid; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_UINT32, &u); u = info->gid; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_UINT32, &u); i64 = info->size; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT64, &i64); i64 = info->block_count; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT64, &i64); i = info->atime; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = info->mtime; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = info->ctime; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); str = gnome_vfs_escape_path_string (info->symlink_name); utils_append_string_or_null (&struct_iter, str); g_free (str); utils_append_string_or_null (&struct_iter, info->mime_type); dbus_message_iter_close_container (iter, &struct_iter); return TRUE; } gboolean gnome_vfs_daemon_message_append_file_info (DBusMessage *message, const GnomeVFSFileInfo *info) { DBusMessageIter iter; g_return_val_if_fail (message != NULL, FALSE); g_return_val_if_fail (info != NULL, FALSE); dbus_message_iter_init_append (message, &iter); return gnome_vfs_daemon_message_iter_append_file_info (&iter, info); } GnomeVFSFileInfo * gnome_vfs_daemon_message_iter_get_file_info (DBusMessageIter *iter) { DBusMessageIter struct_iter; GnomeVFSFileInfo *info; const gchar *str; gint32 i; guint32 u; gint64 i64; g_return_val_if_fail (iter != NULL, NULL); g_assert (dbus_message_iter_get_arg_type (iter) == DBUS_TYPE_STRUCT); dbus_message_iter_recurse (iter, &struct_iter); info = gnome_vfs_file_info_new (); dbus_message_iter_get_basic (&struct_iter, &i); info->valid_fields = i; dbus_message_iter_next (&struct_iter); str = utils_peek_string_or_null (&struct_iter, FALSE); info->name = gnome_vfs_unescape_string (str, NULL); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->type = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->permissions = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->flags = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->device = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i64); info->inode = i64; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->link_count = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &u); info->uid = u; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &u); info->gid = u; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i64); info->size = i64; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i64); info->block_count = i64; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->atime = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->mtime = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); info->ctime = i; dbus_message_iter_next (&struct_iter); str = utils_peek_string_or_null (&struct_iter, TRUE); if (str) { info->symlink_name = gnome_vfs_unescape_string (str, NULL); } dbus_message_iter_next (&struct_iter); str = utils_peek_string_or_null (&struct_iter, TRUE); if (str) { info->mime_type = g_strdup (str); } return info; } static GList * dbus_utils_message_get_file_info_list (DBusMessage *message) { DBusMessageIter iter, array_iter; GnomeVFSFileInfo *info; GList *list; g_return_val_if_fail (message != NULL, NULL); if (!dbus_message_iter_init (message, &iter)) { return NULL; } /* First skip the result code (which has already been checked). */ if (!dbus_message_iter_next (&iter)) { return NULL; } dbus_message_iter_recurse (&iter, &array_iter); list = NULL; if (dbus_message_iter_get_arg_type (&array_iter) != DBUS_TYPE_INVALID) { do { info = gnome_vfs_daemon_message_iter_get_file_info (&array_iter); if (info) { list = g_list_prepend (list, info); } } while (dbus_message_iter_next (&array_iter)); } list = g_list_reverse (list); return list; } typedef struct { gint32 id; gchar *sender; } CancellationRequest; static void destroy_private_connection (gpointer data) { LocalConnection *ret = data; dbus_connection_close (ret->connection); dbus_connection_unref (ret->connection); g_free (ret); } static void private_connection_died (LocalConnection *connection) { g_static_private_set (&local_connection_private, NULL, NULL); } static LocalConnection * get_private_connection () { DBusMessage *message; DBusMessage *reply; DBusError error; DBusConnection *main_conn, *private_conn; gchar *address; dbus_int32_t conn_id; LocalConnection *ret; ret = g_static_private_get (&local_connection_private); if (ret != NULL) { return ret; } dbus_error_init (&error); /* Use a private session connection since this happens on * a non-main thread and we don't want to mess up the main thread */ main_conn = dbus_bus_get_private (DBUS_BUS_SESSION, &error); if (!main_conn) { g_printerr ("Couldn't get main dbus connection: %s\n", error.message); dbus_error_free (&error); return NULL; } message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_GET_CONNECTION); dbus_message_set_auto_start (message, TRUE); reply = dbus_connection_send_with_reply_and_block (main_conn, message, -1, &error); dbus_message_unref (message); dbus_connection_close (main_conn); dbus_connection_unref (main_conn); if (!reply) { g_warning ("Error while getting peer-to-peer connection: %s", error.message); dbus_error_free (&error); return NULL; } dbus_message_get_args (reply, NULL, DBUS_TYPE_STRING, &address, DBUS_TYPE_INT32, &conn_id, DBUS_TYPE_INVALID); private_conn = dbus_connection_open_private (address, &error); if (!private_conn) { g_warning ("Failed to connect to peer-to-peer address (%s): %s", address, error.message); dbus_message_unref (reply); dbus_error_free (&error); return NULL; } dbus_message_unref (reply); if (!dbus_connection_register_object_path (private_conn, DVD_CLIENT_OBJECT, &connection_vtable, NULL)) { g_warning ("Failed to register client object with the connection."); dbus_connection_close (private_conn); dbus_connection_unref (private_conn); return NULL; } ret = g_new (LocalConnection, 1); ret->connection = private_conn; ret->conn_id = conn_id; ret->handle = 0; g_static_private_set (&local_connection_private, ret, destroy_private_connection); return ret; } static void append_args_valist (DBusMessage *message, DvdArgumentType first_arg_type, va_list var_args) { DvdArgumentType type; DBusMessageIter iter; dbus_message_iter_init_append (message, &iter); type = first_arg_type; while (type != DVD_TYPE_LAST) { switch (type) { case DVD_TYPE_URI: { GnomeVFSURI *uri; gchar *uri_str; uri = va_arg (var_args, GnomeVFSURI *); uri_str = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &uri_str)) { g_error ("Out of memory"); } g_free (uri_str); break; } case DVD_TYPE_STRING: { const gchar *str; str = va_arg (var_args, const gchar *); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &str)) { g_error ("Out of memory"); } break; } case DVD_TYPE_INT32: { dbus_int32_t int32; int32 = va_arg (var_args, dbus_int32_t); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &int32)) { g_error ("Out of memory"); } break; } case DVD_TYPE_INT64: { dbus_int64_t int64; int64 = va_arg (var_args, dbus_int64_t); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT64, &int64)) { g_error ("Out of memory"); } break; } case DVD_TYPE_UINT64: { dbus_uint64_t uint64; uint64 = va_arg (var_args, dbus_uint64_t); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT64, &uint64)) { g_error ("Out of memory"); } break; } case DVD_TYPE_BOOL: { dbus_bool_t bool_v; bool_v = va_arg (var_args, dbus_bool_t); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &bool_v)) { g_error ("Out of memory"); } break; } case DVD_TYPE_FILE_INFO: { GnomeVFSFileInfo *info; info = va_arg (var_args, GnomeVFSFileInfo *); if (!gnome_vfs_daemon_message_iter_append_file_info (&iter, info)) { g_error ("Out of memory"); } break; } case DVD_TYPE_BYTE_ARRAY: { DBusMessageIter array_iter; unsigned const char *data; gint len; len = va_arg (var_args, dbus_int32_t); data = va_arg (var_args, unsigned const char *); if (!dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE_AS_STRING, &array_iter)) { g_error ("Out of memory"); } if (!dbus_message_iter_append_fixed_array (&array_iter, DBUS_TYPE_BYTE, &data, len)) { g_error ("Out of memory"); } if (!dbus_message_iter_close_container (&iter, &array_iter)) { g_error ("Out of memory"); } break; } case DVD_TYPE_LAST: return; } type = va_arg (var_args, DvdArgumentType); } } static void append_args (DBusMessage *message, DvdArgumentType first_arg_type, ...) { va_list var_args; va_start (var_args, first_arg_type); append_args_valist (message, first_arg_type, var_args); va_end (var_args); } static DBusMessage * execute_operation (const gchar *method, GnomeVFSContext *context, GnomeVFSResult *result, gint timeout, DvdArgumentType first_arg_type, ...) { DBusMessage *message; DBusMessage *reply; va_list var_args; gint32 cancellation_id; DBusError error; LocalConnection *connection; DBusPendingCall *pending_call; gint conn_id; connection = get_private_connection (&conn_id); if (connection == NULL) { *result = GNOME_VFS_ERROR_INTERNAL; return NULL; } message = create_method_call (method); va_start (var_args, first_arg_type); append_args_valist (message, first_arg_type, var_args); va_end (var_args); cancellation_id = -1; if (context) { cancellation_id = cancellation_id_new (context, connection); dbus_message_append_args (message, DBUS_TYPE_INT32, &cancellation_id, DBUS_TYPE_INVALID); } dbus_error_init (&error); d(g_print ("Executing operation '%s'... \n", method)); if (timeout == -1) { timeout = DBUS_TIMEOUT_DEFAULT; } if (!dbus_connection_send_with_reply (connection->connection, message, &pending_call, timeout)) { dbus_message_unref (message); *result = GNOME_VFS_ERROR_INTERNAL; reply = NULL; goto out; } dbus_message_unref (message); while (!dbus_pending_call_get_completed (pending_call) && dbus_connection_read_write_dispatch (connection->connection, -1)) ; if (!dbus_connection_get_is_connected (connection->connection)) { private_connection_died (connection); *result = GNOME_VFS_ERROR_INTERNAL; reply = NULL; goto out; } reply = dbus_pending_call_steal_reply (pending_call); dbus_pending_call_unref (pending_call); if (result) { *result = (reply == NULL) ? GNOME_VFS_ERROR_TIMEOUT : GNOME_VFS_OK; } out: if (cancellation_id != -1) { cancellation_id_free (cancellation_id, context); } return reply; } static gboolean check_if_reply_is_error (DBusMessage *reply, GnomeVFSResult *result) { GnomeVFSResult r; dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &r, DBUS_TYPE_INVALID); d(g_print ("check_if_reply_is_error: %s\n", gnome_vfs_result_to_string (r))); if (result) { *result = r; } if (r == GNOME_VFS_OK) { return FALSE; } dbus_message_unref (reply); return TRUE; } static DBusMessage * create_method_call (const gchar *method) { DBusMessage *message; message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, method); if (!message) { g_error ("Out of memory"); } return message; } static DirectoryHandle * directory_handle_new (gint32 handle_id) { DirectoryHandle *handle; handle = g_new0 (DirectoryHandle, 1); handle->handle_id = handle_id; return handle; } static void directory_handle_free (DirectoryHandle *handle) { gnome_vfs_file_info_list_free (handle->dirs); g_free (handle); } static FileHandle * file_handle_new (gint32 handle_id) { FileHandle *handle; handle = g_new0 (FileHandle, 1); handle->handle_id = handle_id; return handle; } static void file_handle_free (FileHandle *handle) { g_free (handle); } static gint32 cancellation_id_new (GnomeVFSContext *context, LocalConnection *conn) { GnomeVFSCancellation *cancellation; conn->handle++; cancellation = gnome_vfs_context_get_cancellation (context); if (cancellation) { _gnome_vfs_cancellation_set_handle ( cancellation, conn->conn_id, conn->handle); } return conn->handle; } static void cancellation_id_free (gint32 cancellation_id, GnomeVFSContext *context) { GnomeVFSCancellation *cancellation; cancellation = gnome_vfs_context_get_cancellation (context); if (cancellation != NULL) { _gnome_vfs_cancellation_unset_handle (cancellation); } } static void connection_unregistered_func (DBusConnection *conn, gpointer data) { } #define IS_METHOD(msg,method) \ dbus_message_is_method_call(msg,DVD_CLIENT_INTERFACE,method) static DBusHandlerResult connection_message_func (DBusConnection *dbus_conn, DBusMessage *message, gpointer data) { g_print ("connection_message_func(): %s\n", dbus_message_get_member (message)); if (IS_METHOD (message, DVD_CLIENT_METHOD_CALLBACK)) { DBusMessageIter iter; DBusMessage *reply; const gchar *callback; if (!dbus_message_iter_init (message, &iter)) { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } dbus_message_iter_get_basic (&iter, &callback); dbus_message_iter_next (&iter); g_print ("CALLBACK: %s!!!\n", callback); reply = dbus_message_new_method_return (message); _gnome_vfs_module_callback_demarshal_invoke (callback, &iter, reply); dbus_connection_send (dbus_conn, reply, NULL); dbus_connection_flush (dbus_conn); dbus_message_unref (reply); } else { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } return DBUS_HANDLER_RESULT_HANDLED; } static GnomeVFSResult do_open (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, GnomeVFSContext *context) { GnomeVFSResult result; DBusMessage *reply; dbus_int32_t handle_id; FileHandle *handle; reply = execute_operation (DVD_DAEMON_METHOD_OPEN, context, &result, DBUS_TIMEOUT_OPEN_CLOSE, DVD_TYPE_URI, uri, DVD_TYPE_INT32, mode, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, &handle_id, DBUS_TYPE_INVALID); handle = file_handle_new (handle_id); *method_handle = (GnomeVFSMethodHandle *) handle; dbus_message_unref (reply); return result; } static GnomeVFSResult do_create (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSOpenMode mode, gboolean exclusive, guint perm, GnomeVFSContext *context) { GnomeVFSResult result; DBusMessage *reply; dbus_int32_t handle_id; FileHandle *handle; reply = execute_operation (DVD_DAEMON_METHOD_CREATE, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_INT32, mode, DVD_TYPE_BOOL, exclusive, DVD_TYPE_INT32, perm, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, &handle_id, DBUS_TYPE_INVALID); handle = file_handle_new (handle_id); *method_handle = (GnomeVFSMethodHandle *) handle; dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_close (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { FileHandle *handle; DBusMessage *reply; GnomeVFSResult result; handle = (FileHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_CLOSE, context, &result, DBUS_TIMEOUT_OPEN_CLOSE, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); file_handle_free (handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_read, GnomeVFSContext *context) { FileHandle *handle; DBusMessage *reply; GnomeVFSResult result; gint size; guchar *data; DBusMessageIter iter; DBusMessageIter array_iter; int type; handle = (FileHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_READ, context, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_UINT64, num_bytes, DVD_TYPE_LAST); *bytes_read = 0; if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_iter_init (reply, &iter); dbus_message_iter_next (&iter); /* Result is already checked. */ type = dbus_message_iter_get_arg_type (&iter); if (type != DBUS_TYPE_ARRAY) { dbus_message_unref (reply); return GNOME_VFS_ERROR_INTERNAL; } dbus_message_iter_recurse (&iter, &array_iter); dbus_message_iter_get_fixed_array (&array_iter, &data, &size); if (size > 0) { memcpy (buffer, data, size); } *bytes_read = size; dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_write (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, gconstpointer buffer, GnomeVFSFileSize num_bytes, GnomeVFSFileSize *bytes_written, GnomeVFSContext *context) { FileHandle *handle; DBusMessage *reply; GnomeVFSResult result; dbus_uint64_t written; handle = (FileHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_WRITE, context, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_BYTE_ARRAY, (dbus_int32_t) num_bytes, (const unsigned char *) buffer, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_UINT64, &written, DBUS_TYPE_INVALID); dbus_message_unref (reply); *bytes_written = written; return GNOME_VFS_OK; } static GnomeVFSResult do_seek (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSContext *context) { FileHandle *handle; DBusMessage *reply; GnomeVFSResult result; handle = (FileHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_SEEK, context, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_INT32, whence, DVD_TYPE_INT64, offset, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_tell (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize *offset_return) { FileHandle *handle; DBusMessage *reply; GnomeVFSResult result; dbus_int64_t offset; handle = (FileHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_TELL, NULL, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT64, &offset, DBUS_TYPE_INVALID); *offset_return = offset; dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_truncate_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileSize where, GnomeVFSContext *context) { FileHandle *handle; DBusMessage *reply; GnomeVFSResult result; handle = (FileHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_TRUNCATE_HANDLE, context, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_UINT64, where, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_open_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { DBusMessage *reply; dbus_int32_t handle_id; DirectoryHandle *handle; GnomeVFSResult result; /*g_print ("thread: %p", (gpointer) pthread_self ());*/ reply = execute_operation (DVD_DAEMON_METHOD_OPEN_DIRECTORY, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_INT32, options, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, &handle_id, DBUS_TYPE_INVALID); handle = directory_handle_new (handle_id); *method_handle = (GnomeVFSMethodHandle *) handle; dbus_message_unref (reply); return result; } static GnomeVFSResult do_close_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSContext *context) { DirectoryHandle *handle; DBusMessage *reply; GnomeVFSResult result; handle = (DirectoryHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_CLOSE_DIRECTORY, context, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); directory_handle_free (handle); return GNOME_VFS_OK; } static GnomeVFSResult do_read_directory (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSContext *context) { DirectoryHandle *handle; GnomeVFSFileInfo *file_info_src; GList *list; handle = (DirectoryHandle *) method_handle; if (handle->dirs == NULL) { DBusMessage *reply; GnomeVFSResult result; reply = execute_operation (DVD_DAEMON_METHOD_READ_DIRECTORY, context, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { if (result != GNOME_VFS_ERROR_EOF) { return result; } } list = dbus_utils_message_get_file_info_list (reply); dbus_message_unref (reply); handle->dirs = list; handle->current = list; d(g_print ("got list: %d\n", g_list_length (list))); /* If we get OK, and an empty list, it means that there are no * more files. */ if (list == NULL) { return GNOME_VFS_ERROR_EOF; } } if (handle->current) { file_info_src = handle->current->data; gnome_vfs_file_info_copy (file_info, file_info_src); handle->current = handle->current->next; /* If this was the last in this chunk, read more files in the * next call. */ if (!handle->current) { handle->dirs = NULL; } } else { return GNOME_VFS_ERROR_EOF; } return GNOME_VFS_OK; } static GnomeVFSFileInfo * get_file_info_from_message (DBusMessage *message) { GnomeVFSFileInfo *info; DBusMessageIter iter; dbus_message_iter_init (message, &iter); /* Not interested in result */ dbus_message_iter_next (&iter); info = gnome_vfs_daemon_message_iter_get_file_info (&iter); if (!info) { return NULL; } return info; } static GnomeVFSResult do_get_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; GnomeVFSFileInfo *info; reply = execute_operation (DVD_DAEMON_METHOD_GET_FILE_INFO, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_INT32, options, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } info = get_file_info_from_message (reply); dbus_message_unref (reply); if (!info) { return GNOME_VFS_ERROR_INTERNAL; } gnome_vfs_file_info_copy (file_info, info); gnome_vfs_file_info_unref (info); return GNOME_VFS_OK; } static GnomeVFSResult do_get_file_info_from_handle (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle, GnomeVFSFileInfo *file_info, GnomeVFSFileInfoOptions options, GnomeVFSContext *context) { FileHandle *handle; DBusMessage *reply; GnomeVFSResult result; GnomeVFSFileInfo *info; handle = (FileHandle *) method_handle; reply = execute_operation (DVD_DAEMON_METHOD_GET_FILE_INFO_FROM_HANDLE, context, &result, -1, DVD_TYPE_INT32, handle->handle_id, DVD_TYPE_INT32, options, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } info = get_file_info_from_message (reply); dbus_message_unref (reply); if (!info) { return GNOME_VFS_ERROR_INTERNAL; } gnome_vfs_file_info_copy (file_info, info); gnome_vfs_file_info_unref (info); return GNOME_VFS_OK; } static gboolean do_is_local (GnomeVFSMethod *method, const GnomeVFSURI *uri) { DBusMessage *reply; GnomeVFSResult result; dbus_bool_t is_local; reply = execute_operation (DVD_DAEMON_METHOD_IS_LOCAL, NULL, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_BOOLEAN, &is_local, DBUS_TYPE_INVALID); dbus_message_unref (reply); return is_local; } static GnomeVFSResult do_make_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, guint perm, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; /*g_print ("thread: %p", (gpointer) pthread_self ());*/ reply = execute_operation (DVD_DAEMON_METHOD_MAKE_DIRECTORY, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_INT32, perm, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_remove_directory (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; /*g_print ("thread: %p", (gpointer) pthread_self ());*/ reply = execute_operation (DVD_DAEMON_METHOD_REMOVE_DIRECTORY, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_move (GnomeVFSMethod *method, GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; /*g_print ("thread: %p", (gpointer) pthread_self ());*/ reply = execute_operation (DVD_DAEMON_METHOD_MOVE, context, &result, -1, DVD_TYPE_URI, old_uri, DVD_TYPE_URI, new_uri, DVD_TYPE_BOOL, force_replace, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_unlink (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; /*g_print ("thread: %p", (gpointer) pthread_self ());*/ reply = execute_operation (DVD_DAEMON_METHOD_UNLINK, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_check_same_fs (GnomeVFSMethod *method, GnomeVFSURI *a, GnomeVFSURI *b, gboolean *same_fs_return, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; dbus_bool_t same_fs; reply = execute_operation (DVD_DAEMON_METHOD_CHECK_SAME_FS, context, &result, -1, DVD_TYPE_URI, a, DVD_TYPE_URI, b, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_BOOLEAN, &same_fs, DBUS_TYPE_INVALID); dbus_message_unref (reply); *same_fs_return = same_fs; return GNOME_VFS_OK; } static GnomeVFSResult do_set_file_info (GnomeVFSMethod *method, GnomeVFSURI *uri, const GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; reply = execute_operation (DVD_DAEMON_METHOD_SET_FILE_INFO, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_FILE_INFO, info, DVD_TYPE_INT32, mask, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_truncate (GnomeVFSMethod *method, GnomeVFSURI *uri, GnomeVFSFileSize where, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; reply = execute_operation (DVD_DAEMON_METHOD_TRUNCATE, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_UINT64, where, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_find_directory (GnomeVFSMethod *method, GnomeVFSURI *near_uri, GnomeVFSFindDirectoryKind kind, GnomeVFSURI **result_uri, gboolean create_if_needed, gboolean find_if_needed, guint permissions, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; gchar *uri_str; reply = execute_operation (DVD_DAEMON_METHOD_FIND_DIRECTORY, context, &result, -1, DVD_TYPE_URI, near_uri, DVD_TYPE_INT32, kind, DVD_TYPE_BOOL, create_if_needed, DVD_TYPE_BOOL, find_if_needed, DVD_TYPE_INT32, permissions, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_STRING, &uri_str, DBUS_TYPE_INVALID); dbus_message_unref (reply); *result_uri = gnome_vfs_uri_new (uri_str); return GNOME_VFS_OK; } static GnomeVFSResult do_create_symbolic_link (GnomeVFSMethod *method, GnomeVFSURI *uri, const char *target_reference, GnomeVFSContext *context) { DBusMessage *reply; GnomeVFSResult result; reply = execute_operation (DVD_DAEMON_METHOD_CREATE_SYMBOLIC_LINK, context, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_STRING, target_reference, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } typedef struct { gint32 id; } MonitorHandle; static GHashTable *active_monitors; static DBusHandlerResult dbus_filter_func (DBusConnection *connection, DBusMessage *message, void *data) { DBusMessageIter iter; dbus_int32_t id, event_type; char *uri_str; if (dbus_message_is_signal (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_MONITOR_SIGNAL)) { dbus_message_iter_init (message, &iter); if (dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &id, DBUS_TYPE_STRING, &uri_str, DBUS_TYPE_INT32, &event_type, DBUS_TYPE_INVALID)) { GnomeVFSURI *info_uri; info_uri = gnome_vfs_uri_new (uri_str); if (info_uri != NULL) { MonitorHandle *handle; handle = g_hash_table_lookup (active_monitors, GINT_TO_POINTER (id)); if (handle) { gnome_vfs_monitor_callback ((GnomeVFSMethodHandle *)handle, info_uri, event_type); } gnome_vfs_uri_unref (info_uri); } } return DBUS_HANDLER_RESULT_HANDLED; } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } static void setup_monitor (void) { static gboolean initialized = FALSE; DBusConnection *conn; if (initialized) return; initialized = TRUE; active_monitors = g_hash_table_new (g_direct_hash, g_direct_equal); conn = _gnome_vfs_get_main_dbus_connection (); if (conn == NULL) { return; } dbus_connection_add_filter (conn, dbus_filter_func, NULL, NULL); } static GnomeVFSResult do_monitor_add (GnomeVFSMethod *method, GnomeVFSMethodHandle **method_handle, GnomeVFSURI *uri, GnomeVFSMonitorType monitor_type) { DBusMessage *reply, *message; GnomeVFSResult result; dbus_int32_t id; DBusConnection *conn; MonitorHandle *handle; setup_monitor (); conn = _gnome_vfs_get_main_dbus_connection (); if (conn == NULL) return GNOME_VFS_ERROR_INTERNAL; message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_MONITOR_ADD); dbus_message_set_auto_start (message, TRUE); append_args (message, DVD_TYPE_URI, uri, DVD_TYPE_INT32, monitor_type, DVD_TYPE_LAST); reply = dbus_connection_send_with_reply_and_block (conn, message, -1, NULL); dbus_message_unref (message); if (reply == NULL) { return GNOME_VFS_ERROR_INTERNAL; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID); if (result == GNOME_VFS_OK) { handle = g_new (MonitorHandle, 1); handle->id = id; *method_handle = (GnomeVFSMethodHandle *)handle; g_hash_table_insert (active_monitors, GINT_TO_POINTER (id), handle); dbus_message_unref (reply); return GNOME_VFS_OK; } else { return result; } } static GnomeVFSResult do_monitor_cancel (GnomeVFSMethod *method, GnomeVFSMethodHandle *method_handle) { DBusMessage *reply, *message; GnomeVFSResult result; DBusConnection *conn; MonitorHandle *handle; gint32 id; handle = (MonitorHandle *)method_handle; id = handle->id; g_hash_table_remove (active_monitors, GINT_TO_POINTER (id)); g_free (handle); conn = _gnome_vfs_get_main_dbus_connection (); if (conn == NULL) return GNOME_VFS_ERROR_INTERNAL; message = dbus_message_new_method_call (DVD_DAEMON_SERVICE, DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_MONITOR_CANCEL); dbus_message_set_auto_start (message, TRUE); append_args (message, DVD_TYPE_INT32, id, DVD_TYPE_LAST); reply = dbus_connection_send_with_reply_and_block (conn, message, -1, NULL); dbus_message_unref (message); if (reply == NULL) { return GNOME_VFS_ERROR_INTERNAL; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSResult do_get_volume_free_space (GnomeVFSMethod *method, const GnomeVFSURI *uri, GnomeVFSFileSize *free_space) { DBusMessage *reply; GnomeVFSResult result; dbus_uint64_t space; reply = execute_operation (DVD_DAEMON_METHOD_GET_VOLUME_FREE_SPACE, NULL, &result, -1, DVD_TYPE_URI, uri, DVD_TYPE_LAST); if (!reply) { return result; } if (check_if_reply_is_error (reply, &result)) { return result; } dbus_message_get_args (reply, NULL, DBUS_TYPE_INT32, &result, DBUS_TYPE_UINT64, &space, DBUS_TYPE_INVALID); *free_space = space; dbus_message_unref (reply); return GNOME_VFS_OK; } static GnomeVFSMethod method = { sizeof (GnomeVFSMethod), do_open, /* open */ do_create, /* create */ do_close, /* close */ do_read, /* read */ do_write, /* write */ do_seek, /* seek */ do_tell, /* tell */ do_truncate_handle, /* truncate_handle */ do_open_directory, /* open_directory */ do_close_directory, /* close_directory */ do_read_directory, /* read_directory */ do_get_file_info, /* get_file_info */ do_get_file_info_from_handle, /* get_file_info_from_handle */ do_is_local, /* is_local */ do_make_directory, /* make_directory */ do_remove_directory, /* remove_directory */ do_move, /* move */ do_unlink, /* unlink */ do_check_same_fs, /* check_same_fs */ do_set_file_info, /* set_file_info */ do_truncate, /* truncate */ do_find_directory, /* find_directory */ do_create_symbolic_link, /* create_symbolic_link */ do_monitor_add, /* monitor_add */ do_monitor_cancel, /* monitor_cancel */ NULL, /* file_control */ NULL, /* forget_cache */ do_get_volume_free_space /* get_volume_free_space */ }; GnomeVFSMethod * _gnome_vfs_daemon_method_get (void) { return &method; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-result.h0000644000175000001440000001464011334251016016323 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-result.h - Result handling for the GNOME Virtual File System. Copyright (C) 1999, 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Seth Nickell */ #ifndef GNOME_VFS_RESULT_H #define GNOME_VFS_RESULT_H #include G_BEGIN_DECLS /* IMPORTANT NOTICE: If you add error types here, please also add the corresponding descriptions in `gnome-vfs-result.c'. Moreover, *always* add new values at the end of the list, and *never* remove values. */ /** * GnomeVFSResult: * @GNOME_VFS_OK: No error. * @GNOME_VFS_ERROR_NOT_FOUND: File not found. * @GNOME_VFS_ERROR_GENERIC: Generic error. * @GNOME_VFS_ERROR_INTERNAL: Internal error. * @GNOME_VFS_ERROR_BAD_PARAMETERS: Invalid parameters. * @GNOME_VFS_ERROR_NOT_SUPPORTED: Unsupported operation. * @GNOME_VFS_ERROR_IO: I/O error. * @GNOME_VFS_ERROR_CORRUPTED_DATA: Data corrupted. * @GNOME_VFS_ERROR_WRONG_FORMAT: Format not valid. * @GNOME_VFS_ERROR_BAD_FILE: Bad file handle. * @GNOME_VFS_ERROR_TOO_BIG: File too big. * @GNOME_VFS_ERROR_NO_SPACE: No space left on device. * @GNOME_VFS_ERROR_READ_ONLY: Read-only file system. * @GNOME_VFS_ERROR_INVALID_URI: Invalid URI. * @GNOME_VFS_ERROR_NOT_OPEN: File not open. * @GNOME_VFS_ERROR_INVALID_OPEN_MODE: Open mode not valid. * @GNOME_VFS_ERROR_ACCESS_DENIED: Access denied. * @GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES: Too many open files. * @GNOME_VFS_ERROR_EOF: End of file. * @GNOME_VFS_ERROR_NOT_A_DIRECTORY: Not a directory. * @GNOME_VFS_ERROR_IN_PROGRESS: Operation in progress. * @GNOME_VFS_ERROR_INTERRUPTED: Operation interrupted. * @GNOME_VFS_ERROR_FILE_EXISTS: File exists. * @GNOME_VFS_ERROR_LOOP: Looping links encountered. * @GNOME_VFS_ERROR_NOT_PERMITTED: Operation not permitted. * @GNOME_VFS_ERROR_IS_DIRECTORY: Is a directory. * @GNOME_VFS_ERROR_NO_MEMORY: Not enough memory. * @GNOME_VFS_ERROR_HOST_NOT_FOUND: Host not found. * @GNOME_VFS_ERROR_INVALID_HOST_NAME: Host name not valid. * @GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS: Host has no address. * @GNOME_VFS_ERROR_LOGIN_FAILED: Login failed. * @GNOME_VFS_ERROR_CANCELLED: Operation cancelled. * @GNOME_VFS_ERROR_DIRECTORY_BUSY: Directory busy. * @GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY: Directory not empty. * @GNOME_VFS_ERROR_TOO_MANY_LINKS: Too many links. * @GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM: Read only file system. * @GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM: Not on the same file system. * @GNOME_VFS_ERROR_NAME_TOO_LONG: Name too long. * @GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE: Service not available. * @GNOME_VFS_ERROR_SERVICE_OBSOLETE: Request obsoletes service's data. * @GNOME_VFS_ERROR_PROTOCOL_ERROR: Protocol error. * @GNOME_VFS_ERROR_NO_MASTER_BROWSER: Could not find master browser. * @GNOME_VFS_ERROR_NO_DEFAULT: No default action associated. * @GNOME_VFS_ERROR_NO_HANDLER: No handler for URL scheme. * @GNOME_VFS_ERROR_PARSE: Error parsing command line. * @GNOME_VFS_ERROR_LAUNCH: Error launching command. * @GNOME_VFS_ERROR_TIMEOUT: Timeout reached. * @GNOME_VFS_ERROR_NAMESERVER: Nameserver error. * @GNOME_VFS_ERROR_LOCKED: The resource is locked. * @GNOME_VFS_ERROR_DEPRECATED_FUNCTION: Function call deprecated. * @GNOME_VFS_ERROR_INVALID_FILENAME: The specified filename is invalid. * @GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK: Not a symbolic link. * * A #GnomeVFSResult informs library clients about the result of a file operation. * Unless it is #GNOME_VFS_OK, it denotes that a problem occurred and the operation * could not be executed successfully. * * gnome_vfs_result_to_string() provides a textual representation of #GnomeVFSResults. **/ typedef enum { GNOME_VFS_OK, GNOME_VFS_ERROR_NOT_FOUND, GNOME_VFS_ERROR_GENERIC, GNOME_VFS_ERROR_INTERNAL, GNOME_VFS_ERROR_BAD_PARAMETERS, GNOME_VFS_ERROR_NOT_SUPPORTED, GNOME_VFS_ERROR_IO, GNOME_VFS_ERROR_CORRUPTED_DATA, GNOME_VFS_ERROR_WRONG_FORMAT, GNOME_VFS_ERROR_BAD_FILE, GNOME_VFS_ERROR_TOO_BIG, GNOME_VFS_ERROR_NO_SPACE, GNOME_VFS_ERROR_READ_ONLY, GNOME_VFS_ERROR_INVALID_URI, GNOME_VFS_ERROR_NOT_OPEN, GNOME_VFS_ERROR_INVALID_OPEN_MODE, GNOME_VFS_ERROR_ACCESS_DENIED, GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES, GNOME_VFS_ERROR_EOF, GNOME_VFS_ERROR_NOT_A_DIRECTORY, GNOME_VFS_ERROR_IN_PROGRESS, GNOME_VFS_ERROR_INTERRUPTED, GNOME_VFS_ERROR_FILE_EXISTS, GNOME_VFS_ERROR_LOOP, GNOME_VFS_ERROR_NOT_PERMITTED, GNOME_VFS_ERROR_IS_DIRECTORY, GNOME_VFS_ERROR_NO_MEMORY, GNOME_VFS_ERROR_HOST_NOT_FOUND, GNOME_VFS_ERROR_INVALID_HOST_NAME, GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS, GNOME_VFS_ERROR_LOGIN_FAILED, GNOME_VFS_ERROR_CANCELLED, GNOME_VFS_ERROR_DIRECTORY_BUSY, GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY, GNOME_VFS_ERROR_TOO_MANY_LINKS, GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM, GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM, GNOME_VFS_ERROR_NAME_TOO_LONG, GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE, GNOME_VFS_ERROR_SERVICE_OBSOLETE, GNOME_VFS_ERROR_PROTOCOL_ERROR, GNOME_VFS_ERROR_NO_MASTER_BROWSER, GNOME_VFS_ERROR_NO_DEFAULT, GNOME_VFS_ERROR_NO_HANDLER, GNOME_VFS_ERROR_PARSE, GNOME_VFS_ERROR_LAUNCH, GNOME_VFS_ERROR_TIMEOUT, GNOME_VFS_ERROR_NAMESERVER, GNOME_VFS_ERROR_LOCKED, GNOME_VFS_ERROR_DEPRECATED_FUNCTION, GNOME_VFS_ERROR_INVALID_FILENAME, GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK, GNOME_VFS_NUM_ERRORS } GnomeVFSResult; const char *gnome_vfs_result_to_string (GnomeVFSResult result); GnomeVFSResult gnome_vfs_result_from_errno_code (int errno_code); GnomeVFSResult gnome_vfs_result_from_errno (void); GnomeVFSResult gnome_vfs_result_from_h_errno_val (int h_errno_code); GnomeVFSResult gnome_vfs_result_from_h_errno (void); G_END_DECLS #endif /* GNOME_VFS_RESULT_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-hal-mounts.h0000644000175000001440000000327111334251016017072 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-hal-mounts.h - read and monitor volumes using freedesktop HAL Copyright (C) 2004 Red Hat, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: David Zeuthen */ #ifndef GNOME_VFS_HAL_MOUNTS_H #define GNOME_VFS_HAL_MOUNTS_H #include "gnome-vfs-volume-monitor-daemon.h" gboolean _gnome_vfs_hal_mounts_init (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon); void _gnome_vfs_hal_mounts_force_reprobe (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon); void _gnome_vfs_hal_mounts_shutdown (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon); GnomeVFSDrive *_gnome_vfs_hal_mounts_modify_drive (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, GnomeVFSDrive *drive); GnomeVFSVolume *_gnome_vfs_hal_mounts_modify_volume (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon, GnomeVFSVolume *volume); #endif /* GNOME_VFS_HAL_MOUNTS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-dns-sd.h0000644000175000001440000001252411334251016016174 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-dns-sd.h - DNS-SD functions Copyright (C) 2004 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_DNS_SD_H #define GNOME_VFS_DNS_SD_H #include #include #include #include G_BEGIN_DECLS /* TODO: * a way to get default browse domain for domain * async listing of browse domains * some way to publish. Using dns update for unicast? */ typedef struct { char *name; char *type; char *domain; } GnomeVFSDNSSDService; typedef enum { GNOME_VFS_DNS_SD_SERVICE_ADDED, GNOME_VFS_DNS_SD_SERVICE_REMOVED } GnomeVFSDNSSDServiceStatus; GType gnome_vfs_dns_sd_service_status_get_type (void); #define GNOME_VFS_TYPE_VFS_DNS_SD_SERVICE_STATUS (gnome_vfs_dns_sd_service_status_get_type()) typedef struct GnomeVFSDNSSDBrowseHandle GnomeVFSDNSSDBrowseHandle; typedef struct GnomeVFSDNSSDResolveHandle GnomeVFSDNSSDResolveHandle; /** * GnomeVFSDNSSDBrowseCallback: * @handle: handle of the operation generating the callback * @status: whether a service addition or removal was detected * @service: the service that was discovered or removed * @callback_data: user data defined when the callback was established * * Callback for the gnome_vfs_dns_sd_browse() function that informs * the user of services that are added or removed. **/ typedef void (* GnomeVFSDNSSDBrowseCallback) (GnomeVFSDNSSDBrowseHandle *handle, GnomeVFSDNSSDServiceStatus status, const GnomeVFSDNSSDService *service, gpointer callback_data); /** * GnomeVFSDNSSDResolveCallback: * @handle: handle of the operation generating the callback * @result: whether the resolve succeeded or not * @service: the service that was resolved * @host: the host name or ip of the host hosting the service * @port: the port number to use for the service * @text: a hash table giving additional options about the service * @text_raw_len: length of @text_raw * @text_raw: raw version of the additional options in @text * @callback_data: user data defined when the callback was established * * Callback for the gnome_vfs_dns_sd_resolve() function that is called * when a service has been resolved. * * The @host and @port can be used to contact the requested service, and * @text contains additional options as defined for the type requested. * * To check for options being set in @text without any value ("key" as * opposed to "key=value") you must use g_hash_table_lookup_extended(), since * they are stored in the hash table with a NULL value, and g_hash_table_lookup() * can't tell that from the case where the key is not in the hash table. **/ typedef void (* GnomeVFSDNSSDResolveCallback) (GnomeVFSDNSSDResolveHandle *handle, GnomeVFSResult result, const GnomeVFSDNSSDService *service, const char *host, int port, const GHashTable *text, int text_raw_len, const char *text_raw, gpointer callback_data); /* Async versions */ GnomeVFSResult gnome_vfs_dns_sd_browse (GnomeVFSDNSSDBrowseHandle **handle, const char *domain, const char *type, GnomeVFSDNSSDBrowseCallback callback, gpointer callback_data, GDestroyNotify callback_data_destroy_func); GnomeVFSResult gnome_vfs_dns_sd_stop_browse (GnomeVFSDNSSDBrowseHandle *handle); GnomeVFSResult gnome_vfs_dns_sd_resolve (GnomeVFSDNSSDResolveHandle **handle, const char *name, const char *type, const char *domain, int timeout, GnomeVFSDNSSDResolveCallback callback, gpointer callback_data, GDestroyNotify callback_data_destroy_func); GnomeVFSResult gnome_vfs_dns_sd_cancel_resolve (GnomeVFSDNSSDResolveHandle *handle); /* Sync versions */ GnomeVFSResult gnome_vfs_dns_sd_browse_sync (const char *domain, const char *type, int timeout_msec, int *n_services, GnomeVFSDNSSDService **services); GnomeVFSResult gnome_vfs_dns_sd_resolve_sync (const char *name, const char *type, const char *domain, int timeout_msec, char **host, int *port, GHashTable **text, int *text_raw_len_out, char **text_raw_out); void gnome_vfs_dns_sd_service_list_free (GnomeVFSDNSSDService *services, int n_services); GnomeVFSResult gnome_vfs_dns_sd_list_browse_domains_sync (const char *domain, int timeout_msec, GList **domains); GList * gnome_vfs_get_default_browse_domains (void); G_END_DECLS #endif /* GNOME_VFS_DNS_SD_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module.c0000644000175000001440000000006211334251016016256 00000000000000#include #include "gnome-vfs-module.h" gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ace.h0000644000175000001440000001031211334251016015525 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-acl.h - ACL Handling for the GNOME Virtual File System. Access Control Entry Class Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner */ #ifndef GNOME_VFS_ACE_H #define GNOME_VFS_ACE_H #include #include G_BEGIN_DECLS #define GNOME_VFS_TYPE_ACE (gnome_vfs_ace_get_type ()) #define GNOME_VFS_ACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_VFS_TYPE_ACE, GnomeVFSACE)) #define GNOME_VFS_ACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_VFS_TYPE_ACE, GnomeVFSACEClass)) #define GNOME_VFS_IS_ACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_VFS_TYPE_ACE)) #define GNOME_VFS_IS_ACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_VFS_TYPE_ACE)) typedef struct _GnomeVFSACE GnomeVFSACE; typedef struct _GnomeVFSACEClass GnomeVFSACEClass; typedef struct _GnomeVFSACEPrivate GnomeVFSACEPrivate; struct _GnomeVFSACE { GObject parent; GnomeVFSACEPrivate *priv; }; struct _GnomeVFSACEClass { GObjectClass parent_class; void (*reserved1) (void); void (*reserved2) (void); void (*reserved3) (void); void (*reserved4) (void); }; typedef guint32 GnomeVFSACLKind; typedef guint32 GnomeVFSACLPerm; GType gnome_vfs_ace_get_type (void) G_GNUC_CONST; GnomeVFSACE * gnome_vfs_ace_new (GnomeVFSACLKind kind, const char *id, GnomeVFSACLPerm *perms); GnomeVFSACLKind gnome_vfs_ace_get_kind (GnomeVFSACE *entry); void gnome_vfs_ace_set_kind (GnomeVFSACE *entry, GnomeVFSACLKind kind); const char * gnome_vfs_ace_get_id (GnomeVFSACE *entry); void gnome_vfs_ace_set_id (GnomeVFSACE *entry, const char *id); gboolean gnome_vfs_ace_get_inherit (GnomeVFSACE *entry); void gnome_vfs_ace_set_inherit (GnomeVFSACE *entry, gboolean inherit); gboolean gnome_vfs_ace_get_negative (GnomeVFSACE *entry); void gnome_vfs_ace_set_negative (GnomeVFSACE *entry, gboolean negative); const GnomeVFSACLPerm * gnome_vfs_ace_get_perms (GnomeVFSACE *entry); void gnome_vfs_ace_set_perms (GnomeVFSACE *entry, GnomeVFSACLPerm *perms); void gnome_vfs_ace_add_perm (GnomeVFSACE *entry, GnomeVFSACLPerm perm); void gnome_vfs_ace_del_perm (GnomeVFSACE *entry, GnomeVFSACLPerm perm); gboolean gnome_vfs_ace_check_perm (GnomeVFSACE *entry, GnomeVFSACLPerm perm); void gnome_vfs_ace_copy_perms (GnomeVFSACE *source, GnomeVFSACE *dest); gboolean gnome_vfs_ace_equal (GnomeVFSACE *entry_a, GnomeVFSACE *entry_b); G_END_DECLS #endif /*GNOME_VFS_ACE_H*/ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime.c0000644000175000001440000006261611334251016015735 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* * Copyright (C) 1998 Miguel de Icaza * Copyright (C) 1997 Paolo Molaro * Copyright (C) 2000, 2001 Eazel, Inc. * All rights reserved. * * This file is part of the Gnome Library. * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include #include "gnome-vfs-mime.h" #include "xdgmime.h" #include "gnome-vfs-mime-private.h" #include "gnome-vfs-mime-sniff-buffer-private.h" #include "gnome-vfs-mime-utils.h" #include "gnome-vfs-mime-info.h" #include "gnome-vfs-module-shared.h" #include "gnome-vfs-ops.h" #include "gnome-vfs-result.h" #include "gnome-vfs-uri.h" #include #include #include #include #define DEFAULT_DATE_TRACKER_INTERVAL 5 /* in milliseconds */ typedef struct { char *file_path; time_t mtime; } FileDateRecord; struct FileDateTracker { time_t last_checked; guint check_interval; GHashTable *records; }; #ifdef G_THREADS_ENABLED /* We lock this mutex whenever we modify global state in this module. */ G_LOCK_DEFINE (gnome_vfs_mime_mutex); #endif /* G_LOCK_DEFINE_STATIC */ /** * gnome_vfs_mime_shutdown: * * Deprecated: This function doesn't have to be called as the * operating system automatically cleans up resources when exiting. * * Unload the MIME database from memory. */ void gnome_vfs_mime_shutdown (void) { G_LOCK (gnome_vfs_mime_mutex); xdg_mime_shutdown (); G_UNLOCK (gnome_vfs_mime_mutex); } /** * gnome_vfs_mime_type_from_name_or_default: * @filename: a filename (the file does not necessarily exist). * @defaultv: a default value to be returned if no match is found. * * This routine tries to determine the mime-type of the filename * only by looking at the filename from the GNOME database of mime-types. * * Returns: the mime-type of the @filename. If no value could be * determined, it will return @defaultv. */ const char * gnome_vfs_mime_type_from_name_or_default (const char *filename, const char *defaultv) { const char *mime_type; const char *separator; if (filename == NULL) { return defaultv; } separator = strrchr (filename, '/'); #ifdef G_OS_WIN32 { const char *sep2 = strrchr (filename, '\\'); if (separator == NULL || (sep2 != NULL && sep2 > separator)) separator = sep2; } #endif if (separator != NULL) { separator++; if (*separator == '\000') return defaultv; } else { separator = filename; } G_LOCK (gnome_vfs_mime_mutex); mime_type = xdg_mime_get_mime_type_from_file_name (separator); G_UNLOCK (gnome_vfs_mime_mutex); if (mime_type) return mime_type; else return defaultv; } /** * gnome_vfs_get_mime_type_for_name: * @filename: a filename. * * Determine the mime type for @filename. The file @filename may * not exist, this function does not access the actual file. * If the mime-type cannot be determined, %GNOME_VFS_MIME_TYPE_UNKNOWN * is returned. * * Returns: the mime-type for this filename or * %GNOME_VFS_MIME_TYPE_UNKNOWN if mime-type could not be determined. * * Since: 2.14 */ const char * gnome_vfs_get_mime_type_for_name (const char *filename) { return gnome_vfs_mime_type_from_name_or_default (filename, GNOME_VFS_MIME_TYPE_UNKNOWN); } /** * gnome_vfs_mime_type_from_name: * @filename: a filename (the file does not necessarily exist). * * Determine the mime type for @filename. * * Deprecated: This function is deprecated, use * gnome_vfs_get_mime_type_for_name() instead. * * Returns: the mime-type for this filename. Will return * %GNOME_VFS_MIME_TYPE_UNKNOWN if mime-type could not be found. */ const char * gnome_vfs_mime_type_from_name (const gchar *filename) { return gnome_vfs_get_mime_type_for_name (filename); } /** * gnome_vfs_get_mime_type_for_name_and_data: * @filename: a filename. * @data: a pointer to the data in the memory * @data_size: the size of @data * * Determine the mime-type for @filename and @data. This function tries * to be smart (e.g. mime subclassing) about returning the right mime-type * by looking at both the @data and the @filename. The file will not be * accessed. * If the mime-type cannot be determined, %GNOME_VFS_MIME_TYPE_UNKNOWN * is returned. * * Returns: the mime-type for this filename or * %GNOME_VFS_MIME_TYPE_UNKNOWN if mime-type could not be determined. * * Since: 2.14 */ const char * gnome_vfs_get_mime_type_for_name_and_data (const char *filename, gconstpointer data, gssize data_size) { GnomeVFSMimeSniffBuffer *sniff_buffer; const char *mime_type; sniff_buffer = gnome_vfs_mime_sniff_buffer_new_from_existing_data (data, data_size); mime_type = _gnome_vfs_get_mime_type_internal (sniff_buffer, filename, TRUE); gnome_vfs_mime_sniff_buffer_free (sniff_buffer); return mime_type; } static const char * gnome_vfs_get_mime_type_from_uri_internal (GnomeVFSURI *uri) { char *base_name; const char *mime_type; /* Return a mime type based on the file extension or NULL if no match. */ base_name = gnome_vfs_uri_extract_short_path_name (uri); if (base_name == NULL) { return NULL; } mime_type = gnome_vfs_mime_type_from_name_or_default (base_name, NULL); g_free (base_name); return mime_type; } enum { MAX_SNIFF_BUFFER_ALLOWED=4096 }; static const char * _gnome_vfs_read_mime_from_buffer (GnomeVFSMimeSniffBuffer *buffer) { int max_extents; GnomeVFSResult result = GNOME_VFS_OK; const char *mime_type; int prio; G_LOCK (gnome_vfs_mime_mutex); max_extents = xdg_mime_get_max_buffer_extents (); G_UNLOCK (gnome_vfs_mime_mutex); max_extents = CLAMP (max_extents, 0, MAX_SNIFF_BUFFER_ALLOWED); if (!buffer->read_whole_file) { result = _gnome_vfs_mime_sniff_buffer_get (buffer, max_extents); } if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { return NULL; } G_LOCK (gnome_vfs_mime_mutex); mime_type = xdg_mime_get_mime_type_for_data (buffer->buffer, buffer->buffer_length, &prio); G_UNLOCK (gnome_vfs_mime_mutex); return mime_type; } const char * _gnome_vfs_get_mime_type_internal (GnomeVFSMimeSniffBuffer *buffer, const char *file_name, gboolean use_suffix) { const char *result; const char *fn_result; result = fn_result = NULL; /* Determine the mime type by filename as well, because * we need this for the subclassing check later */ if (file_name != NULL) { fn_result = gnome_vfs_mime_type_from_name_or_default (file_name, NULL); } if (buffer != NULL) { result = _gnome_vfs_read_mime_from_buffer (buffer); if (result != NULL && result != XDG_MIME_TYPE_UNKNOWN) { if ((strcmp (result, "application/x-ole-storage") == 0) || (strcmp (result, "text/xml") == 0) || (strcmp (result, "application/x-bzip") == 0) || (strcmp (result, "application/x-gzip") == 0) || (strcmp (result, "application/zip") == 0)) { /* So many file types come compressed by gzip * that extensions are more reliable than magic * typing. If the file has a suffix, then use * the type from the suffix. */ if (fn_result != NULL && fn_result != XDG_MIME_TYPE_UNKNOWN) { result = fn_result; } } else if (fn_result && fn_result != XDG_MIME_TYPE_UNKNOWN) { G_LOCK (gnome_vfs_mime_mutex); if (xdg_mime_mime_type_subclass (fn_result, result)) { result = fn_result; } G_UNLOCK (gnome_vfs_mime_mutex); } return result; } if (result == NULL || result == XDG_MIME_TYPE_UNKNOWN) { if (_gnome_vfs_sniff_buffer_looks_like_text (buffer)) { /* Text file -- treat extensions as a more * accurate source of type information BUT _only_ if * the extension is a subtype of text/plain. */ if ((fn_result != NULL) && (fn_result != XDG_MIME_TYPE_UNKNOWN)) { G_LOCK (gnome_vfs_mime_mutex); if (xdg_mime_mime_type_subclass (fn_result, "text/plain")) { G_UNLOCK (gnome_vfs_mime_mutex); return fn_result; } G_UNLOCK (gnome_vfs_mime_mutex); } /* Didn't find an extension match, assume plain text. */ return "text/plain"; } else if (_gnome_vfs_sniff_buffer_looks_like_mp3 (buffer)) { return "audio/mpeg"; } } } if (use_suffix && (result == NULL || result == XDG_MIME_TYPE_UNKNOWN)) { /* No type recognized -- fall back on extensions. */ result = fn_result; } if (result == NULL) { result = XDG_MIME_TYPE_UNKNOWN; } return result; } /** * gnome_vfs_get_mime_type_common: * @uri: a real file or a non-existent uri. * * Tries to guess the mime type of the file represented by @uri. * Favors using the file data to the @uri extension. * Handles @uri of a non-existent file by falling back * on returning a type based on the extension. If cant find the mime-type based on the * extension also then returns 'application/octet-stream'. * * FIXME: This function will not necessarily return the same mime type as doing a * get file info on the text uri. * * Returns: the mime-type for @uri. */ const char * gnome_vfs_get_mime_type_common (GnomeVFSURI *uri) { const char *result; char *base_name; GnomeVFSMimeSniffBuffer *buffer; GnomeVFSHandle *handle; GnomeVFSResult error; /* Check for special stat-defined file types first. */ result = gnome_vfs_get_special_mime_type (uri); if (result != NULL) { return result; } error = gnome_vfs_open_uri (&handle, uri, GNOME_VFS_OPEN_READ); if (error != GNOME_VFS_OK) { /* file may not exist, return type based on name only */ return gnome_vfs_get_mime_type_from_uri_internal (uri); } buffer = _gnome_vfs_mime_sniff_buffer_new_from_handle (handle); base_name = gnome_vfs_uri_extract_short_path_name (uri); result = _gnome_vfs_get_mime_type_internal (buffer, base_name, TRUE); g_free (base_name); gnome_vfs_mime_sniff_buffer_free (buffer); gnome_vfs_close (handle); return result; } static GnomeVFSResult file_seek_binder (gpointer context, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset) { FILE *file = (FILE *)context; int result; result = fseek (file, offset, whence); if (result < 0) { return gnome_vfs_result_from_errno (); } return GNOME_VFS_OK; } static GnomeVFSResult file_read_binder (gpointer context, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read) { FILE *file = (FILE *)context; *bytes_read = fread (buffer, 1, bytes, file); /* short read, check eof */ if (*bytes_read < bytes) { if (feof (file)) { return GNOME_VFS_ERROR_EOF; } else { return gnome_vfs_result_from_errno (); } } return GNOME_VFS_OK; } static const char * gnome_vfs_get_file_mime_type_internal (const char *path, const struct stat *optional_stat_info, gboolean suffix_only, gboolean suffix_first) { const char *result; GnomeVFSMimeSniffBuffer *buffer; struct stat tmp_stat_buffer; FILE *file; file = NULL; result = NULL; /* get the stat info if needed */ if (optional_stat_info == NULL && g_stat (path, &tmp_stat_buffer) == 0) { optional_stat_info = &tmp_stat_buffer; } /* single out special file types */ if (optional_stat_info && !S_ISREG(optional_stat_info->st_mode)) { if (S_ISDIR(optional_stat_info->st_mode)) { return "x-directory/normal"; } else if (S_ISCHR(optional_stat_info->st_mode)) { return "x-special/device-char"; } else if (S_ISBLK(optional_stat_info->st_mode)) { return "x-special/device-block"; } else if (S_ISFIFO(optional_stat_info->st_mode)) { return "x-special/fifo"; #ifdef S_ISSOCK } else if (S_ISSOCK(optional_stat_info->st_mode)) { return "x-special/socket"; #endif } else { /* unknown entry type, return generic file type */ return GNOME_VFS_MIME_TYPE_UNKNOWN; } } if (suffix_first && !suffix_only) { result = _gnome_vfs_get_mime_type_internal (NULL, path, TRUE); if (result != NULL && result != XDG_MIME_TYPE_UNKNOWN) { return result; } } if (!suffix_only) { file = g_fopen(path, "r"); } if (file != NULL) { buffer = _gnome_vfs_mime_sniff_buffer_new_generic (file_seek_binder, file_read_binder, file); result = _gnome_vfs_get_mime_type_internal (buffer, path, !suffix_first); gnome_vfs_mime_sniff_buffer_free (buffer); fclose (file); } else { result = _gnome_vfs_get_mime_type_internal (NULL, path, !suffix_first); } g_assert (result != NULL); return result; } /** * gnome_vfs_get_file_mime_type_fast: * @path: path of the file whose mime type is to be found out. * @optional_stat_info: optional stat buffer. * * Tries to guess the mime type of the file represented by @path. * It uses extention/name detection first, and if that fails * it falls back to mime-magic based lookup. This is faster * than always doing mime-magic but doesn't always produce * the right answer, so for important decisions * you should use gnome_vfs_get_file_mime_type(). * * Returns: the mime-type for file at @path. */ const char * gnome_vfs_get_file_mime_type_fast (const char *path, const struct stat *optional_stat_info) { return gnome_vfs_get_file_mime_type_internal (path, optional_stat_info, FALSE, TRUE); } /** * gnome_vfs_get_file_mime_type: * @path: path of a file whose mime type is to be found out. * @optional_stat_info: optional stat buffer. * @suffix_only: whether or not to do a magic-based lookup. * * Tries to guess the mime type of the file represented by @path. * If @suffix_only is false, uses the mime-magic based lookup first. * Handles @path of a non-existent file by falling back * on returning a type based on the extension. * * If you need a faster, less accurate version, use * gnome_vfs_get_file_mime_type_fast(). * * Returns: the mime-type for file at @path. */ const char * gnome_vfs_get_file_mime_type (const char *path, const struct stat *optional_stat_info, gboolean suffix_only) { return gnome_vfs_get_file_mime_type_internal (path, optional_stat_info, suffix_only, FALSE); } /** * gnome_vfs_get_mime_type_from_uri: * @uri: a file uri. * * Tries to guess the mime type of the file @uri by * checking the file name extension. Works on non-existent * files. * * Returns: the mime-type for file at @uri. */ const char * gnome_vfs_get_mime_type_from_uri (GnomeVFSURI *uri) { const char *result; result = gnome_vfs_get_mime_type_from_uri_internal (uri); if (result == NULL) { /* no type, return generic file type */ result = GNOME_VFS_MIME_TYPE_UNKNOWN; } return result; } /** * gnome_vfs_get_mime_type_from_file_data: * @uri: a file uri. * * Tries to guess the mime type of the file @uri by * checking the file data using the magic patterns. Does not handle text files properly. * * Deprecated: * * Returns: the mime-type for this filename. */ const char * gnome_vfs_get_mime_type_from_file_data (GnomeVFSURI *uri) { const char *result; GnomeVFSMimeSniffBuffer *buffer; GnomeVFSHandle *handle; GnomeVFSResult error; error = gnome_vfs_open_uri (&handle, uri, GNOME_VFS_OPEN_READ); if (error != GNOME_VFS_OK) { return GNOME_VFS_MIME_TYPE_UNKNOWN; } buffer = _gnome_vfs_mime_sniff_buffer_new_from_handle (handle); result = _gnome_vfs_get_mime_type_internal (buffer, NULL, FALSE); gnome_vfs_mime_sniff_buffer_free (buffer); gnome_vfs_close (handle); return result; } /** * gnome_vfs_get_mime_type_for_data: * @data: a pointer to data in memory. * @data_size: size of the data. * * Tries to guess the mime type of the data in @data * using the magic patterns. * * Returns: the mime-type for @data. */ const char * gnome_vfs_get_mime_type_for_data (gconstpointer data, int data_size) { const char *result; GnomeVFSMimeSniffBuffer *buffer; buffer = gnome_vfs_mime_sniff_buffer_new_from_existing_data (data, data_size); result = _gnome_vfs_get_mime_type_internal (buffer, NULL, FALSE); gnome_vfs_mime_sniff_buffer_free (buffer); return result; } /** * gnome_vfs_mime_type_is_supertype: * @mime_type: a const char * identifying a mime type. * * Returns: Whether @mime_type is of the form "foo/*". **/ gboolean gnome_vfs_mime_type_is_supertype (const char *mime_type) { int length; if (mime_type == NULL) { return FALSE; } length = strlen (mime_type); return length > 2 && mime_type[length - 2] == '/' && mime_type[length - 1] == '*'; } static char * extract_prefix_add_suffix (const char *string, const char *separator, const char *suffix) { const char *separator_position; int prefix_length; char *result; separator_position = strstr (string, separator); prefix_length = separator_position == NULL ? strlen (string) : separator_position - string; result = g_malloc (prefix_length + strlen (suffix) + 1); strncpy (result, string, prefix_length); result[prefix_length] = '\0'; strcat (result, suffix); return result; } /** * gnome_vfs_get_supertype_from_mime_type: * @mime_type: mime type to get the supertype for. * * Returns: The supertype for @mime_type, allocating new memory. * * The supertype of an application is computed by removing its * suffix, and replacing it with "*". Thus, "foo/bar" will be * converted to "foo/*". * * * If this function is called on a supertype, it will return a copy of the supertype. * */ char * gnome_vfs_get_supertype_from_mime_type (const char *mime_type) { if (mime_type == NULL) { return NULL; } return extract_prefix_add_suffix (mime_type, "/", "/*"); } /** * gnome_vfs_mime_type_is_equal: * @a: a const char * containing a mime type, e.g. "image/png". * @b: a const char * containing a mime type, e.g. "image/png". * * Compares two mime types to determine if they are equivalent. They are * equivalent if and only if they refer to the same mime type. * * Return value: %TRUE, if a and b are equivalent mime types. */ gboolean gnome_vfs_mime_type_is_equal (const char *a, const char *b) { gboolean res; g_return_val_if_fail (a != NULL, FALSE); g_return_val_if_fail (b != NULL, FALSE); G_LOCK (gnome_vfs_mime_mutex); res = xdg_mime_mime_type_equal (a, b); G_UNLOCK (gnome_vfs_mime_mutex); return res; } /** * gnome_vfs_mime_type_get_equivalence: * @mime_type: a const char * containing a mime type, e.g. "image/png". * @base_mime_type: a const char * containing either a mime type or a base mime type. * * Compares @mime_type to @base_mime_type. There are three possible * relationships between the two strings. * * * * If they are identical and @mime_type is the same as @base_mime_type, * then %GNOME_VFS_MIME_IDENTICAL is returned. This would be the case if * "audio/midi" and "audio/x-midi" are passed in. * * * If @base_mime_type is a parent type of @mime_type, then * %GNOME_VFS_MIME_PARENT is returned. As an example, "text/plain" is a parent * of "text/rss", "image" is a parent of "image/png", and * "application/octet-stream" is a parent of almost all types. * * * Finally, if the two mime types are unrelated, then %GNOME_VFS_MIME_UNRELATED * is returned. * * * * Returns: A #GnomeVFSMimeEquivalence indicating the relationship between @mime_type and @base_mime_type. */ GnomeVFSMimeEquivalence gnome_vfs_mime_type_get_equivalence (const char *mime_type, const char *base_mime_type) { g_return_val_if_fail (mime_type != NULL, GNOME_VFS_MIME_UNRELATED); g_return_val_if_fail (base_mime_type != NULL, GNOME_VFS_MIME_UNRELATED); if (gnome_vfs_mime_type_is_equal (mime_type, base_mime_type)) { return GNOME_VFS_MIME_IDENTICAL; } else { G_LOCK (gnome_vfs_mime_mutex); if (xdg_mime_mime_type_subclass (mime_type, base_mime_type)) { G_UNLOCK (gnome_vfs_mime_mutex); return GNOME_VFS_MIME_PARENT; } G_UNLOCK (gnome_vfs_mime_mutex); } return GNOME_VFS_MIME_UNRELATED; } static void file_date_record_update_mtime (FileDateRecord *record) { struct stat s; record->mtime = (g_stat (record->file_path, &s) != -1) ? s.st_mtime : 0; } static FileDateRecord * file_date_record_new (const char *file_path) { FileDateRecord *record; record = g_new0 (FileDateRecord, 1); record->file_path = g_strdup (file_path); file_date_record_update_mtime (record); return record; } static void file_date_record_free (FileDateRecord *record) { g_free (record->file_path); g_free (record); } FileDateTracker * _gnome_vfs_file_date_tracker_new (void) { FileDateTracker *tracker; tracker = g_new0 (FileDateTracker, 1); tracker->check_interval = DEFAULT_DATE_TRACKER_INTERVAL; tracker->records = g_hash_table_new (g_str_hash, g_str_equal); return tracker; } static gboolean release_key_and_value (gpointer key, gpointer value, gpointer user_data) { g_free (key); file_date_record_free (value); return TRUE; } void _gnome_vfs_file_date_tracker_free (FileDateTracker *tracker) { g_hash_table_foreach_remove (tracker->records, release_key_and_value, NULL); g_hash_table_destroy (tracker->records); g_free (tracker); } /* * Record the current mod date for a specified file, so that we can check * later whether it has changed. */ void _gnome_vfs_file_date_tracker_start_tracking_file (FileDateTracker *tracker, const char *local_file_path) { FileDateRecord *record; record = g_hash_table_lookup (tracker->records, local_file_path); if (record != NULL) { file_date_record_update_mtime (record); } else { g_hash_table_insert (tracker->records, g_strdup (local_file_path), file_date_record_new (local_file_path)); } } static void check_and_update_one (gpointer key, gpointer value, gpointer user_data) { FileDateRecord *record; gboolean *return_has_changed; struct stat s; g_assert (key != NULL); g_assert (value != NULL); g_assert (user_data != NULL); record = (FileDateRecord *)value; return_has_changed = (gboolean *)user_data; if (g_stat (record->file_path, &s) != -1) { if (s.st_mtime != record->mtime) { record->mtime = s.st_mtime; *return_has_changed = TRUE; } } } gboolean _gnome_vfs_file_date_tracker_date_has_changed (FileDateTracker *tracker) { time_t now; gboolean any_date_changed; now = time (NULL); /* Note that this might overflow once in a blue moon, but the * only side-effect of that would be a slightly-early check * for changes. */ if (tracker->last_checked + tracker->check_interval >= now) { return FALSE; } any_date_changed = FALSE; g_hash_table_foreach (tracker->records, check_and_update_one, &any_date_changed); tracker->last_checked = now; return any_date_changed; } /** * gnome_vfs_get_mime_type: * @text_uri: path of the file for which to get the mime type. * * Determine the mime type of @text_uri. The mime type is determined * in the same way as by gnome_vfs_get_file_info(). This is meant as * a convenient function for times when you only want the mime type. * * Return value: The mime type, or %NULL if there is an error reading * the file. */ char * gnome_vfs_get_mime_type (const char *text_uri) { GnomeVFSFileInfo *info; char *mime_type; GnomeVFSResult result; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info (text_uri, info, GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS); if (info->mime_type == NULL || result != GNOME_VFS_OK) { mime_type = NULL; } else { mime_type = g_strdup (info->mime_type); } gnome_vfs_file_info_unref (info); return mime_type; } /** * gnome_vfs_get_slow_mime_type: * @text_uri: URI of the file for which to get the mime type * * Determine the mime type of @text_uri. The mime type is determined * in the same way as by gnome_vfs_get_file_info(). This is meant as * a convenience function for times when you only want the mime type. * * Return value: The mime type, or NULL if there is an error reading * the file. * * Since: 2.14 **/ char * gnome_vfs_get_slow_mime_type (const char *text_uri) { GnomeVFSResult result; char *ret; result = _gnome_vfs_get_slow_mime_type_internal (text_uri, &ret); g_assert (result == GNOME_VFS_OK || ret == NULL); return ret; } /* This is private due to the feature freeze, maybe it should be public */ GnomeVFSResult _gnome_vfs_get_slow_mime_type_internal (const char *text_uri, char **mime_type) { GnomeVFSFileInfo *info; GnomeVFSResult result; g_assert (mime_type != NULL); info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info (text_uri, info, GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS); if (result == GNOME_VFS_OK && info->mime_type == NULL) { result = GNOME_VFS_ERROR_GENERIC; } if (result != GNOME_VFS_OK) { *mime_type = NULL; } else { *mime_type = g_strdup (info->mime_type); } gnome_vfs_file_info_unref (info); return result; } /** * gnome_vfs_mime_reload: * * Reload the MIME database. **/ void gnome_vfs_mime_reload (void) { gnome_vfs_mime_info_cache_reload (NULL); gnome_vfs_mime_info_reload (); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume.c0000644000175000001440000006024211334251016016306 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume.c - Handling of volumes for the GNOME Virtual File System. Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include #include "gnome-vfs-volume.h" #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-filesystem-type.h" static void gnome_vfs_volume_class_init (GnomeVFSVolumeClass *klass); static void gnome_vfs_volume_init (GnomeVFSVolume *volume); static void gnome_vfs_volume_finalize (GObject *object); static GObjectClass *parent_class = NULL; G_LOCK_DEFINE_STATIC (volumes); GType gnome_vfs_volume_get_type (void) { static GType volume_type = 0; if (!volume_type) { const GTypeInfo volume_info = { sizeof (GnomeVFSVolumeClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) gnome_vfs_volume_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GnomeVFSVolume), 0, /* n_preallocs */ (GInstanceInitFunc) gnome_vfs_volume_init }; volume_type = g_type_register_static (G_TYPE_OBJECT, "GnomeVFSVolume", &volume_info, 0); } return volume_type; } static void gnome_vfs_volume_class_init (GnomeVFSVolumeClass *class) { GObjectClass *o_class; parent_class = g_type_class_peek_parent (class); o_class = (GObjectClass *) class; /* GObject signals */ o_class->finalize = gnome_vfs_volume_finalize; } static void gnome_vfs_volume_init (GnomeVFSVolume *volume) { static int volume_id_counter = 1; volume->priv = g_new0 (GnomeVFSVolumePrivate, 1); G_LOCK (volumes); volume->priv->id = volume_id_counter++; G_UNLOCK (volumes); } /** * gnome_vfs_volume_ref: * @volume: a #GnomeVFSVolume, or %NULL. * * Increases the refcount of the @volume by 1, if it is not %NULL. * * Returns: the @volume with its refcount increased by one, * or %NULL if @volume is NULL. * * Since: 2.6 */ GnomeVFSVolume * gnome_vfs_volume_ref (GnomeVFSVolume *volume) { if (volume == NULL) { return NULL; } G_LOCK (volumes); g_object_ref (volume); G_UNLOCK (volumes); return volume; } /** * gnome_vfs_volume_unref: * @volume: a #GnomeVFSVolume, or %NULL. * * Decreases the refcount of the @volume by 1, if it is not %NULL. * * Since: 2.6 */ void gnome_vfs_volume_unref (GnomeVFSVolume *volume) { if (volume == NULL) { return; } G_LOCK (volumes); g_object_unref (volume); G_UNLOCK (volumes); } /* Remeber that this could be running on a thread other * than the main thread */ static void gnome_vfs_volume_finalize (GObject *object) { GnomeVFSVolume *volume = (GnomeVFSVolume *) object; GnomeVFSVolumePrivate *priv; priv = volume->priv; /* The volume can't be finalized if there is a drive that owns it */ g_assert (priv->drive == NULL); g_free (priv->device_path); g_free (priv->activation_uri); g_free (priv->filesystem_type); g_free (priv->display_name); g_free (priv->display_name_key); g_free (priv->icon); g_free (priv->gconf_id); g_free (priv->hal_udi); g_free (priv->hal_drive_udi); g_free (priv); volume->priv = NULL; if (G_OBJECT_CLASS (parent_class)->finalize) (* G_OBJECT_CLASS (parent_class)->finalize) (object); } /** * gnome_vfs_volume_get_volume_type: * @volume: a #GnomeVFSVolume. * * Returns the #GnomeVFSVolumeType of the @volume. * * Returns: the volume type for @volume. * * Since: 2.6 */ GnomeVFSVolumeType gnome_vfs_volume_get_volume_type (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, GNOME_VFS_VOLUME_TYPE_MOUNTPOINT); return volume->priv->volume_type; } /** * gnome_vfs_volume_get_device_type: * @volume: a #GnomeVFSVolume. * * Returns the #GnomeVFSDeviceType of the @volume. * * Returns: the device type for @volume. * * Since: 2.6 */ GnomeVFSDeviceType gnome_vfs_volume_get_device_type (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, GNOME_VFS_DEVICE_TYPE_UNKNOWN); return volume->priv->device_type; } /** * gnome_vfs_volume_get_id: * @volume: a #GnomeVFSVolume. * * Returns the ID of the @volume, * * Two #GnomeVFSVolumes are guaranteed to refer * to the same volume if they have the same ID. * * Returns: the id for the @volume. * * Since: 2.6 */ gulong gnome_vfs_volume_get_id (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, 0); return volume->priv->id; } /** * gnome_vfs_volume_get_drive: * @volume: a #GnomeVFSVolume. * * Returns: the drive for the @volume. * * Since: 2.6 */ GnomeVFSDrive * gnome_vfs_volume_get_drive (GnomeVFSVolume *volume) { GnomeVFSDrive *drive; g_return_val_if_fail (volume != NULL, NULL); G_LOCK (volumes); drive = gnome_vfs_drive_ref (volume->priv->drive); G_UNLOCK (volumes); return drive; } void gnome_vfs_volume_unset_drive_private (GnomeVFSVolume *volume, GnomeVFSDrive *drive) { G_LOCK (volumes); g_assert (volume->priv->drive == drive); volume->priv->drive = NULL; G_UNLOCK (volumes); } void gnome_vfs_volume_set_drive_private (GnomeVFSVolume *volume, GnomeVFSDrive *drive) { G_LOCK (volumes); g_assert (volume->priv->drive == NULL); volume->priv->drive = drive; G_UNLOCK (volumes); } /** * gnome_vfs_volume_get_device_path: * @volume: a #GnomeVFSVolume. * * Returns the device path of a #GnomeVFSVolume. * * For HAL volumes, this returns the value of the * volume's "block.device" key. For UNIX mounts, * it returns the %mntent's %mnt_fsname entry. * * Otherwise, it returns %NULL. * * Returns: a newly allocated string for device path of @volume. * * Since: 2.6 */ char * gnome_vfs_volume_get_device_path (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, NULL); return g_strdup (volume->priv->device_path); } /** * gnome_vfs_volume_get_activation_uri: * @volume: a #GnomeVFSVolume. * * Returns the activation URI of a #GnomeVFSVolume. * * The returned URI usually refers to a valid location. You can check the * validity of the location by calling gnome_vfs_uri_new() with the URI, * and checking whether the return value is not %NULL. * * Returns: a newly allocated string for activation uri of @volume. * * Since: 2.6 */ char * gnome_vfs_volume_get_activation_uri (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, NULL); return g_strdup (volume->priv->activation_uri); } /** * gnome_vfs_volume_get_hal_udi: * @volume: a #GnomeVFSVolume. * * Returns the HAL UDI of a #GnomeVFSVolume. * * For HAL volumes, this matches the value of the "info.udi" key, * for other volumes it is %NULL. * * Returns: a newly allocated string for unique device id of @volume, or %NULL. * * Since: 2.6 */ char * gnome_vfs_volume_get_hal_udi (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, NULL); return g_strdup (volume->priv->hal_udi); } /** * gnome_vfs_volume_get_filesystem_type: * @volume: a #GnomeVFSVolume. * * Returns a string describing the file system on @volume, * or %NULL if no information on the underlying file system is * available. * * The file system may be used to provide special functionality * that depends on the file system type, for instance to determine * whether trashing is supported (cf. gnome_vfs_volume_handles_trash()). * * For HAL mounts, this returns the value of the "volume.fstype" * key, for traditional UNIX mounts it is set to the %mntent's * %mnt_type key, for connected servers, %NULL is returned. * * As of GnomeVFS 2.15.4, the following file systems are recognized * by GnomeVFS: * * * Recognized File Systems * * * * * * * * File System * Display Name * Supports Trash * * * * affsAFFS VolumeNo * afsAFS Network VolumeNo * autoAuto-detected VolumeNo * cd9660CD-ROM DriveNo * cddaCD Digital AudioNo * cdromCD-ROM DriveNo * devfsHardware Device VolumeNo * encfsEncFS VolumeYes * ext2Ext2 Linux VolumeYes * ext2fsExt2 Linux VolumeYes * ext3Ext3 Linux VolumeYes * fatMSDOS VolumeYes * ffsBSD VolumeYes * fuseFUSE VolumeYes * hfsMacOS VolumeYes * hfsplusMacOS VolumeNo * iso9660CDROM VolumeNo * hsfsHsfs CDROM VolumeNo * jfsJFS VolumeYes * hpfsWindows NT VolumeNo * kernfsSystem VolumeNo * lfsBSD VolumeYes * linprocfsSystem VolumeNo * mfsMemory VolumeYes * minixMinix VolumeNo * msdosMSDOS VolumeNo * msdosfsMSDOS VolumeNo * nfsNFS Network VolumeYes * ntfsWindows NT VolumeNo * nwfsNetware VolumeNo * procSystem VolumeNo * procfsSystem VolumeNo * ptyfsSystem VolumeNo * reiser4Reiser4 Linux VolumeYes * reiserfsReiserFS Linux VolumeYes * smbfsWindows Shared VolumeYes * supermountSuperMount VolumeNo * udfDVD VolumeNo * ufsSolaris/BSD VolumeYes * udfsUdfs Solaris VolumeYes * pcfsPcfs Solaris VolumeYes * samfsSun SAM-QFS VolumeYes * tmpfsTemporary VolumeYes * umsdosEnhanced DOS VolumeNo * vfatWindows VFAT VolumeYes * xenixXenix VolumeNo * xfsXFS Linux VolumeYes * xiafsXIAFS VolumeNo * cifsCIFS VolumeYes * * *
* * Returns: a newly allocated string for filesystem type of @volume. * * Since: 2.6 */ char * gnome_vfs_volume_get_filesystem_type (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, NULL); return g_strdup (volume->priv->filesystem_type); } /** * gnome_vfs_volume_get_display_name: * @volume: a #GnomeVFSVolume. * * Returns the display name of the @volume. * * Returns: a newly allocated string for display name of @volume. * * Since: 2.6 */ char * gnome_vfs_volume_get_display_name (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, NULL); return g_strdup (volume->priv->display_name); } /** * gnome_vfs_volume_get_icon: * @volume: a #GnomeVFSVolume. * * Returns: a newly allocated string for the icon filename of @volume. * * Since: 2.6 */ char * gnome_vfs_volume_get_icon (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, NULL); return g_strdup (volume->priv->icon); } /** * gnome_vfs_volume_is_user_visible: * @volume: a #GnomeVFSVolume. * * Returns whether the @volume is visible to the user. This * should be used by applications to determine whether it * is included in user interfaces listing available volumes. * * Returns: %TRUE if @volume is visible to the user, %FALSE otherwise. * * Since: 2.6 */ gboolean gnome_vfs_volume_is_user_visible (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, FALSE); return volume->priv->is_user_visible; } /** * gnome_vfs_volume_is_read_only: * @volume: a #GnomeVFSVolume. * * Returns whether the file system on a @volume is read-only. * * For HAL volumes, the "volume.is_mounted_read_only" key * is authoritative, for traditional UNIX mounts it returns * %TRUE if the mount was done with the "ro" option. * For servers, %FALSE is returned. * * Returns: %TRUE if the @volume is read-only to the user, %FALSE otherwise. * * Since: 2.6 */ gboolean gnome_vfs_volume_is_read_only (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, FALSE); return volume->priv->is_read_only; } /** * gnome_vfs_volume_is_mounted: * @volume: a #GnomeVFSVolume. * * Returns whether the file system on a @volume is currently mounted. * * For HAL volumes, this reflects the value of the "volume.is_mounted" * key, for traditional UNIX mounts and connected servers, %TRUE * is returned, because their existence implies that they are * mounted. * * Returns: %TRUE if the @volume is mounted, %FALSE otherwise. * * Since: 2.6 */ gboolean gnome_vfs_volume_is_mounted (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, FALSE); return volume->priv->is_mounted; } /** * gnome_vfs_volume_handles_trash: * @volume: a #GnomeVFSVolume. * * Returns whether the file system on a @volume supports trashing of files. * * If the @volume has an AutoFS file system (i.e. gnome_vfs_volume_get_device_type() * returns #GNOME_VFS_DEVICE_TYPE_AUTOFS), or if the @volume is mounted read-only * (gnome_vfs_volume_is_read_only() returns %TRUE), it is assumed * to not support trashing of files. * * Otherwise, if the @volume provides file system information, it is * determined whether the file system supports trashing of files. * See gnome_vfs_volume_get_filesystem_type() for details which * volumes provide file system information, and which file systems * currently support a trash. * * Returns: %TRUE if @volume handles trash, %FALSE otherwise. * * Since: 2.6 */ gboolean gnome_vfs_volume_handles_trash (GnomeVFSVolume *volume) { g_return_val_if_fail (volume != NULL, FALSE); if (volume->priv->device_type == GNOME_VFS_DEVICE_TYPE_AUTOFS) { return FALSE; } if (volume->priv->is_read_only) { return FALSE; } if (volume->priv->filesystem_type != NULL) { return _gnome_vfs_filesystem_use_trash (volume->priv->filesystem_type); } return FALSE; } int _gnome_vfs_device_type_get_sort_group (GnomeVFSDeviceType type) { switch (type) { case GNOME_VFS_DEVICE_TYPE_FLOPPY: case GNOME_VFS_DEVICE_TYPE_ZIP: case GNOME_VFS_DEVICE_TYPE_JAZ: return 0; case GNOME_VFS_DEVICE_TYPE_CDROM: case GNOME_VFS_DEVICE_TYPE_AUDIO_CD: case GNOME_VFS_DEVICE_TYPE_VIDEO_DVD: return 1; case GNOME_VFS_DEVICE_TYPE_CAMERA: case GNOME_VFS_DEVICE_TYPE_MEMORY_STICK: case GNOME_VFS_DEVICE_TYPE_MUSIC_PLAYER: return 2; case GNOME_VFS_DEVICE_TYPE_HARDDRIVE: case GNOME_VFS_DEVICE_TYPE_WINDOWS: case GNOME_VFS_DEVICE_TYPE_APPLE: return 3; case GNOME_VFS_DEVICE_TYPE_NFS: case GNOME_VFS_DEVICE_TYPE_SMB: case GNOME_VFS_DEVICE_TYPE_NETWORK: return 4; default: return 5; } } /** * gnome_vfs_volume_compare: * @a: a #GnomeVFSVolume. * @b: a #GnomeVFSVolume. * * Compares two #GnomeVFSVolume objects @a and @b. Two * #GnomeVFSVolume objects referring to different volumes * are guaranteed to not return 0 when comparing them, * if they refer to the same volume 0 is returned. * * The resulting #gint should be used to determine the * order in which @a and @b are displayed in graphical * user interfces. * * The comparison algorithm first of all peeks the device * type of @a and @b, they will be sorted in the following * order: * * Magnetic and opto-magnetic volumes (ZIP, floppy) * Optical volumes (CD, DVD) * External volumes (USB sticks, music players) * Mounted hard disks * Network mounts * Other volumes * * * Afterwards, the display name of @a and @b is compared * using a locale-sensitive sorting algorithm, which * involves g_utf8_collate_key(). * * If two volumes have the same display name, their * unique ID is compared which can be queried using * gnome_vfs_volume_get_id(). * * Returns: 0 if the volumes refer to the same @GnomeVFSVolume, * a negative value if @a should be displayed before @b, * or a positive value if @a should be displayed after @b. * * Since: 2.6 */ gint gnome_vfs_volume_compare (GnomeVFSVolume *a, GnomeVFSVolume *b) { GnomeVFSVolumePrivate *priva, *privb; gint res; if (a == b) { return 0; } priva = a->priv; privb = b->priv; res = privb->volume_type - priva->volume_type; if (res != 0) { return res; } res = _gnome_vfs_device_type_get_sort_group (priva->device_type) - _gnome_vfs_device_type_get_sort_group (privb->device_type); if (res != 0) { return res; } res = strcmp (priva->display_name_key, privb->display_name_key); if (res != 0) { return res; } return privb->id - priva->id; } #ifdef USE_DAEMON static void utils_append_string_or_null (DBusMessageIter *iter, const gchar *str) { if (str == NULL) str = ""; dbus_message_iter_append_basic (iter, DBUS_TYPE_STRING, &str); } static gchar * utils_get_string_or_null (DBusMessageIter *iter, gboolean empty_is_null) { const gchar *str; dbus_message_iter_get_basic (iter, &str); if (empty_is_null && *str == 0) { return NULL; } else { return g_strdup (str); } } gboolean gnome_vfs_volume_to_dbus (DBusMessageIter *iter, GnomeVFSVolume *volume) { GnomeVFSVolumePrivate *priv; DBusMessageIter struct_iter; GnomeVFSDrive *drive; gint32 i; g_return_val_if_fail (iter != NULL, FALSE); g_return_val_if_fail (volume != NULL, FALSE); priv = volume->priv; if (!dbus_message_iter_open_container (iter, DBUS_TYPE_STRUCT, NULL, /* for struct */ &struct_iter)) { return FALSE; } i = priv->id; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = priv->volume_type; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); i = priv->device_type; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); drive = gnome_vfs_volume_get_drive (volume); if (drive != NULL) { i = drive->priv->id; gnome_vfs_drive_unref (drive); } else { i = 0; } dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); utils_append_string_or_null (&struct_iter, priv->activation_uri); utils_append_string_or_null (&struct_iter, priv->filesystem_type); utils_append_string_or_null (&struct_iter, priv->display_name); utils_append_string_or_null (&struct_iter, priv->icon); dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BOOLEAN, &priv->is_user_visible); dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BOOLEAN, &priv->is_read_only); dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_BOOLEAN, &priv->is_mounted); utils_append_string_or_null (&struct_iter, priv->device_path); i = priv->unix_device; dbus_message_iter_append_basic (&struct_iter, DBUS_TYPE_INT32, &i); utils_append_string_or_null (&struct_iter, priv->hal_udi); utils_append_string_or_null (&struct_iter, priv->gconf_id); dbus_message_iter_close_container (iter, &struct_iter); return TRUE; } GnomeVFSVolume * _gnome_vfs_volume_from_dbus (DBusMessageIter *iter, GnomeVFSVolumeMonitor *volume_monitor) { GnomeVFSVolumePrivate *priv; DBusMessageIter struct_iter; GnomeVFSVolume *volume; gint32 i; g_return_val_if_fail (iter != NULL, NULL); g_return_val_if_fail (volume_monitor != NULL, NULL); g_assert (dbus_message_iter_get_arg_type (iter) == DBUS_TYPE_STRUCT); volume = g_object_new (GNOME_VFS_TYPE_VOLUME, NULL); priv = volume->priv; dbus_message_iter_recurse (iter, &struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); priv->id = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); priv->volume_type = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); priv->device_type = i; dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &i); if (i != 0) { priv->drive = gnome_vfs_volume_monitor_get_drive_by_id ( volume_monitor, i); if (priv->drive != NULL) { gnome_vfs_drive_add_mounted_volume_private (priv->drive, volume); /* The drive reference is weak */ gnome_vfs_drive_unref (priv->drive); } } dbus_message_iter_next (&struct_iter); priv->activation_uri = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); priv->filesystem_type = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); priv->display_name = utils_get_string_or_null (&struct_iter, TRUE); if (volume->priv->display_name != NULL) { char *tmp = g_utf8_casefold (volume->priv->display_name, -1); volume->priv->display_name_key = g_utf8_collate_key (tmp, -1); g_free (tmp); } else { volume->priv->display_name_key = NULL; } dbus_message_iter_next (&struct_iter); priv->icon = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &priv->is_user_visible); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &priv->is_read_only); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &priv->is_mounted); dbus_message_iter_next (&struct_iter); priv->device_path = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); dbus_message_iter_get_basic (&struct_iter, &priv->unix_device); dbus_message_iter_next (&struct_iter); priv->hal_udi = utils_get_string_or_null (&struct_iter, TRUE); dbus_message_iter_next (&struct_iter); priv->gconf_id = utils_get_string_or_null (&struct_iter, TRUE); return volume; } #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-shared.c0000644000175000001440000001375011334251016017532 00000000000000#include #include "gnome-vfs-module-shared.h" #include #include #include #include #include #include #include "gnome-vfs-module.h" #include "gnome-vfs-ops.h" /** * gnome_vfs_mime_type_from_mode: * @mode: value as the st_mode field in the system stat structure. * * Returns a MIME type based on the @mode if it * references a special file (directory, device, fifo, socket or symlink). * This function works like gnome_vfs_mime_type_from_mode_or_default(), except * that it returns %NULL where gnome_vfs_mime_type_from_mode_or_default() * would return a fallback MIME type. * * Returns: a string containing the MIME type, or %NULL if @mode is not a * special file. */ const char * gnome_vfs_mime_type_from_mode (mode_t mode) { const char *mime_type; if (S_ISREG (mode)) mime_type = NULL; else if (S_ISDIR (mode)) mime_type = "x-directory/normal"; else if (S_ISCHR (mode)) mime_type = "x-special/device-char"; else if (S_ISBLK (mode)) mime_type = "x-special/device-block"; else if (S_ISFIFO (mode)) mime_type = "x-special/fifo"; #ifdef S_ISLNK else if (S_ISLNK (mode)) mime_type = "x-special/symlink"; #endif #ifdef S_ISSOCK else if (S_ISSOCK (mode)) mime_type = "x-special/socket"; #endif else mime_type = NULL; return mime_type; } /** * gnome_vfs_mime_type_from_mode_or_default: * @mode: value as the st_mode field in the system stat structure. * @defaultv: default fallback MIME type. * * Returns a MIME type based on the @mode if it * references a special file (directory, device, fifo, socket or symlink). * This function works like gnome_vfs_mime_type_from_mode() except that * it returns @defaultv instead of %NULL. * * Returns: a string containing the MIME type, or @defaultv if @mode is not a * special file. */ const char * gnome_vfs_mime_type_from_mode_or_default (mode_t mode, const char *defaultv) { const char *mime_type; mime_type = gnome_vfs_mime_type_from_mode (mode); if (mime_type == NULL) { mime_type = defaultv; } return mime_type; } /** * gnome_vfs_get_special_mime_type: * @uri: a #GnomeVFSURI to get the mime type for. * * Gets the MIME type for @uri, this function only returns the type * when the uri points to a file that can't be sniffed (sockets, * directories, devices, and fifos). * * Returns: a string containing the mime type or %NULL if the @uri doesn't * present a special file. */ const char * gnome_vfs_get_special_mime_type (GnomeVFSURI *uri) { GnomeVFSResult error; GnomeVFSFileInfo *info; const char *type; info = gnome_vfs_file_info_new (); type = NULL; /* Get file info and examine the type field to see if file is * one of the special kinds. */ error = gnome_vfs_get_file_info_uri (uri, info, GNOME_VFS_FILE_INFO_DEFAULT); if (error == GNOME_VFS_OK && info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) { switch (info->type) { case GNOME_VFS_FILE_TYPE_DIRECTORY: type = "x-directory/normal"; break; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: type = "x-special/device-char"; break; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: type = "x-special/device-block"; break; case GNOME_VFS_FILE_TYPE_FIFO: type = "x-special/fifo"; break; case GNOME_VFS_FILE_TYPE_SOCKET: type = "x-special/socket"; break; default: break; } } gnome_vfs_file_info_unref (info); return type; } /** * gnome_vfs_stat_to_file_info: * @file_info: a #GnomeVFSFileInfo which will be filled. * @statptr: pointer to a 'stat' structure. * * Fills the @file_info structure with the values from @statptr structure. */ void gnome_vfs_stat_to_file_info (GnomeVFSFileInfo *file_info, const struct stat *statptr) { if (S_ISDIR (statptr->st_mode)) file_info->type = GNOME_VFS_FILE_TYPE_DIRECTORY; else if (S_ISCHR (statptr->st_mode)) file_info->type = GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE; else if (S_ISBLK (statptr->st_mode)) file_info->type = GNOME_VFS_FILE_TYPE_BLOCK_DEVICE; else if (S_ISFIFO (statptr->st_mode)) file_info->type = GNOME_VFS_FILE_TYPE_FIFO; #ifdef S_ISSOCK else if (S_ISSOCK (statptr->st_mode)) file_info->type = GNOME_VFS_FILE_TYPE_SOCKET; #endif else if (S_ISREG (statptr->st_mode)) file_info->type = GNOME_VFS_FILE_TYPE_REGULAR; #ifdef S_ISLNK else if (S_ISLNK (statptr->st_mode)) file_info->type = GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK; #endif else file_info->type = GNOME_VFS_FILE_TYPE_UNKNOWN; file_info->permissions = statptr->st_mode & (GNOME_VFS_PERM_USER_ALL | GNOME_VFS_PERM_GROUP_ALL | GNOME_VFS_PERM_OTHER_ALL | GNOME_VFS_PERM_SUID | GNOME_VFS_PERM_SGID | GNOME_VFS_PERM_STICKY); file_info->device = statptr->st_dev; file_info->inode = statptr->st_ino; file_info->link_count = statptr->st_nlink; file_info->uid = statptr->st_uid; file_info->gid = statptr->st_gid; file_info->size = statptr->st_size; #ifndef G_OS_WIN32 file_info->block_count = statptr->st_blocks; file_info->io_block_size = statptr->st_blksize; if (file_info->io_block_size > 0 && file_info->io_block_size < 4096) { /* Never use smaller block than 4k, should probably be pagesize.. */ file_info->io_block_size = 4096; } #else file_info->io_block_size = 512; file_info->block_count = (file_info->size + file_info->io_block_size - 1) / file_info->io_block_size; #endif file_info->atime = statptr->st_atime; file_info->ctime = statptr->st_ctime; file_info->mtime = statptr->st_mtime; file_info->valid_fields |= GNOME_VFS_FILE_INFO_FIELDS_TYPE | GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS | GNOME_VFS_FILE_INFO_FIELDS_FLAGS | GNOME_VFS_FILE_INFO_FIELDS_DEVICE | GNOME_VFS_FILE_INFO_FIELDS_INODE | GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT | GNOME_VFS_FILE_INFO_FIELDS_SIZE | GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT | GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE | GNOME_VFS_FILE_INFO_FIELDS_ATIME | GNOME_VFS_FILE_INFO_FIELDS_MTIME | GNOME_VFS_FILE_INFO_FIELDS_CTIME | GNOME_VFS_FILE_INFO_FIELDS_IDS; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-async-job-map.c0000644000175000001440000001712011334251016017434 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-async-job-map.c Copyright (C) 2001 Eazel Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Pavel Cisler */ #include #include "gnome-vfs-async-job-map.h" #include "gnome-vfs-job.h" #include /* job map bits guarded by this lock */ static GStaticRecMutex async_job_map_lock = G_STATIC_REC_MUTEX_INIT; static guint async_job_map_next_id; static int async_job_map_locked = 0; static gboolean async_job_map_shutting_down; static GHashTable *async_job_map; /* callback map bits guarded by this lock */ static GStaticMutex async_job_callback_map_lock = G_STATIC_MUTEX_INIT; static GHashTable *async_job_callback_map; static guint async_job_callback_map_next_id; void async_job_callback_map_destroy (void); void _gnome_vfs_async_job_map_init (void) { } GnomeVFSJob * _gnome_vfs_async_job_map_get_job (const GnomeVFSAsyncHandle *handle) { _gnome_vfs_async_job_map_assert_locked (); if (async_job_map == NULL) { /* This can happen if cancellations are run after * shutdown or before any job is run. This is just * a special case of there handle not being in the * hash */ return NULL; } return g_hash_table_lookup (async_job_map, handle); } void _gnome_vfs_async_job_map_add_job (GnomeVFSJob *job) { _gnome_vfs_async_job_map_lock (); g_assert (!async_job_map_shutting_down); /* Assign a unique id to each job. The GnomeVFSAsyncHandle pointers each * async op call deals with this will really be these unique IDs */ job->job_handle = GUINT_TO_POINTER (++async_job_map_next_id); if (async_job_map == NULL) { /* First job, allocate a new hash table. */ async_job_map = g_hash_table_new (NULL, NULL); } g_hash_table_insert (async_job_map, job->job_handle, job); _gnome_vfs_async_job_map_unlock (); } void _gnome_vfs_async_job_map_remove_job (GnomeVFSJob *job) { _gnome_vfs_async_job_map_lock (); g_assert (async_job_map); g_hash_table_remove (async_job_map, job->job_handle); _gnome_vfs_async_job_map_unlock (); } static void gnome_vfs_async_job_map_destroy (void) { _gnome_vfs_async_job_map_assert_locked (); g_assert (async_job_map_shutting_down); g_assert (async_job_map != NULL); g_hash_table_destroy (async_job_map); async_job_map = NULL; } gboolean _gnome_vfs_async_job_completed (GnomeVFSAsyncHandle *handle) { GnomeVFSJob *job; _gnome_vfs_async_job_map_lock (); JOB_DEBUG (("%d", GPOINTER_TO_UINT (handle))); /* Job done, remove it's id from the map */ g_assert (async_job_map != NULL); job = _gnome_vfs_async_job_map_get_job (handle); if (job != NULL) { g_hash_table_remove (async_job_map, handle); } if (async_job_map_shutting_down && g_hash_table_size (async_job_map) == 0) { /* We were the last active job, turn the lights off. */ gnome_vfs_async_job_map_destroy (); } _gnome_vfs_async_job_map_unlock (); return job != NULL; } void _gnome_vfs_async_job_map_shutdown (void) { _gnome_vfs_async_job_map_lock (); if (async_job_map) { /* tell the async jobs it's quitting time */ async_job_map_shutting_down = TRUE; if (g_hash_table_size (async_job_map) == 0) { /* No more outstanding jobs to finish, just delete * the hash table directly. */ gnome_vfs_async_job_map_destroy (); } } /* The last expiring job will delete the hash table. */ _gnome_vfs_async_job_map_unlock (); async_job_callback_map_destroy (); } void _gnome_vfs_async_job_map_lock (void) { g_static_rec_mutex_lock (&async_job_map_lock); async_job_map_locked++; } void _gnome_vfs_async_job_map_unlock (void) { async_job_map_locked--; g_static_rec_mutex_unlock (&async_job_map_lock); } void _gnome_vfs_async_job_map_assert_locked (void) { g_assert (async_job_map_locked); } void _gnome_vfs_async_job_callback_valid (guint callback_id, gboolean *valid, gboolean *cancelled) { GnomeVFSNotifyResult *notify_result; g_static_mutex_lock (&async_job_callback_map_lock); if (async_job_callback_map == NULL) { g_assert (async_job_map_shutting_down); *valid = FALSE; *cancelled = FALSE; } notify_result = (GnomeVFSNotifyResult *) g_hash_table_lookup (async_job_callback_map, GUINT_TO_POINTER (callback_id)); *valid = notify_result != NULL; *cancelled = notify_result != NULL && notify_result->cancelled; g_static_mutex_unlock (&async_job_callback_map_lock); } gboolean _gnome_vfs_async_job_add_callback (GnomeVFSJob *job, GnomeVFSNotifyResult *notify_result) { gboolean cancelled; g_static_mutex_lock (&async_job_callback_map_lock); g_assert (!async_job_map_shutting_down); /* Assign a unique id to each job callback. Use unique IDs instead of the * notify_results pointers to avoid aliasing problems. */ notify_result->callback_id = ++async_job_callback_map_next_id; JOB_DEBUG (("adding callback %d ", notify_result->callback_id)); if (async_job_callback_map == NULL) { /* First job, allocate a new hash table. */ async_job_callback_map = g_hash_table_new (NULL, NULL); } /* we are using async_job_callback_map_lock to ensure atomicity of * checking/clearing job->cancelled and adding/cancelling callbacks */ cancelled = job->cancelled; if (!cancelled) { g_hash_table_insert (async_job_callback_map, GUINT_TO_POINTER (notify_result->callback_id), notify_result); } g_static_mutex_unlock (&async_job_callback_map_lock); return !cancelled; } void _gnome_vfs_async_job_remove_callback (guint callback_id) { g_assert (async_job_callback_map != NULL); JOB_DEBUG (("removing callback %d ", callback_id)); g_static_mutex_lock (&async_job_callback_map_lock); g_hash_table_remove (async_job_callback_map, GUINT_TO_POINTER (callback_id)); g_static_mutex_unlock (&async_job_callback_map_lock); } static void callback_map_cancel_one (gpointer key, gpointer value, gpointer user_data) { GnomeVFSNotifyResult *notify_result; notify_result = (GnomeVFSNotifyResult *) value; if (notify_result->job_handle == (GnomeVFSAsyncHandle *)user_data) { JOB_DEBUG (("cancelling callback %u - job %u cancelled", GPOINTER_TO_UINT (key), GPOINTER_TO_UINT (user_data))); notify_result->cancelled = TRUE; } } void _gnome_vfs_async_job_cancel_job_and_callbacks (GnomeVFSAsyncHandle *job_handle, GnomeVFSJob *job) { g_static_mutex_lock (&async_job_callback_map_lock); if (job != NULL) { job->cancelled = TRUE; } if (async_job_callback_map == NULL) { JOB_DEBUG (("job %u, no callbacks scheduled yet", GPOINTER_TO_UINT (job_handle))); } else { g_hash_table_foreach (async_job_callback_map, callback_map_cancel_one, job_handle); } g_static_mutex_unlock (&async_job_callback_map_lock); } void async_job_callback_map_destroy (void) { g_static_mutex_lock (&async_job_callback_map_lock); if (async_job_callback_map) { g_hash_table_destroy (async_job_callback_map); async_job_callback_map = NULL; } g_static_mutex_unlock (&async_job_callback_map_lock); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-utils.c0000644000175000001440000016060111334251016016137 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-utils.c - Private utility functions for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000, 2001 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ettore Perazzoli John Sullivan Darin Adler */ #include #ifdef HAVE_SYS_PARAM_H #include #endif #include "gnome-vfs-utils.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-ops.h" #include "gnome-vfs-mime-handlers.h" #include "gnome-vfs-mime-private.h" #include "gnome-vfs-method.h" #include #include #include #include #ifndef G_OS_WIN32 #include #endif #include #include #include #include #include #include #define KILOBYTE_FACTOR 1024.0 #define MEGABYTE_FACTOR (1024.0 * 1024.0) #define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) #define READ_CHUNK_SIZE 8192 #define MAX_SYMLINKS_FOLLOWED 32 /** * gnome_vfs_format_file_size_for_display: * @size: a #GnomeVFSFileSize (a #guint64 value). * * Formats the file @size passed so that it is easy for * the user to read. Gives the size in bytes, kilobytes, megabytes or * gigabytes, choosing whatever is appropriate. * * Returns: a newly allocated string with the size ready to be shown. */ gchar* gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size) { if (size < (GnomeVFSFileSize) KILOBYTE_FACTOR) { return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); } else { gdouble displayed_size; if (size < (GnomeVFSFileSize) MEGABYTE_FACTOR) { displayed_size = (gdouble) size / KILOBYTE_FACTOR; return g_strdup_printf (_("%.1f KB"), displayed_size); } else if (size < (GnomeVFSFileSize) GIGABYTE_FACTOR) { displayed_size = (gdouble) size / MEGABYTE_FACTOR; return g_strdup_printf (_("%.1f MB"), displayed_size); } else { displayed_size = (gdouble) size / GIGABYTE_FACTOR; return g_strdup_printf (_("%.1f GB"), displayed_size); } } } typedef enum { UNSAFE_ALL = 0x1, /* Escape all unsafe characters */ UNSAFE_ALLOW_PLUS = 0x2, /* Allows '+' */ UNSAFE_PATH = 0x4, /* Allows '/' and '&' and '=' */ UNSAFE_DOS_PATH = 0x8, /* Allows '/' and '&' and '=' and ':' */ UNSAFE_HOST = 0x10, /* Allows '/' and ':' and '@' */ UNSAFE_SLASHES = 0x20 /* Allows all characters except for '/' and '%' */ } UnsafeCharacterSet; static const guchar acceptable[96] = { /* X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ /* spc ! " # $ % & ' ( ) * + , - . / */ 0x00,0x3F,0x20,0x20,0x20,0x00,0x2C,0x3F,0x3F,0x3F,0x3F,0x22,0x20,0x3F,0x3F,0x1C, /* 0 1 2 3 4 5 6 7 8 9 : ; < = > ? */ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x38,0x20,0x20,0x2C,0x20,0x20, /* @ A B C D E F G H I J K L M N O */ 0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, /* P Q R S T U V W X Y Z [ \ ] ^ _ */ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F, /* ` a b c d e f g h i j k l m n o */ 0x20,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, /* p q r s t u v w x y z { | } ~ DEL */ 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x3F,0x20 }; enum { RESERVED = 1, UNRESERVED, DELIMITERS, UNWISE, CONTROL, SPACE }; static const guchar uri_character_kind[128] = { CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL , CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL , CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL , CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL ,CONTROL , /* ' ' ! " # $ % & ' */ SPACE ,UNRESERVED,DELIMITERS,DELIMITERS,RESERVED ,DELIMITERS,RESERVED ,UNRESERVED, /* ( ) * + , - . / */ UNRESERVED,UNRESERVED,UNRESERVED,RESERVED ,RESERVED ,UNRESERVED,UNRESERVED,RESERVED , /* 0 1 2 3 4 5 6 7 */ UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED, /* 8 9 : ; < = > ? */ UNRESERVED,UNRESERVED,RESERVED ,RESERVED ,DELIMITERS,RESERVED ,DELIMITERS,RESERVED , /* @ A B C D E F G */ RESERVED ,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED, /* H I J K L M N O */ UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED, /* P Q R S T U V W */ UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED, /* X Y Z [ \ ] ^ _ */ UNRESERVED,UNRESERVED,UNRESERVED,UNWISE ,UNWISE ,UNWISE ,UNWISE ,UNRESERVED, /* ` a b c d e f g */ UNWISE ,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED, /* h i j k l m n o */ UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED, /* p q r s t u v w */ UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED,UNRESERVED, /* x y z { | } ~ DEL */ UNRESERVED,UNRESERVED,UNRESERVED,UNWISE ,UNWISE ,UNWISE ,UNRESERVED,CONTROL }; /* Below modified from libwww HTEscape.c */ #define HEX_ESCAPE '%' /* Escape undesirable characters using % * ------------------------------------- * * This function takes a pointer to a string in which * some characters may be unacceptable unescaped. * It returns a string which has these characters * represented by a '%' character followed by two hex digits. * * This routine returns a g_malloced string. */ static const gchar hex[16] = "0123456789ABCDEF"; static gchar * gnome_vfs_escape_string_internal (const gchar *string, UnsafeCharacterSet mask) { #define ACCEPTABLE_CHAR(a) ((a)>=32 && (a)<128 && (acceptable[(a)-32] & use_mask)) const gchar *p; gchar *q; gchar *result; guchar c; gint unacceptable; UnsafeCharacterSet use_mask; g_return_val_if_fail (mask == UNSAFE_ALL || mask == UNSAFE_ALLOW_PLUS || mask == UNSAFE_PATH || mask == UNSAFE_DOS_PATH || mask == UNSAFE_HOST || mask == UNSAFE_SLASHES, NULL); if (string == NULL) { return NULL; } unacceptable = 0; use_mask = mask; for (p = string; *p != '\0'; p++) { c = *p; if (!ACCEPTABLE_CHAR (c)) { unacceptable++; } if ((use_mask == UNSAFE_HOST) && (unacceptable || (c == '/'))) { /* when escaping a host, if we hit something that needs to be escaped, or we finally * hit a path separator, revert to path mode (the host segment of the url is over). */ use_mask = UNSAFE_PATH; } } result = g_malloc (p - string + unacceptable * 2 + 1); use_mask = mask; for (q = result, p = string; *p != '\0'; p++){ c = *p; if (!ACCEPTABLE_CHAR (c)) { *q++ = HEX_ESCAPE; /* means hex coming */ *q++ = hex[c >> 4]; *q++ = hex[c & 15]; } else { *q++ = c; } if ((use_mask == UNSAFE_HOST) && (!ACCEPTABLE_CHAR (c) || (c == '/'))) { use_mask = UNSAFE_PATH; } } *q = '\0'; return result; } /** * gnome_vfs_escape_string: * @string: string to be escaped. * * Escapes @string, replacing any and all special characters * with equivalent escape sequences. * * Return value: a newly allocated string equivalent to @string * but with all special characters escaped. */ gchar * gnome_vfs_escape_string (const gchar *string) { return gnome_vfs_escape_string_internal (string, UNSAFE_ALL); } /** * gnome_vfs_escape_path_string: * @path: string to be escaped. * * Escapes @path, replacing only special characters that would not * be found in paths (so '/', '&', and '=' will not be escaped by * this function). * * Return value: a newly allocated string equivalent to @path but * with non-path characters escaped. */ gchar * gnome_vfs_escape_path_string (const gchar *path) { #ifdef G_OS_WIN32 gchar *path_copy = g_strdup (path); gchar *p = path_copy; gchar *retval; /* Replace backslashes with slashes, that is what is used in * Explorer's "Internet Shortcuts" (.url files), so presumably * it's the standard. */ while (*p) { if (*p == '\\') *p = '/'; p++; } /* Paths starting with a drive letter get an extra leading slash */ if (g_ascii_isalpha (path_copy[0]) && path_copy[1] == ':') { gchar *escaped_rest = gnome_vfs_escape_string_internal (path_copy+2, UNSAFE_PATH); path_copy[2] = '\0'; retval = g_strconcat ("/", path_copy, escaped_rest, NULL); g_free (escaped_rest); } else retval = gnome_vfs_escape_string_internal (path_copy, UNSAFE_PATH); g_free (path_copy); return retval; #else return gnome_vfs_escape_string_internal (path, UNSAFE_PATH); #endif } /** * gnome_vfs_escape_host_and_path_string: * @path: string to be escaped. * * Escapes @path, replacing only special characters that would not * be found in paths or host name (so '/', '&', '=', ':' and '@' * will not be escaped by this function). * * Return value: a newly allocated string equivalent to @path but * with non-path/host characters escaped. */ gchar * gnome_vfs_escape_host_and_path_string (const gchar *path) { return gnome_vfs_escape_string_internal (path, UNSAFE_HOST); } /** * gnome_vfs_escape_slashes: * @string: string to be escaped. * * Escapes only '/' and '%' characters in @string, replacing * them with their escape sequence equivalents. * * Return value: a newly allocated string equivalent to @string, * but with no unescaped '/' or '%' characters. */ gchar * gnome_vfs_escape_slashes (const gchar *string) { return gnome_vfs_escape_string_internal (string, UNSAFE_SLASHES); } /** * gnome_vfs_escape_set: * @string: string to be escaped. * @match_set: a string containing all characters to be escaped in @string. * * Escapes all characters in @string which are listed in @match_set. * * Return value: a newly allocated string equivalent to @string but * with characters in @match_string escaped. */ char * gnome_vfs_escape_set (const char *string, const char *match_set) { char *result; const char *scanner; char *result_scanner; int escape_count; escape_count = 0; if (string == NULL) { return NULL; } if (match_set == NULL) { return g_strdup (string); } for (scanner = string; *scanner != '\0'; scanner++) { if (strchr(match_set, *scanner) != NULL) { /* this character is in the set of characters * we want escaped. */ escape_count++; } } if (escape_count == 0) { return g_strdup (string); } /* allocate two extra characters for every character that * needs escaping and space for a trailing zero */ result = g_malloc (scanner - string + escape_count * 2 + 1); for (scanner = string, result_scanner = result; *scanner != '\0'; scanner++) { if (strchr(match_set, *scanner) != NULL) { /* this character is in the set of characters * we want escaped. */ *result_scanner++ = HEX_ESCAPE; *result_scanner++ = hex[*scanner >> 4]; *result_scanner++ = hex[*scanner & 15]; } else { *result_scanner++ = *scanner; } } *result_scanner = '\0'; return result; } /** * gnome_vfs_expand_initial_tilde: * @path: a local file path which may start with a '~'. * * If @path starts with a ~, representing the user's home * directory, expand it to the actual path location. * * Return value: a newly allocated string with the initial * tilde (if there was one) converted to an actual path. */ char * gnome_vfs_expand_initial_tilde (const char *path) { #ifndef G_OS_WIN32 char *slash_after_user_name, *user_name; struct passwd *passwd_file_entry; g_return_val_if_fail (path != NULL, NULL); if (path[0] != '~') { return g_strdup (path); } if (path[1] == '/' || path[1] == '\0') { return g_strconcat (g_get_home_dir (), &path[1], NULL); } slash_after_user_name = strchr (&path[1], '/'); if (slash_after_user_name == NULL) { user_name = g_strdup (&path[1]); } else { user_name = g_strndup (&path[1], slash_after_user_name - &path[1]); } passwd_file_entry = getpwnam (user_name); g_free (user_name); if (passwd_file_entry == NULL || passwd_file_entry->pw_dir == NULL) { return g_strdup (path); } return g_strconcat (passwd_file_entry->pw_dir, slash_after_user_name, NULL); #else return g_strdup (path); #endif } static int hex_to_int (gchar c) { return c >= '0' && c <= '9' ? c - '0' : c >= 'A' && c <= 'F' ? c - 'A' + 10 : c >= 'a' && c <= 'f' ? c - 'a' + 10 : -1; } static int unescape_character (const char *scanner) { int first_digit; int second_digit; first_digit = hex_to_int (*scanner++); if (first_digit < 0) { return -1; } second_digit = hex_to_int (*scanner++); if (second_digit < 0) { return -1; } return (first_digit << 4) | second_digit; } /** * gnome_vfs_unescape_string: * @escaped_string: an escaped uri, path, or other string. * @illegal_characters: a string containing a sequence of characters * considered "illegal" to be escaped, '\0' is automatically in this list. * * Decodes escaped characters (i.e. PERCENTxx sequences) in @escaped_string. * Characters are encoded in PERCENTxy form, where xy is the ASCII hex code * for character 16x+y. * * Return value: a newly allocated string with the unescaped * equivalents, or %NULL if @escaped_string contained an escaped * encoding of one of the characters in @illegal_characters. */ char * gnome_vfs_unescape_string (const gchar *escaped_string, const gchar *illegal_characters) { const gchar *in; gchar *out, *result; gint character; if (escaped_string == NULL) { return NULL; } result = g_malloc (strlen (escaped_string) + 1); out = result; for (in = escaped_string; *in != '\0'; in++) { character = *in; if (*in == HEX_ESCAPE) { character = unescape_character (in + 1); /* Check for an illegal character. We consider '\0' illegal here. */ if (character <= 0 || (illegal_characters != NULL && strchr (illegal_characters, (char)character) != NULL)) { g_free (result); return NULL; } in += 2; } *out++ = (char)character; } *out = '\0'; g_assert (out - result <= strlen (escaped_string)); return result; } /** * gnome_vfs_unescape_string_for_display: * @escaped: a string encoded with escaped sequences. * * Similar to gnome_vfs_unescape_string, but it returns something * semi-intelligable to a user even upon receiving traumatic input * such as %00 or URIs in bad form. * * See also: gnome_vfs_unescape_string(). * * WARNING: You should never use this function on a whole URI! It * unescapes reserved characters, and can result in a mangled URI * that can not be re-entered. For example, it unescapes "#" "&" and "?", * which have special meanings in URI strings. * Return value: a pointer to a g_malloc'd string with all characters * replacing their escaped hex values. */ gchar * gnome_vfs_unescape_string_for_display (const gchar *escaped) { const gchar *in, *start_escape; gchar *out, *result; gint i,j; gchar c; gint invalid_escape; if (escaped == NULL) { return NULL; } result = g_malloc (strlen (escaped) + 1); out = result; for (in = escaped; *in != '\0'; ) { start_escape = in; c = *in++; invalid_escape = 0; if (c == HEX_ESCAPE) { /* Get the first hex digit. */ i = hex_to_int (*in++); if (i < 0) { invalid_escape = 1; in--; } c = i << 4; if (invalid_escape == 0) { /* Get the second hex digit. */ i = hex_to_int (*in++); if (i < 0) { invalid_escape = 2; in--; } c |= i; } if (invalid_escape == 0) { /* Check for an illegal character. */ if (c == '\0') { invalid_escape = 3; } } } if (invalid_escape != 0) { for (j = 0; j < invalid_escape; j++) { *out++ = *start_escape++; } } else { *out++ = c; } } *out = '\0'; g_assert (out - result <= strlen (escaped)); return result; } /** * gnome_vfs_remove_optional_escapes: * @uri: an escaped uri. * * Scans the @uri and converts characters that do not have to be * escaped into an un-escaped form. The characters that get treated this * way are defined as unreserved by the RFC. * * Return value: an error value if the @uri is found to be malformed. */ GnomeVFSResult gnome_vfs_remove_optional_escapes (char *uri) { guchar *scanner; int character; int length; if (uri == NULL) { return GNOME_VFS_OK; } length = strlen (uri); for (scanner = (guchar *)uri; *scanner != '\0'; scanner++, length--) { if (*scanner == HEX_ESCAPE) { character = unescape_character ((char *)scanner + 1); if (character < 0) { /* invalid hexadecimal character */ return GNOME_VFS_ERROR_INVALID_URI; } if (uri_character_kind [character] == UNRESERVED) { /* This character does not need to be escaped, convert it * to a non-escaped form. */ *scanner = (guchar)character; g_assert (length >= 3); /* Shrink the string covering up the two extra digits of the * escaped character. Include the trailing '\0' in the copy * to keep the string terminated. */ memmove (scanner + 1, scanner + 3, length - 2); } else { /* This character must stay escaped, skip the entire * escaped sequence */ scanner += 2; } length -= 2; } else if (*scanner > 127 || uri_character_kind [*scanner] == DELIMITERS || uri_character_kind [*scanner] == UNWISE || uri_character_kind [*scanner] == CONTROL) { /* It is illegal for this character to be in an un-escaped form * in the uri. */ return GNOME_VFS_ERROR_INVALID_URI; } } return GNOME_VFS_OK; } static char * gnome_vfs_make_uri_canonical_old (const char *original_uri_text) { GnomeVFSURI *uri; char *result; uri = gnome_vfs_uri_new_private (original_uri_text, TRUE, TRUE, FALSE); if (uri == NULL) { return NULL; } result = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_make_path_name_canonical: * @path: a file path, relative or absolute. * * Calls _gnome_vfs_canonicalize_pathname(), allocating storage for the * result and providing for a cleaner memory management. * * Return value: a canonical version of @path. */ gchar * gnome_vfs_make_path_name_canonical (const gchar *path) { char *path_clone; char *result; path_clone = g_strdup (path); result = _gnome_vfs_canonicalize_pathname (path_clone); if (result != path_clone) { g_free (path_clone); return g_strdup (result); } return path_clone; } /** * gnome_vfs_list_deep_free: * @list: list to be freed. * * Free @list and call g_free() on all data members. */ void gnome_vfs_list_deep_free (GList *list) { GList *p; if (list == NULL) return; for (p = list; p != NULL; p = p->next) { g_free (p->data); } g_list_free (list); } /** * gnome_vfs_get_local_path_from_uri: * @uri: uri to convert to a local path. * * Create a local path for a file:/// uri. Do not use with uris * of other methods. * * Return value: a newly allocated string containing the local path. * %NULL is returned on error or if the uri isn't a file: uri * without a fragment identifier (or chained uri). */ char * gnome_vfs_get_local_path_from_uri (const char *uri) { const char *path_part; if (!_gnome_vfs_istr_has_prefix (uri, "file:/")) { return NULL; } path_part = uri + strlen ("file:"); if (strchr (path_part, '#') != NULL) { return NULL; } if (_gnome_vfs_istr_has_prefix (path_part, "///")) { path_part += 2; } else if (_gnome_vfs_istr_has_prefix (path_part, "//")) { return NULL; } return gnome_vfs_unescape_string (path_part, "/"); } /** * gnome_vfs_get_uri_from_local_path: * @local_full_path: a full local filesystem path (i.e. not relative). * * Returns a file:/// URI for the local path @local_full_path, * such as a path provided by gtk_file_chooser_get_filename(). * The resulting URI may be provided, for instance, to gnome_vfs_uri_new(). * * On Windows @local_full_path should be in the UTF-8 encoding, and can start with a drive * letter, but doesn't have to. * * Return value: a newly allocated string containing the uri corresponding * to @local_full_path (%NULL for some bad errors). */ char * gnome_vfs_get_uri_from_local_path (const char *local_full_path) { char *escaped_path, *result; if (local_full_path == NULL) { return NULL; } g_return_val_if_fail (g_path_is_absolute (local_full_path), NULL); escaped_path = gnome_vfs_escape_path_string (local_full_path); result = g_strconcat ("file://", escaped_path, NULL); g_free (escaped_path); return result; } /** * gnome_vfs_get_volume_free_space: * @vfs_uri: a #GnomeVFSURI. * @size: a #GnomeVFSFileSize. * * Stores the amount of free space in bytes on @vfs-uri's * volume in @size. * * Returns: %GNOME_VFS_OK on success, otherwise an * %GNOME_VFS_ERROR_* code. */ GnomeVFSResult gnome_vfs_get_volume_free_space (const GnomeVFSURI *vfs_uri, GnomeVFSFileSize *size) { if (!VFS_METHOD_HAS_FUNC(vfs_uri->method, get_volume_free_space)) return GNOME_VFS_ERROR_NOT_SUPPORTED; return vfs_uri->method->get_volume_free_space (vfs_uri->method, vfs_uri, size); } /** * gnome_vfs_icon_path_from_filename: * @filename: path to a file. Could be relative or absolute path. * * Return value: Returns the icon path for the @filename. Example: * gnome_vfs_icon_path_from_filename ("nautilus/nautilus-desktop.png") will return a string * forming the full path of the file nautilus-desktop.png ie $PREFIX/share/pixmaps/nautilus/nautilus-desktop.png. */ char * gnome_vfs_icon_path_from_filename (const char *filename) { const char *gnome_var; char *full_filename; char **paths, **temp_paths; if (g_path_is_absolute (filename) && g_file_test (filename, G_FILE_TEST_EXISTS)) return g_strdup (filename); gnome_var = g_getenv ("GNOME_PATH"); if (gnome_var == NULL) { gnome_var = GNOME_VFS_PREFIX; } paths = g_strsplit (gnome_var, G_SEARCHPATH_SEPARATOR_S, 0); for (temp_paths = paths; *temp_paths != NULL; temp_paths++) { full_filename = g_build_filename (*temp_paths, "share", "pixmaps", filename, NULL); if (g_file_test (full_filename, G_FILE_TEST_EXISTS)) { g_strfreev (paths); return full_filename; } g_free (full_filename); full_filename = NULL; } g_strfreev (paths); return NULL; } static char * strdup_to (const char *string, const char *end) { if (end == NULL) { return g_strdup (string); } return g_strndup (string, end - string); } static gboolean is_executable_file (const char *path) { /* Check that it exists and is regular. */ if (!g_file_test (path, G_FILE_TEST_IS_REGULAR)) { return FALSE; } /* Check that it's executable. */ if (!g_file_test (path, G_FILE_TEST_IS_EXECUTABLE)) { return FALSE; } return TRUE; } static gboolean executable_in_path (const char *executable_name) { const char *path_list, *piece_start, *piece_end; char *piece, *raw_path, *expanded_path; gboolean is_good; path_list = g_getenv ("PATH"); for (piece_start = path_list; ; piece_start = piece_end + 1) { /* Find the next piece of PATH. */ piece_end = strchr (piece_start, G_SEARCHPATH_SEPARATOR); piece = strdup_to (piece_start, piece_end); g_strstrip (piece); if (piece[0] == '\0') { is_good = FALSE; } else { /* Try out this path with the executable. */ raw_path = g_build_filename (piece, executable_name, NULL); /* XXX Can this be necessary? Surely PATH * isn't supposed to contain actual tildes, * but the shell expands any tilde one tries * to add to PATH? */ expanded_path = gnome_vfs_expand_initial_tilde (raw_path); g_free (raw_path); is_good = is_executable_file (expanded_path); g_free (expanded_path); } g_free (piece); if (is_good) { return TRUE; } if (piece_end == NULL) { return FALSE; } } } static char * get_executable_name_from_command_string (const char *command_string) { /* FIXME bugzilla.eazel.com 2757: * We need to handle quoting here for the full-path case */ return g_strstrip (strdup_to (command_string, strchr (command_string, ' '))); } /** * gnome_vfs_is_executable_command_string: * @command_string: a string representing a command ie "xterm -bg white". * * Checks if @command_string starts with the full path of an executable file * or an executable in $PATH. * * Returns: %TRUE if @command_string started with an executable file, and is in $PATH, * %FALSE otherwise. */ gboolean gnome_vfs_is_executable_command_string (const char *command_string) { char *executable_name; char *executable_path; gboolean found; /* Check whether command_string is a full path for an executable. */ if (g_path_is_absolute (command_string)) { /* FIXME bugzilla.eazel.com 2757: * Because we don't handle quoting, we can check for full * path including spaces, but no parameters, and full path * with no spaces with or without parameters. But this will * fail for quoted full path with spaces, and parameters. */ /* This works if command_string contains a space, but not * if command_string has parameters. */ if (is_executable_file (command_string)) { return TRUE; } /* This works if full path has no spaces, with or without parameters */ executable_path = get_executable_name_from_command_string (command_string); found = is_executable_file (executable_path); g_free (executable_path); return found; } executable_name = get_executable_name_from_command_string (command_string); found = executable_in_path (executable_name); g_free (executable_name); return found; } /** * gnome_vfs_read_entire_file: * @uri: uri of the file to read. * @file_size: after reading the file, contains the size of the file read. * @file_contents: contains the file_size bytes, the contents of the file at @uri. * * Reads an entire file into memory for convenience. Beware accidentally * loading large files into memory with this function. * * Since version 2.10 the string stored in @file_contents will be null-terminated, * so for text files you can use result as a normal string. * * Return value: an integer representing the result of the operation. * * Since: 2.2 */ GnomeVFSResult gnome_vfs_read_entire_file (const char *uri, int *file_size, char **file_contents) { GnomeVFSResult result; GnomeVFSHandle *handle; char *buffer; GnomeVFSFileSize total_bytes_read; GnomeVFSFileSize bytes_read; g_assert (file_contents != NULL); if (file_size != NULL) *file_size = 0; *file_contents = NULL; /* Open the file. */ result = gnome_vfs_open (&handle, uri, GNOME_VFS_OPEN_READ); if (result != GNOME_VFS_OK) { return result; } /* Read the whole thing. */ buffer = NULL; total_bytes_read = 0; do { buffer = g_realloc (buffer, total_bytes_read + READ_CHUNK_SIZE); result = gnome_vfs_read (handle, buffer + total_bytes_read, READ_CHUNK_SIZE, &bytes_read); if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { g_free (buffer); gnome_vfs_close (handle); return result; } /* Check for overflow. */ if (total_bytes_read + bytes_read < total_bytes_read) { g_free (buffer); gnome_vfs_close (handle); return GNOME_VFS_ERROR_TOO_BIG; } total_bytes_read += bytes_read; } while (result == GNOME_VFS_OK); buffer = g_realloc (buffer, total_bytes_read + 1); buffer[total_bytes_read] = '\0'; /* Close the file. */ result = gnome_vfs_close (handle); if (result != GNOME_VFS_OK) { g_free (buffer); return result; } /* Return the file. */ if (file_size != NULL) *file_size = total_bytes_read; *file_contents = g_realloc (buffer, total_bytes_read + 1); return GNOME_VFS_OK; } static char * gnome_vfs_make_valid_utf8 (const char *name) { GString *string; const char *remainder, *invalid; int remaining_bytes, valid_bytes; string = NULL; remainder = name; remaining_bytes = strlen (name); while (remaining_bytes != 0) { if (g_utf8_validate (remainder, remaining_bytes, &invalid)) { break; } valid_bytes = invalid - remainder; if (string == NULL) { string = g_string_sized_new (remaining_bytes); } g_string_append_len (string, remainder, valid_bytes); g_string_append_c (string, '?'); remaining_bytes -= valid_bytes + 1; remainder = invalid + 1; } if (string == NULL) { return g_strdup (name); } g_string_append (string, remainder); g_string_append (string, _(" (invalid Unicode)")); g_assert (g_utf8_validate (string->str, -1, NULL)); return g_string_free (string, FALSE); } static char * gnome_vfs_format_uri_for_display_internal (const char *uri, gboolean filenames_are_utf8) { char *canonical_uri, *path, *utf8_path; g_return_val_if_fail (uri != NULL, g_strdup ("")); canonical_uri = gnome_vfs_make_uri_canonical_old (uri); /* If there's no fragment and it's a local path. */ path = gnome_vfs_get_local_path_from_uri (canonical_uri); if (path != NULL) { if (!filenames_are_utf8) { utf8_path = g_filename_to_utf8(path, -1, NULL, NULL, NULL); if (utf8_path) { g_free (canonical_uri); g_free (path); return utf8_path; } } else if (g_utf8_validate (path, -1, NULL)) { g_free (canonical_uri); return path; } } if (canonical_uri && !g_utf8_validate (canonical_uri, -1, NULL)) { utf8_path = gnome_vfs_make_valid_utf8 (canonical_uri); g_free (canonical_uri); canonical_uri = utf8_path; } g_free (path); return canonical_uri; } /** * gnome_vfs_format_uri_for_display: * @uri: uri to be displayed. * * Filter, modify, unescape and change @uri to make it appropriate * for display to users. The conversion is done such that the roundtrip * to UTF-8 is reversible. * * Rules: * file: uri without fragments should appear as local paths. * file: uri with fragments should appear as file:uri. * All other uri appear as expected. * * Return value: a newly allocated string which represents @uri and can be displayed. * * Since: 2.2 */ char * gnome_vfs_format_uri_for_display (const char *uri) { gboolean utf8; const char **charsets; utf8 = g_get_filename_charsets (&charsets); return gnome_vfs_format_uri_for_display_internal (uri, utf8); } static gboolean is_valid_scheme_character (char c) { return g_ascii_isalnum (c) || c == '+' || c == '-' || c == '.'; } static gboolean has_valid_scheme (const char *uri) { const char *p; p = uri; if (!is_valid_scheme_character (*p)) { return FALSE; } do { p++; } while (is_valid_scheme_character (*p)); return *p == ':'; } static char * gnome_vfs_escape_high_chars (const guchar *string) { char *result; const guchar *scanner; guchar *result_scanner; int escape_count; static const gchar hex[16] = "0123456789ABCDEF"; #define ACCEPTABLE(a) ((a)>=32 && (a)<128) escape_count = 0; if (string == NULL) { return NULL; } for (scanner = string; *scanner != '\0'; scanner++) { if (!ACCEPTABLE(*scanner)) { escape_count++; } } if (escape_count == 0) { return g_strdup ((char *)string); } /* allocate two extra characters for every character that * needs escaping and space for a trailing zero */ result = g_malloc (scanner - string + escape_count * 2 + 1); for (scanner = string, result_scanner = (guchar *)result; *scanner != '\0'; scanner++) { if (!ACCEPTABLE(*scanner)) { *result_scanner++ = '%'; *result_scanner++ = hex[*scanner >> 4]; *result_scanner++ = hex[*scanner & 15]; } else { *result_scanner++ = *scanner; } } *result_scanner = '\0'; return result; } /* http uris look like .<2-4 letters>, possibly followed by a slash and some text. */ static gboolean looks_like_http_uri (const char *str) { int len; int i; char c; const char *first_slash; first_slash = strchr(str, '/'); if (first_slash == NULL) { len = strlen (str); } else { len = first_slash - str; } for (i = 0; i < 5 && i < len; i++) { c = str[len - 1 - i]; if (i >= 2 && c == '.') { return TRUE; } if (!g_ascii_isalpha (c)) { return FALSE; } } return FALSE; } /* The strip_trailing_whitespace option is intended to make copy/paste of * URIs less error-prone when it is known that trailing whitespace isn't * part of the uri. */ static char * gnome_vfs_make_uri_from_input_internal (const char *text, gboolean filenames_are_utf8, gboolean strip_trailing_whitespace) { char *stripped, *uri, *locale_path, *escaped; g_return_val_if_fail (text != NULL, g_strdup ("")); /* Strip off leading whitespaces (since they can't be part of a valid uri). Only strip off trailing whitespaces when requested since they might be part of a valid uri. */ if (strip_trailing_whitespace) { stripped = g_strstrip (g_strdup (text)); } else { stripped = g_strchug (g_strdup (text)); } if (g_path_is_absolute (stripped)) { if (!filenames_are_utf8) { locale_path = g_filename_to_utf8 (stripped, -1, NULL, NULL, NULL); if (locale_path != NULL) { uri = gnome_vfs_get_uri_from_local_path (locale_path); g_free (locale_path); } else { /* We couldn't convert to the locale. */ /* FIXME: We should probably give a user-visible error here. */ uri = g_strdup(""); } } else { uri = gnome_vfs_get_uri_from_local_path (stripped); } } else switch (stripped[0]) { case '\0': uri = g_strdup (""); break; #ifndef G_OS_WIN32 case '~': { char *path, *filesystem_path; if (!filenames_are_utf8) { filesystem_path = g_filename_to_utf8(stripped, -1, NULL, NULL, NULL); } else { filesystem_path = g_strdup (stripped); } /* deliberately falling into default case on fail */ if (filesystem_path != NULL) { path = gnome_vfs_expand_initial_tilde (filesystem_path); g_free (filesystem_path); if (*path == '/') { uri = gnome_vfs_get_uri_from_local_path (path); g_free (path); break; } g_free (path); } /* don't insert break here, read above comment */ } #endif default: if (has_valid_scheme (stripped)) { uri = gnome_vfs_escape_high_chars ((guchar *)stripped); } else if (looks_like_http_uri (stripped)) { escaped = gnome_vfs_escape_high_chars ((guchar *)stripped); uri = g_strconcat ("http://", escaped, NULL); g_free (escaped); } else { escaped = gnome_vfs_escape_high_chars ((guchar *)stripped); uri = g_strconcat ("file:///", escaped, NULL); g_free (escaped); } } g_free (stripped); return uri; } /** * gnome_vfs_make_uri_from_input: * @location: a possibly mangled "uri", in UTF-8. * * Takes a user input path/uri and makes a valid uri out of it. * * This function is the reverse of gnome_vfs_format_uri_for_display() * but it also handles the fact that the user could have typed * arbitrary UTF-8 in the entry showing the string. * * Returns: a newly allocated uri. * * Since: 2.2 */ char * gnome_vfs_make_uri_from_input (const char *location) { gboolean utf8; const char **charsets; utf8 = g_get_filename_charsets (&charsets); return gnome_vfs_make_uri_from_input_internal (location, utf8, TRUE); } /** * gnome_vfs_make_uri_from_input_with_trailing_ws: * @location: a possibly mangled uri, in UTF-8. * * Takes a user input path/uri and makes a valid uri out of it. * * This function is indentical to gnome_vfs_make_uri_from_input() except * that this version won't strip any trailing slashes. * * Returns: a newly allocated uri. * * Since: 2.12 */ char * gnome_vfs_make_uri_from_input_with_trailing_ws (const char *location) { gboolean utf8; const char **charsets; utf8 = g_get_filename_charsets (&charsets); return gnome_vfs_make_uri_from_input_internal (location, utf8, FALSE); } /** * gnome_vfs_make_uri_from_input_with_dirs: * @location: a relative or absolute path. * @dirs: directory to use as a base directory if @location is a relative path. * * Determines a fully qualified uri from a relative or absolute input path. * Basically calls gnome_vfs_make_uri_from_input() except it specifically * tries to support paths relative to the specified directories (can be homedir * and/or current directory). See #GnomeVFSMakeURIDirs for more information. * * Return value: a newly allocated string containing the fully qualified uri. * * Since: 2.4 */ char * gnome_vfs_make_uri_from_input_with_dirs (const char *location, GnomeVFSMakeURIDirs dirs) { char *uri, *path, *dir; if (g_path_is_absolute (location)) uri = gnome_vfs_make_uri_from_input (location); else switch (location[0]) { case '\0': uri = g_strdup (""); break; #ifndef G_OS_WIN32 case '~': uri = gnome_vfs_make_uri_from_input (location); break; #endif default: /* this might be a relative path, check if it exists relative * to current dir and home dir. */ uri = NULL; if (dirs & GNOME_VFS_MAKE_URI_DIR_CURRENT) { dir = g_get_current_dir (); path = g_build_filename (dir, location, NULL); g_free (dir); if (g_file_test (path, G_FILE_TEST_EXISTS)) { uri = gnome_vfs_make_uri_from_input (path); } g_free (path); } if (uri == NULL && dirs & GNOME_VFS_MAKE_URI_DIR_HOMEDIR) { path = g_build_filename (g_get_home_dir (), location, NULL); if (g_file_test (path, G_FILE_TEST_EXISTS)) { uri = gnome_vfs_make_uri_from_input (path); } g_free (path); } if (uri == NULL) { uri = gnome_vfs_make_uri_from_input (location); } } return uri; } /** * gnome_vfs_make_uri_canonical_strip_fragment: * @uri: a #GnomeVFSURI. * * Returns a canonicalized uri. If @uri contains a fragment (anything after a '#') strips off that and * then makes the @uri canonical. * * Returns: a newly allocated string containing a canonical @uri. * * Since: 2.2 */ char * gnome_vfs_make_uri_canonical_strip_fragment (const char *uri) { const char *fragment; char *without_fragment, *canonical; fragment = strchr (uri, '#'); if (fragment == NULL) { return gnome_vfs_make_uri_canonical (uri); } without_fragment = g_strndup (uri, fragment - uri); canonical = gnome_vfs_make_uri_canonical (without_fragment); g_free (without_fragment); return canonical; } static gboolean uris_match (const char *uri_1, const char *uri_2, gboolean ignore_fragments) { char *canonical_1, *canonical_2; gboolean result; if (ignore_fragments) { canonical_1 = gnome_vfs_make_uri_canonical_strip_fragment (uri_1); canonical_2 = gnome_vfs_make_uri_canonical_strip_fragment (uri_2); } else { canonical_1 = gnome_vfs_make_uri_canonical (uri_1); canonical_2 = gnome_vfs_make_uri_canonical (uri_2); } result = strcmp (canonical_1, canonical_2) ? FALSE : TRUE; g_free (canonical_1); g_free (canonical_2); return result; } /** * gnome_vfs_uris_match: * @uri_1: stringified uri to compare with @uri_2. * @uri_2: stringified uri to compare with @uri_1. * * Compare two uris. * * Return value: %TRUE if they are the same, %FALSE otherwise. * * Since: 2.2 */ gboolean gnome_vfs_uris_match (const char *uri_1, const char *uri_2) { return uris_match (uri_1, uri_2, FALSE); } static gboolean gnome_vfs_uri_is_local_scheme (const char *uri) { gboolean is_local_scheme; char *temp_scheme; int i; char *local_schemes[] = {"file:", "help:", "ghelp:", "gnome-help:", "trash:", "man:", "info:", "hardware:", "search:", "pipe:", "gnome-trash:", NULL}; is_local_scheme = FALSE; for (temp_scheme = *local_schemes, i = 0; temp_scheme != NULL; i++, temp_scheme = local_schemes[i]) { is_local_scheme = _gnome_vfs_istr_has_prefix (uri, temp_scheme); if (is_local_scheme) { break; } } return is_local_scheme; } static char * gnome_vfs_handle_trailing_slashes (const char *uri) { char *temp, *uri_copy; gboolean previous_char_is_column, previous_chars_are_slashes_without_column; gboolean previous_chars_are_slashes_with_column; gboolean is_local_scheme; g_assert (uri != NULL); uri_copy = g_strdup (uri); if (strlen (uri_copy) <= 2) { return uri_copy; } is_local_scheme = gnome_vfs_uri_is_local_scheme (uri); previous_char_is_column = FALSE; previous_chars_are_slashes_without_column = FALSE; previous_chars_are_slashes_with_column = FALSE; /* remove multiple trailing slashes */ for (temp = uri_copy; *temp != '\0'; temp++) { if (*temp == '/' && !previous_char_is_column) { previous_chars_are_slashes_without_column = TRUE; } else if (*temp == '/' && previous_char_is_column) { previous_chars_are_slashes_without_column = FALSE; previous_char_is_column = TRUE; previous_chars_are_slashes_with_column = TRUE; } else { previous_chars_are_slashes_without_column = FALSE; previous_char_is_column = FALSE; previous_chars_are_slashes_with_column = FALSE; } if (*temp == ':') { previous_char_is_column = TRUE; } } if (*temp == '\0' && previous_chars_are_slashes_without_column) { if (is_local_scheme) { /* go back till you remove them all. */ for (temp--; *(temp) == '/'; temp--) { *temp = '\0'; } } else { /* go back till you remove them all but one. */ for (temp--; *(temp - 1) == '/'; temp--) { *temp = '\0'; } } } if (*temp == '\0' && previous_chars_are_slashes_with_column) { /* go back till you remove them all but three. */ for (temp--; *(temp - 3) != ':' && *(temp - 2) != ':' && *(temp - 1) != ':'; temp--) { *temp = '\0'; } } return uri_copy; } /** * gnome_vfs_make_uri_canonical: * @uri: an absolute or relative stringified uri. It might have scheme. * * Standardizes the format of the @uri, so that it can be used * later in other functions that expect a canonical uri. * * Returns: a newly allocated string that contains the canonical * representation of @uri. * * Since: 2.2 */ char * gnome_vfs_make_uri_canonical (const char *uri) { char *canonical_uri, *old_uri, *p; gboolean relative_uri; relative_uri = FALSE; if (uri == NULL) { return NULL; } /* FIXME bugzilla.eazel.com 648: * This currently ignores the issue of two uris that are not identical but point * to the same data except for the specific cases of trailing '/' characters, * file:/ and file:///, and "lack of file:". */ canonical_uri = gnome_vfs_handle_trailing_slashes (uri); /* Note: In some cases, a trailing slash means nothing, and can * be considered equivalent to no trailing slash. But this is * not true in every case; specifically not for web addresses passed * to a web-browser. So we don't have the trailing-slash-equivalence * logic here, but we do use that logic in EelDirectory where * the rules are more strict. */ #ifndef G_OS_WIN32 #define URI_CONTAINS_NO_SCHEME(uri) (strchr (uri, ':') == NULL) #else #define URI_CONTAINS_NO_SCHEME(uri) \ (strlen (uri) > 2 && strchr (uri + 2, ':') == NULL) #endif /* Add file: if there is no scheme. */ if (URI_CONTAINS_NO_SCHEME (canonical_uri)) { old_uri = canonical_uri; if (!g_path_is_absolute (old_uri)) { /* FIXME bugzilla.eazel.com 5069: * bandaid alert. Is this really the right thing to do? * * We got what really is a relative path. We do a little bit of * a stretch here and assume it was meant to be a cryptic absolute path, * and convert it to one. Since we can't call gnome_vfs_uri_new and * gnome_vfs_uri_to_string to do the right make-canonical conversion, * we have to do it ourselves. */ relative_uri = TRUE; canonical_uri = gnome_vfs_make_path_name_canonical (old_uri); g_free (old_uri); old_uri = canonical_uri; canonical_uri = g_strconcat ("file:///", old_uri, NULL); } else { canonical_uri = g_strconcat ("file:", old_uri, NULL); } g_free (old_uri); } /* Lower-case the scheme. */ for (p = canonical_uri; *p != ':'; p++) { g_assert (*p != '\0'); *p = g_ascii_tolower (*p); } if (!relative_uri) { old_uri = canonical_uri; canonical_uri = gnome_vfs_make_uri_canonical_old (canonical_uri); if (canonical_uri != NULL) { g_free (old_uri); } else { canonical_uri = old_uri; } } /* FIXME bugzilla.eazel.com 2802: * Work around gnome-vfs's desire to convert file:foo into file://foo * by converting to file:///foo here. When you remove this, check that * typing "foo" into location bar does not crash and returns an error * rather than displaying the contents of / */ if (canonical_uri != NULL && g_str_has_prefix (canonical_uri, "file://") && !g_str_has_prefix (canonical_uri, "file:///")) { old_uri = canonical_uri; canonical_uri = g_strconcat ("file:/", old_uri + 5, NULL); g_free (old_uri); } return canonical_uri; } /** * gnome_vfs_get_uri_scheme: * @uri: a stringified uri. * * Retrieve the scheme used in @uri. * * Return value: a newly allocated string containing the scheme, %NULL * if @uri doesn't contain a scheme. * * Since: 2.2 */ char * gnome_vfs_get_uri_scheme (const char *uri) { char *colon; g_return_val_if_fail (uri != NULL, NULL); colon = strchr (uri, ':'); if (colon == NULL) { return NULL; } return g_ascii_strdown (uri, colon - uri); } /* Note that NULL's and full paths are also handled by this function. * A NULL location will return the current working directory */ static char * file_uri_from_local_relative_path (const char *location) { char *current_dir; char *base_uri, *base_uri_slash; char *location_escaped; char *uri; current_dir = g_get_current_dir (); base_uri = gnome_vfs_get_uri_from_local_path (current_dir); /* g_get_current_dir returns w/o trailing / */ base_uri_slash = g_strconcat (base_uri, "/", NULL); location_escaped = gnome_vfs_escape_path_string (location); uri = gnome_vfs_uri_make_full_from_relative (base_uri_slash, location_escaped); g_free (location_escaped); g_free (base_uri_slash); g_free (base_uri); g_free (current_dir); return uri; } /** * gnome_vfs_make_uri_from_shell_arg: * @uri: path to make the uri from. * * Similar to gnome_vfs_make_uri_from_input(), except that: * * 1) guesses relative paths instead of http domains. * 2) doesn't bother stripping leading/trailing white space. * 3) doesn't bother with ~ expansion--that's done by the shell. * * Returns: a newly allocated string representing @uri. * * Since: 2.2 */ char * gnome_vfs_make_uri_from_shell_arg (const char *location) { char *uri; g_return_val_if_fail (location != NULL, g_strdup ("")); if (g_path_is_absolute (location)) uri = gnome_vfs_get_uri_from_local_path (location); else switch (location[0]) { case '\0': uri = g_strdup (""); break; default: if (has_valid_scheme (location)) { uri = g_strdup (location); } else { uri = file_uri_from_local_relative_path (location); } } return uri; } /** * gnome_vfs_make_uri_full_from_relative: * @base_uri: path to use as the base for the full uri. * @relative_uri: full or relative path to be appended to the @base_uri. * * Returns a string representing the full uri given a full @base_uri and a * secondary uri which may be relative. * * Deprecated: This function is deprecated, please use * gnome_vfs_uri_make_full_from_relative() from gnome-vfs-uri.h . * * Return value: a newly allocated string containing the uri. * (%NULL for some bad errors). * * Since: 2.2 */ char * gnome_vfs_make_uri_full_from_relative (const char *base_uri, const char *relative_uri) { return gnome_vfs_uri_make_full_from_relative (base_uri, relative_uri); } GnomeVFSResult _gnome_vfs_uri_resolve_all_symlinks_uri (GnomeVFSURI *uri, GnomeVFSURI **result_uri) { GnomeVFSURI *new_uri, *resolved_uri; GnomeVFSFileInfo *info; GnomeVFSResult res; char *escaped_symlink; char *p; int n_followed_symlinks; /* Ref the original uri so we don't lose it */ uri = gnome_vfs_uri_ref (uri); *result_uri = NULL; info = gnome_vfs_file_info_new (); p = uri->text; n_followed_symlinks = 0; while (*p != 0) { while (*p == GNOME_VFS_URI_PATH_CHR) p++; while (*p != 0 && *p != GNOME_VFS_URI_PATH_CHR) p++; new_uri = gnome_vfs_uri_dup (uri); g_free (new_uri->text); new_uri->text = g_strndup (uri->text, p - uri->text); gnome_vfs_file_info_clear (info); res = gnome_vfs_get_file_info_uri (new_uri, info, GNOME_VFS_FILE_INFO_DEFAULT); if (res != GNOME_VFS_OK) { gnome_vfs_uri_unref (new_uri); goto out; } if (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK && info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME) { n_followed_symlinks++; if (n_followed_symlinks > MAX_SYMLINKS_FOLLOWED) { res = GNOME_VFS_ERROR_TOO_MANY_LINKS; gnome_vfs_uri_unref (new_uri); goto out; } escaped_symlink = gnome_vfs_escape_path_string (info->symlink_name); resolved_uri = gnome_vfs_uri_resolve_symbolic_link (new_uri, escaped_symlink); g_assert (resolved_uri != NULL); if (*p != 0) { gnome_vfs_uri_unref (new_uri); new_uri = gnome_vfs_uri_append_string (resolved_uri, p); gnome_vfs_uri_unref (uri); gnome_vfs_uri_unref (resolved_uri); uri = gnome_vfs_uri_ref (new_uri); } else { gnome_vfs_uri_unref (uri); uri = resolved_uri; } p = uri->text; } gnome_vfs_uri_unref (new_uri); } res = GNOME_VFS_OK; *result_uri = gnome_vfs_uri_dup (uri); out: gnome_vfs_file_info_unref (info); gnome_vfs_uri_unref (uri); return res; } GnomeVFSResult _gnome_vfs_uri_resolve_all_symlinks (const char *text_uri, char **resolved_text_uri) { GnomeVFSURI *uri, *resolved_uri; GnomeVFSResult res; *resolved_text_uri = NULL; uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) { return GNOME_VFS_ERROR_NOT_SUPPORTED; } if (uri->text == NULL) { gnome_vfs_uri_unref (uri); return GNOME_VFS_ERROR_NOT_SUPPORTED; } res = _gnome_vfs_uri_resolve_all_symlinks_uri (uri, &resolved_uri); if (res == GNOME_VFS_OK) { *resolved_text_uri = gnome_vfs_uri_to_string (resolved_uri, GNOME_VFS_URI_HIDE_NONE); gnome_vfs_uri_unref (resolved_uri); } gnome_vfs_uri_unref (uri); return res; } char * gnome_vfs_resolve_symlink (const char *path, const char *symlink) { char *p, *filename; char **strs; int i, j, n; GString *res_path; g_assert (path != NULL); g_assert (symlink != NULL); p = strrchr (path, '/'); if (symlink[0] == '/' || p == NULL) { return g_strdup (symlink); } /* either use whole path as base (if it ends in '/'), * or chop its filename part */ p = g_strndup (path, p - path); filename = g_build_filename (p, symlink, NULL); g_free (p); strs = g_strsplit (filename, "/", -1); g_free (filename); n = g_strv_length (strs); for (i = 0; i < n; i++) { if (!strcmp (strs[i], "") || !strcmp (strs[i], ".")) { g_free (strs[i]); strs[i] = NULL; } else if (!strcmp (strs[i], "..")) { g_free (strs[i]); strs[i] = NULL; for (j = i; strs[j] == NULL && j > 0; j--) ; g_free (strs[j]); strs[j] = NULL; } } res_path = g_string_new (NULL); for (i = 0; i < n; i++) if (strs[i] != NULL) { g_string_append_c (res_path, '/'); g_string_append (res_path, strs[i]); g_free (strs[i]); } /* TODO also re-append '/' if the symlink ends in '/'? */ if (res_path->len == 0) g_string_append_c (res_path, '/'); g_free (strs); return g_string_free (res_path, FALSE); } gboolean _gnome_vfs_uri_is_in_subdir (GnomeVFSURI *uri, GnomeVFSURI *dir) { GnomeVFSFileInfo *dirinfo, *info; GnomeVFSURI *resolved_dir, *parent, *tmp; GnomeVFSResult res; gboolean is_in_dir; resolved_dir = NULL; parent = NULL; is_in_dir = FALSE; dirinfo = gnome_vfs_file_info_new (); info = gnome_vfs_file_info_new (); res = gnome_vfs_get_file_info_uri (dir, dirinfo, GNOME_VFS_FILE_INFO_DEFAULT); if (res != GNOME_VFS_OK || dirinfo->type != GNOME_VFS_FILE_TYPE_DIRECTORY) { goto out; } res = _gnome_vfs_uri_resolve_all_symlinks_uri (dir, &resolved_dir); if (res != GNOME_VFS_OK) { goto out; } res = _gnome_vfs_uri_resolve_all_symlinks_uri (uri, &tmp); if (res != GNOME_VFS_OK) { goto out; } parent = gnome_vfs_uri_get_parent (tmp); gnome_vfs_uri_unref (tmp); while (parent != NULL) { res = gnome_vfs_get_file_info_uri (parent, info, GNOME_VFS_FILE_INFO_DEFAULT); if (res != GNOME_VFS_OK) { break; } if (dirinfo->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_DEVICE && dirinfo->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_INODE && info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_DEVICE && info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_INODE) { if (dirinfo->device == info->device && dirinfo->inode == info->inode) { is_in_dir = TRUE; break; } } else { if (gnome_vfs_uri_equal (dir, parent)) { is_in_dir = TRUE; break; } } tmp = gnome_vfs_uri_get_parent (parent); gnome_vfs_uri_unref (parent); parent = tmp; } out: if (resolved_dir != NULL) { gnome_vfs_uri_unref (resolved_dir); } if (parent != NULL) { gnome_vfs_uri_unref (parent); } gnome_vfs_file_info_unref (info); gnome_vfs_file_info_unref (dirinfo); return is_in_dir; } /** * gnome_vfs_url_show: * @url: url to be shown. * * Launches the default application or component associated with the given @url. * * Return value: %GNOME_VFS_OK if the default action was launched, * %GNOME_VFS_ERROR_BAD_PARAMETERS for an invalid or non-existant @url, * %GNOME_VFS_ERROR_NO_DEFAULT if no default action is associated with the @url. * Also error codes from gnome_vfs_mime_action_launch() * or gnome_vfs_mime_action_launch_with_env(). * * Since: 2.4 */ GnomeVFSResult gnome_vfs_url_show (const char *url) { return gnome_vfs_url_show_with_env (url, NULL); } /** * gnome_vfs_url_show_with_env: * @url: url to be shown. * @envp: environment data. * * Like gnome_vfs_url_show() except that the default action will be launched * with the given environment. * * Return value: %GNOME_VFS_OK if the default action was launched. * %GNOME_VFS_ERROR_BAD_PARAMETERS for an invalid or non-existant @url, * %GNOME_VFS_ERROR_NO_DEFAULT if no default action is associated with the @url. * Also error codes from gnome_vfs_mime_application_launch_with_env() * or gnome_vfs_mime_action_launch_with_env(). * * Since: 2.4 */ GnomeVFSResult gnome_vfs_url_show_with_env (const char *url, char **envp) { GnomeVFSMimeApplication *app; GnomeVFSMimeAction *action; GnomeVFSResult result; GList params; char *type; char *scheme; g_return_val_if_fail (url != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); scheme = gnome_vfs_get_uri_scheme (url); if (scheme == NULL) { return GNOME_VFS_ERROR_BAD_PARAMETERS; } /* check if this scheme requires special handling */ if (_gnome_vfs_use_handler_for_scheme (scheme)) { result = _gnome_vfs_url_show_using_handler_with_env (url, envp); g_free (scheme); return result; } g_free (scheme); result = _gnome_vfs_get_slow_mime_type_internal (url, &type); if (result != GNOME_VFS_OK) { return result; } params.data = (char *) url; params.prev = NULL; params.next = NULL; app = gnome_vfs_mime_get_default_application_for_uri (url, type); if (app != NULL) { result = gnome_vfs_mime_application_launch_with_env (app, ¶ms, envp); gnome_vfs_mime_application_free (app); g_free (type); return result; } action = gnome_vfs_mime_get_default_action (type); if (action != NULL) { result = gnome_vfs_mime_action_launch_with_env (action, ¶ms, envp); gnome_vfs_mime_action_free (action); g_free (type); return result; } g_free (type); return GNOME_VFS_ERROR_NO_DEFAULT; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-callback.c0000644000175000001440000006612111334251016020020 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* Copyright (C) 2001 Eazel, Inc Copyright (C) 2001 Maciej Stachowiak The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Michael Fleming Maciej Stachowiak */ #include #include "gnome-vfs-module-callback.h" #include "gnome-vfs-module-callback-module-api.h" #include "gnome-vfs-module-callback-private.h" #include "gnome-vfs-backend.h" #include "gnome-vfs-private.h" /* -- Private data structure declarations -- */ typedef struct CallbackInfo { GnomeVFSModuleCallback callback; gpointer callback_data; GDestroyNotify destroy_notify; int ref_count; } CallbackInfo; typedef struct AsyncCallbackInfo { GnomeVFSAsyncModuleCallback callback; gpointer callback_data; GDestroyNotify destroy_notify; } AsyncCallbackInfo; typedef struct CallbackResponseData { gboolean done; } CallbackResponseData; struct GnomeVFSModuleCallbackStackInfo { GHashTable *current_callbacks; GHashTable *current_async_callbacks; }; /* -- Global variables -- */ static GStaticMutex callback_table_lock = G_STATIC_MUTEX_INIT; static GHashTable *default_callbacks = NULL; static GHashTable *default_async_callbacks = NULL; static GHashTable *stack_tables_to_free = NULL; static GPrivate *callback_stacks_key; static GPrivate *async_callback_stacks_key; static GPrivate *in_async_thread_key; static GCond *async_callback_cond; static GStaticMutex async_callback_lock = G_STATIC_MUTEX_INIT; /* -- Helper functions -- */ /* managing callback structs */ static CallbackInfo * callback_info_new (GnomeVFSModuleCallback callback_func, gpointer callback_data, GDestroyNotify notify) { CallbackInfo *callback; callback = g_new (CallbackInfo, 1); callback->callback = callback_func; callback->callback_data = callback_data; callback->destroy_notify = notify; callback->ref_count = 1; return callback; } #include static void callback_info_ref (CallbackInfo *callback) { callback->ref_count++; } static void callback_info_unref (CallbackInfo *callback) { callback->ref_count--; if (callback->ref_count == 0) { if (callback->destroy_notify != NULL) { callback->destroy_notify (callback->callback_data); } g_free (callback); } } /* code for handling async callbacks */ static void async_callback_response (gpointer data) { CallbackResponseData *response_data; g_static_mutex_lock (&async_callback_lock); response_data = data; response_data->done = TRUE; g_cond_broadcast (async_callback_cond); g_static_mutex_unlock (&async_callback_lock); } static void async_callback_invoke (gconstpointer in, gsize in_size, gpointer out, gsize out_size, gpointer callback_data) { AsyncCallbackInfo *async_callback; CallbackResponseData response_data; async_callback = callback_data; /* Using a single mutex and condition variable could mean bad * performance if many async callbacks are active at once but * this is unlikeley, so we avoid the overhead of creating * new mutexes and condition variables all the time. */ g_static_mutex_lock (&async_callback_lock); response_data.done = FALSE; _gnome_vfs_dispatch_module_callback (async_callback->callback, in, in_size, out, out_size, async_callback->callback_data, async_callback_response, &response_data); while (!response_data.done) { g_cond_wait (async_callback_cond, g_static_mutex_get_mutex (&async_callback_lock)); } g_static_mutex_unlock (&async_callback_lock); } static void async_callback_destroy (gpointer callback_data) { AsyncCallbackInfo *async_callback; async_callback = callback_data; if (async_callback->destroy_notify != NULL) { async_callback->destroy_notify (async_callback->callback_data); } g_free (async_callback); } static CallbackInfo * async_callback_info_new (GnomeVFSAsyncModuleCallback callback_func, gpointer callback_data, GDestroyNotify notify) { AsyncCallbackInfo *async_callback; async_callback = g_new (AsyncCallbackInfo, 1); async_callback->callback = callback_func; async_callback->callback_data = callback_data; async_callback->destroy_notify = notify; return callback_info_new (async_callback_invoke, async_callback, async_callback_destroy); } /* Adding items to hash tables or stack tables */ static void insert_callback_into_table (GHashTable *table, const char *callback_name, CallbackInfo *callback) { gpointer orig_key; gpointer old_value; callback_info_ref (callback); if (g_hash_table_lookup_extended (table, callback_name, &orig_key, &old_value)) { g_hash_table_remove (table, orig_key); g_free (orig_key); callback_info_unref ((CallbackInfo *) old_value); } g_hash_table_insert (table, g_strdup (callback_name), callback); } static void push_callback_into_stack_table (GHashTable *table, const char *callback_name, CallbackInfo *callback) { gpointer orig_key; gpointer old_value; GSList *stack; callback_info_ref (callback); if (g_hash_table_lookup_extended (table, callback_name, &orig_key, &old_value)) { g_hash_table_remove (table, orig_key); g_free (orig_key); stack = old_value; } else { stack = NULL; } stack = g_slist_prepend (stack, callback); g_hash_table_insert (table, g_strdup (callback_name), stack); } static void pop_stack_table (GHashTable *table, const char *callback_name) { GSList *stack; GSList *first_link; gpointer orig_key; gpointer old_value; if (g_hash_table_lookup_extended (table, callback_name, &orig_key, &old_value)) { g_hash_table_remove (table, orig_key); g_free (orig_key); stack = old_value; } else { return; } /* Would not be in the hash table if it were NULL */ g_assert (stack != NULL); callback_info_unref ((CallbackInfo *) stack->data); first_link = stack; stack = stack->next; g_slist_free_1 (first_link); if (stack != NULL) { g_hash_table_insert (table, g_strdup (callback_name), stack); } } /* Functions to copy, duplicate and clear callback tables and callback * stack tables, and helpers for these functions. */ static void copy_one_stack_top (gpointer key, gpointer value, gpointer callback_data) { GSList *stack; const char *callback_name; CallbackInfo *callback; GHashTable *table; callback_name = key; stack = value; callback = stack->data; table = callback_data; insert_callback_into_table (table, callback_name, callback); } static void copy_one_callback_to_stack (gpointer key, gpointer value, gpointer callback_data) { const char *callback_name; CallbackInfo *callback; GHashTable *table; callback_name = key; callback = value; table = callback_data; push_callback_into_stack_table (table, callback_name, callback); } static void copy_callback_stack_tops (GHashTable *source, GHashTable *target) { g_hash_table_foreach (source, copy_one_stack_top, target); } static void copy_callback_table_to_stack_table (GHashTable *source, GHashTable *target) { g_hash_table_foreach (source, copy_one_callback_to_stack, target); } static void callback_info_unref_func (gpointer data, gpointer callback_data) { callback_info_unref ((CallbackInfo *) data); } static gboolean remove_one_stack (gpointer key, gpointer value, gpointer callback_data) { char *callback_name; GSList *stack; callback_name = key; stack = value; g_free (callback_name); g_slist_foreach (stack, callback_info_unref_func, NULL); g_slist_free (stack); return TRUE; } static gboolean remove_one_callback (gpointer key, gpointer value, gpointer callback_data) { char *callback_name; CallbackInfo *callback; callback_name = key; callback = value; g_free (callback_name); callback_info_unref (callback); return TRUE; } static void clear_stack_table (GHashTable *stack_table) { g_hash_table_foreach_remove (stack_table, remove_one_stack, NULL); } static void clear_callback_table (GHashTable *stack_table) { g_hash_table_foreach_remove (stack_table, remove_one_callback, NULL); } /* Functions to inialize global and per-thread data on demand and * associated cleanup functions. */ static void stack_table_destroy (gpointer specific) { GHashTable *stack_table; stack_table = specific; g_static_mutex_lock (&callback_table_lock); if (stack_tables_to_free != NULL) { g_hash_table_remove (stack_tables_to_free, stack_table); } else { stack_table = NULL; } g_static_mutex_unlock (&callback_table_lock); if (stack_table) { clear_stack_table (stack_table); g_hash_table_destroy (stack_table); } } static gboolean stack_table_free_hr_func (gpointer key, gpointer value, gpointer callback_data) { GHashTable *table; table = key; clear_stack_table (table); g_hash_table_destroy (table); return TRUE; } static void free_stack_tables_to_free (void) { g_static_mutex_lock (&callback_table_lock); g_hash_table_foreach_remove (stack_tables_to_free, stack_table_free_hr_func , NULL); g_hash_table_destroy (stack_tables_to_free); stack_tables_to_free = NULL; g_static_mutex_unlock (&callback_table_lock); } void _gnome_vfs_module_callback_private_init (void) { callback_stacks_key = g_private_new (stack_table_destroy); async_callback_stacks_key = g_private_new (stack_table_destroy); in_async_thread_key = g_private_new (NULL); stack_tables_to_free = g_hash_table_new (g_direct_hash, g_direct_equal); async_callback_cond = g_cond_new (); g_atexit (free_stack_tables_to_free); } static void free_default_callbacks (void) { g_static_mutex_lock (&callback_table_lock); clear_callback_table (default_callbacks); g_hash_table_destroy (default_callbacks); clear_callback_table (default_async_callbacks); g_hash_table_destroy (default_async_callbacks); g_static_mutex_unlock (&callback_table_lock); } /* This function should only be called with the mutex held. */ static void initialize_global_if_needed (void) { if (default_callbacks == NULL) { default_callbacks = g_hash_table_new (g_str_hash, g_str_equal); default_async_callbacks = g_hash_table_new (g_str_hash, g_str_equal); g_atexit (free_default_callbacks); } } /* No need for a mutex, since it's all per-thread data. */ static void initialize_per_thread_if_needed (void) { /* Initialize per-thread data, if needed. */ if (g_private_get (callback_stacks_key) == NULL) { g_static_mutex_lock (&callback_table_lock); g_private_set (callback_stacks_key, g_hash_table_new (g_str_hash, g_str_equal)); g_hash_table_insert (stack_tables_to_free, g_private_get (callback_stacks_key), GINT_TO_POINTER (1)); g_static_mutex_unlock (&callback_table_lock); } if (g_private_get (async_callback_stacks_key) == NULL) { g_static_mutex_lock (&callback_table_lock); g_private_set (async_callback_stacks_key, g_hash_table_new (g_str_hash, g_str_equal)); g_hash_table_insert (stack_tables_to_free, g_private_get (async_callback_stacks_key), GINT_TO_POINTER (1)); g_static_mutex_unlock (&callback_table_lock); } } /* -- Public entry points -- */ /** * GnomeVFSModuleCallback: * @in: in argument for this callback; the exact type depends on the specific callback. * @in_size: size of the in argument; useful for sanity-checking. * @out: out argument for this callback; the exact type depends on the specific callback. * @out_size: size of the out argument; useful for sanity-checking. * @callback_data: callback data specified when this callback was set. * * This is the type of a callback function that gets set for a module * callback. * * When the callback is invoked, the user function is called with an * @in argument, the exact type of which depends on the specific * callback. It is generally a pointer to a struct with several fields * that provide information to the callback. * * The @out argument is used to return a value from the * callback. Once again the exact type depends on the specific * callback. It is generally a pointer to a pre-allocated struct with * several fields that the callback function should fill in before * returning. */ /** * GnomeVFSModuleCallbackResponse: * @response_data: pass the response data argument originally passed to the async callback. * * This is the type of the response function passed to a * GnomeVFSAsyncModuleCallback(). It should be called when the async * callback has completed. */ /** * GnomeVFSAsyncModuleCallback: * @in: in argument for this callback; the exact type depends on the specific callback. * @in_size: size of the in argument; useful for sanity-checking. * @out: out argument for this callback; the exact type depends on the specific callback. * @out_size: size of the out argument; useful for sanity-checking. * @callback_data: The @callback_data specified when this callback was set. * @response: response function to call when the callback is completed. * @response_data: argument to pass to @response. * * This is the type of a callback function that gets set for an async * module callback. * * Such callbacks are useful when you are using the API and want * callbacks to be handled from the main thread, for instance if they * need to put up a dialog. * * Like a GnomeVFSModuleCallback(), an async callback has @in and @out * arguments for passing data into and out of the callback. However, * an async callback does not need to fill in the @out argument before * returning. Instead, it can arrange to have the work done from a * callback on the main loop, from another thread, etc. The @response * function should be called by whatever code finishes the work of the * callback with @response_data as an argument once the @out argument * is filled in and the callback is done. * * The @in and @out arguments are guaranteed to remain valid until the * @response function is called. */ /** * gnome_vfs_module_callback_set_default: * @callback_name: name of the module callback to set. * @callback: function to call when the @callback is invoked. * @callback_data: data to pass to @callback. * @destroy_notify: function to call when @callback_data is to be freed. * * Set the default callback for @callback_name to * @callback. @callback will be called with @callback_data on the * same thread as the gnome-vfs operation that invokes it. The default * value is shared for all threads, but setting it is thread-safe. * * Use this function if you want to set a handler to be used by your * whole application. You can use gnome_vfs_module_callback_push() to * set a callback function that will temporarily override the default * on the current thread instead. Or you can also use * gnome_vfs_async_module_callback_set_default() to set an async * callback function. * * Note: @destroy_notify may be called on any thread - it is not * guaranteed to be called on the main thread. */ void gnome_vfs_module_callback_set_default (const char *callback_name, GnomeVFSModuleCallback callback, gpointer callback_data, GDestroyNotify destroy_notify) { CallbackInfo *callback_info; callback_info = callback_info_new (callback, callback_data, destroy_notify); g_static_mutex_lock (&callback_table_lock); initialize_global_if_needed (); insert_callback_into_table (default_callbacks, callback_name, callback_info); g_static_mutex_unlock (&callback_table_lock); callback_info_unref (callback_info); } /** * gnome_vfs_module_callback_push: * @callback_name: name of the module callback to set temporarily. * @callback: function to call when the @callback is invoked. * @callback_data: data to pass to @callback. * @destroy_notify: function to call when @callback_data is to be freed. * * Set @callback as a temprary handler for @callback_name. @callback * will be called with @callback_data on the same thread as the * gnome-vfs operation that invokes it. The temporary handler is set * per-thread. * * gnome_vfs_module_callback_pop() removes the most recently set * temporary handler. The temporary handlers are treated as a first-in * first-out stack. * * Use this function to set a temporary callback handler for a single * call or a few calls. You can use * gnome_vfs_module_callback_set_default() to set a callback function * that will establish a permanent global setting for all threads * instead. * * Note: @destroy_notify may be called on any thread - it is not * guaranteed to be called on the main thread. */ void gnome_vfs_module_callback_push (const char *callback_name, GnomeVFSModuleCallback callback, gpointer callback_data, GDestroyNotify notify) { CallbackInfo *callback_info; initialize_per_thread_if_needed (); callback_info = callback_info_new (callback, callback_data, notify); push_callback_into_stack_table (g_private_get (callback_stacks_key), callback_name, callback_info); callback_info_unref (callback_info); } /** * gnome_vfs_module_callback_pop. * @callback_name: name of the module callback to remove a temporary handler for. * * Remove the temporary handler for @callback_name most recently set * with gnome_vfs_module_callback_push(). If another temporary * handler was previously set on the same thread, it becomes the * current handler. Otherwise, the default handler, if any, becomes * current. * * The temporary handlers are treated as a first-in first-out * stack. */ void gnome_vfs_module_callback_pop (const char *callback_name) { initialize_per_thread_if_needed (); pop_stack_table (g_private_get (callback_stacks_key), callback_name); } /** * gnome_vfs_async_module_callback_set_default: * @callback_name: name of the async module callback to set. * @callback: function to call when @callback is invoked. * @callback_data: data to pass to @callback. * @destroy_notify: function to call when @callback_data is to be freed. * * Set the default async callback for @callback_name to * @callback. @callback will be called with @callback_data * from a callback on the main thread. It will be passed a response * function which should be called to signal completion of the callback. * The callback function itself may return in the meantime. * * The default value is shared for all threads, but setting it is * thread-safe. * * Use this function if you want to globally set a callback handler * for use with async operations. * * You can use gnome_vfs_async_module_callback_push() to set an async * callback function that will temporarily override the default on the * current thread instead. Or you can also use * gnome_vfs_module_callback_set_default() to set a regular callback * function. * * Note: @destroy_notify may be called on any thread - it is not * guaranteed to be called on the main thread. */ void gnome_vfs_async_module_callback_set_default (const char *callback_name, GnomeVFSAsyncModuleCallback callback, gpointer callback_data, GDestroyNotify notify) { CallbackInfo *callback_info; callback_info = async_callback_info_new (callback, callback_data, notify); g_static_mutex_lock (&callback_table_lock); initialize_global_if_needed (); insert_callback_into_table (default_async_callbacks, callback_name, callback_info); g_static_mutex_unlock (&callback_table_lock); callback_info_unref (callback_info); } /** * gnome_vfs_async_module_callback_push: * @callback_name: name of the module callback to set temporarily. * @callback: function to call when @callback is invoked. * @callback_data: data to pass to @callback. * @destroy_notify: function to call when @callback_data is to be freed. * * Set @callback as a temprary async handler for * @callback_name. @callback will be called with @callback_data * from a callback on the main thread. It will be passed a response * function which should be called to signal completion of the * callback. The callback function itself may return in the meantime. * * The temporary async handler is set per-thread. * * gnome_vfs_async_module_callback_pop() removes the most recently set * temporary handler. The temporary async handlers are * treated as a first-in first-out stack. * * Use this function to set a temporary async callback handler for a * single call or a few calls. You can use * gnome_vfs_async_module_callback_set_default() to set an async * callback function that will establish a permanent global setting * for all threads instead. * * Note: @destroy_notify may be called on any thread - it is not * guaranteed to be called on the main thread. */ void gnome_vfs_async_module_callback_push (const char *callback_name, GnomeVFSAsyncModuleCallback callback, gpointer callback_data, GDestroyNotify notify) { CallbackInfo *callback_info; initialize_per_thread_if_needed (); callback_info = async_callback_info_new (callback, callback_data, notify); push_callback_into_stack_table (g_private_get (async_callback_stacks_key), callback_name, callback_info); callback_info_unref (callback_info); } /** * gnome_vfs_async_module_callback_pop: * @callback_name: name of the module callback to remove a temporary handler for. * * Remove the temporary async handler for @callback_name most recently * set with gnome_vfs_async_module_callback_push(). If another * temporary async handler was previously set on the same thread, it * becomes the current handler. Otherwise, the default async handler, * if any, becomes current. * * The temporary async handlers are treated as a first-in first-out * stack. */ void gnome_vfs_async_module_callback_pop (const char *callback_name) { initialize_per_thread_if_needed (); pop_stack_table (g_private_get (async_callback_stacks_key), callback_name); } /* -- Module-only entry points -- */ /** * gnome_vfs_module_callback_invoke: * @callback_name: name of the module callback to set. * @in: in argument for this callback; the exact type depends on the specific callback. * @in_size: size of the in argument; useful for sanity-checking. * @out: out argument for this callback; the exact type depends on the specific callback. * @out_size: size of the out argument; useful for sanity-checking. * * Invoke a default callback for @callback_name, with in arguments * specified by @in and @in_size, and out arguments specified by @out * and @out_size. * * This function should only be called by gnome-vfs modules. * * If this function is called from an async job thread, it will invoke * the current async handler for @callback_name, if any. If no async * handler is set, or the function is not called from an async job * thread, the regular handler, if any, will be invoked instead. If no * handler at all is found for @callback_name, the function returns * %FALSE. * * Returns: %TRUE if a callback was invoked, %FALSE if none was set. */ gboolean gnome_vfs_module_callback_invoke (const char *callback_name, gconstpointer in, gsize in_size, gpointer out, gsize out_size) { CallbackInfo *callback; gboolean invoked; GSList *stack; callback = NULL; #ifdef USE_DAEMON if (gnome_vfs_get_is_daemon()) { return _gnome_vfs_module_callback_marshal_invoke (callback_name, in, in_size, out, out_size); } #endif initialize_per_thread_if_needed (); if (g_private_get (in_async_thread_key) != NULL) { stack = g_hash_table_lookup (g_private_get (async_callback_stacks_key), callback_name); if (stack != NULL) { callback = stack->data; g_assert (callback != NULL); callback_info_ref (callback); } else { g_static_mutex_lock (&callback_table_lock); initialize_global_if_needed (); callback = g_hash_table_lookup (default_async_callbacks, callback_name); if (callback != NULL) { callback_info_ref (callback); } g_static_mutex_unlock (&callback_table_lock); } } if (callback == NULL) { stack = g_hash_table_lookup (g_private_get (callback_stacks_key), callback_name); if (stack != NULL) { callback = stack->data; g_assert (callback != NULL); callback_info_ref (callback); } else { g_static_mutex_lock (&callback_table_lock); initialize_global_if_needed (); callback = g_hash_table_lookup (default_callbacks, callback_name); if (callback != NULL) { callback_info_ref (callback); } g_static_mutex_unlock (&callback_table_lock); } } if (callback == NULL) { invoked = FALSE; } else { callback->callback (in, in_size, out, out_size, callback->callback_data); invoked = TRUE; callback_info_unref (callback); } return invoked; } /* -- Private entry points -- */ /* (used by job mechanism to implement callback * state copying semantics for async jobs. */ GnomeVFSModuleCallbackStackInfo * _gnome_vfs_module_callback_get_stack_info (void) { GnomeVFSModuleCallbackStackInfo *stack_info; stack_info = g_new (GnomeVFSModuleCallbackStackInfo, 1); stack_info->current_callbacks = g_hash_table_new (g_str_hash, g_str_equal); stack_info->current_async_callbacks = g_hash_table_new (g_str_hash, g_str_equal); g_static_mutex_lock (&callback_table_lock); initialize_global_if_needed (); g_static_mutex_unlock (&callback_table_lock); initialize_per_thread_if_needed (); copy_callback_stack_tops (g_private_get (callback_stacks_key), stack_info->current_callbacks); copy_callback_stack_tops (g_private_get (async_callback_stacks_key), stack_info->current_async_callbacks); return stack_info; } void _gnome_vfs_module_callback_free_stack_info (GnomeVFSModuleCallbackStackInfo *stack_info) { clear_callback_table (stack_info->current_callbacks); g_hash_table_destroy (stack_info->current_callbacks); clear_callback_table (stack_info->current_async_callbacks); g_hash_table_destroy (stack_info->current_async_callbacks); g_free (stack_info); } void _gnome_vfs_module_callback_use_stack_info (GnomeVFSModuleCallbackStackInfo *stack_info) { initialize_per_thread_if_needed (); copy_callback_table_to_stack_table (stack_info->current_callbacks, g_private_get (callback_stacks_key)); copy_callback_table_to_stack_table (stack_info->current_async_callbacks, g_private_get (async_callback_stacks_key)); } void _gnome_vfs_module_callback_clear_stacks (void) { initialize_per_thread_if_needed (); clear_stack_table (g_private_get (callback_stacks_key)); clear_stack_table (g_private_get (async_callback_stacks_key)); } void _gnome_vfs_module_callback_set_in_async_thread (gboolean in_async_thread) { initialize_per_thread_if_needed (); g_private_set (in_async_thread_key, GINT_TO_POINTER (in_async_thread)); } gnome-vfs-2.24.4/libgnomevfs/xdgmimeparent.h0000644000175000001440000000413511334251016015750 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimeparent.h: Private file. Datastructure for storing the hierarchy. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2004 Red Hat, Inc. * Copyright (C) 200 Matthias Clasen * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __XDG_MIME_PARENT_H__ #define __XDG_MIME_PARENT_H__ #include "xdgmime.h" typedef struct XdgParentList XdgParentList; #ifdef XDG_PREFIX #define _xdg_mime_parent_read_from_file XDG_RESERVED_ENTRY(parent_read_from_file) #define _xdg_mime_parent_list_new XDG_RESERVED_ENTRY(parent_list_new) #define _xdg_mime_parent_list_free XDG_RESERVED_ENTRY(parent_list_free) #define _xdg_mime_parent_list_lookup XDG_RESERVED_ENTRY(parent_list_lookup) #define _xdg_mime_parent_list_dump XDG_RESERVED_ENTRY(parent_list_dump) #endif void _xdg_mime_parent_read_from_file (XdgParentList *list, const char *file_name); XdgParentList *_xdg_mime_parent_list_new (void); void _xdg_mime_parent_list_free (XdgParentList *list); const char **_xdg_mime_parent_list_lookup (XdgParentList *list, const char *mime); void _xdg_mime_parent_list_dump (XdgParentList *list); #endif /* __XDG_MIME_PARENT_H__ */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-configuration.h0000644000175000001440000000306111334251016017647 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-configuration.h - Handling of the GNOME Virtual File System configuration. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_CONFIGURATION_H #define GNOME_VFS_CONFIGURATION_H #include G_BEGIN_DECLS void _gnome_vfs_configuration_add_directory (const char *dir); gboolean _gnome_vfs_configuration_init (void); void _gnome_vfs_configuration_uninit (void); const gchar *_gnome_vfs_configuration_get_module_path (const gchar *method_name, const char ** args, gboolean *daemon); GList *_gnome_vfs_configuration_get_methods_list(void); G_END_DECLS #endif /* GNOME_VFS_CONFIGURATION_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-monitor-client.h0000644000175000001440000000636411334251016021261 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-monitor-client.h - client implementation of volume monitor Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #ifndef GNOME_VFS_VOLUME_MONITOR_CLIENT_H #define GNOME_VFS_VOLUME_MONITOR_CLIENT_H #include #include #include #include "gnome-vfs-volume-monitor.h" #include G_BEGIN_DECLS #define GNOME_VFS_TYPE_VOLUME_MONITOR_CLIENT (gnome_vfs_volume_monitor_client_get_type ()) #define GNOME_VFS_VOLUME_MONITOR_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_VFS_TYPE_VOLUME_MONITOR_CLIENT, GnomeVFSVolumeMonitorClient)) #define GNOME_VFS_VOLUME_MONITOR_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GNOME_VFS_TYPE_VOLUME_MONITOR_CLIENT, GnomeVFSVolumeMonitorClientClass)) #define GNOME_IS_VFS_VOLUME_MONITOR_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_VFS_TYPE_VOLUME_MONITOR_CLIENT)) #define GNOME_IS_VFS_VOLUME_MONITOR_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_VFS_TYPE_VOLUME_MONITOR_CLIENT)) typedef struct _GnomeVFSVolumeMonitorClient GnomeVFSVolumeMonitorClient; typedef struct _GnomeVFSVolumeMonitorClientClass GnomeVFSVolumeMonitorClientClass; struct _GnomeVFSVolumeMonitorClient { GnomeVFSVolumeMonitor parent; gboolean is_shutdown; DBusConnection *dbus_conn; }; struct _GnomeVFSVolumeMonitorClientClass { GnomeVFSVolumeMonitorClass parent_class; }; GType gnome_vfs_volume_monitor_client_get_type (void) G_GNUC_CONST; void _gnome_vfs_volume_monitor_client_daemon_died (GnomeVFSVolumeMonitor *volume_monitor); void gnome_vfs_volume_monitor_client_shutdown_private (GnomeVFSVolumeMonitorClient *volume_monitor_client); void _gnome_vfs_volume_monitor_client_dbus_force_probe (GnomeVFSVolumeMonitorClient *volume_monitor_client); void _gnome_vfs_volume_monitor_client_dbus_emit_pre_unmount (GnomeVFSVolumeMonitorClient *volume_monitor_client, GnomeVFSVolume *volume); void _gnome_vfs_volume_monitor_client_dbus_emit_mtab_changed (GnomeVFSVolumeMonitorClient *volume_monitor_client); void _gnome_vfs_volume_monitor_client_dbus_force_probe (GnomeVFSVolumeMonitorClient *volume_monitor_client); void _gnome_vfs_volume_monitor_client_dbus_emit_pre_unmount (GnomeVFSVolumeMonitorClient *volume_monitor_client, GnomeVFSVolume *volume); G_END_DECLS #endif /* GNOME_VFS_VOLUME_MONITOR_CLIENT_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-application-registry.h0000644000175000001440000001230011334251016021145 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-application-registry.h * * Copyright (C) 1998 Miguel de Icaza * Copyright (C) 2000 Eazel, Inc * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * Authors: George Lebl * Based on original mime-info database code by Miguel de Icaza */ /* DEPRECATED * * Do not use in new code. * * Use the api in gnome-vfs-mime-handlers.h instead. * */ #ifndef GNOME_VFS_DISABLE_DEPRECATED #ifndef GNOME_VFS_APPLICATION_REGISTRY_H #define GNOME_VFS_APPLICATION_REGISTRY_H #include G_BEGIN_DECLS /** * GNOME_VFS_APPLICATION_REGISTRY_COMMAND: * * Application registry key for fetching the command to execute * an application. **/ #define GNOME_VFS_APPLICATION_REGISTRY_COMMAND "command" /** * GNOME_VFS_APPLICATION_REGISTRY_NAME: * * Application registry key for fetching the name of an application. **/ #define GNOME_VFS_APPLICATION_REGISTRY_NAME "name" /** * GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES: * * Application registry key for determining if an application * can open multiple files in the same invocation. **/ #define GNOME_VFS_APPLICATION_REGISTRY_CAN_OPEN_MULTIPLE_FILES "can_open_multiple_files" /** * GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL: * * Application registry key for determining if an application * needs to run from within a terminal (for example, mpg123) **/ #define GNOME_VFS_APPLICATION_REGISTRY_REQUIRES_TERMINAL "requires_terminal" /** * GNOME_VFS_APPLICATION_REGISTRY_USES_GNOMEVFS * * Application registry key for determining if an application * is using gnome-vfs and thus can open any URI supported by * gnome-vfs */ #define GNOME_VFS_APPLICATION_REGISTRY_USES_GNOMEVFS "uses_gnomevfs" /** * GNOME_VFS_APPLICATION_REGISTRY_STARTUP_NOTIFY: * * Application registry key for determining if an application * supports freedesktop.org-style startup notification. **/ #define GNOME_VFS_APPLICATION_REGISTRY_STARTUP_NOTIFY "startup_notify" /* * Existance check */ gboolean gnome_vfs_application_registry_exists (const char *app_id); /* * Getting arbitrary keys */ GList *gnome_vfs_application_registry_get_keys (const char *app_id); const char *gnome_vfs_application_registry_peek_value (const char *app_id, const char *key); gboolean gnome_vfs_application_registry_get_bool_value (const char *app_id, const char *key, gboolean *got_key); /* * Setting stuff */ void gnome_vfs_application_registry_remove_application(const char *app_id); void gnome_vfs_application_registry_set_value (const char *app_id, const char *key, const char *value); void gnome_vfs_application_registry_set_bool_value (const char *app_id, const char *key, gboolean value); void gnome_vfs_application_registry_unset_key (const char *app_id, const char *key); /* * Query functions */ GList *gnome_vfs_application_registry_get_applications(const char *mime_type); GList *gnome_vfs_application_registry_get_mime_types (const char *app_id); gboolean gnome_vfs_application_registry_supports_mime_type (const char *app_id, const char *mime_type); gboolean gnome_vfs_application_registry_supports_uri_scheme (const char *app_id, const char *uri_scheme); gboolean gnome_vfs_application_is_user_owned_application (const GnomeVFSMimeApplication *application); /* * Mime type functions * Note that mime_type can be a specific (image/png) or generic (image/) type */ void gnome_vfs_application_registry_clear_mime_types (const char *app_id); void gnome_vfs_application_registry_add_mime_type (const char *app_id, const char *mime_type); void gnome_vfs_application_registry_remove_mime_type (const char *app_id, const char *mime_type); /* * Commit function, should be called if ANY stuff changes have been made. * Stuff is saved into the user directory. */ GnomeVFSResult gnome_vfs_application_registry_sync (void); void gnome_vfs_application_registry_shutdown (void); void gnome_vfs_application_registry_reload (void); /* * Integrating with gnome-vfs-mime-handlers */ GnomeVFSMimeApplication * gnome_vfs_application_registry_get_mime_application(const char *app_id); void gnome_vfs_application_registry_save_mime_application(const GnomeVFSMimeApplication *application); G_END_DECLS #endif /* GNOME_VFS_APPLICATION_REGISTRY_H */ #endif /* GNOME_VFS_DISABLE_DEPRECATED */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-parse-ls.c0000644000175000001440000003630011334251016016523 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-parse-ls.c - Routines for parsing output from the `ls' command. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: 1995 Miguel de Icaza 1995 Jakub Jelinek 1998 Pavel Machek 1999 Cleanup by Ettore Perazzoli finduid, findgid are from GNU tar. */ #include #include "gnome-vfs-parse-ls.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef TUNMLEN #define TUNMLEN 256 #endif #ifndef TGNMLEN #define TGNMLEN 256 #endif typedef struct { int saveuid; int my_uid; char saveuname[TUNMLEN]; } finduid_cache; #define finduid_cache_init {-993, -993} typedef struct { int savegid; int my_gid; char savegname[TGNMLEN]; } findgid_cache; #define findgid_cache_init {-993, -993} static int finduid (char *uname, finduid_cache *cache) { struct passwd *pw; if (uname[0] != cache->saveuname[0]/* Quick test w/o proc call */ || 0 != strncmp (uname, cache->saveuname, TUNMLEN)) { strncpy (cache->saveuname, uname, TUNMLEN); pw = getpwnam (uname); if (pw) { cache->saveuid = pw->pw_uid; } else { if (cache->my_uid < 0) cache->my_uid = getuid (); cache->saveuid = cache->my_uid; } } return cache->saveuid; } static int findgid (char *gname, findgid_cache *cache) { struct group *gr; if (gname[0] != cache->savegname[0]/* Quick test w/o proc call */ || 0 != strncmp (gname, cache->savegname, TUNMLEN)) { strncpy (cache->savegname, gname, TUNMLEN); gr = getgrnam (gname); if (gr) { cache->savegid = gr->gr_gid; } else { if (cache->my_gid < 0) cache->my_gid = getgid (); cache->savegid = cache->my_gid; } } return cache->savegid; } /* FIXME bugzilla.eazel.com 1188: This is ugly. */ #define MAXCOLS 30 static int vfs_split_text (char *p, char *columns[], int column_ptr[]) { char *original = p; int numcols; for (numcols = 0; *p && numcols < MAXCOLS; numcols++) { while (*p == ' ' || *p == '\r' || *p == '\n') { *p = 0; p++; } columns [numcols] = p; column_ptr [numcols] = p - original; while (*p && *p != ' ' && *p != '\r' && *p != '\n') p++; } return numcols; } static int is_num (const char *s) { if (!s || s[0] < '0' || s[0] > '9') return 0; return 1; } static int is_dos_date (char *str) { if (strlen (str) == 8 && str[2] == str[5] && strchr ("\\-/", (int)str[2]) != NULL) return 1; return 0; } static int is_week (char *str, struct tm *tim) { static char *week = "SunMonTueWedThuFriSat"; char *pos; if ((pos = strstr (week, str)) != NULL) { if (tim != NULL) tim->tm_wday = (pos - week)/3; return 1; } return 0; } static int is_month (const char *str, struct tm *tim) { static char *month = "JanFebMarAprMayJunJulAugSepOctNovDec"; char *pos; if ((pos = strstr (month, str)) != NULL) { if (tim != NULL) tim->tm_mon = (pos - month)/3; return 1; } return 0; } static int is_time (const char *str, struct tm *tim) { char *p, *p2; if ((p = strchr (str, ':')) && (p2 = strrchr (str, ':'))) { if (p != p2) { if (sscanf (str, "%2d:%2d:%2d", &tim->tm_hour, &tim->tm_min, &tim->tm_sec) != 3) return 0; } else { if (sscanf (str, "%2d:%2d", &tim->tm_hour, &tim->tm_min) != 2) return 0; } } else return 0; return 1; } static int is_year (const char *str, struct tm *tim, const char *carbon, int column_ptr[], int idx) { long year; const char *p; int count = 0; if (strchr (str,':')) return 0; if (strlen (str) != 4) return 0; if (sscanf (str, "%ld", &year) != 1) return 0; if (year < 1900 || year > 3000) return 0; p = carbon + column_ptr[idx -1]; while (*(p + count) != ' ') count++; if (!((*(p+count) == ' ') && (*(p+1+count) == ' ') && (isdigit (*(p+2+count))))) return 0; tim->tm_year = (int) (year - 1900); return 1; } /* * FIXME bugzilla.eazel.com 1182: * this is broken. Consider following entry: * -rwx------ 1 root root 1 Aug 31 10:04 2904 1234 * where "2904 1234" is filename. Well, this code decodes it as year :-(. */ static int vfs_parse_filetype (char c) { switch (c) { case 'd': return S_IFDIR; case 'b': return S_IFBLK; case 'c': return S_IFCHR; case 'l': return S_IFLNK; case 's': #ifdef IS_IFSOCK /* And if not, we fall through to IFIFO, which is pretty close. */ return S_IFSOCK; #endif case 'p': return S_IFIFO; case 'm': case 'n': /* Don't know what these are :-) */ case '-': case '?': return S_IFREG; default: return -1; } } static int vfs_parse_filemode (const char *p) { /* converts rw-rw-rw- into 0666 */ int res = 0; switch (*(p++)) { case 'r': res |= 0400; break; case '-': break; default: return -1; } switch (*(p++)) { case 'w': res |= 0200; break; case '-': break; default: return -1; } switch (*(p++)) { case 'x': res |= 0100; break; case 's': res |= 0100 | S_ISUID; break; case 'S': res |= S_ISUID; break; case '-': break; default: return -1; } switch (*(p++)) { case 'r': res |= 0040; break; case '-': break; default: return -1; } switch (*(p++)) { case 'w': res |= 0020; break; case '-': break; default: return -1; } switch (*(p++)) { case 'x': res |= 0010; break; case 's': res |= 0010 | S_ISGID; break; case 'l': /* Solaris produces these */ case 'S': res |= S_ISGID; break; case '-': break; default: return -1; } switch (*(p++)) { case 'r': res |= 0004; break; case '-': break; default: return -1; } switch (*(p++)) { case 'w': res |= 0002; break; case '-': break; default: return -1; } switch (*(p++)) { case 'x': res |= 0001; break; case 't': res |= 0001 | S_ISVTX; break; case 'T': res |= S_ISVTX; break; case '-': break; default: return -1; } return res; } static gboolean is_last_column (int idx, int num_cols, const char *carbon, int column_ptr[]) { const char *p; if (idx + 1 == num_cols) { return TRUE; } p = carbon + column_ptr[idx + 1] - 1; return *p == '\r' || *p == '\n'; } static int vfs_parse_filedate (int idx, char *columns[], int num_cols, const char *carbon, int column_ptr[], time_t *t) { /* This thing parses from idx in columns[] array */ char *p; struct tm tim; int d[3]; int got_year = 0, got_time = 0; int current_mon; time_t now; /* Let's setup default time values */ now = time (NULL); tim = *localtime (&now); current_mon = tim.tm_mon; tim.tm_hour = 0; tim.tm_min = 0; tim.tm_sec = 0; tim.tm_isdst = -1; /* Let mktime () try to guess correct dst offset */ p = columns [idx++]; /* We eat weekday name in case of extfs */ if (is_week (p, &tim)) p = columns [idx++]; /* Month name */ if (is_month (p, &tim)) { /* And we expect, it followed by day number */ if (is_num (columns[idx])) tim.tm_mday = (int)atol (columns [idx++]); else return 0; /* No day */ } else { /* We usually expect: Mon DD hh:mm Mon DD YYYY But in case of extfs we allow these date formats: Mon DD YYYY hh:mm Mon DD hh:mm YYYY Wek Mon DD hh:mm:ss YYYY MM-DD-YY hh:mm where Mon is Jan-Dec, DD, MM, YY two digit day, month, year, YYYY four digit year, hh, mm, ss two digit hour, minute or second. */ /* Here just this special case with MM-DD-YY */ if (is_dos_date (p)) { p[2] = p[5] = '-'; if (sscanf (p, "%2d-%2d-%2d", &d[0], &d[1], &d[2]) == 3) { /* We expect to get: 1. MM-DD-YY 2. DD-MM-YY 3. YY-MM-DD 4. YY-DD-MM */ /* Hmm... maybe, next time :)*/ /* At last, MM-DD-YY */ d[0]--; /* Months are zerobased */ /* Y2K madness */ if (d[2] < 70) d[2] += 100; tim.tm_mon = d[0]; tim.tm_mday = d[1]; tim.tm_year = d[2]; got_year = 1; } else return 0; /* sscanf failed */ } else return 0; /* unsupported format */ } /* Here we expect to find time and/or year */ if (is_num (columns[idx])) { if ((got_time = is_time (columns[idx], &tim)) || (got_year = is_year (columns[idx], &tim, carbon, column_ptr, idx))) { idx++; /* This is a special case for ctime () or Mon DD YYYY hh:mm */ if (is_num (columns[idx]) && !is_last_column (idx, num_cols, carbon, column_ptr) && /* ensure that we don't eat two lines at once, where the first line provides a year-like filename but no year, or a time-like filename but no time */ ((!got_year && (got_year = is_year (columns[idx], &tim, carbon, column_ptr, idx))) || (!got_time && (got_time = is_time (columns[idx], &tim))))) idx++; /* time & year or reverse */ } /* only time or date */ } else return 0; /* Nor time or date */ /* * If the date is less than 6 months in the past, it is shown without year * other dates in the past or future are shown with year but without time * This does not check for years before 1900 ... I don't know, how * to represent them at all */ if (!got_year && current_mon < 6 && current_mon < tim.tm_mon && tim.tm_mon - current_mon >= 6) tim.tm_year--; if ((*t = mktime (&tim)) < 0) *t = 0; return idx; } /** * gnome_vfs_parse_ls_lga: * @p: string containing the data in the form same as 'ls -al'. * @s: pointer to stat structure. * @filename: filename, will be filled here. * @linkname: linkname, will be filled here. * * Parses the string @p which is in the form same as the 'ls -al' output and fills * in the details in the struct @s, @filename and @linkname. * * Return value: 0 if cannot parse @p, 1 if successful. */ int gnome_vfs_parse_ls_lga (const char *p, struct stat *s, char **filename, char **linkname) { char *columns [MAXCOLS]; /* Points to the string in column n */ int column_ptr [MAXCOLS]; /* Index from 0 to the starting positions of the columns */ int idx, idx2, num_cols; int i; int nlink; char *p_copy, *p_pristine; finduid_cache uid_cache = finduid_cache_init; findgid_cache gid_cache = findgid_cache_init; if (strncmp (p, "total", 5) == 0) return 0; p_copy = g_strdup (p); if ((i = vfs_parse_filetype (*(p++))) == -1) goto error; s->st_mode = i; if (*p == ' ') /* Notwell 4 */ p++; if (*p == '[') { if (strlen (p) <= 8 || p [8] != ']') goto error; /* Should parse here the Notwell permissions :) */ if (S_ISDIR (s->st_mode)) s->st_mode |= (S_IRUSR | S_IRGRP | S_IROTH | S_IWUSR | S_IXUSR | S_IXGRP | S_IXOTH); else s->st_mode |= (S_IRUSR | S_IRGRP | S_IROTH | S_IWUSR); p += 9; } else { if ((i = vfs_parse_filemode (p)) == -1) goto error; s->st_mode |= i; p += 9; /* This is for an extra ACL attribute (HP-UX) */ if (*p == '+') p++; } g_free (p_copy); p_copy = g_strdup (p); p_pristine = g_strdup (p); num_cols = vfs_split_text (p_copy, columns, column_ptr); nlink = atol (columns [0]); if (nlink < 0) goto error; s->st_nlink = nlink; if (!is_num (columns[1])) s->st_uid = finduid (columns [1], &uid_cache); else s->st_uid = (uid_t) atol (columns [1]); /* Mhm, the ls -lg did not produce a group field */ for (idx = 3; idx <= 5; idx++) if (is_month (columns [idx], NULL) || is_week (columns [idx], NULL) || is_dos_date (columns[idx])) break; if (idx == 6 || (idx == 5 && !S_ISCHR (s->st_mode) && !S_ISBLK (s->st_mode))) goto error; /* We don't have gid */ if (idx == 3 || (idx == 4 && (S_ISCHR (s->st_mode) || S_ISBLK (s->st_mode)))) idx2 = 2; else { /* We have gid field */ if (is_num (columns[2])) s->st_gid = (gid_t) atol (columns [2]); else s->st_gid = findgid (columns [2], &gid_cache); idx2 = 3; } /* This is device */ if (S_ISCHR (s->st_mode) || S_ISBLK (s->st_mode)) { guint32 maj, min; if (!is_num (columns[idx2]) || sscanf (columns [idx2], " %d,", &maj) != 1) goto error; if (!is_num (columns[++idx2]) || sscanf (columns [idx2], " %d", &min) != 1) goto error; #ifdef HAVE_STRUCT_STAT_ST_RDEV /* Starting from linux 2.6, minor number is split between bits * 0-7 and 20-31 of dev_t. This calculation is also valid * on older kernel with 8 bit minor and major numbers * http://lwn.net/Articles/49966/ has a pretty good explanation * of the format of dev_t */ min = (min & 0xff) | ((min & 0xfff00) << 12); s->st_rdev = ((maj & 0xfff) << 8) | (min & 0xfff000ff); #endif s->st_size = 0; } else { /* Common file size */ if (!is_num (columns[idx2])) goto error; #ifdef HAVE_ATOLL s->st_size = (off_t) atoll (columns [idx2]); #else s->st_size = (off_t) atof (columns [idx2]); #endif #ifdef HAVE_STRUCT_STAT_ST_RDEV s->st_rdev = 0; #endif } idx = vfs_parse_filedate (idx, columns, num_cols, p, column_ptr, &s->st_mtime); if (!idx) goto error; /* Use resulting time value */ s->st_atime = s->st_ctime = s->st_mtime; s->st_dev = 0; s->st_ino = 0; #ifdef HAVE_STRUCT_STAT_ST_BLKSIZE s->st_blksize = 512; #endif #ifdef HAVE_STRUCT_STAT_ST_BLOCKS s->st_blocks = (s->st_size + 511) / 512; #endif for (i = idx + 1, idx2 = 0; i < num_cols; i++ ) if (strcmp (columns [i], "->") == 0) { idx2 = i; break; } if (((S_ISLNK (s->st_mode) || (num_cols == idx + 3 && s->st_nlink > 1))) /* Maybe a hardlink? (in extfs) */ && idx2) { int p; char *s; if (filename) { s = g_strndup (p_pristine + column_ptr [idx], column_ptr [idx2] - column_ptr [idx] - 1); *filename = s; } if (linkname) { p = strcspn (p_pristine + column_ptr[idx2+1], "\r\n"); s = g_strndup (p_pristine + column_ptr [idx2+1], p); *linkname = s; } } else { /* Extract the filename from the string copy, not from the columns * this way we have a chance of entering hidden directories like ". ." */ if (filename) { /* *filename = g_strdup (columns [idx++]); */ int p; char *s; s = g_strdup (p_pristine + column_ptr [idx]); p = strcspn (s, "\r\n"); s[p] = '\0'; *filename = s; } if (linkname) *linkname = NULL; } g_free (p_copy); g_free (p_pristine); return 1; error: { static int errorcount = 0; if (++errorcount < 5) g_warning (_("Could not parse: %s"), p_copy); else if (errorcount == 5) g_warning (_("More parsing errors will be ignored.")); } if (p_copy != p) /* Carefull! */ g_free (p_copy); return 0; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-types.h0000644000175000001440000001046511334251016016152 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-types.h - Types used by the GNOME Virtual File System. Copyright (C) 1999, 2001 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Seth Nickell */ #ifndef GNOME_VFS_TYPES_H #define GNOME_VFS_TYPES_H #ifndef GNOME_VFS_DISABLE_DEPRECATED /* see gnome-vfs-file-size.h for GNOME_VFS_SIZE_IS_ */ /* see gnome-vfs-file-size.h for GNOME_VFS_OFFSET_IS_ */ /* see gnome-vfs-file-size.h for GNOME_VFS_SIZE_FORMAT_STR */ /* see gnome-vfs-file-size.h for GNOME_VFS_OSFFSET_FORMAT_STR */ /* see gnome-vfs-file-size.h for GnomeVFSFileSize */ /* see gnome-vfs-file-size.h for GnomeVFSFileOffset */ /* see gnome-vfs-result.h for GnomeVFSResult */ /* see gnome-vfs-method.h for GnomeVFSOpenMode */ /* see gnome-vfs-method.h for GnomeVFSSeekPosition */ /* see gnome-vfs-file-info.h for GnomeVFSFileType */ /* see gnome-vfs-file-info.h for GnomeVFSFilePermissions */ /* see gnome-vfs-handle.h for GnomeVFSHandle */ /* see gnome-vfs-uri.h for GnomeVFSURI */ /* see gnome-vfs-uri.h for GnomeVFSToplevelURI */ /* see gnome-vfs-uri.h for GnomeVFSURIHideOptions */ /* see gnome-vfs-file-info.h for GnomeVFSFileFlags */ /* see gnome-vfs-file-info.h for GnomeVFSFileInfoFields */ /* see gnome-vfs-file-info.h for GnomeVFSFileInfo */ /* see gnome-vfs-file-info.h for GnomeVFSFileInfoOptions */ /* see gnome-vfs-file-info.h for GnomeVFSFileInfoMask */ /* see gnome-vfs-find-directory.h for GnomeVFSFindDirectoryKind */ /* see gnome-vfs-xfer.h for GnomeVFSXferOptions */ /* see gnome-vfs-xfer.h for GnomeVFSXferProgressStatus */ /* see gnome-vfs-xfer.h for GnomeVFSXferOverwriteMode */ /* see gnome-vfs-xfer.h for GnomeVFSXferOverwriteAction */ /* see gnome-vfs-xfer.h for GnomeVFSXferErrorMode */ /* see gnome-vfs-xfer.h for GnomeVFSXferErrorAction */ /* see gnome-vfs-xfer.h for GnomeVFSXferPhase */ /* see gnome-vfs-xfer.h for GnomeVFSXferProgressInfo */ /* see gnome-vfs-xfer.h for GnomeVFSXferProgressCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncHandle */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncOpenCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncCreateCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncOpenAsChannelCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncCloseCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncReadCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncWriteCallback */ /* see gnome-vfs-file-info.h for GnomeVFSFileInfoResult */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncGetFileInfoCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncSetFileInfoCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncDirectoryLoadCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncXferProgressCallback */ /* see gnome-vfs-async-ops.h for GnomeVFSFindDirectoryResult */ /* see gnome-vfs-async-ops.h for GnomeVFSAsyncFindDirectoryCallback */ /* see gnome-vfs-module-callback.h for GnomeVFSModuleCallback */ /* Includes to provide compatibility with programs that still include gnome-vfs-types.h directly */ #include #include #include #include #include #include #include #include #endif /* GNOME_VFS_DISABLE_DEPRECATED */ #endif /* GNOME_VFS_TYPES_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-magic.c0000644000175000001440000001527211334251016017007 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* * gnome-vfs-mime-magic.c * * Written by: * James Youngman (jay@gnu.org) * * Adatped to the GNOME needs by: * Elliot Lee (sopwith@cuc.edu) * * Rewritten by: * Pavel Cisler */ #include #include "gnome-vfs-mime-magic.h" #include #include "gnome-vfs-mime-sniff-buffer-private.h" #include "gnome-vfs-mime.h" #include "gnome-vfs-private-utils.h" #include #include #include #include #include #include #include #ifdef HAVE_WCTYPE_H #include #include #endif #include enum { GNOME_VFS_TEXT_SNIFF_LENGTH = 256 }; /** * _gnome_vfs_sniff_buffer_looks_like_text: * @sniff_buffer: buffer to examine * * Return value: returns %TRUE if the contents of @sniff_buffer appear to * be text. **/ gboolean _gnome_vfs_sniff_buffer_looks_like_text (GnomeVFSMimeSniffBuffer *sniff_buffer) { gchar *end; _gnome_vfs_mime_sniff_buffer_get (sniff_buffer, GNOME_VFS_TEXT_SNIFF_LENGTH); if (sniff_buffer->buffer_length == 0) { return TRUE; } /* Don't allow embedded zeros in textfiles. */ if (memchr (sniff_buffer->buffer, 0, sniff_buffer->buffer_length) != NULL) { return FALSE; } if (g_utf8_validate ((gchar *)sniff_buffer->buffer, sniff_buffer->buffer_length, (const gchar**)&end)) { return TRUE; } else { /* Check whether the string was truncated in the middle of * a valid UTF8 char, or if we really have an invalid * UTF8 string */ gint remaining_bytes = sniff_buffer->buffer_length; remaining_bytes -= (end-((gchar *)sniff_buffer->buffer)); if (g_utf8_get_char_validated(end, remaining_bytes) == -2) { return TRUE; } #if defined(HAVE_WCTYPE_H) && defined (HAVE_MBRTOWC) else { size_t wlen; wchar_t wc; guchar *src, *end; mbstate_t state; src = sniff_buffer->buffer; end = sniff_buffer->buffer + sniff_buffer->buffer_length; memset (&state, 0, sizeof (state)); while (src < end) { wlen = mbrtowc(&wc, (gchar *)src, end - src, &state); if (wlen == (size_t)(-1)) { /* Illegal mb sequence */ return FALSE; } if (wlen == (size_t)(-2)) { /* No complete mb char before end * Probably a cut off char which is ok */ return TRUE; } if (wlen == 0) { /* Don't allow embedded zeros in textfiles */ return FALSE; } if (!iswspace (wc) && !iswprint(wc)) { /* Not a printable or whitspace * Probably not a text file */ return FALSE; } src += wlen; } return TRUE; } #endif /* defined(HAVE_WCTYPE_H) && defined (HAVE_MBRTOWC) */ } return FALSE; } static const int bitrates[2][15] = { { 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320}, { 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160 } }; static const int frequencies[2][3] = { { 44100, 48000, 32000 }, { 22050, 24000, 16000 } }; /* * Return length of an MP3 frame using potential 32-bit header value. See * "http://www.dv.co.yu/mpgscript/mpeghdr.htm" for details on the header * format. * * NOTE: As an optimization and because they are rare, this returns 0 for * version 2.5 or free format MP3s. */ static gsize get_mp3_frame_length (unsigned long mp3_header) { int ver = 4 - ((mp3_header >> 19) & 3u); int br = (mp3_header >> 12) & 0xfu; int srf = (mp3_header >> 10) & 3u; /* are frame sync and layer 3 bits set? */ if (((mp3_header & 0xffe20000ul) == 0xffe20000ul) /* good version? */ && ((ver == 1) || (ver == 2)) /* good bitrate index (not free or invalid)? */ && (br > 0) && (br < 15) /* good sampling rate frequency index? */ && (srf != 3) /* not using reserved emphasis value? */ && ((mp3_header & 3u) != 2)) { /* then this is most likely the beginning of a valid frame */ gsize length = (gsize) bitrates[ver - 1][br] * 144000; length /= frequencies[ver - 1][srf]; return length += ((mp3_header >> 9) & 1u) - 4; } return 0; } static unsigned long get_4_byte_value (const unsigned char *bytes) { unsigned long value = 0; int count; for (count = 0; count < 4; ++count) { value <<= 8; value |= *bytes++; } return value; } enum { GNOME_VFS_MP3_SNIFF_LENGTH = 256 }; /** * _gnome_vfs_sniff_buffer_looks_like_mp3: * @sniff_buffer: buffer to examine * * Return value: returns %TRUE if the contents of @sniff_buffer appear to * be an MP3. **/ gboolean _gnome_vfs_sniff_buffer_looks_like_mp3 (GnomeVFSMimeSniffBuffer *sniff_buffer) { unsigned long mp3_header; int offset; if (_gnome_vfs_mime_sniff_buffer_get (sniff_buffer, GNOME_VFS_MP3_SNIFF_LENGTH) != GNOME_VFS_OK) { return FALSE; } /* * Use algorithm described in "ID3 tag version 2.3.0 Informal Standard" * at "http://www.id3.org/id3v2.3.0.html" to detect a valid header, "An * ID3v2 tag can be detected with the following pattern: * $49 44 33 yy yy xx zz zz zz zz * Where yy is less than $FF, xx is the 'flags' byte and zz is less than * $80." * * The informal standard also says, "The ID3v2 tag size is encoded with * four bytes where the most significant bit (bit 7) is set to zero in * every byte, making a total of 28 bits. The zeroed bits are ignored, * so a 257 bytes long tag is represented as $00 00 02 01." */ if (strncmp ((char *) sniff_buffer->buffer, "ID3", 3) == 0 && (sniff_buffer->buffer[3] != 0xffu) && (sniff_buffer->buffer[4] != 0xffu) && (sniff_buffer->buffer[6] < 0x80u) && (sniff_buffer->buffer[7] < 0x80u) && (sniff_buffer->buffer[8] < 0x80u) && (sniff_buffer->buffer[9] < 0x80u)) { /* checks for existance of vorbis identification header */ for (offset=10; offset < GNOME_VFS_MP3_SNIFF_LENGTH-7; offset++) { if (strncmp ((char *) &sniff_buffer->buffer[offset], "\x01vorbis", 7) == 0) { return FALSE; } } return TRUE; } /* * Scan through the first "GNOME_VFS_MP3_SNIFF_LENGTH" bytes of the * buffer to find a potential 32-bit MP3 frame header. */ mp3_header = 0; for (offset = 0; offset < GNOME_VFS_MP3_SNIFF_LENGTH; offset++) { gsize length; mp3_header <<= 8; mp3_header |= sniff_buffer->buffer[offset]; mp3_header &= 0xfffffffful; length = get_mp3_frame_length (mp3_header); if (length != 0) { /* * Since one frame is available, is there another frame * just to be sure this is more likely to be a real MP3 * buffer? */ offset += 1 + length; if (_gnome_vfs_mime_sniff_buffer_get (sniff_buffer, offset + 4) != GNOME_VFS_OK) { return FALSE; } mp3_header = get_4_byte_value (&sniff_buffer->buffer[offset]); length = get_mp3_frame_length (mp3_header); if (length != 0) { return TRUE; } break; } } return FALSE; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-xfer.c0000644000175000001440000025131411334251016015745 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-xfer.c - File transfers in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000, 2001 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ettore Perazzoli Pavel Cisler */ /* FIME bugzilla.eazel.com 1197: Check that all the flags passed by address are set at least once by functions that are expected to set them. */ /* FIXME bugzilla.eazel.com 1198: There should be a concept of a `context' in the file methods that would allow us to set a prefix URI for all the operations. This way we can greatly optimize access to "strange" file systems. */ #include #include "gnome-vfs-xfer.h" #include "gnome-vfs-cancellable-ops.h" #include "gnome-vfs-directory.h" #include "gnome-vfs-ops.h" #include "gnome-vfs-utils.h" #include "gnome-vfs-private-utils.h" #include #include #include /* Implementation of file transfers (`gnome_vfs_xfer*()' functions). */ static GnomeVFSResult remove_directory (GnomeVFSURI *uri, gboolean recursive, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, gboolean *skip); enum { /* size used for accounting for the expense of copying directories, * doing a move operation, etc. in a progress callback * (during a move the file size is used for a regular file). */ DEFAULT_SIZE_OVERHEAD = 1024 }; /* When the total copy size is over this limit, we try to * forget the data cached for the files, in order to * lower VM pressure */ #define DROP_CACHE_SIZE_LIMIT (20*1024*1024) /* Frequent fadvise() calls significantly degrade performance * on some file systems (e.g. XFS), so we drop at least this * amount of bytes at once. */ #define DROP_CACHE_BATCH_SIZE (512 * 1024) /* in asynch mode the progress callback does a context switch every time * it gets called. We'll only call it every now and then to not loose a * lot of performance */ #define UPDATE_PERIOD ((gint64) (500 * 1000)) static gint64 system_time (void) { GTimeVal time_of_day; g_get_current_time (&time_of_day); return (gint64) time_of_day.tv_usec + ((gint64) time_of_day.tv_sec) * 1000000; } static void init_progress (GnomeVFSProgressCallbackState *progress_state, GnomeVFSXferProgressInfo *progress_info) { progress_info->source_name = NULL; progress_info->target_name = NULL; progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; progress_info->vfs_status = GNOME_VFS_OK; progress_info->phase = GNOME_VFS_XFER_PHASE_INITIAL; progress_info->file_index = 0; progress_info->files_total = 0; progress_info->bytes_total = 0; progress_info->file_size = 0; progress_info->bytes_copied = 0; progress_info->total_bytes_copied = 0; progress_info->duplicate_name = NULL; progress_info->duplicate_count = 0; progress_info->top_level_item = FALSE; progress_state->progress_info = progress_info; progress_state->sync_callback = NULL; progress_state->update_callback = NULL; progress_state->async_job_data = NULL; progress_state->next_update_callback_time = 0; progress_state->next_text_update_callback_time = 0; progress_state->update_callback_period = UPDATE_PERIOD; } static void free_progress (GnomeVFSXferProgressInfo *progress_info) { g_free (progress_info->source_name); progress_info->source_name = NULL; g_free (progress_info->target_name); progress_info->target_name = NULL; g_free (progress_info->duplicate_name); progress_info->duplicate_name = NULL; } static void progress_set_source_target_uris (GnomeVFSProgressCallbackState *progress, const GnomeVFSURI *source_uri, const GnomeVFSURI *dest_uri) { g_free (progress->progress_info->source_name); progress->progress_info->source_name = source_uri ? gnome_vfs_uri_to_string (source_uri, GNOME_VFS_URI_HIDE_NONE) : NULL; g_free (progress->progress_info->target_name); progress->progress_info->target_name = dest_uri ? gnome_vfs_uri_to_string (dest_uri, GNOME_VFS_URI_HIDE_NONE) : NULL; } static void progress_set_source_target (GnomeVFSProgressCallbackState *progress, const char *source, const char *dest) { g_free (progress->progress_info->source_name); progress->progress_info->source_name = source ? g_strdup (source) : NULL; g_free (progress->progress_info->target_name); progress->progress_info->target_name = dest ? g_strdup (dest) : NULL; } static int call_progress (GnomeVFSProgressCallbackState *progress, GnomeVFSXferPhase phase) { int result; /* FIXME bugzilla.eazel.com 1199: should use proper progress result values from an enum here */ result = 0; progress_set_source_target_uris (progress, NULL, NULL); progress->next_update_callback_time = system_time () + progress->update_callback_period; progress->progress_info->phase = phase; if (progress->sync_callback != NULL) result = (* progress->sync_callback) (progress->progress_info, progress->user_data); if (progress->update_callback != NULL) { result = (* progress->update_callback) (progress->progress_info, progress->async_job_data); } return result; } static GnomeVFSXferErrorAction call_progress_with_current_names (GnomeVFSProgressCallbackState *progress, GnomeVFSXferPhase phase) { int result; result = GNOME_VFS_XFER_ERROR_ACTION_ABORT; progress->next_text_update_callback_time = system_time () + progress->update_callback_period; progress->next_update_callback_time = progress->next_text_update_callback_time; progress->progress_info->phase = phase; if (progress->sync_callback != NULL) { result = (* progress->sync_callback) (progress->progress_info, progress->user_data); } if (progress->update_callback != NULL) { result = (* progress->update_callback) (progress->progress_info, progress->async_job_data); } return result; } static int call_progress_uri (GnomeVFSProgressCallbackState *progress, const GnomeVFSURI *source_uri, const GnomeVFSURI *dest_uri, GnomeVFSXferPhase phase) { int result; result = 0; progress_set_source_target_uris (progress, source_uri, dest_uri); progress->next_text_update_callback_time = system_time () + progress->update_callback_period; progress->next_update_callback_time = progress->next_text_update_callback_time; progress->progress_info->phase = phase; if (progress->sync_callback != NULL) { result = (* progress->sync_callback) (progress->progress_info, progress->user_data); } if (progress->update_callback != NULL) { result = (* progress->update_callback) (progress->progress_info, progress->async_job_data); } return result; } static gboolean at_end (GnomeVFSProgressCallbackState *progress) { return progress->progress_info->total_bytes_copied >= progress->progress_info->bytes_total; } static int call_progress_often_internal (GnomeVFSProgressCallbackState *progress, GnomeVFSXferPhase phase, gint64 *next_time) { int result; gint64 now; result = 1; now = system_time (); progress->progress_info->phase = phase; if (progress->sync_callback != NULL) { result = (* progress->sync_callback) (progress->progress_info, progress->user_data); } if (now < *next_time && !at_end (progress)) { return result; } *next_time = now + progress->update_callback_period; if (progress->update_callback != NULL) { result = (* progress->update_callback) (progress->progress_info, progress->async_job_data); } return result; } static int call_progress_often (GnomeVFSProgressCallbackState *progress, GnomeVFSXferPhase phase) { return call_progress_often_internal (progress, phase, &progress->next_update_callback_time); } static int call_progress_with_uris_often (GnomeVFSProgressCallbackState *progress, const GnomeVFSURI *source_uri, const GnomeVFSURI *dest_uri, GnomeVFSXferPhase phase) { progress_set_source_target_uris (progress, source_uri, dest_uri); return call_progress_often_internal (progress, phase, &progress->next_text_update_callback_time); } /* Handle an error condition according to `error_mode'. Returns `TRUE' if the * operation should be retried, `FALSE' otherwise. `*result' will be set to * the result value we want to be returned to the caller of the xfer * function. */ static gboolean handle_error (GnomeVFSResult *result, GnomeVFSProgressCallbackState *progress, GnomeVFSXferErrorMode *error_mode, gboolean *skip) { GnomeVFSXferErrorAction action; *skip = FALSE; switch (*error_mode) { case GNOME_VFS_XFER_ERROR_MODE_ABORT: return FALSE; case GNOME_VFS_XFER_ERROR_MODE_QUERY: progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR; progress->progress_info->vfs_status = *result; action = call_progress_with_current_names (progress, progress->progress_info->phase); progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; switch (action) { case GNOME_VFS_XFER_ERROR_ACTION_RETRY: return TRUE; case GNOME_VFS_XFER_ERROR_ACTION_ABORT: *result = GNOME_VFS_ERROR_INTERRUPTED; return FALSE; case GNOME_VFS_XFER_ERROR_ACTION_SKIP: *result = GNOME_VFS_OK; *skip = TRUE; return FALSE; } break; } *skip = FALSE; return FALSE; } /* This is conceptually similiar to the previous `handle_error()' function, but * handles the overwrite case. */ static gboolean handle_overwrite (GnomeVFSResult *result, GnomeVFSProgressCallbackState *progress, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, gboolean *replace, gboolean *skip) { GnomeVFSXferOverwriteAction action; switch (*overwrite_mode) { case GNOME_VFS_XFER_OVERWRITE_MODE_ABORT: *replace = FALSE; *result = GNOME_VFS_ERROR_FILE_EXISTS; *skip = FALSE; return FALSE; case GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE: *replace = TRUE; *skip = FALSE; return TRUE; case GNOME_VFS_XFER_OVERWRITE_MODE_SKIP: *replace = FALSE; *skip = TRUE; return FALSE; case GNOME_VFS_XFER_OVERWRITE_MODE_QUERY: progress->progress_info->vfs_status = *result; progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE; action = call_progress_with_current_names (progress, progress->progress_info->phase); progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; switch (action) { case GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT: *replace = FALSE; *result = GNOME_VFS_ERROR_FILE_EXISTS; *skip = FALSE; return FALSE; case GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE: *replace = TRUE; *skip = FALSE; return TRUE; case GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL: *replace = TRUE; *overwrite_mode = GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE; *skip = FALSE; return TRUE; case GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP: *replace = FALSE; *skip = TRUE; return FALSE; case GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL: *replace = FALSE; *skip = TRUE; *overwrite_mode = GNOME_VFS_XFER_OVERWRITE_MODE_SKIP; return FALSE; } } *replace = FALSE; *skip = FALSE; return FALSE; } static GnomeVFSResult remove_file (GnomeVFSURI *uri, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, gboolean *skip) { GnomeVFSResult result; gboolean retry; progress->progress_info->file_index++; do { retry = FALSE; result = gnome_vfs_unlink_from_uri (uri); if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, skip); } else { /* add some small size for each deleted item because delete overhead * does not depend on file/directory size */ progress->progress_info->total_bytes_copied += DEFAULT_SIZE_OVERHEAD; if (call_progress_with_uris_often (progress, uri, NULL, GNOME_VFS_XFER_PHASE_DELETESOURCE) == GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) { result = GNOME_VFS_ERROR_INTERRUPTED; break; } } } while (retry); return result; } static GnomeVFSResult empty_directory (GnomeVFSURI *uri, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, gboolean *skip) { GnomeVFSResult result; GnomeVFSDirectoryHandle *directory_handle; gboolean retry; *skip = FALSE; do { result = gnome_vfs_directory_open_from_uri (&directory_handle, uri, GNOME_VFS_FILE_INFO_DEFAULT); retry = FALSE; if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, skip); } } while (retry); if (result != GNOME_VFS_OK || *skip) { return result; } for (;;) { GnomeVFSFileInfo *info; GnomeVFSURI *item_uri; item_uri = NULL; info = gnome_vfs_file_info_new (); result = gnome_vfs_directory_read_next (directory_handle, info); if (result != GNOME_VFS_OK) { gnome_vfs_file_info_unref (info); break; } /* Skip "." and "..". */ if (strcmp (info->name, ".") != 0 && strcmp (info->name, "..") != 0) { item_uri = gnome_vfs_uri_append_file_name (uri, info->name); progress_set_source_target_uris (progress, item_uri, NULL); if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { result = remove_directory (item_uri, TRUE, progress, xfer_options, error_mode, skip); } else { result = remove_file (item_uri, progress, xfer_options, error_mode, skip); } } gnome_vfs_file_info_unref (info); if (item_uri != NULL) { gnome_vfs_uri_unref (item_uri); } if (result != GNOME_VFS_OK) { break; } } gnome_vfs_directory_close (directory_handle); if (result == GNOME_VFS_ERROR_EOF) { result = GNOME_VFS_OK; } return result; } typedef struct { const GnomeVFSURI *base_uri; GList *uri_list; } PrependOneURIParams; static gboolean PrependOneURIToList (const gchar *rel_path, GnomeVFSFileInfo *info, gboolean recursing_will_loop, gpointer cast_to_params, gboolean *recurse) { PrependOneURIParams *params; params = (PrependOneURIParams *)cast_to_params; params->uri_list = g_list_prepend (params->uri_list, gnome_vfs_uri_append_path ( params->base_uri, rel_path)); if (recursing_will_loop) { return FALSE; } *recurse = TRUE; return TRUE; } static GnomeVFSResult non_recursive_empty_directory (GnomeVFSURI *directory_uri, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, gboolean *skip) { /* Used as a fallback when we run out of file descriptors during * a deep recursive deletion. * We instead compile a flat list of URIs, doing a recursion that does not * keep directories open. */ GList *uri_list; GList *p; GnomeVFSURI *uri; GnomeVFSResult result; GnomeVFSFileInfo *info; PrependOneURIParams visit_params; /* Build up the list so that deep items appear before their parents * so that we can delete directories, children first. */ visit_params.base_uri = directory_uri; visit_params.uri_list = NULL; result = gnome_vfs_directory_visit_uri (directory_uri, GNOME_VFS_FILE_INFO_DEFAULT, GNOME_VFS_DIRECTORY_VISIT_SAMEFS | GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK, PrependOneURIToList, &visit_params); uri_list = visit_params.uri_list; if (result == GNOME_VFS_OK) { for (p = uri_list; p != NULL; p = p->next) { uri = (GnomeVFSURI *)p->data; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (uri, info, GNOME_VFS_FILE_INFO_DEFAULT); progress_set_source_target_uris (progress, uri, NULL); if (result == GNOME_VFS_OK) { if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { result = remove_directory (uri, FALSE, progress, xfer_options, error_mode, skip); } else { result = remove_file (uri, progress, xfer_options, error_mode, skip); } } gnome_vfs_file_info_unref (info); } } gnome_vfs_uri_list_free (uri_list); return result; } static GnomeVFSResult remove_directory (GnomeVFSURI *uri, gboolean recursive, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, gboolean *skip) { GnomeVFSResult result; gboolean retry; result = GNOME_VFS_OK; if (recursive) { result = empty_directory (uri, progress, xfer_options, error_mode, skip); if (result == GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES) { result = non_recursive_empty_directory (uri, progress, xfer_options, error_mode, skip); } } if (result == GNOME_VFS_ERROR_EOF) { result = GNOME_VFS_OK; } if (result == GNOME_VFS_OK) { progress->progress_info->file_index++; do { retry = FALSE; result = gnome_vfs_remove_directory_from_uri (uri); if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, skip); } else { /* add some small size for each deleted item */ progress->progress_info->total_bytes_copied += DEFAULT_SIZE_OVERHEAD; if (call_progress_with_uris_often (progress, uri, NULL, GNOME_VFS_XFER_PHASE_DELETESOURCE) == GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) { result = GNOME_VFS_ERROR_INTERRUPTED; break; } } } while (retry); } return result; } /* iterates the list of names in a given directory, applies @callback on each, * optionally recurses into directories */ static GnomeVFSResult gnome_vfs_visit_list (const GList *name_uri_list, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, gboolean recursive, GnomeVFSDirectoryVisitFunc callback, gpointer data) { GnomeVFSResult result; const GList *p; GnomeVFSURI *uri; GnomeVFSFileInfo *info; gboolean tmp_recurse; result = GNOME_VFS_OK; /* go through our list of items */ for (p = name_uri_list; p != NULL; p = p->next) { /* get the URI and VFSFileInfo for each */ uri = (GnomeVFSURI *)p->data; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (uri, info, info_options); if (result == GNOME_VFS_OK) { tmp_recurse = TRUE; /* call our callback on each item*/ if (!callback (gnome_vfs_uri_get_path (uri), info, FALSE, data, &tmp_recurse)) { result = GNOME_VFS_ERROR_INTERRUPTED; } if (result == GNOME_VFS_OK && recursive && info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { /* let gnome_vfs_directory_visit_uri call our callback * recursively */ result = gnome_vfs_directory_visit_uri (uri, info_options, visit_options, callback, data); } } gnome_vfs_file_info_unref (info); if (result != GNOME_VFS_OK) { break; } } return result; } typedef struct { GnomeVFSProgressCallbackState *progress; GnomeVFSResult result; } CountEachFileSizeParams; /* iteratee for count_items_and_size */ static gboolean count_each_file_size_one (const gchar *rel_path, GnomeVFSFileInfo *info, gboolean recursing_will_loop, gpointer data, gboolean *recurse) { CountEachFileSizeParams *params; params = (CountEachFileSizeParams *)data; if (call_progress_often (params->progress, params->progress->progress_info->phase) == 0) { /* progress callback requested to stop */ params->result = GNOME_VFS_ERROR_INTERRUPTED; *recurse = FALSE; return FALSE; } /* keep track of the item we are counting so we can correctly report errors */ progress_set_source_target (params->progress, rel_path, NULL); /* count each file, folder, symlink */ params->progress->progress_info->files_total++; if (info->type == GNOME_VFS_FILE_TYPE_REGULAR) { /* add each file size */ params->progress->progress_info->bytes_total += info->size + DEFAULT_SIZE_OVERHEAD; } else if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { /* add some small size for each directory */ params->progress->progress_info->bytes_total += DEFAULT_SIZE_OVERHEAD; } /* watch out for infinite recursion*/ if (recursing_will_loop) { params->result = GNOME_VFS_ERROR_LOOP; return FALSE; } *recurse = TRUE; return TRUE; } static GnomeVFSResult list_add_items_and_size (const GList *name_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSProgressCallbackState *progress, gboolean recurse) { /* * FIXME bugzilla.eazel.com 1200: * Deal with errors here, respond to skip by pulling items from the name list */ GnomeVFSFileInfoOptions info_options; GnomeVFSDirectoryVisitOptions visit_options; CountEachFileSizeParams each_params; /* set up the params for recursion */ visit_options = GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK; if (xfer_options & GNOME_VFS_XFER_SAMEFS) visit_options |= GNOME_VFS_DIRECTORY_VISIT_SAMEFS; each_params.progress = progress; each_params.result = GNOME_VFS_OK; info_options = GNOME_VFS_FILE_INFO_DEFAULT; if (xfer_options & GNOME_VFS_XFER_FOLLOW_LINKS) { info_options |= GNOME_VFS_FILE_INFO_FOLLOW_LINKS; } return gnome_vfs_visit_list (name_uri_list, info_options, visit_options, recurse, count_each_file_size_one, &each_params); } /* calculate the number of items and their total size; used as a preflight * before the transfer operation starts */ static GnomeVFSResult count_items_and_size (const GList *name_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSProgressCallbackState *progress, gboolean move, gboolean link) { /* initialize the results */ progress->progress_info->files_total = 0; progress->progress_info->bytes_total = 0; return list_add_items_and_size (name_uri_list, xfer_options, progress, !link && !move && (xfer_options & GNOME_VFS_XFER_RECURSIVE) != 0); } /* calculate the number of items and their total size; used as a preflight * before the transfer operation starts */ static GnomeVFSResult directory_add_items_and_size (GnomeVFSURI *dir_uri, GnomeVFSXferOptions xfer_options, GnomeVFSProgressCallbackState *progress) { GnomeVFSFileInfoOptions info_options; GnomeVFSDirectoryVisitOptions visit_options; CountEachFileSizeParams each_params; /* set up the params for recursion */ visit_options = GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK; if (xfer_options & GNOME_VFS_XFER_SAMEFS) visit_options |= GNOME_VFS_DIRECTORY_VISIT_SAMEFS; each_params.progress = progress; each_params.result = GNOME_VFS_OK; info_options = GNOME_VFS_FILE_INFO_DEFAULT; if (xfer_options & GNOME_VFS_XFER_FOLLOW_LINKS) { info_options |= GNOME_VFS_FILE_INFO_FOLLOW_LINKS; } return gnome_vfs_directory_visit_uri (dir_uri, info_options, visit_options, count_each_file_size_one, &each_params); } /* Checks to see if any part of the source pathname of a move * is inside the target. If it is we can't remove the target * and then move the source to it since we would then remove * the source before we moved it. */ static gboolean move_source_is_in_target (GnomeVFSURI *source, GnomeVFSURI *target) { GnomeVFSURI *parent, *tmp; gboolean res; parent = gnome_vfs_uri_ref (source); res = FALSE; while (parent != NULL) { if (_gnome_vfs_uri_is_in_subdir (parent, target)) { res = TRUE; break; } tmp = gnome_vfs_uri_get_parent (parent); gnome_vfs_uri_unref (parent); parent = tmp; } if (parent != NULL) { gnome_vfs_uri_unref (parent); } return res; } typedef struct { GnomeVFSURI *source_uri; GnomeVFSURI *target_uri; GnomeVFSXferOptions xfer_options; GnomeVFSXferErrorMode *error_mode; GnomeVFSProgressCallbackState *progress; GnomeVFSResult result; } HandleMergedNameConflictsParams; static gboolean handle_merged_name_conflict_visit (const gchar *rel_path, GnomeVFSFileInfo *info, gboolean recursing_will_loop, gpointer data, gboolean *recurse) { HandleMergedNameConflictsParams *params; GnomeVFSURI *source_uri; GnomeVFSURI *target_uri; GnomeVFSFileInfo *source_info; GnomeVFSFileInfo *target_info; GnomeVFSResult result; gboolean skip; params = data; skip = FALSE; result = GNOME_VFS_OK; target_info = gnome_vfs_file_info_new (); target_uri = gnome_vfs_uri_append_path (params->target_uri, rel_path); if (gnome_vfs_get_file_info_uri (target_uri, target_info, GNOME_VFS_FILE_INFO_DEFAULT) == GNOME_VFS_OK) { source_info = gnome_vfs_file_info_new (); source_uri = gnome_vfs_uri_append_path (params->source_uri, rel_path); if (gnome_vfs_get_file_info_uri (source_uri, source_info, GNOME_VFS_FILE_INFO_DEFAULT) == GNOME_VFS_OK) { if (target_info->type != GNOME_VFS_FILE_TYPE_DIRECTORY || source_info->type != GNOME_VFS_FILE_TYPE_DIRECTORY) { /* Both not directories, get rid of the conflicting target file */ /* FIXME bugzilla.eazel.com 1207: * move items to Trash here */ if (target_info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { if (move_source_is_in_target (source_uri, target_uri)) { /* Would like a better error here */ result = GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY; } else { result = remove_directory (target_uri, TRUE, params->progress, params->xfer_options, params->error_mode, &skip); } } else { result = remove_file (target_uri, params->progress, params->xfer_options, params->error_mode, &skip); } } } gnome_vfs_file_info_unref (source_info); gnome_vfs_uri_unref (source_uri); } gnome_vfs_file_info_unref (target_info); gnome_vfs_uri_unref (target_uri); *recurse = !recursing_will_loop; params->result = result; return result == GNOME_VFS_OK; } static GnomeVFSResult handle_merged_directory_name_conflicts (GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSProgressCallbackState *progress, GnomeVFSURI *source_uri, GnomeVFSURI *target_uri) { GnomeVFSFileInfoOptions info_options; GnomeVFSDirectoryVisitOptions visit_options; HandleMergedNameConflictsParams params; params.source_uri = source_uri; params.target_uri = target_uri; params.xfer_options = xfer_options; params.error_mode = error_mode; params.progress = progress; /* set up the params for recursion */ visit_options = GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK; if (xfer_options & GNOME_VFS_XFER_SAMEFS) visit_options |= GNOME_VFS_DIRECTORY_VISIT_SAMEFS; info_options = GNOME_VFS_FILE_INFO_DEFAULT; if (xfer_options & GNOME_VFS_XFER_FOLLOW_LINKS) { info_options |= GNOME_VFS_FILE_INFO_FOLLOW_LINKS; } params.result = GNOME_VFS_OK; gnome_vfs_directory_visit_uri (source_uri, GNOME_VFS_FILE_INFO_DEFAULT, visit_options, handle_merged_name_conflict_visit, ¶ms); return params.result; } /* Compares the list of files about to be created by a transfer with * any possible existing files with conflicting names in the target directory. * Handles conflicts, optionaly removing the conflicting file/directory */ static GnomeVFSResult handle_name_conflicts (GList **source_uri_list, GList **target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, GnomeVFSProgressCallbackState *progress, gboolean move, gboolean link, GList **merge_source_uri_list, GList **merge_target_uri_list) { GnomeVFSResult result; GList *source_item; GList *target_item; GnomeVFSFileInfo *target_info; GnomeVFSFileInfo *source_info; GList *source_item_to_remove; GList *target_item_to_remove; int conflict_count; /* values are 0, 1, many */ result = GNOME_VFS_OK; conflict_count = 0; /* Go through the list of names, find out if there is 0, 1 or more conflicts. */ for (target_item = *target_uri_list; target_item != NULL; target_item = target_item->next) { if (gnome_vfs_uri_exists ((GnomeVFSURI *)target_item->data)) { conflict_count++; if (conflict_count > 1) { break; } } } if (conflict_count == 0) { /* No conflicts, we are done. */ return GNOME_VFS_OK; } /* Pass in the conflict count so that we can decide to present the Replace All * for multiple conflicts. */ progress->progress_info->duplicate_count = conflict_count; target_info = gnome_vfs_file_info_new (); /* Go through the list of names again, present overwrite alerts for each. */ for (target_item = *target_uri_list, source_item = *source_uri_list; target_item != NULL;) { gboolean replace; gboolean skip; gboolean is_move_to_self; GnomeVFSURI *uri, *source_uri; gboolean must_copy; must_copy = FALSE; skip = FALSE; source_uri = (GnomeVFSURI *)source_item->data; uri = (GnomeVFSURI *)target_item->data; is_move_to_self = (xfer_options & GNOME_VFS_XFER_REMOVESOURCE) != 0 && gnome_vfs_uri_equal (source_uri, uri); if (!is_move_to_self && gnome_vfs_get_file_info_uri (uri, target_info, GNOME_VFS_FILE_INFO_DEFAULT) == GNOME_VFS_OK) { progress_set_source_target_uris (progress, source_uri, uri); /* Skip if we are trying to copy the file to itself */ if (gnome_vfs_uri_equal (uri, source_uri)) { replace = FALSE; skip = TRUE; } else { /* no error getting info -- file exists, ask what to do */ replace = handle_overwrite (&result, progress, error_mode, overwrite_mode, &replace, &skip); } /* FIXME bugzilla.eazel.com 1207: * move items to Trash here */ /* get rid of the conflicting file */ if (replace) { progress_set_source_target_uris (progress, uri, NULL); if (target_info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { if (move_source_is_in_target (source_uri, uri)) { /* Would like a better error here */ result = GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY; } else { source_info = gnome_vfs_file_info_new (); if (!link && gnome_vfs_get_file_info_uri (source_uri, source_info, GNOME_VFS_FILE_INFO_DEFAULT) == GNOME_VFS_OK && source_info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { if (move || (xfer_options & GNOME_VFS_XFER_RECURSIVE)) { result = handle_merged_directory_name_conflicts (xfer_options, error_mode, progress, source_uri, uri); } must_copy = TRUE; } else { result = remove_directory (uri, TRUE, progress, xfer_options, error_mode, &skip); } gnome_vfs_file_info_unref (source_info); } } else { result = remove_file (uri, progress, xfer_options, error_mode, &skip); } } gnome_vfs_file_info_clear (target_info); } if (result != GNOME_VFS_OK) { break; } if (skip) { /* skipping a file, remove it's name from the source and target name * lists. */ source_item_to_remove = source_item; target_item_to_remove = target_item; source_item = source_item->next; target_item = target_item->next; gnome_vfs_uri_unref ((GnomeVFSURI *)source_item_to_remove->data); gnome_vfs_uri_unref ((GnomeVFSURI *)target_item_to_remove->data); *source_uri_list = g_list_remove_link (*source_uri_list, source_item_to_remove); *target_uri_list = g_list_remove_link (*target_uri_list, target_item_to_remove); continue; } if (move && must_copy) { /* We're moving, but there was a conflict, so move this over to the list of items that has to be copied */ source_item_to_remove = source_item; target_item_to_remove = target_item; source_item = source_item->next; target_item = target_item->next; *merge_source_uri_list = g_list_prepend (*merge_source_uri_list, (GnomeVFSURI *)source_item_to_remove->data); *merge_target_uri_list = g_list_prepend (*merge_target_uri_list, (GnomeVFSURI *)target_item_to_remove->data); *source_uri_list = g_list_remove_link (*source_uri_list, source_item_to_remove); *target_uri_list = g_list_remove_link (*target_uri_list, target_item_to_remove); continue; } target_item = target_item->next; source_item = source_item->next; } gnome_vfs_file_info_unref (target_info); return result; } /* Create new directory. If GNOME_VFS_XFER_USE_UNIQUE_NAMES is set, * return with an error if a name conflict occurs, else * handle the overwrite. * On success, opens the new directory */ static GnomeVFSResult create_directory (GnomeVFSURI *dir_uri, GnomeVFSDirectoryHandle **return_handle, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, GnomeVFSProgressCallbackState *progress, gboolean *skip) { GnomeVFSResult result; gboolean retry, info_result; GnomeVFSFileInfo *info; *skip = FALSE; do { retry = FALSE; result = gnome_vfs_make_directory_for_uri (dir_uri, 0777); if (result == GNOME_VFS_ERROR_FILE_EXISTS) { gboolean force_replace; if ((xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) != 0) { /* just let the caller pass a unique name*/ return result; } info = gnome_vfs_file_info_new (); info_result = gnome_vfs_get_file_info_uri (dir_uri, info, GNOME_VFS_FILE_INFO_DEFAULT); if (info_result == GNOME_VFS_OK && info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { /* Already got a directory here, its fine */ result = GNOME_VFS_OK; } gnome_vfs_file_info_unref (info); if (result != GNOME_VFS_OK) { retry = handle_overwrite (&result, progress, error_mode, overwrite_mode, &force_replace, skip); if (*skip) { return GNOME_VFS_OK; } if (force_replace) { result = remove_file (dir_uri, progress, xfer_options, error_mode, skip); } else { result = GNOME_VFS_OK; } } } if (result == GNOME_VFS_OK) { return gnome_vfs_directory_open_from_uri (return_handle, dir_uri, GNOME_VFS_FILE_INFO_DEFAULT); } /* handle the error case */ retry = handle_error (&result, progress, error_mode, skip); if (*skip) { return GNOME_VFS_OK; } } while (retry); return result; } /* Copy the data of a single file. */ static GnomeVFSResult copy_file_data (GnomeVFSHandle *target_handle, GnomeVFSHandle *source_handle, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, guint source_block_size, guint target_block_size, gboolean *skip) { GnomeVFSResult result; gpointer buffer; const char *write_buffer; GnomeVFSFileSize total_bytes_read; GnomeVFSFileSize last_cache_drop_point; gboolean forget_cache; guint block_size; *skip = FALSE; if (call_progress_often (progress, GNOME_VFS_XFER_PHASE_COPYING) == 0) { return GNOME_VFS_ERROR_INTERRUPTED; } block_size = MAX (source_block_size, target_block_size); buffer = g_malloc (block_size); total_bytes_read = 0; last_cache_drop_point = 0; /* Enable streaming if the total size is large */ forget_cache = progress->progress_info->bytes_total >= DROP_CACHE_SIZE_LIMIT; do { GnomeVFSFileSize bytes_read; GnomeVFSFileSize bytes_to_write; GnomeVFSFileSize bytes_written; gboolean retry; progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; progress->progress_info->vfs_status = GNOME_VFS_OK; progress->progress_info->phase = GNOME_VFS_XFER_PHASE_READSOURCE; do { retry = FALSE; result = gnome_vfs_read (source_handle, buffer, block_size, &bytes_read); if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) retry = handle_error (&result, progress, error_mode, skip); } while (retry); if (result != GNOME_VFS_OK || bytes_read == 0 || *skip) { break; } total_bytes_read += bytes_read; bytes_to_write = bytes_read; progress->progress_info->phase = GNOME_VFS_XFER_PHASE_WRITETARGET; write_buffer = buffer; do { retry = FALSE; result = gnome_vfs_write (target_handle, write_buffer, bytes_to_write, &bytes_written); if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, skip); } bytes_to_write -= bytes_written; write_buffer += bytes_written; } while ((result == GNOME_VFS_OK && bytes_to_write > 0) || retry); if (forget_cache && bytes_to_write == 0 && total_bytes_read - last_cache_drop_point > DROP_CACHE_BATCH_SIZE) { gnome_vfs_forget_cache (source_handle, last_cache_drop_point, total_bytes_read - last_cache_drop_point); gnome_vfs_forget_cache (target_handle, last_cache_drop_point, total_bytes_read - last_cache_drop_point); last_cache_drop_point = total_bytes_read; } progress->progress_info->phase = GNOME_VFS_XFER_PHASE_COPYING; progress->progress_info->bytes_copied += bytes_read; progress->progress_info->total_bytes_copied += bytes_read; if (call_progress_often (progress, GNOME_VFS_XFER_PHASE_COPYING) == 0) { g_free (buffer); return GNOME_VFS_ERROR_INTERRUPTED; } if (*skip) { break; } } while (result == GNOME_VFS_OK); if (result == GNOME_VFS_ERROR_EOF) { result = GNOME_VFS_OK; } if (result == GNOME_VFS_OK) { /* tiny (0 - sized) files still present non-zero overhead during a copy, make sure * we count at least a default amount for each file */ progress->progress_info->total_bytes_copied += DEFAULT_SIZE_OVERHEAD; call_progress_often (progress, GNOME_VFS_XFER_PHASE_COPYING); } g_free (buffer); return result; } static GnomeVFSResult xfer_open_source (GnomeVFSHandle **source_handle, GnomeVFSURI *source_uri, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, gboolean *skip) { GnomeVFSResult result; gboolean retry; call_progress_often (progress, GNOME_VFS_XFER_PHASE_OPENSOURCE); *skip = FALSE; do { retry = FALSE; result = gnome_vfs_open_uri (source_handle, source_uri, GNOME_VFS_OPEN_READ); if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, skip); *source_handle = NULL; } } while (retry); /* if we didn't get a file size earlier, * try to get one from the handle (#330498) */ if (*source_handle != NULL && progress->progress_info->file_size == 0) { GnomeVFSFileInfo *info; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_from_handle (*source_handle, info, GNOME_VFS_FILE_INFO_DEFAULT); if (result == GNOME_VFS_OK && info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) { progress->progress_info->file_size = info->size; } gnome_vfs_file_info_unref (info); } return result; } static GnomeVFSResult xfer_create_target (GnomeVFSHandle **target_handle, GnomeVFSURI *target_uri, GnomeVFSProgressCallbackState *progress, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, gboolean *skip) { GnomeVFSResult result; gboolean retry; gboolean exclusive; exclusive = (*overwrite_mode != GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE); *skip = FALSE; do { retry = FALSE; result = gnome_vfs_create_uri (target_handle, target_uri, GNOME_VFS_OPEN_WRITE, exclusive, 0666); if (result == GNOME_VFS_ERROR_FILE_EXISTS) { gboolean replace; retry = handle_overwrite (&result, progress, error_mode, overwrite_mode, &replace, skip); if (replace) { exclusive = FALSE; } } else if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, skip); } } while (retry); return result; } static GnomeVFSResult copy_symlink (GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, const char *link_name, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, GnomeVFSProgressCallbackState *progress, gboolean *skip) { GnomeVFSResult result; gboolean retry; gboolean tried_remove, remove; tried_remove = FALSE; *skip = FALSE; do { retry = FALSE; result = gnome_vfs_create_symbolic_link (target_uri, link_name); if (result == GNOME_VFS_ERROR_FILE_EXISTS) { remove = FALSE; if (*overwrite_mode == GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE && !tried_remove) { remove = TRUE; tried_remove = TRUE; } else { retry = handle_overwrite (&result, progress, error_mode, overwrite_mode, &remove, skip); } if (remove) { gnome_vfs_unlink_from_uri (target_uri); } } else if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, skip); } else if (result == GNOME_VFS_OK && call_progress_with_uris_often (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_OPENTARGET) == 0) { result = GNOME_VFS_ERROR_INTERRUPTED; } } while (retry); if (*skip) { return GNOME_VFS_OK; } return result; } static GnomeVFSResult copy_file (GnomeVFSFileInfo *info, GnomeVFSFileInfo *target_dir_info, GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, GnomeVFSProgressCallbackState *progress, gboolean *skip) { GnomeVFSResult close_result, result; GnomeVFSHandle *source_handle, *target_handle; progress->progress_info->phase = GNOME_VFS_XFER_PHASE_OPENSOURCE; progress->progress_info->bytes_copied = 0; progress->progress_info->file_size = info->size; progress_set_source_target_uris (progress, source_uri, target_uri); result = xfer_open_source (&source_handle, source_uri, progress, xfer_options, error_mode, skip); if (*skip) { return GNOME_VFS_OK; } if (result != GNOME_VFS_OK) { return result; } progress->progress_info->phase = GNOME_VFS_XFER_PHASE_OPENTARGET; result = xfer_create_target (&target_handle, target_uri, progress, xfer_options, error_mode, overwrite_mode, skip); if (*skip) { gnome_vfs_close (source_handle); return GNOME_VFS_OK; } if (result != GNOME_VFS_OK) { gnome_vfs_close (source_handle); return result; } if (call_progress_with_uris_often (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_OPENTARGET) != GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) { result = copy_file_data (target_handle, source_handle, progress, xfer_options, error_mode, /* use an arbitrary default block size of 8192 * if one isn't available for this file system */ (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE && info->io_block_size > 0) ? info->io_block_size : 8192, (target_dir_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE && target_dir_info->io_block_size > 0) ? target_dir_info->io_block_size : 8192, skip); } if (result == GNOME_VFS_OK && call_progress_often (progress, GNOME_VFS_XFER_PHASE_CLOSETARGET) == 0) { result = GNOME_VFS_ERROR_INTERRUPTED; } close_result = gnome_vfs_close (source_handle); if (result == GNOME_VFS_OK && close_result != GNOME_VFS_OK) { handle_error (&close_result, progress, error_mode, skip); return close_result; } close_result = gnome_vfs_close (target_handle); if (result == GNOME_VFS_OK && close_result != GNOME_VFS_OK) { handle_error (&close_result, progress, error_mode, skip); return close_result; } if (result == GNOME_VFS_OK) { /* ignore errors while setting file info attributes at this point */ if (!(xfer_options & GNOME_VFS_XFER_TARGET_DEFAULT_PERMS)) { /* FIXME the modules should ignore setting of permissions if * "valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS" is clear * for now, make sure permissions aren't set to 000 */ if ((info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS) != 0) { /* Call this separately from the time one, since one of them may fail, making the other not run. */ gnome_vfs_set_file_info_uri (target_uri, info, GNOME_VFS_SET_FILE_INFO_OWNER | GNOME_VFS_SET_FILE_INFO_PERMISSIONS); } } /* Call this last so nothing else changes the times */ gnome_vfs_set_file_info_uri (target_uri, info, GNOME_VFS_SET_FILE_INFO_TIME); } if (*skip) { return GNOME_VFS_OK; } return result; } static GnomeVFSResult copy_directory (GnomeVFSFileInfo *source_file_info, GnomeVFSURI *source_dir_uri, GnomeVFSURI *target_dir_uri, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, GnomeVFSProgressCallbackState *progress, gboolean *skip) { GnomeVFSResult result; GnomeVFSDirectoryHandle *source_directory_handle; GnomeVFSDirectoryHandle *dest_directory_handle; GnomeVFSFileInfo *target_dir_info; source_directory_handle = NULL; dest_directory_handle = NULL; target_dir_info = NULL; result = gnome_vfs_directory_open_from_uri (&source_directory_handle, source_dir_uri, GNOME_VFS_FILE_INFO_DEFAULT); if (result != GNOME_VFS_OK) { return result; } progress->progress_info->bytes_copied = 0; if (call_progress_with_uris_often (progress, source_dir_uri, target_dir_uri, GNOME_VFS_XFER_PHASE_COPYING) == GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) { return GNOME_VFS_ERROR_INTERRUPTED; } result = create_directory (target_dir_uri, &dest_directory_handle, xfer_options, error_mode, overwrite_mode, progress, skip); if (*skip) { gnome_vfs_directory_close (source_directory_handle); return GNOME_VFS_OK; } if (result != GNOME_VFS_OK) { gnome_vfs_directory_close (source_directory_handle); return result; } target_dir_info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (target_dir_uri, target_dir_info, GNOME_VFS_FILE_INFO_DEFAULT); if (result != GNOME_VFS_OK) { gnome_vfs_file_info_unref (target_dir_info); target_dir_info = NULL; } if (call_progress_with_uris_often (progress, source_dir_uri, target_dir_uri, GNOME_VFS_XFER_PHASE_OPENTARGET) != 0) { progress->progress_info->total_bytes_copied += DEFAULT_SIZE_OVERHEAD; progress->progress_info->top_level_item = FALSE; /* We do not deal with symlink loops here. That's OK * because we don't follow symlinks, unless the user * explicitly requests this with * GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE. */ do { GnomeVFSURI *source_uri; GnomeVFSURI *dest_uri; GnomeVFSFileInfo *info; gboolean skip_child; source_uri = NULL; dest_uri = NULL; info = gnome_vfs_file_info_new (); result = gnome_vfs_directory_read_next (source_directory_handle, info); if (result != GNOME_VFS_OK) { gnome_vfs_file_info_unref (info); break; } if (target_dir_info && GNOME_VFS_FILE_INFO_SGID(target_dir_info)) { info->gid = target_dir_info->gid; } /* Skip "." and "..". */ if (strcmp (info->name, ".") != 0 && strcmp (info->name, "..") != 0) { progress->progress_info->file_index++; source_uri = gnome_vfs_uri_append_file_name (source_dir_uri, info->name); dest_uri = gnome_vfs_uri_append_file_name (target_dir_uri, info->name); progress_set_source_target_uris (progress, source_uri, dest_uri); if (info->type == GNOME_VFS_FILE_TYPE_REGULAR) { result = copy_file (info, target_dir_info, source_uri, dest_uri, xfer_options, error_mode, overwrite_mode, progress, &skip_child); } else if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { result = copy_directory (info, source_uri, dest_uri, xfer_options, error_mode, overwrite_mode, progress, &skip_child); } else if (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) { if (xfer_options & GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE) { GnomeVFSFileInfo *symlink_target_info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (source_uri, symlink_target_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS); if (result == GNOME_VFS_OK) result = copy_file (symlink_target_info, target_dir_info, source_uri, dest_uri, xfer_options, error_mode, overwrite_mode, progress, &skip_child); gnome_vfs_file_info_unref (symlink_target_info); } else { result = copy_symlink (source_uri, dest_uri, info->symlink_name, error_mode, overwrite_mode, progress, &skip_child); } } /* We don't want to overwrite a previous skip with FALSE, so we only * set it if skip_child actually skiped. */ if (skip_child) *skip = TRUE; /* just ignore all the other special file system objects here */ } gnome_vfs_file_info_unref (info); if (dest_uri != NULL) { gnome_vfs_uri_unref (dest_uri); } if (source_uri != NULL) { gnome_vfs_uri_unref (source_uri); } } while (result == GNOME_VFS_OK); } if (result == GNOME_VFS_ERROR_EOF) { /* all is well, we just finished iterating the directory */ result = GNOME_VFS_OK; } gnome_vfs_directory_close (dest_directory_handle); gnome_vfs_directory_close (source_directory_handle); if (result == GNOME_VFS_OK) { GnomeVFSFileInfo *info; if (target_dir_info && GNOME_VFS_FILE_INFO_SGID (target_dir_info)) { info = gnome_vfs_file_info_dup (source_file_info); info->gid = target_dir_info->gid; } else { /* No need to dup the file info in this case */ gnome_vfs_file_info_ref (source_file_info); info = source_file_info; } if (!(xfer_options & GNOME_VFS_XFER_TARGET_DEFAULT_PERMS)) { /* FIXME the modules should ignore setting of permissions if * "valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS" is clear * for now, make sure permissions aren't set to 000 */ if ((info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS) != 0) { /* Call this separately from the time one, since one of them may fail, making the other not run. */ gnome_vfs_set_file_info_uri (target_dir_uri, info, GNOME_VFS_SET_FILE_INFO_OWNER | GNOME_VFS_SET_FILE_INFO_PERMISSIONS); } } /* Call this last so nothing else changes the times */ gnome_vfs_set_file_info_uri (target_dir_uri, info, GNOME_VFS_SET_FILE_INFO_TIME); gnome_vfs_file_info_unref (info); } if (target_dir_info) { gnome_vfs_file_info_unref (target_dir_info); } return result; } static GnomeVFSResult copy_items (const GList *source_uri_list, const GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSProgressCallbackState *progress, GList **p_source_uris_copied_list) { GnomeVFSResult result; const GList *source_item, *target_item; result = GNOME_VFS_OK; /* go through the list of names */ for (source_item = source_uri_list, target_item = target_uri_list; source_item != NULL;) { GnomeVFSURI *source_uri; GnomeVFSURI *target_uri; GnomeVFSURI *target_dir_uri; GnomeVFSFileInfo *info; gboolean skip; int count; int progress_result; progress->progress_info->file_index++; skip = FALSE; target_uri = NULL; source_uri = (GnomeVFSURI *)source_item->data; target_dir_uri = gnome_vfs_uri_get_parent ((GnomeVFSURI *)target_item->data); /* get source URI and file info */ info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (source_uri, info, GNOME_VFS_FILE_INFO_DEFAULT); g_free (progress->progress_info->duplicate_name); progress->progress_info->duplicate_name = gnome_vfs_uri_extract_short_path_name ((GnomeVFSURI *)target_item->data); if (result == GNOME_VFS_OK) { GnomeVFSFileInfo *target_dir_info; /* get target_dir URI and file info to take care of SGID */ target_dir_info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (target_dir_uri, target_dir_info, GNOME_VFS_FILE_INFO_DEFAULT); if (result == GNOME_VFS_OK && GNOME_VFS_FILE_INFO_SGID(target_dir_info)) { info->gid = target_dir_info->gid; } result = GNOME_VFS_OK; /* optionally keep trying until we hit a unique target name */ for (count = 1; ; count++) { GnomeVFSXferOverwriteMode overwrite_mode_abort; target_uri = gnome_vfs_uri_append_string (target_dir_uri, progress->progress_info->duplicate_name); progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; progress->progress_info->file_size = info->size; progress->progress_info->bytes_copied = 0; progress->progress_info->top_level_item = TRUE; if (call_progress_with_uris_often (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_COPYING) == 0) { result = GNOME_VFS_ERROR_INTERRUPTED; } /* If we're creating unique names, always abort on overwrite and * calculate a new name */ overwrite_mode_abort = overwrite_mode; if ((xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) != 0) { overwrite_mode_abort = GNOME_VFS_XFER_OVERWRITE_MODE_ABORT; } if (info->type == GNOME_VFS_FILE_TYPE_REGULAR) { result = copy_file (info, target_dir_info, source_uri, target_uri, xfer_options, error_mode, &overwrite_mode_abort, progress, &skip); } else if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { result = copy_directory (info, source_uri, target_uri, xfer_options, error_mode, &overwrite_mode_abort, progress, &skip); } else if (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) { result = copy_symlink (source_uri, target_uri, info->symlink_name, error_mode, &overwrite_mode_abort, progress, &skip); } /* just ignore all the other special file system objects here */ if (result == GNOME_VFS_OK && !skip) { /* Add to list of successfully copied files... */ *p_source_uris_copied_list = g_list_prepend (*p_source_uris_copied_list, source_uri); gnome_vfs_uri_ref (source_uri); } if (result != GNOME_VFS_ERROR_FILE_EXISTS) { /* whatever happened, it wasn't a name conflict */ gnome_vfs_uri_unref (target_uri); break; } if ((xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) == 0) { gnome_vfs_uri_unref (target_uri); break; } /* pass in the current target name, progress will update it to * a new unique name such as 'foo (copy)' or 'bar (copy 2)' */ g_free (progress->progress_info->duplicate_name); progress->progress_info->duplicate_name = gnome_vfs_uri_extract_short_path_name ((GnomeVFSURI *)target_item->data); progress->progress_info->duplicate_count = count; progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE; progress->progress_info->vfs_status = result; progress_result = call_progress_uri (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_COPYING); progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; gnome_vfs_uri_unref (target_uri); if (progress_result == GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) { break; } if (skip) { break; } /* try again with new uri */ } gnome_vfs_file_info_unref (target_dir_info); } gnome_vfs_file_info_unref (info); if (result != GNOME_VFS_OK) { break; } gnome_vfs_uri_unref (target_dir_uri); source_item = source_item->next; target_item = target_item->next; g_assert ((source_item != NULL) == (target_item != NULL)); } return result; } static GnomeVFSResult move_items (const GList *source_uri_list, const GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, GnomeVFSProgressCallbackState *progress) { GnomeVFSResult result; const GList *source_item, *target_item; result = GNOME_VFS_OK; /* go through the list of names */ for (source_item = source_uri_list, target_item = target_uri_list; source_item != NULL;) { GnomeVFSURI *source_uri; GnomeVFSURI *target_uri; GnomeVFSURI *target_dir_uri; gboolean retry; gboolean skip; int conflict_count; int progress_result; progress->progress_info->file_index++; source_uri = (GnomeVFSURI *)source_item->data; target_dir_uri = gnome_vfs_uri_get_parent ((GnomeVFSURI *)target_item->data); g_free (progress->progress_info->duplicate_name); progress->progress_info->duplicate_name = gnome_vfs_uri_extract_short_path_name ((GnomeVFSURI *)target_item->data); skip = FALSE; conflict_count = 1; do { retry = FALSE; target_uri = gnome_vfs_uri_append_string (target_dir_uri, progress->progress_info->duplicate_name); progress->progress_info->file_size = 0; progress->progress_info->bytes_copied = 0; progress_set_source_target_uris (progress, source_uri, target_uri); progress->progress_info->top_level_item = TRUE; /* no matter what the replace mode, just overwrite the destination * handle_name_conflicts took care of conflicting files */ result = gnome_vfs_move_uri (source_uri, target_uri, (xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) != 0 ? GNOME_VFS_XFER_OVERWRITE_MODE_ABORT : GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE); if (result == GNOME_VFS_ERROR_FILE_EXISTS) { /* deal with a name conflict -- ask the progress_callback for a better name */ g_free (progress->progress_info->duplicate_name); progress->progress_info->duplicate_name = gnome_vfs_uri_extract_short_path_name ((GnomeVFSURI *)target_item->data); progress->progress_info->duplicate_count = conflict_count; progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE; progress->progress_info->vfs_status = result; progress_result = call_progress_uri (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_COPYING); progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; gnome_vfs_uri_unref (target_uri); if (progress_result == GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) break; conflict_count++; retry = TRUE; continue; } if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, &skip); } if (result == GNOME_VFS_OK && !skip && call_progress_with_uris_often (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_MOVING) == 0) { result = GNOME_VFS_ERROR_INTERRUPTED; gnome_vfs_uri_unref (target_uri); break; } gnome_vfs_uri_unref (target_uri); } while (retry); gnome_vfs_uri_unref (target_dir_uri); if (result != GNOME_VFS_OK && !skip) break; source_item = source_item->next; target_item = target_item->next; g_assert ((source_item != NULL) == (target_item != NULL)); } return result; } static GnomeVFSResult link_items (const GList *source_uri_list, const GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode *error_mode, GnomeVFSXferOverwriteMode *overwrite_mode, GnomeVFSProgressCallbackState *progress) { GnomeVFSResult result; const GList *source_item, *target_item; GnomeVFSURI *source_uri; GnomeVFSURI *target_dir_uri; GnomeVFSURI *target_uri; gboolean retry; gboolean skip; int conflict_count; int progress_result; char *source_reference; result = GNOME_VFS_OK; /* go through the list of names, create a link to each item */ for (source_item = source_uri_list, target_item = target_uri_list; source_item != NULL;) { progress->progress_info->file_index++; source_uri = (GnomeVFSURI *)source_item->data; source_reference = gnome_vfs_uri_to_string (source_uri, GNOME_VFS_URI_HIDE_NONE); target_dir_uri = gnome_vfs_uri_get_parent ((GnomeVFSURI *)target_item->data); g_free (progress->progress_info->duplicate_name); progress->progress_info->duplicate_name = gnome_vfs_uri_extract_short_path_name ((GnomeVFSURI *)target_item->data); skip = FALSE; conflict_count = 1; do { retry = FALSE; target_uri = gnome_vfs_uri_append_string (target_dir_uri, progress->progress_info->duplicate_name); progress->progress_info->file_size = 0; progress->progress_info->bytes_copied = 0; progress->progress_info->top_level_item = TRUE; progress_set_source_target_uris (progress, source_uri, target_uri); /* no matter what the replace mode, just overwrite the destination * handle_name_conflicts took care of conflicting files */ result = gnome_vfs_create_symbolic_link (target_uri, source_reference); if (result == GNOME_VFS_ERROR_FILE_EXISTS) { /* deal with a name conflict -- ask the progress_callback for a better name */ g_free (progress->progress_info->duplicate_name); progress->progress_info->duplicate_name = gnome_vfs_uri_extract_short_path_name ((GnomeVFSURI *)target_item->data); progress->progress_info->duplicate_count = conflict_count; progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE; progress->progress_info->vfs_status = result; progress_result = call_progress_uri (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_COPYING); progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; gnome_vfs_uri_unref (target_uri); if (progress_result == GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) break; conflict_count++; retry = TRUE; continue; } if (result != GNOME_VFS_OK) { retry = handle_error (&result, progress, error_mode, &skip); } if (result == GNOME_VFS_OK && call_progress_with_uris_often (progress, source_uri, target_uri, GNOME_VFS_XFER_PHASE_OPENTARGET) == 0) { result = GNOME_VFS_ERROR_INTERRUPTED; gnome_vfs_uri_unref (target_uri); break; } gnome_vfs_uri_unref (target_uri); } while (retry); gnome_vfs_uri_unref (target_dir_uri); g_free (source_reference); if (result != GNOME_VFS_OK && !skip) break; source_item = source_item->next; target_item = target_item->next; g_assert ((source_item != NULL) == (target_item != NULL)); } return result; } static GnomeVFSResult gnome_vfs_xfer_empty_directories (const GList *trash_dir_uris, GnomeVFSXferErrorMode error_mode, GnomeVFSProgressCallbackState *progress) { GnomeVFSResult result; const GList *p; gboolean skip; result = GNOME_VFS_OK; /* initialize the results */ progress->progress_info->files_total = 0; progress->progress_info->bytes_total = 0; progress->progress_info->phase = GNOME_VFS_XFER_PHASE_COLLECTING; for (p = trash_dir_uris; p != NULL; p = p->next) { result = directory_add_items_and_size (p->data, GNOME_VFS_XFER_REMOVESOURCE | GNOME_VFS_XFER_RECURSIVE, progress); if (result == GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES) { /* out of file descriptors -- we will deal with that */ result = GNOME_VFS_OK; break; } /* set up a fake total size to represent the bulk of the operation * -- we'll subtract a proportional value for every deletion */ progress->progress_info->bytes_total = progress->progress_info->files_total * DEFAULT_SIZE_OVERHEAD; } call_progress (progress, GNOME_VFS_XFER_PHASE_READYTOGO); for (p = trash_dir_uris; p != NULL; p = p->next) { result = empty_directory ((GnomeVFSURI *)p->data, progress, GNOME_VFS_XFER_REMOVESOURCE | GNOME_VFS_XFER_RECURSIVE, &error_mode, &skip); if (result == GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES) { result = non_recursive_empty_directory ((GnomeVFSURI *)p->data, progress, GNOME_VFS_XFER_REMOVESOURCE | GNOME_VFS_XFER_RECURSIVE, &error_mode, &skip); } } return result; } static GnomeVFSResult gnome_vfs_xfer_delete_items_common (const GList *source_uri_list, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOptions xfer_options, GnomeVFSProgressCallbackState *progress) { GnomeVFSFileInfo *info; GnomeVFSResult result; GnomeVFSURI *uri; const GList *p; gboolean skip; result = GNOME_VFS_OK; for (p = source_uri_list; p != NULL; p = p->next) { skip = FALSE; /* get the URI and VFSFileInfo for each */ uri = p->data; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (uri, info, GNOME_VFS_FILE_INFO_DEFAULT); if (result != GNOME_VFS_OK) { gnome_vfs_file_info_unref (info); break; } progress_set_source_target_uris (progress, uri, NULL); if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { result = remove_directory (uri, TRUE, progress, xfer_options, &error_mode, &skip); } else { result = remove_file (uri, progress, xfer_options, &error_mode, &skip); } gnome_vfs_file_info_unref (info); } return result; } static GnomeVFSResult gnome_vfs_xfer_delete_items (const GList *source_uri_list, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOptions xfer_options, GnomeVFSProgressCallbackState *progress) { GnomeVFSResult result; /* initialize the results */ progress->progress_info->files_total = 0; progress->progress_info->bytes_total = 0; call_progress (progress, GNOME_VFS_XFER_PHASE_COLLECTING); result = count_items_and_size (source_uri_list, GNOME_VFS_XFER_REMOVESOURCE | GNOME_VFS_XFER_RECURSIVE, progress, FALSE, FALSE); /* When deleting, ignore the real file sizes, just count the same DEFAULT_SIZE_OVERHEAD * for each file. */ progress->progress_info->bytes_total = progress->progress_info->files_total * DEFAULT_SIZE_OVERHEAD; progress->progress_info->top_level_item = TRUE; if (result != GNOME_VFS_ERROR_INTERRUPTED) { call_progress (progress, GNOME_VFS_XFER_PHASE_READYTOGO); result = gnome_vfs_xfer_delete_items_common (source_uri_list, error_mode, xfer_options, progress); } return result; } static GnomeVFSResult gnome_vfs_new_directory_with_unique_name (const GnomeVFSURI *target_dir_uri, const char *name, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSProgressCallbackState *progress) { GnomeVFSResult result; GnomeVFSURI *target_uri; GnomeVFSDirectoryHandle *dest_directory_handle; gboolean dummy; int progress_result; int conflict_count; dest_directory_handle = NULL; progress->progress_info->top_level_item = TRUE; progress->progress_info->duplicate_name = g_strdup (name); for (conflict_count = 1; ; conflict_count++) { target_uri = gnome_vfs_uri_append_string (target_dir_uri, progress->progress_info->duplicate_name); result = create_directory (target_uri, &dest_directory_handle, GNOME_VFS_XFER_USE_UNIQUE_NAMES, &error_mode, &overwrite_mode, progress, &dummy); if (result != GNOME_VFS_ERROR_FILE_EXISTS && result != GNOME_VFS_ERROR_NAME_TOO_LONG) { break; } /* deal with a name conflict -- ask the progress_callback for a better name */ g_free (progress->progress_info->duplicate_name); progress->progress_info->duplicate_name = g_strdup (name); progress->progress_info->duplicate_count = conflict_count; progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE; progress->progress_info->vfs_status = result; progress_result = call_progress_uri (progress, NULL, target_uri, GNOME_VFS_XFER_PHASE_COPYING); progress->progress_info->status = GNOME_VFS_XFER_PROGRESS_STATUS_OK; if (progress_result == GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT) { break; } gnome_vfs_uri_unref (target_uri); } progress->progress_info->vfs_status = result; call_progress_uri (progress, NULL, target_uri, GNOME_VFS_XFER_PHASE_OPENTARGET); if (dest_directory_handle != NULL) { gnome_vfs_directory_close (dest_directory_handle); } gnome_vfs_uri_unref (target_uri); return result; } static GnomeVFSResult gnome_vfs_destination_is_writable (GnomeVFSURI *uri) { GnomeVFSResult result; GnomeVFSFileInfo *info; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (uri, info, GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS); if (result != GNOME_VFS_OK) { gnome_vfs_file_info_unref (info); return result; } /* Default to GNOME_VFS_OK so we return that if we don't have support for GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS */ result = GNOME_VFS_OK; if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_ACCESS) { if (! (info->permissions & GNOME_VFS_PERM_ACCESS_WRITABLE && info->permissions & GNOME_VFS_PERM_ACCESS_EXECUTABLE)) { result = GNOME_VFS_ERROR_ACCESS_DENIED; } } gnome_vfs_file_info_unref (info); return result; } static GnomeVFSResult gnome_vfs_xfer_uri_internal (const GList *source_uris, const GList *target_uris, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSProgressCallbackState *progress) { GnomeVFSResult result; GList *source_uri_list, *target_uri_list; GList *source_uri, *target_uri; GList *source_uri_list_copied; GList *merge_source_uri_list, *merge_target_uri_list; GnomeVFSURI *target_dir_uri; gboolean move, link; GnomeVFSFileSize free_bytes; GnomeVFSFileSize bytes_total; gulong files_total; gboolean skip; result = GNOME_VFS_OK; move = FALSE; link = FALSE; target_dir_uri = NULL; source_uri_list_copied = NULL; /* Check and see if target is writable. Return error if it is not. */ call_progress (progress, GNOME_VFS_XFER_CHECKING_DESTINATION); target_dir_uri = gnome_vfs_uri_get_parent ((GnomeVFSURI *)((GList *)target_uris)->data); result = gnome_vfs_destination_is_writable (target_dir_uri); progress_set_source_target_uris (progress, NULL, target_dir_uri); if (result != GNOME_VFS_OK) { handle_error (&result, progress, &error_mode, &skip); gnome_vfs_uri_unref (target_dir_uri); return result; } move = (xfer_options & GNOME_VFS_XFER_REMOVESOURCE) != 0; link = (xfer_options & GNOME_VFS_XFER_LINK_ITEMS) != 0; if (move && link) { return GNOME_VFS_ERROR_BAD_PARAMETERS; } /* Create an owning list of source and destination uris. * We want to be able to remove items that we decide to skip during * name conflict check. */ source_uri_list = gnome_vfs_uri_list_copy ((GList *)source_uris); target_uri_list = gnome_vfs_uri_list_copy ((GList *)target_uris); merge_source_uri_list = NULL; merge_target_uri_list = NULL; if ((xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) == 0) { /* see if moved files are on the same file system so that we decide to do * a simple move or have to do a copy/remove */ for (source_uri = source_uri_list, target_uri = target_uri_list; source_uri != NULL; source_uri = source_uri->next, target_uri = target_uri->next) { gboolean same_fs; g_assert (target_dir_uri != NULL); result = gnome_vfs_check_same_fs_uris ((GnomeVFSURI *)source_uri->data, target_dir_uri, &same_fs); if (result != GNOME_VFS_OK) { break; } move &= same_fs; } } if (target_dir_uri != NULL) { gnome_vfs_uri_unref (target_dir_uri); target_dir_uri = NULL; } if (result == GNOME_VFS_OK) { call_progress (progress, GNOME_VFS_XFER_PHASE_COLLECTING); result = count_items_and_size (source_uri_list, xfer_options, progress, move, link); if (result != GNOME_VFS_ERROR_INTERRUPTED) { /* Ignore anything but interruptions here -- we will deal with the errors * during the actual copy */ result = GNOME_VFS_OK; } } if (result == GNOME_VFS_OK) { /* Calculate free space on destination. If an error is returned, we have a non-local * file system, so we just forge ahead and hope for the best */ target_dir_uri = gnome_vfs_uri_get_parent ((GnomeVFSURI *)target_uri_list->data); result = gnome_vfs_get_volume_free_space (target_dir_uri, &free_bytes); if (result == GNOME_VFS_OK) { if (!move && !link && progress->progress_info->bytes_total > free_bytes) { result = GNOME_VFS_ERROR_NO_SPACE; progress_set_source_target_uris (progress, NULL, target_dir_uri); handle_error (&result, progress, &error_mode, &skip); } } else { /* Errors from gnome_vfs_get_volume_free_space should be ignored */ result = GNOME_VFS_OK; } if (target_dir_uri != NULL) { gnome_vfs_uri_unref (target_dir_uri); target_dir_uri = NULL; } if (result != GNOME_VFS_OK) { return result; } if ((xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) == 0) { /* Save the preflight numbers, handle_name_conflicts would overwrite them */ bytes_total = progress->progress_info->bytes_total; files_total = progress->progress_info->files_total; /* Set the preflight numbers to 0, we don't want to run progress on the * removal of conflicting items. */ progress->progress_info->bytes_total = 0; progress->progress_info->files_total = 0; result = handle_name_conflicts (&source_uri_list, &target_uri_list, xfer_options, &error_mode, &overwrite_mode, progress, move, link, &merge_source_uri_list, &merge_target_uri_list); progress->progress_info->bytes_total = 0; progress->progress_info->files_total = 0; if (result == GNOME_VFS_OK && move && merge_source_uri_list != NULL) { /* Some moves was converted to copy, remove previously added non-recursive sizes, and add recursive sizes */ result = list_add_items_and_size (merge_source_uri_list, xfer_options, progress, FALSE); if (result != GNOME_VFS_ERROR_INTERRUPTED) { /* Ignore anything but interruptions here -- we will deal with the errors * during the actual copy */ result = GNOME_VFS_OK; } progress->progress_info->bytes_total = -progress->progress_info->bytes_total; progress->progress_info->files_total = -progress->progress_info->files_total; if (result == GNOME_VFS_OK) { result = list_add_items_and_size (merge_source_uri_list, xfer_options, progress, TRUE); if (result != GNOME_VFS_ERROR_INTERRUPTED) { /* Ignore anything but interruptions here -- we will deal with the errors * during the actual copy */ result = GNOME_VFS_OK; } } if (result == GNOME_VFS_OK) { /* We're moving, and some moves were converted to copies. * Make sure we have space for the copies. */ target_dir_uri = gnome_vfs_uri_get_parent ((GnomeVFSURI *)merge_target_uri_list->data); result = gnome_vfs_get_volume_free_space (target_dir_uri, &free_bytes); if (result == GNOME_VFS_OK) { if (progress->progress_info->bytes_total > free_bytes) { result = GNOME_VFS_ERROR_NO_SPACE; progress_set_source_target_uris (progress, NULL, target_dir_uri); } } else { /* Errors from gnome_vfs_get_volume_free_space should be ignored */ result = GNOME_VFS_OK; } if (target_dir_uri != NULL) { gnome_vfs_uri_unref (target_dir_uri); target_dir_uri = NULL; } } } /* Add previous size (non-copy size in the case of a move) */ progress->progress_info->bytes_total += bytes_total; progress->progress_info->files_total += files_total; } /* reset the preflight numbers */ progress->progress_info->file_index = 0; progress->progress_info->total_bytes_copied = 0; if (result != GNOME_VFS_OK) { if (handle_error (&result, progress, &error_mode, &skip)) { /* whatever error it was, we handled it */ result = GNOME_VFS_OK; } } else { call_progress (progress, GNOME_VFS_XFER_PHASE_READYTOGO); if (move) { g_assert (!link); result = move_items (source_uri_list, target_uri_list, xfer_options, &error_mode, &overwrite_mode, progress); if (result == GNOME_VFS_OK && merge_source_uri_list != NULL) { result = copy_items (merge_source_uri_list, merge_target_uri_list, xfer_options, &error_mode, overwrite_mode, progress, &source_uri_list_copied); } } else if (link) { result = link_items (source_uri_list, target_uri_list, xfer_options, &error_mode, &overwrite_mode, progress); } else { result = copy_items (source_uri_list, target_uri_list, xfer_options, &error_mode, overwrite_mode, progress, &source_uri_list_copied); } if (result == GNOME_VFS_OK) { if (xfer_options & GNOME_VFS_XFER_REMOVESOURCE && !link) { call_progress (progress, GNOME_VFS_XFER_PHASE_CLEANUP); result = gnome_vfs_xfer_delete_items_common ( source_uri_list_copied, error_mode, xfer_options, progress); } } } } gnome_vfs_uri_list_free (source_uri_list); gnome_vfs_uri_list_free (target_uri_list); gnome_vfs_uri_list_free (merge_source_uri_list); gnome_vfs_uri_list_free (merge_target_uri_list); gnome_vfs_uri_list_free (source_uri_list_copied); return result; } GnomeVFSResult _gnome_vfs_xfer_private (const GList *source_uri_list, const GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSXferProgressCallback progress_callback, gpointer data, GnomeVFSXferProgressCallback sync_progress_callback, gpointer sync_progress_data) { GnomeVFSProgressCallbackState progress_state; GnomeVFSXferProgressInfo progress_info; GnomeVFSURI *target_dir_uri; GnomeVFSResult result; char *short_name; init_progress (&progress_state, &progress_info); progress_state.sync_callback = sync_progress_callback; progress_state.user_data = sync_progress_data; progress_state.update_callback = progress_callback; progress_state.async_job_data = data; if ((xfer_options & GNOME_VFS_XFER_EMPTY_DIRECTORIES) != 0) { /* Directory empty operation (Empty Trash, etc.). */ g_assert (source_uri_list != NULL); g_assert (target_uri_list == NULL); call_progress (&progress_state, GNOME_VFS_XFER_PHASE_INITIAL); result = gnome_vfs_xfer_empty_directories (source_uri_list, error_mode, &progress_state); } else if ((xfer_options & GNOME_VFS_XFER_DELETE_ITEMS) != 0) { /* Delete items operation */ g_assert (source_uri_list != NULL); g_assert (target_uri_list == NULL); call_progress (&progress_state, GNOME_VFS_XFER_PHASE_INITIAL); result = gnome_vfs_xfer_delete_items (source_uri_list, error_mode, xfer_options, &progress_state); } else if ((xfer_options & GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY) != 0) { /* New directory create operation */ g_assert (source_uri_list == NULL); g_assert (g_list_length ((GList *) target_uri_list) == 1); target_dir_uri = gnome_vfs_uri_get_parent ((GnomeVFSURI *) target_uri_list->data); result = GNOME_VFS_ERROR_INVALID_URI; if (target_dir_uri != NULL) { short_name = gnome_vfs_uri_extract_short_path_name ((GnomeVFSURI *) target_uri_list->data); result = gnome_vfs_new_directory_with_unique_name (target_dir_uri, short_name, error_mode, overwrite_mode, &progress_state); g_free (short_name); gnome_vfs_uri_unref (target_dir_uri); } } else { /* Copy items operation */ g_assert (source_uri_list != NULL); g_assert (target_uri_list != NULL); g_assert (g_list_length ((GList *)source_uri_list) == g_list_length ((GList *)target_uri_list)); call_progress (&progress_state, GNOME_VFS_XFER_PHASE_INITIAL); result = gnome_vfs_xfer_uri_internal (source_uri_list, target_uri_list, xfer_options, error_mode, overwrite_mode, &progress_state); } call_progress (&progress_state, GNOME_VFS_XFER_PHASE_COMPLETED); free_progress (&progress_info); /* FIXME bugzilla.eazel.com 1218: * * The async job setup will try to call the callback function with the callback data * even though they are usually dead at this point because the callback detected * that we are giving up and cleaned up after itself. * * Should fix this in the async job call setup. * * For now just pretend everything worked well. * */ result = GNOME_VFS_OK; return result; } /** * gnome_vfs_xfer_uri_list: * @source_uri_list: A #GList of source #GnomeVFSURIs. * @target_uri_list: A #GList of target #GnomeVFSURIs, each corresponding to one URI in * @source_uri_list. * @xfer_options: #GnomeVFSXferOptions defining the desired operation and parameters. * @error_mode: A #GnomeVFSErrorMode specifying how to proceed if a VFS error occurs. * @overwrite_mode: A #GnomeVFSOverwriteMode specifying how to proceed if a file is being overwritten. * @progress_callback: This #GnomeVFSProgressCallback is used to inform the user about * the progress of a transfer, and to request further input from him if a problem occurs. * @data: Data to be passed back in callbacks from the xfer engine. * * This function will transfer multiple files to multiple targets, given * source URIs and destination URIs. If you want to do asynchronous * file transfers, you have to use gnome_vfs_async_xfer() instead. * * Returns: If all goes well it returns %GNOME_VFS_OK. Check #GnomeVFSResult for * other values. **/ GnomeVFSResult gnome_vfs_xfer_uri_list (const GList *source_uri_list, const GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSXferProgressCallback progress_callback, gpointer data) { GnomeVFSProgressCallbackState progress_state; GnomeVFSXferProgressInfo progress_info; GnomeVFSResult result; g_return_val_if_fail (source_uri_list != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (target_uri_list != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (progress_callback != NULL || error_mode != GNOME_VFS_XFER_ERROR_MODE_QUERY, GNOME_VFS_ERROR_BAD_PARAMETERS); init_progress (&progress_state, &progress_info); progress_state.sync_callback = progress_callback; progress_state.user_data = data; call_progress (&progress_state, GNOME_VFS_XFER_PHASE_INITIAL); result = gnome_vfs_xfer_uri_internal (source_uri_list, target_uri_list, xfer_options, error_mode, overwrite_mode, &progress_state); call_progress (&progress_state, GNOME_VFS_XFER_PHASE_COMPLETED); free_progress (&progress_info); return result; } /** * gnome_vfs_xfer_uri: * @source_uri: A source #GnomeVFSURI. * @target_uri: A target #GnomeVFSURI. * @xfer_options: #GnomeVFSXferOptions defining the desired operation and parameters. * @error_mode: A #GnomeVFSErrorMode specifying how to proceed if a VFS error occurs. * @overwrite_mode: A #GnomeVFSOverwriteMode specifying how to proceed if a file is being overwritten. * @progress_callback: This #GnomeVFSProgressCallback is used to inform the user about * the progress of a transfer, and to request further input from him if a problem occurs. * @data: Data to be passed back in callbacks from the xfer engine. * * This function works exactly like gnome_vfs_xfer_uri_list(), and is a * convenience wrapper for only acting on one source/target URI pair. * * Return value: an integer representing the result of the operation. **/ GnomeVFSResult gnome_vfs_xfer_uri (const GnomeVFSURI *source_uri, const GnomeVFSURI *target_uri, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSXferProgressCallback progress_callback, gpointer data) { GList *source_uri_list, *target_uri_list; GnomeVFSResult result; g_return_val_if_fail (source_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (target_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (progress_callback != NULL || error_mode != GNOME_VFS_XFER_ERROR_MODE_QUERY, GNOME_VFS_ERROR_BAD_PARAMETERS); source_uri_list = g_list_append (NULL, (void *)source_uri); target_uri_list = g_list_append (NULL, (void *)target_uri); result = gnome_vfs_xfer_uri_list (source_uri_list, target_uri_list, xfer_options, error_mode, overwrite_mode, progress_callback, data); g_list_free (source_uri_list); g_list_free (target_uri_list); return result; } /** * gnome_vfs_xfer_delete_list: * @source_uri_list: This is a list containing uris. * @error_mode: Decide how you want to deal with interruptions. * @xfer_options: Set whatever transfer options you need. * @progress_callback: Callback to check on progress of transfer. * @data: Data to be passed back in callbacks from the xfer engine. * * Unlinks items in the @source_uri_list from their filesystems. * * Return value: %GNOME_VFS_OK if successful, or the appropriate error code otherwise. **/ GnomeVFSResult gnome_vfs_xfer_delete_list (const GList *source_uri_list, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOptions xfer_options, GnomeVFSXferProgressCallback progress_callback, gpointer data) { GnomeVFSProgressCallbackState progress_state; GnomeVFSXferProgressInfo progress_info; GnomeVFSResult result; g_return_val_if_fail (source_uri_list != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (progress_callback != NULL || error_mode != GNOME_VFS_XFER_ERROR_MODE_QUERY, GNOME_VFS_ERROR_BAD_PARAMETERS); init_progress (&progress_state, &progress_info); progress_state.sync_callback = progress_callback; progress_state.user_data = data; call_progress (&progress_state, GNOME_VFS_XFER_PHASE_INITIAL); result = gnome_vfs_xfer_delete_items (source_uri_list, error_mode, xfer_options, &progress_state); call_progress (&progress_state, GNOME_VFS_XFER_PHASE_COMPLETED); free_progress (&progress_info); return result; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-utils.h0000644000175000001440000001647011334251016016150 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-utils.h - Public utility functions for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2000 Eazel, Inc. The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ettore Perazzoli John Sullivan */ #ifndef GNOME_VFS_UTILS_H #define GNOME_VFS_UTILS_H #include #include #include #include #include G_BEGIN_DECLS /** * GnomeVFSMakeURIDirs: * @GNOME_VFS_MAKE_URI_DIR_NONE: Don't check any directory * @GNOME_VFS_MAKE_URI_DIR_HOMEDIR: Check the home directory * @GNOME_VFS_MAKE_URI_DIR_CURRENT: Check the current direcotry * * Flags that can be passed to gnome_vfs_make_uri_from_input_with_dirs(). * If the given input might be a relative path it checks for existence of the file * in the directory specified by this flag. * If both flags are passed the current directory is checked first. * **/ typedef enum { GNOME_VFS_MAKE_URI_DIR_NONE = 0, GNOME_VFS_MAKE_URI_DIR_HOMEDIR = 1 << 0, GNOME_VFS_MAKE_URI_DIR_CURRENT = 1 << 1 } GnomeVFSMakeURIDirs; /* Makes a human-readable string. */ char *gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size); /* Converts unsafe characters to % sequences so the string can be * used as a piece of a URI. Escapes all reserved URI characters. */ char *gnome_vfs_escape_string (const char *string); /* Converts unsafe characters to % sequences so the path can be * used as a piece of a URI. Escapes all reserved URI characters * except for "/". */ char *gnome_vfs_escape_path_string (const char *path); /* Converts unsafe characters to % sequences so the host/path segment * can be used as a piece of a URI. Allows ":" and "@" in the host * section (everything up to the first "/"), and after that, it behaves * like gnome_vfs_escape_path_string. */ char *gnome_vfs_escape_host_and_path_string (const char *path); /* Converts only slashes and % characters to % sequences. This is useful * for code that wants to use an arbitrary string as a file name. To use * it in a URI, you have to escape again, of course. */ char *gnome_vfs_escape_slashes (const char *string); /* Escapes all the characters that match any of the @match_set */ char *gnome_vfs_escape_set (const char *string, const char *match_set); /* Returns NULL if any of the illegal character appear in escaped * form. If the illegal characters are in there unescaped, that's OK. * Typically you pass "/" for illegal characters when converting to a * Unix path, since pieces of Unix paths can't contain "/". ASCII 0 * is always illegal due to the limitations of NULL-terminated strings. */ char *gnome_vfs_unescape_string (const char *escaped_string, const char *illegal_characters); /* returns a copy of uri, converted to a canonical form */ char *gnome_vfs_make_uri_canonical (const char *uri); /* returns a copy of path, converted to a canonical form */ char *gnome_vfs_make_path_name_canonical (const char *path); /* returns a copy of path, with initial ~ expanded, or just copy of path * if there's no initial ~ */ char *gnome_vfs_expand_initial_tilde (const char *path); /* Prepare an escaped string for display. Unlike gnome_vfs_unescape_string, * this doesn't return NULL if an illegal sequences appears in the string, * instead doing its best to provide a useful result. */ char *gnome_vfs_unescape_string_for_display (const char *escaped); /* Turn a "file://" URI in string form into a local path. Returns NULL * if it's not a URI that can be converted. */ char *gnome_vfs_get_local_path_from_uri (const char *uri); /* Turn a path into a "file://" URI. */ char *gnome_vfs_get_uri_from_local_path (const char *local_full_path); /* Check whether a string starts with an executable command */ gboolean gnome_vfs_is_executable_command_string (const char *command_string); /* Free the list, freeing each item data with a g_free */ void gnome_vfs_list_deep_free (GList *list); /* Return amount of free space on target */ GnomeVFSResult gnome_vfs_get_volume_free_space (const GnomeVFSURI *vfs_uri, GnomeVFSFileSize *size); char *gnome_vfs_icon_path_from_filename (const char *filename); /* Convert a file descriptor to a handle */ GnomeVFSResult gnome_vfs_open_fd (GnomeVFSHandle **handle, int filedes); /* TRUE if the current thread is the thread with the main glib event loop */ gboolean gnome_vfs_is_primary_thread (void); /** * GNOME_VFS_ASSERT_PRIMARY_THREAD: * * Asserts that the current thread is the thread with * the main glib event loop **/ #define GNOME_VFS_ASSERT_PRIMARY_THREAD g_assert (gnome_vfs_is_primary_thread()) /** * GNOME_VFS_ASSERT_SECONDARY_THREAD: * * Asserts that the current thread is NOT the thread with * the main glib event loop **/ #define GNOME_VFS_ASSERT_SECONDARY_THREAD g_assert (!gnome_vfs_is_primary_thread()) /* Reads the contents of an entire file into memory */ GnomeVFSResult gnome_vfs_read_entire_file (const char *uri, int *file_size, char **file_contents); char * gnome_vfs_format_uri_for_display (const char *uri); char * gnome_vfs_make_uri_from_input (const char *location); char * gnome_vfs_make_uri_from_input_with_trailing_ws (const char *location); char * gnome_vfs_make_uri_from_input_with_dirs (const char *location, GnomeVFSMakeURIDirs dirs); char * gnome_vfs_make_uri_canonical_strip_fragment (const char *uri); gboolean gnome_vfs_uris_match (const char *uri_1, const char *uri_2); char * gnome_vfs_get_uri_scheme (const char *uri); char * gnome_vfs_make_uri_from_shell_arg (const char *uri); #ifndef GNOME_VFS_DISABLE_DEPRECATED char * gnome_vfs_make_uri_full_from_relative (const char *base_uri, const char *relative_uri); #endif /* GNOME_VFS_DISABLE_DEPRECATED */ GnomeVFSResult gnome_vfs_url_show (const char *url); GnomeVFSResult gnome_vfs_url_show_with_env (const char *url, char **envp); G_END_DECLS #endif /* GNOME_VFS_UTILS_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-xfer.h0000644000175000001440000005421411334251016015752 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-xfer.h - File transfers in the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_XFER_H #define GNOME_VFS_XFER_H #include G_BEGIN_DECLS /* * FIXME bugzilla.eazel.com 1205: * Split these up into xfer options and xfer actions */ /** * GnomeVFSXferOptions: * @GNOME_VFS_XFER_DEFAULT: Default behavior, which is to do a straight one to one copy. * @GNOME_VFS_XFER_FOLLOW_LINKS: Follow symbolic links when copying or moving, i.e. * the target of symbolic links are copied * rather than the symbolic links themselves. * Note that this just refers to top-level items. * If you also want to follow symbolic links inside * directories you operate on, you also have to specify * #GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE. * @GNOME_VFS_XFER_RECURSIVE: Recursively copy source directories to the target. * Equivalent to the cp -r option in GNU cp. * @GNOME_VFS_XFER_SAMEFS: When copying recursively, this only picks up items on the same file * system the same filesystem as their parent directory. * @GNOME_VFS_XFER_DELETE_ITEMS: This is equivalent to an rmdir() for source directories, * and an unlink() operation for all source files. * Requires %NULL target URIs. * @GNOME_VFS_XFER_EMPTY_DIRECTORIES: Remove the whole contents of the passed-in source * directories. Requires %NULL target URIs. * @GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY: This will create a directory if it doesn't exist * in the destination area (i.e. mkdir ()). * @GNOME_VFS_XFER_REMOVESOURCE: This makes a copy operation equivalent to a mv, i.e. the * files will be moved rather than copied. If applicable, this * will use rename(), otherwise (i.e. across file systems), * it will fall back to a copy operation followed by a source * file deletion. * @GNOME_VFS_XFER_USE_UNIQUE_NAMES: When this option is present, and a name collisions on * the target occurs, the progress callback will be asked * for a new name, until the newly provided name doesn't * conflict or the request callback transfer cancellation. * @GNOME_VFS_XFER_LINK_ITEMS: Executes a symlink operation for each of the source/target URI pairs, * i.e. similar to GNU ln -s source target. * NB: The symlink target has to be specified as source URI, * and the symlink itself as target URI. * @GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE: This means that when doing a copy operation, symbolic * links in subdirectories are dereferenced. This is * typically used together with #GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE. * @GNOME_VFS_XFER_TARGET_DEFAULT_PERMS: This means that the target file will not have the same * permissions as the source file, but will instead have * the default permissions of the destination location. * This is useful when copying from read-only locations (CDs). * @GNOME_VFS_XFER_UNUSED_1: Unused. * @GNOME_VFS_XFER_UNUSED_2: Unused. * * These options control the way gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), * gnome_vfs_xfer_delete_list() and gnome_vfs_async_xfer() work. * * At a first glance the #GnomeVFSXferOptions semantics are not very intuitive. * * There are two types of #GnomeVFSXferOptions: Those that define an operation, * i.e. describe what to do, and those that influence how to execute the * operation. * * * Operation Selection * * * * * * * * * #GnomeVFSXferOptions entry * Operation * UNIX equivalent * Comments * * * * * #GNOME_VFS_XFER_DEFAULT * Copy * cp * * * #GNOME_VFS_XFER_REMOVESOURCE * Move * mv * * * #GNOME_VFS_XFER_LINK_ITEMS * Link * ln -s * * * #GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY * Make Unique Directory * mkdir * implies #GNOME_VFS_XFER_USE_UNIQUE_NAMES * * * #GNOME_VFS_XFER_DELETE_ITEMS * Remove * rm -r * * * #GNOME_VFS_XFER_EMPTY_DIRECTORIES * Remove Directory Contents * foreach file: ( cd file && rm -rf * ) * used to empty trash * * * *
* * * * Because #GNOME_VFS_XFER_DEFAULT maps to %0, it will always be present. * Thus, not explicitly specifying any operation at all, or just specifying * #GNOME_VFS_XFER_DEFAULT will both execute a copy. * * * If an operation other than #GNOME_VFS_XFER_DEFAULT is * specified, it will override the copy operation, but you may only specify * one of the other operations at a time. * * * This unintuitive operation selection unfortunately poses an API weakness * and an obstacle in client development, and will be modified in a later * revision of this API. * * */ typedef enum { GNOME_VFS_XFER_DEFAULT = 0, GNOME_VFS_XFER_UNUSED_1 = 1 << 0, GNOME_VFS_XFER_FOLLOW_LINKS = 1 << 1, GNOME_VFS_XFER_UNUSED_2 = 1 << 2, GNOME_VFS_XFER_RECURSIVE = 1 << 3, GNOME_VFS_XFER_SAMEFS = 1 << 4, GNOME_VFS_XFER_DELETE_ITEMS = 1 << 5, GNOME_VFS_XFER_EMPTY_DIRECTORIES = 1 << 6, GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY = 1 << 7, GNOME_VFS_XFER_REMOVESOURCE = 1 << 8, GNOME_VFS_XFER_USE_UNIQUE_NAMES = 1 << 9, GNOME_VFS_XFER_LINK_ITEMS = 1 << 10, GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE = 1 << 11, GNOME_VFS_XFER_TARGET_DEFAULT_PERMS = 1 << 12 } GnomeVFSXferOptions; /** * GnomeVFSXferProgressStatus: * @GNOME_VFS_XFER_PROGRESS_STATUS_OK: The file transfer is progressing normally. * @GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR: A VFS error was detected. * @GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE: The current target file specified by the * #GnomeVFSXferProgressInfo's %target_name * field already exists. * @GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE: The current target file specified by the * #GnomeVFSXferProgressInfo's %target_name * field already exists, and the progress * callback is asked to supply a new unique name. * * The difference between #GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE and * #GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE is that they will be issued * at different occassions, and that the return value will be interpreted * differently. For details, see #GnomeVFSXferProgressCallback. **/ typedef enum { GNOME_VFS_XFER_PROGRESS_STATUS_OK = 0, GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR = 1, GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE = 2, GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE = 3 } GnomeVFSXferProgressStatus; /** * GnomeVFSXferOverwriteMode: * @GNOME_VFS_XFER_OVERWRITE_MODE_ABORT: Abort the transfer when a target file already exists, * returning the error #GNOME_VFS_ERROR_FILEEXISTS. * @GNOME_VFS_XFER_OVERWRITE_MODE_QUERY: Query the progress callback with the * #GnomeVFSXferProgressInfo's status field * set to #GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR when * a target file already exists. * @GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE: Replace existing target files silently. * Don't worry be happy. * @GNOME_VFS_XFER_OVERWRITE_MODE_SKIP: Skip source files when its target already exists. * * This is passed to gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), * gnome_vfs_xfer_delete_list() and gnome_vfs_async_xfer() and specifies * what action should be taken when a target file already exists. **/ typedef enum { GNOME_VFS_XFER_OVERWRITE_MODE_ABORT = 0, GNOME_VFS_XFER_OVERWRITE_MODE_QUERY = 1, GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE = 2, GNOME_VFS_XFER_OVERWRITE_MODE_SKIP = 3 } GnomeVFSXferOverwriteMode; /** * GnomeVFSXferOverwriteAction: * @GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT: abort the transfer * @GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE: replace the existing file * @GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL: replace the existing file, and all future files * without prompting the callback. * @GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP: don't copy over the existing file * @GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL: don't copy over the existing file, and all future * files without prompting the callback. * * This defines the actions to perform before a file is being overwritten * (i.e., these are the answers that can be given to a replace query). **/ typedef enum { GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT = 0, GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE = 1, GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL = 2, GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP = 3, GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL = 4 } GnomeVFSXferOverwriteAction; /** * GnomeVFSXferErrorMode: * @GNOME_VFS_XFER_ERROR_MODE_ABORT: abort the transfer when an error occurs * @GNOME_VFS_XFER_ERROR_MODE_QUERY: query the progress callback with the * #GnomeVFSXferProgressInfo's status field * set to #GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR. * * This is passed to gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), * gnome_vfs_xfer_delete_list() and gnome_vfs_async_xfer() and specifies * what action should be taken when transfer errors are detected. * * The progress callback is either a #GnomeVFSXferProgressCallback for synchronous * Xfer operations, or a #GnomeVFSAsyncXferProgressCallback for asynchronous operations. **/ typedef enum { GNOME_VFS_XFER_ERROR_MODE_ABORT = 0, GNOME_VFS_XFER_ERROR_MODE_QUERY = 1 } GnomeVFSXferErrorMode; /** * GnomeVFSXferErrorAction: * @GNOME_VFS_XFER_ERROR_ACTION_ABORT: interrupt Xfer and return %GNOME_VFS_ERROR_INTERRUPTED. * @GNOME_VFS_XFER_ERROR_ACTION_RETRY: retry the failed operation. * @GNOME_VFS_XFER_ERROR_ACTION_SKIP: skip the failed operation, and continue Xfer normally. * * This defines the possible actions to be performed after a VFS error has occurred, i.e. * when a GnomeVFS file operation issued during the transfer returned a result that is not * equal to #GNOME_VFS_OK. * * It is returned by the progress callback which is either a #GnomeVFSXferProgressCallback * for synchronous Xfer operations, or a #GnomeVFSAsyncXferProgressCallback for asynchronous * operations. **/ typedef enum { GNOME_VFS_XFER_ERROR_ACTION_ABORT = 0, GNOME_VFS_XFER_ERROR_ACTION_RETRY = 1, GNOME_VFS_XFER_ERROR_ACTION_SKIP = 2 } GnomeVFSXferErrorAction; /** * GnomeVFSXferPhase: * @GNOME_VFS_XFER_PHASE_INITIAL: initial phase. * @GNOME_VFS_XFER_CHECKING_DESTINATION: destination is checked for being able to handle copy/move. * @GNOME_VFS_XFER_PHASE_COLLECTING: source file list is collected. * @GNOME_VFS_XFER_PHASE_READYTOGO: source file list has been collected (*). * @GNOME_VFS_XFER_PHASE_OPENSOURCE: source file is opened for reading. * @GNOME_VFS_XFER_PHASE_OPENTARGET: target file, directory or symlink is created, or opened for copying. * @GNOME_VFS_XFER_PHASE_COPYING: data is copied from source file to target file (*). * @GNOME_VFS_XFER_PHASE_MOVING: source file is moved to target (M). * @GNOME_VFS_XFER_PHASE_READSOURCE: data is read from a source file, when copying. * @GNOME_VFS_XFER_PHASE_WRITETARGET: data is written to a target file, when copying. * @GNOME_VFS_XFER_PHASE_CLOSESOURCE: source file is closed, when copying * @GNOME_VFS_XFER_PHASE_CLOSETARGET: target file is closed, when copying. * @GNOME_VFS_XFER_PHASE_DELETESOURCE: source file is deleted. * @GNOME_VFS_XFER_PHASE_SETATTRIBUTES: target file attributes are set. * @GNOME_VFS_XFER_PHASE_FILECOMPLETED: one file was completed, ready for next file. * @GNOME_VFS_XFER_PHASE_CLEANUP: cleanup after moving (i.e. source files deletion). * @GNOME_VFS_XFER_PHASE_COMPLETED: operation finished (*). * * Specifies the current phase of an Xfer operation that was * initiated using gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), * gnome_vfs_xfer_delete_list() or gnome_vfs_async_xfer(). * * Whenever the Xfer phase is in a phase that is highlighted with a * (*), the #GnomeVFSXferProgressCallback respectively * #GnomeVFSAsyncXferProgressCallback is never invoked with a * #GnomeVFSXferProgressStatus other than %GNOME_VFS_XFER_PROGRESS_STATUS_OK. * **/ typedef enum { GNOME_VFS_XFER_PHASE_INITIAL, GNOME_VFS_XFER_CHECKING_DESTINATION, GNOME_VFS_XFER_PHASE_COLLECTING, GNOME_VFS_XFER_PHASE_READYTOGO, GNOME_VFS_XFER_PHASE_OPENSOURCE, GNOME_VFS_XFER_PHASE_OPENTARGET, GNOME_VFS_XFER_PHASE_COPYING, GNOME_VFS_XFER_PHASE_MOVING, GNOME_VFS_XFER_PHASE_READSOURCE, GNOME_VFS_XFER_PHASE_WRITETARGET, GNOME_VFS_XFER_PHASE_CLOSESOURCE, GNOME_VFS_XFER_PHASE_CLOSETARGET, GNOME_VFS_XFER_PHASE_DELETESOURCE, GNOME_VFS_XFER_PHASE_SETATTRIBUTES, GNOME_VFS_XFER_PHASE_FILECOMPLETED, GNOME_VFS_XFER_PHASE_CLEANUP, GNOME_VFS_XFER_PHASE_COMPLETED, GNOME_VFS_XFER_NUM_PHASES } GnomeVFSXferPhase; /** * GnomeVFSXferProgressInfo: * @status: A #GnomeVFSXferProgressStatus describing the current status. * @vfs_status: A #GnomeVFSResult describing the current VFS status. * @phase: A #GnomeVFSXferPhase describing the current transfer phase. * @source_name: The Currently processed source URI. * @target_name: The Currently processed target URI. * @file_index: The index of the currently processed file. * @files_total: The total number of processed files. * @file_size: The size of the currently processed file in bytes. * @bytes_total: The total size of all files to transfer in bytes. * @bytes_copied: The number of bytes that has been transferred * from the current file. * @total_bytes_copied: The total number of bytes that has been transferred. * @duplicate_name: The name specifying a duplicate filename. * It acts as pointer to both input and output * data. It is only valid input data if @status is * GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE, * in which case @duplicate_count and @duplicate_name * should be used by the #GnomeVFSXferProgressCallback * to pick a new unique target name. * If the callback wants to retry with a new unique name * it is supposed to free the old @duplicate_name * set it to a valid string describing the new file name. * @duplicate_count: The number of conflicts that ocurred when the * current @duplicate_name was set. * @top_level_item: This flag signals that the currently * processed file is a top level item. * If it is %TRUE, one of the files passed to * gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), * gnome_vfs_xfer_delete_list() or gnome_vfs_async_xfer() * is currently processed. * If it is %FALSE, a file or directory that is inside * a directory specified by the passed in source list * is currently processed. * * Provides progress information for the transfer operation. * This is especially useful for interactive programs. **/ typedef struct { /*< public > */ GnomeVFSXferProgressStatus status; GnomeVFSResult vfs_status; GnomeVFSXferPhase phase; /* Source URI. FIXME bugzilla.eazel.com 1206: change name? */ gchar *source_name; /* Destination URI. FIXME bugzilla.eazel.com 1206: change name? */ gchar *target_name; gulong file_index; gulong files_total; GnomeVFSFileSize bytes_total; GnomeVFSFileSize file_size; GnomeVFSFileSize bytes_copied; GnomeVFSFileSize total_bytes_copied; gchar *duplicate_name; int duplicate_count; gboolean top_level_item; /* Reserved for future expansions to GnomeVFSXferProgressInfo * without having to break ABI compatibility */ /*< private >*/ void *reserved1; void *reserved2; } GnomeVFSXferProgressInfo; /** * GnomeVFSXferProgressCallback: * @info: The #GnomeVFSXferProgressInfo associated with this transfer operation. * @user_data: The user data passed to gnome_vfs_xfer_uri(), gnome_vfs_xfer_uri_list(), * gnome_vfs_xfer_delete_list() or gnome_vfs_async_xfer(). * * This is the prototype for functions called during a transfer operation to * report progress. * * The interpretation of the return value of the callback depends on the * GnomeVFSXferProgressStaus %status field of GnomeVFSXferProgressInfo, * some status/return value combinations require modification of * particular @info fields. * * * Status/Return Value Overview * * * * * * * * * #GnomeVFSXferProgressStatus status * Status * Only If * Return Value Interpretation * * * * * #GNOME_VFS_XFER_PROGRESS_STATUS_OK * OK * * %0: abort, otherwise continue * * * #GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR * VFS Error Ocurred * #GnomeVFSXferErrorMode is #GNOME_VFS_XFER_ERROR_MODE_QUERY * GnomeVFSXferErrorAction * * * #GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE * Conflict Ocurred, Overwrite? * * #GnomeVFSXferOverwriteMode is #GNOME_VFS_XFER_OVERWRITE_MODE_QUERY, * #GnomeVFSXferOptions does not have #GNOME_VFS_XFER_USE_UNIQUE_NAMES. * * GnomeVFSXferOverwriteAction * * * #GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE * Conflict Ocurred, New Target Name? * #GnomeVFSXferOptions does have #GNOME_VFS_XFER_USE_UNIQUE_NAMES. * %0: abort, otherwise retry with new %duplicate_name in @info (free the old one!). * * * *
* * * Each #GnomeVFSXferProgressStatus provides one value signalling abortion that maps to %0. * Therefore, returning %0 will always abort the Xfer. On abortion, if the @info's %vfs_status * is #GNOME_VFS_OK, the Xfer operation result will be set to #GNOME_VFS_ERROR_INTERRUPTED, * otherwise the operation result will be set to %vfs_status to distinguish completely * user-driven aborts from those involving a problem during the Xfer. * * * Returns: Whether the process should be aborted, or whether a special action should be taken. **/ typedef gint (* GnomeVFSXferProgressCallback) (GnomeVFSXferProgressInfo *info, gpointer user_data); /** * GnomeVFSProgressCallbackState: * * Private structure encapsulating the entire state information of the xfer process. **/ typedef struct _GnomeVFSProgressCallbackState { /*< private >*/ /* xfer state */ GnomeVFSXferProgressInfo *progress_info; /* Callback called for every xfer operation. For async calls called in async xfer context. */ GnomeVFSXferProgressCallback sync_callback; /* Callback called periodically every few hundred miliseconds and whenever user interaction is needed. For async calls called in the context of the async call caller. */ GnomeVFSXferProgressCallback update_callback; /* User data passed to sync_callback. */ gpointer user_data; /* Async job state passed to the update callback. */ gpointer async_job_data; /* When will update_callback be called next. */ gint64 next_update_callback_time; /* When will update_callback be called next. */ gint64 next_text_update_callback_time; /* Period at which the update_callback will be called. */ gint64 update_callback_period; /* Reserved for future expansions to GnomeVFSProgressCallbackState * without having to break ABI compatibility */ void *reserved1; void *reserved2; } GnomeVFSProgressCallbackState; GnomeVFSResult gnome_vfs_xfer_uri_list (const GList *source_uri_list, const GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSXferProgressCallback progress_callback, gpointer data); GnomeVFSResult gnome_vfs_xfer_uri (const GnomeVFSURI *source_uri, const GnomeVFSURI *target_uri, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, GnomeVFSXferProgressCallback progress_callback, gpointer data); GnomeVFSResult gnome_vfs_xfer_delete_list (const GList *source_uri_list, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOptions xfer_options, GnomeVFSXferProgressCallback progress_callback, gpointer data); G_END_DECLS #endif /* GNOME_VFS_XFER_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-monitor.c0000644000175000001440000000616511334251016017417 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- gnome-vfs-mime-monitor.c: Class for noticing changes in MIME data. Copyright (C) 2000 Eazel, Inc. This program 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 distributed in the hope 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. You should have received a copy of the GNU Library General Public License along with this program; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: John Sullivan , */ #include #include "gnome-vfs-mime-monitor.h" #include "gnome-vfs-mime-private.h" #include "gnome-vfs-ops.h" enum { DATA_CHANGED, LAST_SIGNAL }; static guint signals[LAST_SIGNAL]; static GnomeVFSMIMEMonitor *global_mime_monitor = NULL; extern void _gnome_vfs_mime_info_cache_init (void); static void gnome_vfs_mime_monitor_class_init (GnomeVFSMIMEMonitorClass *klass); static void gnome_vfs_mime_monitor_init (GnomeVFSMIMEMonitor *monitor); static void gnome_vfs_mime_monitor_class_init (GnomeVFSMIMEMonitorClass *klass) { signals [DATA_CHANGED] = g_signal_new ("data_changed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GnomeVFSMIMEMonitorClass, data_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void gnome_vfs_mime_monitor_init (GnomeVFSMIMEMonitor *monitor) { _gnome_vfs_mime_info_cache_init (); } /** * gnome_vfs_mime_monitor_get: * * Get access to the single global monitor. * * Returns: the global #GnomeVFSMIMEMonitor. */ GnomeVFSMIMEMonitor * gnome_vfs_mime_monitor_get (void) { if (global_mime_monitor == NULL) { global_mime_monitor = GNOME_VFS_MIME_MONITOR (g_object_new (gnome_vfs_mime_monitor_get_type (), NULL)); } return global_mime_monitor; } void _gnome_vfs_mime_monitor_emit_data_changed (GnomeVFSMIMEMonitor *monitor) { g_return_if_fail (GNOME_VFS_IS_MIME_MONITOR (monitor)); g_signal_emit (G_OBJECT (monitor), signals [DATA_CHANGED], 0); } GType gnome_vfs_mime_monitor_get_type (void) { static GType type = 0; if (type == 0) { GTypeInfo info = { sizeof (GnomeVFSMIMEMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gnome_vfs_mime_monitor_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GnomeVFSMIMEMonitor), 0, /* n_preallocs */ (GInstanceInitFunc) gnome_vfs_mime_monitor_init }; type = g_type_register_static ( G_TYPE_OBJECT, "GnomeVFSMIMEMonitor", &info, 0); } return type; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-socket-buffer.h0000644000175000001440000000561411334251016017545 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-socket-buffer.h * * Copyright (C) 2001 Seth Nickell * Copyright (C) 2001 Maciej Stachowiak * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /* * Authors: Seth Nickell * Maciej Stachowiak * (reverse-engineered from code by Ian McKellar ) */ #ifndef GNOME_VFS_SOCKET_BUFFER_H #define GNOME_VFS_SOCKET_BUFFER_H #include "gnome-vfs-socket.h" G_BEGIN_DECLS /** * GnomeVFSSocketBuffer: * * A handle to a socket buffer. A socket buffer is a temporary in-memory storage for data * that is read from or written to a #GnomeVFSSocket. **/ typedef struct GnomeVFSSocketBuffer GnomeVFSSocketBuffer; GnomeVFSSocketBuffer* gnome_vfs_socket_buffer_new (GnomeVFSSocket *socket); GnomeVFSResult gnome_vfs_socket_buffer_destroy (GnomeVFSSocketBuffer *socket_buffer, gboolean close_socket, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_buffer_read (GnomeVFSSocketBuffer *socket_buffer, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_buffer_read_until (GnomeVFSSocketBuffer *socket_buffer, gpointer buffer, GnomeVFSFileSize bytes, gconstpointer boundary, GnomeVFSFileSize boundary_len, GnomeVFSFileSize *bytes_read, gboolean *got_boundary, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_buffer_peekc (GnomeVFSSocketBuffer *socket_buffer, char *character, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_buffer_write (GnomeVFSSocketBuffer *socket_buffer, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_buffer_flush (GnomeVFSSocketBuffer *socket_buffer, GnomeVFSCancellation *cancellation); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-configuration.c0000644000175000001440000003135411334251016017650 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-configuration.c - Handling of the GNOME Virtual File System configuration. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-configuration.h" #include #include #include #include #include "gnome-vfs-private.h" #ifdef G_OS_WIN32 #include "gnome-vfs-private-utils.h" #endif #include #include #include #include #include typedef struct _Configuration Configuration; struct _Configuration { GHashTable *method_to_module_path; time_t last_checked; GList *directories; }; typedef struct _ModulePathElement ModulePathElement; struct _ModulePathElement { char *method_name; char *path; char *args; /* options */ gboolean daemon; }; typedef struct _VfsDirSource VfsDirSource; struct _VfsDirSource { char *dirname; struct stat s; unsigned int valid : 1; }; /* Global variable */ static Configuration *configuration = NULL; G_LOCK_DEFINE_STATIC (configuration); #define MAX_CFG_FILES 128 static ModulePathElement * module_path_element_new (const char *method_name, const char *path, const char *args) { ModulePathElement *new; new = g_new (ModulePathElement, 1); new->method_name = g_strdup (method_name); new->path = g_strdup (path); new->args = g_strdup (args); return new; } static void module_path_element_free (ModulePathElement *module_path) { g_free (module_path->method_name); g_free (module_path->path); g_free (module_path->args); g_free (module_path); } static VfsDirSource * vfs_dir_source_new (const char *dirname) { VfsDirSource *new; new = g_new (VfsDirSource, 1); new->dirname = g_strdup (dirname); return new; } static void vfs_dir_source_free (VfsDirSource *vfs_source) { g_free (vfs_source->dirname); g_free (vfs_source); } static void hash_free_module_path (gpointer value) { ModulePathElement *module_path; module_path = (ModulePathElement *) value; module_path_element_free (module_path); } /* Destroy configuration information. */ static void configuration_destroy (Configuration *configuration) { g_return_if_fail (configuration != NULL); g_hash_table_destroy (configuration->method_to_module_path); g_list_foreach (configuration->directories, (GFunc) vfs_dir_source_free, NULL); g_list_free (configuration->directories); g_free (configuration); } /* This reads a line and handles backslashes at the end of the line to join lines. */ static gint read_line (FILE *stream, gchar **line_return, guint *n, guint *lines_read) { #define START_BUFFER_SIZE 1024 gboolean backslash; gint pos; if (feof (stream)) return -1; pos = 0; backslash = FALSE; *lines_read = 0; while (1) { int c; if (pos == *n) { if (*n == 0) *n = START_BUFFER_SIZE; else *n *= 2; *line_return = g_realloc (*line_return, *n); } c = fgetc (stream); if (c == '\n') (*lines_read)++; if (c == EOF || (c == '\n' && ! backslash)) { (*line_return)[pos] = 0; return pos; } if (c == '\\' && ! backslash) { backslash = TRUE; } else if (c != '\n') { if (backslash) (*line_return)[pos++] = '\\'; (*line_return)[pos] = c; pos++; backslash = FALSE; } } #undef START_BUFFER_SIZE } static void remove_comment (gchar *buf) { gchar *p; p = strchr (buf, '#'); if (p != NULL) *p = '\0'; } static gboolean parse_line (Configuration *configuration, gchar *line_buffer, guint line_len, const gchar *file_name, guint line_number) { guint string_len; gboolean retval; gchar *p; gchar *method_start; char *module_name; char *args = NULL; char *option_start; char *option; GList *method_list; GList *lp; gboolean daemon; daemon = FALSE; string_len = strlen (line_buffer); if (string_len != line_len) { g_warning (_("%s:%u contains NUL characters."), file_name, line_number); return FALSE; } remove_comment (line_buffer); line_buffer = g_strstrip (line_buffer); method_list = NULL; p = line_buffer; method_start = line_buffer; retval = TRUE; while (*p != '\0') { if (*p == ' ' || *p == '\t' || *p == ':') { gchar *method_name; if (p == method_start) { g_warning (_("%s:%u contains no method name."), file_name, line_number); retval = FALSE; goto cleanup; } method_name = g_strndup (method_start, p - method_start); method_list = g_list_prepend (method_list, method_name); while (*p == ' ' || *p == '\t') p++; if (*p == ':') { p++; break; } method_start = p; } p++; } while (*p && g_ascii_isspace (*p)) p++; if (*p == '[') { p++; while (TRUE) { while (*p && g_ascii_isspace (*p)) p++; option_start = p; while (*p && *p != ',' && *p != ']') { p++; } if (*p == '\0') { g_warning (_("%s:%u has no options endmarker."), file_name, line_number); retval = FALSE; goto cleanup; } if (p != option_start) { option = g_strndup (option_start, p - option_start); if (strcmp (option, "daemon") == 0) { daemon = TRUE; } else { g_warning (_("%s:%u has unknown options %s."), file_name, line_number, option); } g_free (option); } if (*p == ']') { p++; break; } p++; } } while (*p && g_ascii_isspace (*p)) p++; if (*p == '\0') { if (method_list != NULL) { g_warning (_("%s:%u contains no module name."), file_name, line_number); retval = FALSE; } else { /* Empty line. */ retval = TRUE; } goto cleanup; } module_name = p; while(*p && !g_ascii_isspace (*p)) p++; if(*p) { *p = '\0'; p++; while(*p && g_ascii_isspace (*p)) p++; if(*p) args = p; } for (lp = method_list; lp != NULL; lp = lp->next) { ModulePathElement *element; gchar *method_name; method_name = lp->data; element = module_path_element_new (method_name, module_name, args); element->daemon = daemon; g_hash_table_insert (configuration->method_to_module_path, method_name, element); } retval = TRUE; cleanup: if (method_list != NULL) g_list_free (method_list); return retval; } static void parse_file (Configuration *configuration, const gchar *file_name) { FILE *f; gchar *line_buffer; guint line_buffer_size; guint line_number; f = g_fopen (file_name, "r"); if (f == NULL) { g_warning (_("Configuration file `%s' was not found: %s"), file_name, strerror (errno)); return; } line_buffer = NULL; line_buffer_size = 0; line_number = 0; while (1) { guint lines_read; gint line_len; line_len = read_line (f, &line_buffer, &line_buffer_size, &lines_read); if (line_len == -1) break; /* EOF */ if (!parse_line (configuration, line_buffer, line_len, file_name, line_number)) /* stop parsing if we failed */ { g_warning (_("%s:%d aborted parsing."), file_name, line_number); break; } line_number += lines_read; } g_free (line_buffer); fclose (f); } static void configuration_load (void) { gchar *file_names[MAX_CFG_FILES + 1]; GList *list; int i = 0; GDir *dirh; configuration->method_to_module_path = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, hash_free_module_path); /* Go through the list of configuration directories and build up a list of config files */ for (list = configuration->directories; list && i < MAX_CFG_FILES; list = list->next) { VfsDirSource *dir_source = (VfsDirSource *)list->data; const char *dent; if (g_stat (dir_source->dirname, &dir_source->s) == -1) continue; dirh = g_dir_open (dir_source->dirname, 0, NULL); if(!dirh) continue; while ((dent = g_dir_read_name(dirh)) && i < MAX_CFG_FILES) { char *ctmp; ctmp = strstr(dent, ".conf"); if(!ctmp || strcmp(ctmp, ".conf")) continue; file_names[i] = g_build_filename (dir_source->dirname, dent, NULL); i++; } g_dir_close(dirh); } file_names[i] = NULL; /* Now read these cfg files */ for(i = 0; file_names[i]; i++) { parse_file (configuration, file_names[i]); g_free (file_names[i]); } } static void add_directory_internal (const char *dir) { VfsDirSource *dir_source = vfs_dir_source_new (dir); configuration->directories = g_list_prepend (configuration->directories, dir_source); } void _gnome_vfs_configuration_add_directory (const char *dir) { G_LOCK (configuration); if (configuration == NULL) { g_warning ("_gnome_vfs_configuration_init must be called prior to adding a directory."); G_UNLOCK (configuration); return; } add_directory_internal (dir); G_UNLOCK (configuration); } static void install_path_list (const gchar *environment_path) { const char *p, *oldp; oldp = environment_path; while (1) { char *elem; p = strchr (oldp, G_SEARCHPATH_SEPARATOR); if (p == NULL) { if (*oldp != '\0') { add_directory_internal (oldp); } break; } else { elem = g_strndup (oldp, p - oldp); add_directory_internal (elem); g_free (elem); } oldp = p + 1; } } gboolean _gnome_vfs_configuration_init (void) { char *home_config; char *environment_path; const char *home_dir; char *cfgdir; G_LOCK (configuration); if (configuration != NULL) { G_UNLOCK (configuration); return FALSE; } configuration = g_new0 (Configuration, 1); cfgdir = g_build_filename (GNOME_VFS_SYSCONFDIR, GNOME_VFS_MODULE_SUBDIR, NULL); add_directory_internal (cfgdir); g_free (cfgdir); environment_path = getenv ("GNOME_VFS_MODULE_CONFIG_PATH"); if (environment_path != NULL) { install_path_list (environment_path); } home_dir = g_get_home_dir (); if (home_dir != NULL) { home_config = g_build_filename (home_dir, ".gnome2", "vfs", "modules", NULL); add_directory_internal (home_config); g_free (home_config); } configuration_load (); G_UNLOCK (configuration); if (configuration == NULL) { return FALSE; } else { return TRUE; } } void _gnome_vfs_configuration_uninit (void) { G_LOCK (configuration); if (configuration == NULL) { G_UNLOCK (configuration); return; } configuration_destroy (configuration); configuration = NULL; G_UNLOCK (configuration); } static void maybe_reload (void) { time_t now = time (NULL); GList *list; gboolean need_reload = FALSE; struct stat s; /* only check every 5 seconds minimum */ if (configuration->last_checked + 5 >= now) return; for (list = configuration->directories; list; list = list->next) { VfsDirSource *dir_source = (VfsDirSource *) list->data; if (g_stat (dir_source->dirname, &s) == -1) continue; if (s.st_mtime != dir_source->s.st_mtime) { need_reload = TRUE; break; } } configuration->last_checked = now; if (!need_reload) return; configuration->last_checked = time (NULL); g_hash_table_destroy (configuration->method_to_module_path); configuration_load (); } const gchar * _gnome_vfs_configuration_get_module_path (const gchar *method_name, const char ** args, gboolean *daemon) { ModulePathElement *element; g_return_val_if_fail (method_name != NULL, NULL); G_LOCK (configuration); if (configuration != NULL) { maybe_reload (); element = g_hash_table_lookup (configuration->method_to_module_path, method_name); } else { /* This should never happen. */ g_warning ("Internal error: the configuration system was not initialized. Did you call _gnome_vfs_configuration_init?"); element = NULL; } G_UNLOCK (configuration); if (element == NULL) return NULL; if (args) *args = element->args; if (daemon) *daemon = element->daemon; return element->path; } static void add_method_to_list(const gchar *key, gpointer value, GList **methods_list) { *methods_list = g_list_append(*methods_list, g_strdup(key)); } GList * _gnome_vfs_configuration_get_methods_list (void) { GList *methods_list = NULL; G_LOCK (configuration); if (configuration != NULL) { maybe_reload (); g_hash_table_foreach(configuration->method_to_module_path, (GHFunc)add_method_to_list, &methods_list); } else { /* This should never happen. */ methods_list = NULL; } G_UNLOCK (configuration); return methods_list; } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-private.h0000644000175000001440000000315211334251016016453 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-private.h - Private header file for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_PRIVATE_H #define GNOME_VFS_PRIVATE_H #include #include #define GNOME_VFS_MODULE_SUBDIR "gnome-vfs-2.0/modules" typedef void (*GnomeVFSDaemonForceProbeCallback) (GnomeVFSVolumeMonitor *volume_monitor); void gnome_vfs_set_is_daemon (GType volume_monitor_type, GnomeVFSDaemonForceProbeCallback force_probe); gboolean gnome_vfs_get_is_daemon (void); GType gnome_vfs_get_daemon_volume_monitor_type (void); GnomeVFSDaemonForceProbeCallback _gnome_vfs_get_daemon_force_probe_callback (void); #endif /* GNOME_VFS_PRIVATE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-private.h0000644000175000001440000000372711334251016017410 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-mime-private.h * * Copyright (C) 2000 Eazel, Inc * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_MIME_PRIVATE_H #define GNOME_VFS_MIME_PRIVATE_H #include #include G_BEGIN_DECLS void _gnome_vfs_mime_info_shutdown (void); void _gnome_vfs_mime_monitor_emit_data_changed (GnomeVFSMIMEMonitor *monitor); typedef struct FileDateTracker FileDateTracker; FileDateTracker *_gnome_vfs_file_date_tracker_new (void); void _gnome_vfs_file_date_tracker_free (FileDateTracker *tracker); void _gnome_vfs_file_date_tracker_start_tracking_file (FileDateTracker *tracker, const char *local_file_path); gboolean _gnome_vfs_file_date_tracker_date_has_changed (FileDateTracker *tracker); void _gnome_vfs_mime_info_mark_gnome_mime_dir_dirty (void); void _gnome_vfs_mime_info_mark_user_mime_dir_dirty (void); GnomeVFSResult _gnome_vfs_get_slow_mime_type_internal (const char *text_uri, char **mime_type); G_END_DECLS #endif /* GNOME_VFS_MIME_PRIVATE_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ops.c0000644000175000001440000006107011334251016015600 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-ops.c - Synchronous operations for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-ops.h" #include "gnome-vfs-monitor-private.h" #include "gnome-vfs-cancellable-ops.h" #include "gnome-vfs-handle-private.h" #include "gnome-vfs-private-utils.h" #include /** * gnome_vfs_open: * @handle: pointer to a pointer to a #GnomeVFSHandle object. * @text_uri: string representing the uri to open. * @open_mode: open mode. * * Open @text_uri according to mode @open_mode. On return, @handle will then * contain a pointer to a handle for the open file. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_open (GnomeVFSHandle **handle, const gchar *text_uri, GnomeVFSOpenMode open_mode) { GnomeVFSURI *uri; GnomeVFSResult result; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *handle = NULL; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_open_uri (handle, uri, open_mode); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_open_uri: * @handle: pointer to a pointer to a #GnomeVFSHandle object. * @uri: uri to open. * @open_mode: open mode. * * Open @uri according to mode @open_mode. On return, @handle will then * contain a pointer to a handle for the open file. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_open_uri (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode) { return gnome_vfs_open_uri_cancellable (handle, uri, open_mode, NULL); } /** * gnome_vfs_create: * @handle: pointer to a pointer to a #GnomeVFSHandle object. * @text_uri: string representing the uri to create. * @open_mode: mode to leave the file opened in after creation (or %GNOME_VFS_OPEN_MODE_NONE * to leave the file closed after creation). * @exclusive: whether the file should be created in "exclusive" mode. * i.e. if this flag is nonzero, operation will fail if a file with the * same name already exists. * @perm: bitmap representing the permissions for the newly created file * (Unix style). * * Create @text_uri according to mode @open_mode. On return, @handle will then * contain a pointer to a handle for the open file. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_create (GnomeVFSHandle **handle, const gchar *text_uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm) { GnomeVFSURI *uri; GnomeVFSResult result; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *handle = NULL; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_create_uri (handle, uri, open_mode, exclusive, perm); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_forget_cache: * @handle: handle of the file to affect. * @offset: start point of the region to be freed. * @size: length of the region to be freed (or until the end of the * file if 0 is specified). * * With this call you can announce to gnome-vfs that you will no longer * use the region of data starting at @offset with the size of @size. Any * cached data for this region might then be freed. * * This might be useful if you stream large files, for example. * * Return value: an integer representing the result of the operation. * * Since: 2.12 */ GnomeVFSResult gnome_vfs_forget_cache (GnomeVFSHandle *handle, GnomeVFSFileOffset offset, GnomeVFSFileSize size) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return _gnome_vfs_handle_forget_cache (handle, offset, size); } /** * gnome_vfs_create_uri: * @handle: pointer to a pointer to a #GnomeVFSHandle object. * @uri: uri for the file to create. * @open_mode: open mode. * @exclusive: whether the file should be created in "exclusive" mode. * i.e. if this flag is nonzero, operation will fail if a file with the * same name already exists. * @perm: bitmap representing the permissions for the newly created file * (Unix style). * * Create @uri according to mode @open_mode. On return, @handle will then * contain a pointer to a handle for the open file. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_create_uri (GnomeVFSHandle **handle, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm) { return gnome_vfs_create_uri_cancellable (handle, uri, open_mode, exclusive, perm, NULL); } /** * gnome_vfs_close: * @handle: pointer to a #GnomeVFSHandle object. * * Close file associated with @handle. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_close (GnomeVFSHandle *handle) { return gnome_vfs_close_cancellable (handle, NULL); } /** * gnome_vfs_read: * @handle: handle of the file to read data from. * @buffer: pointer to a buffer that must be at least @bytes bytes large. * @bytes: number of bytes to read. * @bytes_read: pointer to a variable that will hold the number of bytes * effectively read on return. * * Read @bytes from @handle. As with Unix system calls, the number of * bytes read can effectively be less than @bytes on return and will be * stored in @bytes_read. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_read (GnomeVFSHandle *handle, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read) { return gnome_vfs_read_cancellable (handle, buffer, bytes, bytes_read, NULL); } /** * gnome_vfs_write: * @handle: handle of the file to write data to. * @buffer: pointer to the buffer containing the data to be written. * @bytes: number of bytes to write. * @bytes_written: pointer to a variable that will hold the number of bytes * effectively written on return. * * Write @bytes into the file opened through @handle. As with Unix system * calls, the number of bytes written can effectively be less than @bytes on * return and will be stored in @bytes_written. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_write (GnomeVFSHandle *handle, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written) { return gnome_vfs_write_cancellable (handle, buffer, bytes, bytes_written, NULL); } /** * gnome_vfs_seek: * @handle: handle for which the current position must be changed. * @whence: integer value representing the starting position. * @offset: number of bytes to skip from the position specified by @whence. * (a positive value means to move forward; a negative one to move backwards). * * Set the current position for reading/writing through @handle. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_seek (GnomeVFSHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset) { return gnome_vfs_seek_cancellable (handle, whence, offset, NULL); } /** * gnome_vfs_tell: * @handle: handle for which the current position must be retrieved. * @offset_return: pointer to a variable that will contain the current position * on return. * * Return the current position on @handle. This is the point in the file * pointed to by handle that reads and writes will occur on. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_tell (GnomeVFSHandle *handle, GnomeVFSFileSize *offset_return) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return _gnome_vfs_handle_do_tell (handle, offset_return); } /** * gnome_vfs_get_file_info: * @text_uri: uri of the file for which information will be retrieved. * @info: pointer to a #GnomeVFSFileInfo object that will hold the information * for the file on return. * @options: options for retrieving file information. * * Retrieve information about @text_uri. The information will be stored in * @info. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_get_file_info (const gchar *text_uri, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options) { GnomeVFSURI *uri; GnomeVFSResult result; uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = gnome_vfs_get_file_info_uri(uri, info, options); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_get_file_info_uri: * @uri: uri of the file for which information will be retrieved. * @info: pointer to a #GnomeVFSFileInfo object that will hold the information * for the file on return. * @options: options for retrieving file information. * * Retrieve information about @text_uri. The information will be stored in * @info. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_get_file_info_uri (GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options) { return gnome_vfs_get_file_info_uri_cancellable (uri, info, options, NULL); } /** * gnome_vfs_get_file_info_from_handle: * @handle: handle of the file for which information must be retrieved. * @info: pointer to a #GnomeVFSFileInfo object that will hold the information * for the file on return. * @options: options for retrieving file information. * * Retrieve information about an open file. The information will be stored in * @info. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_get_file_info_from_handle (GnomeVFSHandle *handle, GnomeVFSFileInfo *info, GnomeVFSFileInfoOptions options) { return gnome_vfs_get_file_info_from_handle_cancellable (handle, info, options, NULL); } /** * gnome_vfs_truncate: * @text_uri: string representing the file to be truncated. * @length: length of the new file at @text_uri. * * Truncate the file at @text_uri to @length bytes. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_truncate (const char *text_uri, GnomeVFSFileSize length) { GnomeVFSURI *uri; GnomeVFSResult result; uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_NOT_SUPPORTED; result = gnome_vfs_truncate_uri(uri, length); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_truncate_uri: * @uri: uri of the file to be truncated. * @length: length of the new file at @uri. * * Truncate the file at @uri to be only @length bytes. Data past @length * bytes will be discarded. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_truncate_uri (GnomeVFSURI *uri, GnomeVFSFileSize length) { return gnome_vfs_truncate_uri_cancellable(uri, length, NULL); } /** * gnome_vfs_truncate_handle: * @handle: a handle to the file to be truncated. * @length: length of the new file the handle is open to. * * Truncate the file pointed to by @handle to be only @length bytes. * Data past @length bytes will be discarded. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_truncate_handle (GnomeVFSHandle *handle, GnomeVFSFileSize length) { return gnome_vfs_truncate_handle_cancellable(handle, length, NULL); } /** * gnome_vfs_make_directory_for_uri: * @uri: uri of the directory to be created. * @perm: Unix-style permissions for the newly created directory. * * Create a directory at @uri. Only succeeds if a file or directory * does not already exist at @uri. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_make_directory_for_uri (GnomeVFSURI *uri, guint perm) { return gnome_vfs_make_directory_for_uri_cancellable (uri, perm, NULL); } /** * gnome_vfs_make_directory: * @text_uri: uri of the directory to be created. * @perm: Unix-style permissions for the newly created directory * * Create @text_uri as a directory. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_make_directory (const gchar *text_uri, guint perm) { GnomeVFSResult result; GnomeVFSURI *uri; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_make_directory_for_uri (uri, perm); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_remove_directory_from_uri: * @uri: uri of the directory to be removed. * * Remove @uri. @uri must be an empty directory. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_remove_directory_from_uri (GnomeVFSURI *uri) { return gnome_vfs_remove_directory_from_uri_cancellable (uri, NULL); } /** * gnome_vfs_remove_directory: * @text_uri: path of the directory to be removed. * * Remove @text_uri. @text_uri must be an empty directory. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_remove_directory (const gchar *text_uri) { GnomeVFSResult result; GnomeVFSURI *uri; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_remove_directory_from_uri (uri); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_unlink_from_uri: * @uri: uri of the file to be unlinked. * * Unlink @uri (i.e. delete the file). * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_unlink_from_uri (GnomeVFSURI *uri) { return gnome_vfs_unlink_from_uri_cancellable (uri, NULL); } /** * gnome_vfs_create_symbolic_link: * @uri: uri to create a link at. * @target_reference: uri "reference" to point the link to (uri or relative path). * * Creates a symbolic link, or eventually, a uri link (as necessary) * at @uri pointing to @target_reference. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_create_symbolic_link (GnomeVFSURI *uri, const gchar *target_reference) { return gnome_vfs_create_symbolic_link_cancellable (uri, target_reference, NULL); } /** * gnome_vfs_unlink: * @text_uri: uri of the file to be unlinked. * * Unlink @text_uri (i.e. delete the file). * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_unlink (const gchar *text_uri) { GnomeVFSResult result; GnomeVFSURI *uri; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_unlink_from_uri (uri); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_move_uri: * @old_uri: source uri. * @new_uri: destination uri. * @force_replace: if %TRUE, move @old_uri to @new_uri even if there * is already a file at @new_uri. If there is a file, it will be discarded. * * Move a file from uri @old_uri to @new_uri. This will only work if @old_uri * and @new_uri are on the same file system. Otherwise, it is necessary * to use the more general gnome_vfs_xfer_uri() function. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_move_uri (GnomeVFSURI *old_uri, GnomeVFSURI *new_uri, gboolean force_replace) { return gnome_vfs_move_uri_cancellable (old_uri, new_uri, force_replace, NULL); } /** * gnome_vfs_move: * @old_text_uri: string representing the source file location. * @new_text_uri: string representing the destination file location. * @force_replace: if %TRUE, perform the operation even if it unlinks an existing * file at @new_text_uri. * * Move a file from @old_text_uri to @new_text_uri. This will only work * if @old_text_uri and @new_text_uri are on the same file system. Otherwise, * it is necessary to use the more general gnome_vfs_xfer_uri() function. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_move (const gchar *old_text_uri, const gchar *new_text_uri, gboolean force_replace) { GnomeVFSURI *old_uri, *new_uri; GnomeVFSResult retval; g_return_val_if_fail (old_text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (new_text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); old_uri = gnome_vfs_uri_new (old_text_uri); if (old_uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; new_uri = gnome_vfs_uri_new (new_text_uri); if (new_uri == NULL) { gnome_vfs_uri_unref (old_uri); return GNOME_VFS_ERROR_INVALID_URI; } retval = gnome_vfs_move_uri (old_uri, new_uri, force_replace); gnome_vfs_uri_unref (old_uri); gnome_vfs_uri_unref (new_uri); return retval; } /** * gnome_vfs_check_same_fs_uris: * @source_uri: a uri. * @target_uri: another uri. * @same_fs_return: pointer to a boolean variable which will be set to %TRUE * on return if @source_uri and @target_uri are on the same file system. * * Check if @source_uri and @target_uri are on the same file system. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_check_same_fs_uris (GnomeVFSURI *source_uri, GnomeVFSURI *target_uri, gboolean *same_fs_return) { return gnome_vfs_check_same_fs_uris_cancellable (source_uri, target_uri, same_fs_return, NULL); } /** * gnome_vfs_check_same_fs: * @source: path to a file. * @target: path to another file. * @same_fs_return: pointer to a boolean variable which will be set to %TRUE * on return if @source and @target are on the same file system. * * Check if @source and @target are on the same file system. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_check_same_fs (const gchar *source, const gchar *target, gboolean *same_fs_return) { GnomeVFSURI *a_uri, *b_uri; GnomeVFSResult retval; g_return_val_if_fail (source != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (target != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (same_fs_return != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *same_fs_return = FALSE; a_uri = gnome_vfs_uri_new (source); if (a_uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; b_uri = gnome_vfs_uri_new (target); if (b_uri == NULL) { gnome_vfs_uri_unref (a_uri); return GNOME_VFS_ERROR_INVALID_URI; } retval = gnome_vfs_check_same_fs_uris (a_uri, b_uri, same_fs_return); gnome_vfs_uri_unref (a_uri); gnome_vfs_uri_unref (b_uri); return retval; } /** * gnome_vfs_set_file_info_uri: * @uri: a uri. * @info: information that must be set for the file. * @mask: bit mask representing which fields of @info need to be set. * * Set file information for @uri; only the information for which the * corresponding bit in @mask is set is actually modified. * * * @info's %valid_fields is not required to contain the * #GnomeVFSFileInfoFields corresponding to the specified * #GnomeVFSSetFileInfoMask fields of @mask. It * is assumed that the @info fields referenced by @mask * are valid. * * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_set_file_info_uri (GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask) { return gnome_vfs_set_file_info_cancellable (uri, info, mask, NULL); } /** * gnome_vfs_set_file_info: * @text_uri: string representing the file location. * @info: information that must be set for the file. * @mask: bit mask representing which fields of @info need to be set. * * Set file information for @uri; only the information for which the * corresponding bit in @mask is set is actually modified. * * * @info's %valid_fields is not required to contain the * #GnomeVFSFileInfoFields corresponding to the specified * #GnomeVFSSetFileInfoMask fields of @mask. It * is assumed that the @info fields referenced by @mask * are valid. * * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_set_file_info (const gchar *text_uri, GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask) { GnomeVFSURI *uri; GnomeVFSResult result; uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) return GNOME_VFS_ERROR_INVALID_URI; result = gnome_vfs_set_file_info_uri (uri, info, mask); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_uri_exists: * @uri: a uri. * * Check if the uri points to an existing entity. * * Return value: %TRUE if uri exists. */ gboolean gnome_vfs_uri_exists (GnomeVFSURI *uri) { GnomeVFSFileInfo *info; GnomeVFSResult result; info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (uri, info, GNOME_VFS_FILE_INFO_DEFAULT); gnome_vfs_file_info_unref (info); return result == GNOME_VFS_OK; } /** * gnome_vfs_monitor_add: * @handle: after the call, @handle will be a pointer to an operation handle. * @text_uri: string representing the uri to monitor. * @monitor_type: add a directory or file monitor. * @callback: function to call when the monitor is tripped. * @user_data: data to pass to @callback. * * Watch the file or directory at @text_uri for changes (or the creation/deletion of the file) * and call @callback when there is a change. If a directory monitor is added, @callback is * notified when any file in the directory changes. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_monitor_add (GnomeVFSMonitorHandle **handle, const gchar *text_uri, GnomeVFSMonitorType monitor_type, GnomeVFSMonitorCallback callback, gpointer user_data) { GnomeVFSURI *uri; GnomeVFSResult result; g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); *handle = NULL; g_return_val_if_fail (text_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) { return GNOME_VFS_ERROR_INVALID_URI; } if (!VFS_METHOD_HAS_FUNC(uri->method, monitor_add)) { gnome_vfs_uri_unref (uri); return GNOME_VFS_ERROR_NOT_SUPPORTED; } result = _gnome_vfs_monitor_do_add (uri->method, handle, uri, monitor_type, callback, user_data); gnome_vfs_uri_unref (uri); return result; } /** * gnome_vfs_monitor_cancel: * @handle: handle of the monitor to cancel. * * Cancel the monitor pointed to be @handle. * * Return value: an integer representing the result of the operation. */ GnomeVFSResult gnome_vfs_monitor_cancel (GnomeVFSMonitorHandle *handle) { g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); return _gnome_vfs_monitor_do_cancel (handle); } /** * gnome_vfs_file_control: * @handle: handle of the file to affect. * @operation: operation to execute. * @operation_data: data needed to execute the operation. * * Execute a backend dependent operation specified by the string @operation. * This is typically used for specialized vfs backends that need additional * operations that gnome-vfs doesn't have. Compare it to the unix call ioctl(). * The format of @operation_data depends on the operation. Operation that are * backend specific are normally namespaced by their module name. * * Return value: an integer representing the success of the operation. */ GnomeVFSResult gnome_vfs_file_control (GnomeVFSHandle *handle, const char *operation, gpointer operation_data) { return gnome_vfs_file_control_cancellable (handle, operation, operation_data, NULL); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-module-callback.h0000644000175000001440000001045411334251016020023 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-module-callback.h - registering for callbacks from modules Copyright (C) 2001 Eazel, Inc Copyright (C) 2001 Free Software Foundation Copyright (C) 2001 Maciej Stachowiak The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Maciej Stachowiak Seth Nickell Michael Fleming */ #ifndef GNOME_VFS_MODULE_CALLBACK_H #define GNOME_VFS_MODULE_CALLBACK_H #include G_BEGIN_DECLS /** * GnomeVFSModuleCallback: * @in: data passed from module to application. * @in_size: size of @in bytes. * @out: data passed from application to module. * @out_size: size of @out in bytes. * @callback_data: user data passed when connecting the callback. * * Modules use a #GnomeVFSModuleCallback to send data to * client applications and request data from them synchronously. * * The format of @in and @out is determined by the callback name. **/ typedef void (* GnomeVFSModuleCallback) (gconstpointer in, gsize in_size, gpointer out, gsize out_size, gpointer callback_data); typedef void (* GnomeVFSModuleCallbackResponse) (gpointer response_data); /** * GnomeVFSAsyncModuleCallback: * @in: data passed from module to application. * @in_size: size of @in bytes. * @out: data passed from application to module. * @out_size: size of @out in bytes. * @response: #GnomeVFSModuleCallbackResponse that must be invoked when the request is satisfied. * @response_data: data that must be passed to @response when the request is satisfied. * @callback_data: user data passed when connecting the callback. * * Modules use a #GnomeVFSModuleCallback to send data to * client applications and request data from them asynchronously. * * The application is expected to invoke the @response with @response_data * when it is able to satisfy the request. * * The format of @in and @out is determined by the callback name. **/ typedef void (* GnomeVFSAsyncModuleCallback) (gconstpointer in, gsize in_size, gpointer out, gsize out_size, gpointer callback_data, GnomeVFSModuleCallbackResponse response, gpointer response_data); void gnome_vfs_module_callback_set_default (const char *callback_name, GnomeVFSModuleCallback callback, gpointer callback_data, GDestroyNotify destroy_notify); void gnome_vfs_module_callback_push (const char *callback_name, GnomeVFSModuleCallback callback, gpointer callback_data, GDestroyNotify destroy_notify); void gnome_vfs_module_callback_pop (const char *callback_name); void gnome_vfs_async_module_callback_set_default (const char *callback_name, GnomeVFSAsyncModuleCallback callback, gpointer callback_data, GDestroyNotify destroy_notify); void gnome_vfs_async_module_callback_push (const char *callback_name, GnomeVFSAsyncModuleCallback callback, gpointer callback_data, GDestroyNotify destroy_notify); void gnome_vfs_async_module_callback_pop (const char *callback_name); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-socket.h0000644000175000001440000001446711334251016016304 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-socket.h * * Copyright (C) 2001 Seth Nickell * Copyright (C) 2001 Maciej Stachowiak * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /* * Authors: Seth Nickell * Maciej Stachowiak * (reverse-engineered from code by Ian McKellar ) */ #ifndef GNOME_VFS_SOCKET_H #define GNOME_VFS_SOCKET_H #include #include #include #include G_BEGIN_DECLS /** * GnomeVFSSocket: * * An handle to a generic unbuffered socket connection established with * gnome_vfs_socket_new(). * * The specifics of the underlying socket implementation are hidden * inside the #GnomeVFSSocketImpl passed on construction. * * If you need buffered I/O, you will also have to create a * #GnomeVFSSocketBuffer. **/ typedef struct GnomeVFSSocket GnomeVFSSocket; /** * GnomeVFSSocketReadFunc: * @connection: The socket connection. * @buffer: A connection buffer. * @bytes: The bytes to read. * @bytes_read_out: The bytes that were read (out). * @cancellation: A cancellation handle that allows clients to cancel the read operation. * * This is a generic prototype for a function that reads from a socket. * * This function is implemented by a #GnomeVFSSocketImpl, and it defines how data * should be written to a buffer using the gnome_vfs_socket_read() * function which hides the socket implementation details. * * Returns: A #GnomeVFSResult signalling the result of the read operation. **/ typedef GnomeVFSResult (*GnomeVFSSocketReadFunc) (gpointer connection, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read_out, GnomeVFSCancellation *cancellation); /** * GnomeVFSSocketWriteFunc: * @connection: The socket connection. * @buffer: A connection buffer. * @bytes: The bytes to write. * @bytes_written_out: The bytes that were written. * @cancellation: A cancellation handle that allows clients to cancel the write operation. * * This is a generic prototype for a function that writes to a socket. * * This function is implemented by a #GnomeVFSSocketImpl, and it defines how data * should be written to a buffer using the gnome_vfs_socket_write() * function which hides the socket implementation details. * * Returns: A #GnomeVFSResult signalling the result of the write operation. **/ typedef GnomeVFSResult (*GnomeVFSSocketWriteFunc) (gpointer connection, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written_out, GnomeVFSCancellation *cancellation); /** * GnomeVFSSocketCloseFunc: * @cancellation: A cancellation handle that allows clients to cancel the write operation. * * This is a generic prototype for a function that closes a socket. * * This function is implemented by a #GnomeVFSSocketImpl, and it defines how an * open socket that was previously opened by gnome_vfs_socket_new() * should be closed using the gnome_vfs_socket_set_timeout() function which * hides the socket implementation details. **/ typedef void (*GnomeVFSSocketCloseFunc) (gpointer connection, GnomeVFSCancellation *cancellation); /** * GnomeVFSSocketSetTimeoutFunc: * @cancellation: A cancellation handle that allows clients to cancel the write operation. * * This is a generic prototype for a function that sets a socket timeout. * * This function is implemented by a #GnomeVFSSocketImpl, and it defines how * a socket timeout should be set using * should be closed by the gnome_vfs_socket_close() function which * hides the socket implementation details. * * Returns: A #GnomeVFSResult signalling the result of the write operation. **/ typedef GnomeVFSResult (*GnomeVFSSocketSetTimeoutFunc) (gpointer connection, GTimeVal *timeout, GnomeVFSCancellation *cancellation); /** * GnomeVFSSocketImpl: * @read: A #GnomeVFSSocketReadFunc function used for reading from a socket. * @write: A #GnomeVFSSocketWriteFunc function used for writing to a socket. * @close: A #GnomeVFSSocketCloseFunc function used for closing an open socket. * @set_timeout: A #GnomeVFSSocketSetTimeoutFunc function used for setting a socket's timeout. * * An implementation of a generic socket (i.e. of #GnomeVFSSocket) * encapsulating the details of how socket I/O works. * * Please refer to #GnomeVFSSSL for a sample implementation of this interface. **/ typedef struct { GnomeVFSSocketReadFunc read; GnomeVFSSocketWriteFunc write; GnomeVFSSocketCloseFunc close; GnomeVFSSocketSetTimeoutFunc set_timeout; } GnomeVFSSocketImpl; GnomeVFSSocket* gnome_vfs_socket_new (GnomeVFSSocketImpl *impl, void *connection); GnomeVFSResult gnome_vfs_socket_write (GnomeVFSSocket *socket, gconstpointer buffer, int bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_close (GnomeVFSSocket *socket, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_read (GnomeVFSSocket *socket, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_socket_set_timeout (GnomeVFSSocket *socket, GTimeVal *timeout, GnomeVFSCancellation *cancellation); void gnome_vfs_socket_free (GnomeVFSSocket *socket); G_END_DECLS #endif /* GNOME_VFS_SOCKET_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ssl.h0000644000175000001440000000454211334251016015606 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-ssl.h * * Copyright (C) 2001 Ian McKellar * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * Authors: Ian McKellar */ #ifndef GNOME_VFS_SSL_H #define GNOME_VFS_SSL_H #include G_BEGIN_DECLS typedef struct GnomeVFSSSL GnomeVFSSSL; gboolean gnome_vfs_ssl_enabled (void); /* FIXME: add *some* kind of cert verification! */ GnomeVFSResult gnome_vfs_ssl_create (GnomeVFSSSL **handle_return, const char *host, unsigned int port, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_ssl_create_from_fd (GnomeVFSSSL **handle_return, gint fd, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_ssl_read (GnomeVFSSSL *ssl, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_ssl_write (GnomeVFSSSL *ssl, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation); void gnome_vfs_ssl_destroy (GnomeVFSSSL *ssl, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_ssl_set_timeout (GnomeVFSSSL *ssl, GTimeVal *timeout, GnomeVFSCancellation *cancellation); GnomeVFSSocket *gnome_vfs_ssl_to_socket (GnomeVFSSSL *ssl); G_END_DECLS #endif /* GNOME_VFS_SSL_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-async-ops.c0000644000175000001440000013217711334251016016722 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-async-ops.c - Asynchronous operations supported by the GNOME Virtual File System (version for POSIX threads). Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #include #include "gnome-vfs-async-ops.h" #include "gnome-vfs-async-job-map.h" #include "gnome-vfs-job.h" #include "gnome-vfs-job-queue.h" #include "gnome-vfs-job-limit.h" #include #include /** * gnome_vfs_async_cancel: * @handle: handle of the async operation to be cancelled. * * Cancel an asynchronous operation and close all its callbacks. * * In a single-threaded application, its guaranteed that if you * call this before the operation finished callback has been called * the callback will never be called. * * However, in a multithreaded application, or to be more specific, if * you call gnome_vfs_async_cancel from another thread than the thread * handling the glib mainloop, there is a race condition where if * the operation finished callback was just dispatched, you might * still cancel the operation. So, in this case you need to handle the * fact that the operation callback might still run even though another * thread has cancelled the operation. * * One way to avoid problems from this is to mark the data structure you're * using as callback_data as destroyed, and then queue an idle and do the * actual freeing in an idle handler. The idle handler is guaranteed to run * after the callback has been exectuted, so by then it is safe to destroy * the callback_data. The callback handler must handle the case where the * callback_data is marked destroyed by doing nothing. * * This is clearly not ideal for multithreaded applications, but as good as * we can with the current API. Eventually we'll have to change the API to * make this work better. */ void gnome_vfs_async_cancel (GnomeVFSAsyncHandle *handle) { GnomeVFSJob *job; _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job == NULL) { JOB_DEBUG (("job %u - job no longer exists", GPOINTER_TO_UINT (handle))); /* have to cancel the callbacks because they still can be pending */ _gnome_vfs_async_job_cancel_job_and_callbacks (handle, NULL); } else { /* Cancel the job in progress. OK to do outside of job->job_lock, * job lifetime is protected by _gnome_vfs_async_job_map_lock. */ _gnome_vfs_job_module_cancel (job); _gnome_vfs_async_job_cancel_job_and_callbacks (handle, job); } _gnome_vfs_async_job_map_unlock (); } static GnomeVFSAsyncHandle * async_open (GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSOpenOp *open_op; GnomeVFSAsyncHandle *result; job = _gnome_vfs_job_new (GNOME_VFS_OP_OPEN, priority, (GFunc) callback, callback_data); open_op = &job->op->specifics.open; open_op->uri = uri == NULL ? NULL : gnome_vfs_uri_ref (uri); open_op->open_mode = open_mode; result = job->job_handle; _gnome_vfs_job_go (job); return result; } /** * gnome_vfs_async_open_uri: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @uri: uri to open. * @open_mode: open mode. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Open @uri according to mode @open_mode. On return, @handle_return will * contain a pointer to the operation. Once the file has been successfully opened, * @callback will be called with the #GnomeVFSResult. */ void gnome_vfs_async_open_uri (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data) { g_return_if_fail (handle_return != NULL); g_return_if_fail (uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); *handle_return = async_open (uri, open_mode, priority, callback, callback_data); } /** * gnome_vfs_async_open: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @text_uri: string of the uri to open. * @open_mode: open mode. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Open @text_uri according to mode @open_mode. On return, @handle_return will * contain a pointer to the operation. Once the file has been successfully opened, * @callback will be called with the #GnomeVFSResult. */ void gnome_vfs_async_open (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data) { GnomeVFSURI *uri; g_return_if_fail (handle_return != NULL); g_return_if_fail (text_uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); uri = gnome_vfs_uri_new (text_uri); *handle_return = async_open (uri, open_mode, priority, callback, callback_data); if (uri != NULL) { gnome_vfs_uri_unref (uri); } } static GnomeVFSAsyncHandle * async_open_as_channel (GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, guint advised_block_size, int priority, GnomeVFSAsyncOpenAsChannelCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSOpenAsChannelOp *open_as_channel_op; GnomeVFSAsyncHandle *result; job = _gnome_vfs_job_new (GNOME_VFS_OP_OPEN_AS_CHANNEL, priority, (GFunc) callback, callback_data); open_as_channel_op = &job->op->specifics.open_as_channel; open_as_channel_op->uri = uri == NULL ? NULL : gnome_vfs_uri_ref (uri); open_as_channel_op->open_mode = open_mode; open_as_channel_op->advised_block_size = advised_block_size; result = job->job_handle; _gnome_vfs_job_go (job); return result; } /** * gnome_vfs_async_open_uri_as_channel: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @uri: uri to open as a #GIOChannel. * @open_mode: open mode i.e. for reading, writing, random, etc. * @advised_block_size: the preferred block size for #GIOChannel to read. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Open @uri as a #GIOChannel. Once the channel has been established * @callback will be called with @callback_data, the result of the operation, * and if the result was %GNOME_VFS_OK, a reference to a #GIOChannel pointing * at @uri in @open_mode. * * Deprecated: This function has been deprecated due to behaving weirdly which suggests * that it shouldn't be used. See bugs #157266, #157265, #157261, #138398 in * the GNOME Bugzilla. If the *_as_channel functions are needed they should be * fixed and undeprecated. */ void gnome_vfs_async_open_uri_as_channel (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, guint advised_block_size, int priority, GnomeVFSAsyncOpenAsChannelCallback callback, gpointer callback_data) { g_return_if_fail (handle_return != NULL); g_return_if_fail (uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); *handle_return = async_open_as_channel (uri, open_mode, advised_block_size, priority, callback, callback_data); } /** * gnome_vfs_async_open_as_channel: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @text_uri: string of the uri to open as a #GIOChannel. * @open_mode: open mode i.e. for reading, writing, random, etc. * @advised_block_size: the preferred block size for #GIOChannel to read. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Open @text_uri as a #GIOChannel. Once the channel has been established * @callback will be called with @callback_data, the result of the operation, * and if the result was %GNOME_VFS_OK, a reference to a #GIOChannel pointing * at @text_uri in @open_mode. * * This function has been deprecated due to behaving weirdly which suggests * that it hasn't been used. See bugs #157266, #157265, #157261, #138398 in * the GNOME Bugzilla. If the *_as_channel functions are needed they should be * fixed and undeprecated. */ void gnome_vfs_async_open_as_channel (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, guint advised_block_size, int priority, GnomeVFSAsyncOpenAsChannelCallback callback, gpointer callback_data) { GnomeVFSURI *uri; g_return_if_fail (handle_return != NULL); g_return_if_fail (text_uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); uri = gnome_vfs_uri_new (text_uri); *handle_return = async_open_as_channel (uri, open_mode, advised_block_size, priority, callback, callback_data); if (uri != NULL) { gnome_vfs_uri_unref (uri); } } static GnomeVFSAsyncHandle * async_create (GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSCreateOp *create_op; GnomeVFSAsyncHandle *result; job = _gnome_vfs_job_new (GNOME_VFS_OP_CREATE, priority, (GFunc) callback, callback_data); create_op = &job->op->specifics.create; create_op->uri = uri == NULL ? NULL : gnome_vfs_uri_ref (uri); create_op->open_mode = open_mode; create_op->exclusive = exclusive; create_op->perm = perm; result = job->job_handle; _gnome_vfs_job_go (job); return result; } /** * gnome_vfs_async_create_uri: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @uri: uri to create a file at. * @open_mode: mode to leave the file opened in after creation (or %GNOME_VFS_OPEN_MODE_NONE * to leave the file closed after creation). * @exclusive: Whether the file should be created in "exclusive" mode: * i.e. if this flag is nonzero, operation will fail if a file with the * same name already exists. * @perm: bitmap representing the permissions for the newly created file * (Unix style). * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Create a file at @uri according to mode @open_mode, with permissions @perm (in * the standard UNIX packed bit permissions format). When the create has been completed * @callback will be called with the result code and @callback_data. */ void gnome_vfs_async_create_uri (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data) { g_return_if_fail (handle_return != NULL); g_return_if_fail (uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); *handle_return = async_create (uri, open_mode, exclusive, perm, priority, callback, callback_data); } /** * gnome_vfs_async_create: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @text_uri: string representing the uri to create. * @open_mode: mode to leave the file opened in after creation (or %GNOME_VFS_OPEN_MODE_NONE * to leave the file closed after creation). * @exclusive: whether the file should be created in "exclusive" mode: * i.e. if this flag is nonzero, operation will fail if a file with the * same name already exists. * @perm: bitmap representing the permissions for the newly created file * (Unix style). * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Create a file at @uri according to mode @open_mode, with permissions @perm (in * the standard UNIX packed bit permissions format). When the create has been completed * @callback will be called with the result code and @callback_data. */ void gnome_vfs_async_create (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data) { GnomeVFSURI *uri; g_return_if_fail (handle_return != NULL); g_return_if_fail (text_uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); uri = gnome_vfs_uri_new (text_uri); *handle_return = async_create (uri, open_mode, exclusive, perm, priority, callback, callback_data); if (uri != NULL) { gnome_vfs_uri_unref (uri); } } /** * gnome_vfs_async_create_as_channel: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @text_uri: string of the uri to open as a #GIOChannel, creating it as necessary. * @open_mode: open mode i.e. for reading, writing, random, etc. * @exclusive: replace the file if it already exists. * @perm: standard POSIX-style permissions bitmask, permissions of created file. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Open @text_uri as a #GIOChannel, creating it as necessary. Once the channel has * been established @callback will be called with @callback_data, the result of the * operation, and if the result was %GNOME_VFS_OK, a reference to a #GIOChannel pointing * at @text_uri in @open_mode. * * This function has been deprecated due to behaving weirdly which suggests * that it hasn't been used. See bugs #157266, #157265, #157261, #138398 in * the GNOME Bugzilla. If the *_as_channel functions are needed they should be * fixed and undeprecated. */ void gnome_vfs_async_create_as_channel (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncOpenAsChannelCallback callback, gpointer callback_data) { GnomeVFSURI *uri; g_return_if_fail (text_uri != NULL); uri = gnome_vfs_uri_new (text_uri); gnome_vfs_async_create_uri_as_channel (handle_return, uri, open_mode, exclusive, perm, priority, callback, callback_data); if (uri != NULL) { gnome_vfs_uri_unref (uri); } } /** * gnome_vfs_async_create_uri_as_channel: * @handle_return: pointer to a pointer to a #GnomeVFSHandle object. * @uri: uri to open as a #GIOChannel, creating it as necessary. * @open_mode: open mode i.e. for reading, writing, random, etc. * @exclusive: replace the file if it already exists. * @perm: standard POSIX-style permissions bitmask, permissions of created file. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Open @uri as a #GIOChannel, creating it as necessary. Once the channel has * been established @callback will be called with @callback_data, the result of the * operation, and if the result was %GNOME_VFS_OK, a reference to a #GIOChannel pointing * at @text_uri in @open_mode. * * Since: 2.12 */ void gnome_vfs_async_create_uri_as_channel (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSOpenMode open_mode, gboolean exclusive, guint perm, int priority, GnomeVFSAsyncCreateAsChannelCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSCreateAsChannelOp *create_as_channel_op; g_return_if_fail (handle_return != NULL); g_return_if_fail (uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); job = _gnome_vfs_job_new (GNOME_VFS_OP_CREATE_AS_CHANNEL, priority, (GFunc) callback, callback_data); create_as_channel_op = &job->op->specifics.create_as_channel; create_as_channel_op->uri = uri == NULL ? NULL : gnome_vfs_uri_ref (uri); create_as_channel_op->open_mode = open_mode; create_as_channel_op->exclusive = exclusive; create_as_channel_op->perm = perm; *handle_return = job->job_handle; _gnome_vfs_job_go (job); } /** * gnome_vfs_async_close: * @handle: async handle to close. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Close @handle opened with gnome_vfs_async_open(). When the close * has completed, @callback will be called with @callback_data and * the result of the operation. */ void gnome_vfs_async_close (GnomeVFSAsyncHandle *handle, GnomeVFSAsyncCloseCallback callback, gpointer callback_data) { GnomeVFSJob *job; g_return_if_fail (handle != NULL); g_return_if_fail (callback != NULL); for (;;) { _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job == NULL) { g_warning ("trying to read a non-existing handle"); _gnome_vfs_async_job_map_unlock (); return; } if (job->op->type != GNOME_VFS_OP_READ && job->op->type != GNOME_VFS_OP_WRITE) { _gnome_vfs_job_set (job, GNOME_VFS_OP_CLOSE, (GFunc) callback, callback_data); _gnome_vfs_job_go (job); _gnome_vfs_async_job_map_unlock (); return; } /* Still reading, wait a bit, cancel should be pending. * This mostly handles a race condition that can happen * on a dual CPU machine where a cancel stops a read before * the read thread picks up and a close then gets scheduled * on a new thread. Without this the job op type would be * close for both threads and two closes would get executed */ _gnome_vfs_async_job_map_unlock (); g_usleep (100); } } /** * gnome_vfs_async_read: * @handle: handle for the file to be read. * @buffer: allocated block of memory to read into. * @bytes: number of bytes to read. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Read @bytes bytes from the file pointed to be @handle into @buffer. * When the operation is complete, @callback will be called with the * result of the operation and @callback_data. */ void gnome_vfs_async_read (GnomeVFSAsyncHandle *handle, gpointer buffer, guint bytes, GnomeVFSAsyncReadCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSReadOp *read_op; g_return_if_fail (handle != NULL); g_return_if_fail (buffer != NULL); g_return_if_fail (callback != NULL); _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job == NULL) { g_warning ("trying to read from a non-existing handle"); _gnome_vfs_async_job_map_unlock (); return; } _gnome_vfs_job_set (job, GNOME_VFS_OP_READ, (GFunc) callback, callback_data); read_op = &job->op->specifics.read; read_op->buffer = buffer; read_op->num_bytes = bytes; _gnome_vfs_job_go (job); _gnome_vfs_async_job_map_unlock (); } /** * gnome_vfs_async_write: * @handle: handle for the file to be written. * @buffer: block of memory containing data to be written. * @bytes: number of bytes to write. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Write @bytes bytes from @buffer into the file pointed to be @handle. * When the operation is complete, @callback will be called with the * result of the operation and @callback_data. */ void gnome_vfs_async_write (GnomeVFSAsyncHandle *handle, gconstpointer buffer, guint bytes, GnomeVFSAsyncWriteCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSWriteOp *write_op; g_return_if_fail (handle != NULL); g_return_if_fail (buffer != NULL); g_return_if_fail (callback != NULL); _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job == NULL) { g_warning ("trying to write to a non-existing handle"); _gnome_vfs_async_job_map_unlock (); return; } _gnome_vfs_job_set (job, GNOME_VFS_OP_WRITE, (GFunc) callback, callback_data); write_op = &job->op->specifics.write; write_op->buffer = buffer; write_op->num_bytes = bytes; _gnome_vfs_job_go (job); _gnome_vfs_async_job_map_unlock (); } /** * gnome_vfs_async_seek: * @handle: handle for which the current position must be changed. * @whence: integer value representing the starting position. * @offset: number of bytes to skip from the position specified by @whence. * (a positive value means to move forward; a negative one to move backwards). * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Set the current position for reading/writing through @handle. * When the operation is complete, @callback will be called with the * result of the operation and @callback_data. */ void gnome_vfs_async_seek (GnomeVFSAsyncHandle *handle, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset, GnomeVFSAsyncSeekCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSSeekOp *seek_op; g_return_if_fail (handle != NULL); g_return_if_fail (callback != NULL); _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job == NULL) { g_warning ("trying to seek in a non-existing handle"); _gnome_vfs_async_job_map_unlock (); return; } _gnome_vfs_job_set (job, GNOME_VFS_OP_SEEK, (GFunc) callback, callback_data); seek_op = &job->op->specifics.seek; seek_op->whence = whence; seek_op->offset = offset; _gnome_vfs_job_go (job); _gnome_vfs_async_job_map_unlock (); } /** * gnome_vfs_async_create_symbolic_link: * @handle_return: when the function returns, will point to a handle for * the async operation. * @uri: location to create the link at. * @uri_reference: location to point @uri to (can be a uri fragment, i.e. relative). * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Create a symbolic link at @uri pointing to @uri_reference. When the operation * has completed @callback will be called with the result of the operation and * @callback_data. */ void gnome_vfs_async_create_symbolic_link (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, const gchar *uri_reference, int priority, GnomeVFSAsyncOpenCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSCreateLinkOp *create_op; g_return_if_fail (handle_return != NULL); g_return_if_fail (uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); job = _gnome_vfs_job_new (GNOME_VFS_OP_CREATE_SYMBOLIC_LINK, priority, (GFunc) callback, callback_data); create_op = &job->op->specifics.create_symbolic_link; create_op->uri = gnome_vfs_uri_ref (uri); create_op->uri_reference = g_strdup (uri_reference); *handle_return = job->job_handle; _gnome_vfs_job_go (job); } /** * gnome_vfs_async_get_file_info: * @handle_return: when the function returns, will point to a handle for * the async operation. * @uri_list: a #GList of #GnomeVFSURIs to fetch information about. * @options: packed boolean type providing control over various details * of the get_file_info operation. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Fetch information about the files indicated in @uri_list and return the * information progressively to @callback. */ void gnome_vfs_async_get_file_info (GnomeVFSAsyncHandle **handle_return, GList *uri_list, GnomeVFSFileInfoOptions options, int priority, GnomeVFSAsyncGetFileInfoCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSGetFileInfoOp *get_info_op; g_return_if_fail (handle_return != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); job = _gnome_vfs_job_new (GNOME_VFS_OP_GET_FILE_INFO, priority, (GFunc) callback, callback_data); get_info_op = &job->op->specifics.get_file_info; get_info_op->uris = gnome_vfs_uri_list_copy (uri_list); get_info_op->options = options; *handle_return = job->job_handle; _gnome_vfs_job_go (job); } /** * gnome_vfs_async_set_file_info: * @handle_return: when the function returns, will point to a handle for * the async operation. * @uri: uri to set the file info of. * @info: the struct containing new information about the file. * @mask: control which fields of @info are to be changed about the file at @uri. * @options: packed boolean type providing control over various details * of the set_file_info operation. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Set file info details about the file at @uri, such as permissions, name, * owner, and modification time. */ void gnome_vfs_async_set_file_info (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSFileInfo *info, GnomeVFSSetFileInfoMask mask, GnomeVFSFileInfoOptions options, int priority, GnomeVFSAsyncSetFileInfoCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSSetFileInfoOp *op; g_return_if_fail (handle_return != NULL); g_return_if_fail (uri != NULL); g_return_if_fail (info != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); job = _gnome_vfs_job_new (GNOME_VFS_OP_SET_FILE_INFO, priority, (GFunc) callback, callback_data); op = &job->op->specifics.set_file_info; op->uri = gnome_vfs_uri_ref (uri); op->info = gnome_vfs_file_info_new (); gnome_vfs_file_info_copy (op->info, info); op->mask = mask; op->options = options; *handle_return = job->job_handle; _gnome_vfs_job_go (job); } /** * gnome_vfs_async_find_directory: * @handle_return: when the function returns, will point to a handle for the operation. * @near_uri_list: a #GList of #GnomeVFSURIs, find a special directory on the same * volume as @near_uri_list. * @kind: kind of special directory. * @create_if_needed: if directory we are looking for does not exist, try to create it. * @find_if_needed: if we don't know where the directory is yet, look for it. * @permissions: if creating, use these permissions. * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @user_data: data to pass to @callback. * * Used to return special directories such as Trash and Desktop from different * file systems. * * There is quite a complicated logic behind finding/creating a Trash directory * and you need to be aware of some implications: * Finding the Trash the first time when using the file method may be pretty * expensive. A cache file is used to store the location of that Trash file * for next time. * If @create_if_needed is specified without @find_if_needed, you may end up * creating a Trash file when there already is one. Your app should start out * by doing a gnome_vfs_find_directory with the @find_if_needed to avoid this * and then use the @create_if_needed flag to create Trash lazily when it is * needed for throwing away an item on a given disk. * * When the operation has completed, @callback will be called with the result * of the operation and @user_data. */ void gnome_vfs_async_find_directory (GnomeVFSAsyncHandle **handle_return, GList *near_uri_list, GnomeVFSFindDirectoryKind kind, gboolean create_if_needed, gboolean find_if_needed, guint permissions, int priority, GnomeVFSAsyncFindDirectoryCallback callback, gpointer user_data) { GnomeVFSJob *job; GnomeVFSFindDirectoryOp *get_info_op; g_return_if_fail (handle_return != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); job = _gnome_vfs_job_new (GNOME_VFS_OP_FIND_DIRECTORY, priority, (GFunc) callback, user_data); get_info_op = &job->op->specifics.find_directory; get_info_op->uris = gnome_vfs_uri_list_copy (near_uri_list); get_info_op->kind = kind; get_info_op->create_if_needed = create_if_needed; get_info_op->find_if_needed = find_if_needed; get_info_op->permissions = permissions; *handle_return = job->job_handle; _gnome_vfs_job_go (job); } /* Register GnomeVFSFindDirectoryResult in the GType system */ GType gnome_vfs_find_directory_result_get_type (void) { static GType our_type = 0; if (our_type == 0) { our_type = g_boxed_type_register_static ("GnomeVfsFindDirectoryResult", (GBoxedCopyFunc) gnome_vfs_find_directory_result_dup, (GBoxedFreeFunc) gnome_vfs_find_directory_result_free); } return our_type; } /** * gnome_vfs_find_directory_result_dup: * @result: a #GnomeVFSFindDirectoryResult. * * Duplicates @result. * * Note: The internal uri is not duplicated but its * refcount is incremented. * * Return value: A 1:1 copy of @result. * * Since: 2.12 */ GnomeVFSFindDirectoryResult* gnome_vfs_find_directory_result_dup (GnomeVFSFindDirectoryResult *result) { GnomeVFSFindDirectoryResult *copy; g_return_val_if_fail (result != NULL, NULL); copy = g_new0 (GnomeVFSFindDirectoryResult, 1); /* "Copy" and ref the objects. */ copy->uri = result->uri; gnome_vfs_uri_ref (result->uri); copy->result = result->result; return copy; } /** * gnome_vfs_find_directory_result_free: * @result: a #GnomeVFSFindDirectoryResult. * * Unrefs the inner uri object and frees the memory * allocated for @result. * * Since: 2.12 */ void gnome_vfs_find_directory_result_free (GnomeVFSFindDirectoryResult* result) { g_return_if_fail (result != NULL); gnome_vfs_uri_unref (result->uri); result->uri = NULL; g_free (result); } static GnomeVFSAsyncHandle * async_load_directory (GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, guint items_per_notification, int priority, GnomeVFSAsyncDirectoryLoadCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSLoadDirectoryOp *load_directory_op; GnomeVFSAsyncHandle *result; job = _gnome_vfs_job_new (GNOME_VFS_OP_LOAD_DIRECTORY, priority, (GFunc) callback, callback_data); load_directory_op = &job->op->specifics.load_directory; load_directory_op->uri = uri == NULL ? NULL : gnome_vfs_uri_ref (uri); load_directory_op->options = options; load_directory_op->items_per_notification = items_per_notification; result = job->job_handle; _gnome_vfs_job_go (job); return result; } /** * gnome_vfs_async_load_directory: * @handle_return: when the function returns, will point to a handle for * the async operation. * @text_uri: string representing the uri of the directory to be loaded. * @options: packed boolean type providing control over various details * of the get_file_info operation. * @items_per_notification: number of files to process in a row before calling @callback * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign to this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Read the contents of the directory at @text_uri, passing back #GnomeVFSFileInfo * structs about each file in the directory to @callback. @items_per_notification * files will be processed between each call to @callback. */ void gnome_vfs_async_load_directory (GnomeVFSAsyncHandle **handle_return, const gchar *text_uri, GnomeVFSFileInfoOptions options, guint items_per_notification, int priority, GnomeVFSAsyncDirectoryLoadCallback callback, gpointer callback_data) { GnomeVFSURI *uri; g_return_if_fail (handle_return != NULL); g_return_if_fail (text_uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); uri = gnome_vfs_uri_new (text_uri); *handle_return = async_load_directory (uri, options, items_per_notification, priority, callback, callback_data); if (uri != NULL) { gnome_vfs_uri_unref (uri); } } /** * gnome_vfs_async_load_directory_uri: * @handle_return: when the function returns, will point to a handle for * the async operation. * @uri: uri of the directory to be loaded. * @options: packed boolean type providing control over various details * of the get_file_info operation. * @items_per_notification: number of files to process in a row before calling @callback * @priority: a value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @callback: function to be called when the operation is complete. * @callback_data: data to pass to @callback. * * Read the contents of the directory at @uri, passing back #GnomeVFSFileInfo structs * about each file in the directory to @callback. @items_per_notification * files will be processed between each call to @callback. */ void gnome_vfs_async_load_directory_uri (GnomeVFSAsyncHandle **handle_return, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options, guint items_per_notification, int priority, GnomeVFSAsyncDirectoryLoadCallback callback, gpointer callback_data) { g_return_if_fail (handle_return != NULL); g_return_if_fail (uri != NULL); g_return_if_fail (callback != NULL); g_return_if_fail (priority >= GNOME_VFS_PRIORITY_MIN); g_return_if_fail (priority <= GNOME_VFS_PRIORITY_MAX); *handle_return = async_load_directory (uri, options, items_per_notification, priority, callback, callback_data); } /** * gnome_vfs_async_xfer: * @handle_return: when the function returns, will point to a handle for the operation. * @source_uri_list: A #GList of source #GnomeVFSURIs. * @target_uri_list: A #GList of target #GnomeVFSURIs, each corresponding to one URI in * @source_uri_list. * @xfer_options: #GnomeVFSXferOptions defining the desired operation and parameters. * @error_mode: A #GnomeVFSErrorMode specifying how to proceed if a VFS error occurs. * @overwrite_mode: A #GnomeVFSOverwriteMode specifying how to proceed if a file is being overwritten. * @priority: A value from %GNOME_VFS_PRIORITY_MIN to %GNOME_VFS_PRIORITY_MAX (normally * should be %GNOME_VFS_PRIORITY_DEFAULT) indicating the priority to assign this job * in allocating threads from the thread pool. * @progress_update_callback: A #GnomeVFSAsyncXferCallback called periodically for * informing the program about progress, and when the program requires responses to * interactive queries (e.g. overwriting files, handling errors, etc). * @update_callback_data: User data to pass to @progress_update_callback. * @progress_sync_callback: An optional #GnomeVFSXferCallback called whenever some state changed. * @sync_callback_data: User data to pass to @progress_sync_callback. * * Performs an Xfer operation in a seperate thread, otherwise like * gnome_vfs_xfer_uri_list(). * * See #GnomeVFSAsyncXferProgressCallback and #GnomeVFSXferProgressCallback for details on how the * callback mechanism works. * * * * @progress_sync_callback should only be used if you want to execute additional * actions that may not wait until after the transfer, for instance because * you have to do them for each transferred file/directory, and that require * a very specific action to be taken. For instance, the Nautilus application * schedules metadata removal/moving/copying at specific phases. * * * Do not use @progress_sync_callback if you just need user feedback, because * each invocation is expensive, and requires a context switch. * * * If you use both @progress_update_callback and @progress_sync_callback, * the @progress_sync_callback will always be invoked before the * @progress_update_callback. It is recommended to do conflict * handling in @progress_update_callback, and always return %TRUE * in @progress_sync_callback, because if the Xfer's * #GnomeVFSXferProgressStatus is %GNOME_VFS_XFER_PROGRESS_STATUS_OK, * @progress_update_callback will only be invoked if it hasn't * been invoked within the last 100 milliseconds, and if * @progress_update_callback is not invoked, only * @progress_sync_callback is authoritative for the * further processing, causing abortion if it is %FALSE. * * * * Return value: %GNOME_VFS_OK if the paramaters were in order, * or %GNOME_VFS_ERROR_BAD_PARAMETERS if something was wrong in the passed in arguments. */ GnomeVFSResult gnome_vfs_async_xfer (GnomeVFSAsyncHandle **handle_return, GList *source_uri_list, GList *target_uri_list, GnomeVFSXferOptions xfer_options, GnomeVFSXferErrorMode error_mode, GnomeVFSXferOverwriteMode overwrite_mode, int priority, GnomeVFSAsyncXferProgressCallback progress_update_callback, gpointer update_callback_data, GnomeVFSXferProgressCallback progress_sync_callback, gpointer sync_callback_data) { GnomeVFSJob *job; GnomeVFSXferOp *xfer_op; g_return_val_if_fail (handle_return != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (progress_update_callback != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (priority >= GNOME_VFS_PRIORITY_MIN, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (priority <= GNOME_VFS_PRIORITY_MAX, GNOME_VFS_ERROR_BAD_PARAMETERS); job = _gnome_vfs_job_new (GNOME_VFS_OP_XFER, priority, (GFunc) progress_update_callback, update_callback_data); xfer_op = &job->op->specifics.xfer; xfer_op->source_uri_list = gnome_vfs_uri_list_copy (source_uri_list); xfer_op->target_uri_list = gnome_vfs_uri_list_copy (target_uri_list); xfer_op->xfer_options = xfer_options; xfer_op->error_mode = error_mode; xfer_op->overwrite_mode = overwrite_mode; xfer_op->progress_sync_callback = progress_sync_callback; xfer_op->sync_callback_data = sync_callback_data; *handle_return = job->job_handle; _gnome_vfs_job_go (job); return GNOME_VFS_OK; } /** * gnome_vfs_async_file_control: * @handle: handle of the file to affect. * @operation: operation to execute. * @operation_data: data needed to execute the operation. * @operation_data_destroy_func: callback to destroy @operation_data when its no longer needed. * @callback: function to be called when the @operation is complete. * @callback_data: data to pass to @callback. * * Execute a backend dependent operation specified by the string @operation. * This is typically used for specialized vfs backends that need additional * operations that gnome-vfs doesn't have. Compare it to the unix call ioctl(). * The format of @operation_data depends on the operation. Operation that are * backend specific are normally namespaced by their module name. * * When the operation is complete, @callback will be called with the * result of the operation, @operation_data and @callback_data. * * Since: 2.2 */ void gnome_vfs_async_file_control (GnomeVFSAsyncHandle *handle, const char *operation, gpointer operation_data, GDestroyNotify operation_data_destroy_func, GnomeVFSAsyncFileControlCallback callback, gpointer callback_data) { GnomeVFSJob *job; GnomeVFSFileControlOp *file_control_op; g_return_if_fail (handle != NULL); g_return_if_fail (operation != NULL); g_return_if_fail (callback != NULL); _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job == NULL) { g_warning ("trying to call file_control on a non-existing handle"); _gnome_vfs_async_job_map_unlock (); return; } _gnome_vfs_job_set (job, GNOME_VFS_OP_FILE_CONTROL, (GFunc) callback, callback_data); file_control_op = &job->op->specifics.file_control; file_control_op->operation = g_strdup (operation); file_control_op->operation_data = operation_data; file_control_op->operation_data_destroy_func = operation_data_destroy_func; _gnome_vfs_job_go (job); _gnome_vfs_async_job_map_unlock (); } #ifdef OLD_CONTEXT_DEPRECATED guint gnome_vfs_async_add_status_callback (GnomeVFSAsyncHandle *handle, GnomeVFSStatusCallback callback, gpointer user_data) { GnomeVFSJob *job; guint result; g_return_val_if_fail (handle != NULL, 0); g_return_val_if_fail (callback != NULL, 0); _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job->op != NULL || job->op->context != NULL) { g_warning ("job or context not found"); _gnome_vfs_async_job_map_unlock (); return 0; } result = gnome_vfs_message_callbacks_add (gnome_vfs_context_get_message_callbacks (job->op->context), callback, user_data); _gnome_vfs_async_job_map_unlock (); return result; } void gnome_vfs_async_remove_status_callback (GnomeVFSAsyncHandle *handle, guint callback_id) { GnomeVFSJob *job; g_return_if_fail (handle != NULL); g_return_if_fail (callback_id > 0); _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (handle); if (job->op != NULL || job->op->context != NULL) { g_warning ("job or context not found"); _gnome_vfs_async_job_map_unlock (); return; } gnome_vfs_message_callbacks_remove (gnome_vfs_context_get_message_callbacks (job->op->context), callback_id); _gnome_vfs_async_job_map_unlock (); } #endif /* OLD_CONTEXT_DEPRECATED */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-mime-sniff-buffer.h0000644000175000001440000000502311334251016020301 00000000000000/* * gnome-vfs-mime-sniff-buffer.h * Utility for implementing gnome_vfs_mime_type_from_magic, and other * mime-type sniffing calls. * * Copyright (C) 2000 Eazel, Inc. * All rights reserved. * * This file is part of the Gnome Library. * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_MIME_SNIFF_BUFFER_H #define GNOME_VFS_MIME_SNIFF_BUFFER_H #include G_BEGIN_DECLS typedef GnomeVFSResult (* GnomeVFSSniffBufferSeekCall)(gpointer context, GnomeVFSSeekPosition whence, GnomeVFSFileOffset offset); typedef GnomeVFSResult (* GnomeVFSSniffBufferReadCall)(gpointer context, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read); typedef struct GnomeVFSMimeSniffBuffer GnomeVFSMimeSniffBuffer; GnomeVFSMimeSniffBuffer *_gnome_vfs_mime_sniff_buffer_new_from_handle (GnomeVFSHandle *file); GnomeVFSMimeSniffBuffer *_gnome_vfs_mime_sniff_buffer_new_from_memory (const guchar *buffer, gssize buffer_size); GnomeVFSMimeSniffBuffer *gnome_vfs_mime_sniff_buffer_new_from_existing_data (const guchar *buffer, gssize buffer_size); GnomeVFSMimeSniffBuffer *_gnome_vfs_mime_sniff_buffer_new_generic (GnomeVFSSniffBufferSeekCall seek_callback, GnomeVFSSniffBufferReadCall read_callback, gpointer context); void gnome_vfs_mime_sniff_buffer_free (GnomeVFSMimeSniffBuffer *buffer); GnomeVFSResult _gnome_vfs_mime_sniff_buffer_get (GnomeVFSMimeSniffBuffer *buffer, gssize size); const char *gnome_vfs_get_mime_type_for_buffer (GnomeVFSMimeSniffBuffer *buffer); gboolean _gnome_vfs_sniff_buffer_looks_like_text (GnomeVFSMimeSniffBuffer *buffer); gboolean _gnome_vfs_sniff_buffer_looks_like_mp3 (GnomeVFSMimeSniffBuffer *buffer); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ace.c0000644000175000001440000002777411334251016015544 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-acl.h - ACL Handling for the GNOME Virtual File System. Access Control Entry Class Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Christian Kellner Alvaro Lopez Ortega */ #include "gnome-vfs-ace.h" #include "gnome-vfs-acl.h" #include /* ************************************************************************** */ /* GnomeVFSACLEntry */ /* ************************************************************************** */ typedef struct { GnomeVFSACLPerm *perms; guint count; guint array_len; } PermSet; struct _GnomeVFSACEPrivate { GnomeVFSACLKind kind; char *id; PermSet perm_set; gboolean negative; gboolean inherit; }; #define GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GNOME_VFS_TYPE_ACE, GnomeVFSACEPrivate)) static void gnome_vfs_ace_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); static void gnome_vfs_ace_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); static void permset_copy (PermSet *source, PermSet *dest); static void permset_set (PermSet *set, GnomeVFSACLPerm *perms); #if 0 static gboolean permset_equal (PermSet *a, PermSet *b); #endif /* ************************************************************************** */ /* GObject Stuff */ enum { PROP_0 = 0, PROP_KIND, PROP_ID, PROP_PERMS, PROP_NEGATIVE, PROP_INHERIT }; static GObjectClass *entry_pclass = NULL; G_DEFINE_TYPE (GnomeVFSACE, gnome_vfs_ace, G_TYPE_OBJECT); static void gnome_vfs_ace_finalize (GObject *object) { GnomeVFSACEPrivate *priv; priv = GNOME_VFS_ACE (object)->priv; g_free (priv->perm_set.perms); g_free (priv->id); if (G_OBJECT_CLASS (entry_pclass)->finalize) (*G_OBJECT_CLASS (entry_pclass)->finalize) (object); } static void gnome_vfs_ace_class_init (GnomeVFSACEClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GParamSpec *pspec; entry_pclass = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (GnomeVFSACEPrivate)); /* override virtuals */ gobject_class->finalize = gnome_vfs_ace_finalize; gobject_class->set_property = gnome_vfs_ace_set_property; gobject_class->get_property = gnome_vfs_ace_get_property; /* properties */ pspec = g_param_spec_uint ("kind", "fixme", "fixme", GNOME_VFS_ACL_KIND_NULL, G_MAXUINT32, GNOME_VFS_ACL_KIND_NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_class_install_property (gobject_class, PROP_KIND, pspec); pspec = g_param_spec_string ("id", "fixme", "fixme", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_class_install_property (gobject_class, PROP_ID, pspec); pspec = g_param_spec_pointer ("permissions", "Permissions", "fixme", G_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_class_install_property (gobject_class, PROP_PERMS, pspec); pspec = g_param_spec_boolean ("negative", "fixme", "fixme", FALSE, G_PARAM_READWRITE); g_object_class_install_property (gobject_class, PROP_NEGATIVE, pspec); pspec = g_param_spec_boolean ("inherit", "fixme", "fixme", FALSE, G_PARAM_READWRITE); g_object_class_install_property (gobject_class, PROP_INHERIT, pspec); } static void gnome_vfs_ace_init (GnomeVFSACE *entry) { entry->priv = GET_PRIVATE (entry); } static void gnome_vfs_ace_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GnomeVFSACEPrivate *priv; GnomeVFSACLPerm *pset; priv = GNOME_VFS_ACE (object)->priv; switch (prop_id) { case PROP_KIND: priv->kind = g_value_get_uint (value); break; case PROP_ID: g_free (priv->id); priv->id = g_value_dup_string (value); break; case PROP_PERMS: pset = g_value_get_pointer (value); if (pset == NULL) { g_free (priv->perm_set.perms); priv->perm_set.perms = NULL; priv->perm_set.count = 0; break; } permset_set (&priv->perm_set, pset); break; case PROP_INHERIT: priv->inherit = g_value_get_boolean (value); break; case PROP_NEGATIVE: priv->negative = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void gnome_vfs_ace_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GnomeVFSACEPrivate *priv; priv = GNOME_VFS_ACE (object)->priv; switch (prop_id) { case PROP_KIND: g_value_set_uint (value, priv->kind); break; case PROP_ID: g_value_set_string (value, priv->id); break; case PROP_PERMS: g_value_set_pointer (value, priv->perm_set.perms); break; case PROP_INHERIT: g_value_set_boolean (value, priv->inherit); break; case PROP_NEGATIVE: g_value_set_boolean (value, priv->negative); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } /* ************************************************************************** */ static gboolean g_str_equal_safe (const char *a, const char *b) { return g_str_equal (a ? a : "", b ? b : ""); } /* copy */ static void permset_copy (PermSet *source, PermSet *dest) { int i; if (dest->array_len < source->count) { guint bytes_to_copy; /* too bad, we need to do some mem ops here */ bytes_to_copy = sizeof (GnomeVFSACLPerm) * (source->count + 1); g_free (dest->perms); dest->perms = g_memdup (source->perms, bytes_to_copy); dest->count = dest->array_len = source->count; /* sorting? */ return; } for (i = 0; i < source->count; i++) { dest->perms[i] = source->perms[i]; } dest->perms[source->count] = 0; dest->count = source->count; } static gint cmp_perm (int *a, int *b, gpointer *data) { if (*a == *b) { return 0; } return *a < *b ? -1 : 1; } static void permset_set (PermSet *set, GnomeVFSACLPerm *perms) { GnomeVFSACLPerm *iter; guint bytes_to_copy; int n; g_assert (perms); for (iter = perms, n = 0; *iter; iter++) { n++; } bytes_to_copy = sizeof (GnomeVFSACLPerm) * (n + 1); g_free (set->perms); set->perms = g_memdup (perms, bytes_to_copy); /* sort the array */ g_qsort_with_data (set->perms, n, sizeof (GnomeVFSACLPerm), (GCompareDataFunc) cmp_perm, NULL); set->count = n; set->array_len = n; } #if 0 static gboolean permset_equal (PermSet *a, PermSet *b) { int i; gboolean result; if (a->count != b->count) { return FALSE; } result = TRUE; /* Permsets MUST be sorted for this to work */ for (i = 0; i < a->count; i++) { if (a->perms[i] != b->perms[i]) { result = FALSE; break; } } return result; } #endif /* ************************************************************************** */ /* Public Interface */ GnomeVFSACE * gnome_vfs_ace_new (GnomeVFSACLKind kind, const char *id, GnomeVFSACLPerm *perms) { GnomeVFSACE *entry; entry = g_object_new (GNOME_VFS_TYPE_ACE, "kind", kind, "id", id, "permissions", perms, NULL); return entry; } GnomeVFSACLKind gnome_vfs_ace_get_kind (GnomeVFSACE *entry) { return entry->priv->kind; } void gnome_vfs_ace_set_kind (GnomeVFSACE *entry, GnomeVFSACLKind kind) { entry->priv->kind = kind; } const char* gnome_vfs_ace_get_id (GnomeVFSACE *entry) { return entry->priv->id; } void gnome_vfs_ace_set_id (GnomeVFSACE *entry, const char *id) { GnomeVFSACEPrivate *priv; priv = entry->priv; g_free (priv->id); priv->id = g_strdup (id); } void gnome_vfs_ace_set_inherit (GnomeVFSACE *entry, gboolean inherit) { g_object_set (G_OBJECT(entry), "inherit", inherit, NULL); } gboolean gnome_vfs_ace_get_inherit (GnomeVFSACE *entry) { gboolean inherit; g_object_get (G_OBJECT(entry), "inherit", &inherit, NULL); return inherit; } void gnome_vfs_ace_set_negative (GnomeVFSACE *entry, gboolean negative) { g_object_set (G_OBJECT(entry), "negative", negative, NULL); } gboolean gnome_vfs_ace_get_negative (GnomeVFSACE *entry) { gboolean negative; g_object_get (G_OBJECT(entry), "negative", &negative, NULL); return negative; } const GnomeVFSACLPerm * gnome_vfs_ace_get_perms (GnomeVFSACE *entry) { return entry->priv->perm_set.perms; } void gnome_vfs_ace_set_perms (GnomeVFSACE *entry, GnomeVFSACLPerm *perms) { permset_set (&entry->priv->perm_set, perms); } void gnome_vfs_ace_add_perm (GnomeVFSACE *entry, GnomeVFSACLPerm perm) { GnomeVFSACEPrivate *priv; PermSet *permset; gint i; g_assert (GNOME_VFS_IS_ACE(entry)); priv = entry->priv; permset = &priv->perm_set; for (i=0; icount; i++) { if (permset->perms[i] == perm) return; } if (permset->array_len < permset->count) { permset->perms = g_realloc (permset->perms, sizeof(GnomeVFSACLPerm) * (permset->count + 2)); permset->array_len++; } permset->perms[permset->count] = perm; permset->count++; g_qsort_with_data (permset->perms, permset->count++, sizeof (GnomeVFSACLPerm), (GCompareDataFunc) cmp_perm, NULL); } void gnome_vfs_ace_del_perm (GnomeVFSACE *entry, GnomeVFSACLPerm perm) { guint i; GnomeVFSACEPrivate *priv; PermSet *permset; priv = entry->priv; permset = &priv->perm_set; if (permset->perms == NULL) return; for (i=0; icount; i++) { if (permset->perms[i] == perm) { g_memmove (&permset->perms[i], &permset->perms[i+1], permset->count - i); permset->count--; break; } } } gboolean gnome_vfs_ace_check_perm (GnomeVFSACE *entry, GnomeVFSACLPerm perm) { GnomeVFSACEPrivate *priv; GnomeVFSACLPerm *piter; priv = entry->priv; if (priv->perm_set.perms == NULL || perm == 0) { return FALSE; } for (piter = priv->perm_set.perms; *piter; piter++) { if (*piter == perm) { return TRUE; } } return FALSE; } void gnome_vfs_ace_copy_perms (GnomeVFSACE *source, GnomeVFSACE *dest) { GnomeVFSACEPrivate *priv_source; GnomeVFSACEPrivate *priv_dest; priv_source = source->priv; priv_dest = dest->priv; permset_copy (&priv_source->perm_set, &priv_dest->perm_set); } gboolean gnome_vfs_ace_equal (GnomeVFSACE *entry_a, GnomeVFSACE *entry_b) { GnomeVFSACEPrivate *priv_a; GnomeVFSACEPrivate *priv_b; priv_a = entry_a->priv; priv_b = entry_b->priv; return (priv_a->kind == priv_b->kind && g_str_equal_safe (priv_a->id, priv_b->id) && priv_a->inherit == priv_b->inherit && priv_a->negative == priv_b->negative); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-directory.h0000644000175000001440000001364111334251016017011 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-directory.h - Directory handling for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_DIRECTORY_H #define GNOME_VFS_DIRECTORY_H #include #include G_BEGIN_DECLS typedef struct GnomeVFSDirectoryHandle GnomeVFSDirectoryHandle; /** * GnomeVFSDirectoryVisitOptions: * @GNOME_VFS_DIRECTORY_VISIT_DEFAULT: Default options, i.e. call * the specified #GnomeVFSDirectoryVisitFunc for each file. * @GNOME_VFS_DIRECTORY_VISIT_SAMEFS: Visit only directories on the same * file system as the parent * @GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK: Loop prevention. If this * is set, and a file is found to be a directory referencing a prefiously * found directory inode (i.e. already used for one of it's parents), this * is considered a recursion loop, and #GnomeVFSDirectoryVisitFunc will * be notified using its @recursing_will_loop parameter. If this is not * set, the #GnomeVFSDirectoryVisitFunc's @recursing_will_loop parameter * will always be set to %FALSE. * * These options control the way in which directories are visited. They are * passed to gnome_vfs_directory_visit(), gnome_vfs_directory_visit_uri() * gnome_vfs_directory_visit_files() and * gnome_vfs_directory_visit_files_at_uri(). **/ typedef enum { GNOME_VFS_DIRECTORY_VISIT_DEFAULT = 0, GNOME_VFS_DIRECTORY_VISIT_SAMEFS = 1 << 0, GNOME_VFS_DIRECTORY_VISIT_LOOPCHECK = 1 << 1, GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR = 1 << 2 } GnomeVFSDirectoryVisitOptions; /** * GnomeVFSDirectoryVisitFunc: * @rel_path: A char * specifying the path of the currently visited * file relative to the base directory for the visit. * @info: The #GnomeVFSFileInfo of the currently visited file. * @recursing_will_loop: Whether setting *@recurse to %TRUE will cause * a loop, i.e. whether this is a link * pointing to a parent directory. * @user_data: The user data passed to gnome_vfs_directory_visit(), * gnome_vfs_directory_visit_uri(), gnome_vfs_directory_visit_files() or * gnome_vfs_directory_visit_files_at_uri(). * @recurse: A valid pointer to a #gboolean, which points to %FALSE by * default and can be modified to point to %TRUE, which indicates that * the currently considered file should be visited recursively. * The recursive visit will only be actually done if @info refers to a directory, * *@recurse is %TRUE and the return value of the #GnomeVFSDirectoryVisitFunc is %TRUE. * *@recurse should usually not be set to %TRUE if @recursing_will_loop is %TRUE. * * This function is passed to gnome_vfs_directory_visit(), * gnome_vfs_directory_visit_uri(), gnome_vfs_directory_visit_files() and * gnome_vfs_directory_visit_files_at_uri(), and is called for each * file in the specified directory. * * * When a recursive visit was requested for a particular directory, errors * during the child visit will lead to a cancellation of the overall visit. * Thus, you must ensure that the user has sufficient access rights to visit * a directory before requesting a recursion. * * * Returns: %TRUE if visit should be continued, %FALSE otherwise. **/ typedef gboolean (* GnomeVFSDirectoryVisitFunc) (const gchar *rel_path, GnomeVFSFileInfo *info, gboolean recursing_will_loop, gpointer user_data, gboolean *recurse); GnomeVFSResult gnome_vfs_directory_open (GnomeVFSDirectoryHandle **handle, const gchar *text_uri, GnomeVFSFileInfoOptions options); GnomeVFSResult gnome_vfs_directory_open_from_uri (GnomeVFSDirectoryHandle **handle, GnomeVFSURI *uri, GnomeVFSFileInfoOptions options); GnomeVFSResult gnome_vfs_directory_read_next (GnomeVFSDirectoryHandle *handle, GnomeVFSFileInfo *file_info); GnomeVFSResult gnome_vfs_directory_close (GnomeVFSDirectoryHandle *handle); GnomeVFSResult gnome_vfs_directory_visit (const gchar *text_uri, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data); GnomeVFSResult gnome_vfs_directory_visit_uri (GnomeVFSURI *uri, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data); GnomeVFSResult gnome_vfs_directory_visit_files (const gchar *text_uri, GList *file_list, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data); GnomeVFSResult gnome_vfs_directory_visit_files_at_uri (GnomeVFSURI *uri, GList *file_list, GnomeVFSFileInfoOptions info_options, GnomeVFSDirectoryVisitOptions visit_options, GnomeVFSDirectoryVisitFunc callback, gpointer data); GnomeVFSResult gnome_vfs_directory_list_load (GList **list, const gchar *text_uri, GnomeVFSFileInfoOptions options); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-file-info.h0000644000175000001440000005173411334251016016662 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-file-info.h - Handling of file information for the GNOME Virtual File System. Copyright (C) 1999,2001 Free Software Foundation Copyright (C) 2002 Seth Nickell The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Seth Nickell */ #ifndef GNOME_VFS_FILE_INFO_H #define GNOME_VFS_FILE_INFO_H #include #include #include #include #include #include G_BEGIN_DECLS #ifdef G_OS_WIN32 /* Note that Win32 file permissions (in NTFS) are based on an ACL and * not at all on anything like POSIX rwxrwxrwx bits. Additionally, a * file can have a READONLY attribute. The stat() in the Microsoft C * library only looks at the (MS-DOSish) READONLY attribute, not at * all at the ACL. It fakes a st_mode based on the READONLY attribute * only. If the FIXME below for GnomeVFSFilePermissions is fixed, * these defines will become unnecessary. */ #define S_ISUID 0 #define S_ISGID 0 #define S_IRGRP (S_IRUSR >> 3) #define S_IWGRP (S_IWUSR >> 3) #define S_IXGRP (S_IXUSR >> 3) #define S_IROTH (S_IRUSR >> 6) #define S_IWOTH (S_IWUSR >> 6) #define S_IXOTH (S_IXUSR >> 6) #endif /** * GnomeVFSInodeNumber: * * Represents the i-node of a file, this is a low level data structure * that the operating system uses to hold information about a file. **/ typedef GnomeVFSFileSize GnomeVFSInodeNumber; /** * GnomeVFSFileFlags: * @GNOME_VFS_FILE_FLAGS_NONE: no flags * @GNOME_VFS_FILE_FLAGS_SYMLINK: whether the file is a symlink. * @GNOME_VFS_FILE_FLAGS_LOCAL: whether the file is on a local filesystem * * Packed boolean bitfield representing special * flags a #GnomeVFSFileInfo struct can have. **/ typedef enum { GNOME_VFS_FILE_FLAGS_NONE = 0, GNOME_VFS_FILE_FLAGS_SYMLINK = 1 << 0, GNOME_VFS_FILE_FLAGS_LOCAL = 1 << 1 } GnomeVFSFileFlags; /** * GnomeVFSFileType: * @GNOME_VFS_FILE_TYPE_UNKNOWN: The file type is unknown (none of the types below matches). * @GNOME_VFS_FILE_TYPE_REGULAR: The file is a regular file (stat: %S_ISREG). * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISDIR). * @GNOME_VFS_FILE_TYPE_FIFO: The file is a FIFO (stat: %S_ISFIFO). * @GNOME_VFS_FILE_TYPE_SOCKET: The file is a socket (stat: %S_ISSOCK). * @GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: The file is a character device (stat: %S_ISCHR). * @GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: The file is a block device (stat: %S_ISBLK). * @GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: The file is a symbolic link (stat: %S_ISLNK). * * Maps to a %stat mode, and identifies the kind of file represented by a * #GnomeVFSFileInfo struct, stored in the %type field. **/ typedef enum { GNOME_VFS_FILE_TYPE_UNKNOWN, GNOME_VFS_FILE_TYPE_REGULAR, GNOME_VFS_FILE_TYPE_DIRECTORY, GNOME_VFS_FILE_TYPE_FIFO, GNOME_VFS_FILE_TYPE_SOCKET, GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE, GNOME_VFS_FILE_TYPE_BLOCK_DEVICE, GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK } GnomeVFSFileType; /** * GnomeVFSFileInfoFields: * @GNOME_VFS_FILE_INFO_FIELDS_NONE: No fields are valid * @GNOME_VFS_FILE_INFO_FIELDS_TYPE: Type field is valid * @GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS: Permissions field is valid * @GNOME_VFS_FILE_INFO_FIELDS_FLAGS: Flags field is valid * @GNOME_VFS_FILE_INFO_FIELDS_DEVICE: Device field is valid * @GNOME_VFS_FILE_INFO_FIELDS_INODE: Inode field is valid * @GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT: Link count field is valid * @GNOME_VFS_FILE_INFO_FIELDS_SIZE: Size field is valid * @GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT: Block count field is valid * @GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE: I/O Block Size field is valid * @GNOME_VFS_FILE_INFO_FIELDS_ATIME: Access time field is valid * @GNOME_VFS_FILE_INFO_FIELDS_MTIME: Modification time field is valid * @GNOME_VFS_FILE_INFO_FIELDS_CTIME: Creating time field is valid * @GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME: Symlink name field is valid * @GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE: Mime type field is valid * @GNOME_VFS_FILE_INFO_FIELDS_ACCESS: Access bits of the permissions * bitfield are valid * @GNOME_VFS_FILE_INFO_FIELDS_IDS: UID and GID information are valid * @GNOME_VFS_FILE_INFO_FIELDS_ACL: ACL field is valid * @GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT: SELinux Security context is valid * * Flags indicating what fields in a #GnomeVFSFileInfo struct are valid. * Name is always assumed valid (how else would you have gotten a * FileInfo struct otherwise?) **/ typedef enum { GNOME_VFS_FILE_INFO_FIELDS_NONE = 0, GNOME_VFS_FILE_INFO_FIELDS_TYPE = 1 << 0, GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 << 1, GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 << 2, GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 << 3, GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 << 4, GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 << 5, GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 << 6, GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 << 7, GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 << 8, GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 << 9, GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 << 10, GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11, GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12, GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13, GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14, GNOME_VFS_FILE_INFO_FIELDS_IDS = 1 << 15, GNOME_VFS_FILE_INFO_FIELDS_ACL = 1 << 16, GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT = 1 << 17 } GnomeVFSFileInfoFields; /* FIXME: It's silly to use the symbolic constants for POSIX here. * This is supposed to be a virtual file system, so it makes no * sense to use the values of the POSIX-required constants on the * particular machine this code is compiled on. These should all be changed * to use numeric constants like GNOME_VFS_PERM_STICKY does now. However, * be careful in making such a change, since some existing code might * wrongly assume these equivalencies. */ /** * GnomeVFSFilePermissions: * @GNOME_VFS_PERM_SUID: UID bit * @GNOME_VFS_PERM_SGID: GID bit * @GNOME_VFS_PERM_STICKY: Sticky bit. * @GNOME_VFS_PERM_USER_READ: Owner has read permission. * @GNOME_VFS_PERM_USER_WRITE: Owner has write permission. * @GNOME_VFS_PERM_USER_EXEC: Owner has execution permission. * @GNOME_VFS_PERM_USER_ALL: Owner has all permissions. * @GNOME_VFS_PERM_GROUP_READ: Group has read permission. * @GNOME_VFS_PERM_GROUP_WRITE: Group has write permission. * @GNOME_VFS_PERM_GROUP_EXEC: Group has execution permission. * @GNOME_VFS_PERM_GROUP_ALL: Group has all permissions. * @GNOME_VFS_PERM_OTHER_READ: Others have read permission. * @GNOME_VFS_PERM_OTHER_WRITE: Others have write permission. * @GNOME_VFS_PERM_OTHER_EXEC: Others have execution permission. * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissions. * @GNOME_VFS_PERM_ACCESS_READABLE: This file is readable for the current client. * @GNOME_VFS_PERM_ACCESS_WRITABLE: This file is writable for the current client. * @GNOME_VFS_PERM_ACCESS_EXECUTABLE: This file is executable for the current client. * * File permissions. Some of these fields correspond to traditional * UNIX semantics, others provide more abstract concepts. * * * Some network file systems don't support traditional UNIX semantics but * still provide file access control. Thus, if you want to modify the * permissions (i.e. do a chmod), you should rely on the traditional * fields, but if you just want to determine whether a file or directory * can be read from or written to, you should rely on the more * abstract %GNOME_VFS_PERM_ACCESS_* fields. * **/ typedef enum { GNOME_VFS_PERM_SUID = S_ISUID, GNOME_VFS_PERM_SGID = S_ISGID, GNOME_VFS_PERM_STICKY = 01000, /* S_ISVTX not defined on all systems */ GNOME_VFS_PERM_USER_READ = S_IRUSR, GNOME_VFS_PERM_USER_WRITE = S_IWUSR, GNOME_VFS_PERM_USER_EXEC = S_IXUSR, GNOME_VFS_PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR, GNOME_VFS_PERM_GROUP_READ = S_IRGRP, GNOME_VFS_PERM_GROUP_WRITE = S_IWGRP, GNOME_VFS_PERM_GROUP_EXEC = S_IXGRP, GNOME_VFS_PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP, GNOME_VFS_PERM_OTHER_READ = S_IROTH, GNOME_VFS_PERM_OTHER_WRITE = S_IWOTH, GNOME_VFS_PERM_OTHER_EXEC = S_IXOTH, GNOME_VFS_PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH, GNOME_VFS_PERM_ACCESS_READABLE = 1 << 16, GNOME_VFS_PERM_ACCESS_WRITABLE = 1 << 17, GNOME_VFS_PERM_ACCESS_EXECUTABLE = 1 << 18 } GnomeVFSFilePermissions; #define GNOME_VFS_TYPE_FILE_INFO (gnome_vfs_file_info_get_type ()) /** * GnomeVFSFileInfo: * @name: A char * specifying the base name of the file (without any path string). * @valid_fields: #GnomeVFSFileInfoFields specifying which fields of * #GnomeVFSFileInfo are valid. Note that @name is always * assumed to be valid, i.e. clients may assume that it is not NULL. * @type: The #GnomeVFSFileType of the file (i.e. regular, directory, block device, ...) * if @valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_TYPE. * @permissions: The #GnomeVFSFilePermissions corresponding to the UNIX-like * permissions of the file, if @valid_fields provides * #GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS, and the * #GnomeVFSFilePermissions corresponding to abstract access * concepts (#GNOME_VFS_PERM_ACCESS_READABLE, #GNOME_VFS_PERM_ACCESS_WRITABLE, * and #GNOME_VFS_PERM_ACCESS_EXECUTABLE) if @valid_fields * provides #GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS. * @flags: #GnomeVFSFileFlags providing additional information about the file, * for instance whether it is local or a symbolic link, if * @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_FLAGS. * @device: Identifies the device the file is located on, if * @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_DEVICE. * @inode: Identifies the inode corresponding to the file, if * @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_INODE. * @link_count: Counts the number of hard links to the file, if * @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT. * @uid: The user owning the file, if @valid_fields provides * GNOME_VFS_FILE_INFO_FIELDS_IDS. * @gid: The user owning the file, if @valid_fields provides * GNOME_VFS_FILE_INFO_FIELDS_IDS. * @size: The size of the file in bytes (a #GnomeVFSFileSize), * if @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_SIZE. * @block_count: The size of the file in file system blocks (a #GnomeVFSFileSize), * if @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT. * @io_block_size: The optimal buffer size for reading/writing the file, if * @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE. * @atime: The time of the last file access, if @valid_fields provides * #GNOME_VFS_FILE_INFO_FIELDS_ATIME. * @mtime: The time of the last file contents modification, if @valid_fields * provides #GNOME_VFS_FILE_INFO_FIELDS_MTIME. * @ctime: The time of the last inode change, if @valid_fields provides * #GNOME_VFS_FILE_INFO_FIELDS_CTIME. * @symlink_name: This is the name of the file this link points to, @type * is #GNOME_VFS_FILE_FLAGS_SYMLINK, and @valid_fields * provides #GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME. * @mime_type: This is a char * identifying the type of the file, if * @valid_fields provides #GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE. * @refcount: The reference count of this file info, which is one by default, and * that can be increased using gnome_vfs_file_info_ref() and decreased * using gnome_vfs_file_info_unref(). When it drops to zero, the file info * is freed and its memory is invalid. Make sure to keep your own * reference to a file info if you received it from GnomeVFS, i.e. * if you didn't call gnome_vfs_file_info_new() yourself. * * * When doing massive I/O, it is suggested to adhere @io_block_size if applicable. * For network file systems, this may be set to very big values allowing * parallelization. * * * The GnomeVFSFileInfo structure contains information about a file. **/ typedef struct { /*< public >*/ char *name; GnomeVFSFileInfoFields valid_fields; GnomeVFSFileType type; GnomeVFSFilePermissions permissions; GnomeVFSFileFlags flags; dev_t device; GnomeVFSInodeNumber inode; guint link_count; guint uid; guint gid; GnomeVFSFileSize size; GnomeVFSFileSize block_count; guint io_block_size; time_t atime; time_t mtime; time_t ctime; char *symlink_name; char *mime_type; guint refcount; /* File ACLs */ GnomeVFSACL *acl; /* SELinux security context. -- ascii string, raw format. */ char* selinux_context; /*< private >*/ /* Reserved for future expansions to GnomeVFSFileInfo without having to break ABI compatibility */ void *reserved1; void *reserved2; void *reserved3; } GnomeVFSFileInfo; /** * GnomeVFSFileInfoOptions: * @GNOME_VFS_FILE_INFO_DEFAULT: default flags * @GNOME_VFS_FILE_INFO_GET_MIME_TYPE: detect the MIME type * @GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE: only use fast MIME type * detection (extensions) * @GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE: force slow MIME type * detection where available (sniffing, algorithmic detection, etc) * @GNOME_VFS_FILE_INFO_FOLLOW_LINKS: automatically follow symbolic * links and retrieve the properties of their target (recommended) * @GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS: tries to get data similar * to what would return access(2) on a local file system (ie is the * file readable, writable and/or executable). Can be really slow on * remote file systems * @GNOME_VFS_FILE_INFO_NAME_ONLY: When reading a directory, only * get the filename (if doing so is faster). Useful to e.g. count * the number of files. * @GNOME_VFS_FILE_INFO_GET_ACL: get ACLs for the file * * Packed boolean bitfield representing options that can * be passed into a gnome_vfs_get_file_info() call (or other * related calls that return file info) and affect the operation * of get_file_info. **/ typedef enum { GNOME_VFS_FILE_INFO_DEFAULT = 0, GNOME_VFS_FILE_INFO_GET_MIME_TYPE = 1 << 0, GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1, GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2, GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 << 3, GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS = 1 << 4, GNOME_VFS_FILE_INFO_NAME_ONLY = 1 << 5, GNOME_VFS_FILE_INFO_GET_ACL = 1 << 6, GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT = 1 << 7 } GnomeVFSFileInfoOptions; /** * GnomeVFSSetFileInfoMask: * @GNOME_VFS_SET_FILE_INFO_NONE: don't set any file info fields * @GNOME_VFS_SET_FILE_INFO_NAME: change the name * @GNOME_VFS_SET_FILE_INFO_PERMISSIONS: change the permissions * @GNOME_VFS_SET_FILE_INFO_OWNER: change the file's owner * @GNOME_VFS_SET_FILE_INFO_TIME: change the file's time stamp(s) * @GNOME_VFS_SET_FILE_INFO_ACL: change the file's ACLs * @GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME: change the file's symlink name * * Packed boolean bitfield representing the aspects of the file * to be changed in a gnome_vfs_set_file_info() call. **/ typedef enum { GNOME_VFS_SET_FILE_INFO_NONE = 0, GNOME_VFS_SET_FILE_INFO_NAME = 1 << 0, GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 << 1, GNOME_VFS_SET_FILE_INFO_OWNER = 1 << 2, GNOME_VFS_SET_FILE_INFO_TIME = 1 << 3, GNOME_VFS_SET_FILE_INFO_ACL = 1 << 4, GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT = 1 << 5, GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME = 1 << 6 } GnomeVFSSetFileInfoMask; /** * GnomeVFSGetFileInfoResult: * @uri: The #GnomeVFSURI the file info was requested for. * @result: The #GnomeVFSResult of the file info request. * @file_info: The #GnomeVFSFileInfo that was retrieved. * * This data structure encapsulates the details of an individual file * info request that was part of a mass file info request launched * through gnome_vfs_async_get_file_info(), and is passed to a * #GnomeVFSAsyncGetFileInfoCallback. **/ struct _GnomeVFSGetFileInfoResult { GnomeVFSURI *uri; GnomeVFSResult result; GnomeVFSFileInfo *file_info; }; typedef struct _GnomeVFSGetFileInfoResult GnomeVFSGetFileInfoResult; GType gnome_vfs_get_file_info_result_get_type (void); GnomeVFSGetFileInfoResult* gnome_vfs_get_file_info_result_dup (GnomeVFSGetFileInfoResult *result); void gnome_vfs_get_file_info_result_free (GnomeVFSGetFileInfoResult *result); /** * GNOME_VFS_FILE_INFO_SYMLINK: * @info: GnomeVFSFileInfo struct * * Determines whether a file is a symbolic link given @info. */ #define GNOME_VFS_FILE_INFO_SYMLINK(info) \ ((info)->flags & GNOME_VFS_FILE_FLAGS_SYMLINK) /** * GNOME_VFS_FILE_INFO_SET_SYMLINK: * @info: GnomeVFSFileInfo struct * @value: if %TRUE, @info is set to indicate the file is a symbolic link * * Set the symbolic link field in @info to @value. */ #define GNOME_VFS_FILE_INFO_SET_SYMLINK(info, value) \ ((info)->flags = (value ? \ ((info)->flags | GNOME_VFS_FILE_FLAGS_SYMLINK) : \ ((info)->flags & ~GNOME_VFS_FILE_FLAGS_SYMLINK))) /** * GNOME_VFS_FILE_INFO_LOCAL: * @info: GnomeVFSFileInfo struct * * Determines whether a file is local given @info. */ #define GNOME_VFS_FILE_INFO_LOCAL(info) \ ((info)->flags & GNOME_VFS_FILE_FLAGS_LOCAL) /** * GNOME_VFS_FILE_INFO_SET_LOCAL: * @info: GnomeVFSFileInfo struct * @value: if %TRUE, @info is set to indicate the file is local * * Set the "local file" field in @info to @value. */ #define GNOME_VFS_FILE_INFO_SET_LOCAL(info, value) \ ((info)->flags = (value ? \ ((info)->flags | GNOME_VFS_FILE_FLAGS_LOCAL) : \ ((info)->flags & ~GNOME_VFS_FILE_FLAGS_LOCAL))) /** * GNOME_VFS_FILE_INFO_SUID: * @info: GnomeVFSFileInfo struct * * Determines whether a file belongs to the super user. */ #define GNOME_VFS_FILE_INFO_SUID(info) \ ((info)->permissions & GNOME_VFS_PERM_SUID) /** * GNOME_VFS_FILE_INFO_SGID: * @info: GnomeVFSFileInfo struct * * Determines whether a file belongs to the super user's group. */ #define GNOME_VFS_FILE_INFO_SGID(info) \ ((info)->permissions & GNOME_VFS_PERM_SGID) /** * GNOME_VFS_FILE_INFO_STICKY: * @info: GnomeVFSFileInfo struct * * Determines whether a file has the sticky bit set, given @info */ #define GNOME_VFS_FILE_INFO_STICKY(info) \ ((info)->permissions & GNOME_VFS_PERM_STICKY) /** * GNOME_VFS_FILE_INFO_SET_SUID: * @info: GnomeVFSFileInfo struct * @value: if %TRUE, @info is set to indicate the file belongs to the super user * * Set the SUID field in @info to @value. */ #define GNOME_VFS_FILE_INFO_SET_SUID(info, value) \ ((info)->flags = (value ? \ ((info)->flags | GNOME_VFS_PERM_SUID) : \ ((info)->flags & ~GNOME_VFS_PERM_SUID))) /** * GNOME_VFS_FILE_INFO_SET_SGID: * @info: GnomeVFSFileInfo struct * @value: if %TRUE, @info is set to indicate the file belongs to the super user's group * * Set the SGID field in @info to @value. */ #define GNOME_VFS_FILE_INFO_SET_SGID(info, value) \ ((info)->flags = (value ? \ ((info)->flags | GNOME_VFS_PERM_SGID) : \ ((info)->flags & ~GNOME_VFS_PERM_SGID))) /** * GNOME_VFS_FILE_INFO_SET_STICKY: * @info: GnomeVFSFileInfo struct * @value: if %TRUE, @info is set to indicate the file has the sticky bit set * * Set the sticky bit in @info to @value. */ #define GNOME_VFS_FILE_INFO_SET_STICKY(info, value) \ (value ? ((info)->permissions |= GNOME_VFS_PERM_STICKY) \ : ((info)->permissions &= ~GNOME_VFS_PERM_STICKY)) GType gnome_vfs_file_info_get_type (void); GnomeVFSFileInfo *gnome_vfs_file_info_new (void); void gnome_vfs_file_info_unref (GnomeVFSFileInfo *info); void gnome_vfs_file_info_ref (GnomeVFSFileInfo *info); void gnome_vfs_file_info_clear (GnomeVFSFileInfo *info); const char * gnome_vfs_file_info_get_mime_type (GnomeVFSFileInfo *info); void gnome_vfs_file_info_copy (GnomeVFSFileInfo *dest, const GnomeVFSFileInfo *src); GnomeVFSFileInfo *gnome_vfs_file_info_dup (const GnomeVFSFileInfo *orig); gboolean gnome_vfs_file_info_matches (const GnomeVFSFileInfo *a, const GnomeVFSFileInfo *b); GList * gnome_vfs_file_info_list_ref (GList *list); GList * gnome_vfs_file_info_list_unref (GList *list); GList * gnome_vfs_file_info_list_copy (GList *list); void gnome_vfs_file_info_list_free (GList *list); G_END_DECLS #endif /* GNOME_VFS_FILE_INFO_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ssl.c0000644000175000001440000004644011334251016015604 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-ssl.c * * Copyright (C) 2001 Ian McKellar * Copyright (C) 2002 Andrew McDonald * * The Gnome 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. * * The Gnome Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * Authors: Ian McKellar * My knowledge of SSL programming is due to reading Jeffrey Stedfast's * excellent SSL implementation in Evolution. * * Andrew McDonald * Basic SSL/TLS support using the LGPL'ed GNUTLS Library */ #include #include "gnome-vfs-ssl.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-resolve.h" #include #include #ifdef HAVE_OPENSSL #include #include #include #elif defined HAVE_GNUTLS #include #include #endif #if defined(HAVE_OPENSSL) || defined(HAVE_GNUTLS) #include #include #include #include #include #include #ifndef G_OS_WIN32 #include #include #include #else #include #endif #endif #if defined GNUTLS_COMPAT #define gnutls_certificate_credentials GNUTLS_CERTIFICATE_CREDENTIALS #define gnutls_session GNUTLS_STATE #define gnutls_certificate_free_credentials gnutls_certificate_free_sc #define gnutls_certificate_allocate_credentials gnutls_certificate_allocate_sc #endif typedef struct { #ifdef HAVE_OPENSSL int sockfd; SSL *ssl; struct timeval *timeout; #elif defined HAVE_GNUTLS int sockfd; gnutls_session tlsstate; gnutls_certificate_client_credentials xcred; struct timeval *timeout; #elif defined HAVE_NSS PRFileDesc *sockfd; #else char dummy; #endif } GnomeVFSSSLPrivate; struct GnomeVFSSSL { GnomeVFSSSLPrivate *private; }; #ifdef HAVE_GNUTLS static int gcry_gthread_mutex_init (void **priv) { GMutex* lock = g_mutex_new(); if (!lock) return ENOMEM; *priv = lock; return 0; } static int gcry_gthread_mutex_destroy (void **lock) { g_mutex_free (*lock); return 0; } static int gcry_gthread_mutex_lock (void **lock) { g_mutex_lock(*lock); return 0; } static int gcry_gthread_mutex_unlock (void **lock) { g_mutex_unlock(*lock); return 0; } static struct gcry_thread_cbs gcry_threads_gthread = { GCRY_THREAD_OPTION_USER, NULL, gcry_gthread_mutex_init, gcry_gthread_mutex_destroy, gcry_gthread_mutex_lock, gcry_gthread_mutex_unlock }; #endif #if defined (HAVE_OPENSSL) || defined (HAVE_GNUTLS) static GOnce ssl_init_once = G_ONCE_INIT; static gpointer ssl_init (gpointer unused) { #ifdef HAVE_OPENSSL SSL_library_init (); #elif defined HAVE_GNUTLS gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_gthread); gnutls_global_init(); #endif return NULL; } #endif /** * gnome_vfs_ssl_enabled: * * Checks whether gnome-vfs was compiled with SSL support. * * Return value: %TRUE if gnome-vfs was compiled with SSL support, * otherwise %FALSE. */ gboolean gnome_vfs_ssl_enabled (void) { #if defined HAVE_OPENSSL || defined HAVE_GNUTLS return TRUE; #else return FALSE; #endif } #ifdef HAVE_GNUTLS /* From the gnutls documentation: To tell you whether a file descriptor should be selected for either reading or writing, gnutls_record_get_direction() returns 0 if the interrupted function was trying to read data, and 1 if it was trying to write data. */ #ifndef SSL_ERROR_WANT_READ #define SSL_ERROR_WANT_READ 0 #endif #ifndef SSL_ERROR_WANT_WRITE #define SSL_ERROR_WANT_WRITE 1 #endif #endif #if defined(HAVE_OPENSSL) || defined(HAVE_GNUTLS) static GnomeVFSResult handle_ssl_read_write (int fd, int error, struct timeval *timeout, GnomeVFSCancellation *cancellation) { fd_set read_fds; fd_set write_fds; int res; int max_fd; int cancel_fd; struct timeval tout; cancel_fd = -1; retry: FD_ZERO (&read_fds); FD_ZERO (&write_fds); max_fd = fd; if (cancellation != NULL) { cancel_fd = gnome_vfs_cancellation_get_fd (cancellation); FD_SET (cancel_fd, &read_fds); max_fd = MAX (max_fd, cancel_fd); } if (error == SSL_ERROR_WANT_READ) { FD_SET (fd, &read_fds); } if (error == SSL_ERROR_WANT_WRITE) { FD_SET (fd, &write_fds); } if (timeout != NULL) { tout.tv_sec = timeout->tv_sec; tout.tv_usec = timeout->tv_usec; } res = select (max_fd + 1, &read_fds, &write_fds, NULL, timeout ? &tout : NULL); if (res == -1 && errno == EINTR) { goto retry; } if (res == 0) { return GNOME_VFS_ERROR_TIMEOUT; } else if (res > 0) { if (cancel_fd != -1 && FD_ISSET (cancel_fd, &read_fds)) { return GNOME_VFS_ERROR_CANCELLED; } return GNOME_VFS_OK; } return GNOME_VFS_ERROR_INTERNAL; } #endif /** * gnome_vfs_ssl_create: * @handle_return: pointer to a #GnomeVFSSSL struct, which will * contain an allocated #GnomeVFSSSL object on return. * @host: string indicating the hostname to establish an SSL connection with. * @port: port number to connect to. * @cancellation: handle allowing cancellation of the operation. * * Creates an SSL socket connection at @handle_return to @host using * port @port. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_ssl_create (GnomeVFSSSL **handle_return, const char *host, unsigned int port, GnomeVFSCancellation *cancellation) { /* FIXME: add *some* kind of cert verification! */ #if defined(HAVE_OPENSSL) || defined(HAVE_GNUTLS) GnomeVFSResolveHandle *rh; GnomeVFSAddress *address; GnomeVFSResult res; gint sock, len, ret; struct sockaddr *saddr; g_return_val_if_fail (handle_return != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (host != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS); g_return_val_if_fail (port != 0, GNOME_VFS_ERROR_BAD_PARAMETERS); res = gnome_vfs_resolve (host, &rh); if (res != GNOME_VFS_OK) return res; sock = -1; while (gnome_vfs_resolve_next_address (rh, &address)) { sock = socket (gnome_vfs_address_get_family_type (address), SOCK_STREAM, 0); if (sock > -1) { saddr = gnome_vfs_address_get_sockaddr (address, port, &len); ret = connect (sock, saddr, len); g_free (saddr); if (ret == 0) break; close (sock); sock = -1; } gnome_vfs_address_free (address); } gnome_vfs_resolve_free (rh); if (sock < 0) return gnome_vfs_result_from_errno (); _gnome_vfs_socket_set_blocking (sock, FALSE); gnome_vfs_address_free (address); return gnome_vfs_ssl_create_from_fd (handle_return, sock, cancellation); #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } #ifdef HAVE_GNUTLS static const int protocol_priority[] = {GNUTLS_TLS1, GNUTLS_SSL3, 0}; static const int cipher_priority[] = {GNUTLS_CIPHER_RIJNDAEL_128_CBC, GNUTLS_CIPHER_3DES_CBC, GNUTLS_CIPHER_RIJNDAEL_256_CBC, GNUTLS_CIPHER_ARCFOUR, 0}; static const int comp_priority[] = {GNUTLS_COMP_ZLIB, GNUTLS_COMP_NULL, 0}; static const int kx_priority[] = {GNUTLS_KX_DHE_RSA, GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, 0}; static const int mac_priority[] = {GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, 0}; #endif /** * gnome_vfs_ssl_create_from_fd: * @handle_return: pointer to a #GnomeVFSSSL struct, which will * contain an allocated #GnomeVFSSSL object on return. * @fd: file descriptior to try and establish an SSL connection over. * @cancellation: handle allowing cancellation of the operation. * * Try to establish an SSL connection over the file descriptor @fd. * * Return value: a #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_ssl_create_from_fd (GnomeVFSSSL **handle_return, gint fd, GnomeVFSCancellation *cancellation) { #ifdef HAVE_OPENSSL GnomeVFSSSL *ssl; SSL_CTX *ssl_ctx = NULL; int ret; int error; GnomeVFSResult res; ssl = g_new0 (GnomeVFSSSL, 1); ssl->private = g_new0 (GnomeVFSSSLPrivate, 1); ssl->private->sockfd = fd; g_once (&ssl_init_once, ssl_init, NULL); /* SSLv23_client_method will negotiate with SSL v2, v3, or TLS v1 */ ssl_ctx = SSL_CTX_new (SSLv23_client_method ()); if (ssl_ctx == NULL) { return GNOME_VFS_ERROR_INTERNAL; } /* FIXME: SSL_CTX_set_verify (ssl_ctx, SSL_VERIFY_PEER, &ssl_verify);*/ ssl->private->ssl = SSL_new (ssl_ctx); if (ssl->private->ssl == NULL) { return GNOME_VFS_ERROR_IO; } SSL_set_fd (ssl->private->ssl, fd); retry: ret = SSL_connect (ssl->private->ssl); if (ret != 1) { error = SSL_get_error (ssl->private->ssl, ret); res = GNOME_VFS_ERROR_IO; if (error == SSL_ERROR_WANT_READ || error == SSL_ERROR_WANT_WRITE) { res = handle_ssl_read_write (fd, error, NULL, cancellation); if (res == GNOME_VFS_OK) { goto retry; } } else if (error == SSL_ERROR_SYSCALL && ret != 0) { res = gnome_vfs_result_from_errno (); } retry_shutdown: ret = SSL_shutdown (ssl->private->ssl); if (ret != 1) { error = SSL_get_error (ssl->private->ssl, ret); if (error == SSL_ERROR_WANT_READ || error == SSL_ERROR_WANT_WRITE) { /* No fancy select stuff here, just busy loop */ goto retry_shutdown; } } if (ssl->private->ssl->ctx) SSL_CTX_free (ssl->private->ssl->ctx); SSL_free (ssl->private->ssl); g_free (ssl->private); g_free (ssl); return res; } *handle_return = ssl; return GNOME_VFS_OK; #elif defined HAVE_GNUTLS GnomeVFSResult res; GnomeVFSSSL *ssl; int err; ssl = g_new0 (GnomeVFSSSL, 1); ssl->private = g_new0 (GnomeVFSSSLPrivate, 1); ssl->private->sockfd = fd; g_once (&ssl_init_once, ssl_init, NULL); err = gnutls_certificate_allocate_credentials (&ssl->private->xcred); if (err < 0) { g_free (ssl->private); g_free (ssl); return GNOME_VFS_ERROR_INTERNAL; } gnutls_init (&ssl->private->tlsstate, GNUTLS_CLIENT); /* set socket */ gnutls_transport_set_ptr (ssl->private->tlsstate, GINT_TO_POINTER (fd)); gnutls_protocol_set_priority (ssl->private->tlsstate, protocol_priority); gnutls_cipher_set_priority (ssl->private->tlsstate, cipher_priority); gnutls_compression_set_priority (ssl->private->tlsstate, comp_priority); gnutls_kx_set_priority (ssl->private->tlsstate, kx_priority); gnutls_mac_set_priority (ssl->private->tlsstate, mac_priority); gnutls_cred_set (ssl->private->tlsstate, GNUTLS_CRD_CERTIFICATE, ssl->private->xcred); retry: res = GNOME_VFS_ERROR_IO; err = gnutls_handshake (ssl->private->tlsstate); if (err == GNUTLS_E_INTERRUPTED || err == GNUTLS_E_AGAIN) { res = handle_ssl_read_write (ssl->private->sockfd, gnutls_record_get_direction (ssl->private->tlsstate), ssl->private->timeout, cancellation); if (res == GNOME_VFS_OK) goto retry; } if (err < 0) { gnutls_certificate_free_credentials (ssl->private->xcred); gnutls_deinit (ssl->private->tlsstate); g_free (ssl->private); g_free (ssl); return res; } *handle_return = ssl; return GNOME_VFS_OK; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } /** * gnome_vfs_ssl_read: * @ssl: SSL socket to read data from. * @buffer: allocated buffer of at least @bytes bytes to write into. * @bytes: number of bytes to read from @ssl into @buffer. * @bytes_read: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually read from the socket @ssl on return. * @cancellation: handle allowing cancellation of the operation. * * Read @bytes bytes of data from the SSL socket @ssl into @buffer. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_ssl_read (GnomeVFSSSL *ssl, gpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_read, GnomeVFSCancellation *cancellation) { #ifdef HAVE_OPENSSL GnomeVFSResult res; int ret; int error; if (bytes == 0) { *bytes_read = 0; return GNOME_VFS_OK; } retry: ret = SSL_read (ssl->private->ssl, buffer, bytes); if (ret <= 0) { res = GNOME_VFS_ERROR_IO; error = SSL_get_error (ssl->private->ssl, ret); if (error == SSL_ERROR_WANT_READ || error == SSL_ERROR_WANT_WRITE) { res = handle_ssl_read_write (SSL_get_fd (ssl->private->ssl), error, ssl->private->timeout, cancellation); if (res == GNOME_VFS_OK) { goto retry; } } else if (error == SSL_ERROR_SYSCALL) { if (ret == 0) { res = GNOME_VFS_ERROR_EOF; } else { res = gnome_vfs_result_from_errno (); } } else if (error == SSL_ERROR_ZERO_RETURN) { res = GNOME_VFS_ERROR_EOF; } *bytes_read = 0; return res; } *bytes_read = ret; return GNOME_VFS_OK; #elif defined HAVE_GNUTLS GnomeVFSResult res; int ret; if (bytes == 0) { *bytes_read = 0; return GNOME_VFS_OK; } res = GNOME_VFS_OK; retry: ret = gnutls_record_recv (ssl->private->tlsstate, buffer, bytes); if (ret == 0) { res = GNOME_VFS_ERROR_EOF; } else if (ret < 0) { res = GNOME_VFS_ERROR_IO; if (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN) { res = handle_ssl_read_write (ssl->private->sockfd, gnutls_record_get_direction (ssl->private->tlsstate), ssl->private->timeout, cancellation); if (res == GNOME_VFS_OK) { goto retry; } } *bytes_read = 0; return res; } *bytes_read = ret; return res; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } /** * gnome_vfs_ssl_write: * @ssl: SSL socket to write data to. * @buffer: data to write to the socket. * @bytes: number of bytes to write from @buffer to @ssl. * @bytes_written: pointer to a #GnomeVFSFileSize, will contain * the number of bytes actually written to the socket on return. * @cancellation: handle allowing cancellation of the operation. * * Write @bytes bytes of data from @buffer to @ssl. * * Return value: #GnomeVFSResult indicating the success of the operation. */ GnomeVFSResult gnome_vfs_ssl_write (GnomeVFSSSL *ssl, gconstpointer buffer, GnomeVFSFileSize bytes, GnomeVFSFileSize *bytes_written, GnomeVFSCancellation *cancellation) { #ifdef HAVE_OPENSSL GnomeVFSResult res; int ret; int error; if (bytes == 0) { *bytes_written = 0; return GNOME_VFS_OK; } retry: ret = SSL_write (ssl->private->ssl, buffer, bytes); if (ret <= 0) { res = GNOME_VFS_ERROR_IO; error = SSL_get_error (ssl->private->ssl, ret); if (error == SSL_ERROR_WANT_READ || error == SSL_ERROR_WANT_WRITE) { res = handle_ssl_read_write (SSL_get_fd (ssl->private->ssl), error, ssl->private->timeout, cancellation); if (res == GNOME_VFS_OK) { goto retry; } } else if (error == SSL_ERROR_SYSCALL) { res = gnome_vfs_result_from_errno (); } *bytes_written = 0; return res; } *bytes_written = ret; return GNOME_VFS_OK; #elif defined HAVE_GNUTLS GnomeVFSResult res; int ret; if (bytes == 0) { *bytes_written = 0; return GNOME_VFS_OK; } res = GNOME_VFS_OK; retry: ret = gnutls_record_send (ssl->private->tlsstate, buffer, bytes); if (ret == 0) { res = GNOME_VFS_ERROR_EOF; } else if (ret < 0) { res = GNOME_VFS_ERROR_IO; if (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN) { res = handle_ssl_read_write (ssl->private->sockfd, gnutls_record_get_direction (ssl->private->tlsstate), ssl->private->timeout, cancellation); if (res == GNOME_VFS_OK) { goto retry; } } *bytes_written = 0; return res; } *bytes_written = ret; return res; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } /** * gnome_vfs_ssl_destroy: * @ssl: SSL socket to be closed and destroyed. * @cancellation: handle allowing cancellation of the operation. * * Free resources used by @ssl and close the connection. */ void gnome_vfs_ssl_destroy (GnomeVFSSSL *ssl, GnomeVFSCancellation *cancellation) { #ifdef HAVE_OPENSSL int ret; GnomeVFSResult res; int error; retry: ret = SSL_shutdown (ssl->private->ssl); if (ret != 1) { error = SSL_get_error (ssl->private->ssl, ret); if (error == SSL_ERROR_WANT_READ || error == SSL_ERROR_WANT_WRITE) { res = handle_ssl_read_write (SSL_get_fd (ssl->private->ssl), error, ssl->private->timeout, cancellation); if (res == GNOME_VFS_OK) { goto retry; } } } SSL_CTX_free (ssl->private->ssl->ctx); SSL_free (ssl->private->ssl); close (ssl->private->sockfd); if (ssl->private->timeout) g_free (ssl->private->timeout); #elif defined HAVE_GNUTLS int ret; GnomeVFSResult res; retry: ret = gnutls_bye (ssl->private->tlsstate, GNUTLS_SHUT_RDWR); if (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED) { res = handle_ssl_read_write (ssl->private->sockfd, gnutls_record_get_direction (ssl->private->tlsstate), ssl->private->timeout, cancellation); if (res == GNOME_VFS_OK) goto retry; } gnutls_certificate_free_credentials (ssl->private->xcred); gnutls_deinit (ssl->private->tlsstate); close (ssl->private->sockfd); #else #endif g_free (ssl->private); g_free (ssl); } /** * gnome_vfs_ssl_set_timeout: * @ssl: SSL socket to set the timeout of. * @timeout: the timeout. * @cancellation: optional cancellation object. * * Set a timeout of @timeout. If @timeout is %NULL following operations * will block indefinitely). * * Note if you set @timeout to 0 (means tv_sec and tv_usec are both 0) * every following operation will return immediately. (This can be used * for polling.) * * Return value: #GnomeVFSResult indicating the success of the operation. * * Since: 2.8 */ GnomeVFSResult gnome_vfs_ssl_set_timeout (GnomeVFSSSL *ssl, GTimeVal *timeout, GnomeVFSCancellation *cancellation) { #if defined(HAVE_OPENSSL) || defined(HAVE_GNUTLS) /* reset a timeout */ if (timeout == NULL) { if (ssl->private->timeout != NULL) { g_free (ssl->private->timeout); ssl->private->timeout = NULL; } } else { if (ssl->private->timeout == NULL) ssl->private->timeout = g_new0 (struct timeval, 1); ssl->private->timeout->tv_sec = timeout->tv_sec; ssl->private->timeout->tv_usec = timeout->tv_usec; } return GNOME_VFS_OK; #else return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif } static GnomeVFSSocketImpl ssl_socket_impl = { (GnomeVFSSocketReadFunc)gnome_vfs_ssl_read, (GnomeVFSSocketWriteFunc)gnome_vfs_ssl_write, (GnomeVFSSocketCloseFunc)gnome_vfs_ssl_destroy, (GnomeVFSSocketSetTimeoutFunc)gnome_vfs_ssl_set_timeout, }; /** * gnome_vfs_ssl_to_socket: * @ssl: SSL socket to convert into a standard socket. * * Wrap an SSL socket inside a standard #GnomeVFSSocket. * * Return value: a newly allocated #GnomeVFSSocket corresponding to @ssl. */ GnomeVFSSocket * gnome_vfs_ssl_to_socket (GnomeVFSSSL *ssl) { return gnome_vfs_socket_new (&ssl_socket_impl, ssl); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-volume-ops.c0000644000175000001440000011216711334251016017111 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-volume-ops.c - mount/unmount/eject handling Copyright (C) 2003 Red Hat, Inc The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Alexander Larsson */ #include #include #include #include #include #include #include #include #ifndef G_OS_WIN32 #include #include #endif #include #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-volume.h" #include "gnome-vfs-utils.h" #include "gnome-vfs-drive.h" #include "gnome-vfs-volume-monitor-daemon.h" #include "gnome-vfs-volume-monitor-client.h" #include "gnome-vfs-private.h" #include "gnome-vfs-standard-callbacks.h" #include "gnome-vfs-module-callback-module-api.h" #include "gnome-vfs-module-callback-private.h" #include "gnome-vfs-pty.h" #ifdef USE_HAL #include "gnome-vfs-hal-mounts.h" #endif #ifdef HAVE_GRANTPT /* We only use this on systems with unix98 ptys */ #define USE_PTY 1 #endif #if 0 #define DEBUG_MOUNT_ENABLE #endif #ifdef DEBUG_MOUNT_ENABLE #define DEBUG_MOUNT(x) g_print x #else #define DEBUG_MOUNT(x) #endif #ifndef G_OS_WIN32 #ifdef USE_VOLRMMOUNT static const char *volrmmount_locations [] = { "/usr/bin/volrmmount", NULL }; #define MOUNT_COMMAND volrmmount_locations #define MOUNT_SEPARATOR " -i " #define UMOUNT_COMMAND volrmmount_locations #define UMOUNT_SEPARATOR " -e " #else static const char *mount_known_locations [] = { "/sbin/mount", "/bin/mount", "/usr/sbin/mount", "/usr/bin/mount", NULL }; static const char *pmount_known_locations [] = { "/usr/sbin/pmount", "/usr/bin/pmount", "/sbin/mount", "/bin/mount", "/usr/sbin/mount", "/usr/bin/mount", NULL }; static const char *pumount_known_locations [] = { "/usr/sbin/pumount", "/usr/bin/pumount", "/sbin/umount", "/bin/umount", "/usr/sbin/umount", "/usr/bin/umount", NULL }; static const char *umount_known_locations [] = { "/sbin/umount", "/bin/umount", "/usr/sbin/umount", "/usr/bin/umount", NULL }; #define MOUNT_COMMAND mount_known_locations #define MOUNT_SEPARATOR " " #define PMOUNT_COMMAND pmount_known_locations #define PMOUNT_SEPARATOR " " #define UMOUNT_COMMAND umount_known_locations #define UMOUNT_SEPARATOR " " #define PUMOUNT_COMMAND pumount_known_locations #define PUMOUNT_SEPARATOR " " #endif /* USE_VOLRMMOUNT */ /* Returns the full path to the queried command */ static const char * find_command (const char **known_locations) { int i; for (i = 0; known_locations [i]; i++){ if (g_file_test (known_locations [i], G_FILE_TEST_IS_EXECUTABLE)) return known_locations [i]; } return NULL; } typedef struct { char *argv[4]; char *mount_point; char *device_path; char *hal_udi; GnomeVFSDeviceType device_type; gboolean should_mount; gboolean should_unmount; gboolean should_eject; GnomeVFSVolumeOpCallback callback; gpointer user_data; /* Result: */ gboolean succeeded; char *error_message; char *detailed_error_message; } MountThreadInfo; /* Since we're not a module handling jobs, we need to do our own marshalling of the authentication callbacks */ typedef struct _MountThreadAuth { const gchar *callback; gconstpointer in_args; gsize in_size; gpointer out_args; gsize out_size; gboolean invoked; GCond *cond; GMutex *mutex; } MountThreadAuth; /* gnome-mount programs display their own dialogs so no use for these functions */ static char * generate_mount_error_message (char *standard_error, GnomeVFSDeviceType device_type) { char *message; if ((strstr (standard_error, "is not a valid block device") != NULL) || (strstr (standard_error, "No medium found") != NULL)) { /* No media in drive */ if (device_type == GNOME_VFS_DEVICE_TYPE_FLOPPY) { /* Handle floppy case */ message = g_strdup_printf (_("Unable to mount the floppy drive. " "There is probably no floppy in the drive.")); } else { /* All others */ message = g_strdup_printf (_("Unable to mount the volume. " "There is probably no media in the device.")); } } else if (strstr (standard_error, "wrong fs type, bad option, bad superblock on") != NULL) { /* Unknown filesystem */ if (device_type == GNOME_VFS_DEVICE_TYPE_FLOPPY) { message = g_strdup_printf (_("Unable to mount the floppy drive. " "The floppy is probably in a format that cannot be mounted.")); } else if (device_type == GNOME_VFS_DEVICE_TYPE_LOOPBACK) { /* Probably a wrong password */ message = g_strdup_printf (_("Unable to mount the volume. " "If this is an encrypted drive, then the wrong password or key was used.")); } else { message = g_strdup_printf (_("Unable to mount the selected volume. " "The volume is probably in a format that cannot be mounted.")); } } else { if (device_type == GNOME_VFS_DEVICE_TYPE_FLOPPY) { message = g_strdup (_("Unable to mount the selected floppy drive.")); } else { message = g_strdup (_("Unable to mount the selected volume.")); } } return message; } static char * generate_unmount_error_message (char *standard_error, GnomeVFSDeviceType device_type) { char *message; if ((strstr (standard_error, "busy") != NULL)) { message = g_strdup_printf (_("Unable to unmount the selected volume. " "The volume is in use by one or more programs.")); } else { message = g_strdup (_("Unable to unmount the selected volume.")); } return message; } static void force_probe (void) { GnomeVFSVolumeMonitor *volume_monitor; GnomeVFSDaemonForceProbeCallback callback; volume_monitor = gnome_vfs_get_volume_monitor (); if (gnome_vfs_get_is_daemon ()) { callback = _gnome_vfs_get_daemon_force_probe_callback(); (*callback) (GNOME_VFS_VOLUME_MONITOR (volume_monitor)); } else { _gnome_vfs_volume_monitor_client_dbus_force_probe ( GNOME_VFS_VOLUME_MONITOR_CLIENT (volume_monitor)); } } static gboolean report_mount_result (gpointer callback_data) { MountThreadInfo *info; int i; info = callback_data; /* We want to force probing here so that the daemon can refresh and tell us (and everyone else) of the new volume before we call the callback */ force_probe (); (info->callback) (info->succeeded, info->error_message, info->detailed_error_message, info->user_data); i = 0; while (info->argv[i] != NULL) { g_free (info->argv[i]); i++; } g_free (info->mount_point); g_free (info->device_path); g_free (info->hal_udi); g_free (info->error_message); g_free (info->detailed_error_message); g_free (info); return FALSE; } static gboolean invoke_async_auth_cb (MountThreadAuth *auth) { g_mutex_lock (auth->mutex); auth->invoked = gnome_vfs_module_callback_invoke (auth->callback, auth->in_args, auth->in_size, auth->out_args, auth->out_size); g_cond_signal (auth->cond); g_mutex_unlock (auth->mutex); return FALSE; } static gboolean invoke_async_auth (const gchar *callback_name, gconstpointer in, gsize in_size, gpointer out, gsize out_size) { MountThreadAuth auth; memset (&auth, 0, sizeof(auth)); auth.callback = callback_name; auth.in_args = in; auth.in_size = in_size; auth.out_args = out; auth.out_size = out_size; auth.invoked = FALSE; auth.mutex = g_mutex_new (); auth.cond = g_cond_new (); DEBUG_MOUNT (("mount invoking auth callback: %s\n", callback_name)); g_mutex_lock (auth.mutex); g_idle_add_full (G_PRIORITY_HIGH_IDLE, (GSourceFunc)invoke_async_auth_cb, &auth, NULL); g_cond_wait (auth.cond, auth.mutex); g_mutex_unlock (auth.mutex); g_mutex_free (auth.mutex); g_cond_free (auth.cond); DEBUG_MOUNT (("mount invoked auth callback: %s %d\n", callback_name, auth.invoked)); return auth.invoked; } static gboolean invoke_full_auth (MountThreadInfo *info, char **password_out) { GnomeVFSModuleCallbackFullAuthenticationIn in_args; GnomeVFSModuleCallbackFullAuthenticationOut out_args; gboolean invoked; *password_out = NULL; memset (&in_args, 0, sizeof (in_args)); in_args.flags = GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD; in_args.uri = gnome_vfs_get_uri_from_local_path (info->mount_point); in_args.protocol = "file"; in_args.object = NULL; in_args.authtype = "password"; in_args.domain = NULL; in_args.port = 0; in_args.server = (gchar*)info->device_path; in_args.username = NULL; memset (&out_args, 0, sizeof (out_args)); invoked = invoke_async_auth (GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, &in_args, sizeof (in_args), &out_args, sizeof (out_args)); if (invoked && !out_args.abort_auth) { *password_out = out_args.password; out_args.password = NULL; } g_free (in_args.uri); g_free (out_args.username); g_free (out_args.password); g_free (out_args.keyring); g_free (out_args.domain); return invoked && !out_args.abort_auth; } static gint read_data (GString *str, gint *fd, GError **error) { gssize bytes; gchar buf[4096]; again: bytes = read (*fd, buf, 4096); if (bytes < 0) { if (errno == EINTR) goto again; else if (errno == EIO) /* This seems to occur on a tty */ bytes = 0; else { g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_READ, _("Failed to read data from child process %d (%s)"), *fd, g_strerror (errno)); return -1; } } if (str) str = g_string_append_len (str, buf, bytes); /* Close when no more data */ if (bytes == 0) { g_printerr("closing\n"); close (*fd); *fd = -1; } return bytes; } static gboolean spawn_mount (MountThreadInfo *info, gchar **envp, gchar **standard_error, gint *exit_status, GError **error) { gint tty_fd, in_fd, out_fd, err_fd; fd_set rfds, wfds; GPid pid; gint ret, status; GString *outstr = NULL; GString *errstr = NULL; gboolean failed = FALSE; gboolean with_password = FALSE; gboolean need_password = FALSE; gchar* password = NULL; tty_fd = in_fd = out_fd = err_fd = -1; #ifdef USE_PTY with_password = info->should_mount; if (with_password) { tty_fd = gnome_vfs_pty_open ((pid_t *) &pid, GNOME_VFS_PTY_LOGIN_TTY, envp, info->argv[0], info->argv, NULL, 300, 300, &in_fd, &out_fd, standard_error ? &err_fd : NULL); if (tty_fd == -1) { g_warning (_("Couldn't run mount process in a pty")); with_password = FALSE; } } #endif if (!with_password) { if (!g_spawn_async_with_pipes (NULL, info->argv, envp, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_STDOUT_TO_DEV_NULL, NULL, NULL, &pid, NULL, NULL, standard_error ? &err_fd : NULL, error)) { g_critical ("Could not launch mount command: %s", (*error)->message); return FALSE; } } outstr = g_string_new (NULL); if (standard_error) errstr = g_string_new (NULL); /* Read data until we get EOF on both pipes. */ while (!failed && (err_fd >= 0 || tty_fd >= 0)) { ret = 0; FD_ZERO (&rfds); FD_ZERO (&wfds); if (out_fd >= 0) FD_SET (out_fd, &rfds); if (tty_fd >= 0) FD_SET (tty_fd, &rfds); if (err_fd >= 0) FD_SET (err_fd, &rfds); if (need_password) { if (in_fd >= 0) FD_SET (in_fd, &wfds); if (tty_fd >= 0) FD_SET (tty_fd, &wfds); } ret = select (FD_SETSIZE, &rfds, &wfds, NULL, NULL /* no timeout */); if (ret < 0 && errno != EINTR) { failed = TRUE; g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_READ, _("Unexpected error in select() reading data from a child process (%s)"), g_strerror (errno)); break; } /* Read possible password prompt */ if (tty_fd >= 0 && FD_ISSET (tty_fd, &rfds)) { if (read_data (outstr, &tty_fd, error) == -1) { failed = TRUE; break; } } /* Read possible password prompt */ if (out_fd >= 0 && FD_ISSET (out_fd, &rfds)) { if (read_data(outstr, &out_fd, error) == -1) { failed = TRUE; break; } } /* Look for a password prompt */ g_string_ascii_down (outstr); if (g_strstr_len (outstr->str, outstr->len, "password")) { DEBUG_MOUNT (("mount needs a password\n")); g_string_erase (outstr, 0, -1); need_password = TRUE; } if (need_password && ((tty_fd >= 0 && FD_ISSET (tty_fd, &wfds)) || (in_fd >= 0 && FD_ISSET (in_fd, &wfds)))) { g_free (password); password = NULL; /* Prompt for a password */ if (!invoke_full_auth (info, &password) || password == NULL) { DEBUG_MOUNT (("user cancelled mount password prompt\n")); /* User cancelled, empty string returned */ g_string_erase (errstr, 0, -1); kill (pid, SIGTERM); break; /* Got a password */ } else { DEBUG_MOUNT (("got password: %s\n", password)); if (write(tty_fd, password, strlen(password)) == -1 || write(tty_fd, "\n", 1) == -1) { g_warning ("couldn't send password to child mount process: %s\n", g_strerror (errno)); g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_READ, _("Couldn't send password to mount process.")); failed = TRUE; } } need_password = FALSE; } if (err_fd >= 0 && FD_ISSET (err_fd, &rfds)) { if (read_data (errstr, &err_fd, error) == -1) { failed = TRUE; break; } } } if (in_fd >= 0) close (in_fd); if (out_fd >= 0) close (out_fd); if (err_fd >= 0) close (err_fd); if (tty_fd >= 0) close (tty_fd); /* Wait for child to exit, even if we have * an error pending. */ again: ret = waitpid (pid, &status, 0); if (ret < 0) { if (errno == EINTR) goto again; else if (!failed) { failed = TRUE; g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_READ, _("Unexpected error in waitpid() (%s)"), g_strerror (errno)); } } g_free (password); if (failed) { if (errstr) g_string_free (errstr, TRUE); g_string_free (outstr, TRUE); return FALSE; } else { if (exit_status) *exit_status = status; if (standard_error) { /* Sad as it may be, certain mount helpers (like mount.cifs) * on Linux and perhaps other OSs return their error * output on stdout. */ if (outstr->len && !errstr->len) { *standard_error = g_string_free (outstr, FALSE); g_string_free (errstr, TRUE); } else { *standard_error = g_string_free (errstr, FALSE); g_string_free (outstr, TRUE); } } return TRUE; } } static void * mount_unmount_thread (void *arg) { MountThreadInfo *info; char *standard_error; gint exit_status; GError *error; char *envp[] = { "LC_ALL=C", NULL }; info = arg; info->succeeded = TRUE; info->error_message = NULL; info->detailed_error_message = NULL; if (info->should_mount || info->should_unmount) { error = NULL; if (spawn_mount (info, #if defined(USE_HAL) /* do pass our environment when using gnome-mount progams */ ((strcmp (info->argv[0], GNOME_VFS_BINDIR "/gnome-mount") == 0) || (strcmp (info->argv[0], GNOME_VFS_BINDIR "/gnome-umount") == 0) || (strcmp (info->argv[0], GNOME_VFS_BINDIR "/gnome-eject") == 0) || # if defined(HAL_MOUNT) && defined(HAL_UMOUNT) /* do pass our environment when using hal mount progams */ (strcmp (info->argv[0], HAL_MOUNT) == 0) || (strcmp (info->argv[0], HAL_UMOUNT) == 0) || # endif FALSE) ? NULL : envp, #else envp, #endif &standard_error, &exit_status, &error)) { if (exit_status != 0) { info->succeeded = FALSE; if ((strcmp (info->argv[0], GNOME_VFS_BINDIR "/gnome-mount") == 0) || (strcmp (info->argv[0], GNOME_VFS_BINDIR "/gnome-umount") == 0) || (strcmp (info->argv[0], GNOME_VFS_BINDIR "/gnome-eject") == 0)) { /* gnome-mount programs display their own dialogs */ info->error_message = g_strdup (""); info->detailed_error_message = g_strdup (""); } else { if (strlen (standard_error) > 0) { if (info->should_mount) { info->error_message = generate_mount_error_message ( standard_error, info->device_type); } else { info->error_message = generate_unmount_error_message ( standard_error, info->device_type); } info->detailed_error_message = g_strdup (standard_error); } else { /* As of 2.12 we introduce a new contract between gnome-vfs clients * invoking mount/unmount and the gnome-vfs-daemon: * * "don't display an error dialog if error_message and * detailed_error_message are both empty strings". * * We want this as we may use mount/unmount/ejects programs that * shows it's own dialogs. */ info->error_message = g_strdup (""); info->detailed_error_message = g_strdup (""); } } } g_free (standard_error); } else { /* spawn failure */ info->succeeded = FALSE; info->error_message = g_strdup (_("Failed to start command")); info->detailed_error_message = g_strdup (error->message); g_error_free (error); } } if (info->should_eject) { char *argv[5]; argv[0] = NULL; #if defined(USE_HAL) if (info->hal_udi != NULL) { argv[0] = GNOME_VFS_BINDIR "/gnome-eject"; argv[1] = "--hal-udi"; argv[2] = info->hal_udi; argv[3] = NULL; if (!g_file_test (argv [0], G_FILE_TEST_IS_EXECUTABLE)) argv[0] = NULL; } # if defined(HAL_EJECT) if (argv[0] == NULL && info->hal_udi != NULL) { argv[0] = HAL_EJECT; argv[1] = info->device_path; argv[2] = NULL; if (!g_file_test (argv [0], G_FILE_TEST_IS_EXECUTABLE)) argv[0] = NULL; } # endif #endif if (argv[0] == NULL) { #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) argv[0] = "cdcontrol"; argv[1] = "-f"; argv[2] = info->device_path?info->device_path:info->mount_point; argv[3] = "eject"; argv[4] = NULL; #else argv[0] = "eject"; argv[1] = info->device_path?info->device_path:info->mount_point; argv[2] = NULL; #endif } error = NULL; if (g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &standard_error, &exit_status, &error)) { if (info->succeeded == FALSE) { g_free(info->error_message); info->error_message = NULL; g_free(info->detailed_error_message); info->detailed_error_message = NULL; } if (exit_status != 0) { info->succeeded = FALSE; if ((strcmp (argv[0], GNOME_VFS_BINDIR "/gnome-mount") == 0) || (strcmp (argv[0], GNOME_VFS_BINDIR "/gnome-umount") == 0) || (strcmp (argv[0], GNOME_VFS_BINDIR "/gnome-eject") == 0)) { /* gnome-mount programs display their own dialogs */ info->error_message = g_strdup (""); info->detailed_error_message = g_strdup (""); } else { info->error_message = g_strdup (_("Unable to eject media")); info->detailed_error_message = g_strdup (standard_error); } } else { /* If the eject succeed then ignore the previous unmount error (if any) */ info->succeeded = TRUE; } g_free (standard_error); } else { /* Spawn failure */ if (info->succeeded) { info->succeeded = FALSE; info->error_message = g_strdup (_("Failed to start command")); info->detailed_error_message = g_strdup (error->message); } g_error_free (error); } } g_idle_add (report_mount_result, info); pthread_exit (NULL); return NULL; } #endif /* !G_OS_WIN32 */ static void mount_unmount_operation (const char *mount_point, const char *device_path, const char *hal_udi, GnomeVFSDeviceType device_type, gboolean should_mount, gboolean should_unmount, gboolean should_eject, GnomeVFSVolumeOpCallback callback, gpointer user_data) { #ifndef G_OS_WIN32 const char *command = NULL; const char *argument = NULL; MountThreadInfo *mount_info; pthread_t mount_thread; const char *name; int i; gboolean is_in_media; #ifdef USE_VOLRMMOUNT if (mount_point != NULL) { name = strrchr (mount_point, '/'); if (name != NULL) { name = name + 1; } else { name = mount_point; } #else # ifdef USE_HAL if (hal_udi != NULL) { name = device_path; } else name = mount_point; # else name = mount_point; # endif #endif is_in_media = mount_point != NULL ? g_str_has_prefix (mount_point, "/media") : FALSE; command = NULL; if (should_mount) { #if defined(USE_HAL) if (hal_udi != NULL && g_file_test (GNOME_VFS_BINDIR "/gnome-mount", G_FILE_TEST_IS_EXECUTABLE)) { command = GNOME_VFS_BINDIR "/gnome-mount"; argument = "--hal-udi"; name = hal_udi; } else { # if defined(HAL_MOUNT) if (hal_udi != NULL && g_file_test (HAL_MOUNT, G_FILE_TEST_IS_EXECUTABLE)) command = HAL_MOUNT; else command = find_command (MOUNT_COMMAND); # else ; # endif } #endif if (command == NULL) command = find_command (is_in_media ? PMOUNT_COMMAND : MOUNT_COMMAND); #ifdef MOUNT_ARGUMENT argument = MOUNT_ARGUMENT; #endif } if (should_unmount) { #if defined(USE_HAL) if (hal_udi != NULL && g_file_test (GNOME_VFS_BINDIR "/gnome-umount", G_FILE_TEST_IS_EXECUTABLE)) { command = GNOME_VFS_BINDIR "/gnome-umount"; argument = "--hal-udi"; name = hal_udi; } else { # if defined(HAL_UMOUNT) if (hal_udi != NULL && g_file_test (HAL_UMOUNT, G_FILE_TEST_IS_EXECUTABLE)) command = HAL_UMOUNT; else command = find_command (UMOUNT_COMMAND); # else ; #endif } #endif if (command == NULL) command = find_command (is_in_media ? PUMOUNT_COMMAND : UMOUNT_COMMAND); #ifdef UNMOUNT_ARGUMENT argument = UNMOUNT_ARGUMENT; #endif } mount_info = g_new0 (MountThreadInfo, 1); if (command) { i = 0; mount_info->argv[i++] = g_strdup (command); if (argument) { mount_info->argv[i++] = g_strdup (argument); } mount_info->argv[i++] = g_strdup (name); mount_info->argv[i++] = NULL; } mount_info->mount_point = g_strdup (mount_point != NULL ? mount_point : ""); mount_info->device_path = g_strdup (device_path); mount_info->device_type = device_type; mount_info->hal_udi = g_strdup (hal_udi); mount_info->should_mount = should_mount; mount_info->should_unmount = should_unmount; mount_info->should_eject = should_eject; mount_info->callback = callback; mount_info->user_data = user_data; pthread_create (&mount_thread, NULL, mount_unmount_thread, mount_info); #else g_warning ("Not implemented: mount_unmount_operation()\n"); #endif } /* TODO: check if already mounted/unmounted, emit pre_unmount, check for mount types */ static void emit_pre_unmount (GnomeVFSVolume *volume) { GnomeVFSVolumeMonitor *volume_monitor; volume_monitor = gnome_vfs_get_volume_monitor (); if (gnome_vfs_get_is_daemon ()) { gnome_vfs_volume_monitor_emit_pre_unmount (volume_monitor, volume); } else { _gnome_vfs_volume_monitor_client_dbus_emit_pre_unmount ( GNOME_VFS_VOLUME_MONITOR_CLIENT (volume_monitor), volume); /* Do a synchronous pre_unmount for this client too, avoiding * races at least in this process */ gnome_vfs_volume_monitor_emit_pre_unmount (volume_monitor, volume); /* sleep for a while to get other apps to release their * hold on the device */ g_usleep (0.5*G_USEC_PER_SEC); } } static void unmount_connected_server (GnomeVFSVolume *volume, GnomeVFSVolumeOpCallback callback, gpointer user_data) { GConfClient *client; gboolean res; char *key; gboolean success; char *detailed_error; GError *error; success = TRUE; detailed_error = NULL; client = gconf_client_get_default (); key = g_strconcat (CONNECTED_SERVERS_DIR "/", volume->priv->gconf_id, "/uri", NULL); error = NULL; res = gconf_client_unset (client, key, &error); g_free (key); if (!res) { if (success) { detailed_error = g_strdup (error->message); } success = FALSE; g_error_free (error); } key = g_strconcat (CONNECTED_SERVERS_DIR "/", volume->priv->gconf_id, "/icon", NULL); res = gconf_client_unset (client, key, &error); g_free (key); if (!res) { if (success) { detailed_error = g_strdup (error->message); } success = FALSE; g_error_free (error); } key = g_strconcat (CONNECTED_SERVERS_DIR "/", volume->priv->gconf_id, "/display_name", NULL); res = gconf_client_unset (client, key, &error); g_free (key); if (!res) { if (success) { detailed_error = g_strdup (error->message); } success = FALSE; g_error_free (error); } g_object_unref (client); if (success) { (*callback) (success, NULL, NULL, user_data); } else { (*callback) (success, (char *) _("Unable to unmount connected server"), detailed_error, user_data); } g_free (detailed_error); } /** * gnome_vfs_volume_unmount: * @volume: the #GnomeVFSVolume that should be unmounted. * @callback: the #GnomeVFSVolumeOpCallback that should be invoked after unmounting @volume. * @user_data: the user data to pass to @callback. * * Note that gnome_vfs_volume_unmount() may also invoke gnome_vfs_volume_eject(), * if the @volume signals that it should be ejected when it is unmounted. * This may be true for CD-ROMs, USB sticks and other devices, depending on the * backend providing the @volume. * * Since: 2.6 */ void gnome_vfs_volume_unmount (GnomeVFSVolume *volume, GnomeVFSVolumeOpCallback callback, gpointer user_data) { char *mount_path, *device_path; char *uri; GnomeVFSVolumeType type; if (volume->priv->drive != NULL) { if (volume->priv->drive->priv->must_eject_at_unmount) { gnome_vfs_volume_eject (volume, callback, user_data); return; } } emit_pre_unmount (volume); type = gnome_vfs_volume_get_volume_type (volume); if (type == GNOME_VFS_VOLUME_TYPE_MOUNTPOINT) { char *hal_udi; uri = gnome_vfs_volume_get_activation_uri (volume); mount_path = gnome_vfs_get_local_path_from_uri (uri); g_free (uri); device_path = gnome_vfs_volume_get_device_path (volume); hal_udi = gnome_vfs_volume_get_hal_udi (volume); /* Volumes from drives that are not polled may not * have a hal_udi.. take the one from HAL to get * gnome-mount working */ if (hal_udi == NULL) { GnomeVFSDrive *drive; drive = gnome_vfs_volume_get_drive (volume); if (drive != NULL) { hal_udi = gnome_vfs_drive_get_hal_udi (drive); gnome_vfs_drive_unref (drive); } } mount_unmount_operation (mount_path, device_path, hal_udi, gnome_vfs_volume_get_device_type (volume), FALSE, TRUE, FALSE, callback, user_data); g_free (mount_path); g_free (device_path); g_free (hal_udi); } else if (type == GNOME_VFS_VOLUME_TYPE_VFS_MOUNT) { /* left intentionally blank as these cannot be mounted and thus not unmounted */ } else if (type == GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER) { unmount_connected_server (volume, callback, user_data); } } /** * gnome_vfs_volume_eject: * @volume: the #GnomeVFSVolume that should be ejected. * @callback: the #GnomeVFSVolumeOpCallback that should be invoked after ejecting of @volume. * @user_data: the user data to pass to @callback. * * Requests ejection of a #GnomeVFSVolume. * * Before the unmount operation is executed, the * #GnomeVFSVolume::pre-unmount signal is emitted. * * If the @volume is a mount point (its type is * #GNOME_VFS_VOLUME_TYPE_MOUNTPOINT), it is unmounted, * and if it refers to a disc, it is also ejected. * * If the @volume is a special VFS mount, i.e. * its type is #GNOME_VFS_VOLUME_TYPE_VFS_MOUNT, it * is ejected. * * If the @volume is a connected server, it * is removed from the list of connected servers. * * Otherwise, no further action is done. * * Since: 2.6 */ void gnome_vfs_volume_eject (GnomeVFSVolume *volume, GnomeVFSVolumeOpCallback callback, gpointer user_data) { char *mount_path, *device_path; char *uri; char *hal_udi; GnomeVFSVolumeType type; emit_pre_unmount (volume); type = gnome_vfs_volume_get_volume_type (volume); if (type == GNOME_VFS_VOLUME_TYPE_MOUNTPOINT) { uri = gnome_vfs_volume_get_activation_uri (volume); mount_path = gnome_vfs_get_local_path_from_uri (uri); g_free (uri); device_path = gnome_vfs_volume_get_device_path (volume); hal_udi = gnome_vfs_volume_get_hal_udi (volume); /* Volumes from drives that are not polled may not * have a hal_udi.. take the one from HAL to get * gnome-mount working */ if (hal_udi == NULL) { GnomeVFSDrive *drive; drive = gnome_vfs_volume_get_drive (volume); if (drive != NULL) { hal_udi = gnome_vfs_drive_get_hal_udi (drive); gnome_vfs_drive_unref (drive); } } mount_unmount_operation (mount_path, device_path, hal_udi, gnome_vfs_volume_get_device_type (volume), FALSE, TRUE, TRUE, callback, user_data); g_free (mount_path); g_free (device_path); g_free (hal_udi); } else if (type == GNOME_VFS_VOLUME_TYPE_VFS_MOUNT) { hal_udi = gnome_vfs_volume_get_hal_udi (volume); uri = gnome_vfs_volume_get_activation_uri (volume); device_path = gnome_vfs_volume_get_device_path (volume); /* special handling for optical disc VFS_MOUNT created by the hal backend */ if (hal_udi != NULL && (g_str_has_prefix (uri, "cdda://") || g_str_has_prefix (uri, "burn:///"))) { device_path = gnome_vfs_volume_get_device_path (volume); mount_unmount_operation (NULL, device_path, hal_udi, gnome_vfs_volume_get_device_type (volume), FALSE, FALSE, TRUE, callback, user_data); g_free (device_path); } g_free (uri); g_free (hal_udi); } else if (type == GNOME_VFS_VOLUME_TYPE_CONNECTED_SERVER) { unmount_connected_server (volume, callback, user_data); } } /** * gnome_vfs_drive_mount: * @drive: the #GnomeVFSDrive that should be mounted. * @callback: the #GnomeVFSVolumeOpCallback that should be invoked after mounting @drive. * @user_data: the user data to pass to @callback. * * Since: 2.6 */ void gnome_vfs_drive_mount (GnomeVFSDrive *drive, GnomeVFSVolumeOpCallback callback, gpointer user_data) { char *mount_path, *device_path, *uri; uri = gnome_vfs_drive_get_activation_uri (drive); mount_path = gnome_vfs_get_local_path_from_uri (uri); g_free (uri); device_path = gnome_vfs_drive_get_device_path (drive); mount_unmount_operation (mount_path, device_path, gnome_vfs_drive_get_hal_udi (drive), gnome_vfs_drive_get_device_type (drive), TRUE, FALSE, FALSE, callback, user_data); g_free (mount_path); g_free (device_path); } /** * gnome_vfs_drive_unmount: * @drive: the #GnomeVFSDrive that should be unmounted. * @callback: the #GnomeVFSVolumeOpCallback that should be invoked after unmounting @drive. * @user_data: the user data to pass to @callback. * * gnome_vfs_drive_unmount() invokes gnome_vfs_drive_eject(), if the @drive signals * that it should be ejected when it is unmounted. This may be true for CD-ROMs, * USB sticks and other devices, depending on the backend providing the #GnomeVFSDrive @drive. * * If the @drive does not signal that it should be ejected when it is unmounted, * gnome_vfs_drive_unmount() calls gnome_vfs_volume_unmount() for each of the * @drive's mounted #GnomeVFSVolumes, which can be queried using * gnome_vfs_drive_get_mounted_volumes(). * * Since: 2.6 */ void gnome_vfs_drive_unmount (GnomeVFSDrive *drive, GnomeVFSVolumeOpCallback callback, gpointer user_data) { GList *vol_list; GList *current_vol; if (drive->priv->must_eject_at_unmount) { gnome_vfs_drive_eject (drive, callback, user_data); return; } vol_list = gnome_vfs_drive_get_mounted_volumes (drive); for (current_vol = vol_list; current_vol != NULL; current_vol = current_vol->next) { GnomeVFSVolume *vol; vol = GNOME_VFS_VOLUME (current_vol->data); gnome_vfs_volume_unmount (vol, callback, user_data); } gnome_vfs_drive_volume_list_free (vol_list); } /** * gnome_vfs_drive_eject: * @drive: the #GnomeVFSDrive that should be ejcted. * @callback: the #GnomeVFSVolumeOpCallback that should be invoked after ejecting @drive. * @user_data: the user data to pass to @callback. * * If @drive has associated #GnomeVFSVolume objects, all of them will be * unmounted by calling gnome_vfs_volume_unmount() for each volume in * gnome_vfs_drive_get_mounted_volumes(), except for the last one, * for which gnome_vfs_volume_eject() is called to ensure that the * @drive's media is ejected. * * If @drive however has no associated #GnomeVFSVolume objects, it * simply calls an unmount helper on the @drive. * * Since: 2.6 */ void gnome_vfs_drive_eject (GnomeVFSDrive *drive, GnomeVFSVolumeOpCallback callback, gpointer user_data) { GList *vol_list; GList * current_vol; vol_list = gnome_vfs_drive_get_mounted_volumes (drive); for (current_vol = vol_list; current_vol != NULL; current_vol = current_vol->next) { GnomeVFSVolume *vol; vol = GNOME_VFS_VOLUME (current_vol->data); /* Check to see if this is the last volume */ /* If not simply unmount it */ /* If so the eject the media along with the unmount */ if (current_vol->next != NULL) { gnome_vfs_volume_unmount (vol, callback, user_data); } else { gnome_vfs_volume_eject (vol, callback, user_data); } } if (vol_list == NULL) { /* no mounted volumes */ char *mount_path, *device_path, *uri; uri = gnome_vfs_drive_get_activation_uri (drive); mount_path = gnome_vfs_get_local_path_from_uri (uri); g_free (uri); device_path = gnome_vfs_drive_get_device_path (drive); mount_unmount_operation (mount_path, device_path, gnome_vfs_drive_get_hal_udi (drive), GNOME_VFS_DEVICE_TYPE_UNKNOWN, FALSE, FALSE, TRUE, callback, user_data); g_free (mount_path); g_free (device_path); } gnome_vfs_drive_volume_list_free (vol_list); } /** * gnome_vfs_connect_to_server: * @uri: The string representation of the server to connect to. * @display_name: The display name that is used to identify the server connection. * @icon: The icon that is used to identify the server connection. * * This function adds a server connection to the specified @uri, which is displayed * in user interfaces with the specified @display_name and @icon. * * If this function is invoked successfully, the created server shows up in the * list of mounted volumes of the #GnomeVFSVolumeMonitor, which can be queried * using gnome_vfs_volume_monitor_get_mounted_volumes(). * * * * This function does not have a return value. Hence, you can't easily detect * whether the specified server was successfully created. The actual creation and * consumption of the new server through the #GnomeVFSVolumeMonitor is done * asynchronously. * * * @uri, @display_name, and @icon can be freely chosen, but should be meaningful: * * * @uri should refer to a valid location. You can check the validity of the * location by calling gnome_vfs_uri_new() with @uri, and checking whether * the return value is not %NULL. * * * The @display_name should be queried from the user, and an empty string * should not be considered valid. * * * @icon typically references an icon from the icon theme. Some * implementations currently use gnome-fs-smb, * gnome-fs-ssh, gnome-fs-ftp and * gnome-fs-share, depending on the type of the server * referenced by @uri. The icon naming conventions might change in the * future, though. Obeying the * freedesktop.org Icon Naming Specification is suggested. * * * * Since: 2.6 */ void gnome_vfs_connect_to_server (const char *uri, const char *display_name, const char *icon) { GConfClient *client; GSList *dirs, *l; char *dir, *dir_id; int max_id, gconf_id; char *key; char *id; client = gconf_client_get_default (); max_id = 0; dirs = gconf_client_all_dirs (client, CONNECTED_SERVERS_DIR, NULL); for (l = dirs; l != NULL; l = l->next) { dir = l->data; dir_id = strrchr (dir, '/'); if (dir_id != NULL) { dir_id++; gconf_id = strtol (dir_id, NULL, 10); max_id = MAX (max_id, gconf_id); } g_free (dir); } g_slist_free (dirs); id = g_strdup_printf ("%d", max_id + 1); key = g_strconcat (CONNECTED_SERVERS_DIR "/", id, "/icon", NULL); gconf_client_set_string (client, key, icon, NULL); g_free (key); key = g_strconcat (CONNECTED_SERVERS_DIR "/", id, "/display_name", NULL); gconf_client_set_string (client, key, display_name, NULL); g_free (key); /* Uri key creation triggers creation, do this last */ key = g_strconcat (CONNECTED_SERVERS_DIR "/", id, "/uri", NULL); gconf_client_set_string (client, key, uri, NULL); g_free (key); g_free (id); g_object_unref (client); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-inet-connection.h0000644000175000001440000000540111334251016020074 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-inet-connection.h - Functions for creating and destroying Internet connections. Copyright (C) 1999 Free Software Foundation The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli */ #ifndef GNOME_VFS_INET_CONNECTION_H #define GNOME_VFS_INET_CONNECTION_H #include #include #include #include G_BEGIN_DECLS typedef struct GnomeVFSInetConnection GnomeVFSInetConnection; GnomeVFSResult gnome_vfs_inet_connection_create (GnomeVFSInetConnection **connection_return, const gchar *host_name, guint host_port, GnomeVFSCancellation *cancellation); GnomeVFSResult gnome_vfs_inet_connection_create_from_address (GnomeVFSInetConnection **connection_return, GnomeVFSAddress *address, guint host_port, GnomeVFSCancellation *cancellation); /* free the connection structure and close the socket */ void gnome_vfs_inet_connection_destroy (GnomeVFSInetConnection *connection, GnomeVFSCancellation *cancellation); /* free the connection structure without closing the socket */ void gnome_vfs_inet_connection_free (GnomeVFSInetConnection *connection, GnomeVFSCancellation *cancellation); GnomeVFSSocket * gnome_vfs_inet_connection_to_socket (GnomeVFSInetConnection *connection); GnomeVFSSocketBuffer *gnome_vfs_inet_connection_to_socket_buffer (GnomeVFSInetConnection *connection); int gnome_vfs_inet_connection_get_fd (GnomeVFSInetConnection *connection); char *gnome_vfs_inet_connection_get_ip (GnomeVFSInetConnection *connection); GnomeVFSAddress *gnome_vfs_inet_connection_get_address (GnomeVFSInetConnection *connection); G_END_DECLS #endif /* GNOME_VFS_INET_CONNECTION_H */ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-address.h0000644000175000001440000000465311334251016016435 00000000000000/* gnome-vfs-address.h - Address functions Copyright (C) 2004 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef GNOME_VFS_ADDRESS_H #define GNOME_VFS_ADDRESS_H #include #include #include #ifndef G_OS_WIN32 #include #include #include #else #include #undef interface #endif G_BEGIN_DECLS #define GNOME_VFS_TYPE_ADDRESS (gnome_vfs_address_get_type ()) typedef struct _GnomeVFSAddress GnomeVFSAddress; GType gnome_vfs_address_get_type (void); GnomeVFSAddress *gnome_vfs_address_new_from_string (const char *address); GnomeVFSAddress *gnome_vfs_address_new_from_ipv4 (guint32 ipv4_address); GnomeVFSAddress *gnome_vfs_address_new_from_sockaddr (struct sockaddr *sa, int len); int gnome_vfs_address_get_family_type (GnomeVFSAddress *address); char * gnome_vfs_address_to_string (GnomeVFSAddress *address); guint32 gnome_vfs_address_get_ipv4 (GnomeVFSAddress *address); struct sockaddr *gnome_vfs_address_get_sockaddr (GnomeVFSAddress *address, guint16 port, int *len); gboolean gnome_vfs_address_equal (const GnomeVFSAddress *a, const GnomeVFSAddress *b); gboolean gnome_vfs_address_match (const GnomeVFSAddress *a, const GnomeVFSAddress *b, guint prefix); GnomeVFSAddress *gnome_vfs_address_dup (GnomeVFSAddress *address); void gnome_vfs_address_free (GnomeVFSAddress *address); G_END_DECLS #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-result.c0000644000175000001440000002113111334251016016307 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-error.c - Error handling for the GNOME Virtual File System. Copyright (C) 1999 Free Software Foundation Copyright (C) 2007 Thadeu Lima de Souza Cascardo The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Modified on 2007-01-29 by Thadeu Lima de Souza Cascardo to handle ENOTSUP. */ #include #include "gnome-vfs-result.h" #include #include #include #ifndef G_OS_WIN32 #include #endif #ifndef G_OS_WIN32 /* AIX #defines h_errno */ #ifndef h_errno extern int h_errno; #endif #endif static char *status_strings[] = { /* GNOME_VFS_OK */ N_("No error"), /* GNOME_VFS_ERROR_NOT_FOUND */ N_("File not found"), /* GNOME_VFS_ERROR_GENERIC */ N_("Generic error"), /* GNOME_VFS_ERROR_INTERNAL */ N_("Internal error"), /* GNOME_VFS_ERROR_BAD_PARAMETERS */ N_("Invalid parameters"), /* GNOME_VFS_ERROR_NOT_SUPPORTED */ N_("Unsupported operation"), /* GNOME_VFS_ERROR_IO */ N_("I/O error"), /* GNOME_VFS_ERROR_CORRUPTED_DATA */ N_("Data corrupted"), /* GNOME_VFS_ERROR_WRONG_FORMAT */ N_("Format not valid"), /* GNOME_VFS_ERROR_BAD_FILE */ N_("Bad file handle"), /* GNOME_VFS_ERROR_TOO_BIG */ N_("File too big"), /* GNOME_VFS_ERROR_NO_SPACE */ N_("No space left on device"), /* GNOME_VFS_ERROR_READ_ONLY */ N_("Read-only file system"), /* GNOME_VFS_ERROR_INVALID_URI */ N_("Invalid URI"), /* GNOME_VFS_ERROR_NOT_OPEN */ N_("File not open"), /* GNOME_VFS_ERROR_INVALID_OPEN_MODE */ N_("Open mode not valid"), /* GNOME_VFS_ERROR_ACCESS_DENIED */ N_("Access denied"), /* GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES */ N_("Too many open files"), /* GNOME_VFS_ERROR_EOF */ N_("End of file"), /* GNOME_VFS_ERROR_NOT_A_DIRECTORY */ N_("Not a directory"), /* GNOME_VFS_ERROR_IN_PROGRESS */ N_("Operation in progress"), /* GNOME_VFS_ERROR_INTERRUPTED */ N_("Operation interrupted"), /* GNOME_VFS_ERROR_FILE_EXISTS */ N_("File exists"), /* GNOME_VFS_ERROR_LOOP */ N_("Looping links encountered"), /* GNOME_VFS_ERROR_NOT_PERMITTED */ N_("Operation not permitted"), /* GNOME_VFS_ERROR_IS_DIRECTORY */ N_("Is a directory"), /* GNOME_VFS_ERROR_NO_MEMORY */ N_("Not enough memory"), /* GNOME_VFS_ERROR_HOST_NOT_FOUND */ N_("Host not found"), /* GNOME_VFS_ERROR_INVALID_HOST_NAME */ N_("Host name not valid"), /* GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS */ N_("Host has no address"), /* GNOME_VFS_ERROR_LOGIN_FAILED */ N_("Login failed"), /* GNOME_VFS_ERROR_CANCELLED */ N_("Operation cancelled"), /* GNOME_VFS_ERROR_DIRECTORY_BUSY */ N_("Directory busy"), /* GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY */ N_("Directory not empty"), /* GNOME_VFS_ERROR_TOO_MANY_LINKS */ N_("Too many links"), /* GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM */ N_("Read only file system"), /* GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM */ N_("Not on the same file system"), /* GNOME_VFS_ERROR_NAME_TOO_LONG */ N_("Name too long"), /* GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE */ N_("Service not available"), /* GNOME_VFS_ERROR_SERVICE_OBSOLETE */ N_("Request obsoletes service's data"), /* GNOME_VFS_ERROR_PROTOCOL_ERROR */ N_("Protocol error"), /* GNOME_VFS_ERROR_NO_MASTER_BROWSER */ N_("Could not find master browser"), /* GNOME_VFS_ERROR_NO_DEFAULT */ N_("No default action associated"), /* GNOME_VFS_ERROR_NO_HANDLER */ N_("No handler for URL scheme"), /* GNOME_VFS_ERROR_PARSE */ N_("Error parsing command line"), /* GNOME_VFS_ERROR_LAUNCH */ N_("Error launching command"), /* GNOME_VFS_ERROR_TIMEOUT */ N_("Timeout reached"), /* GNOME_VFS_ERROR_NAMESERVER */ N_("Nameserver error"), /* GNOME_VFS_ERROR_LOCKED */ N_("The resource is locked"), /* GNOME_VFS_ERROR_DEPRECATED_FUNCTION */ N_("Function call deprecated"), /* GNOME_VFS_ERROR_INVALID_FILENAME */ N_("Invalid filename"), /* GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK */ N_("Not a symbolic link") }; /** * gnome_vfs_result_from_errno_code: * @errno_code: integer of the same type as the system "errno". * * Converts a system errno value to a #GnomeVFSResult. * * Return value: a #GnomeVFSResult equivalent to @errno_code. */ GnomeVFSResult gnome_vfs_result_from_errno_code (int errno_code) { /* Please keep these in alphabetical order. */ switch (errno_code) { case E2BIG: return GNOME_VFS_ERROR_TOO_BIG; case EACCES: return GNOME_VFS_ERROR_ACCESS_DENIED; case EBUSY: return GNOME_VFS_ERROR_DIRECTORY_BUSY; case EBADF: return GNOME_VFS_ERROR_BAD_FILE; #ifdef ECONNREFUSED case ECONNREFUSED: return GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE; #endif case EEXIST: return GNOME_VFS_ERROR_FILE_EXISTS; case EFAULT: return GNOME_VFS_ERROR_INTERNAL; case EFBIG: return GNOME_VFS_ERROR_TOO_BIG; case EINTR: return GNOME_VFS_ERROR_INTERRUPTED; case EINVAL: return GNOME_VFS_ERROR_BAD_PARAMETERS; case EIO: return GNOME_VFS_ERROR_IO; case EISDIR: return GNOME_VFS_ERROR_IS_DIRECTORY; #ifdef ELOOP case ELOOP: return GNOME_VFS_ERROR_LOOP; #endif case EMFILE: return GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES; case EMLINK: return GNOME_VFS_ERROR_TOO_MANY_LINKS; #ifdef ENETUNREACH case ENETUNREACH: return GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE; #endif case ENFILE: return GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES; #if ENOTEMPTY != EEXIST case ENOTEMPTY: return GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY; #endif case ENOENT: return GNOME_VFS_ERROR_NOT_FOUND; case ENOMEM: return GNOME_VFS_ERROR_NO_MEMORY; case ENOSPC: return GNOME_VFS_ERROR_NO_SPACE; case ENOTDIR: return GNOME_VFS_ERROR_NOT_A_DIRECTORY; case EPERM: return GNOME_VFS_ERROR_NOT_PERMITTED; case EROFS: return GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM; #ifdef ETIMEDOUT case ETIMEDOUT: return GNOME_VFS_ERROR_TIMEOUT; #endif case EXDEV: return GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM; case ENAMETOOLONG: return GNOME_VFS_ERROR_NAME_TOO_LONG; #ifdef ENOTSUP case ENOTSUP: return GNOME_VFS_ERROR_NOT_SUPPORTED; #endif /* FIXME bugzilla.eazel.com 1191: To be completed. */ default: return GNOME_VFS_ERROR_GENERIC; } } /** * gnome_vfs_result_from_errno: * * Converts the system errno to a #GnomeVFSResult. * * Return value: a #GnomeVFSResult equivalent to the current system errno. */ GnomeVFSResult gnome_vfs_result_from_errno (void) { return gnome_vfs_result_from_errno_code(errno); } #ifndef G_OS_WIN32 /** * gnome_vfs_result_from_h_errno: * * Converts the system "h_errno" to a #GnomeVFSResult (h_errno represents errors * accessing and finding internet hosts) * * Return value: a #GnomeVFSResult equivalent to the current system "h_errno". */ GnomeVFSResult gnome_vfs_result_from_h_errno (void) { return gnome_vfs_result_from_h_errno_val (h_errno); } /** * gnome_vfs_result_from_h_errno_val: * @h_errno_code: an integer representing the same error code * as the system h_errno. * * Converts the error code @h_errno_code into a #GnomeVFSResult. * * Return Value: The #GnomeVFSResult equivalent to the @h_errno_code. */ GnomeVFSResult gnome_vfs_result_from_h_errno_val (int h_errno_code) { switch (h_errno_code) { case HOST_NOT_FOUND: return GNOME_VFS_ERROR_HOST_NOT_FOUND; case NO_ADDRESS: return GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS; case TRY_AGAIN: return GNOME_VFS_ERROR_NAMESERVER; case NO_RECOVERY: return GNOME_VFS_ERROR_NAMESERVER; default: return GNOME_VFS_ERROR_GENERIC; } } #endif /** * gnome_vfs_result_to_string: * @result: a #GnomeVFSResult to convert to a string. * * Returns a string representing @result, useful for debugging * purposes, but probably not appropriate for passing to the user. * * Return value: a string representing @result. */ const char * gnome_vfs_result_to_string (GnomeVFSResult result) { if ((guint) result >= (guint) (sizeof (status_strings) / sizeof (*status_strings))) return _("Unknown error"); return _(status_strings[(guint) result]); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-job.c0000644000175000001440000014671111334251016015557 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-job.c - Jobs for asynchronous operation of the GNOME Virtual File System (version for POSIX threads). Copyright (C) 1999 Free Software Foundation Copyright (C) 2000 Eazel The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Authors: Ettore Perazzoli Pavel Cisler Darin Adler */ #include #include "gnome-vfs-job.h" #include "gnome-vfs-async-job-map.h" #include "gnome-vfs-job-queue.h" #include "gnome-vfs-private-utils.h" #include "gnome-vfs-module-callback-private.h" #include #include #include #include #include #include #include #include static GStaticPrivate job_private = G_STATIC_PRIVATE_INIT; #if GNOME_VFS_JOB_DEBUG static const char *job_debug_types[] = { "open", "open as channel", "create", "create symbolic link", "create as channel", "close", "read", "write", "seek", "read write done", "load directory", "find directory", "xfer", "get file info", "set file info", "module callback", "file control", "**error**" }; /* FIXME bugzilla.eazel.com 1130 * - this is should use the correct static mutex initialization macro. * However glibconfig.h is broken and the supplied macro gives a warning. * Since this id debug only, just use what the macro should be here. * even though it is not portable. */ GStaticMutex debug_mutex = G_STATIC_MUTEX_INIT; #endif static int job_count = 0; static void gnome_vfs_op_destroy (GnomeVFSOp *op); static void _gnome_vfs_job_destroy_notify_result (GnomeVFSNotifyResult *notify_result); static gboolean dispatch_job_callback (gpointer data); static gboolean dispatch_sync_job_callback (gpointer data); static void clear_current_job (void); static void set_current_job (GnomeVFSJob *context); /* * Find out whether or not a given job should be left in * the job map, preserving it's open VFS handle, since we * can do more operations on it later. */ gboolean _gnome_vfs_job_complete (GnomeVFSJob *job) { g_assert (job->op != NULL); switch (job->op->type) { case GNOME_VFS_OP_OPEN: case GNOME_VFS_OP_OPEN_AS_CHANNEL: case GNOME_VFS_OP_CREATE: case GNOME_VFS_OP_CREATE_AS_CHANNEL: case GNOME_VFS_OP_CREATE_SYMBOLIC_LINK: /* if job got cancelled, no close expected */ return job->cancelled || job->failed; case GNOME_VFS_OP_READ: case GNOME_VFS_OP_WRITE: g_assert_not_reached(); return FALSE; case GNOME_VFS_OP_READ_WRITE_DONE: case GNOME_VFS_OP_FILE_CONTROL: case GNOME_VFS_OP_SEEK: return FALSE; default: return TRUE; } } /* This notifies the master thread asynchronously, without waiting for an * acknowledgment. */ static void job_oneway_notify (GnomeVFSJob *job, GnomeVFSNotifyResult *notify_result) { if (_gnome_vfs_async_job_add_callback (job, notify_result)) { JOB_DEBUG (("job %u, callback %u type '%s'", GPOINTER_TO_UINT (notify_result->job_handle), notify_result->callback_id, JOB_DEBUG_TYPE (job->op->type))); g_idle_add (dispatch_job_callback, notify_result); } else { JOB_DEBUG (("Barfing on oneway cancel %u (%d) type '%s'", GPOINTER_TO_UINT (notify_result->job_handle), job->op->type, JOB_DEBUG_TYPE (job->op->type))); /* TODO: We can leak handle here, if an open succeded. * See bug #123472 */ _gnome_vfs_job_destroy_notify_result (notify_result); } } /* This notifies the master threads, waiting until it acknowledges the notification. */ static void job_notify (GnomeVFSJob *job, GnomeVFSNotifyResult *notify_result) { if (!_gnome_vfs_async_job_add_callback (job, notify_result)) { JOB_DEBUG (("Barfing on sync cancel %u (%d)", GPOINTER_TO_UINT (notify_result->job_handle), job->op->type)); _gnome_vfs_job_destroy_notify_result (notify_result); return; } /* Send the notification. This will wake up the master thread, which * will in turn signal the notify condition. */ g_idle_add (dispatch_sync_job_callback, notify_result); JOB_DEBUG (("Wait notify condition %u", GPOINTER_TO_UINT (notify_result->job_handle))); /* Wait for the notify condition. */ g_cond_wait (job->notify_ack_condition, job->job_lock); JOB_DEBUG (("Got notify ack condition %u", GPOINTER_TO_UINT (notify_result->job_handle))); } static void dispatch_open_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.open.callback) (notify_result->job_handle, notify_result->specifics.open.result, notify_result->specifics.open.callback_data); } static void dispatch_create_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.create.callback) (notify_result->job_handle, notify_result->specifics.create.result, notify_result->specifics.create.callback_data); } static void dispatch_open_as_channel_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.open_as_channel.callback) (notify_result->job_handle, notify_result->specifics.open_as_channel.channel, notify_result->specifics.open_as_channel.result, notify_result->specifics.open_as_channel.callback_data); } static void dispatch_create_as_channel_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.create_as_channel.callback) (notify_result->job_handle, notify_result->specifics.create_as_channel.channel, notify_result->specifics.create_as_channel.result, notify_result->specifics.create_as_channel.callback_data); } static void dispatch_close_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.close.callback) (notify_result->job_handle, notify_result->specifics.close.result, notify_result->specifics.close.callback_data); } static void dispatch_read_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.read.callback) (notify_result->job_handle, notify_result->specifics.read.result, notify_result->specifics.read.buffer, notify_result->specifics.read.num_bytes, notify_result->specifics.read.bytes_read, notify_result->specifics.read.callback_data); } static void dispatch_write_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.write.callback) (notify_result->job_handle, notify_result->specifics.write.result, notify_result->specifics.write.buffer, notify_result->specifics.write.num_bytes, notify_result->specifics.write.bytes_written, notify_result->specifics.write.callback_data); } static void dispatch_seek_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.seek.callback) (notify_result->job_handle, notify_result->specifics.seek.result, notify_result->specifics.seek.callback_data); } static void dispatch_load_directory_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.load_directory.callback) (notify_result->job_handle, notify_result->specifics.load_directory.result, notify_result->specifics.load_directory.list, notify_result->specifics.load_directory.entries_read, notify_result->specifics.load_directory.callback_data); } static void dispatch_get_file_info_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.get_file_info.callback) (notify_result->job_handle, notify_result->specifics.get_file_info.result_list, notify_result->specifics.get_file_info.callback_data); } static void dispatch_find_directory_callback (GnomeVFSNotifyResult *notify_result) { (* notify_result->specifics.find_directory.callback) (notify_result->job_handle, notify_result->specifics.find_directory.result_list, notify_result->specifics.find_directory.callback_data); } static void dispatch_set_file_info_callback (GnomeVFSNotifyResult *notify_result) { gboolean new_info_is_valid; new_info_is_valid = notify_result->specifics.set_file_info.set_file_info_result == GNOME_VFS_OK && notify_result->specifics.set_file_info.get_file_info_result == GNOME_VFS_OK; (* notify_result->specifics.set_file_info.callback) (notify_result->job_handle, notify_result->specifics.set_file_info.set_file_info_result, new_info_is_valid ? notify_result->specifics.set_file_info.info : NULL, notify_result->specifics.set_file_info.callback_data); } static void dispatch_xfer_callback (GnomeVFSNotifyResult *notify_result, gboolean cancelled) { if (cancelled) { /* make the xfer operation stop */ notify_result->specifics.xfer.reply = 0; return; } notify_result->specifics.xfer.reply = (* notify_result->specifics.xfer.callback) ( notify_result->job_handle, notify_result->specifics.xfer.progress_info, notify_result->specifics.xfer.callback_data); } static void dispatch_module_callback (GnomeVFSNotifyResult *notify_result) { notify_result->specifics.callback.callback (notify_result->specifics.callback.in, notify_result->specifics.callback.in_size, notify_result->specifics.callback.out, notify_result->specifics.callback.out_size, notify_result->specifics.callback.user_data, notify_result->specifics.callback.response, notify_result->specifics.callback.response_data); } static void dispatch_file_control_callback (GnomeVFSNotifyResult *notify_result) { notify_result->specifics.file_control.callback (notify_result->job_handle, notify_result->specifics.file_control.result, notify_result->specifics.file_control.operation_data, notify_result->specifics.file_control.callback_data); } static void empty_close_callback (GnomeVFSAsyncHandle *handle, GnomeVFSResult result, gpointer callback_data) { } static void handle_cancelled_open (GnomeVFSJob *job) { /* schedule a silent close to make sure the handle does not leak */ _gnome_vfs_job_set (job, GNOME_VFS_OP_CLOSE, (GFunc) empty_close_callback, NULL); _gnome_vfs_job_go (job); } static void free_get_file_info_notify_result (GnomeVFSGetFileInfoOpResult *notify_result) { GList *p; GnomeVFSGetFileInfoResult *result_item; for (p = notify_result->result_list; p != NULL; p = p->next) { result_item = p->data; gnome_vfs_uri_unref (result_item->uri); gnome_vfs_file_info_unref (result_item->file_info); g_free (result_item); } g_list_free (notify_result->result_list); } static void free_find_directory_notify_result (GnomeVFSFindDirectoryOpResult *notify_result) { GList *p; GnomeVFSFindDirectoryResult *result_item; for (p = notify_result->result_list; p != NULL; p = p->next) { result_item = p->data; if (result_item->uri != NULL) { gnome_vfs_uri_unref (result_item->uri); } g_free (result_item); } g_list_free (notify_result->result_list); } static void _gnome_vfs_job_destroy_notify_result (GnomeVFSNotifyResult *notify_result) { JOB_DEBUG (("%u", notify_result->callback_id)); switch (notify_result->type) { case GNOME_VFS_OP_CLOSE: case GNOME_VFS_OP_CREATE: case GNOME_VFS_OP_CREATE_AS_CHANNEL: case GNOME_VFS_OP_CREATE_SYMBOLIC_LINK: case GNOME_VFS_OP_WRITE: case GNOME_VFS_OP_SEEK: case GNOME_VFS_OP_OPEN: case GNOME_VFS_OP_OPEN_AS_CHANNEL: case GNOME_VFS_OP_READ: g_free (notify_result); break; case GNOME_VFS_OP_FILE_CONTROL: if (notify_result->specifics.file_control.operation_data_destroy_func) { notify_result->specifics.file_control.operation_data_destroy_func ( notify_result->specifics.file_control.operation_data); } g_free (notify_result); break; case GNOME_VFS_OP_FIND_DIRECTORY: free_find_directory_notify_result (¬ify_result->specifics.find_directory); g_free (notify_result); break; case GNOME_VFS_OP_GET_FILE_INFO: free_get_file_info_notify_result (¬ify_result->specifics.get_file_info); g_free (notify_result); break; case GNOME_VFS_OP_SET_FILE_INFO: gnome_vfs_file_info_unref (notify_result->specifics.set_file_info.info); g_free (notify_result); break; case GNOME_VFS_OP_LOAD_DIRECTORY: gnome_vfs_file_info_list_free (notify_result->specifics.load_directory.list); g_free (notify_result); break; case GNOME_VFS_OP_XFER: /* the XFER result is allocated on the stack */ break; case GNOME_VFS_OP_MODULE_CALLBACK: /* the MODULE_CALLBACK result is allocated on the stack */ break; default: g_assert_not_reached (); break; } } /* Entry point for sync notification callback */ static gboolean dispatch_sync_job_callback (gpointer data) { GnomeVFSNotifyResult *notify_result; GnomeVFSJob *job; gboolean valid; gboolean cancelled; notify_result = (GnomeVFSNotifyResult *) data; _gnome_vfs_async_job_callback_valid (notify_result->callback_id, &valid, &cancelled); /* Even though the notify result is owned by the async thread and persists * all through the notification, we still keep it in the job map to * make cancellation easier. */ _gnome_vfs_async_job_remove_callback (notify_result->callback_id); g_assert (valid); switch (notify_result->type) { case GNOME_VFS_OP_CREATE_AS_CHANNEL: dispatch_create_as_channel_callback (notify_result); break; case GNOME_VFS_OP_OPEN_AS_CHANNEL: dispatch_open_as_channel_callback (notify_result); break; case GNOME_VFS_OP_XFER: dispatch_xfer_callback (notify_result, cancelled); break; case GNOME_VFS_OP_MODULE_CALLBACK: dispatch_module_callback (notify_result); break; default: g_assert_not_reached (); break; } _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (notify_result->job_handle); g_mutex_lock (job->job_lock); _gnome_vfs_async_job_map_unlock (); g_assert (job != NULL); JOB_DEBUG (("signalling %u", GPOINTER_TO_UINT (notify_result->job_handle))); /* Signal the async thread that we are done with the notification. */ g_cond_signal (job->notify_ack_condition); g_mutex_unlock (job->job_lock); return FALSE; } /* Entry point for async notification callback */ static gboolean dispatch_job_callback (gpointer data) { GnomeVFSNotifyResult *notify_result; GnomeVFSJob *job; gboolean valid; gboolean cancelled; notify_result = (GnomeVFSNotifyResult *) data; JOB_DEBUG (("%u type '%s'", GPOINTER_TO_UINT (notify_result->job_handle), JOB_DEBUG_TYPE (notify_result->type))); _gnome_vfs_async_job_callback_valid (notify_result->callback_id, &valid, &cancelled); _gnome_vfs_async_job_remove_callback (notify_result->callback_id); if (!valid) { /* this can happen when gnome vfs is shutting down */ JOB_DEBUG (("shutting down: callback %u no longer valid", notify_result->callback_id)); _gnome_vfs_job_destroy_notify_result (notify_result); return FALSE; } if (cancelled) { /* cancel the job in progress */ JOB_DEBUG (("cancelling job %u %u", GPOINTER_TO_UINT (notify_result->job_handle), notify_result->callback_id)); _gnome_vfs_async_job_map_lock (); job = _gnome_vfs_async_job_map_get_job (notify_result->job_handle); if (job != NULL) { g_mutex_lock (job->job_lock); switch (job->op->type) { case GNOME_VFS_OP_OPEN: case GNOME_VFS_OP_OPEN_AS_CHANNEL: case GNOME_VFS_OP_CREATE: case GNOME_VFS_OP_CREATE_AS_CHANNEL: case GNOME_VFS_OP_CREATE_SYMBOLIC_LINK: if (job->handle) { g_mutex_unlock (job->job_lock); handle_cancelled_open (job); JOB_DEBUG (("handle cancel open job %u", GPOINTER_TO_UINT (notify_result->job_handle))); break; } /* else drop through */ default: /* Remove job from the job map. */ _gnome_vfs_async_job_map_remove_job (job); g_mutex_unlock (job->job_lock); break; } } _gnome_vfs_async_job_map_unlock (); _gnome_vfs_job_destroy_notify_result (notify_result); return FALSE; } JOB_DEBUG (("executing callback %u", GPOINTER_TO_UINT (notify_result->job_handle))); switch (notify_result->type) { case GNOME_VFS_OP_CLOSE: dispatch_close_callback (notify_result); break; case GNOME_VFS_OP_CREATE: dispatch_create_callback (notify_result); break; case GNOME_VFS_OP_CREATE_AS_CHANNEL: dispatch_create_as_channel_callback (notify_result); break; case GNOME_VFS_OP_CREATE_SYMBOLIC_LINK: dispatch_create_callback (notify_result); break; case GNOME_VFS_OP_FIND_DIRECTORY: dispatch_find_directory_callback (notify_result); break; case GNOME_VFS_OP_GET_FILE_INFO: dispatch_get_file_info_callback (notify_result); break; case GNOME_VFS_OP_LOAD_DIRECTORY: dispatch_load_directory_callback (notify_result); break; case GNOME_VFS_OP_OPEN: dispatch_open_callback (notify_result); break; case GNOME_VFS_OP_OPEN_AS_CHANNEL: dispatch_open_as_channel_callback (notify_result); break; case GNOME_VFS_OP_READ: dispatch_read_callback (notify_result); break; case GNOME_VFS_OP_SET_FILE_INFO: dispatch_set_file_info_callback (notify_result); break; case GNOME_VFS_OP_WRITE: dispatch_write_callback (notify_result); break; case GNOME_VFS_OP_SEEK: dispatch_seek_callback (notify_result); break; case GNOME_VFS_OP_FILE_CONTROL: dispatch_file_control_callback (notify_result); break; default: g_assert_not_reached (); break; } JOB_DEBUG (("dispatch callback - done %u", GPOINTER_TO_UINT (notify_result->job_handle))); _gnome_vfs_job_destroy_notify_result (notify_result); return FALSE; } void _gnome_vfs_job_set (GnomeVFSJob *job, GnomeVFSOpType type, GFunc callback, gpointer callback_data) { GnomeVFSOp *op; op = g_new (GnomeVFSOp, 1); op->type = type; op->callback = callback; op->callback_data = callback_data; op->context = gnome_vfs_context_new (); op->stack_info = _gnome_vfs_module_callback_get_stack_info (); g_assert (gnome_vfs_context_get_cancellation (op->context) != NULL); JOB_DEBUG (("locking access lock %u, op %d", GPOINTER_TO_UINT (job->job_handle), type)); g_mutex_lock (job->job_lock); gnome_vfs_op_destroy (job->op); job->op = op; job->cancelled = FALSE; g_mutex_unlock (job->job_lock); JOB_DEBUG (("%u op type %d, op %p", GPOINTER_TO_UINT (job->job_handle), job->op->type, job->op)); } GnomeVFSJob * _gnome_vfs_job_new (GnomeVFSOpType type, int priority, GFunc callback, gpointer callback_data) { GnomeVFSJob *new_job; new_job = g_new0 (GnomeVFSJob, 1); new_job->job_lock = g_mutex_new (); new_job->notify_ack_condition = g_cond_new (); new_job->priority = priority; /* Add the new job into the job hash table. This also assigns * the job a unique id */ _gnome_vfs_async_job_map_add_job (new_job); _gnome_vfs_job_set (new_job, type, callback, callback_data); job_count++; return new_job; } void _gnome_vfs_job_destroy (GnomeVFSJob *job) { JOB_DEBUG (("destroying job %u", GPOINTER_TO_UINT (job->job_handle))); gnome_vfs_op_destroy (job->op); g_mutex_free (job->job_lock); g_cond_free (job->notify_ack_condition); memset (job, 0xaa, sizeof (GnomeVFSJob)); g_free (job); job_count--; JOB_DEBUG (("job %u terminated cleanly", GPOINTER_TO_UINT (job->job_handle))); } int gnome_vfs_job_get_count (void) { return job_count; } static void gnome_vfs_op_destroy (GnomeVFSOp *op) { if (op == NULL) { return; } switch (op->type) { case GNOME_VFS_OP_CREATE: if (op->specifics.create.uri != NULL) { gnome_vfs_uri_unref (op->specifics.create.uri); } break; case GNOME_VFS_OP_CREATE_AS_CHANNEL: if (op->specifics.create_as_channel.uri != NULL) { gnome_vfs_uri_unref (op->specifics.create_as_channel.uri); } break; case GNOME_VFS_OP_CREATE_SYMBOLIC_LINK: gnome_vfs_uri_unref (op->specifics.create_symbolic_link.uri); g_free (op->specifics.create_symbolic_link.uri_reference); break; case GNOME_VFS_OP_FIND_DIRECTORY: gnome_vfs_uri_list_free (op->specifics.find_directory.uris); break; case GNOME_VFS_OP_GET_FILE_INFO: gnome_vfs_uri_list_free (op->specifics.get_file_info.uris); break; case GNOME_VFS_OP_LOAD_DIRECTORY: if (op->specifics.load_directory.uri != NULL) { gnome_vfs_uri_unref (op->specifics.load_directory.uri); } break; case GNOME_VFS_OP_OPEN: if (op->specifics.open.uri != NULL) { gnome_vfs_uri_unref (op->specifics.open.uri); } break; case GNOME_VFS_OP_OPEN_AS_CHANNEL: if (op->specifics.open_as_channel.uri != NULL) { gnome_vfs_uri_unref (op->specifics.open_as_channel.uri); } break; case GNOME_VFS_OP_SET_FILE_INFO: gnome_vfs_uri_unref (op->specifics.set_file_info.uri); gnome_vfs_file_info_unref (op->specifics.set_file_info.info); break; case GNOME_VFS_OP_XFER: gnome_vfs_uri_list_free (op->specifics.xfer.source_uri_list); gnome_vfs_uri_list_free (op->specifics.xfer.target_uri_list); break; case GNOME_VFS_OP_READ: case GNOME_VFS_OP_WRITE: case GNOME_VFS_OP_SEEK: case GNOME_VFS_OP_CLOSE: case GNOME_VFS_OP_READ_WRITE_DONE: break; case GNOME_VFS_OP_FILE_CONTROL: g_free (op->specifics.file_control.operation); break; default: g_warning (_("Unknown operation type %u"), op->type); } g_assert (gnome_vfs_context_get_cancellation (op->context) != NULL); gnome_vfs_context_free (op->context); _gnome_vfs_module_callback_free_stack_info (op->stack_info); g_free (op); } void _gnome_vfs_job_go (GnomeVFSJob *job) { JOB_DEBUG (("new job %u, op %d, type '%s' unlocking job lock", GPOINTER_TO_UINT (job->job_handle), job->op->type, JOB_DEBUG_TYPE (job->op->type))); /* Fire up the async job thread. */ if (!_gnome_vfs_job_schedule (job)) { g_warning ("Cannot schedule this job."); _gnome_vfs_job_destroy (job); return; } } #define DEFAULT_BUFFER_SIZE 16384 static void serve_channel_read (GnomeVFSHandle *handle, GIOChannel *channel_in, GIOChannel *channel_out, gulong advised_block_size, GnomeVFSContext *context) { gpointer buffer; guint filled_bytes_in_buffer; guint written_bytes_in_buffer; guint current_buffer_size; if (advised_block_size == 0) { advised_block_size = DEFAULT_BUFFER_SIZE; } current_buffer_size = advised_block_size; buffer = g_malloc(current_buffer_size); filled_bytes_in_buffer = 0; written_bytes_in_buffer = 0; while (1) { GnomeVFSResult result; GIOStatus io_result; GnomeVFSFileSize bytes_read; restart_toplevel_loop: g_assert(filled_bytes_in_buffer <= current_buffer_size); g_assert(written_bytes_in_buffer == 0); result = gnome_vfs_read_cancellable (handle, (char *) buffer + filled_bytes_in_buffer, MIN (advised_block_size, (current_buffer_size - filled_bytes_in_buffer)), &bytes_read, context); if (result == GNOME_VFS_ERROR_INTERRUPTED) { continue; } else if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { goto end; } filled_bytes_in_buffer += bytes_read; if (filled_bytes_in_buffer == 0) { goto end; } g_assert(written_bytes_in_buffer <= filled_bytes_in_buffer); if (gnome_vfs_context_check_cancellation(context)) { goto end; } while (written_bytes_in_buffer < filled_bytes_in_buffer) { gsize bytes_written; /* channel_out is nonblocking; if we get EAGAIN (G_IO_STATUS_AGAIN) then we tried to write but the pipe was full. In this case, we want to enlarge our buffer and go back to reading for one iteration, so we can keep collecting data while the main thread is busy. */ io_result = g_io_channel_write_chars (channel_out, (char *) buffer + written_bytes_in_buffer, filled_bytes_in_buffer - written_bytes_in_buffer, &bytes_written, NULL); written_bytes_in_buffer += bytes_written; if (gnome_vfs_context_check_cancellation(context)) { goto end; } if (io_result == G_IO_STATUS_AGAIN) { /* if bytes_read == 0 then we reached EOF so there's no point reading again. So turn off nonblocking and do a blocking write next time through. */ if (bytes_read == 0) { int fd; fd = g_io_channel_unix_get_fd (channel_out); _gnome_vfs_pipe_set_blocking (fd, TRUE); } else { if (written_bytes_in_buffer > 0) { /* Need to shift the unwritten bytes to the start of the buffer */ g_memmove(buffer, (char *) buffer + written_bytes_in_buffer, filled_bytes_in_buffer - written_bytes_in_buffer); filled_bytes_in_buffer = filled_bytes_in_buffer - written_bytes_in_buffer; written_bytes_in_buffer = 0; } /* If the buffer is more than half full, double its size */ if (filled_bytes_in_buffer * 2 > current_buffer_size) { current_buffer_size *= 2; buffer = g_realloc(buffer, current_buffer_size); } /* Leave this loop, start reading again */ goto restart_toplevel_loop; } /* end of else (bytes_read != 0) */ } else if (io_result != G_IO_STATUS_NORMAL || bytes_written == 0) { goto end; } } g_assert(written_bytes_in_buffer == filled_bytes_in_buffer); /* Reset, we wrote everything */ written_bytes_in_buffer = 0; filled_bytes_in_buffer = 0; } end: g_free (buffer); g_io_channel_shutdown (channel_out, TRUE, NULL); g_io_channel_unref (channel_out); g_io_channel_unref (channel_in); } static void serve_channel_write (GnomeVFSHandle *handle, GIOChannel *channel_in, GIOChannel *channel_out, GnomeVFSContext *context) { gchar buffer[DEFAULT_BUFFER_SIZE]; guint buffer_size; buffer_size = DEFAULT_BUFFER_SIZE; while (1) { GnomeVFSResult result; GIOStatus io_result; gsize bytes_read; gsize bytes_to_write; GnomeVFSFileSize bytes_written; gchar *p; io_result = g_io_channel_read_chars (channel_in, buffer, buffer_size, &bytes_read, NULL); if (io_result == G_IO_STATUS_AGAIN) continue; if (io_result != G_IO_STATUS_NORMAL || bytes_read == 0) goto end; p = buffer; bytes_to_write = bytes_read; while (bytes_to_write > 0) { result = gnome_vfs_write_cancellable (handle, p, bytes_to_write, &bytes_written, context); if (result == GNOME_VFS_ERROR_INTERRUPTED) { continue; } if (result != GNOME_VFS_OK || bytes_written == 0) { goto end; } p += bytes_written; bytes_to_write -= bytes_written; } } end: g_io_channel_shutdown (channel_in, TRUE, NULL); g_io_channel_unref (channel_in); g_io_channel_unref (channel_out); } /* Job execution. This is performed by the slave thread. */ static void execute_open (GnomeVFSJob *job) { GnomeVFSResult result; GnomeVFSHandle *handle; GnomeVFSOpenOp *open_op; GnomeVFSNotifyResult *notify_result; open_op = &job->op->specifics.open; if (open_op->uri == NULL) { result = GNOME_VFS_ERROR_INVALID_URI; } else { result = gnome_vfs_open_uri_cancellable (&handle, open_op->uri, open_op->open_mode, job->op->context); job->handle = handle; } notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.open.result = result; notify_result->specifics.open.callback = (GnomeVFSAsyncOpenCallback) job->op->callback; notify_result->specifics.open.callback_data = job->op->callback_data; if (result != GNOME_VFS_OK) { /* if the open failed, just drop the job */ job->failed = TRUE; } job_oneway_notify (job, notify_result); } static void execute_open_as_channel (GnomeVFSJob *job) { GnomeVFSResult result; GnomeVFSHandle *handle; GnomeVFSOpenAsChannelOp *open_as_channel_op; GnomeVFSOpenMode open_mode; GIOChannel *channel_in, *channel_out; gint pipefd[2]; GnomeVFSNotifyResult *notify_result; open_as_channel_op = &job->op->specifics.open_as_channel; if (open_as_channel_op->uri == NULL) { result = GNOME_VFS_ERROR_INVALID_URI; } else { result = gnome_vfs_open_uri_cancellable (&handle, open_as_channel_op->uri, open_as_channel_op->open_mode, job->op->context); } notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.open_as_channel.result = result; notify_result->specifics.open_as_channel.callback = (GnomeVFSAsyncOpenAsChannelCallback) job->op->callback; notify_result->specifics.open_as_channel.callback_data = job->op->callback_data; if (result != GNOME_VFS_OK) { /* if the open failed, just drop the job */ job->failed = TRUE; job_oneway_notify (job, notify_result); return; } if (_gnome_vfs_pipe (pipefd) < 0) { g_warning (_("Cannot create pipe for open GIOChannel: %s"), g_strerror (errno)); notify_result->specifics.open_as_channel.result = GNOME_VFS_ERROR_INTERNAL; /* if the open failed, just drop the job */ job->failed = TRUE; job_oneway_notify (job, notify_result); return; } /* Set up the pipe for nonblocking writes, so if the main * thread is blocking for some reason the slave can keep * reading data. */ _gnome_vfs_pipe_set_blocking (pipefd[1], FALSE); #ifndef G_OS_WIN32 channel_in = g_io_channel_unix_new (pipefd[0]); channel_out = g_io_channel_unix_new (pipefd[1]); #else channel_in = g_io_channel_win32_new_socket (pipefd[0]); channel_out = g_io_channel_win32_new_socket (pipefd[1]); #endif open_mode = open_as_channel_op->open_mode; if (open_mode & GNOME_VFS_OPEN_READ) { notify_result->specifics.open_as_channel.channel = channel_in; } else { notify_result->specifics.open_as_channel.channel = channel_out; } notify_result->specifics.open_as_channel.result = GNOME_VFS_OK; job_notify (job, notify_result); if (open_mode & GNOME_VFS_OPEN_READ) { serve_channel_read (handle, channel_in, channel_out, open_as_channel_op->advised_block_size, job->op->context); } else { serve_channel_write (handle, channel_in, channel_out, job->op->context); } } static void execute_create (GnomeVFSJob *job) { GnomeVFSResult result; GnomeVFSHandle *handle; GnomeVFSCreateOp *create_op; GnomeVFSNotifyResult *notify_result; create_op = &job->op->specifics.create; if (create_op->uri == NULL) { result = GNOME_VFS_ERROR_INVALID_URI; } else { result = gnome_vfs_create_uri_cancellable (&handle, create_op->uri, create_op->open_mode, create_op->exclusive, create_op->perm, job->op->context); job->handle = handle; } notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.create.result = result; notify_result->specifics.create.callback = (GnomeVFSAsyncCreateCallback) job->op->callback; notify_result->specifics.create.callback_data = job->op->callback_data; if (result != GNOME_VFS_OK) { /* if the open failed, just drop the job */ job->failed = TRUE; } job_oneway_notify (job, notify_result); } static void execute_create_symbolic_link (GnomeVFSJob *job) { GnomeVFSResult result; GnomeVFSCreateLinkOp *create_op; GnomeVFSNotifyResult *notify_result; create_op = &job->op->specifics.create_symbolic_link; result = gnome_vfs_create_symbolic_link_cancellable (create_op->uri, create_op->uri_reference, job->op->context); notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.create.result = result; notify_result->specifics.create.callback = (GnomeVFSAsyncCreateCallback) job->op->callback; notify_result->specifics.create.callback_data = job->op->callback_data; if (result != GNOME_VFS_OK) { /* if the open failed, just drop the job */ job->failed = TRUE; } job_oneway_notify (job, notify_result); } static void execute_create_as_channel (GnomeVFSJob *job) { GnomeVFSResult result; GnomeVFSHandle *handle; GnomeVFSCreateAsChannelOp *create_as_channel_op; GIOChannel *channel_in, *channel_out; gint pipefd[2]; GnomeVFSNotifyResult *notify_result; create_as_channel_op = &job->op->specifics.create_as_channel; if (create_as_channel_op->uri == NULL) { result = GNOME_VFS_ERROR_INVALID_URI; } else { result = gnome_vfs_create_uri_cancellable (&handle, create_as_channel_op->uri, create_as_channel_op->open_mode, create_as_channel_op->exclusive, create_as_channel_op->perm, job->op->context); } notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.create_as_channel.result = result; notify_result->specifics.create_as_channel.callback = (GnomeVFSAsyncCreateAsChannelCallback) job->op->callback; notify_result->specifics.create_as_channel.callback_data = job->op->callback_data; if (result != GNOME_VFS_OK) { /* if the open failed, just drop the job */ job->failed = TRUE; job_oneway_notify (job, notify_result); return; } if (_gnome_vfs_pipe (pipefd) < 0) { g_warning (_("Cannot create pipe for open GIOChannel: %s"), g_strerror (errno)); notify_result->specifics.create_as_channel.result = GNOME_VFS_ERROR_INTERNAL; /* if the open failed, just drop the job */ job->failed = TRUE; job_oneway_notify (job, notify_result); return; } #ifndef G_OS_WIN32 channel_in = g_io_channel_unix_new (pipefd[0]); channel_out = g_io_channel_unix_new (pipefd[1]); #else channel_in = g_io_channel_win32_new_socket (pipefd[0]); channel_out = g_io_channel_win32_new_socket (pipefd[1]); #endif notify_result->specifics.create_as_channel.channel = channel_out; job_notify (job, notify_result); serve_channel_write (handle, channel_in, channel_out, job->op->context); } static void execute_close (GnomeVFSJob *job) { GnomeVFSNotifyResult *notify_result; notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.close.callback = (GnomeVFSAsyncCloseCallback) job->op->callback; notify_result->specifics.close.callback_data = job->op->callback_data; notify_result->specifics.close.result = gnome_vfs_close_cancellable (job->handle, job->op->context); job_oneway_notify (job, notify_result); } static void execute_read (GnomeVFSJob *job) { GnomeVFSReadOp *read_op; GnomeVFSNotifyResult *notify_result; read_op = &job->op->specifics.read; notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.read.callback = (GnomeVFSAsyncReadCallback) job->op->callback; notify_result->specifics.read.callback_data = job->op->callback_data; notify_result->specifics.read.buffer = read_op->buffer; notify_result->specifics.read.num_bytes = read_op->num_bytes; notify_result->specifics.read.result = gnome_vfs_read_cancellable (job->handle, read_op->buffer, read_op->num_bytes, ¬ify_result->specifics.read.bytes_read, job->op->context); job->op->type = GNOME_VFS_OP_READ_WRITE_DONE; job_oneway_notify (job, notify_result); } static void execute_write (GnomeVFSJob *job) { GnomeVFSWriteOp *write_op; GnomeVFSNotifyResult *notify_result; write_op = &job->op->specifics.write; notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.write.callback = (GnomeVFSAsyncWriteCallback) job->op->callback; notify_result->specifics.write.callback_data = job->op->callback_data; notify_result->specifics.write.buffer = write_op->buffer; notify_result->specifics.write.num_bytes = write_op->num_bytes; notify_result->specifics.write.result = gnome_vfs_write_cancellable (job->handle, write_op->buffer, write_op->num_bytes, ¬ify_result->specifics.write.bytes_written, job->op->context); job->op->type = GNOME_VFS_OP_READ_WRITE_DONE; job_oneway_notify (job, notify_result); } static void execute_seek (GnomeVFSJob *job) { GnomeVFSResult result; GnomeVFSSeekOp *seek_op; GnomeVFSNotifyResult *notify_result; seek_op = &job->op->specifics.seek; result = gnome_vfs_seek_cancellable (job->handle, seek_op->whence, seek_op->offset, job->op->context); notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.seek.result = result; notify_result->specifics.seek.callback = (GnomeVFSAsyncSeekCallback) job->op->callback; notify_result->specifics.seek.callback_data = job->op->callback_data; job_oneway_notify (job, notify_result); } static void execute_get_file_info (GnomeVFSJob *job) { GnomeVFSGetFileInfoOp *get_file_info_op; GList *p; GnomeVFSGetFileInfoResult *result_item; GnomeVFSNotifyResult *notify_result; get_file_info_op = &job->op->specifics.get_file_info; notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.get_file_info.callback = (GnomeVFSAsyncGetFileInfoCallback) job->op->callback; notify_result->specifics.get_file_info.callback_data = job->op->callback_data; for (p = get_file_info_op->uris; p != NULL; p = p->next) { result_item = g_new (GnomeVFSGetFileInfoResult, 1); result_item->uri = gnome_vfs_uri_ref (p->data); result_item->file_info = gnome_vfs_file_info_new (); result_item->result = gnome_vfs_get_file_info_uri_cancellable (result_item->uri, result_item->file_info, get_file_info_op->options, job->op->context); notify_result->specifics.get_file_info.result_list = g_list_prepend (notify_result->specifics.get_file_info.result_list, result_item); } notify_result->specifics.get_file_info.result_list = g_list_reverse (notify_result->specifics.get_file_info.result_list); job_oneway_notify (job, notify_result); } static void execute_set_file_info (GnomeVFSJob *job) { GnomeVFSSetFileInfoOp *set_file_info_op; GnomeVFSURI *parent_uri, *uri_after; GnomeVFSNotifyResult *notify_result; set_file_info_op = &job->op->specifics.set_file_info; notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.set_file_info.callback = (GnomeVFSAsyncSetFileInfoCallback) job->op->callback; notify_result->specifics.set_file_info.callback_data = job->op->callback_data; notify_result->specifics.set_file_info.set_file_info_result = gnome_vfs_set_file_info_cancellable (set_file_info_op->uri, set_file_info_op->info, set_file_info_op->mask, job->op->context); /* Get the new URI after the set_file_info. The name may have * changed. */ uri_after = NULL; if (notify_result->specifics.set_file_info.set_file_info_result == GNOME_VFS_OK && (set_file_info_op->mask & GNOME_VFS_SET_FILE_INFO_NAME) != 0) { parent_uri = gnome_vfs_uri_get_parent (set_file_info_op->uri); if (parent_uri != NULL) { uri_after = gnome_vfs_uri_append_file_name (parent_uri, set_file_info_op->info->name); gnome_vfs_uri_unref (parent_uri); } } if (uri_after == NULL) { uri_after = set_file_info_op->uri; gnome_vfs_uri_ref (uri_after); } notify_result->specifics.set_file_info.info = gnome_vfs_file_info_new (); if (uri_after == NULL) { notify_result->specifics.set_file_info.get_file_info_result = GNOME_VFS_ERROR_INVALID_URI; } else { notify_result->specifics.set_file_info.get_file_info_result = gnome_vfs_get_file_info_uri_cancellable (uri_after, notify_result->specifics.set_file_info.info, set_file_info_op->options, job->op->context); gnome_vfs_uri_unref (uri_after); } job_oneway_notify (job, notify_result); } static void execute_find_directory (GnomeVFSJob *job) { GnomeVFSFindDirectoryOp *find_directory_op; GList *p; GnomeVFSFindDirectoryResult *result_item; GnomeVFSNotifyResult *notify_result; notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.find_directory.callback = (GnomeVFSAsyncFindDirectoryCallback) job->op->callback; notify_result->specifics.find_directory.callback_data = job->op->callback_data; find_directory_op = &job->op->specifics.find_directory; for (p = find_directory_op->uris; p != NULL; p = p->next) { result_item = g_new0 (GnomeVFSFindDirectoryResult, 1); result_item->result = gnome_vfs_find_directory_cancellable ((GnomeVFSURI *) p->data, find_directory_op->kind, &result_item->uri, find_directory_op->create_if_needed, find_directory_op->find_if_needed, find_directory_op->permissions, job->op->context); notify_result->specifics.find_directory.result_list = g_list_prepend (notify_result->specifics.find_directory.result_list, result_item); } notify_result->specifics.find_directory.result_list = g_list_reverse (notify_result->specifics.find_directory.result_list); job_oneway_notify (job, notify_result); } static void load_directory_details (GnomeVFSJob *job) { GnomeVFSLoadDirectoryOp *load_directory_op; GnomeVFSDirectoryHandle *handle; GList *directory_list; GnomeVFSFileInfo *info; GnomeVFSResult result; guint count; GnomeVFSNotifyResult *notify_result; JOB_DEBUG (("%u", GPOINTER_TO_UINT (job->job_handle))); load_directory_op = &job->op->specifics.load_directory; if (load_directory_op->uri == NULL) { result = GNOME_VFS_ERROR_INVALID_URI; } else { result = gnome_vfs_directory_open_from_uri_cancellable (&handle, load_directory_op->uri, load_directory_op->options, job->op->context); } if (result != GNOME_VFS_OK) { notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.load_directory.result = result; notify_result->specifics.load_directory.callback = (GnomeVFSAsyncDirectoryLoadCallback) job->op->callback; notify_result->specifics.load_directory.callback_data = job->op->callback_data; job_oneway_notify (job, notify_result); return; } directory_list = NULL; count = 0; while (1) { if (gnome_vfs_context_check_cancellation (job->op->context)) { JOB_DEBUG (("cancelled, bailing %u", GPOINTER_TO_UINT (job->job_handle))); gnome_vfs_file_info_list_free (directory_list); directory_list = NULL; result = GNOME_VFS_ERROR_CANCELLED; break; } info = gnome_vfs_file_info_new (); result = gnome_vfs_directory_read_next_cancellable (handle, info, job->op->context); if (result == GNOME_VFS_OK) { directory_list = g_list_prepend (directory_list, info); count++; } else { gnome_vfs_file_info_unref (info); } if (count == load_directory_op->items_per_notification || result != GNOME_VFS_OK) { notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.load_directory.result = result; notify_result->specifics.load_directory.entries_read = count; notify_result->specifics.load_directory.list = g_list_reverse (directory_list); notify_result->specifics.load_directory.callback = (GnomeVFSAsyncDirectoryLoadCallback) job->op->callback; notify_result->specifics.load_directory.callback_data = job->op->callback_data; job_oneway_notify (job, notify_result); count = 0; directory_list = NULL; if (result != GNOME_VFS_OK) { break; } } } g_assert (directory_list == NULL); gnome_vfs_directory_close (handle); } static void execute_load_directory (GnomeVFSJob *job) { load_directory_details (job); } static gint xfer_callback (GnomeVFSXferProgressInfo *info, gpointer data) { GnomeVFSJob *job; GnomeVFSNotifyResult notify_result; job = (GnomeVFSJob *) data; /* xfer is fully synchronous, just allocate the notify result struct on the stack */ notify_result.job_handle = job->job_handle; notify_result.callback_id = 0; notify_result.cancelled = FALSE; notify_result.type = job->op->type; notify_result.specifics.xfer.progress_info = info; notify_result.specifics.xfer.callback = (GnomeVFSAsyncXferProgressCallback) job->op->callback; notify_result.specifics.xfer.callback_data = job->op->callback_data; job_notify (job, ¬ify_result); /* Pass the value returned from the callback in the master thread. */ return notify_result.specifics.xfer.reply; } static void execute_xfer (GnomeVFSJob *job) { GnomeVFSXferOp *xfer_op; GnomeVFSResult result; GnomeVFSXferProgressInfo info; GnomeVFSNotifyResult notify_result; xfer_op = &job->op->specifics.xfer; result = _gnome_vfs_xfer_private (xfer_op->source_uri_list, xfer_op->target_uri_list, xfer_op->xfer_options, xfer_op->error_mode, xfer_op->overwrite_mode, xfer_callback, job, xfer_op->progress_sync_callback, xfer_op->sync_callback_data); /* If the xfer functions returns an error now, something really bad * must have happened. */ if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_INTERRUPTED) { info.status = GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR; info.vfs_status = result; info.phase = GNOME_VFS_XFER_PHASE_INITIAL; info.source_name = NULL; info.target_name = NULL; info.file_index = 0; info.files_total = 0; info.bytes_total = 0; info.file_size = 0; info.bytes_copied = 0; info.total_bytes_copied = 0; notify_result.job_handle = job->job_handle; notify_result.callback_id = 0; notify_result.cancelled = FALSE; notify_result.type = job->op->type; notify_result.specifics.xfer.progress_info = &info; notify_result.specifics.xfer.callback = (GnomeVFSAsyncXferProgressCallback) job->op->callback; notify_result.specifics.xfer.callback_data = job->op->callback_data; job_notify (job, ¬ify_result); } } static void execute_file_control (GnomeVFSJob *job) { GnomeVFSFileControlOp *file_control_op; GnomeVFSNotifyResult *notify_result; file_control_op = &job->op->specifics.file_control; notify_result = g_new0 (GnomeVFSNotifyResult, 1); notify_result->job_handle = job->job_handle; notify_result->type = job->op->type; notify_result->specifics.file_control.callback = (GnomeVFSAsyncFileControlCallback) job->op->callback; notify_result->specifics.file_control.callback_data = job->op->callback_data; notify_result->specifics.file_control.operation_data = file_control_op->operation_data; notify_result->specifics.file_control.operation_data_destroy_func = file_control_op->operation_data_destroy_func; notify_result->specifics.file_control.result = gnome_vfs_file_control_cancellable (job->handle, file_control_op->operation, file_control_op->operation_data, job->op->context); job->op->type = GNOME_VFS_OP_FILE_CONTROL; job_oneway_notify (job, notify_result); } /* * _gnome_vfs_job_execute: * @job: the job to execute * * This function is called by the slave thread to execute * the job - all work performed by a thread starts here. */ void _gnome_vfs_job_execute (GnomeVFSJob *job) { guint id; id = GPOINTER_TO_UINT (job->job_handle); JOB_DEBUG (("exec job %u", id)); if (!job->cancelled) { set_current_job (job); JOB_DEBUG (("executing %u %d type %s", id, job->op->type, JOB_DEBUG_TYPE (job->op->type))); switch (job->op->type) { case GNOME_VFS_OP_OPEN: execute_open (job); break; case GNOME_VFS_OP_OPEN_AS_CHANNEL: execute_open_as_channel (job); break; case GNOME_VFS_OP_CREATE: execute_create (job); break; case GNOME_VFS_OP_CREATE_AS_CHANNEL: execute_create_as_channel (job); break; case GNOME_VFS_OP_CREATE_SYMBOLIC_LINK: execute_create_symbolic_link (job); break; case GNOME_VFS_OP_CLOSE: execute_close (job); break; case GNOME_VFS_OP_READ: execute_read (job); break; case GNOME_VFS_OP_WRITE: execute_write (job); break; case GNOME_VFS_OP_SEEK: execute_seek (job); break; case GNOME_VFS_OP_LOAD_DIRECTORY: execute_load_directory (job); break; case GNOME_VFS_OP_FIND_DIRECTORY: execute_find_directory (job); break; case GNOME_VFS_OP_XFER: execute_xfer (job); break; case GNOME_VFS_OP_GET_FILE_INFO: execute_get_file_info (job); break; case GNOME_VFS_OP_SET_FILE_INFO: execute_set_file_info (job); break; case GNOME_VFS_OP_FILE_CONTROL: execute_file_control (job); break; default: g_warning (_("Unknown job kind %u"), job->op->type); break; } /* NB. 'job' is quite probably invalid now */ clear_current_job (); } else { switch (job->op->type) { case GNOME_VFS_OP_READ: case GNOME_VFS_OP_WRITE: job->op->type = GNOME_VFS_OP_READ_WRITE_DONE; break; default: break; } } JOB_DEBUG (("done job %u", id)); } void _gnome_vfs_job_module_cancel (GnomeVFSJob *job) { GnomeVFSCancellation *cancellation; JOB_DEBUG (("%u", GPOINTER_TO_UINT (job->job_handle))); cancellation = gnome_vfs_context_get_cancellation (job->op->context); if (cancellation != NULL) { JOB_DEBUG (("cancelling %u", GPOINTER_TO_UINT (job->job_handle))); gnome_vfs_cancellation_cancel (cancellation); } #ifdef OLD_CONTEXT_DEPRECATED gnome_vfs_context_emit_message (job->op->context, _("Operation stopped")); #endif /* OLD_CONTEXT_DEPRECATED */ /* Since we are cancelling, we won't have anyone respond to notifications; * set the expectations right. */ JOB_DEBUG (("done %u", GPOINTER_TO_UINT (job->job_handle))); } static void set_current_job (GnomeVFSJob *job) { /* There shouldn't have been anything here. */ g_assert (g_static_private_get (&job_private) == NULL); g_static_private_set (&job_private, job, NULL); _gnome_vfs_module_callback_use_stack_info (job->op->stack_info); _gnome_vfs_module_callback_set_in_async_thread (TRUE); } static void clear_current_job (void) { g_static_private_set (&job_private, NULL, NULL); _gnome_vfs_module_callback_clear_stacks (); } void _gnome_vfs_get_current_context (GnomeVFSContext **context) { GnomeVFSJob *job; g_return_if_fail (context != NULL); job = g_static_private_get (&job_private); if (job != NULL) { *context = job->op->context; } else { *context = NULL; } } void _gnome_vfs_dispatch_module_callback (GnomeVFSAsyncModuleCallback callback, gconstpointer in, gsize in_size, gpointer out, gsize out_size, gpointer user_data, GnomeVFSModuleCallbackResponse response, gpointer response_data) { GnomeVFSJob *job; GnomeVFSNotifyResult notify_result; job = g_static_private_get (&job_private); g_return_if_fail (job != NULL); memset (¬ify_result, 0, sizeof (notify_result)); notify_result.job_handle = job->job_handle; notify_result.type = GNOME_VFS_OP_MODULE_CALLBACK; notify_result.specifics.callback.callback = callback; notify_result.specifics.callback.user_data = user_data; notify_result.specifics.callback.in = in; notify_result.specifics.callback.in_size = in_size; notify_result.specifics.callback.out = out; notify_result.specifics.callback.out_size = out_size; notify_result.specifics.callback.out = out; notify_result.specifics.callback.out_size = out_size; notify_result.specifics.callback.response = response; notify_result.specifics.callback.response_data = response_data; job_notify (job, ¬ify_result); } gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-pty.c0000644000175000001440000005007111334251016015612 00000000000000/* * Copyright (C) 2001,2002,2004 Red Hat, Inc. * * This 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 distributed in the hope 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 Library General Public * License along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Originally from vte */ #include "../config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_SYS_UN_H #include #endif #ifdef HAVE_STROPTS_H #include #endif #ifdef HAVE_TERMIOS_H #include #endif #ifdef HAVE_UTMP_H #include #endif #ifdef HAVE_UTIL_H #include #endif #include #include "gnome-vfs-pty.h" int _gnome_vfs_pty_set_size(int master, int columns, int rows); /* Solaris does not have the login_tty() function so implement locally. */ #ifndef HAVE_LOGIN_TTY static int login_tty(int pts) { #if defined(HAVE_STROPTS_H) /* push a terminal onto stream head */ if (ioctl(pts, I_PUSH, "ptem") == -1) return -1; if (ioctl(pts, I_PUSH, "ldterm") == -1) return -1; #endif setsid(); #if defined(TIOCSCTTY) ioctl(pts, TIOCSCTTY, 0); #endif dup2(pts, 0); dup2(pts, 1); dup2(pts, 2); if (pts > 2) close(pts); return 0; } #endif /* Reset the handlers for all known signals to their defaults. The parent * (or one of the libraries it links to) may have changed one to be ignored. */ static void _gnome_vfs_pty_reset_signal_handlers(void) { signal(SIGHUP, SIG_DFL); signal(SIGINT, SIG_DFL); signal(SIGILL, SIG_DFL); signal(SIGABRT, SIG_DFL); signal(SIGFPE, SIG_DFL); signal(SIGKILL, SIG_DFL); signal(SIGSEGV, SIG_DFL); signal(SIGPIPE, SIG_DFL); signal(SIGALRM, SIG_DFL); signal(SIGTERM, SIG_DFL); signal(SIGCHLD, SIG_DFL); signal(SIGCONT, SIG_DFL); signal(SIGSTOP, SIG_DFL); signal(SIGTSTP, SIG_DFL); signal(SIGTTIN, SIG_DFL); signal(SIGTTOU, SIG_DFL); #ifdef SIGBUS signal(SIGBUS, SIG_DFL); #endif #ifdef SIGPOLL signal(SIGPOLL, SIG_DFL); #endif #ifdef SIGPROF signal(SIGPROF, SIG_DFL); #endif #ifdef SIGSYS signal(SIGSYS, SIG_DFL); #endif #ifdef SIGTRAP signal(SIGTRAP, SIG_DFL); #endif #ifdef SIGURG signal(SIGURG, SIG_DFL); #endif #ifdef SIGVTALARM signal(SIGVTALARM, SIG_DFL); #endif #ifdef SIGXCPU signal(SIGXCPU, SIG_DFL); #endif #ifdef SIGXFSZ signal(SIGXFSZ, SIG_DFL); #endif #ifdef SIGIOT signal(SIGIOT, SIG_DFL); #endif #ifdef SIGEMT signal(SIGEMT, SIG_DFL); #endif #ifdef SIGSTKFLT signal(SIGSTKFLT, SIG_DFL); #endif #ifdef SIGIO signal(SIGIO, SIG_DFL); #endif #ifdef SIGCLD signal(SIGCLD, SIG_DFL); #endif #ifdef SIGPWR signal(SIGPWR, SIG_DFL); #endif #ifdef SIGINFO signal(SIGINFO, SIG_DFL); #endif #ifdef SIGLOST signal(SIGLOST, SIG_DFL); #endif #ifdef SIGWINCH signal(SIGWINCH, SIG_DFL); #endif #ifdef SIGUNUSED signal(SIGUNUSED, SIG_DFL); #endif } #ifdef HAVE_SOCKETPAIR static int _gnome_vfs_pty_pipe_open(int *a, int *b) { int p[2], ret = -1; #ifdef PF_UNIX #ifdef SOCK_STREAM ret = socketpair(PF_UNIX, SOCK_STREAM, 0, p); #else #ifdef SOCK_DGRAM ret = socketpair(PF_UNIX, SOCK_DGRAM, 0, p); #endif #endif if (ret == 0) { *a = p[0]; *b = p[1]; return 0; } #endif return ret; } #else static int _gnome_vfs_pty_pipe_open(int *a, int *b) { int p[2], ret = -1; ret = pipe(p); if (ret == 0) { *a = p[0]; *b = p[1]; } return ret; } #endif static int _gnome_vfs_pty_pipe_open_bi(int *a, int *b, int *c, int *d) { int ret; ret = _gnome_vfs_pty_pipe_open(a, b); if (ret != 0) { return ret; } ret = _gnome_vfs_pty_pipe_open(c, d); if (ret != 0) { close(*a); close(*b); } return ret; } /* Like read, but hide EINTR and EAGAIN. */ static ssize_t n_read(int fd, void *buffer, size_t count) { size_t n = 0; char *buf = buffer; int i; while (n < count) { i = read(fd, buf + n, count - n); switch (i) { case 0: return n; break; case -1: switch (errno) { case EINTR: case EAGAIN: #ifdef ERESTART case ERESTART: #endif break; default: return -1; } break; default: n += i; break; } } return n; } /* Like write, but hide EINTR and EAGAIN. */ static ssize_t n_write(int fd, const void *buffer, size_t count) { size_t n = 0; const char *buf = buffer; int i; while (n < count) { i = write(fd, buf + n, count - n); switch (i) { case 0: return n; break; case -1: switch (errno) { case EINTR: case EAGAIN: #ifdef ERESTART case ERESTART: #endif break; default: return -1; } break; default: n += i; break; } } return n; } /* Run the given command (if specified), using the given descriptor as the * controlling terminal. */ static int _gnome_vfs_pty_run_on_pty(int fd, gboolean login, int stdin_fd, int stdout_fd, int stderr_fd, int ready_reader, int ready_writer, char **env_add, const char *command, char **argv, const char *directory) { int i; char c; char **args, *arg; #ifdef HAVE_STROPTS_H if (!ioctl (fd, I_FIND, "ptem") && ioctl (fd, I_PUSH, "ptem") == -1) { close (fd); _exit (0); return -1; } if (!ioctl (fd, I_FIND, "ldterm") && ioctl (fd, I_PUSH, "ldterm") == -1) { close (fd); _exit (0); return -1; } if (!ioctl (fd, I_FIND, "ttcompat") && ioctl (fd, I_PUSH, "ttcompat") == -1) { perror ("ioctl (fd, I_PUSH, \"ttcompat\")"); close (fd); _exit (0); return -1; } #endif /* HAVE_STROPTS_H */ /* Set any environment variables. */ for (i = 0; (env_add != NULL) && (env_add[i] != NULL); i++) { if (putenv(g_strdup(env_add[i])) != 0) { g_warning("Error adding `%s' to environment, " "continuing.", env_add[i]); } #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_MISC) || _gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "%ld: Set `%s'.\n", (long) getpid(), env_add[i]); } #endif } /* Reset our signals -- our parent may have done any number of * weird things to them. */ _gnome_vfs_pty_reset_signal_handlers(); /* Change to the requested directory. */ if (directory != NULL) { chdir(directory); } #ifdef HAVE_UTMP_H /* This sets stdin, stdout, stderr to the socket */ if (login && login_tty (fd) == -1) { g_printerr ("mount child process login_tty failed: %s\n", strerror (errno)); return -1; } #endif /* Signal to the parent that we've finished setting things up by * sending an arbitrary byte over the status pipe and waiting for * a response. This synchronization step ensures that the pty is * fully initialized before the parent process attempts to do anything * with it, and is required on systems where additional setup, beyond * merely opening the device, is required. This is at least the case * on Solaris. */ #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Child sending child-ready.\n"); } #endif /* Initialize so valgrind doesn't complain */ c = 0; n_write(ready_writer, &c, 1); fsync(ready_writer); n_read(ready_reader, &c, 1); #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Child received parent-ready.\n"); } #endif close(ready_writer); if (ready_writer != ready_reader) { close(ready_reader); } /* If the caller provided a command, we can't go back, ever. */ if (command != NULL) { /* Outta here. */ if (argv != NULL) { for (i = 0; (argv[i] != NULL); i++) ; args = g_malloc0(sizeof(char*) * (i + 1)); for (i = 0; (argv[i] != NULL); i++) { args[i] = g_strdup(argv[i]); } execvp(command, args); } else { arg = g_strdup(command); execlp(command, arg, NULL); } /* Avoid calling any atexit() code. */ _exit(0); g_assert_not_reached(); } return 0; } /* Open the named PTY slave, fork off a child (storing its PID in child), * and exec the named command in its own session as a process group leader */ static int _gnome_vfs_pty_fork_on_pty_name(const char *path, int parent_fd, char **env_add, const char *command, char **argv, const char *directory, int columns, int rows, int *stdin_fd, int *stdout_fd, int *stderr_fd, pid_t *child, gboolean reapchild, gboolean login) { int fd, i; char c; int ready_a[2] = { 0, 0 }; int ready_b[2] = { 0, 0 }; pid_t pid, grandchild_pid; int pid_pipe[2]; int stdin_pipe[2]; int stdout_pipe[2]; int stderr_pipe[2]; /* Open pipes for synchronizing between parent and child. */ if (_gnome_vfs_pty_pipe_open_bi(&ready_a[0], &ready_a[1], &ready_b[0], &ready_b[1]) == -1) { /* Error setting up pipes. Bail. */ goto bail_ready; } if (reapchild && pipe(pid_pipe)) { /* Error setting up pipes. Bail. */ goto bail_pid; } if (pipe(stdin_pipe)) { /* Error setting up pipes. Bail. */ goto bail_stdin; } if (pipe(stdout_pipe)) { /* Error setting up pipes. Bail. */ goto bail_stdout; } if (pipe(stderr_pipe)) { /* Error setting up pipes. Bail. */ goto bail_stderr; } /* Start up a child. */ pid = fork(); switch (pid) { case -1: /* Error fork()ing. Bail. */ *child = -1; return -1; break; case 0: /* Child. Close the parent's ends of the pipes. */ close(ready_a[0]); close(ready_b[1]); close(stdin_pipe[1]); close(stdout_pipe[0]); close(stderr_pipe[0]); if(reapchild) { close(pid_pipe[0]); /* Fork a intermediate child. This is needed to not * produce zombies! */ grandchild_pid = fork(); if (grandchild_pid < 0) { /* Error during fork! */ n_write (pid_pipe[1], &grandchild_pid, sizeof (grandchild_pid)); _exit (1); } else if (grandchild_pid > 0) { /* Parent! (This is the actual intermediate child; * so write the pid to the parent and then exit */ n_write (pid_pipe[1], &grandchild_pid, sizeof (grandchild_pid)); close (pid_pipe[1]); _exit (0); } /* Start a new session and become process-group leader. */ setsid(); setpgid(0, 0); } /* Close most descriptors. */ for (i = 0; i < sysconf(_SC_OPEN_MAX); i++) { if ((i != ready_b[0]) && (i != ready_a[1]) && (i != stdin_pipe[0]) && (i != stdout_pipe[1]) && (i != stderr_pipe[1])) { close(i); } } /* Set up stdin/out/err */ dup2(stdin_pipe[0], STDIN_FILENO); close (stdin_pipe[0]); dup2(stdout_pipe[1], STDOUT_FILENO); close (stdout_pipe[1]); dup2(stderr_pipe[1], STDERR_FILENO); close (stderr_pipe[1]); /* Open the slave PTY, acquiring it as the controlling terminal * for this process and its children. */ fd = open(path, O_RDWR); if (fd == -1) { return -1; } #ifdef TIOCSCTTY /* TIOCSCTTY is defined? Let's try that, too. */ ioctl(fd, TIOCSCTTY, fd); #endif /* Store 0 as the "child"'s ID to indicate to the caller that * it is now the child. */ *child = 0; return _gnome_vfs_pty_run_on_pty(fd, login, stdin_pipe[1], stdout_pipe[1], stderr_pipe[1], ready_b[0], ready_a[1], env_add, command, argv, directory); break; default: /* Parent. Close the child's ends of the pipes, do the ready * handshake, and return the child's PID. */ close(ready_b[0]); close(ready_a[1]); close(stdin_pipe[0]); close(stdout_pipe[1]); close(stderr_pipe[1]); if (reapchild) { close(pid_pipe[1]); /* Reap the intermediate child */ wait_again: if (waitpid (pid, NULL, 0) < 0) { if (errno == EINTR) { goto wait_again; } else if (errno == ECHILD) { ; /* NOOP! Child already reaped. */ } else { g_warning ("waitpid() should not fail in pty-open.c"); } } /* * Read the child pid from the pid_pipe * */ if (n_read (pid_pipe[0], child, sizeof (pid_t)) != sizeof (pid_t) || *child == -1) { g_warning ("Error while spanning child!"); goto bail_fork; } close(pid_pipe[0]); } else { /* No intermediate child, simple */ *child = pid; } /* Wait for the child to be ready, set the window size, then * signal that we're ready. We need to synchronize here to * avoid possible races when the child has to do more setup * of the terminal than just opening it. */ #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Parent ready, waiting for child.\n"); } #endif n_read(ready_a[0], &c, 1); #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Parent received child-ready.\n"); } #endif _gnome_vfs_pty_set_size(parent_fd, columns, rows); #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Parent sending parent-ready.\n"); } #endif n_write(ready_b[1], &c, 1); close(ready_a[0]); close(ready_b[1]); *stdin_fd = stdin_pipe[1]; *stdout_fd = stdout_pipe[0]; *stderr_fd = stderr_pipe[0]; return 0; break; } g_assert_not_reached(); return -1; bail_fork: close(stderr_pipe[0]); close(stderr_pipe[1]); bail_stderr: close(stdout_pipe[0]); close(stdout_pipe[1]); bail_stdout: close(stdin_pipe[0]); close(stdin_pipe[1]); bail_stdin: if(reapchild) { close(pid_pipe[0]); close(pid_pipe[1]); } bail_pid: close(ready_a[0]); close(ready_a[1]); close(ready_b[0]); close(ready_b[1]); bail_ready: *child = -1; return -1; } /** * gnome_vfs_pty_set_size: * @master: the file descriptor of the pty master * @columns: the desired number of columns * @rows: the desired number of rows * * Attempts to resize the pseudo terminal's window size. If successful, the * OS kernel will send #SIGWINCH to the child process group. * * Returns: 0 on success, -1 on failure. */ int _gnome_vfs_pty_set_size(int master, int columns, int rows) { struct winsize size; int ret; memset(&size, 0, sizeof(size)); size.ws_row = rows ? rows : 24; size.ws_col = columns ? columns : 80; #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Setting size on fd %d to (%d,%d).\n", master, columns, rows); } #endif ret = ioctl(master, TIOCSWINSZ, &size); #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { if (ret != 0) { fprintf(stderr, "Failed to set size on %d: %s.\n", master, strerror(errno)); } } #endif return ret; } static char * _gnome_vfs_pty_ptsname(int master) { #if defined(HAVE_PTSNAME_R) gsize len = 1024; char *buf = NULL; int i; do { buf = g_malloc0(len); i = ptsname_r(master, buf, len - 1); switch (i) { case 0: /* Return the allocated buffer with the name in it. */ #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "PTY slave is `%s'.\n", buf); } #endif return buf; break; default: g_free(buf); buf = NULL; break; } len *= 2; } while ((i != 0) && (errno == ERANGE)); #elif defined(HAVE_PTSNAME) char *p; if ((p = ptsname(master)) != NULL) { #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "PTY slave is `%s'.\n", p); } #endif return g_strdup(p); } #elif defined(TIOCGPTN) int pty = 0; if (ioctl(master, TIOCGPTN, &pty) == 0) { #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "PTY slave is `/dev/pts/%d'.\n", pty); } #endif return g_strdup_printf("/dev/pts/%d", pty); } #endif return NULL; } static int _gnome_vfs_pty_getpt(void) { int fd, flags; #ifdef HAVE_GETPT /* Call the system's function for allocating a pty. */ fd = getpt(); #elif defined(HAVE_POSIX_OPENPT) fd = posix_openpt(O_RDWR | O_NOCTTY); #else /* Try to allocate a pty by accessing the pty master multiplex. */ fd = open("/dev/ptmx", O_RDWR | O_NOCTTY); if ((fd == -1) && (errno == ENOENT)) { fd = open("/dev/ptc", O_RDWR | O_NOCTTY); /* AIX */ } #endif /* Set it to blocking. */ flags = fcntl(fd, F_GETFL); flags &= ~(O_NONBLOCK); fcntl(fd, F_SETFL, flags); return fd; } static int _gnome_vfs_pty_grantpt(int master) { #ifdef HAVE_GRANTPT return grantpt(master); #else return 0; #endif } static int _gnome_vfs_pty_unlockpt(int fd) { #ifdef HAVE_UNLOCKPT return unlockpt(fd); #elif defined(TIOCSPTLCK) int zero = 0; return ioctl(fd, TIOCSPTLCK, &zero); #else return -1; #endif } static int _gnome_vfs_pty_open_unix98(pid_t *child, guint flags, char **env_add, const char *command, char **argv, const char *directory, int columns, int rows, int *stdin_fd, int *stdout_fd, int *stderr_fd) { int fd; char *buf; /* Attempt to open the master. */ fd = _gnome_vfs_pty_getpt(); #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Allocated pty on fd %d.\n", fd); } #endif if (fd != -1) { /* Read the slave number and unlock it. */ if (((buf = _gnome_vfs_pty_ptsname(fd)) == NULL) || (_gnome_vfs_pty_grantpt(fd) != 0) || (_gnome_vfs_pty_unlockpt(fd) != 0)) { #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "PTY setup failed, bailing.\n"); } #endif close(fd); fd = -1; } else { /* Start up a child process with the given command. */ if (_gnome_vfs_pty_fork_on_pty_name(buf, fd, env_add, command, argv, directory, columns, rows, stdin_fd, stdout_fd, stderr_fd, child, flags & GNOME_VFS_PTY_REAP_CHILD, flags & GNOME_VFS_PTY_LOGIN_TTY) != 0) { close(fd); fd = -1; } g_free(buf); } } return fd; } /** * _gnome_vfs_pty_open: * @child: location to store the new process's ID * @env_add: a list of environment variables to add to the child's environment * @command: name of the binary to run * @argv: arguments to pass to @command * @directory: directory to start the new command in, or NULL * @columns: desired window columns * @rows: desired window rows * @lastlog: TRUE if the lastlog should be updated * @utmp: TRUE if the utmp or utmpx log should be updated * @wtmp: TRUE if the wtmp or wtmpx log should be updated * * Starts a new copy of @command running under a psuedo-terminal, optionally in * the supplied @directory, with window size set to @rows x @columns * and variables in @env_add added to its environment. If any combination of * @lastlog, @utmp, and @wtmp is set, then the session is logged in the * corresponding system files. * * Returns: an open file descriptor for the pty master, -1 on failure */ int gnome_vfs_pty_open(pid_t *child, guint flags, char **env_add, const char *command, char **argv, const char *directory, int columns, int rows, int *stdin_fd, int *stdout_fd, int *stderr_fd) { int ret = -1; if (ret == -1) { ret = _gnome_vfs_pty_open_unix98(child, flags, env_add, command, argv, directory, columns, rows, stdin_fd, stdout_fd, stderr_fd); } #ifdef GNOME_VFS_DEBUG if (_gnome_vfs_debug_on(GNOME_VFS_DEBUG_PTY)) { fprintf(stderr, "Returning ptyfd = %d.\n", ret); } #endif return ret; } #ifdef PTY_MAIN int fd; static void sigchld_handler(int signum) { } int main(int argc, char **argv) { pid_t child = 0; char c; int ret; signal(SIGCHLD, sigchld_handler); _gnome_vfs_debug_parse_string(getenv("GNOME_VFS_DEBUG_FLAGS")); fd = _gnome_vfs_pty_open(&child, NULL, (argc > 1) ? argv[1] : NULL, (argc > 1) ? argv + 1 : NULL, NULL, 0, 0, TRUE, TRUE, TRUE); if (child == 0) { int i; for (i = 0; ; i++) { switch (i % 3) { case 0: case 1: fprintf(stdout, "%d\n", i); break; case 2: fprintf(stderr, "%d\n", i); break; default: g_assert_not_reached(); break; } sleep(1); } } g_print("Child pid is %d.\n", (int)child); do { ret = n_read(fd, &c, 1); if (ret == 0) { break; } if ((ret == -1) && (errno != EAGAIN) && (errno != EINTR)) { break; } if (argc < 2) { n_write(STDOUT_FILENO, "[", 1); } n_write(STDOUT_FILENO, &c, 1); if (argc < 2) { n_write(STDOUT_FILENO, "]", 1); } } while (TRUE); return 0; } #endif gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-dllmain.c0000644000175000001440000000600511334251016016414 00000000000000/* dllmain.c: DLL entry point for libgnomevfs on Win32 * copyright (C) 2005 Novell, Inc * * 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 library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library 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. */ #include #include #include #include const char *_gnome_vfs_datadir; const char *_gnome_vfs_libdir; const char *_gnome_vfs_prefix; const char *_gnome_vfs_localedir; const char *_gnome_vfs_sysconfdir; BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved); static char * _gnome_vfs_replace_prefix (const char *configure_time_path) { if (strncmp (configure_time_path, GNOME_VFS_PREFIX "/", strlen (GNOME_VFS_PREFIX) + 1) == 0) { return g_strconcat (_gnome_vfs_prefix, configure_time_path + strlen (GNOME_VFS_PREFIX), NULL); } else return g_strdup (configure_time_path); } /* DllMain function needed to fetch the DLL name and deduce the * installation directory from that, and then form the pathnames for * various directories relative to the installation directory. */ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { wchar_t wcbfr[1000]; char cpbfr[1000]; char *dll_name = NULL; switch (fdwReason) { case DLL_PROCESS_ATTACH: /* GLib 2.6 uses UTF-8 file names */ if (GetVersion () < 0x80000000) { /* NT-based Windows has wide char API */ if (GetModuleFileNameW ((HMODULE) hinstDLL, wcbfr, G_N_ELEMENTS (wcbfr))) dll_name = g_utf16_to_utf8 (wcbfr, -1, NULL, NULL, NULL); } else { /* Win9x, yecch */ if (GetModuleFileNameA ((HMODULE) hinstDLL, cpbfr, G_N_ELEMENTS (cpbfr))) dll_name = g_locale_to_utf8 (cpbfr, -1, NULL, NULL, NULL); } if (dll_name) { gchar *p = strrchr (dll_name, '\\'); if (p != NULL) *p = '\0'; p = strrchr (dll_name, '\\'); if (p && (g_ascii_strcasecmp (p + 1, "bin") == 0)) *p = '\0'; _gnome_vfs_prefix = dll_name; } else { _gnome_vfs_prefix = g_strdup (""); } _gnome_vfs_datadir = _gnome_vfs_replace_prefix (GNOME_VFS_DATADIR); _gnome_vfs_libdir = _gnome_vfs_replace_prefix (GNOME_VFS_LIBDIR); _gnome_vfs_localedir = _gnome_vfs_replace_prefix (GNOME_VFS_LOCALEDIR); _gnome_vfs_sysconfdir = _gnome_vfs_replace_prefix (GNOME_VFS_SYSCONFDIR); break; } return TRUE; } gnome-vfs-2.24.4/libgnomevfs/xdgmimeicon.c0000644000175000001440000000737011334251016015406 00000000000000/* -*- mode: C; c-file-style: "gnu" -*- */ /* xdgmimeicon.c: Private file. Datastructure for storing the aliases. * * More info can be found at http://www.freedesktop.org/standards/ * * Copyright (C) 2008 Red Hat, Inc. * * Licensed under the Academic Free License version 2.0 * Or under the following terms: * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "xdgmimeicon.h" #include "xdgmimeint.h" #include #include #include #include #include #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif typedef struct XdgIcon XdgIcon; struct XdgIcon { char *mime_type; char *icon_name; }; struct XdgIconList { struct XdgIcon *icons; int n_icons; }; XdgIconList * _xdg_mime_icon_list_new (void) { XdgIconList *list; list = malloc (sizeof (XdgIconList)); list->icons = NULL; list->n_icons = 0; return list; } void _xdg_mime_icon_list_free (XdgIconList *list) { int i; if (list->icons) { for (i = 0; i < list->n_icons; i++) { free (list->icons[i].mime_type); free (list->icons[i].icon_name); } free (list->icons); } free (list); } static int icon_entry_cmp (const void *v1, const void *v2) { return strcmp (((XdgIcon *)v1)->mime_type, ((XdgIcon *)v2)->mime_type); } const char * _xdg_mime_icon_list_lookup (XdgIconList *list, const char *mime_type) { XdgIcon *entry; XdgIcon key; if (list->n_icons > 0) { key.mime_type = (char *)mime_type; key.icon_name = NULL; entry = bsearch (&key, list->icons, list->n_icons, sizeof (XdgIcon), icon_entry_cmp); if (entry) return entry->icon_name; } return NULL; } void _xdg_mime_icon_read_from_file (XdgIconList *list, const char *file_name) { FILE *file; char line[255]; int alloc; file = fopen (file_name, "r"); if (file == NULL) return; /* FIXME: Not UTF-8 safe. Doesn't work if lines are greater than 255 chars. * Blah */ alloc = list->n_icons + 16; list->icons = realloc (list->icons, alloc * sizeof (XdgIcon)); while (fgets (line, 255, file) != NULL) { char *sep; if (line[0] == '#') continue; sep = strchr (line, ':'); if (sep == NULL) continue; *(sep++) = '\000'; sep[strlen (sep) -1] = '\000'; if (list->n_icons == alloc) { alloc <<= 1; list->icons = realloc (list->icons, alloc * sizeof (XdgIcon)); } list->icons[list->n_icons].mime_type = strdup (line); list->icons[list->n_icons].icon_name = strdup (sep); list->n_icons++; } list->icons = realloc (list->icons, list->n_icons * sizeof (XdgIcon)); fclose (file); if (list->n_icons > 1) qsort (list->icons, list->n_icons, sizeof (XdgIcon), icon_entry_cmp); } void _xdg_mime_icon_list_dump (XdgIconList *list) { int i; if (list->icons) { for (i = 0; i < list->n_icons; i++) { printf ("%s %s\n", list->icons[i].mime_type, list->icons[i].icon_name); } } } gnome-vfs-2.24.4/ltmain.sh0000755000175000001440000073306011450333323012252 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 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 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 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. # 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 # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long 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. # 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.2.6b # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION=2.2.6b TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_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\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${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_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 "X${1}" | $Xsed -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 "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # 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: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` 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' # 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: 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${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && 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_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # 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_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 # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # 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= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_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" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e '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 # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_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'" fi } # func_mktempdir [string] # 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. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_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'" fi $ECHO "X$my_tmpdir" | $Xsed } # 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_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion 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\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # 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 () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac 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_quote_for_expand_result="$my_arg" } # 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 () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } 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_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 () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_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 } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { 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 }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </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 } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # 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 # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break 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 $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" 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_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # 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 $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 $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 $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 exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; 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=$mode' for more information." } # func_lalib_p 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 } # func_lalib_unsafe_p 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. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # 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. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) 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`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # 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'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # 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}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && 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 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 removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; 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 "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # 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 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 if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` 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 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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile 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 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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; 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 # 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 command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile 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 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." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 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 to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building 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 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'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path 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 into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. 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." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -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 try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -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 -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. 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 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 \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 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 to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # 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" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. 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'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) 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" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. 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" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" 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 fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $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 "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 " during execution" fi if test -n "$runpath_var"; then $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" 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'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # 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 || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" 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" destname= else func_dirname_and_basename "$dest" "" "." 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" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # 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" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # 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" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ '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" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # 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 do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. 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 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" 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="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes 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 "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { 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" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$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' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # 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'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. 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 */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then 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"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { 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 *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # 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*) 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 ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. 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"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # 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" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} 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" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` 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}" cd "$darwin_curdir" $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_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # 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='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # 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 relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; 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\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$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 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug 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 # 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 # 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. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not 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 func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" 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'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. 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" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) 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 prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-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" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" 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'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. 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" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # 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" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" 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 \"X\${$shlibpath_var}\" \| \$Xsed -e \'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\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # 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_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac 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 ## 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" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; 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" fi 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}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no 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 $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 case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_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 fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $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" $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 deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes 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 # 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_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; 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'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then 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 -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; 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 # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [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 "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" 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'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$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 fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; 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_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi 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 use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; 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 # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift 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" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" 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_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_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $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 $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" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-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" 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" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; 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 case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; 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 case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. 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 [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; 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" 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 # Not a shared library if test "$deplibs_check_method" != pass_all; 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 "*** 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 $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 "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [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" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then 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 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 -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; 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 # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; 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" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ 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" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # 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" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) 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 # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|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" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. 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" ;; 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" ;; 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" ;; 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" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result 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" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result 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 func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else 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 major= versuffix= 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 fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # 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="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $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" $ECHO "*** because I did check the linker path looking for a file starting" 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" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi 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 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $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" $ECHO "*** because I did check the linker path looking for a file starting" 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" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." 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 "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; 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" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= 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 # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$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 fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= 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" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in 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 # 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" 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" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi 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" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && 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" # FIXME: $output_objdir/$libname.filter potentially contains lots of # '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. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; 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 -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= 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 func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; 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 firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || 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 # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then 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. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" 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='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done 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"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then 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" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $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" # FIXME: $output_objdir/$libname.filter potentially contains lots of # '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. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" 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. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; 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 if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ 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" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # 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 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 "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $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 # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ 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." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-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 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_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" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. 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" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' 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 "X$compile_var$compile_command$compile_rpath" | $Xsed -e '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 # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) 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" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result 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 $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # 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" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; 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" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist 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\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" 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=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; 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 -z "$install_libdir"; then break fi 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` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done 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` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # 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` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; 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' 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' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$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 rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # 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" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which 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 # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 gnome-vfs-2.24.4/MAINTAINERS0000644000175000001440000000027011334251016012111 00000000000000Alexander Larsson E-Mail: alexl redhat com Userid: alexl Christian Kellner E-Mail: gicmo gnome org Userid: gicmo Federico Mena Quintero E-Mail: federico ximian com Userid: federico gnome-vfs-2.24.4/TODO0000644000175000001440000000773011334251016011114 00000000000000 GnomeVFS 2.4 TODO (Michael's wishlist) ================= * backend test / validation framework + nail down woolly semantics: + if open SEEKABLE, then seek shouldn't return 'not supported' + consistant error return values for misc. methods. + URI / name escaping tests. GnomeVFS 2.0 TODO ================= This TODO attempts to cover the larger changes that we might want in a GnomeVFS 2.0 release accompanying GNOME 2.0. Specific details on bugs, fixes, features should be found in GNOME bugzilla, this is just intended to serve as a roadmap of larger work-chunks. Pretty much everything here is tenatively an "it would be nice" sort of feature or change. We should highlight any changes that are really critical. --GNOME 2.0 platform-- * Communicate with application developers and get feedback on changes or additions they'd like to see in GnomeVFS APIs. -----New Features----- * SSL support, particularly for the HTTP module * Documentation, documentation documentation. We should gun for 100% documented status for 2.0. * gzip, bzip2, tar, etc. Figure out how to properly handle these and implement it. It would be best if it can be application transparent. ----Enchancements----- * Make the MIME database return the "correct information" for a file. e.g. user selected icons, handling programs, actions, etc. This will require the metadata API support. (this may entail API changes to do it the "best way") ------New APIs------- * Add a file metadata API. Adopt some convention for storing metadata on filesystems without such (almost all of the currently supported filesystems except WebDAV). We probably want to use a large chunk of the Nautilus metadata system for this. * Add a filesystem event notification API. Write backends for fam/imon and the Linux Kernel 2.4 directory monitor. * Add helper functions to solve problems that application programmers will run into frequently using GnomeVFS. For example, parsing user input with relative paths and detecting if they are URIs, URI fragments, plain paths...etc. Much code of this nature needs to be refactored out of Nautilus. -------Modules------- * SMB module (Windows Filesharing) * CVS module * SSH module ======================================================================= Items from an older TODO. I've removed a bunch of outdated items already, but I suspect even more of these are invalid. -Seth * tar method, cpio method. * GZIP write support might be broken. * Implement SMB support through Wayne's cool librarified Samba client stuff (Wayne Roberts ). * Add some kind of conversation function, so that e.g. we can know what step the op is performing. (E.g for `open()': "connecting to ftp.some.site.net", "logging in", "getting dir listing", "retrieving file.tar", "extracting file.c".) * Make sure that only one module is initialized at a given time (i.e. add a lock that must be obtained before calling the `vfs_module_init()' function). * Complete cancellation code, to make sure every operation can be cancelled. We need to be able to send signals to the helper threads/processes. API issues ---------- * Better hiding of private stuff. * We definitely need an `URI context', which is basically a URI prefix which is used for subsequent calls. When creating a context, backends can assume they are going to get several requests for sub-URIs starting from that URI, and can try to optimize things. OR maybe we can just have a function to "lock" a certain URI. This will make everything easier to implement. * Make directory/xfer calls cancellable as well. * Specific issues gnome_vfs_monitor_callback's info_uri should be const. Installation issues ------------------- * We need to install the private headers: otherwise, it is not possible to write new modules without the full gnome-vfs source code. Maybe we need to have more than two levels (i.e. more than just "private" and "public" headers). gnome-vfs-2.24.4/mkinstalldirs0000755000175000001440000000672211450333333013234 00000000000000#! /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: gnome-vfs-2.24.4/HACKING0000644000175000001440000000424411334251016011410 00000000000000===Commit Permissions== Build sherrif commits are welcome. If you are an experienced GNOME hacker and confident that your code is right, you don't need maintainer approval to commit to HEAD. You still need to get your patch reviewed by some other (competent) GNOME hacker. If you are unsure of your change, please feel free to send the patch to gnome-vfs-list@gnome.org and get our approval so we won't execute you when it breaks things / does them wrong. Please get approval for commits to the gnome-2-0 branch. ===Prior to Checkin=== Create a ChangeLog entry Get your code reviewed by an experienced GNOME hacker, who's participation you should cite in the ChangeLog entry by including a "Reviewed by:" line at the top of the entry. Make sure that any API additions or changes are reflected correctly in the documentation. Make sure your code does not generate warnings. Do not turn any warnings off, do not turn -Werror off in configure.in. If you have problems with the existing warnings building on your environment, please contact the maintainers. Make sure your changes are properly tested, ammong other things run a "make check". Please make sure components that depend on Gnome VFS (eg Nautilus, Evolution) do not break with your change or arrange that an update to the dependent components gets submitted at the same time. ===Style=== Please use a coding style that is consistent with the existing Gnome VFS code. Gnome VFS uses the GNOME Programming Guidelines with 8-space tabs and a "K&R" indentation style. ===FIXMEs=== Use "FIXME" to augument code that needs more work, that is missing functionality or in general needs attention. Include a comprehensive comment explaining what is missing, why you think something is broken, what you suggest as a fix, etc. FIXME entries are periodically converted into bugzilla bugs. Do not use any other format to draw attention to problems, comments that do not contain "FIXME" are not going to be found by our problem tracking tools. ===Feedback=== GnomeVFS bugs and open tasks are tracked in http://bugzilla.gnome.org For IRC help/feedback use irc.gnome.org/#nautilus. A GnomeVFS mailing list is available at http://lists.gnome.org/ gnome-vfs-2.24.4/README0000644000175000001440000000106111334251016011273 00000000000000This is the GNOME Virtual File System. GNOME VFS is currently used as one of the foundations of the Nautilus file manager. For instructions on submitting patches, etc. check out the 'HACKING' file. Please read OUTSTANDING_API_ISSUES for a list of things that are not frozen. Special configure options: --with-afs Handle afs. Requires /afs, /usr/afsws/lib, and /usr/afsws/include. configure doesn't add AFS support automatically because it adds considerably to yet another module, and the AFS libraries need -lucb on Solaris, which breaks things. gnome-vfs-2.24.4/imported/0000755000175000001440000000000011450333532012323 500000000000000gnome-vfs-2.24.4/imported/Makefile.am0000644000175000001440000000002511334251016014271 00000000000000SUBDIRS=neon fnmatch gnome-vfs-2.24.4/imported/Makefile.in0000644000175000001440000005000511450333332014306 00000000000000# 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@ subdir = imported 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 = 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@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = neon fnmatch 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 imported/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu imported/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 # 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: gnome-vfs-2.24.4/imported/neon/0000755000175000001440000000000011450333532013262 500000000000000gnome-vfs-2.24.4/imported/neon/ne_basic.c0000644000175000001440000002476211334251016015121 00000000000000/* Basic HTTP and WebDAV methods Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #include #include /* for struct stat */ #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #include #include "ne_request.h" #include "ne_alloc.h" #include "ne_utils.h" #include "ne_basic.h" #include "ne_207.h" #ifdef NE_HAVE_DAV #include "ne_uri.h" #include "ne_locks.h" #endif #include "ne_dates.h" #include "ne_i18n.h" int ne_getmodtime(ne_session *sess, const char *uri, time_t *modtime) { ne_request *req = ne_request_create(sess, "HEAD", uri); const char *value; int ret; ret = ne_request_dispatch(req); value = ne_get_response_header(req, "Last-Modified"); if (ret == NE_OK && ne_get_status(req)->klass != 2) { *modtime = -1; ret = NE_ERROR; } else if (value) { *modtime = ne_httpdate_parse(value); } ne_request_destroy(req); return ret; } /* PUT's from fd to URI */ int ne_put(ne_session *sess, const char *uri, int fd) { ne_request *req; struct stat st; int ret; if (fstat(fd, &st)) { int errnum = errno; char buf[200]; ne_set_error(sess, _("Could not determine file size: %s"), ne_strerror(errnum, buf, sizeof buf)); return NE_ERROR; } req = ne_request_create(sess, "PUT", uri); #ifdef NE_HAVE_DAV ne_lock_using_resource(req, uri, 0); ne_lock_using_parent(req, uri); #endif ne_set_request_body_fd(req, fd, 0, st.st_size); ret = ne_request_dispatch(req); if (ret == NE_OK && ne_get_status(req)->klass != 2) ret = NE_ERROR; ne_request_destroy(req); return ret; } /* Dispatch a GET request REQ, writing the response body to FD fd. If * RANGE is non-NULL, then it is the value of the Range request * header, e.g. "bytes=1-5". Returns an NE_* error code. */ static int dispatch_to_fd(ne_request *req, int fd, const char *range) { ne_session *const sess = ne_get_session(req); const ne_status *const st = ne_get_status(req); int ret; do { const char *value; ret = ne_begin_request(req); if (ret != NE_OK) break; value = ne_get_response_header(req, "Content-Range"); /* For a 206 response, check that a Content-Range header is * given which matches the Range request header. */ if (range && st->code == 206 && (value == NULL || strncmp(value, "bytes ", 6) != 0 || strcmp(range + 6, value + 6))) { ne_set_error(sess, _("Response did not include requested range")); return NE_ERROR; } if ((range && st->code == 206) || (!range && st->klass == 2)) { ret = ne_read_response_to_fd(req, fd); } else { ret = ne_discard_response(req); } if (ret == NE_OK) ret = ne_end_request(req); } while (ret == NE_RETRY); return ret; } int ne_get_range(ne_session *sess, const char *uri, ne_content_range *range, int fd) { ne_request *req = ne_request_create(sess, "GET", uri); const ne_status *status; int ret; char brange[64]; if (range->end == -1) { ne_snprintf(brange, sizeof brange, "bytes=%" NE_FMT_OFF_T "-", range->start); } else { ne_snprintf(brange, sizeof brange, "bytes=%" NE_FMT_OFF_T "-%" NE_FMT_OFF_T, range->start, range->end); } ne_add_request_header(req, "Range", brange); ne_add_request_header(req, "Accept-Ranges", "bytes"); ret = dispatch_to_fd(req, fd, brange); status = ne_get_status(req); if (ret == NE_OK && status->code == 416) { /* connection is terminated too early with Apache/1.3, so we check * this even if ret == NE_ERROR... */ ne_set_error(sess, _("Range is not satisfiable")); ret = NE_ERROR; } else if (ret == NE_OK) { if (status->klass == 2 && status->code != 206) { ne_set_error(sess, _("Resource does not support ranged GETs.")); ret = NE_ERROR; } else if (status->klass != 2) { ret = NE_ERROR; } } ne_request_destroy(req); return ret; } /* Get to given fd */ int ne_get(ne_session *sess, const char *uri, int fd) { ne_request *req = ne_request_create(sess, "GET", uri); int ret; ret = dispatch_to_fd(req, fd, NULL); if (ret == NE_OK && ne_get_status(req)->klass != 2) { ret = NE_ERROR; } ne_request_destroy(req); return ret; } /* Get to given fd */ int ne_post(ne_session *sess, const char *uri, int fd, const char *buffer) { ne_request *req = ne_request_create(sess, "POST", uri); int ret; ne_set_request_body_buffer(req, buffer, strlen(buffer)); ret = dispatch_to_fd(req, fd, NULL); if (ret == NE_OK && ne_get_status(req)->klass != 2) { ret = NE_ERROR; } ne_request_destroy(req); return ret; } int ne_get_content_type(ne_request *req, ne_content_type *ct) { const char *value; char *sep, *stype; value = ne_get_response_header(req, "Content-Type"); if (value == NULL || strchr(value, '/') == NULL) { return -1; } ct->type = ct->value = ne_strdup(value); stype = strchr(ct->value, '/'); *stype++ = '\0'; ct->charset = NULL; sep = strchr(stype, ';'); if (sep) { char *tok; /* Look for the charset parameter: */ *sep++ = '\0'; do { tok = ne_qtoken(&sep, ';', "\"\'"); if (tok) { tok = strstr(tok, "charset="); if (tok) ct->charset = ne_shave(tok+8, "\"\'"); } else { break; } } while (sep != NULL); } /* set subtype, losing any trailing whitespace */ ct->subtype = ne_shave(stype, " \t"); if (ct->charset == NULL && strcasecmp(ct->type, "text") == 0) { /* 3023§3.1: text/xml without charset implies us-ascii. */ if (strcasecmp(ct->subtype, "xml") == 0) ct->charset = "us-ascii"; /* 2616§3.7.1: subtypes of text/ default to charset ISO-8859-1. */ else ct->charset = "ISO-8859-1"; } return 0; } static void parse_dav_header(const char *value, ne_server_capabilities *caps) { char *tokens = ne_strdup(value), *pnt = tokens; do { char *tok = ne_qtoken(&pnt, ',', "\"'"); if (!tok) break; tok = ne_shave(tok, " \r\t\n"); if (strcmp(tok, "1") == 0) { caps->dav_class1 = 1; } else if (strcmp(tok, "2") == 0) { caps->dav_class2 = 1; } else if (strcmp(tok, "") == 0) { caps->dav_executable = 1; } } while (pnt != NULL); ne_free(tokens); } int ne_options(ne_session *sess, const char *uri, ne_server_capabilities *caps) { ne_request *req = ne_request_create(sess, "OPTIONS", uri); int ret = ne_request_dispatch(req); const char *header = ne_get_response_header(req, "DAV"); if (header) parse_dav_header(header, caps); if (ret == NE_OK && ne_get_status(req)->klass != 2) { ret = NE_ERROR; } ne_request_destroy(req); return ret; } #ifdef NE_HAVE_DAV void ne_add_depth_header(ne_request *req, int depth) { const char *value; switch(depth) { case NE_DEPTH_ZERO: value = "0"; break; case NE_DEPTH_ONE: value = "1"; break; default: value = "infinity"; break; } ne_add_request_header(req, "Depth", value); } static int copy_or_move(ne_session *sess, int is_move, int overwrite, int depth, const char *src, const char *dest) { ne_request *req = ne_request_create( sess, is_move?"MOVE":"COPY", src ); /* 2518 S8.9.2 says only use Depth: infinity with MOVE. */ if (!is_move) { ne_add_depth_header(req, depth); } #ifdef NE_HAVE_DAV if (is_move) { ne_lock_using_resource(req, src, NE_DEPTH_INFINITE); } ne_lock_using_resource(req, dest, NE_DEPTH_INFINITE); /* And we need to be able to add members to the destination's parent */ ne_lock_using_parent(req, dest); #endif ne_print_request_header(req, "Destination", "%s://%s%s", ne_get_scheme(sess), ne_get_server_hostport(sess), dest); ne_add_request_header(req, "Overwrite", overwrite?"T":"F"); return ne_simple_request(sess, req); } int ne_copy(ne_session *sess, int overwrite, int depth, const char *src, const char *dest) { return copy_or_move(sess, 0, overwrite, depth, src, dest); } int ne_move(ne_session *sess, int overwrite, const char *src, const char *dest) { return copy_or_move(sess, 1, overwrite, 0, src, dest); } /* Deletes the specified resource. (and in only two lines of code!) */ int ne_delete(ne_session *sess, const char *uri) { ne_request *req = ne_request_create(sess, "DELETE", uri); #ifdef NE_HAVE_DAV ne_lock_using_resource(req, uri, NE_DEPTH_INFINITE); ne_lock_using_parent(req, uri); #endif /* joe: I asked on the DAV WG list about whether we might get a * 207 error back from a DELETE... conclusion, you shouldn't if * you don't send the Depth header, since we might be an HTTP/1.1 * client and a 2xx response indicates success to them. But * it's all a bit unclear. In any case, DAV servers today do * return 207 to DELETE even if we don't send the Depth header. * So we handle 207 errors appropriately. */ return ne_simple_request(sess, req); } int ne_mkcol(ne_session *sess, const char *uri) { ne_request *req; char *real_uri; int ret; if (ne_path_has_trailing_slash(uri)) { real_uri = ne_strdup(uri); } else { real_uri = ne_concat(uri, "/", NULL); } req = ne_request_create(sess, "MKCOL", real_uri); #ifdef NE_HAVE_DAV ne_lock_using_resource(req, real_uri, 0); ne_lock_using_parent(req, real_uri); #endif ret = ne_simple_request(sess, req); ne_free(real_uri); return ret; } #endif /* NE_HAVE_DAV */ gnome-vfs-2.24.4/imported/neon/ne_props.c0000644000175000001440000004164011334251016015175 00000000000000/* WebDAV property manipulation Copyright (C) 2000-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #include "ne_alloc.h" #include "ne_xml.h" #include "ne_props.h" #include "ne_basic.h" #include "ne_locks.h" #include "ne_i18n.h" /* don't store flat props with a value > 10K */ #define MAX_FLATPROP_LEN (102400) #define EOL "\r\n" struct ne_propfind_handler_s { ne_session *sess; ne_request *request; int has_props; /* whether we've already written some * props to the body. */ ne_buffer *body; ne_207_parser *parser207; ne_xml_parser *parser; /* Callback to create the private structure. */ ne_props_create_complex private_creator; void *private_userdata; /* Current propset, or NULL if none being processed. */ ne_prop_result_set *current; ne_buffer *value; /* current flat property value */ int depth; /* nesting depth within a flat property */ ne_props_result callback; void *userdata; }; #define ELM_flatprop (NE_207_STATE_TOP - 1) /* We build up the results of one 'response' element in memory. */ struct prop { char *name, *nspace, *value, *lang; /* Store a ne_propname here too, for convienience. pname.name = * name, pname.nspace = nspace, but they are const'ed in pname. */ ne_propname pname; }; #define NSPACE(x) ((x) ? (x) : "") struct propstat { struct prop *props; int numprops; ne_status status; }; /* Results set. */ struct ne_prop_result_set_s { struct propstat *pstats; int numpstats, counter; void *private; char *href; }; #define MAX_PROP_COUNTER (1024) static int startelm(void *userdata, int state, const char *name, const char *nspace, const char **atts); static int endelm(void *userdata, int state, const char *name, const char *nspace); /* Handle character data; flat property value. */ static int chardata(void *userdata, int state, const char *data, size_t len) { ne_propfind_handler *hdl = userdata; if (state == ELM_flatprop && hdl->value->length < MAX_FLATPROP_LEN) ne_buffer_append(hdl->value, data, len); return 0; } ne_xml_parser *ne_propfind_get_parser(ne_propfind_handler *handler) { return handler->parser; } ne_request *ne_propfind_get_request(ne_propfind_handler *handler) { return handler->request; } static int propfind(ne_propfind_handler *handler, ne_props_result results, void *userdata) { int ret; ne_request *req = handler->request; /* Register the flat property handler to catch any properties * which the user isn't handling as 'complex'. */ ne_xml_push_handler(handler->parser, startelm, chardata, endelm, handler); handler->callback = results; handler->userdata = userdata; ne_set_request_body_buffer(req, handler->body->data, ne_buffer_size(handler->body)); ne_add_request_header(req, "Content-Type", NE_XML_MEDIA_TYPE); ne_add_response_body_reader(req, ne_accept_207, ne_xml_parse_v, handler->parser); ret = ne_request_dispatch(req); if (ret == NE_OK && ne_get_status(req)->klass != 2) { ret = NE_ERROR; } else if (ne_xml_failed(handler->parser)) { ne_set_error(handler->sess, "%s", ne_xml_get_error(handler->parser)); ret = NE_ERROR; } return ret; } static void set_body(ne_propfind_handler *hdl, const ne_propname *names) { ne_buffer *body = hdl->body; int n; if (!hdl->has_props) { ne_buffer_zappend(body, "" EOL); hdl->has_props = 1; } for (n = 0; names[n].name != NULL; n++) { ne_buffer_concat(body, "<", names[n].name, " xmlns=\"", NSPACE(names[n].nspace), "\"/>" EOL, NULL); } } int ne_propfind_allprop(ne_propfind_handler *handler, ne_props_result results, void *userdata) { ne_buffer_zappend(handler->body, "" EOL); return propfind(handler, results, userdata); } int ne_propfind_named(ne_propfind_handler *handler, const ne_propname *props, ne_props_result results, void *userdata) { set_body(handler, props); ne_buffer_zappend(handler->body, "" EOL); return propfind(handler, results, userdata); } /* The easy one... PROPPATCH */ int ne_proppatch(ne_session *sess, const char *uri, const ne_proppatch_operation *items) { ne_request *req = ne_request_create(sess, "PROPPATCH", uri); ne_buffer *body = ne_buffer_create(); int n, ret; /* Create the request body */ ne_buffer_zappend(body, "" EOL ""); for (n = 0; items[n].name != NULL; n++) { const char *elm = (items[n].type == ne_propset) ? "set" : "remove"; /* value */ ne_buffer_concat(body, "" "<", items[n].name->name, NULL); if (items[n].name->nspace) { ne_buffer_concat(body, " xmlns=\"", items[n].name->nspace, "\"", NULL); } if (items[n].type == ne_propset) { ne_buffer_concat(body, ">", items[n].value, NULL); } else { ne_buffer_append(body, ">", 1); } ne_buffer_concat(body, "name, ">" EOL, NULL); } ne_buffer_zappend(body, "" EOL); ne_set_request_body_buffer(req, body->data, ne_buffer_size(body)); ne_add_request_header(req, "Content-Type", NE_XML_MEDIA_TYPE); #ifdef NE_HAVE_DAV ne_lock_using_resource(req, uri, NE_DEPTH_ZERO); #endif ret = ne_simple_request(sess, req); ne_buffer_destroy(body); return ret; } /* Compare two property names. */ static int pnamecmp(const ne_propname *pn1, const ne_propname *pn2) { if (pn1->nspace == NULL && pn2->nspace != NULL) { return 1; } else if (pn1->nspace != NULL && pn2->nspace == NULL) { return -1; } else if (pn1->nspace == NULL) { return strcmp(pn1->name, pn2->name); } else { return (strcmp(pn1->nspace, pn2->nspace) || strcmp(pn1->name, pn2->name)); } } /* Find property in 'set' with name 'pname'. If found, set pstat_ret * to the containing propstat, likewise prop_ret, and returns zero. * If not found, returns non-zero. */ static int findprop(const ne_prop_result_set *set, const ne_propname *pname, struct propstat **pstat_ret, struct prop **prop_ret) { int ps, p; for (ps = 0; ps < set->numpstats; ps++) { for (p = 0; p < set->pstats[ps].numprops; p++) { struct prop *prop = &set->pstats[ps].props[p]; if (pnamecmp(&prop->pname, pname) == 0) { if (pstat_ret != NULL) *pstat_ret = &set->pstats[ps]; if (prop_ret != NULL) *prop_ret = prop; return 0; } } } return -1; } const char *ne_propset_value(const ne_prop_result_set *set, const ne_propname *pname) { struct prop *prop; if (findprop(set, pname, NULL, &prop)) { return NULL; } else { return prop->value; } } const char *ne_propset_lang(const ne_prop_result_set *set, const ne_propname *pname) { struct prop *prop; if (findprop(set, pname, NULL, &prop)) { return NULL; } else { return prop->lang; } } void *ne_propfind_current_private(ne_propfind_handler *handler) { return handler->current ? handler->current->private : NULL; } void *ne_propset_private(const ne_prop_result_set *set) { return set->private; } int ne_propset_iterate(const ne_prop_result_set *set, ne_propset_iterator iterator, void *userdata) { int ps, p; for (ps = 0; ps < set->numpstats; ps++) { for (p = 0; p < set->pstats[ps].numprops; p++) { struct prop *prop = &set->pstats[ps].props[p]; int ret = iterator(userdata, &prop->pname, prop->value, &set->pstats[ps].status); if (ret) return ret; } } return 0; } const ne_status *ne_propset_status(const ne_prop_result_set *set, const ne_propname *pname) { struct propstat *pstat; if (findprop(set, pname, &pstat, NULL)) { /* TODO: it is tempting to return a dummy status object here * rather than NULL, which says "Property result was not given * by server." but I'm not sure if this is best left to the * client. */ return NULL; } else { return &pstat->status; } } static void *start_response(void *userdata, const char *href) { ne_prop_result_set *set = ne_calloc(sizeof(*set)); ne_propfind_handler *hdl = userdata; set->href = ne_strdup(href); if (hdl->private_creator != NULL) { set->private = hdl->private_creator(hdl->private_userdata, href); } hdl->current = set; return set; } static void *start_propstat(void *userdata, void *response) { ne_prop_result_set *set = response; ne_propfind_handler *hdl = userdata; struct propstat *pstat; int n; if (++hdl->current->counter == MAX_PROP_COUNTER) { ne_xml_set_error(hdl->parser, _("Response exceeds maximum property count")); return NULL; } n = set->numpstats; set->pstats = ne_realloc(set->pstats, sizeof(struct propstat) * (n+1)); set->numpstats = n+1; pstat = &set->pstats[n]; memset(pstat, 0, sizeof(*pstat)); /* And return this as the new pstat. */ return &set->pstats[n]; } static int startelm(void *userdata, int parent, const char *nspace, const char *name, const char **atts) { ne_propfind_handler *hdl = userdata; struct propstat *pstat = ne_207_get_current_propstat(hdl->parser207); struct prop *prop; int n; const char *lang; /* Just handle all children of propstat and their descendants. */ if ((parent != NE_207_STATE_PROP && parent != ELM_flatprop) || pstat == NULL) return NE_XML_DECLINE; if (parent == ELM_flatprop) { /* collecting the flatprop value. */ hdl->depth++; if (hdl->value->used < MAX_FLATPROP_LEN) ne_buffer_concat(hdl->value, "<", name, ">", NULL); return ELM_flatprop; } /* Enforce maximum number of properties per resource to prevent a * memory exhaustion attack by a hostile server. */ if (++hdl->current->counter == MAX_PROP_COUNTER) { ne_xml_set_error(hdl->parser, _("Response exceeds maximum property count")); return NE_XML_ABORT; } /* Add a property to this propstat */ n = pstat->numprops; pstat->props = ne_realloc(pstat->props, sizeof(struct prop) * (n + 1)); pstat->numprops = n+1; /* Fill in the new property. */ prop = &pstat->props[n]; prop->pname.name = prop->name = ne_strdup(name); if (nspace[0] == '\0') { prop->pname.nspace = prop->nspace = NULL; } else { prop->pname.nspace = prop->nspace = ne_strdup(nspace); } prop->value = NULL; NE_DEBUG(NE_DBG_XML, "Got property #%d: {%s}%s.\n", n, NSPACE(prop->nspace), prop->name); /* This is under discussion at time of writing (April '01), and it * looks like we need to retrieve the xml:lang property from any * element here or above. * * Also, I think we might need attribute namespace handling here. */ lang = ne_xml_get_attr(hdl->parser, atts, NULL, "xml:lang"); if (lang != NULL) { prop->lang = ne_strdup(lang); NE_DEBUG(NE_DBG_XML, "Property language is %s\n", prop->lang); } else { prop->lang = NULL; } hdl->depth = 0; return ELM_flatprop; } static int endelm(void *userdata, int state, const char *nspace, const char *name) { ne_propfind_handler *hdl = userdata; struct propstat *pstat = ne_207_get_current_propstat(hdl->parser207); int n; if (hdl->depth > 0) { /* nested. */ if (hdl->value->used < MAX_FLATPROP_LEN) ne_buffer_concat(hdl->value, "", NULL); hdl->depth--; } else { /* end of the current property value */ n = pstat->numprops - 1; pstat->props[n].value = ne_buffer_finish(hdl->value); hdl->value = ne_buffer_create(); } return 0; } static void end_propstat(void *userdata, void *pstat_v, const ne_status *status, const char *description) { struct propstat *pstat = pstat_v; /* Nothing to do if no status was given. */ if (!status) return; /* If we get a non-2xx response back here, we wipe the value for * each of the properties in this propstat, so the caller knows to * look at the status instead. It's annoying, since for each prop * we will have done an unnecessary strdup("") above, but there is * no easy way round that given the fact that we don't know * whether we've got an error or not till after we get the * property element. * * Interestingly IIS breaks the 2518 DTD and puts the status * element first in the propstat. This is useful since then we * *do* know whether each subsequent empty prop element means, but * we can't rely on that here. */ if (status->klass != 2) { int n; for (n = 0; n < pstat->numprops; n++) { ne_free(pstat->props[n].value); pstat->props[n].value = NULL; } } /* copy the status structure, and dup the reason phrase. */ pstat->status = *status; pstat->status.reason_phrase = ne_strdup(status->reason_phrase); } /* Frees up a results set */ static void free_propset(ne_prop_result_set *set) { int n; for (n = 0; n < set->numpstats; n++) { int m; struct propstat *p = &set->pstats[n]; for (m = 0; m < p->numprops; m++) { NE_FREE(p->props[m].nspace); ne_free(p->props[m].name); NE_FREE(p->props[m].lang); NE_FREE(p->props[m].value); } if (p->status.reason_phrase) ne_free(p->status.reason_phrase); if (p->props) ne_free(p->props); } if (set->pstats) ne_free(set->pstats); ne_free(set->href); ne_free(set); } static void end_response(void *userdata, void *resource, const ne_status *status, const char *description) { ne_propfind_handler *handler = userdata; ne_prop_result_set *set = resource; /* Pass back the results for this resource. */ if (handler->callback && set->numpstats > 0) handler->callback(handler->userdata, set->href, set); /* Clean up the propset tree we've just built. */ free_propset(set); handler->current = NULL; } ne_propfind_handler * ne_propfind_create(ne_session *sess, const char *uri, int depth) { ne_propfind_handler *ret = ne_calloc(sizeof(ne_propfind_handler)); ret->parser = ne_xml_create(); ret->parser207 = ne_207_create(ret->parser, ret); ret->sess = sess; ret->body = ne_buffer_create(); ret->request = ne_request_create(sess, "PROPFIND", uri); ret->value = ne_buffer_create(); ne_add_depth_header(ret->request, depth); ne_207_set_response_handlers(ret->parser207, start_response, end_response); ne_207_set_propstat_handlers(ret->parser207, start_propstat, end_propstat); /* The start of the request body is fixed: */ ne_buffer_concat(ret->body, "" EOL "", NULL); return ret; } /* Destroy a propfind handler */ void ne_propfind_destroy(ne_propfind_handler *handler) { ne_buffer_destroy(handler->value); if (handler->current) free_propset(handler->current); ne_207_destroy(handler->parser207); ne_xml_destroy(handler->parser); ne_buffer_destroy(handler->body); ne_request_destroy(handler->request); ne_free(handler); } int ne_simple_propfind(ne_session *sess, const char *href, int depth, const ne_propname *props, ne_props_result results, void *userdata) { ne_propfind_handler *hdl; int ret; hdl = ne_propfind_create(sess, href, depth); if (props != NULL) { ret = ne_propfind_named(hdl, props, results, userdata); } else { ret = ne_propfind_allprop(hdl, results, userdata); } ne_propfind_destroy(hdl); return ret; } int ne_propnames(ne_session *sess, const char *href, int depth, ne_props_result results, void *userdata) { ne_propfind_handler *hdl; int ret; hdl = ne_propfind_create(sess, href, depth); ne_buffer_zappend(hdl->body, ""); ret = propfind(hdl, results, userdata); ne_propfind_destroy(hdl); return ret; } void ne_propfind_set_private(ne_propfind_handler *hdl, ne_props_create_complex creator, void *userdata) { hdl->private_creator = creator; hdl->private_userdata = userdata; } gnome-vfs-2.24.4/imported/neon/ne_request.h0000644000175000001440000003034011334251016015522 00000000000000/* HTTP Request Handling Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_REQUEST_H #define NE_REQUEST_H #include "ne_utils.h" /* For ne_status */ #include "ne_string.h" /* For ne_buffer */ #include "ne_session.h" BEGIN_NEON_DECLS #define NE_OK (0) /* Success */ #define NE_ERROR (1) /* Generic error; use ne_get_error(session) for message */ #define NE_LOOKUP (2) /* Server or proxy hostname lookup failed */ #define NE_AUTH (3) /* User authentication failed on server */ #define NE_PROXYAUTH (4) /* User authentication failed on proxy */ #define NE_CONNECT (5) /* Could not connect to server */ #define NE_TIMEOUT (6) /* Connection timed out */ #define NE_FAILED (7) /* The precondition failed */ #define NE_RETRY (8) /* Retry request (ne_end_request ONLY) */ #define NE_REDIRECT (9) /* See ne_redirect.h */ /* Opaque object representing a single HTTP request. */ typedef struct ne_request_s ne_request; /***** Request Handling *****/ /* Create a request in session 'sess', with given method and path. * 'path' must conform to the 'abs_path' grammar in RFC2396, with an * optional "? query" part, and MUST be URI-escaped by the caller. */ ne_request *ne_request_create(ne_session *sess, const char *method, const char *path); /* The request body will be taken from 'size' bytes of 'buffer'. */ void ne_set_request_body_buffer(ne_request *req, const char *buffer, size_t size); /* The request body will be taken from 'length' bytes read from the * file descriptor 'fd', starting from file offset 'offset'. */ void ne_set_request_body_fd(ne_request *req, int fd, off_t offset, off_t length); #ifdef NE_LFS /* Alternate version of ne_set_request_body_fd taking off64_t * offset type for systems supporting _LARGEFILE64_SOURCE. */ void ne_set_request_body_fd64(ne_request *req, int fd, off64_t offset, off64_t length); #endif /* "Pull"-based request body provider: a callback which is invoked to * provide blocks of request body on demand. * * Before each time the body is provided, the callback will be called * once with buflen == 0. The body may have to be provided >1 time * per request (for authentication retries etc.). * * For a call with buflen == 0, the callback must return zero on success * or non-zero on error; the session error string must be set on error. * For a call with buflen > 0, the callback must return: * <0 : error, abort request; session error string must be set. * 0 : ignore 'buffer' contents, end of body. * 0 < x <= buflen : buffer contains x bytes of body data. */ typedef ssize_t (*ne_provide_body)(void *userdata, char *buffer, size_t buflen); /* Install a callback which is invoked as needed to provide the * request body, a block at a time. The total size of the request * body is 'length'; the callback must ensure that it returns no more * than 'length' bytes in total. */ void ne_set_request_body_provider(ne_request *req, off_t length, ne_provide_body provider, void *userdata); #ifdef NE_LFS /* Duplicate version of ne_set_request_body_provider, taking an off64_t * offset. */ void ne_set_request_body_provider64(ne_request *req, off64_t length, ne_provide_body provider, void *userdata); #endif /* Handling response bodies; two callbacks must be provided: * * 1) 'acceptance' callback: determines whether you want to handle the * response body given the response-status information, e.g., if you * only want 2xx responses, say so here. * * 2) 'reader' callback: passed blocks of the response-body as they * arrive, if the acceptance callback returned non-zero. */ /* 'acceptance' callback type. Return non-zero to accept the response, * else zero to ignore it. */ typedef int (*ne_accept_response)(void *userdata, ne_request *req, const ne_status *st); /* An 'acceptance' callback which only accepts 2xx-class responses. * Ignores userdata. */ int ne_accept_2xx(void *userdata, ne_request *req, const ne_status *st); /* An acceptance callback which accepts all responses. Ignores * userdata. */ int ne_accept_always(void *userdata, ne_request *req, const ne_status *st); /* Callback for reading a block of data. Returns zero on success, or * non-zero on error. If returning an error, the response will be * aborted and the callback will not be invoked again. The request * dispatch (or ne_read_response_block call) will fail with NE_ERROR; * the session error string should have been set by the callback. */ typedef int (*ne_block_reader)(void *userdata, const char *buf, size_t len); /* Add a response reader for the given request, with the given * acceptance function. userdata is passed as the first argument to * the acceptance + reader callbacks. * * The acceptance callback is called once each time the request is * sent: it may be sent >1 time because of authentication retries etc. * For each time the acceptance callback is called, if it returns * non-zero, blocks of the response body will be passed to the reader * callback as the response is read. After all the response body has * been read, the callback will be called with a 'len' argument of * zero. */ void ne_add_response_body_reader(ne_request *req, ne_accept_response accpt, ne_block_reader reader, void *userdata); /* Retrieve the value of the response header field with given name; * returns NULL if no response header with given name was found. The * return value is valid only until the next call to either * ne_request_destroy or ne_begin_request for this request. */ const char *ne_get_response_header(ne_request *req, const char *name); /* Iterator interface for response headers: if passed a NULL cursor, * returns the first header; if passed a non-NULL cursor pointer, * returns the next header. The return value is a cursor pointer: if * it is non-NULL, *name and *value are set to the name and value of * the header field. If the return value is NULL, no more headers are * found, *name and *value are undefined. * * The order in which response headers is returned is undefined. Both * the cursor and name/value pointers are valid only until the next * call to either ne_request_destroy or ne_begin_request for this * request. */ void *ne_response_header_iterate(ne_request *req, void *cursor, const char **name, const char **value); /* Adds a header to the request with given name and value. */ void ne_add_request_header(ne_request *req, const char *name, const char *value); /* Adds a header to the request with given name, using printf-like * format arguments for the value. */ void ne_print_request_header(ne_request *req, const char *name, const char *format, ...) ne_attribute((__format__( __printf__, 3, 4))); /* ne_request_dispatch: Sends the given request, and reads the * response. Returns: * - NE_OK if the request was sent and response read successfully * - NE_AUTH, NE_PROXYAUTH for a server or proxy server authentication error * - NE_CONNECT if connection could not be established * - NE_TIMEOUT if an timeout occurred sending or reading from the server * - NE_ERROR for other fatal dispatch errors * On any error, the session error string is set. On success or * authentication error, the actual response-status can be retrieved using * ne_get_status(). */ int ne_request_dispatch(ne_request *req); /* Returns a pointer to the response status information for the given * request; pointer is valid until request object is destroyed. */ const ne_status *ne_get_status(const ne_request *req) ne_attribute((const)); /* Returns pointer to session associated with request. */ ne_session *ne_get_session(const ne_request *req) ne_attribute((const)); /* Destroy memory associated with request pointer */ void ne_request_destroy(ne_request *req); /* "Caller-pulls" request interface. This is an ALTERNATIVE interface * to ne_request_dispatch: either use that, or do all this yourself: * * caller must call: * 1. ne_begin_request (fail if returns non-NE_OK) * 2. while(ne_read_response_block(...) > 0) ... loop ...; * (fail if ne_read_response_block returns <0) * 3. ne_end_request * * ne_end_request and ne_begin_request both return an NE_* code; if * ne_end_request returns NE_RETRY, you must restart the loop from (1) * above. */ int ne_begin_request(ne_request *req); int ne_end_request(ne_request *req); /* Read a block of the response into the passed buffer of size 'buflen'. * * Returns: * <0 - error, stop reading. * 0 - end of response * >0 - number of bytes read into buffer. */ ssize_t ne_read_response_block(ne_request *req, char *buffer, size_t buflen); /* Read response blocks until end of response; exactly equivalent to * calling ne_read_response_block() until it returns 0. Returns * non-zero on error. */ int ne_discard_response(ne_request *req); /* Read response blocks until end of response, writing content to the * given file descriptor. Returns NE_ERROR on error. */ int ne_read_response_to_fd(ne_request *req, int fd); /* If 'flag' is non-zer, enable the HTTP/1.1 "Expect: 100-continue" * feature for the request, which allows the server to send an error * response before the request body is sent. This should only be used * if the server is known to support the feature (not all HTTP/1.1 * servers do); the request will time out and fail otherwise. */ void ne_set_request_expect100(ne_request *req, int flag); /**** Request hooks handling *****/ typedef void (*ne_free_hooks)(void *cookie); /* Hook called when a create is created; passed the request method, * and the string used as the Request-URI (which may be an abs_path, * or an absoluteURI, depending on whether an HTTP proxy is in * use). */ typedef void (*ne_create_request_fn)(ne_request *req, void *userdata, const char *method, const char *requri); void ne_hook_create_request(ne_session *sess, ne_create_request_fn fn, void *userdata); /* Hook called before the request is sent. 'header' is the raw HTTP * header before the trailing CRLF is added: add in more here. */ typedef void (*ne_pre_send_fn)(ne_request *req, void *userdata, ne_buffer *header); void ne_hook_pre_send(ne_session *sess, ne_pre_send_fn fn, void *userdata); /* Hook called after the request is dispatched (request sent, and * the entire response read). If an error occurred reading the response, * this hook will not run. May return: * NE_OK everything is okay * NE_RETRY try sending the request again. * anything else signifies an error, and the request is failed. The return * code is passed back the _dispatch caller, so the session error must * also be set appropriately (ne_set_error). */ typedef int (*ne_post_send_fn)(ne_request *req, void *userdata, const ne_status *status); void ne_hook_post_send(ne_session *sess, ne_post_send_fn fn, void *userdata); /* Hook called when the function is destroyed. */ typedef void (*ne_destroy_req_fn)(ne_request *req, void *userdata); void ne_hook_destroy_request(ne_session *sess, ne_destroy_req_fn fn, void *userdata); typedef void (*ne_destroy_sess_fn)(void *userdata); /* Hook called when the session is destroyed. */ void ne_hook_destroy_session(ne_session *sess, ne_destroy_sess_fn fn, void *userdata); /* Store an opaque context for the request, 'priv' is returned by a * call to ne_request_get_private with the same ID. */ void ne_set_request_private(ne_request *req, const char *id, void *priv); void *ne_get_request_private(ne_request *req, const char *id); END_NEON_DECLS #endif /* NE_REQUEST_H */ gnome-vfs-2.24.4/imported/neon/ne_alloc.h0000644000175000001440000000374411334251016015134 00000000000000/* Replacement memory allocation handling etc. Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_ALLOC_H #define NE_ALLOC_H #ifdef WIN32 #include #else #include #endif #include "ne_defs.h" BEGIN_NEON_DECLS typedef void (*ne_oom_callback_fn)(void); /* Set callback which is called if malloc() returns NULL. */ void ne_oom_callback(ne_oom_callback_fn callback); #ifndef NEON_MEMLEAK /* Replacements for standard C library memory allocation functions, * which never return NULL. If the C library malloc() returns NULL, * neon will abort(); calling an OOM callback beforehand if one is * registered. The C library will only ever return NULL if the * operating system does not use optimistic memory allocation. */ void *ne_malloc(size_t size) ne_attribute_malloc; void *ne_calloc(size_t size) ne_attribute_malloc; void *ne_realloc(void *ptr, size_t s) ne_attribute_malloc; char *ne_strdup(const char *s) ne_attribute_malloc; char *ne_strndup(const char *s, size_t n) ne_attribute_malloc; #define ne_free free #endif /* Handy macro to free things: takes an lvalue, and sets to NULL * afterwards. */ #define NE_FREE(x) do { if ((x) != NULL) ne_free((x)); (x) = NULL; } while (0) END_NEON_DECLS #endif /* NE_ALLOC_H */ gnome-vfs-2.24.4/imported/neon/ne_compress.c0000644000175000001440000003176011334251016015667 00000000000000/* Handling of compressed HTTP responses Copyright (C) 2001-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #include "ne_request.h" #include "ne_compress.h" #include "ne_utils.h" #include "ne_i18n.h" #include "ne_private.h" #ifdef NE_HAVE_ZLIB #include /* Adds support for the 'gzip' Content-Encoding in HTTP. gzip is a * file format which wraps the DEFLATE compression algorithm. zlib * implements DEFLATE: we have to unwrap the gzip format (specified in * RFC1952) as it comes off the wire, and hand off chunks of data to * be inflated. */ struct ne_decompress_s { ne_request *request; /* associated request. */ ne_session *session; /* associated session. */ /* temporary buffer for holding inflated data. */ char outbuf[NE_BUFSIZ]; z_stream zstr; int zstrinit; /* non-zero if zstr has been initialized */ /* pass blocks back to this. */ ne_block_reader reader; ne_accept_response acceptor; void *userdata; /* buffer for gzip header bytes. */ unsigned char header[10]; size_t hdrcount; /* bytes in header */ unsigned char footer[8]; size_t footcount; /* bytes in footer. */ /* CRC32 checksum: odd that zlib uses uLong for this since it is a * 64-bit integer on LP64 platforms. */ uLong checksum; /* current state. */ enum state { NE_Z_BEFORE_DATA, /* not received any response blocks yet. */ NE_Z_PASSTHROUGH, /* response not compressed: passing through. */ NE_Z_IN_HEADER, /* received a few bytes of response data, but not * got past the gzip header yet. */ NE_Z_POST_HEADER, /* waiting for the end of the NUL-terminated bits. */ NE_Z_INFLATING, /* inflating response bytes. */ NE_Z_AFTER_DATA, /* after data; reading CRC32 & ISIZE */ NE_Z_FINISHED /* stream is finished. */ } state; }; /* Convert 'buf' to unsigned int; 'buf' must be 'unsigned char *' */ #define BUF2UINT(buf) (((buf)[3]<<24) + ((buf)[2]<<16) + ((buf)[1]<<8) + (buf)[0]) #define ID1 0x1f #define ID2 0x8b #define HDR_DONE 0 #define HDR_EXTENDED 1 #define HDR_ERROR 2 #define HDR_ID1(ctx) ((ctx)->header[0]) #define HDR_ID2(ctx) ((ctx)->header[1]) #define HDR_CMETH(ctx) ((ctx)->header[2]) #define HDR_FLAGS(ctx) ((ctx)->header[3]) #define HDR_MTIME(ctx) (BUF2UINT(&(ctx)->header[4])) #define HDR_XFLAGS(ctx) ((ctx)->header[8]) #define HDR_OS(ctx) ((ctx)->header[9]) /* parse_header parses the gzip header, sets the next state and returns * HDR_DONE: all done, bytes following are raw DEFLATE data. * HDR_EXTENDED: all done, expect a NUL-termianted string * before the DEFLATE data * HDR_ERROR: invalid header, give up (session error is set). */ static int parse_header(ne_decompress *ctx) { NE_DEBUG(NE_DBG_HTTP, "ID1: %d ID2: %d, cmeth %d, flags %d\n", HDR_ID1(ctx), HDR_ID2(ctx), HDR_CMETH(ctx), HDR_FLAGS(ctx)); if (HDR_ID1(ctx) != ID1 || HDR_ID2(ctx) != ID2 || HDR_CMETH(ctx) != 8) { ne_set_error(ctx->session, "Compressed stream invalid"); return HDR_ERROR; } NE_DEBUG(NE_DBG_HTTP, "mtime: %d, xflags: %d, os: %d\n", HDR_MTIME(ctx), HDR_XFLAGS(ctx), HDR_OS(ctx)); /* TODO: we can only handle one NUL-terminated extensions field * currently. Really, we should count the number of bits set, and * skip as many fields as bits set (bailing if any reserved bits * are set. */ if (HDR_FLAGS(ctx) == 8) { ctx->state = NE_Z_POST_HEADER; return HDR_EXTENDED; } else if (HDR_FLAGS(ctx) != 0) { ne_set_error(ctx->session, "Compressed stream not supported"); return HDR_ERROR; } NE_DEBUG(NE_DBG_HTTP, "compress: Good stream.\n"); ctx->state = NE_Z_INFLATING; return HDR_DONE; } /* Process extra 'len' bytes of 'buf' which were received after the * DEFLATE data. */ static int process_footer(ne_decompress *ctx, const unsigned char *buf, size_t len) { if (len + ctx->footcount > 8) { ne_set_error(ctx->session, "Too many bytes (%" NE_FMT_SIZE_T ") in gzip footer", len); return -1; } else { memcpy(ctx->footer + ctx->footcount, buf, len); ctx->footcount += len; if (ctx->footcount == 8) { uLong crc = BUF2UINT(ctx->footer) & 0xFFFFFFFF; if (crc == ctx->checksum) { ctx->state = NE_Z_FINISHED; NE_DEBUG(NE_DBG_HTTP, "compress: End of response; checksum match.\n"); } else { NE_DEBUG(NE_DBG_HTTP, "compress: End of response; checksum mismatch: " "given %lu vs computed %lu\n", crc, ctx->checksum); ne_set_error(ctx->session, "Checksum invalid for compressed stream"); return -1; } } } return 0; } /* A zlib function failed with 'code'; set the session error string * appropriately. */ static void set_zlib_error(ne_decompress *ctx, const char *msg, int code) { if (ctx->zstr.msg) ne_set_error(ctx->session, _("%s: %s"), msg, ctx->zstr.msg); else { const char *err; switch (code) { case Z_STREAM_ERROR: err = "stream error"; break; case Z_DATA_ERROR: err = "data corrupt"; break; case Z_MEM_ERROR: err = "out of memory"; break; case Z_BUF_ERROR: err = "buffer error"; break; case Z_VERSION_ERROR: err = "library version mismatch"; break; default: err = "unknown error"; break; } ne_set_error(ctx->session, _("%s: %s (code %d)"), msg, err, code); } } /* Inflate response buffer 'buf' of length 'len'. */ static int do_inflate(ne_decompress *ctx, const char *buf, size_t len) { int ret; ctx->zstr.avail_in = len; ctx->zstr.next_in = (unsigned char *)buf; ctx->zstr.total_in = 0; do { ctx->zstr.avail_out = sizeof ctx->outbuf; ctx->zstr.next_out = (unsigned char *)ctx->outbuf; ctx->zstr.total_out = 0; ret = inflate(&ctx->zstr, Z_NO_FLUSH); NE_DEBUG(NE_DBG_HTTP, "compress: inflate %d, %ld bytes out, %d remaining\n", ret, ctx->zstr.total_out, ctx->zstr.avail_in); #if 0 NE_DEBUG(NE_DBG_HTTPBODY, "Inflated body block (%ld):\n[%.*s]\n", ctx->zstr.total_out, (int)ctx->zstr.total_out, ctx->outbuf); #endif /* update checksum. */ ctx->checksum = crc32(ctx->checksum, (unsigned char *)ctx->outbuf, ctx->zstr.total_out); /* pass on the inflated data, if any */ if (ctx->zstr.total_out > 0) { int rret = ctx->reader(ctx->userdata, ctx->outbuf, ctx->zstr.total_out); if (rret) return rret; } } while (ret == Z_OK && ctx->zstr.avail_in > 0); if (ret == Z_STREAM_END) { NE_DEBUG(NE_DBG_HTTP, "compress: end of data stream, %d bytes remain.\n", ctx->zstr.avail_in); /* process the footer. */ ctx->state = NE_Z_AFTER_DATA; return process_footer(ctx, ctx->zstr.next_in, ctx->zstr.avail_in); } else if (ret != Z_OK) { set_zlib_error(ctx, _("Could not inflate data"), ret); return NE_ERROR; } return 0; } /* Callback which is passed blocks of the response body. */ static int gz_reader(void *ud, const char *buf, size_t len) { ne_decompress *ctx = ud; const char *zbuf; size_t count; const char *hdr; if (len == 0) { /* End of response: */ switch (ctx->state) { case NE_Z_BEFORE_DATA: hdr = ne_get_response_header(ctx->request, "Content-Encoding"); if (hdr && strcasecmp(hdr, "gzip") == 0) { /* response was truncated: return error. */ break; } /* else, fall through */ case NE_Z_FINISHED: /* complete gzip response */ case NE_Z_PASSTHROUGH: /* complete uncompressed response */ return ctx->reader(ctx->userdata, buf, 0); default: /* invalid state: truncated response. */ break; } /* else: truncated response, fail. */ ne_set_error(ctx->session, "Compressed response was truncated"); return NE_ERROR; } switch (ctx->state) { case NE_Z_PASSTHROUGH: /* move along there. */ return ctx->reader(ctx->userdata, buf, len); case NE_Z_FINISHED: /* Could argue for tolerance, and ignoring trailing content; * but it could mean something more serious. */ if (len > 0) { ne_set_error(ctx->session, "Unexpected content received after compressed stream"); return NE_ERROR; } break; case NE_Z_BEFORE_DATA: /* work out whether this is a compressed response or not. */ hdr = ne_get_response_header(ctx->request, "Content-Encoding"); if (hdr && strcasecmp(hdr, "gzip") == 0) { int ret; NE_DEBUG(NE_DBG_HTTP, "compress: got gzipped stream.\n"); /* inflateInit2() works here where inflateInit() doesn't. */ ret = inflateInit2(&ctx->zstr, -MAX_WBITS); if (ret != Z_OK) { set_zlib_error(ctx, _("Could not initialize zlib"), ret); return -1; } ctx->zstrinit = 1; } else { /* No Content-Encoding header: pass it on. TODO: we could * hack it and register the real callback now. But that * would require add_resp_body_rdr to have defined * ordering semantics etc etc */ ctx->state = NE_Z_PASSTHROUGH; return ctx->reader(ctx->userdata, buf, len); } ctx->state = NE_Z_IN_HEADER; /* FALLTHROUGH */ case NE_Z_IN_HEADER: /* copy as many bytes as possible into the buffer. */ if (len + ctx->hdrcount > 10) { count = 10 - ctx->hdrcount; } else { count = len; } memcpy(ctx->header + ctx->hdrcount, buf, count); ctx->hdrcount += count; /* have we got the full header yet? */ if (ctx->hdrcount != 10) { return 0; } buf += count; len -= count; switch (parse_header(ctx)) { case HDR_EXTENDED: if (len == 0) return 0; break; case HDR_ERROR: return NE_ERROR; case HDR_DONE: if (len > 0) { return do_inflate(ctx, buf, len); } break; } /* FALLTHROUGH */ case NE_Z_POST_HEADER: /* eating the filename string. */ zbuf = memchr(buf, '\0', len); if (zbuf == NULL) { /* not found it yet. */ return 0; } NE_DEBUG(NE_DBG_HTTP, "compresss: skipped %" NE_FMT_SIZE_T " header bytes.\n", zbuf - buf); /* found end of string. */ len -= (1 + zbuf - buf); buf = zbuf + 1; ctx->state = NE_Z_INFLATING; if (len == 0) { /* end of string was at end of buffer. */ return 0; } /* FALLTHROUGH */ case NE_Z_INFLATING: return do_inflate(ctx, buf, len); case NE_Z_AFTER_DATA: return process_footer(ctx, (unsigned char *)buf, len); } return 0; } /* Prepare for a compressed response */ static void gz_pre_send(ne_request *r, void *ud, ne_buffer *req) { ne_decompress *ctx = ud; NE_DEBUG(NE_DBG_HTTP, "compress: Initialization.\n"); /* (Re-)Initialize the context */ ctx->state = NE_Z_BEFORE_DATA; if (ctx->zstrinit) inflateEnd(&ctx->zstr); ctx->zstrinit = 0; ctx->hdrcount = ctx->footcount = 0; ctx->checksum = crc32(0L, Z_NULL, 0); } void ne_decompress_destroy(ne_decompress *ctx) { if (ctx->zstrinit) /* inflateEnd only fails if it's passed NULL etc; ignore * return value. */ inflateEnd(&ctx->zstr); ne_free(ctx); } /* Wrapper for user-passed acceptor function. */ static int gz_acceptor(void *userdata, ne_request *req, const ne_status *st) { ne_decompress *ctx = userdata; return ctx->acceptor(ctx->userdata, req, st); } ne_decompress *ne_decompress_reader(ne_request *req, ne_accept_response acpt, ne_block_reader rdr, void *userdata) { ne_decompress *ctx = ne_calloc(sizeof *ctx); ne_add_request_header(req, "Accept-Encoding", "gzip"); ne_add_response_body_reader(req, gz_acceptor, gz_reader, ctx); ctx->reader = rdr; ctx->userdata = userdata; ctx->session = ne_get_session(req); ctx->request = req; ctx->acceptor = acpt; ne__reqhook_pre_send(req, gz_pre_send, ctx); return ctx; } #else /* !NE_HAVE_ZLIB */ /* Pass-through interface present to provide ABI compatibility. */ ne_decompress *ne_decompress_reader(ne_request *req, ne_accept_response acpt, ne_block_reader rdr, void *userdata) { ne_add_response_body_reader(req, acpt, rdr, userdata); /* an arbitrary return value: don't confuse them by returning NULL. */ return (ne_decompress *)req; } void ne_decompress_destroy(ne_decompress *dc) { } #endif /* NE_HAVE_ZLIB */ gnome-vfs-2.24.4/imported/neon/ne_defs.h0000644000175000001440000000265011334251016014756 00000000000000/* Standard definitions for neon headers Copyright (C) 2003-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #undef BEGIN_NEON_DECLS #undef END_NEON_DECLS #ifdef __cplusplus # define BEGIN_NEON_DECLS extern "C" { # define END_NEON_DECLS } #else # define BEGIN_NEON_DECLS /* empty */ # define END_NEON_DECLS /* empty */ #endif /* define ssize_t for Win32 */ #if defined(WIN32) && !defined(ssize_t) #define ssize_t int #endif #ifdef __GNUC__ #if __GNUC__ >= 3 #define ne_attribute_malloc __attribute__((malloc)) #else #define ne_attribute_malloc #endif #define ne_attribute(x) __attribute__(x) #else #define ne_attribute(x) #define ne_attribute_malloc #endif #ifndef NE_BUFSIZ #define NE_BUFSIZ 8192 #endif gnome-vfs-2.24.4/imported/neon/ne_xmlreq.c0000644000175000001440000000435011334251016015337 00000000000000/* XML/HTTP response handling Copyright (C) 2004-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #include "ne_xmlreq.h" #include "ne_i18n.h" /* Handle an XML response parse error, setting session error string * and closing the connection. */ static int parse_error(ne_session *sess, ne_xml_parser *parser) { ne_set_error(sess, _("Could not parse response: %s"), ne_xml_get_error(parser)); ne_close_connection(sess); return NE_ERROR; } int ne_xml_parse_response(ne_request *req, ne_xml_parser *parser) { char buf[8000]; ssize_t bytes; int ret = 0; while ((bytes = ne_read_response_block(req, buf, sizeof buf)) > 0) { ret = ne_xml_parse(parser, buf, bytes); if (ret) return parse_error(ne_get_session(req), parser); } if (bytes == 0) { /* Tell the parser that end of document was reached: */ if (ne_xml_parse(parser, NULL, 0) == 0) return NE_OK; else return parse_error(ne_get_session(req), parser); } else { return NE_ERROR; } } int ne_xml_dispatch_request(ne_request *req, ne_xml_parser *parser) { int ret; do { ret = ne_begin_request(req); if (ret) break; if (ne_get_status(req)->klass == 2) ret = ne_xml_parse_response(req, parser); else ret = ne_discard_response(req); if (ret == NE_OK) ret = ne_end_request(req); } while (ret == NE_RETRY); return ret; } gnome-vfs-2.24.4/imported/neon/ne_gnomevfs.h0000644000175000001440000000214611334251016015661 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-dns-sd.c - DNS-SD functions Copyright (C) 2004 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #ifndef NE_GNOMEVFS #define NE_GNOMEVFS G_BEGIN_DECLS GnomeVFSResult ne_gnomevfs_last_error (ne_request *req); G_END_DECLS #endif gnome-vfs-2.24.4/imported/neon/Makefile.am0000644000175000001440000000264011334251016015235 00000000000000NULL = if HAVE_SSL SSL_DEFINES = -DNE_HAVE_SSL else SSL_DEFINES = endif INCLUDES = \ -DNE_HAVE_DAV \ $(SSL_DEFINES) \ $(NEON_CFLAGS) \ $(LIBGNOMEVFS_CFLAGS) \ $(GSSAPI_CFLAGS) \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_srcdir)/libgnomevfs \ -I$(top_builddir)/libgnomevfs \ $(NULL) noinst_LTLIBRARIES = libneon.la NEON_INCLUDES = \ ne_207.h \ ne_acl.h \ ne_alloc.h \ ne_auth.h \ ne_basic.h \ ne_compress.h \ ne_dates.h \ ne_defs.h \ ne_i18n.h \ ne_locks.h \ ne_md5.h \ ne_private.h \ ne_props.h \ ne_redirect.h \ ne_request.h \ ne_session.h \ ne_socket.h \ ne_ssl.h \ ne_string.h \ ne_uri.h \ ne_utils.h \ ne_xml.h \ ne_xmlreq.h \ ne_gnomevfs.h \ $(NULL) NEON_BASE_SOURCES = ne_request.c ne_session.c \ ne_basic.c ne_string.c \ ne_uri.c ne_dates.c ne_alloc.c \ ne_md5.c ne_utils.c \ ne_auth.c \ ne_redirect.c \ ne_compress.c NEON_DAV_SOURCES = \ ne_207.c ne_xml.c \ ne_props.c ne_locks.c ne_xmlreq.c NEON_EXTRA_SOURCES = ne_acl.c ne_gnomevfs.c libneon_la_LIBADD = \ $(NEON_LIBS) $(NEON_LTLIBS) \ $(NULL) libneon_la_LDFLAGS = \ $(NEON_LINK_FLAGS) \ $(NULL) libneon_la_SOURCES = \ $(NEON_INCLUDES) \ $(NEON_BASE_SOURCES) \ $(NEON_SSL_SOURCES) \ $(NEON_DAV_SOURCES) \ $(NEON_EXTRA_SOURCES) \ $(NULL) gnome-vfs-2.24.4/imported/neon/ne_auth.h0000644000175000001440000000461511334251016015001 00000000000000/* HTTP authentication routines Copyright (C) 1999-2002, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_AUTH_H #define NE_AUTH_H #include "ne_session.h" /* for ne_session */ BEGIN_NEON_DECLS /* Size of username/password buffers passed to ne_auth_creds * callback. */ #define NE_ABUFSIZ (256) /* The callback used to request the username and password in the given * realm. The username and password must be copied into the buffers * which are both of size NE_ABUFSIZ. The 'attempt' parameter is zero * on the first call to the callback, and increases by one each time * an attempt to authenticate fails. * * The callback must return zero to indicate that authentication * should be attempted with the username/password, or non-zero to * cancel the request. (if non-zero, username and password are * ignored.) */ typedef int (*ne_auth_creds)(void *userdata, const char *realm, int attempt, char *username, char *password); /* TOP TIP: if you just wish to try authenticating once (even if the * user gets the username/password wrong), have your implementation of * the callback return the 'attempt' value. */ /* Set callbacks to provide credentials for server and proxy * authentication. userdata is passed as the first argument to the * callback. The callback is called *indefinitely* until either it * returns non-zero, or authentication is successful. */ void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata); void ne_set_proxy_auth(ne_session *sess, ne_auth_creds creds, void *userdata); /* Clear any stored authentication details for the given session. */ void ne_forget_auth(ne_session *sess); END_NEON_DECLS #endif /* NE_AUTH_H */ gnome-vfs-2.24.4/imported/neon/ne_alloc.c0000644000175000001440000001060011334251016015114 00000000000000/* Replacement memory allocation handling etc. Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #include #include "ne_alloc.h" static ne_oom_callback_fn oom; void ne_oom_callback(ne_oom_callback_fn callback) { oom = callback; } #ifndef NEON_MEMLEAK #define DO_MALLOC(ptr, len) do { \ ptr = malloc((len)); \ if (!ptr) { \ if (oom != NULL) \ oom(); \ abort(); \ } \ } while(0); void *ne_malloc(size_t len) { void *ptr; DO_MALLOC(ptr, len); return ptr; } void *ne_calloc(size_t len) { void *ptr; DO_MALLOC(ptr, len); return memset(ptr, 0, len); } void *ne_realloc(void *ptr, size_t len) { void *ret = realloc(ptr, len); if (!ret) { if (oom) oom(); abort(); } return ret; } char *ne_strdup(const char *s) { char *ret; DO_MALLOC(ret, strlen(s) + 1); return strcpy(ret, s); } char *ne_strndup(const char *s, size_t n) { char *new; DO_MALLOC(new, n+1); new[n] = '\0'; memcpy(new, s, n); return new; } #else /* NEON_MEMLEAK */ #include /* Memory-leak detection implementation: ne_malloc and friends are * #defined to ne_malloc_ml etc by memleak.h, which is conditionally * included by config.h. */ /* memory allocated be ne_*alloc, but not freed. */ size_t ne_alloc_used = 0; static struct block { void *ptr; size_t len; const char *file; int line; struct block *next; } *blocks = NULL; void ne_alloc_dump(FILE *f) { struct block *b; for (b = blocks; b != NULL; b = b->next) fprintf(f, "%" NE_FMT_SIZE_T "b@%s:%d%s", b->len, b->file, b->line, b->next?", ":""); } static void *tracking_malloc(size_t len, const char *file, int line) { void *ptr = malloc((len)); struct block *block; if (!ptr) { if (oom) oom(); abort(); } block = malloc(sizeof *block); if (block != NULL) { block->ptr = ptr; block->len = len; block->file = file; block->line = line; block->next = blocks; blocks = block; ne_alloc_used += len; } return ptr; } void *ne_malloc_ml(size_t size, const char *file, int line) { return tracking_malloc(size, file, line); } void *ne_calloc_ml(size_t size, const char *file, int line) { return memset(tracking_malloc(size, file, line), 0, size); } void *ne_realloc_ml(void *ptr, size_t s, const char *file, int line) { void *ret; struct block *b; if (ptr == NULL) return tracking_malloc(s, file, line); ret = realloc(ptr, s); if (!ret) { if (oom) oom(); abort(); } for (b = blocks; b != NULL; b = b->next) { if (b->ptr == ptr) { ne_alloc_used += s - b->len; b->ptr = ret; b->len = s; break; } } assert(b != NULL); return ret; } char *ne_strdup_ml(const char *s, const char *file, int line) { return strcpy(tracking_malloc(strlen(s) + 1, file, line), s); } char *ne_strndup_ml(const char *s, size_t n, const char *file, int line) { char *ret = tracking_malloc(n + 1, file, line); ret[n] = '\0'; return memcpy(ret, s, n); } void ne_free_ml(void *ptr) { struct block *b, *last = NULL; for (b = blocks; b != NULL; last = b, b = b->next) { if (b->ptr == ptr) { ne_alloc_used -= b->len; if (last) last->next = b->next; else blocks = b->next; free(b); break; } } free(ptr); } #endif /* NEON_MEMLEAK */ gnome-vfs-2.24.4/imported/neon/Makefile.in0000644000175000001440000005133611450333332015255 00000000000000# 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@ subdir = imported/neon DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ COPYING.LIB ChangeLog 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 = LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libneon_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am__objects_1 = am__objects_2 = $(am__objects_1) am__objects_3 = ne_request.lo ne_session.lo ne_basic.lo ne_string.lo \ ne_uri.lo ne_dates.lo ne_alloc.lo ne_md5.lo ne_utils.lo \ ne_auth.lo ne_redirect.lo ne_compress.lo am__objects_4 = ne_207.lo ne_xml.lo ne_props.lo ne_locks.lo \ ne_xmlreq.lo am__objects_5 = ne_acl.lo ne_gnomevfs.lo am_libneon_la_OBJECTS = $(am__objects_2) $(am__objects_3) \ $(am__objects_4) $(am__objects_5) $(am__objects_1) libneon_la_OBJECTS = $(am_libneon_la_OBJECTS) libneon_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libneon_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libneon_la_SOURCES) DIST_SOURCES = $(libneon_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = @HAVE_SSL_FALSE@SSL_DEFINES = @HAVE_SSL_TRUE@SSL_DEFINES = -DNE_HAVE_SSL INCLUDES = \ -DNE_HAVE_DAV \ $(SSL_DEFINES) \ $(NEON_CFLAGS) \ $(LIBGNOMEVFS_CFLAGS) \ $(GSSAPI_CFLAGS) \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_srcdir)/libgnomevfs \ -I$(top_builddir)/libgnomevfs \ $(NULL) noinst_LTLIBRARIES = libneon.la NEON_INCLUDES = \ ne_207.h \ ne_acl.h \ ne_alloc.h \ ne_auth.h \ ne_basic.h \ ne_compress.h \ ne_dates.h \ ne_defs.h \ ne_i18n.h \ ne_locks.h \ ne_md5.h \ ne_private.h \ ne_props.h \ ne_redirect.h \ ne_request.h \ ne_session.h \ ne_socket.h \ ne_ssl.h \ ne_string.h \ ne_uri.h \ ne_utils.h \ ne_xml.h \ ne_xmlreq.h \ ne_gnomevfs.h \ $(NULL) NEON_BASE_SOURCES = ne_request.c ne_session.c \ ne_basic.c ne_string.c \ ne_uri.c ne_dates.c ne_alloc.c \ ne_md5.c ne_utils.c \ ne_auth.c \ ne_redirect.c \ ne_compress.c NEON_DAV_SOURCES = \ ne_207.c ne_xml.c \ ne_props.c ne_locks.c ne_xmlreq.c NEON_EXTRA_SOURCES = ne_acl.c ne_gnomevfs.c libneon_la_LIBADD = \ $(NEON_LIBS) $(NEON_LTLIBS) \ $(NULL) libneon_la_LDFLAGS = \ $(NEON_LINK_FLAGS) \ $(NULL) libneon_la_SOURCES = \ $(NEON_INCLUDES) \ $(NEON_BASE_SOURCES) \ $(NEON_SSL_SOURCES) \ $(NEON_DAV_SOURCES) \ $(NEON_EXTRA_SOURCES) \ $(NULL) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(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 imported/neon/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu imported/neon/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): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_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 libneon.la: $(libneon_la_OBJECTS) $(libneon_la_DEPENDENCIES) $(libneon_la_LINK) $(libneon_la_OBJECTS) $(libneon_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_207.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_acl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_alloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_auth.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_basic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_compress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_dates.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_gnomevfs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_locks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_md5.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_props.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_redirect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_request.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_session.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_string.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_uri.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_xml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ne_xmlreq.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo 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 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) 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 clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES 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-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 # 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: gnome-vfs-2.24.4/imported/neon/ne_dates.c0000644000175000001440000001547511334251016015141 00000000000000/* Date manipulation routines Copyright (C) 1999-2005, Joe Orton Copyright (C) 2004 Jiang Lei 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #include #include #ifdef HAVE_STDLIB_H #include #endif #include #ifdef HAVE_STRING_H #include #endif #ifdef WIN32 #include /* for TIME_ZONE_INFORMATION */ #endif #include "ne_alloc.h" #include "ne_dates.h" #include "ne_string.h" /* Generic date manipulation routines. */ /* ISO8601: 2001-01-01T12:30:00Z */ #define ISO8601_FORMAT_Z "%04d-%02d-%02dT%02d:%02d:%lfZ" #define ISO8601_FORMAT_M "%04d-%02d-%02dT%02d:%02d:%lf-%02d:%02d" #define ISO8601_FORMAT_P "%04d-%02d-%02dT%02d:%02d:%lf+%02d:%02d" /* RFC1123: Sun, 06 Nov 1994 08:49:37 GMT */ #define RFC1123_FORMAT "%3s, %02d %3s %4d %02d:%02d:%02d GMT" /* RFC850: Sunday, 06-Nov-94 08:49:37 GMT */ #define RFC1036_FORMAT "%10s %2d-%3s-%2d %2d:%2d:%2d GMT" /* asctime: Wed Jun 30 21:49:08 1993 */ #define ASCTIME_FORMAT "%3s %3s %2d %2d:%2d:%2d %4d" static const char *const rfc1123_weekdays[7] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; static const char *const short_months[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; #if defined(HAVE_STRUCT_TM_TM_GMTOFF) #define GMTOFF(t) ((t).tm_gmtoff) #elif defined(HAVE_STRUCT_TM___TM_GMTOFF) #define GMTOFF(t) ((t).__tm_gmtoff) #elif defined(WIN32) #define GMTOFF(t) (gmt_to_local_win32()) #else /* FIXME: work out the offset anyway. */ #define GMTOFF(t) (0) #endif #ifdef WIN32 time_t gmt_to_local_win32(void) { TIME_ZONE_INFORMATION tzinfo; DWORD dwStandardDaylight; long bias; dwStandardDaylight = GetTimeZoneInformation(&tzinfo); bias = tzinfo.Bias; if (dwStandardDaylight == TIME_ZONE_ID_STANDARD) bias += tzinfo.StandardBias; if (dwStandardDaylight == TIME_ZONE_ID_DAYLIGHT) bias += tzinfo.DaylightBias; return (- bias * 60); } #endif /* Returns the time/date GMT, in RFC1123-type format: eg * Sun, 06 Nov 1994 08:49:37 GMT. */ char *ne_rfc1123_date(time_t anytime) { struct tm *gmt; char *ret; gmt = gmtime(&anytime); if (gmt == NULL) return NULL; ret = ne_malloc(29 + 1); /* dates are 29 chars long */ /* it goes: Sun, 06 Nov 1994 08:49:37 GMT */ ne_snprintf(ret, 30, RFC1123_FORMAT, rfc1123_weekdays[gmt->tm_wday], gmt->tm_mday, short_months[gmt->tm_mon], 1900 + gmt->tm_year, gmt->tm_hour, gmt->tm_min, gmt->tm_sec); return ret; } /* Takes an ISO-8601-formatted date string and returns the time_t. * Returns (time_t)-1 if the parse fails. */ time_t ne_iso8601_parse(const char *date) { struct tm gmt = {0}; int off_hour, off_min; double sec; off_t fix; int n; /* it goes: ISO8601: 2001-01-01T12:30:00+03:30 */ if ((n = sscanf(date, ISO8601_FORMAT_P, &gmt.tm_year, &gmt.tm_mon, &gmt.tm_mday, &gmt.tm_hour, &gmt.tm_min, &sec, &off_hour, &off_min)) == 8) { gmt.tm_sec = (int)sec; fix = - off_hour * 3600 - off_min * 60; } /* it goes: ISO8601: 2001-01-01T12:30:00-03:30 */ else if ((n = sscanf(date, ISO8601_FORMAT_M, &gmt.tm_year, &gmt.tm_mon, &gmt.tm_mday, &gmt.tm_hour, &gmt.tm_min, &sec, &off_hour, &off_min)) == 8) { gmt.tm_sec = (int)sec; fix = off_hour * 3600 + off_min * 60; } /* it goes: ISO8601: 2001-01-01T12:30:00Z */ else if ((n = sscanf(date, ISO8601_FORMAT_Z, &gmt.tm_year, &gmt.tm_mon, &gmt.tm_mday, &gmt.tm_hour, &gmt.tm_min, &sec)) == 6) { gmt.tm_sec = (int)sec; fix = 0; } else { return (time_t)-1; } gmt.tm_year -= 1900; gmt.tm_isdst = -1; gmt.tm_mon--; return mktime(&gmt) + fix + GMTOFF(gmt); } /* Takes an RFC1123-formatted date string and returns the time_t. * Returns (time_t)-1 if the parse fails. */ time_t ne_rfc1123_parse(const char *date) { struct tm gmt = {0}; char wkday[4], mon[4]; int n; /* it goes: Sun, 06 Nov 1994 08:49:37 GMT */ n = sscanf(date, RFC1123_FORMAT, wkday, &gmt.tm_mday, mon, &gmt.tm_year, &gmt.tm_hour, &gmt.tm_min, &gmt.tm_sec); /* Is it portable to check n==7 here? */ gmt.tm_year -= 1900; for (n=0; n<12; n++) if (strcmp(mon, short_months[n]) == 0) break; /* tm_mon comes out as 12 if the month is corrupt, which is desired, * since the mktime will then fail */ gmt.tm_mon = n; gmt.tm_isdst = -1; return mktime(&gmt) + GMTOFF(gmt); } /* Takes a string containing a RFC1036-style date and returns the time_t */ time_t ne_rfc1036_parse(const char *date) { struct tm gmt = {0}; int n; char wkday[11], mon[4]; /* RFC850/1036 style dates: Sunday, 06-Nov-94 08:49:37 GMT */ n = sscanf(date, RFC1036_FORMAT, wkday, &gmt.tm_mday, mon, &gmt.tm_year, &gmt.tm_hour, &gmt.tm_min, &gmt.tm_sec); if (n != 7) { return (time_t)-1; } /* portable to check n here? */ for (n=0; n<12; n++) if (strcmp(mon, short_months[n]) == 0) break; /* tm_mon comes out as 12 if the month is corrupt, which is desired, * since the mktime will then fail */ /* Defeat Y2K bug. */ if (gmt.tm_year < 50) gmt.tm_year += 100; gmt.tm_mon = n; gmt.tm_isdst = -1; return mktime(&gmt) + GMTOFF(gmt); } /* (as)ctime dates are like: * Wed Jun 30 21:49:08 1993 */ time_t ne_asctime_parse(const char *date) { struct tm gmt = {0}; int n; char wkday[4], mon[4]; n = sscanf(date, ASCTIME_FORMAT, wkday, mon, &gmt.tm_mday, &gmt.tm_hour, &gmt.tm_min, &gmt.tm_sec, &gmt.tm_year); /* portable to check n here? */ for (n=0; n<12; n++) if (strcmp(mon, short_months[n]) == 0) break; /* tm_mon comes out as 12 if the month is corrupt, which is desired, * since the mktime will then fail */ gmt.tm_mon = n; gmt.tm_isdst = -1; return mktime(&gmt) + GMTOFF(gmt); } /* HTTP-date parser */ time_t ne_httpdate_parse(const char *date) { time_t tmp; tmp = ne_rfc1123_parse(date); if (tmp == -1) { tmp = ne_rfc1036_parse(date); if (tmp == -1) tmp = ne_asctime_parse(date); } return tmp; } gnome-vfs-2.24.4/imported/neon/ne_locks.c0000644000175000001440000005424211334251016015147 00000000000000/* WebDAV Class 2 locking operations Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_LIMITS_H #include #endif #include /* for isdigit() */ #include "ne_alloc.h" #include "ne_request.h" #include "ne_xml.h" #include "ne_locks.h" #include "ne_uri.h" #include "ne_basic.h" #include "ne_props.h" #include "ne_207.h" #include "ne_i18n.h" #include "ne_xmlreq.h" #define HOOK_ID "http://webdav.org/neon/hooks/webdav-locking" #define EOL "\r\n" /* A list of lock objects. */ struct lock_list { struct ne_lock *lock; struct lock_list *next, *prev; }; struct ne_lock_store_s { struct lock_list *locks; struct lock_list *cursor; /* current position in 'locks' */ }; struct lh_req_cookie { const ne_lock_store *store; struct lock_list *submit; }; /* Context for PROPFIND/lockdiscovery callbacks */ struct discover_ctx { ne_session *session; ne_lock_result results; void *userdata; ne_buffer *cdata; }; /* Context for handling LOCK response */ struct lock_ctx { struct ne_lock active; /* activelock */ ne_request *req; /* the request in question */ char *token; /* the token we're after. */ int found; ne_buffer *cdata; }; /* use the "application" state space. */ #define ELM_LOCK_FIRST (NE_PROPS_STATE_TOP + 66) #define ELM_lockdiscovery (ELM_LOCK_FIRST) #define ELM_activelock (ELM_LOCK_FIRST + 1) #define ELM_lockscope (ELM_LOCK_FIRST + 2) #define ELM_locktype (ELM_LOCK_FIRST + 3) #define ELM_depth (ELM_LOCK_FIRST + 4) #define ELM_owner (ELM_LOCK_FIRST + 5) #define ELM_timeout (ELM_LOCK_FIRST + 6) #define ELM_locktoken (ELM_LOCK_FIRST + 7) #define ELM_lockinfo (ELM_LOCK_FIRST + 8) #define ELM_write (ELM_LOCK_FIRST + 9) #define ELM_exclusive (ELM_LOCK_FIRST + 10) #define ELM_shared (ELM_LOCK_FIRST + 11) #define ELM_href (ELM_LOCK_FIRST + 12) #define ELM_prop (NE_207_STATE_PROP) static const struct ne_xml_idmap element_map[] = { #define ELM(x) { "DAV:", #x, ELM_ ## x } ELM(lockdiscovery), ELM(activelock), ELM(prop), ELM(lockscope), ELM(locktype), ELM(depth), ELM(owner), ELM(timeout), ELM(locktoken), ELM(lockinfo), ELM(lockscope), ELM(locktype), ELM(write), ELM(exclusive), ELM(shared), ELM(href) /* no "lockentry" */ #undef ELM }; static const ne_propname lock_props[] = { { "DAV:", "lockdiscovery" }, { NULL } }; /* this simply registers the accessor for the function. */ static void lk_create(ne_request *req, void *session, const char *method, const char *uri) { struct lh_req_cookie *lrc = ne_malloc(sizeof *lrc); lrc->store = session; lrc->submit = NULL; ne_set_request_private(req, HOOK_ID, lrc); } static void lk_pre_send(ne_request *r, void *userdata, ne_buffer *req) { struct lh_req_cookie *lrc = ne_get_request_private(r, HOOK_ID); if (lrc->submit != NULL) { struct lock_list *item; /* Add in the If header */ ne_buffer_zappend(req, "If:"); for (item = lrc->submit; item != NULL; item = item->next) { char *uri = ne_uri_unparse(&item->lock->uri); ne_buffer_concat(req, " <", uri, "> (<", item->lock->token, ">)", NULL); ne_free(uri); } ne_buffer_zappend(req, EOL); } } /* Insert 'lock' into lock list *list. */ static void insert_lock(struct lock_list **list, struct ne_lock *lock) { struct lock_list *item = ne_malloc(sizeof *item); if (*list != NULL) { (*list)->prev = item; } item->prev = NULL; item->next = *list; item->lock = lock; *list = item; } static void free_list(struct lock_list *list, int destroy) { struct lock_list *next; while (list != NULL) { next = list->next; if (destroy) ne_lock_destroy(list->lock); ne_free(list); list = next; } } static void lk_destroy(ne_request *req, void *userdata) { struct lh_req_cookie *lrc = ne_get_request_private(req, HOOK_ID); free_list(lrc->submit, 0); ne_free(lrc); } void ne_lockstore_destroy(ne_lock_store *store) { free_list(store->locks, 1); ne_free(store); } ne_lock_store *ne_lockstore_create(void) { return ne_calloc(sizeof(ne_lock_store)); } #define CURSOR_RET(s) ((s)->cursor?(s)->cursor->lock:NULL) struct ne_lock *ne_lockstore_first(ne_lock_store *store) { store->cursor = store->locks; return CURSOR_RET(store); } struct ne_lock *ne_lockstore_next(ne_lock_store *store) { store->cursor = store->cursor->next; return CURSOR_RET(store); } void ne_lockstore_register(ne_lock_store *store, ne_session *sess) { /* Register the hooks */ ne_hook_create_request(sess, lk_create, store); ne_hook_pre_send(sess, lk_pre_send, store); ne_hook_destroy_request(sess, lk_destroy, store); } /* Submit the given lock for the given URI */ static void submit_lock(struct lh_req_cookie *lrc, struct ne_lock *lock) { struct lock_list *item; /* Check for dups */ for (item = lrc->submit; item != NULL; item = item->next) { if (strcasecmp(item->lock->token, lock->token) == 0) return; } insert_lock(&lrc->submit, lock); } struct ne_lock *ne_lockstore_findbyuri(ne_lock_store *store, const ne_uri *uri) { struct lock_list *cur; for (cur = store->locks; cur != NULL; cur = cur->next) { if (ne_uri_cmp(&cur->lock->uri, uri) == 0) { return cur->lock; } } return NULL; } void ne_lock_using_parent(ne_request *req, const char *path) { struct lh_req_cookie *lrc = ne_get_request_private(req, HOOK_ID); ne_uri u; struct lock_list *item; char *parent; if (lrc == NULL) return; parent = ne_path_parent(path); if (parent == NULL) return; u.authinfo = NULL; ne_fill_server_uri(ne_get_session(req), &u); for (item = lrc->store->locks; item != NULL; item = item->next) { /* Only care about locks which are on this server. */ u.path = item->lock->uri.path; if (ne_uri_cmp(&u, &item->lock->uri)) continue; /* This lock is needed if it is an infinite depth lock which * covers the parent, or a lock on the parent itself. */ if ((item->lock->depth == NE_DEPTH_INFINITE && ne_path_childof(item->lock->uri.path, parent)) || ne_path_compare(item->lock->uri.path, parent) == 0) { NE_DEBUG(NE_DBG_LOCKS, "Locked parent, %s on %s\n", item->lock->token, item->lock->uri.path); submit_lock(lrc, item->lock); } } u.path = parent; /* handy: makes u.path valid and ne_free(parent). */ ne_uri_free(&u); } void ne_lock_using_resource(ne_request *req, const char *uri, int depth) { struct lh_req_cookie *lrc = ne_get_request_private(req, HOOK_ID); struct lock_list *item; int match; if (lrc == NULL) return; /* Iterate over the list of stored locks to see if any of them * apply to this resource */ for (item = lrc->store->locks; item != NULL; item = item->next) { match = 0; if (depth == NE_DEPTH_INFINITE && ne_path_childof(uri, item->lock->uri.path)) { /* Case 1: this is a depth-infinity request which will * modify a lock somewhere inside the collection. */ NE_DEBUG(NE_DBG_LOCKS, "Has child: %s\n", item->lock->token); match = 1; } else if (ne_path_compare(uri, item->lock->uri.path) == 0) { /* Case 2: this request is directly on a locked resource */ NE_DEBUG(NE_DBG_LOCKS, "Has direct lock: %s\n", item->lock->token); match = 1; } else if (item->lock->depth == NE_DEPTH_INFINITE && ne_path_childof(item->lock->uri.path, uri)) { /* Case 3: there is a higher-up infinite-depth lock which * covers the resource that this request will modify. */ NE_DEBUG(NE_DBG_LOCKS, "Is child of: %s\n", item->lock->token); match = 1; } if (match) { submit_lock(lrc, item->lock); } } } void ne_lockstore_add(ne_lock_store *store, struct ne_lock *lock) { insert_lock(&store->locks, lock); } void ne_lockstore_remove(ne_lock_store *store, struct ne_lock *lock) { struct lock_list *item; /* Find the lock */ for (item = store->locks; item != NULL; item = item->next) if (item->lock == lock) break; if (item->prev != NULL) { item->prev->next = item->next; } else { store->locks = item->next; } if (item->next != NULL) { item->next->prev = item->prev; } ne_free(item); } struct ne_lock *ne_lock_copy(const struct ne_lock *lock) { struct ne_lock *ret = ne_calloc(sizeof *ret); ret->uri.path = ne_strdup(lock->uri.path); ret->uri.host = ne_strdup(lock->uri.host); ret->uri.scheme = ne_strdup(lock->uri.scheme); ret->uri.port = lock->uri.port; ret->token = ne_strdup(lock->token); ret->depth = lock->depth; ret->type = lock->type; ret->scope = lock->scope; if (lock->owner) ret->owner = ne_strdup(lock->owner); ret->timeout = lock->timeout; return ret; } struct ne_lock *ne_lock_create(void) { struct ne_lock *lock = ne_calloc(sizeof *lock); lock->depth = NE_DEPTH_ZERO; lock->type = ne_locktype_write; lock->scope = ne_lockscope_exclusive; lock->timeout = NE_TIMEOUT_INVALID; return lock; } void ne_lock_free(struct ne_lock *lock) { ne_uri_free(&lock->uri); if (lock->owner) { ne_free(lock->owner); lock->owner = NULL; } if (lock->token) { ne_free(lock->token); lock->token = NULL; } } void ne_lock_destroy(struct ne_lock *lock) { ne_lock_free(lock); ne_free(lock); } int ne_unlock(ne_session *sess, const struct ne_lock *lock) { ne_request *req = ne_request_create(sess, "UNLOCK", lock->uri.path); int ret; ne_print_request_header(req, "Lock-Token", "<%s>", lock->token); /* UNLOCK of a lock-null resource removes the resource from the * parent collection; so an UNLOCK may modify the parent * collection. (somewhat counter-intuitive, and not easily derived * from 2518.) */ ne_lock_using_parent(req, lock->uri.path); ret = ne_request_dispatch(req); if (ret == NE_OK && ne_get_status(req)->klass != 2) { ret = NE_ERROR; } ne_request_destroy(req); return ret; } static int parse_depth(const char *depth) { if (strcasecmp(depth, "infinity") == 0) { return NE_DEPTH_INFINITE; } else if (isdigit((unsigned char) depth[0])) { return atoi(depth); } else { return -1; } } static long parse_timeout(const char *timeout) { if (strcasecmp(timeout, "infinite") == 0) { return NE_TIMEOUT_INFINITE; } else if (strncasecmp(timeout, "Second-", 7) == 0) { long to = strtol(timeout+7, NULL, 10); if (to == LONG_MIN || to == LONG_MAX) return NE_TIMEOUT_INVALID; return to; } else { return NE_TIMEOUT_INVALID; } } static void discover_results(void *userdata, const char *href, const ne_prop_result_set *set) { struct discover_ctx *ctx = userdata; struct ne_lock *lock = ne_propset_private(set); const ne_status *status = ne_propset_status(set, &lock_props[0]); /* Require at least that the lock has a token. */ if (lock->token) { if (status && status->klass != 2) { ctx->results(ctx->userdata, NULL, lock->uri.path, status); } else { ctx->results(ctx->userdata, lock, lock->uri.path, NULL); } } else if (status) { ctx->results(ctx->userdata, NULL, href, status); } ne_lock_destroy(lock); NE_DEBUG(NE_DBG_LOCKS, "End of response for %s\n", href); } static int end_element_common(struct ne_lock *l, int state, const char *cdata) { switch (state) { case ELM_write: l->type = ne_locktype_write; break; case ELM_exclusive: l->scope = ne_lockscope_exclusive; break; case ELM_shared: l->scope = ne_lockscope_shared; break; case ELM_depth: NE_DEBUG(NE_DBG_LOCKS, "Got depth: %s\n", cdata); l->depth = parse_depth(cdata); if (l->depth == -1) { return -1; } break; case ELM_timeout: NE_DEBUG(NE_DBG_LOCKS, "Got timeout: %s\n", cdata); l->timeout = parse_timeout(cdata); if (l->timeout == NE_TIMEOUT_INVALID) { return -1; } break; case ELM_owner: l->owner = strdup(cdata); break; case ELM_href: l->token = strdup(cdata); break; } return 0; } /* End-element handler for lock discovery PROPFIND response */ static int end_element_ldisc(void *userdata, int state, const char *nspace, const char *name) { struct ne_lock *lock = ne_propfind_current_private(userdata); struct discover_ctx *ctx = userdata; return end_element_common(lock, state, ctx->cdata->data); } static inline int can_accept(int parent, int id) { return (parent == NE_XML_STATEROOT && id == ELM_prop) || (parent == ELM_prop && id == ELM_lockdiscovery) || (parent == ELM_lockdiscovery && id == ELM_activelock) || (parent == ELM_activelock && (id == ELM_lockscope || id == ELM_locktype || id == ELM_depth || id == ELM_owner || id == ELM_timeout || id == ELM_locktoken)) || (parent == ELM_lockscope && (id == ELM_exclusive || id == ELM_shared)) || (parent == ELM_locktype && id == ELM_write) || (parent == ELM_locktoken && id == ELM_href); } static int ld_startelm(void *userdata, int parent, const char *nspace, const char *name, const char **atts) { struct discover_ctx *ctx = userdata; int id = ne_xml_mapid(element_map, NE_XML_MAPLEN(element_map), nspace, name); ne_buffer_clear(ctx->cdata); if (can_accept(parent, id)) return id; else return NE_XML_DECLINE; } #define MAX_CDATA (256) static int lk_cdata(void *userdata, int state, const char *cdata, size_t len) { struct lock_ctx *ctx = userdata; if (ctx->cdata->used + len < MAX_CDATA) ne_buffer_append(ctx->cdata, cdata, len); return 0; } static int ld_cdata(void *userdata, int state, const char *cdata, size_t len) { struct discover_ctx *ctx = userdata; if (ctx->cdata->used + len < MAX_CDATA) ne_buffer_append(ctx->cdata, cdata, len); return 0; } static int lk_startelm(void *userdata, int parent, const char *nspace, const char *name, const char **atts) { struct lock_ctx *ctx = userdata; int id; id = ne_xml_mapid(element_map, NE_XML_MAPLEN(element_map), nspace, name); NE_DEBUG(NE_DBG_LOCKS, "lk_startelm: %s => %d\n", name, id); if (id == 0) return NE_XML_DECLINE; if (parent == 0 && ctx->token == NULL) { const char *token = ne_get_response_header(ctx->req, "Lock-Token"); /* at the root element; retrieve the Lock-Token header, * and bail if it wasn't given. */ if (token == NULL) { ne_set_error(ne_get_session(ctx->req), "%s", _("LOCK response missing Lock-Token header")); return NE_XML_ABORT; } if (token[0] == '<') token++; ctx->token = ne_strdup(token); ne_shave(ctx->token, ">"); NE_DEBUG(NE_DBG_LOCKS, "lk_startelm: Finding token %s\n", ctx->token); } /* TODO: only accept 'prop' as root for LOCK response */ if (!can_accept(parent, id)) return NE_XML_DECLINE; if (id == ELM_activelock && !ctx->found) { /* a new activelock */ ne_lock_free(&ctx->active); memset(&ctx->active, 0, sizeof ctx->active); ctx->active.timeout = NE_TIMEOUT_INVALID; } ne_buffer_clear(ctx->cdata); return id; } /* End-element handler for LOCK response */ static int lk_endelm(void *userdata, int state, const char *nspace, const char *name) { struct lock_ctx *ctx = userdata; if (ctx->found) return 0; if (end_element_common(&ctx->active, state, ctx->cdata->data)) return -1; if (state == ELM_activelock) { if (ctx->active.token && strcmp(ctx->active.token, ctx->token) == 0) { ctx->found = 1; } } return 0; } static void *ld_create(void *userdata, const char *href) { struct discover_ctx *ctx = userdata; struct ne_lock *lk = ne_lock_create(); if (ne_uri_parse(href, &lk->uri) != 0) { ne_lock_destroy(lk); return NULL; } if (!lk->uri.host) ne_fill_server_uri(ctx->session, &lk->uri); return lk; } /* Discover all locks on URI */ int ne_lock_discover(ne_session *sess, const char *uri, ne_lock_result callback, void *userdata) { ne_propfind_handler *handler; struct discover_ctx ctx = {0}; int ret; ctx.results = callback; ctx.userdata = userdata; ctx.session = sess; ctx.cdata = ne_buffer_create(); handler = ne_propfind_create(sess, uri, NE_DEPTH_ZERO); ne_propfind_set_private(handler, ld_create, &ctx); ne_xml_push_handler(ne_propfind_get_parser(handler), ld_startelm, ld_cdata, end_element_ldisc, handler); ret = ne_propfind_named(handler, lock_props, discover_results, &ctx); ne_buffer_destroy(ctx.cdata); ne_propfind_destroy(handler); return ret; } static void add_timeout_header(ne_request *req, long timeout) { if (timeout == NE_TIMEOUT_INFINITE) { ne_add_request_header(req, "Timeout", "Infinite"); } else if (timeout != NE_TIMEOUT_INVALID && timeout > 0) { ne_print_request_header(req, "Timeout", "Second-%ld", timeout); } /* just ignore it if timeout == 0 or invalid. */ } int ne_lock(ne_session *sess, struct ne_lock *lock) { ne_request *req = ne_request_create(sess, "LOCK", lock->uri.path); ne_buffer *body = ne_buffer_create(); ne_xml_parser *parser = ne_xml_create(); int ret, parse_failed; struct lock_ctx ctx; memset(&ctx, 0, sizeof ctx); ctx.cdata = ne_buffer_create(); ctx.req = req; ne_xml_push_handler(parser, lk_startelm, lk_cdata, lk_endelm, &ctx); /* Create the body */ ne_buffer_concat(body, "" EOL "" EOL " ", lock->scope==ne_lockscope_exclusive? "":"", "" EOL "", NULL); if (lock->owner) { ne_buffer_concat(body, "", lock->owner, "" EOL, NULL); } ne_buffer_zappend(body, "" EOL); ne_set_request_body_buffer(req, body->data, ne_buffer_size(body)); ne_add_request_header(req, "Content-Type", NE_XML_MEDIA_TYPE); ne_add_depth_header(req, lock->depth); add_timeout_header(req, lock->timeout); /* TODO: * By 2518, we need this only if we are creating a lock-null resource. * Since we don't KNOW whether the lock we're given is a lock-null * or not, we cover our bases. */ ne_lock_using_parent(req, lock->uri.path); /* This one is clearer from 2518 sec 8.10.4. */ ne_lock_using_resource(req, lock->uri.path, lock->depth); ret = ne_xml_dispatch_request(req, parser); ne_buffer_destroy(body); ne_buffer_destroy(ctx.cdata); parse_failed = ne_xml_failed(parser); if (ret == NE_OK && ne_get_status(req)->klass == 2) { if (ctx.token == NULL) { ret = NE_ERROR; ne_set_error(sess, _("No Lock-Token header given")); } else if (parse_failed) { ret = NE_ERROR; ne_set_error(sess, "%s", ne_xml_get_error(parser)); } else if (ne_get_status(req)->code == 207) { ret = NE_ERROR; /* TODO: set the error string appropriately */ } else if (ctx.found) { /* it worked: copy over real lock details if given. */ if (lock->token) ne_free(lock->token); lock->token = ctx.token; ctx.token = NULL; if (ctx.active.timeout != NE_TIMEOUT_INVALID) lock->timeout = ctx.active.timeout; lock->scope = ctx.active.scope; lock->type = ctx.active.type; if (ctx.active.depth >= 0) lock->depth = ctx.active.depth; if (ctx.active.owner) { if (lock->owner) ne_free(lock->owner); lock->owner = ctx.active.owner; ctx.active.owner = NULL; } } else { ret = NE_ERROR; ne_set_error(sess, _("Response missing activelock for %s"), ctx.token); } } else if (ret == NE_OK /* && status != 2xx */) { ret = NE_ERROR; } ne_lock_free(&ctx.active); if (ctx.token) ne_free(ctx.token); ne_request_destroy(req); ne_xml_destroy(parser); return ret; } int ne_lock_refresh(ne_session *sess, struct ne_lock *lock) { ne_request *req = ne_request_create(sess, "LOCK", lock->uri.path); ne_xml_parser *parser = ne_xml_create(); int ret; struct lock_ctx ctx; memset(&ctx, 0, sizeof ctx); ctx.cdata = ne_buffer_create(); ctx.req = req; ctx.token = lock->token; /* Handle the response and update *lock appropriately. */ ne_xml_push_handler(parser, lk_startelm, lk_cdata, lk_endelm, &ctx); /* For a lock refresh, submitting only this lock token must be * sufficient. */ ne_print_request_header(req, "If", "(<%s>)", lock->token); add_timeout_header(req, lock->timeout); ret = ne_xml_dispatch_request(req, parser); if (ret == NE_OK) { if (ne_get_status(req)->klass != 2) { ret = NE_ERROR; /* and use default session error */ } else if (ne_xml_failed(parser)) { ret = NE_ERROR; ne_set_error(sess, "%s", ne_xml_get_error(parser)); } else if (!ctx.found) { ne_set_error(sess, _("No activelock for <%s> returned in " "LOCK refresh response"), lock->token); ret = NE_ERROR; } else /* success! */ { /* update timeout for passed-in lock structure. */ lock->timeout = ctx.active.timeout; } } ne_lock_free(&ctx.active); ne_buffer_destroy(ctx.cdata); ne_request_destroy(req); ne_xml_destroy(parser); return ret; } gnome-vfs-2.24.4/imported/neon/ne_props.h0000644000175000001440000002277411334251016015211 00000000000000/* WebDAV Properties manipulation Copyright (C) 1999-2004, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_PROPS_H #define NE_PROPS_H #include "ne_request.h" #include "ne_207.h" BEGIN_NEON_DECLS /* There are two interfaces for fetching properties. The first is * 'ne_simple_propfind', which is relatively simple, and easy to use, * but only lets you fetch FLAT properties, i.e. properties which are * just a string of bytes. The complex interface is 'ne_propfind_*', * which is complicated, and hard to use, but lets you parse * structured properties, i.e. properties which have XML content. */ /* The 'ne_simple_propfind' interface. *** * * ne_simple_propfind allows you to fetch a set of properties for a * single resource, or a tree of resources. You set the operation * going by passing these arguments: * * - the session which should be used. * - the URI and the depth of the operation (0, 1, infinite) * - the names of the properties which you want to fetch * - a results callback, and the userdata for the callback. * * For each resource found, the results callback is called, passing * you two things along with the userdata you passed in originally: * * - the URI of the resource (const char *href) * - the properties results set (const ne_prop_result_set *results) * */ /* The name of a WebDAV property. 'nspace' may be NULL. */ typedef struct { const char *nspace, *name; } ne_propname; typedef struct ne_prop_result_set_s ne_prop_result_set; /* Get the value of a given property. Will return NULL if there was an * error fetching this property on this resource. Call * ne_propset_result to get the response-status if so. */ const char *ne_propset_value(const ne_prop_result_set *set, const ne_propname *propname); /* Returns the status structure for fetching the given property on * this resource. This function will return NULL if the server did not * return the property (which is a server error). */ const ne_status *ne_propset_status(const ne_prop_result_set *set, const ne_propname *propname); /* Returns the private pointer for the given propset. */ void *ne_propset_private(const ne_prop_result_set *set); /* Return language string of property (may be NULL). */ const char *ne_propset_lang(const ne_prop_result_set *set, const ne_propname *pname); /* ne_propset_iterate iterates over a properties result set, * calling the callback for each property in the set. userdata is * passed as the first argument to the callback. value may be NULL, * indicating an error occurred fetching this property: look at * status for the error in that case. * * If the iterator returns non-zero, ne_propset_iterate will return * immediately with that value. */ typedef int (*ne_propset_iterator)(void *userdata, const ne_propname *pname, const char *value, const ne_status *status); /* Iterate over all the properties in 'set', calling 'iterator' * for each, passing 'userdata' as the first argument to callback. * * Returns: * whatever value iterator returns. */ int ne_propset_iterate(const ne_prop_result_set *set, ne_propset_iterator iterator, void *userdata); /* Callback for handling the results of fetching properties for a * single resource (named by 'href'). The results are stored in the * result set 'results': use ne_propset_* to examine this object. */ typedef void (*ne_props_result)(void *userdata, const char *href, const ne_prop_result_set *results); /* Fetch properties for a resource (if depth == NE_DEPTH_ZERO), * or a tree of resources (if depth == NE_DEPTH_ONE or _INFINITE). * * Names of the properties required must be given in 'props', * or if props is NULL, *all* properties are fetched. * * 'results' is called for each resource in the response, userdata is * passed as the first argument to the callback. It is important to * note that the callback is called as the response is read off the * socket, so don't do anything silly in it (e.g. sleep(100), or call * any functions which use this session). * * Note that if 'depth' is NE_DEPTH_INFINITY, some servers may refuse * the request. * * Returns NE_*. */ int ne_simple_propfind(ne_session *sess, const char *path, int depth, const ne_propname *props, ne_props_result results, void *userdata); /* The properties of a resource can be manipulated using ne_proppatch. * A single proppatch request may include any number of individual * "set" and "remove" operations, and is defined to have * "all-or-nothing" semantics, so either all the operations succeed, * or none do. */ /* A proppatch operation may either set a property to have a new * value, in which case 'type' must be ne_propset, and 'value' must be * non-NULL; or it can remove a property; in which case 'type' must be * ne_propremove, and 'value' is ignored. In both cases, 'name' must * be set to the name of the property to alter. */ enum ne_proppatch_optype { ne_propset, ne_propremove }; typedef struct { const ne_propname *name; enum ne_proppatch_optype type; const char *value; } ne_proppatch_operation; /* Execute a set of property operations 'ops' on 'path'. 'ops' is an * array terminated by an operation with a NULL 'name' field. Returns * NE_*. */ int ne_proppatch(ne_session *sess, const char *path, const ne_proppatch_operation *ops); /* Retrieve property names for the resources at 'path'. 'results' * callback is called for each resource. Use 'ne_propset_iterate' on * the passed results object to retrieve the list of property names. * */ int ne_propnames(ne_session *sess, const char *path, int depth, ne_props_result results, void *userdata); /* The complex, you-do-all-the-work, property fetch interface: */ struct ne_propfind_handler_s; typedef struct ne_propfind_handler_s ne_propfind_handler; /* Retrieve the 'private' pointer for the current propset for the * given handler, as returned by the ne_props_create_complex callback * installed using 'ne_propfind_set_private'. If this callback was * not registered, this function will return NULL. */ void *ne_propfind_current_private(ne_propfind_handler *handler); /* Create a PROPFIND handler, for the given resource or set of * resources. * * Depth must be one of NE_DEPTH_*. */ ne_propfind_handler * ne_propfind_create(ne_session *sess, const char *path, int depth); /* Return the XML parser for the given handler (only need if you want * to handle complex properties). */ ne_xml_parser *ne_propfind_get_parser(ne_propfind_handler *handler); /* This interface reserves the state integer range 'x' where 0 < x * and x < NE_PROPS_STATE_TOP. */ #define NE_PROPS_STATE_TOP (NE_207_STATE_TOP + 100) /* Return the request object for the given handler. You MUST NOT use * ne_set_request_body_* on this request object. (this call is only * needed if for instance, you want to add extra headers to the * PROPFIND request). The result of using the request pointer after * ne_propfind_destroy(handler) has been called is undefined. */ ne_request *ne_propfind_get_request(ne_propfind_handler *handler); /* A "complex property" has a value which is structured XML. To handle * complex properties, you must set up and register an XML handler * which will understand the elements which make up such properties. * The handler must be registered with the parser returned by * 'ne_propfind_get_parser'. * * To store the parsed value of the property, a 'private' structure is * allocated in each propset (i.e. one per resource). When parsing the * property value elements, for each new resource encountered in the * response, the 'creator' callback is called to retrieve a 'private' * structure for this resource. * * Whilst in XML element callbacks you will have registered to handle * complex properties, you can use the 'ne_propfind_current_private' * call to retrieve the pointer to this private structure. * * To retrieve this 'private' structure from the propset in the * results callback, simply call 'ne_propset_private'. * */ typedef void *(*ne_props_create_complex)(void *userdata, const char *href); void ne_propfind_set_private(ne_propfind_handler *handler, ne_props_create_complex creator, void *userdata); /* Fetch all properties. * * Returns NE_*. */ int ne_propfind_allprop(ne_propfind_handler *handler, ne_props_result result, void *userdata); /* Fetch all properties with names listed in array 'names', which is * terminated by a property with a NULL name field. For each resource * encountered, the result callback will be invoked, passing in * 'userdata' as the first argument. * * Returns NE_*. */ int ne_propfind_named(ne_propfind_handler *handler, const ne_propname *names, ne_props_result result, void *userdata); /* Destroy a propfind handler after use. */ void ne_propfind_destroy(ne_propfind_handler *handler); END_NEON_DECLS #endif /* NE_PROPS_H */ gnome-vfs-2.24.4/imported/neon/ne_xmlreq.h0000644000175000001440000000336711334251016015353 00000000000000/* XML/HTTP response handling Copyright (C) 2004-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_XMLREQ_H #define NE_XMLREQ_H #include "ne_request.h" #include "ne_xml.h" BEGIN_NEON_DECLS /* Read the HTTP response body using calls to ne_read_response_block * (so must be enclosed by ne_begin_request/ne_end_request calls), and * parse it as an XML document, using the given parser. Returns NE_* * error codes. If an XML parse error occurs, the session error * string is set to the XML parser's error string, and NE_ERROR is * returned. */ int ne_xml_parse_response(ne_request *req, ne_xml_parser *parser); /* Dispatch the HTTP request, parsing the response body as an XML * document using * the given parser, if the response status class is * 2xx. Returns NE_* error codes. If an XML parse error occurs, the * session error string is set to the XML parser's error string, and * NE_ERROR is returned. */ int ne_xml_dispatch_request(ne_request *req, ne_xml_parser *parser); END_NEON_DECLS #endif /* NE_XMLREQ_H */ gnome-vfs-2.24.4/imported/neon/ne_md5.c0000644000175000001440000003213711334251016014520 00000000000000/* md5.c - Functions to compute MD5 message digest of files or memory blocks according to the definition of MD5 in RFC 1321 from April 1992. Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Ulrich Drepper , 1995. */ #include "config.h" #include #if STDC_HEADERS || defined _LIBC # include # include #else #ifdef HAVE_STRING_H #include #endif # ifndef HAVE_MEMCPY # define memcpy(d, s, n) bcopy ((s), (d), (n)) # endif #endif #include /* for tolower */ #include "ne_md5.h" #include "ne_string.h" /* for NE_ASC2HEX */ #ifdef _LIBC # include # if __BYTE_ORDER == __BIG_ENDIAN # define WORDS_BIGENDIAN 1 # endif #endif #define md5_init_ctx ne_md5_init_ctx #define md5_process_block ne_md5_process_block #define md5_process_bytes ne_md5_process_bytes #define md5_finish_ctx ne_md5_finish_ctx #define md5_read_ctx ne_md5_read_ctx #define md5_stream ne_md5_stream #define md5_ctx ne_md5_ctx #ifdef WORDS_BIGENDIAN # define SWAP(n) \ (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) #else # define SWAP(n) (n) #endif /* This array contains the bytes used to pad the buffer to the next 64-byte boundary. (RFC 1321, 3.1: Step 1) */ static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; /* Initialize structure containing state of computation. (RFC 1321, 3.3: Step 3) */ void md5_init_ctx (ctx) struct md5_ctx *ctx; { ctx->A = 0x67452301; ctx->B = 0xefcdab89; ctx->C = 0x98badcfe; ctx->D = 0x10325476; ctx->total[0] = ctx->total[1] = 0; ctx->buflen = 0; } /* Put result from CTX in first 16 bytes following RESBUF. The result must be in little endian byte order. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ void * md5_read_ctx (ctx, resbuf) const struct md5_ctx *ctx; void *resbuf; { ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A); ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B); ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C); ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D); return resbuf; } /* Process the remaining bytes in the internal buffer and the usual prolog according to the standard and write the result to RESBUF. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ void * md5_finish_ctx (ctx, resbuf) struct md5_ctx *ctx; void *resbuf; { /* Take yet unprocessed bytes into account. */ md5_uint32 bytes = ctx->buflen; size_t pad; /* Now count remaining bytes. */ ctx->total[0] += bytes; if (ctx->total[0] < bytes) ++ctx->total[1]; pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; memcpy (&ctx->buffer[bytes], fillbuf, pad); /* Put the 64-bit file length in *bits* at the end of the buffer. */ *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3); *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); /* Process last bytes. */ md5_process_block (ctx->buffer, bytes + pad + 8, ctx); return md5_read_ctx (ctx, resbuf); } /* Compute MD5 message digest for bytes read from STREAM. The resulting message digest number will be written into the 16 bytes beginning at RESBLOCK. */ int md5_stream (stream, resblock) FILE *stream; void *resblock; { /* Important: BLOCKSIZE must be a multiple of 64. */ #define BLOCKSIZE 4096 struct md5_ctx ctx; char buffer[BLOCKSIZE + 72]; size_t sum; /* Initialize the computation context. */ md5_init_ctx (&ctx); /* Iterate over full file contents. */ while (1) { /* We read the file in blocks of BLOCKSIZE bytes. One call of the computation function processes the whole buffer so that with the next round of the loop another block can be read. */ size_t n; sum = 0; /* Read block. Take care for partial reads. */ do { n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream); sum += n; } while (sum < BLOCKSIZE && n != 0); if (n == 0 && ferror (stream)) return 1; /* If end of file is reached, end the loop. */ if (n == 0) break; /* Process buffer with BLOCKSIZE bytes. Note that BLOCKSIZE % 64 == 0 */ md5_process_block (buffer, BLOCKSIZE, &ctx); } /* Add the last bytes if necessary. */ if (sum > 0) md5_process_bytes (buffer, sum, &ctx); /* Construct result in desired memory. */ md5_finish_ctx (&ctx, resblock); return 0; } void md5_process_bytes (buffer, len, ctx) const void *buffer; size_t len; struct md5_ctx *ctx; { /* When we already have some bits in our internal buffer concatenate both inputs first. */ if (ctx->buflen != 0) { size_t left_over = ctx->buflen; size_t add = 128 - left_over > len ? len : 128 - left_over; memcpy (&ctx->buffer[left_over], buffer, add); ctx->buflen += add; if (left_over + add > 64) { md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx); /* The regions in the following copy operation cannot overlap. */ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63], (left_over + add) & 63); ctx->buflen = (left_over + add) & 63; } buffer = (const char *) buffer + add; len -= add; } /* Process available complete blocks. */ if (len > 64) { md5_process_block (buffer, len & ~63, ctx); buffer = (const char *) buffer + (len & ~63); len &= 63; } /* Move remaining bytes in internal buffer. */ if (len > 0) { memcpy (ctx->buffer, buffer, len); ctx->buflen = len; } } /* These are the four functions used in the four steps of the MD5 algorithm and defined in the RFC 1321. The first function is a little bit optimized (as found in Colin Plumbs public domain implementation). */ /* #define FF(b, c, d) ((b & c) | (~b & d)) */ #define FF(b, c, d) (d ^ (b & (c ^ d))) #define FG(b, c, d) FF (d, b, c) #define FH(b, c, d) (b ^ c ^ d) #define FI(b, c, d) (c ^ (b | ~d)) /* Process LEN bytes of BUFFER, accumulating context into CTX. It is assumed that LEN % 64 == 0. */ void md5_process_block (buffer, len, ctx) const void *buffer; size_t len; struct md5_ctx *ctx; { md5_uint32 correct_words[16]; const unsigned char *words = buffer; const unsigned char *endp = words + len; md5_uint32 A = ctx->A; md5_uint32 B = ctx->B; md5_uint32 C = ctx->C; md5_uint32 D = ctx->D; /* First increment the byte count. RFC 1321 specifies the possible length of the file up to 2^64 bits. Here we only compute the number of bytes. Do a double word increment. */ ctx->total[0] += len; if (ctx->total[0] < len) ++ctx->total[1]; /* Process all bytes in the buffer with 64 bytes in each round of the loop. */ while (words < endp) { md5_uint32 *cwp = correct_words; md5_uint32 A_save = A; md5_uint32 B_save = B; md5_uint32 C_save = C; md5_uint32 D_save = D; /* First round: using the given function, the context and a constant the next context is computed. Because the algorithms processing unit is a 32-bit word and it is determined to work on words in little endian byte order we perhaps have to change the byte order before the computation. To reduce the work for the next steps we store the swapped words in the array CORRECT_WORDS. */ #define OP(a, b, c, d, s, T) \ do \ { \ md5_uint32 WORD_ = (md5_uint32)words[0] | ((md5_uint32)words[1] << 8) \ | ((md5_uint32)words[2] << 16) | ((md5_uint32)words[3] << 24); \ a += FF (b, c, d) + (*cwp++ = WORD_) + T; \ words += 4; \ CYCLIC (a, s); \ a += b; \ } \ while (0) /* It is unfortunate that C does not provide an operator for cyclic rotation. Hope the C compiler is smart enough. */ #define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s))) /* Before we start, one word to the strange constants. They are defined in RFC 1321 as T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64 */ /* Round 1. */ OP (A, B, C, D, 7, 0xd76aa478); OP (D, A, B, C, 12, 0xe8c7b756); OP (C, D, A, B, 17, 0x242070db); OP (B, C, D, A, 22, 0xc1bdceee); OP (A, B, C, D, 7, 0xf57c0faf); OP (D, A, B, C, 12, 0x4787c62a); OP (C, D, A, B, 17, 0xa8304613); OP (B, C, D, A, 22, 0xfd469501); OP (A, B, C, D, 7, 0x698098d8); OP (D, A, B, C, 12, 0x8b44f7af); OP (C, D, A, B, 17, 0xffff5bb1); OP (B, C, D, A, 22, 0x895cd7be); OP (A, B, C, D, 7, 0x6b901122); OP (D, A, B, C, 12, 0xfd987193); OP (C, D, A, B, 17, 0xa679438e); OP (B, C, D, A, 22, 0x49b40821); /* For the second to fourth round we have the possibly swapped words in CORRECT_WORDS. Redefine the macro to take an additional first argument specifying the function to use. */ #undef OP #define OP(f, a, b, c, d, k, s, T) \ do \ { \ a += f (b, c, d) + correct_words[k] + T; \ CYCLIC (a, s); \ a += b; \ } \ while (0) /* Round 2. */ OP (FG, A, B, C, D, 1, 5, 0xf61e2562); OP (FG, D, A, B, C, 6, 9, 0xc040b340); OP (FG, C, D, A, B, 11, 14, 0x265e5a51); OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); OP (FG, A, B, C, D, 5, 5, 0xd62f105d); OP (FG, D, A, B, C, 10, 9, 0x02441453); OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); OP (FG, D, A, B, C, 14, 9, 0xc33707d6); OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); OP (FG, B, C, D, A, 8, 20, 0x455a14ed); OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); OP (FG, C, D, A, B, 7, 14, 0x676f02d9); OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); /* Round 3. */ OP (FH, A, B, C, D, 5, 4, 0xfffa3942); OP (FH, D, A, B, C, 8, 11, 0x8771f681); OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); OP (FH, B, C, D, A, 14, 23, 0xfde5380c); OP (FH, A, B, C, D, 1, 4, 0xa4beea44); OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); OP (FH, B, C, D, A, 6, 23, 0x04881d05); OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); /* Round 4. */ OP (FI, A, B, C, D, 0, 6, 0xf4292244); OP (FI, D, A, B, C, 7, 10, 0x432aff97); OP (FI, C, D, A, B, 14, 15, 0xab9423a7); OP (FI, B, C, D, A, 5, 21, 0xfc93a039); OP (FI, A, B, C, D, 12, 6, 0x655b59c3); OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92); OP (FI, C, D, A, B, 10, 15, 0xffeff47d); OP (FI, B, C, D, A, 1, 21, 0x85845dd1); OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f); OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0); OP (FI, C, D, A, B, 6, 15, 0xa3014314); OP (FI, B, C, D, A, 13, 21, 0x4e0811a1); OP (FI, A, B, C, D, 4, 6, 0xf7537e82); OP (FI, D, A, B, C, 11, 10, 0xbd3af235); OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb); OP (FI, B, C, D, A, 9, 21, 0xeb86d391); /* Add the starting values of the context. */ A += A_save; B += B_save; C += C_save; D += D_save; } /* Put checksum in context given as argument. */ ctx->A = A; ctx->B = B; ctx->C = C; ctx->D = D; } /* Writes the ASCII representation of the MD5 digest into the * given buffer, which must be at least 33 characters long. */ void ne_md5_to_ascii(const unsigned char md5_buf[16], char *buffer) { int count; for (count = 0; count<16; count++) { buffer[count*2] = NE_HEX2ASC(md5_buf[count] >> 4); buffer[count*2+1] = NE_HEX2ASC(md5_buf[count] & 0x0f); } buffer[32] = '\0'; } /* Reads the ASCII representation of an MD5 digest. The buffer must * be at least 32 characters long. */ void ne_ascii_to_md5(const char *buffer, unsigned char md5_buf[16]) { int count; for (count = 0; count<16; count++) { md5_buf[count] = ((NE_ASC2HEX(buffer[count*2])) << 4) | NE_ASC2HEX(buffer[count*2+1]); } } gnome-vfs-2.24.4/imported/neon/ne_i18n.h0000644000175000001440000000213211334251016014607 00000000000000/* Internationalization of neon Copyright (C) 1999-2002, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NEON_I18N_H #define NEON_I18N_H #undef _ #ifdef ENABLE_NLS #include #define _(str) gettext(str) #else #define _(str) (str) #endif /* ENABLE_NLS */ #define N_(str) (str) /* Initialize i18n in neon */ void neon_i18n_init(void); #endif /* NEON_I18N_H */ gnome-vfs-2.24.4/imported/neon/ne_session.c0000644000175000001440000001522111334251016015511 00000000000000/* HTTP session handling Copyright (C) 1999-2005, Joe Orton Portions are: Copyright (C) 1999-2000 Tommi Komulainen 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_ERRNO_H #include #endif #include "ne_session.h" #include "ne_alloc.h" #include "ne_utils.h" #include "ne_i18n.h" #include "ne_string.h" #include "ne_private.h" /* Destroy a a list of hooks. */ static void destroy_hooks(struct hook *hooks) { struct hook *nexthk; while (hooks) { nexthk = hooks->next; ne_free(hooks); hooks = nexthk; } } void ne_session_destroy(ne_session *sess) { struct hook *hk; NE_DEBUG(NE_DBG_HTTP, "ne_session_destroy called.\n"); /* Run the destroy hooks. */ for (hk = sess->destroy_sess_hooks; hk != NULL; hk = hk->next) { ne_destroy_sess_fn fn = (ne_destroy_sess_fn)hk->fn; fn(hk->userdata); } destroy_hooks(sess->create_req_hooks); destroy_hooks(sess->pre_send_hooks); destroy_hooks(sess->post_send_hooks); destroy_hooks(sess->destroy_req_hooks); destroy_hooks(sess->destroy_sess_hooks); destroy_hooks(sess->private); ne_free(sess->scheme); ne_free(sess->server.hostname); ne_free(sess->server.hostport); if (sess->server.address) ne_addr_destroy(sess->server.address); if (sess->proxy.address) ne_addr_destroy(sess->proxy.address); if (sess->proxy.hostname) ne_free(sess->proxy.hostname); if (sess->user_agent) ne_free(sess->user_agent); if (sess->connected) { ne_close_connection(sess); } #ifdef NE_HAVE_SSL if (sess->ssl_context) ne_ssl_context_destroy(sess->ssl_context); if (sess->server_cert) ne_ssl_cert_free(sess->server_cert); if (sess->client_cert) ne_ssl_clicert_free(sess->client_cert); #endif ne_free(sess); } int ne_version_pre_http11(ne_session *s) { return !s->is_http11; } /* Stores the "hostname[:port]" segment */ static void set_hostport(struct host_info *host, unsigned int defaultport) { size_t len = strlen(host->hostname); host->hostport = ne_malloc(len + 10); strcpy(host->hostport, host->hostname); if (host->port != defaultport) ne_snprintf(host->hostport + len, 9, ":%u", host->port); } /* Stores the hostname/port in *info, setting up the "hostport" * segment correctly. */ static void set_hostinfo(struct host_info *info, const char *hostname, unsigned int port) { info->hostname = ne_strdup(hostname); info->port = port; } ne_session *ne_session_create(const char *scheme, const char *hostname, unsigned int port) { ne_session *sess = ne_calloc(sizeof *sess); NE_DEBUG(NE_DBG_HTTP, "HTTP session to %s://%s:%d begins.\n", scheme, hostname, port); strcpy(sess->error, "Unknown error."); /* use SSL if scheme is https */ sess->use_ssl = !strcmp(scheme, "https"); /* set the hostname/port */ set_hostinfo(&sess->server, hostname, port); set_hostport(&sess->server, sess->use_ssl?443:80); #ifdef NE_HAVE_SSL if (sess->use_ssl) { sess->ssl_context = ne_ssl_context_create(0); } #endif sess->scheme = ne_strdup(scheme); return sess; } void ne_session_proxy(ne_session *sess, const char *hostname, unsigned int port) { sess->use_proxy = 1; if (sess->proxy.hostname) ne_free(sess->proxy.hostname); set_hostinfo(&sess->proxy, hostname, port); } void ne_set_addrlist(ne_session *sess, const ne_inet_addr **addrs, size_t n) { sess->addrlist = addrs; sess->numaddrs = n; } void ne_set_error(ne_session *sess, const char *format, ...) { va_list params; va_start(params, format); ne_vsnprintf(sess->error, sizeof sess->error, format, params); va_end(params); } void ne_set_progress(ne_session *sess, ne_progress progress, void *userdata) { sess->progress_cb = progress; sess->progress_ud = userdata; } void ne_set_status(ne_session *sess, ne_notify_status status, void *userdata) { sess->notify_cb = status; sess->notify_ud = userdata; } void ne_set_persist(ne_session *sess, int persist) { sess->no_persist = !persist; } void ne_set_read_timeout(ne_session *sess, int timeout) { sess->rdtimeout = timeout; } #define UAHDR "User-Agent: " #define AGENT " neon/" NEON_VERSION "\r\n" void ne_set_useragent(ne_session *sess, const char *token) { if (sess->user_agent) ne_free(sess->user_agent); sess->user_agent = ne_malloc(strlen(UAHDR) + strlen(AGENT) + strlen(token) + 1); #ifdef HAVE_STPCPY strcpy(stpcpy(stpcpy(sess->user_agent, UAHDR), token), AGENT); #else strcat(strcat(strcpy(sess->user_agent, UAHDR), token), AGENT); #endif } const char *ne_get_server_hostport(ne_session *sess) { return sess->server.hostport; } const char *ne_get_scheme(ne_session *sess) { return sess->scheme; } void ne_fill_server_uri(ne_session *sess, ne_uri *uri) { uri->host = ne_strdup(sess->server.hostname); uri->port = sess->server.port; uri->scheme = ne_strdup(sess->scheme); } const char *ne_get_error(ne_session *sess) { return ne_strclean(sess->error); } void ne_close_connection(ne_session *sess) { if (sess->connected) { NE_DEBUG(NE_DBG_SOCKET, "Closing connection.\n"); ne_sock_close(sess->socket); sess->socket = NULL; NE_DEBUG(NE_DBG_SOCKET, "Connection closed.\n"); } else { NE_DEBUG(NE_DBG_SOCKET, "(Not closing closed connection!).\n"); } sess->connected = 0; } void ne_ssl_set_verify(ne_session *sess, ne_ssl_verify_fn fn, void *userdata) { sess->ssl_verify_fn = fn; sess->ssl_verify_ud = userdata; } void ne_ssl_provide_clicert(ne_session *sess, ne_ssl_provide_fn fn, void *userdata) { sess->ssl_provide_fn = fn; sess->ssl_provide_ud = userdata; } void ne_ssl_trust_cert(ne_session *sess, const ne_ssl_certificate *cert) { #ifdef NE_HAVE_SSL ne_ssl_context_trustcert(sess->ssl_context, cert); #endif } gnome-vfs-2.24.4/imported/neon/ne_redirect.h0000644000175000001440000000265011334251016015636 00000000000000/* HTTP-redirect support Copyright (C) 1999-2002, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_REDIRECT_H #define NE_REDIRECT_H #include "ne_request.h" BEGIN_NEON_DECLS /* Register redirect handling: if a redirection response is given, the * request will fail with the NE_REDIRECT code, and the destinsation * of the redirect can be retrieved using ne_redirect_location(). */ void ne_redirect_register(ne_session *sess); /* Returns location of last redirect. Will return NULL if no redirect * has been encountered for given session, or the last redirect * encountered could not be parsed. */ const ne_uri *ne_redirect_location(ne_session *sess); END_NEON_DECLS #endif /* NE_REDIRECT_H */ gnome-vfs-2.24.4/imported/neon/ne_private.h0000644000175000001440000000705411334251016015512 00000000000000/* HTTP Request Handling Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ /* THIS IS NOT A PUBLIC INTERFACE. You CANNOT include this header file * from an application. */ #ifndef NE_PRIVATE_H #define NE_PRIVATE_H #include "ne_request.h" #include "ne_socket.h" #include "ne_ssl.h" struct host_info { char *hostname; unsigned int port; ne_sock_addr *address; /* if non-NULL, result of resolving 'hostname'. */ /* current network address obtained from 'address' being used. */ const ne_inet_addr *current; char *hostport; /* URI hostport segment */ }; /* Store every registered callback in a generic container, and cast * the function pointer when calling it. */ struct hook { void (*fn)(void); void *userdata; const char *id; /* non-NULL for accessors. */ struct hook *next; }; #define HAVE_HOOK(st,func) (st->hook->hooks->func != NULL) #define HOOK_FUNC(st, func) (*st->hook->hooks->func) /* Session support. */ struct ne_session_s { /* Connection information */ ne_socket *socket; /* non-zero if connection has been established. */ int connected; /* non-zero if connection has persisted beyond one request. */ int persisted; int is_http11; /* >0 if connected server is known to be * HTTP/1.1 compliant. */ char *scheme; struct host_info server, proxy; /* application-provided address list */ const ne_inet_addr **addrlist; size_t numaddrs, curaddr; /* Settings */ unsigned int use_proxy:1; /* do we have a proxy server? */ unsigned int no_persist:1; /* set to disable persistent connections */ unsigned int use_ssl:1; /* whether a secure connection is required */ unsigned int in_connect:1; /* doing a proxy CONNECT */ ne_progress progress_cb; void *progress_ud; ne_notify_status notify_cb; void *notify_ud; int rdtimeout; /* read timeout. */ struct hook *create_req_hooks, *pre_send_hooks, *post_send_hooks; struct hook *destroy_req_hooks, *destroy_sess_hooks, *private; char *user_agent; /* full User-Agent: header field */ #ifdef NE_HAVE_SSL ne_ssl_client_cert *client_cert; ne_ssl_certificate *server_cert; ne_ssl_context *ssl_context; #endif /* Server cert verification callback: */ ne_ssl_verify_fn ssl_verify_fn; void *ssl_verify_ud; /* Client cert provider callback: */ ne_ssl_provide_fn ssl_provide_fn; void *ssl_provide_ud; /* Error string */ char error[512]; }; /* Pushes block of 'count' bytes at 'buf'. Returns non-zero on * error. */ typedef int (*ne_push_fn)(void *userdata, const char *buf, size_t count); /* Do the SSL negotiation. */ int ne__negotiate_ssl(ne_request *req); /* Hack to fix ne_compress layer problems */ void ne__reqhook_pre_send(ne_request *sess, ne_pre_send_fn fn, void *userdata); #endif /* HTTP_PRIVATE_H */ gnome-vfs-2.24.4/imported/neon/ne_md5.h0000644000175000001440000001154111334251016014521 00000000000000/* Declaration of functions and data types used for MD5 sum computing library functions. Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef NEON_MD5_H #define NEON_MD5_H 1 #include #if defined HAVE_LIMITS_H || _LIBC # include #endif /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but doing that would require that the configure script compile and *run* the resulting executable. Locally running cross-compiled executables is usually not possible. */ #ifdef _LIBC # include typedef u_int32_t md5_uint32; #else # if defined __STDC__ && __STDC__ # define UINT_MAX_32_BITS 4294967295U # else # define UINT_MAX_32_BITS 0xFFFFFFFF # endif /* If UINT_MAX isn't defined, assume it's a 32-bit type. This should be valid for all systems GNU cares about because that doesn't include 16-bit systems, and only modern systems (that certainly have ) have 64+-bit integral types. */ # ifndef UINT_MAX # define UINT_MAX UINT_MAX_32_BITS # endif # if UINT_MAX == UINT_MAX_32_BITS typedef unsigned int md5_uint32; # else # if USHRT_MAX == UINT_MAX_32_BITS typedef unsigned short md5_uint32; # else # if ULONG_MAX == UINT_MAX_32_BITS typedef unsigned long md5_uint32; # else /* The following line is intended to evoke an error. Using #error is not portable enough. */ "Cannot determine unsigned 32-bit data type." # endif # endif # endif #endif #undef __P #if defined (__STDC__) && __STDC__ # define __P(x) x #else # define __P(x) () #endif /* Structure to save state of computation between the single steps. */ struct ne_md5_ctx { md5_uint32 A; md5_uint32 B; md5_uint32 C; md5_uint32 D; md5_uint32 total[2]; md5_uint32 buflen; char buffer[128]; }; /* * The following three functions are build up the low level used in * the functions `md5_stream' and `md5_buffer'. */ /* Initialize structure containing state of computation. (RFC 1321, 3.3: Step 3) */ extern void ne_md5_init_ctx __P ((struct ne_md5_ctx *ctx)); /* Starting with the result of former calls of this function (or the initialization function update the context for the next LEN bytes starting at BUFFER. It is necessary that LEN is a multiple of 64!!! */ extern void ne_md5_process_block __P ((const void *buffer, size_t len, struct ne_md5_ctx *ctx)); /* Starting with the result of former calls of this function (or the initialization function update the context for the next LEN bytes starting at BUFFER. It is NOT required that LEN is a multiple of 64. */ extern void ne_md5_process_bytes __P ((const void *buffer, size_t len, struct ne_md5_ctx *ctx)); /* Process the remaining bytes in the buffer and put result from CTX in first 16 bytes following RESBUF. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ extern void *ne_md5_finish_ctx __P ((struct ne_md5_ctx *ctx, void *resbuf)); /* Put result from CTX in first 16 bytes following RESBUF. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ extern void *ne_md5_read_ctx __P ((const struct ne_md5_ctx *ctx, void *resbuf)); /* Compute MD5 message digest for bytes read from STREAM. The resulting message digest number will be written into the 16 bytes beginning at RESBLOCK. */ extern int ne_md5_stream __P ((FILE *stream, void *resblock)); /* MD5 ascii->binary conversion */ void ne_md5_to_ascii(const unsigned char md5_buf[16], char *buffer); void ne_ascii_to_md5(const char *buffer, unsigned char md5_buf[16]); #endif /* NEON_MD5_H */ gnome-vfs-2.24.4/imported/neon/ne_acl.h0000644000175000001440000000253411334251016014575 00000000000000/* Access control Copyright (C) 2001, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_ACL_H #define NE_ACL_H #include "ne_session.h" BEGIN_NEON_DECLS typedef struct { enum { ne_acl_href, ne_acl_property, ne_acl_all } apply; enum { ne_acl_grant, ne_acl_deny } type; char *principal; int read; int read_acl; int write; int write_acl; int read_cuprivset; } ne_acl_entry; /* Set the ACL for the given resource to the list of ACL entries. */ int ne_acl_set(ne_session *sess, const char *uri, ne_acl_entry entries[], int numentries); END_NEON_DECLS #endif /* NE_ACL_H */ gnome-vfs-2.24.4/imported/neon/ne_gnomevfs.c0000644000175000001440000003274011334251016015657 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnome-vfs-dns-sd.c - DNS-SD functions Copyright (C) 2004 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include "ne_socket.h" #include "ne_ssl.h" #include "ne_session.h" #include "ne_private.h" #include "ne_request.h" #include "ne_gnomevfs.h" #include #include #include #include #include #include #include #define peek_cancellation(_c) _c = gnome_vfs_context_get_cancellation (\ gnome_vfs_context_peek_current ()) /* ************************************************************************** */ struct ne_socket_s { GnomeVFSInetConnection *connection; GnomeVFSResult last_error; GnomeVFSSocketBuffer *socket_buffer; GnomeVFSSocket *socket; }; typedef struct ne_socket_s ne_socket_ssl; struct ne_sock_addr_s { GnomeVFSResolveHandle *handle; GnomeVFSResult result; GnomeVFSAddress *last; }; typedef struct GnomeVFSAddress ne_inet_addr_s; /* ************************************************************************** */ GnomeVFSResult ne_gnomevfs_last_error (ne_request *req) { ne_session *sess; sess = ne_get_session (req); if (sess && sess->socket) return sess->socket->last_error; return GNOME_VFS_OK; } /* ************************************************************************** */ #ifndef G_OS_WIN32 #define check_error(__result, __sock) __sock->last_error = __result; \ switch (__result) { \ case GNOME_VFS_OK: break; \ case GNOME_VFS_ERROR_TIMEOUT: return NE_SOCK_TIMEOUT; \ case GNOME_VFS_ERROR_EOF: return NE_SOCK_CLOSED; \ case GNOME_VFS_ERROR_GENERIC: \ if (errno == EPIPE) \ return NE_SOCK_CLOSED; \ else if (errno == ECONNRESET) \ return NE_SOCK_RESET; \ default: return NE_SOCK_ERROR; } #else #define check_error(__result, __sock) __sock->last_error = __result; \ switch (__result) { \ case GNOME_VFS_OK: break; \ case GNOME_VFS_ERROR_TIMEOUT: return NE_SOCK_TIMEOUT; \ case GNOME_VFS_ERROR_EOF: return NE_SOCK_CLOSED; \ case GNOME_VFS_ERROR_GENERIC: return NE_SOCK_CLOSED; \ default: return NE_SOCK_ERROR; } #endif /* ************************************************************************** */ int ne_sock_init (void) { /* NOOP */ return 0; } void ne_sock_exit (void) { /* NOOP */ } /* Resolver API replaced with gnome-vfs ones */ ne_sock_addr * ne_addr_resolve (const char *hostname, int flags) { ne_sock_addr *res; res = g_new0 (ne_sock_addr, 1); res->result = gnome_vfs_resolve (hostname, &(res->handle)); return res; } int ne_addr_result (const ne_sock_addr *addr) { if (addr->result != GNOME_VFS_OK) return NE_SOCK_ERROR; return 0; } const ne_inet_addr * ne_addr_first (ne_sock_addr *addr) { GnomeVFSAddress *address; if (addr->last != NULL) { gnome_vfs_address_free (addr->last); gnome_vfs_resolve_reset_to_beginning (addr->handle); } if (! gnome_vfs_resolve_next_address (addr->handle, &address)) { return NULL; } addr->last = address; return (ne_inet_addr *) address; } const ne_inet_addr * ne_addr_next (ne_sock_addr *addr) { GnomeVFSAddress *address; if (! gnome_vfs_resolve_next_address (addr->handle, &address)) { return NULL; } if (addr->last != NULL) { gnome_vfs_address_free (addr->last); } addr->last = address; return (ne_inet_addr *) address; } char * ne_addr_error (const ne_sock_addr *addr, char *buffer, size_t bufsiz) { const char *error_str; error_str = gnome_vfs_result_to_string (addr->result); g_strlcpy (buffer, error_str, bufsiz); return buffer; } void ne_addr_destroy (ne_sock_addr *addr) { if (addr->last) gnome_vfs_address_free (addr->last); if (addr->handle) gnome_vfs_resolve_free (addr->handle); g_free (addr); } ne_inet_addr * ne_iaddr_make (ne_iaddr_type type, const unsigned char *raw) { /* dummy because not used in neon */ return NULL; } int ne_iaddr_cmp (const ne_inet_addr *i1, const ne_inet_addr *i2) { /* dummy becaused not used in neon */ return 0; } char * ne_iaddr_print (const ne_inet_addr *ia, char *buffer, size_t bufsiz) { char *string; string = gnome_vfs_address_to_string ((GnomeVFSAddress *) ia); g_strlcpy (buffer, string, bufsiz); g_free (string); return buffer; } void ne_iaddr_free (ne_inet_addr *addr) { gnome_vfs_address_free ((GnomeVFSAddress *) addr); } /* *************************************************************************** */ ne_socket * ne_sock_create (void) { return g_new0 (ne_socket, 1); } int ne_sock_connect (ne_socket *sock, const ne_inet_addr *addr, unsigned int port) { GnomeVFSCancellation *cancellation; GnomeVFSAddress *address = (GnomeVFSAddress *) addr; peek_cancellation (cancellation); sock->last_error = gnome_vfs_inet_connection_create_from_address (&(sock->connection), address, port, cancellation); check_error (sock->last_error, sock); if (sock->last_error == GNOME_VFS_ERROR_EOF) return NE_SOCK_ERROR; sock->socket = gnome_vfs_inet_connection_to_socket (sock->connection); sock->socket_buffer = gnome_vfs_socket_buffer_new (sock->socket); return 0; } ssize_t ne_sock_read (ne_socket *sock, char *buffer, size_t count) { GnomeVFSFileSize bytes_read; GnomeVFSResult result; GnomeVFSCancellation *cancellation; peek_cancellation (cancellation); result = gnome_vfs_socket_buffer_read (sock->socket_buffer, buffer, count, &bytes_read, cancellation); check_error (result, sock); return bytes_read; } ssize_t ne_sock_peek (ne_socket *sock, char *buffer, size_t count) { GnomeVFSResult result; GnomeVFSCancellation *cancellation; peek_cancellation (cancellation); result = gnome_vfs_socket_buffer_peekc (sock->socket_buffer, buffer, cancellation); check_error (result, sock); return 1; } int ne_sock_block (ne_socket *sock, int n) { /* dummy (not used outside ne_socket.c) */ return NE_SOCK_ERROR; } int ne_sock_fullwrite (ne_socket *sock, const char *data, size_t count) { GnomeVFSResult result; GnomeVFSFileSize bytes_written; GnomeVFSCancellation *cancellation; char *pos; peek_cancellation (cancellation); pos = (char *) data; do { result = gnome_vfs_socket_write (sock->socket, pos, count, &bytes_written, cancellation); count -= bytes_written; pos += bytes_written; } while (result == GNOME_VFS_OK && count > 0); check_error (result, sock); return 0; } ssize_t ne_sock_readline (ne_socket *sock, char *buffer, size_t len) { GnomeVFSFileSize bytes_read, total_bytes; GnomeVFSResult res; GnomeVFSCancellation *cancellation; gboolean got_boundary; char *pos; peek_cancellation (cancellation); pos = buffer; total_bytes = 0; bytes_read = 0; do { res = gnome_vfs_socket_buffer_read_until (sock->socket_buffer, pos, len, "\n", 1, &bytes_read, &got_boundary, cancellation); total_bytes += bytes_read; len -= bytes_read; pos += bytes_read; } while (res == GNOME_VFS_OK && !got_boundary && len > 0); check_error (res, sock); return got_boundary ? total_bytes : NE_SOCK_ERROR; } ssize_t ne_sock_fullread (ne_socket *sock, char *buffer, size_t len) { GnomeVFSFileSize bytes_read, total_bytes; GnomeVFSResult res; GnomeVFSCancellation *cancellation; char *pos; peek_cancellation (cancellation); pos = buffer; total_bytes = 0; do { res = gnome_vfs_socket_buffer_read (sock->socket_buffer, pos, len, &bytes_read, cancellation); total_bytes += bytes_read; len -= bytes_read; pos += bytes_read; } while (res == GNOME_VFS_OK && len > 0); check_error (res, sock); return total_bytes; } int ne_sock_accept (ne_socket *sock, int fd) { /* dummy (not used outside ne_socket.c) */ return NE_SOCK_ERROR; } int ne_sock_fd (const ne_socket *sock) { return gnome_vfs_inet_connection_get_fd (sock->connection); } int ne_sock_close (ne_socket *sock) { GnomeVFSCancellation *cancellation; peek_cancellation (cancellation); if (sock->socket_buffer) { gnome_vfs_socket_buffer_flush (sock->socket_buffer, cancellation); gnome_vfs_socket_buffer_destroy (sock->socket_buffer, TRUE, cancellation); } g_free (sock); return 0; } const char * ne_sock_error (const ne_socket *sock) { return gnome_vfs_result_to_string (sock->last_error); } void ne_sock_read_timeout (ne_socket *sock, int timeout) { GTimeVal tv; GnomeVFSCancellation *cancellation; peek_cancellation (cancellation); tv.tv_sec = timeout; tv.tv_usec = 0; gnome_vfs_socket_set_timeout (sock->socket, &tv, cancellation); } int ne_service_lookup (const char *name) { /* dummy (not used outside ne_socket.c) */ return 0; } void ne_sock_switch_ssl (ne_socket *sock, void *ssl) { /* dummy (not used outside ne_socket.c) */ } int ne_sock_connect_ssl (ne_socket *sock, ne_ssl_context *ctx, void *userdata) { /* Enable SSL with an already-negotiated SSL socket. */ return 0; } /* ************************************************************************** */ #ifdef NE_HAVE_SSL int ne__negotiate_ssl (ne_request *req) { GnomeVFSSSL *ssl; GnomeVFSCancellation *cancellation; ne_session *sess; ne_socket *sock; int fd; sess = ne_get_session (req); sock = sess->socket; if (!gnome_vfs_ssl_enabled ()) { sock->last_error = GNOME_VFS_ERROR_NOT_SUPPORTED; return NE_SOCK_ERROR; } peek_cancellation (cancellation); fd = gnome_vfs_inet_connection_get_fd (sock->connection); sock->last_error = gnome_vfs_ssl_create_from_fd (&ssl, fd, cancellation); if (sock->last_error != GNOME_VFS_OK) { return NE_SOCK_ERROR; } gnome_vfs_socket_free (sock->socket); sock->socket = gnome_vfs_ssl_to_socket (ssl); gnome_vfs_socket_buffer_flush (sock->socket_buffer, cancellation); sock->last_error = gnome_vfs_socket_buffer_destroy (sock->socket_buffer, FALSE, cancellation); gnome_vfs_inet_connection_free (sock->connection, cancellation); sock->socket_buffer = gnome_vfs_socket_buffer_new (sock->socket); return 0; } #endif /* *************************************************************************** */ ne_ssl_context * ne_ssl_context_create (int mode) { return NULL; } void ne_ssl_context_destroy (ne_ssl_context *ctx) { } /* *************************************************************************** */ char *ne_ssl_readable_dname(const ne_ssl_dname *dn) { return NULL; } ne_ssl_certificate *ne_ssl_cert_read(const char *filename) { return NULL; } int ne_ssl_cert_cmp(const ne_ssl_certificate *c1, const ne_ssl_certificate *c2) { return 1; } const ne_ssl_certificate *ne_ssl_cert_signedby(const ne_ssl_certificate *cert) { return NULL; } const ne_ssl_dname *ne_ssl_cert_issuer(const ne_ssl_certificate *cert) { return NULL; } const ne_ssl_dname *ne_ssl_cert_subject(const ne_ssl_certificate *cert) { return NULL; } void ne_ssl_cert_free(ne_ssl_certificate *cert) {} ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename) { return NULL; } const ne_ssl_certificate *ne_ssl_clicert_owner(const ne_ssl_client_cert *ccert) { return NULL; } int ne_ssl_clicert_encrypted(const ne_ssl_client_cert *ccert) { return -1; } int ne_ssl_clicert_decrypt(ne_ssl_client_cert *ccert, const char *password) { return -1; } void ne_ssl_clicert_free(ne_ssl_client_cert *ccert) {} void ne_ssl_trust_default_ca(ne_session *sess) {} void ne_ssl_ctx_trustcert(ne_ssl_context *ctx, const ne_ssl_certificate *cert) {} int ne_ssl_cert_digest(const ne_ssl_certificate *cert, char digest[60]) { return -1; } void ne_ssl_cert_validity(const ne_ssl_certificate *cert, char *from, char *until) {} const char *ne_ssl_cert_identity(const ne_ssl_certificate *cert) { return NULL; } const char *ne_ssl_clicert_name(const ne_ssl_client_cert *ccert) { return NULL; } int ne_ssl_dname_cmp(const ne_ssl_dname *dn1, const ne_ssl_dname *dn2) { return -1; } int ne_ssl_cert_write(const ne_ssl_certificate *cert, const char *filename) { return -1; } char *ne_ssl_cert_export(const ne_ssl_certificate *cert) { return NULL; } ne_ssl_certificate *ne_ssl_cert_import(const char *data) { return NULL; } void ne_ssl_set_clicert(ne_session *sess, const ne_ssl_client_cert *cc) {} void ne_ssl_context_trustcert(ne_ssl_context *ctx, const ne_ssl_certificate *cert) { } gnome-vfs-2.24.4/imported/neon/ne_locks.h0000644000175000001440000001427011334251016015151 00000000000000/* WebDAV Class 2 locking operations Copyright (C) 1999-2002, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_LOCKS_H #define NE_LOCKS_H #include "ne_request.h" /* for ne_session + ne_request */ #include "ne_uri.h" /* for ne_uri */ BEGIN_NEON_DECLS /* The scope of a lock */ enum ne_lock_scope { ne_lockscope_exclusive, ne_lockscope_shared }; /* Lock type. Only write locks are defined in RFC2518. */ enum ne_lock_type { ne_locktype_write }; /* A lock object. */ struct ne_lock { ne_uri uri; int depth; /* the depth of the lock (NE_DEPTH_*). */ enum ne_lock_type type; enum ne_lock_scope scope; char *token; /* the lock token: uniquely identifies this lock. */ char *owner; /* string describing the owner of the lock. */ long timeout; /* timeout in seconds. (or NE_TIMEOUT_*) */ }; /* NB: struct ne_lock Would be typedef'ed to ne_lock except lock is * a verb and a noun, so we already have ne_lock the function. Damn * the English language. */ #define NE_TIMEOUT_INFINITE -1 #define NE_TIMEOUT_INVALID -2 /* Create a depth zero, exclusive write lock, with default timeout * (allowing a server to pick a default). token, owner and uri are * unset. */ struct ne_lock *ne_lock_create(void); /* HINT: to initialize uri host/port/scheme for the lock's URI, use * ne_fill_server_uri from ne_session.h. */ /* Deep-copy a lock structure: strdup's any of path, token, owner, * hostport which are set. */ struct ne_lock *ne_lock_copy(const struct ne_lock *lock); /* Free a lock structure; free's any of any of the URI, token and * owner which are set, but not the lock object itself. */ void ne_lock_free(struct ne_lock *lock); /* Like ne_lock_free; but free's the lock object itself too. */ void ne_lock_destroy(struct ne_lock *lock); /* ne_lock_store: an opaque type which is used to store a set of lock * objects. */ typedef struct ne_lock_store_s ne_lock_store; /* Create a lock store. */ ne_lock_store *ne_lockstore_create(void); /* Register the lock store 'store' with the HTTP session 'sess': any * operations made using 'sess' which operate on a locked resource, * can use the locks from 'store' if needed. */ void ne_lockstore_register(ne_lock_store *store, ne_session *sess); /* Destroy a lock store, free'ing any locks remaining inside. */ void ne_lockstore_destroy(ne_lock_store *store); /* Add a lock to the store: the store then "owns" the lock object, and * you must not free it. The lock MUST have all of: * - a completed URI structure: scheme, host, port, and path all set * - a valid lock token * - a valid depth */ void ne_lockstore_add(ne_lock_store *store, struct ne_lock *lock); /* Remove given lock object from store: 'lock' MUST point to a lock * object which is known to be in the store. */ void ne_lockstore_remove(ne_lock_store *store, struct ne_lock *lock); /* Returns the first lock in the lock store, or NULL if the store is * empty. */ struct ne_lock *ne_lockstore_first(ne_lock_store *store); /* After ne_lockstore_first has been called; returns the next lock in * the lock store, or NULL if there are no more locks stored. * Behaviour is undefined if ne_lockstore_first has not been called on * 'store' since the store was created, or the last time this function * returned NULL for the store.. */ struct ne_lock *ne_lockstore_next(ne_lock_store *store); /* Find a lock in the store for the given server, and with the given * path. */ struct ne_lock *ne_lockstore_findbyuri(ne_lock_store *store, const ne_uri *uri); /* Issue a LOCK request for the given lock. Requires that the uri, * depth, type, scope, and timeout members of 'lock' are filled in. * owner and token must be malloc-allocated if not NULL; and may be * free()d by this function. On successful return, lock->token will * contain the lock token. */ int ne_lock(ne_session *sess, struct ne_lock *lock); /* Issue an UNLOCK request for the given lock */ int ne_unlock(ne_session *sess, const struct ne_lock *lock); /* Refresh a lock. Updates lock->timeout appropriately. */ int ne_lock_refresh(ne_session *sess, struct ne_lock *lock); /* Callback for lock discovery. If 'lock' is NULL, something went * wrong performing lockdiscovery for the resource, look at 'status' * for the details. * * If lock is non-NULL, at least lock->uri and lock->token will be * filled in; and status will be NULL. */ typedef void (*ne_lock_result)(void *userdata, const struct ne_lock *lock, const char *uri, const ne_status *status); /* Perform lock discovery on the given path. 'result' is called with * the results (possibly >1 times). */ int ne_lock_discover(ne_session *sess, const char *path, ne_lock_result result, void *userdata); /* The ne_lock_using_* functions should be used before dispatching a * request which modify resources. If a lock store has been * registered with the session associated with the request, and locks * are present in the lock store which cover the resources which are * being modified by the request, then the appropriate lock tokens are * submitted in the request headers. */ /* Indicate that request 'req' will modify the resource at 'path', and * is an operation of given 'depth'. */ void ne_lock_using_resource(ne_request *req, const char *path, int depth); /* Indicate that request 'req' will modify the parent collection of * the resource found at 'path' (for instance when removing the * resource from the collection). */ void ne_lock_using_parent(ne_request *req, const char *path); END_NEON_DECLS #endif /* NE_LOCKS_H */ gnome-vfs-2.24.4/imported/neon/ne_socket.h0000644000175000001440000001520511334251016015325 00000000000000/* socket handling interface Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_SOCKET_H #define NE_SOCKET_H #include #include "ne_defs.h" #include "ne_ssl.h" /* for ne_ssl_context */ BEGIN_NEON_DECLS #define NE_SOCK_ERROR (-1) /* Read/Write timed out */ #define NE_SOCK_TIMEOUT (-2) /* Socket was closed */ #define NE_SOCK_CLOSED (-3) /* Connection was reset (e.g. server crashed) */ #define NE_SOCK_RESET (-4) /* Secure connection was closed without proper SSL shutdown. */ #define NE_SOCK_TRUNC (-5) /* ne_socket represents a TCP socket. */ typedef struct ne_socket_s ne_socket; /* ne_sock_addr represents an address object. */ typedef struct ne_sock_addr_s ne_sock_addr; #ifndef NE_INET_ADDR_DEFINED typedef struct ne_inet_addr_s ne_inet_addr; #endif /* While neon itself doesn't require per-process global * initialization, some platforms do, and so does the OpenSSL * library. */ int ne_sock_init(void); /* Shutdown any underlying libraries. */ void ne_sock_exit(void); /* Resolve the given hostname. 'flags' must be zero. Hex * string IPv6 addresses (e.g. `::1') may be enclosed in brackets * (e.g. `[::1]'). */ ne_sock_addr *ne_addr_resolve(const char *hostname, int flags); /* Returns zero if name resolution was successful, non-zero on * error. */ int ne_addr_result(const ne_sock_addr *addr); /* Returns the first network address associated with the 'addr' * object. Undefined behaviour if ne_addr_result returns non-zero for * 'addr'; otherwise, never returns NULL. */ const ne_inet_addr *ne_addr_first(ne_sock_addr *addr); /* Returns the next network address associated with the 'addr' object, * or NULL if there are no more. */ const ne_inet_addr *ne_addr_next(ne_sock_addr *addr); /* NB: the pointers returned by ne_addr_first and ne_addr_next are * valid until ne_addr_destroy is called for the corresponding * ne_sock_addr object. They must not be passed to ne_iaddr_free. */ /* If name resolution fails, copies the error string into 'buffer', * which is of size 'bufsiz'. 'buffer' is returned. */ char *ne_addr_error(const ne_sock_addr *addr, char *buffer, size_t bufsiz); /* Destroys an address object created by ne_addr_resolve. */ void ne_addr_destroy(ne_sock_addr *addr); /* Network address type; IPv4 or IPv6 */ typedef enum { ne_iaddr_ipv4 = 0, ne_iaddr_ipv6 } ne_iaddr_type; /* Create a network address from raw byte representation (in network * byte order) of given type. 'raw' must be four bytes for an IPv4 * address, 16 bytes for an IPv6 address. May return NULL if address * type is not supported. */ ne_inet_addr *ne_iaddr_make(ne_iaddr_type type, const unsigned char *raw); /* Compare two network addresses i1 and i2; return non-zero if they * are not equal. */ int ne_iaddr_cmp(const ne_inet_addr *i1, const ne_inet_addr *i2); /* Returns the type of the given network address. */ ne_iaddr_type ne_iaddr_typeof(const ne_inet_addr *ia); /* Prints the string representation of network address 'ia' into the * 'buffer', which is of size 'bufsiz'. Returns 'buffer'. */ char *ne_iaddr_print(const ne_inet_addr *ia, char *buffer, size_t bufsiz); /* Free a network address created using ne_iaddr_make. */ void ne_iaddr_free(ne_inet_addr *addr); /* Create a TCP socket; returns NULL on error. */ ne_socket *ne_sock_create(void); /* Connect the socket to server at address 'addr' on port 'port'. * Returns non-zero if a connection could not be established. */ int ne_sock_connect(ne_socket *sock, const ne_inet_addr *addr, unsigned int port); /* ne_sock_read reads up to 'count' bytes into 'buffer'. * Returns: * NE_SOCK_* on error, * >0 length of data read into buffer. */ ssize_t ne_sock_read(ne_socket *sock, char *buffer, size_t count); /* ne_sock_peek reads up to 'count' bytes into 'buffer', but the data * will still be returned on a subsequent call to ne_sock_read or * ne_sock_peek. * Returns: * NE_SOCK_* on error, * >0 length of data read into buffer. */ ssize_t ne_sock_peek(ne_socket *sock, char *buffer, size_t count); /* Block for up to 'n' seconds until data becomes available for reading * on the socket. Returns: * NE_SOCK_* on error, * NE_SOCK_TIMEOUT if no data arrives in 'n' seconds. * 0 if data arrived on the socket. */ int ne_sock_block(ne_socket *sock, int n); /* Writes 'count' bytes of 'data' to the socket. * Returns 0 on success, NE_SOCK_* on error. */ int ne_sock_fullwrite(ne_socket *sock, const char *data, size_t count); /* Reads an LF-terminated line into 'buffer', and NUL-terminate it. * At most 'len' bytes are read (including the NUL terminator). * Returns: * NE_SOCK_* on error, * >0 number of bytes read (including NUL terminator) */ ssize_t ne_sock_readline(ne_socket *sock, char *buffer, size_t len); /* Read exactly 'len' bytes into buffer; returns 0 on success, * NE_SOCK_* on error. */ ssize_t ne_sock_fullread(ne_socket *sock, char *buffer, size_t len); /* Accept a connection on listening socket 'fd'. */ int ne_sock_accept(ne_socket *sock, int fd); /* Returns the file descriptor used for socket 'sock'. */ int ne_sock_fd(const ne_socket *sock); /* Close the socket, and destroy the socket object. Returns non-zero * on error. */ int ne_sock_close(ne_socket *sock); /* Return current error string for socket. */ const char *ne_sock_error(const ne_socket *sock); /* Set read timeout for socket. */ void ne_sock_read_timeout(ne_socket *sock, int timeout); /* Negotiate an SSL connection on socket as an SSL server, using given * SSL context. */ int ne_sock_accept_ssl(ne_socket *sock, ne_ssl_context *ctx); /* Negotiate an SSL connection on socket as an SSL client, using given * SSL context. The 'userdata' parameter is associated with the * underlying SSL library's socket structure for use in callbacks. * Returns zero on success, or non-zero on error. */ int ne_sock_connect_ssl(ne_socket *sock, ne_ssl_context *ctx, void *userdata); END_NEON_DECLS #endif /* NE_SOCKET_H */ gnome-vfs-2.24.4/imported/neon/README0000644000175000001440000000070611334251016014062 00000000000000 This is the source directory of the 'neon' HTTP/WebDAV client library, which can be bundled inside other packages. For the complete neon package, see: http://www.webdav.org/neon/ This source directory may be distributed and/or modified under the terms of the GNU Library General Public License, as given in COPYING.LIB. Please send questions, bug reports, feature requests, etc, regarding the neon library, to the mailing list at: neon@webdav.org gnome-vfs-2.24.4/imported/neon/ne_compress.h0000644000175000001440000000326411334251016015672 00000000000000/* Compressed HTTP response handling Copyright (C) 2001-2004, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_COMPRESS_H #define NE_COMPRESS_H #include "ne_request.h" typedef struct ne_decompress_s ne_decompress; /* Call this to register a 'reader' callback which will be passed * blocks of response body (if the 'acceptance' callback is * successful). If the response body is returned compressed by the * server, this reader will receive UNCOMPRESSED blocks. * * Returns pointer to context object which must be passed to * ne_decompress_destroy after the request has been dispatched, to * free any internal state. If an error occurs during decompression, * the request will be aborted and session error string set. */ ne_decompress *ne_decompress_reader(ne_request *req, ne_accept_response accpt, ne_block_reader rdr, void *userdata); /* Destroys decompression state. */ void ne_decompress_destroy(ne_decompress *ctx); #endif /* NE_COMPRESS_H */ gnome-vfs-2.24.4/imported/neon/ChangeLog0000644000175000001440000055317211334251016014766 00000000000000Sun Sep 12 19:21:30 2004 Joe Orton * ne_locks.c (ne_lock_refresh): Fix to pass correct userdata to callbacks, and do call lk_cdata. Sun Sep 12 18:53:15 2004 Joe Orton * Makefile.in (libneon.a): Remove the archive first, avoiding strange problems when build $(OBJECTS) change. Sun Sep 12 18:40:50 2004 Joe Orton * ne_utils.h: Add NE_FEATURE_SOCKS. * ne_utils.c (ne_has_support): Add NE_FEATURE_SOCKS. (version_string): Use NE_HAVE_SOCKS, add NE_HAVE_IDNA. * ne_socket.c (ne_sock_init): Use NE_HAVE_SOCKS. Sun Sep 12 17:29:54 2004 Joe Orton * ne_utils.c (version_string): Declare as array rather than pointer; include "IPv6" component as necessary Sun Sep 12 15:51:38 2004 Joe Orton * ne_socket.c (ne_iaddr_typeof): New function. Sun Sep 12 12:00:10 2004 Joe Orton * ne_defs.h (ne_attribute_malloc): New macro. * ne_alloc.h: Use it to avoid warnings with older GCCs. Wed Aug 25 21:03:40 2004 Joe Orton * ne_string.h (split_string, split_string_c, pair_string, split_string_free, pair_string_free): Remove obsolete interfaces. Wed Aug 25 21:01:03 2004 Joe Orton * ne_cookies.c, ne_cookies.h: Drop cookies support: used old spec revision and wasn't very complete anyway. Wed Aug 25 20:40:26 2004 Joe Orton * ne_socket.c: Remove ne_read, ne_write macros and just use recv and send; remove unused SOCK_ERR macro. Wed Aug 25 20:27:43 2004 Joe Orton * ne_xml.c (declare_nspaces): Drop rejection of names including a colon to prevent breaking SVN deployments. Wed Aug 25 19:45:20 2004 Joe Orton * ne_socket.c (readable_raw): Use poll where available. (ne_sock_connect): Fail if not using poll and fd returned by socket() is greater than FD_SETSIZE. Wed Aug 25 18:40:28 2004 Joe Orton * ne_xml.h (ne_xml_parse): Clarify that a len=0 call is required to signify end-of-document. Wed Aug 25 18:37:13 2004 Joe Orton * ne_request.c (resolve_first, resolve_next): New functions. (lookup_host): Use them to allow user-forced addresses. * ne_session.c (ne_set_addrlist): New function. * ne_private.h (struct ne_session_s): Add addrlist, numaddrs, curaddr fields. Wed Aug 25 18:25:31 2004 Joe Orton * ne_xml.c (struct ne_xml_parser_s): Add bom_pos field. (ne_xml_parse): Skip over the UTF-8 Byte Order Mark since the XML parsers do not support it yet. Wed Jul 7 16:07:44 2004 Joe Orton * ne_request.c (do_connect): Fix ne_conn_connected status call (Shameek Basu). Mon Jul 5 18:40:35 2004 Joe Orton * ne_basic.c (ne_content_type_handler): Use us-ascii as default charset for text/xml, as per RFC3280. Mon Jul 5 10:56:19 2004 Joe Orton * ne_compress.c (struct ne_decompress_s): Add acceptor field. (gz_acceptor): New function. (ne_decompress_reader): Fix to pass the user-supplied userdata pointer to the user-supplied acceptor callback, via gz_acceptor. Mon Jul 5 10:52:40 2004 Joe Orton * ne_compress.c (do_inflate): Don't invoke the reader callback if no bytes where produced by inflate(). (process_footer): Call the reader callback with size=0 to indicate end-of-response for a good checksum match. Sat Jul 3 14:33:56 2004 Joe Orton * ne_auth.c (auth_challenge): Fix to set got_qop in challenge correctly (Hideaki Takahashi). Mon May 17 15:03:54 2004 Joe Orton * ne_socket.h (ne_addr_resolve): Clarify that 'flags' must be passed as zero for forwards-compat. Sun May 2 21:14:14 2004 Joe Orton Fix buffer overflow in RFC1036 date parser, CVE CAN-2004-0389. * ne_dates.c (RFC1036_FORMAT): Specify maximum field with for day name. (ne_rfc1123_parse, ne_rfc1036_parse, ne_asctime_parse): Make thread-safe; remove static buffers. Sun May 2 16:59:39 2004 Joe Orton * ne_dates.c [RFC1123_TEST] (main): Remove embedded test cases. Sun May 2 13:18:29 2004 Joe Orton * Makefile.in (LINK): Add -no-undefined. Fri Apr 16 22:53:59 2004 Joe Orton * ne_xml.c (declare_nspaces, expand_qname): Don't try to include document context in error strings. Fri Apr 16 11:44:34 2004 Joe Orton * Makefile.in (LIBS): Include NEON_LTLIBS. Wed Apr 14 10:39:53 2004 Joe Orton Fix format string vulnerabilities, CVE CAN-2004-0179: * ne_207.c (ne_simple_request): Avoid format string vulnerabilities. * ne_xml.c (ne_xml_set_error): Likewise. * ne_props.c (propfind): Likewise. * ne_locks.c (ne_lock, ne_lock_refresh): Likewise. Wed Apr 14 10:33:46 2004 Joe Orton * ne_auth.c (ah_post_send): Avoid false positives from gcc -Wformat-security. Tue Apr 13 20:51:41 2004 Joe Orton * ne_auth.c: Conditionally include gssapi_generic.h. Thu Apr 8 13:40:03 2004 Joe Orton * ne_props.h: Don't use an anonymous enum for the proppatch operation type, as some C++ compilers don't like it. Wed Apr 7 13:50:10 2004 Joe Orton * ne_request.c (add_fixed_headers): Don't both sending Keep-Alive header if persistent connections are disabled. Wed Apr 7 13:47:46 2004 Joe Orton * ne_auth.c (auth_challenge): Allow Negotiate challenges from a proxy. Wed Apr 7 13:36:55 2004 Joe Orton * ne_auth.c (clean_session): Remove redundant assignment of GSS_C_NO_CONTEXT; gss_delete_sec_context already does this. Wed Apr 7 13:33:10 2004 Joe Orton * ne_auth.c (get_gss_name): Handle failure case internally. (auth_register): Updated accordingly. Wed Apr 7 13:15:57 2004 Joe Orton * ne_request.c: Use strtoq to print off_t's where necessary. Wed Apr 7 11:14:24 2004 Joe Orton * ne_auth.c (get_gss_name): Take a hostname string. (auth_register): Pass proxy or server hostname to get_gss_name as appropriate. Wed Apr 7 11:09:50 2004 Joe Orton * ne_auth.c (continue_negotiate): If given no input token, and the gssctx is not in the initial state, reset it. Mon Mar 29 17:06:49 2004 Joe Orton * ne_auth.c: Adjust to cope with GSSAPI continuation: (struct auth_session_s): Store GSSAPI context, name and mechanism. (get_gss_name): Take an ne_session. (continue_negotiate): Renamed from gssapi_challenge; take input token, handle GSS_S_CONTINUE_NEEDED return value. (verify_digest_response): Renamed from verify_response. (verify_negotiate_response): New function. (auth_challenge): Cope with Negotiate responses which gratuitously break the auth-param grammar. (ah_post_send): Handle Negotiate responses. (free_auth, clean_session): Free persisted GSSAPI objects. (auth_register): Initialize GSSAPI objects. Sun Mar 28 03:03:17 2004 Joe Orton * ne_auth.c (get_gss_name): Don't leak token.value. Sun Mar 28 02:59:58 2004 Joe Orton * ne_auth.c (get_cnonce): Only use RAND_pseudo_bytes() if the PRNG is seeded. Sun Mar 28 02:47:20 2004 Joe Orton * ne_auth.c (gssapi_challenge, get_gss_name): Simplify. Sun Mar 28 02:35:48 2004 Joe Orton * ne_auth.c (request_gssapi, get_gss_name, auth_challenge): Implement the Negotiate protocol rather than the obsoleted GSS-Negotiate. (make_gss_error): New function. (gssapi_challenge): Use it for better error handling (set session error string); fix memory leaks. Don't delegate credentials. Sat Mar 27 20:49:24 2004 Joe Orton * ne_auth.c (ah_post_send): Clear auth header collector buffers after each request. Fri Mar 26 12:16:15 2004 Joe Orton * ne_socket.c (init_ssl): Just initialize the SSL library; delay seeding PRNG until really necessary (performance fix). (seed_ssl_prng): Split from init_ssl. (ne_sock_connect_ssl): Call seed_ssl_prng(). (ne_sock_init): Adjust since init_ssl() can't fail. Fri Mar 26 12:01:38 2004 Joe Orton * ne_utils.c: Include zlib.h before ne_*.h to fix issues on platforms where zconf.h does "#define const". Thu Mar 11 23:38:01 2004 Joe Orton * ne_openssl.c (provide_client_cert): Avoid malloc(0) when server sends no CA names in CertificateRequest. (ne_ssl_cert_write): Be paranoid and clear the OpenSSL error stack on write failures. Sun Mar 7 11:17:04 2004 Joe Orton * Makefile.in (CFLAGS): Don't use NEON_CFLAGS. Mon Feb 23 23:03:08 2004 Joe Orton * ne_string.c (ne_vsnprintf, ne_snprintf): New functions. Sun Feb 22 23:34:47 2004 Joe Orton * ne_private.h (struct ne_session_s): Remove expect100_works field. * ne_request.c (ne_set_request_expect100): New function. (ne_begin_request): Remove req->use_expect100 manipulation. (send_request): Handle enabling 100continue without a request body. * ne_session.c (ne_set_expect100): Removed function. Sun Feb 22 20:17:04 2004 Joe Orton * ne_socket.c (error_ossl): Check for ERR_reason_error_string returning NULL. Sun Feb 22 17:54:43 2004 Joe Orton * ne_socket.c: Don't disable getaddrinfo support here. Sun Feb 22 17:40:07 2004 Joe Orton * ne_utils.h (min): Remove definition to... * ne_uri.c (min): ...here. Sun Feb 22 17:31:35 2004 Joe Orton * ne_props.h: Give the 'type' enum a tag name. Sun Feb 22 17:27:28 2004 Joe Orton * ne_207.c (end_element): Strip whitespace from cdata. Sun Feb 22 16:27:58 2004 Joe Orton * ne_auth.c (struct auth_request): Make auth_hdr, auth_info_hdr fields into ne_buffer *'s. (ah_collect_header): New function. (ah_create): Create ne_buffers for auth_{,info_}hdr; use ah_collect_header rather than ne_duplicate_header to fix handling of multiple auth challenge headers. (ah_post_send): Adjust for char * -> ne_buffer *. (tokenize): Recognize a challenge scheme which is terminated with a comma (i.e. with no challange parameters). (auth_challenge): Fix handling of unrecognized challenges. (ah_destroy): Destroy ne_buffers. Sun Feb 22 15:04:46 2004 Joe Orton * ne_request.c (ne_set_request_body_provider64): New function. Sun Feb 15 13:37:03 2004 Joe Orton * ne_ssl.h: Define that ne_ssl_readable_dname returns UTF-8 encoded strings. * ne_openssl.c (ne_ssl_readable_dname): Convert dname strings to UTF-8, or use "???". Sat Feb 14 21:57:25 2004 Joe Orton * ne_xml.c (invalid_ncname_ch1): New macro. (declare_nspaces): Use it, to reject some more invalid namespace prefixes; also check for a colon anywhere in the NCName. (expand_qname): Likewise for the element name. Mon Feb 9 21:38:03 2004 Joe Orton * ne_dates.c [WIN32] (GMTOFF): Use gmt_to_local_win32; (gmt_to_local_win32): New function, from Jiang Lei. Mon Jan 26 14:38:05 2004 Joe Orton * ne_socket.c (ne_sock_connect_ssl): Check that OpenSSL version matches between library at run-time and headers at compile-time. Sat Jan 24 17:49:27 2004 Joe Orton * ne_dates.c (HAVE_STRUCT_TM___TM_GMTOFF): Alternative GMTOFF() macro. Sat Jan 24 16:49:30 2004 Joe Orton * ne_auth.c (basic_challenge): Cast first parameter to ne_base64 to unsigned char * to fix warnings with some compilers. Sat Jan 3 13:17:36 2004 Joe Orton * ne_request.h (ne_set_request_body_fd64): Define conditional on NE_LFS. * ne_request.c (ne_set_request_body_fd64): Likewise. Thu Jan 1 18:01:45 2004 Joe Orton * ne_request.c: Use NE_HAVE_LFS not _LARGEFILE64_SOURCE in conditional support for off64_t. Thu Jan 1 17:38:55 2004 Joe Orton * ne_request.h [_LARGEFILE64_SOURCE] (ne_set_request_body_fd64): New function. * ne_request.c: Define ne_lseek, ne_off_t, ne_strtoff, NE_OFFT_MAX, FMT_NE_OFF_T appropriately for _LARGEFILE64_SOURCE or otherwise. (struct ne_request_s): Use ne_off_t in place of off_t throughout. (body_fd_send): Use ne_lseek; reset 'remain' after seeking. (clength_hdr_handler): Use ne_off_t, ne_strtoff and NE_OFFT_MAX. (set_body_length): Take an ne_off_t length parameter; use FMT_NE_OFF_T to print it. (ne_set_request_body_fd64): New function. * ne_utils.h (NE_FEATURE_LFS): New feature. * ne_utils.c (ne_has_support): Support NE_FEATURE_LFS. Mon Nov 24 20:13:14 2003 Joe Orton * ne_request.c (struct ne_response): Split handling for chunked vs clength-delimited responses into a union. Use off_t for storing whole-length-of-response values. (read_response_block, ne_read_response_block): Update accordingly. (ne_begin_request): Remove unnecessary variable assignments. Sun Nov 23 16:03:22 2003 Joe Orton * ne_request.h (ne_set_request_body_fd): Take offset and length arguments, return void. (ne_set_request_body_provider): Take off_t length argument. * ne_request.c (struct ne_request_s): Store current position within buffer/file used as request body source. Store request body lengths using off_t type. (body_string_send): Adjust for renamed fields. (body_fd_send): Seek to requested offset; don't read past requested body length. (set_body_length): Renamed from set_body_size. * ne_basic.c (ne_put): Determine file size here; adjust for new ne_set_request_body_fd API. Sun Nov 23 15:05:12 2003 Joe Orton * ne_basic.c, ne_basic.h: Remove two-functions-in-one, ne_put_if_unmodified. Fri Nov 14 14:05:32 2003 Joe Orton * ne_utils.c (ne_has_support): Add NE_FEATURE_IDNA. Fri Nov 14 13:11:49 2003 Joe Orton * ne_session.c (set_hostinfo): [NE_HAVE_LIBIDN]: Use string from IDNA ToAscii operation on provided hostname if successful. Fri Nov 14 11:23:16 2003 Joe Orton All files: replace use of NEON_NODAV with NE_HAVE_DAV, NEON_SSL with NE_HAVE_SSL, NEON_ZLIB with NE_HAVE_ZLIB. Use NE_HAVE_DAV not USE_DAV_LOCKS. * ne_utils.c (ne_has_support): New feature detection interface, replaces ne_supports_ssl. Thu Nov 13 20:38:28 2003 Joe Orton * ne_request.c (ne_begin_request): Presume a 205 response has no message-body too; RFC2616 compliance fix. Thu Nov 13 20:31:07 2003 Joe Orton * ne_auth.c (ah_post_send): Treat a 401 response to a CONNECT request as a valid proxy auth challenge, to work around buggy proxies. Tue Nov 11 21:13:18 2003 Joe Orton Place library-internal symbols in the "ne__" namespace. * ne_request.c (ne__pull_request_body): Renamed from ne_pull_request_body; all callers updated. * ne_session.c (ne__negotiate_ssl): Renamed from ne_negotiate_ssl; all callers updated. Tue Nov 11 21:08:54 2003 Joe Orton * ne_alloc.h: Mark all allocation functions as having 'malloc' attribute for GCC. Tue Nov 11 20:36:12 2003 Joe Orton * ne_xml.h (ne_xml_failure): Replaces ne_xml_valid, inverted and more useful return value. * ne_xml.c (struct ne_xml_parser_s): Replace 'valid' field with 'failure', with inverted logic. (start_element, end_element, char_data): Check failure flag appropriately. Set failure flag to return value of callback. Set failure flag to positive integer on a parse error. (ne_xml_create): Don't initialize failure flag. (ne_xml_parse): Check/set failure flag appropriately. (sax_error): Only set an error string (and the error flag) if failure is zero. * ne_207.c (ne_simple_request): Adjust to use ne_xml_failure. * ne_locks.c (ne_lock, ne_lock_refresh): Likewise. * ne_props.c (propfind): Likewise. Wed Oct 22 22:19:19 2003 Joe Orton * ne_request.c (read_response_block): Treat an EOF without clean SSL closure as a valid request body delimiter in any case. Wed Oct 22 21:44:48 2003 Joe Orton * ne_defs.h (ne_attribute): New macro. * ne_request.h, ne_session.h, ne_utils.h: Use ne_attribute instead of littering #ifdef __GNUC__ and __attribute__ everywhere. Tue Oct 21 20:03:47 2003 Joe Orton Fix various strict signedness bugs: * ne_auth.c (auth_session): Make nonce_count argument unsigned. (get_cnonce): Use unsigned data buffer. (get_gss_name, gssapi_challenge): Use unsigned integers for status variables. (request_digest): Print nonce count as unsigned. (verify_response): Make nonce_count unsigned. Tue Oct 7 20:52:06 2003 Joe Orton When using SSL via a proxy, don't leak server auth credentials to the proxy, and vice versa. * ne_auth.c (auth_session): Add context field. (ah_create): Ignore challenges in a bad context. (ah_pre_send, ah_destroy): Check that the request-private cookie is not NULL. (auth_register): Take an isproxy flag; set context field appropriately in session structure. (ne_set_server_auth, ne_set_proxy_auth): Adjust accordingly. Tue Oct 7 19:58:52 2003 Joe Orton * ne_openssl.c (ne_negotiate_ssl): If the returned cert chain was NULL, try and create one from the peer certificate alone (fix for use of SSLv2 connections). Mon Sep 29 21:57:40 2003 Joe Orton * ne_auth.c [WIN32]: Include windows.h to fix non-SSL build. Thu Sep 25 20:05:18 2003 Joe Orton * ne_xml.c (ne_xml_create): Specify an initial error string. Sun Sep 21 23:00:10 2003 Joe Orton * ne_cookies.c (set_cookie_hdl): Strip whitespace around cookie name and value. Sun Sep 14 10:50:01 2003 Joe Orton * ne_socket.c (ne_addr_resolve): Use result of autoconf test for working AI_ADDRCONFIG support. Sat Sep 6 12:05:00 2003 Joe Orton * ne_openssl.c (check_identity): Take an optional server address argument; check identity against IPaddress extension too if given. (check_certificate): Optionally pass server address to check_identity. (populate_cert): Adjust accordingly. Thu Sep 4 21:41:38 2003 Joe Orton * ne_socket.c (ne_sock_init): Succeed even if PRNG was not seeded. Thu Sep 4 21:33:34 2003 Joe Orton * ne_session.c (ne_set_useragent): Build and store the entire User-Agent header field in sess->user_agent. * ne_request.c (add_fixed_headers): Adjust accordingly; avoid unnecessary calls to ne_buffer_*. Thu Sep 4 21:27:34 2003 Joe Orton * ne_socket.c: Include netinet/tcp.h. (ne_sock_connect): Disable the Nagle algorithm; thanks to Jim Whitehead and Teng Xu for the analysis. Thu Sep 4 11:24:04 2003 Joe Orton * ne_defs.h: Define ssize_t here for Win32. * ne_socket.h: Don't define ssize_t here. Tue Sep 2 20:20:16 2003 Joe Orton * ne_auth.c (auth_challenge): Update to use ne_token not split_string, patch by Tom Lee . Wed Jul 30 21:54:38 2003 Joe Orton * ne_cookies.c (set_cookie_hdl): Fix NULL pointer dereference; thanks to Markus Mueller . Fri Jul 25 11:05:52 2003 Joe Orton * ne_request.c (do_connect): On failure to connect, set error string and call ne_sock_close directly rather than using aborted(); fix leak of socket structure. Wed Jul 23 23:20:42 2003 Joe Orton Fix SEGV if inflateInit2 fails with Z_MEM_ERROR etc. * ne_compress.c (set_zlib_error): New function. (do_inflate, gz_reader): Use it. Wed Jul 23 22:50:50 2003 Joe Orton Add support for GSS-Negotiate; patch from Risko Gergely and Burjan Gabor: * ne_auth.c [HAVE_GSSAPI]: Include gssapi.h. (auth_scheme): Add auth_scheme_gssapi. (auth_session): Add gssapi_token. (clean_session): Free gssapi_token. (request_gssapi, get_gss_name, gssapi_challenge): New functions. (tokenize): Handle challenge with single token. (auth_challenge): Accept and process a GSS-Negotiate challenge. (ah_pre_send): Send GSS-Negotiate handshake. Wed Jul 23 22:46:28 2003 Joe Orton * ne_207.c (ne_207_set_response_handlers, ne_207_set_propstat_handlers): Fix to match declarations (thanks to Diego Tártara). Fri Jun 27 20:30:45 2003 Joe Orton * ne_openssl.c [OPENSSL_VERSION_NUMBER < 0x0090700fL]: Fix build against OpenSSL < 0.9.7. Sun Jun 22 23:07:45 2003 Joe Orton * ne_session.c (ne_session_destroy): Replace unnecessary use of NE_FREE with ne_free. (set_hostinfo): Don't free hostport/hostinfo here. (ne_session_proxy): Free existing proxy hostname here if necessary. Sat Jun 21 12:58:25 2003 Joe Orton * ne_request.c (ne_begin_request): Set or clear is_http11 flag for each request. Wed Jun 18 20:54:44 2003 Joe Orton * ne_socket.c: Add AI_ADDRCONFIG support; [USE_CHECK_IPV6]: Define only if __linux__. (init_ipv6) [USE_CHECK_IPV6]: New conditional. (ne_addr_resolve) [USE_ADDRCONFIG]: Use AI_ADDRCONFIG. Wed Jun 18 20:03:13 2003 Joe Orton * ne_socket.c (ne_sock_create): New function (renamed from create_sock). (ne_sock_connect): Take an ne_socket *, return int. (ne_sock_accept): Likewise. (ne_sock_close): Only call ne_close if fd is non-negative. * ne_request.c (aborted): Handle NE_SOCK_* errors specially. (do_connect): Adapt for ne_sock_create/connect interface. Set sess->connected here on success. (open_connection): Don't set sess->connected here. Sun Jun 15 12:14:22 2003 Joe Orton * ne_ssl.h (ne_ssl_cert_digest): Pass digest as a pointer rather than an array. Sun Jun 15 11:00:09 2003 Joe Orton * ne_stubssl.c (ne_ssl_cert_cmp): Add stub. Wed May 28 21:37:27 2003 Joe Orton * ne_openssl.c (ne_ssl_context_create): Enable workarounds in OpenSSL for better interop with buggy SSL servers. Fri May 23 23:13:30 2003 Joe Orton * ne_stubssl.c (ne_ssl_set_clicert): Add stub. Sat May 10 17:05:26 2003 Joe Orton * ne_xml.c: Rename struct ne_xml_handler to struct handler. Thu May 8 20:55:46 2003 Joe Orton * ne_openssl.c (ne_ssl_clicert_read): Pass "b" to fopen. Tue May 6 22:08:08 2003 Joe Orton * ne_openssl.c (check_certificate): Re-order verify failure handling to allow caller to set a custom session error string. Tue May 6 20:21:27 2003 Joe Orton * ne_md5.c (md5_stream): Restore. Sat Apr 26 19:21:03 2003 Joe Orton * ne_request.c (te_hdr_handler): Treat presence of any T-E response header as implying the response is chunked, regardless of value. Sat Apr 26 18:11:24 2003 Joe Orton * ne_xml.c: Rename struct ne_xml_nspace to struct namespace. Wed Apr 23 22:19:29 2003 Joe Orton * ne_openssl.c (ne_ssl_cert_export): Don't bother checking for i2d_X509() failure; no OpenSSL code ever checks, so everyone's doomed if it really can fail. Wed Apr 23 22:01:23 2003 Joe Orton * ne_openssl.c (ne_ssl_cert_import, ne_ssl_cert_export, ne_ssl_cert_write): Clear OpenSSL error stack on errors. Wed Apr 23 18:23:53 2003 Joe Orton * ne_stubssl.c (ne_ssl_cert_write, ne_ssl_cert_import, ne_ssl_cert_export): Add stubs. Wed Apr 23 14:05:32 2003 Joe Orton * ne_openssl.c (ne_ssl_cert_write): New function. Tue Apr 22 23:21:22 2003 Joe Orton * ne_string.c (ne_unbase64): Optimise out some redundant branches. Tue Apr 22 20:24:44 2003 Joe Orton * ne_openssl.c (ne_ssl_cert_export, ne_ssl_cert_import, ne_ssl_cert_cmp): New functions. Tue Apr 22 18:31:55 2003 Joe Orton * ne_string.c (ne_unbase64): New function. Tue Apr 22 15:53:41 2003 Joe Orton * ne_string.c (ne_base64): Fix encoding binary data; take unsigned argument. Tue Apr 22 13:07:48 2003 Joe Orton * ne_stubssl.c (ne_ssl_cert_validity): Add stub. Tue Apr 22 09:22:26 2003 Joe Orton * ne_openssl.c (ne_ssl_cert_validity): New function. (asn1time_to_string): Format into a fixed-size buffer. Tue Apr 22 08:38:30 2003 Joe Orton * ne_locks.c (ne_lock_discover, ne_lock): Don't leak the cdata buffer. * ne_props.c (ne_propfind_destroy): Don't leak the value buffer. Mon Apr 21 23:52:25 2003 Joe Orton * ne_xml.c (ne_xml_destroy): Free root element. Mon Apr 21 23:46:17 2003 Joe Orton * ne_openssl.c (dup_client_cert): Set decrypted state; dup the friendly name. (ne_ssl_clicert_free): Free friendly name. Mon Apr 21 19:44:55 2003 Joe Orton * ne_md5.h (ne_md5_buffer, ne_md5_stream): Remove unused functions. Mon Apr 21 18:17:14 2003 Joe Orton * ne_locks.c, ne_207.c: s/NE_ELM_/ELM_/ since no element ids are exported. Mon Apr 21 16:38:14 2003 Joe Orton Redesign the XML interface: have startelm callback map {nspace, name} onto a state integer or decline. Remove "valid"/"invalid"; don't abort the parse if no handler accepts an element. Push cdata accumulation down into the caller; drop collect mode, stripws mode. * ne_xml.h (ne_xml_elmid, struct ne_xml_elm): Removed. (ne_xml_startelm_cb): Return a state/acceptance integer, take a state integer, nspace, name and atts. (ne_xml_endelm_cb, ne_xml_cdata_cb): Take a state integer. (ne_xml_push_mixed_handler): Removed. (ne_xml_push_handler): Removed element list argument. (struct ne_xml_idmap, ne_xml_mapid): New interface. * ne_xml.c (struct element): Replaces ne_xml_state. Add name, nspace, state fields. (friendly_name, find_handler, parse_element, ne_xml_push_mixed_handler, push_handler): Removed functions. (declare_nspaces, expand_qname): Factored out from find_handler and parse_element. (start_element): Use expand_qname, declare_nspaces. Find appropriate handler here. Guarantee not to pass a NULL atts array to the start-element callback. Drop collect mode. (end_element): Drop collect mode (ne_xml_push_handler): Fold push_handler back in. (ne_xml_mapid): New function. * ne_207.h (NE_ELM_*): Don't export element id. (NE_207_STATE_PROP, NE_207_STATE_TOP): Export state integers. * ne_207.c (struct ne_207_parser_s): Add cdata field. (map207): Replace element list with idmap array. (can_handle): New function, replacing check_context logic. (start_element): Determine new state integer; only accept the element in valid states. Clear cdata. (end_element): Use state rather than element id. Do nothing for end of 'response' element if element is incomplete. (ne_207_create): Create cdata buffer. (ne_207_destroy): Destroy cdata buffer. (ne_207_ignore_unknown): Removed function. (ne_simple_request): Don't call ne_207_ignore_unknown. * ne_props.h (NE_PROPS_STATE_TOP): Define state. * ne_props.c (struct ne_propfind_handler_s): Add value and depth fields. (ELM_flatprop): Define state. (flat_elms): Removed array. (chardata): Append to value field when in ELM_flatprop state. (startelm): Decline everything other than elements within the 'prop' state. Collect flatprop contents. (endelm): Collect flatprop contents. * ne_locks.c (struct discover_ctx, struct lock_ctx): Store cdata. (element_map): Replace element list with idmap array. (can_accept): Replaces check_context callback. (ld_startelm, lk_cdata, ld_cdata): New functions. Mon Apr 14 00:04:20 2003 Joe Orton * ne_207.h (ne_207_start_response, ne_207_end_response, ne_207_start_propstat, ne_207_end_propstat): Use ANSI-style function pointers in typedefs. * ne_207.c (struct ne_207_parser_s): Updated accordingly. Mon Apr 14 00:02:10 2003 Joe Orton * ne_request.c (read_response_block): Better error messages for invalid chunks, don't use strncmp for a two-character comparison. Mon Apr 7 22:26:50 2003 Joe Orton * ne_stubssl.c (ne_ssl_cert_identity): New function. Mon Apr 7 22:16:16 2003 Joe Orton * ne_openssl.c (struct ne_ssl_certificate_s): Add identity field. (check_identity): Add optional identity argument. (populate_cert): Retrieve cert identity using check_identity. (check_certificate): Pass extra NULL to check_identity. (ne_ssl_cert_identity): New function. (ne_ssl_cert_free): Free the identity field. Mon Apr 7 21:29:54 2003 Joe Orton * ne_openssl.c (check_identity): Take a string hostname rather than a session object. (check_certificate): Adjust accordingly. Sun Apr 6 21:26:05 2003 Joe Orton * ne_string.h (NE_HEX2ASC): Cast result to char to avoid warnings with some compilers. Sun Apr 6 20:11:42 2003 Joe Orton * ne_openssl.c (ne_ssl_readable_dname): Include commonName or emailAddress in returned string if either is the only attribute. Sun Mar 30 10:54:20 2003 Joe Orton Split decryption of client certs into two steps * ne_openssl.c (ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt): New functions. (ne_ssl_client_cert_s): Add p12 and decrypted fields. (find_friendly_name): New function. (get_friendly_name): Removed function. (ne_ssl_clicert_read): Drop password callback; on decrypt failure, extract friendly name and set decrypted state of clicert. Sun Mar 30 10:54:01 2003 Joe Orton * ne_stubssl.c (ne_ssl_clicert_encrypted, ne_ssl_clicert_decrypt): New stubs. (ne_ssl_clicert_read): Adjusted for API change. Sat Mar 29 14:23:37 2003 Joe Orton * ne_openssl.c (ne_ssl_dname_cmp): New function. * ne_stubssl.c (ne_ssl_dname_cmp): New function. Sat Mar 29 13:52:47 2003 Joe Orton * ne_openssl.c (struct ne_ssl_client_cert_s): Add 'friendly_name' field. (get_friendly_name, ne_ssl_clicert_name): New functions. (ne_ssl_clicert_read): Store the cert's friendly name. * ne_stubssl.c (ne_ssl_clicert_name): New function. Sat Mar 29 13:16:14 2003 Joe Orton * ne_openssl.c (ne_ssl_clicert_owner): New function. Fri Mar 28 22:12:57 2003 Joe Orton * ne_stubssl.c (ne_ssl_cert_digest): New function. * ne_openssl.c (ne_ssl_cert_digest): New function. Wed Mar 26 20:41:57 2003 Joe Orton * ne_session.c (ne_ssl_trust_cert) [NEON_SSL]: Only build when SSL support is present. Wed Mar 26 20:01:00 2003 Joe Orton Begin abstraction of SSL layer to better isolate SSL-library-specific code, and to improve certificate handling interface. Drop support for PEM-encoded client certificates. * ne_session.h (ne_ssl_trust_cert): Replaces ne_ssl_load_ca, in conjunction with ne_ssl_load_cert. (ne_ssl_trust_default_ca): Replaces ne_ssl_load_default_ca. (ne_ssl_keypw_prompt): Removed function, no longer needed. (ne_ssl_set_clicert): Replaces ne_ssl_load_pkcs12, in conjunction with ne_ssl_clicert_read. (ne_ssl_provide_clicert): Replaces ne_ssl_provide_ccert, callback type changed. * ne_openssl.c: New file; much code moved from ne_session.c. * ne_privssl.h: New file, private interface between ne_socket.c and ne_openssl.c. * ne_ssl.h: New file. * ne_private.h (struct ne_session_s): Store pointers to ne_ssl_client_cert etc opaque objects, not OpenSSL structures. * ne_session.c: Most of ne_ssl_* moved to ne_openssl.c. (ne_session_create, ne_session_destroy): Use ne_ssl_cert_* etc to manage cert objects. * ne_socket.c (struct ne_socket_s): Replace SSL *, SSL_CTX * pointers with an ne_ssl_socket * pointer. (readable_ossl, error_ossl, read_ossl, write_ossl, ne_sock_close): Compensate for above change. (ne_sock_use_ssl): Removed function. (ne_sock_switch_ssl): Pass in SSL * as void for time being. (ne_sock_connect_ssl): Renamed and cleaned up version of ne_sock_use_ssl_os. (ne_sock_sslsock): New function. * Makefile.in: Add deps for ne_openssl.c. Sun Mar 23 13:02:58 2003 Joe Orton * ne_session.c (ne_set_useragent): Use ne_malloc. Sat Mar 22 21:06:45 2003 Joe Orton * ne_socket.c (raw_connect): Fill in sin6_family or sin_family since AIX 4.3 fails to do so. Wed Mar 19 20:44:11 2003 Joe Orton * ne_session.c [NEON_SSL] (free_client_cert): Build conditional on NEON_SSL. Mon Mar 17 20:33:32 2003 Joe Orton * ne_socket.c: Include netdb.h conditional on HAVE_NETDB_H. (fix build for older versions of CygWin). Sun Mar 16 23:30:20 2003 Joe Orton * ne_session.c (check_identity): Fix leak of subject alt. name structures. Sun Mar 16 19:21:22 2003 Joe Orton * ne_session.c (free_client_cert): New function. (ne_session_destroy, ne_ssl_load_pem, ne_ssl_load_pkcs12): Call it; prevent memory leak if ne_ssl_load_{pem,pkcs12} are called >1 per session. Sun Mar 16 18:00:34 2003 Joe Orton * ne_session.c (provide_client_cert): Free peer certificate after use. (ne_session_destroy): Free client cert and key if present. Sun Mar 16 14:23:05 2003 Joe Orton * ne_xml.c [HAVE_EXPAT]: Include xmlparse.h for bundled expat build. * ne_utils.c: Only include expat.h if HAVE_XMLPARSE_H is not defined. Wed Mar 12 15:04:13 2003 Joe Orton * ne_redirect.c (struct redirect): Add 'valid' field. (post_send): Set and clear 'valid' to keep track of whether stored URI is valid. (ne_redirect_location): Return NULL if stored URI is not valid. Wed Mar 12 14:52:49 2003 Joe Orton * ne_uri.c (ne_uri_free): Zero-initialize structure after free'ing. Tue Mar 11 22:01:11 2003 Joe Orton * ne_redirect.c (ne_redirect_location): Return NULL if no redirect session is registered, rather than SEGV; Ralf Mattes . Sun Mar 9 16:33:24 2003 Joe Orton Fix a memory leak if an XML parse error occurs during a PROPFIND response: * ne_props.c (ne_propfind_current_private): Return NULL if no propset is being processed. (free_propset): Free propset href here. (end_response): Don't free propset href here. Set current field of handler to NULL after free'ing propset. (ne_propfind_destroy): Free current propset if one was being processed. Sun Mar 9 11:53:58 2003 Joe Orton * ne_207.c (ne_207_destroy): Fix possible leak of reason_phrase string. Sun Mar 9 11:01:15 2003 Joe Orton * ne_utils.c (ne_parse_statusline): Use ne_strclean. * ne_session.c (ne_get_error): Use ne_strclean. Sun Mar 9 10:53:52 2003 Joe Orton * ne_xml.c: Remove broken "UTF-8 decoding" support used for libxml 1.x. Sun Mar 9 09:55:26 2003 Joe Orton * ne_xml.c: Drop support for expat < 1.95.0 and libxml 1.x. * ne_utils.c (version_string): Include expat version string. Sun Mar 9 09:54:00 2003 Joe Orton * ne_socket.c: Don't declare h_errno on Win32 either. Sun Mar 9 08:49:40 2003 Joe Orton * ne_string.c (do_concat) [HAVE_STPCPY]: Use stpcpy rather than strlen/memcpy, when available. Mon Mar 3 22:17:04 2003 Joe Orton * ne_socket.c [!USE_GETADDRINFO && !HAVE_DECL_H_ERRNO): Declare h_errno (fix build on SCO OpenServer 5.0). Sat Mar 1 21:22:19 2003 Joe Orton * ne_redirect.c (free_redirect): Fix once-per-session memory leak. Sat Mar 1 20:23:47 2003 Joe Orton Add implemention of simple memory leak tracking, for testing purposes. * ne_alloc.c [NEON_MEMLEAK] (tracking_malloc, ne_free_ml, ne_malloc_ml, ne_calloc_ml, ne_realloc_ml, ne_strdup_ml, ne_strndup_ml, ne_memleak_dump): New functions. * memleak.h: New header. Sat Mar 1 13:44:26 2003 Joe Orton First step towards automated memory leak tests. * ne_alloc.c (ne_free): New function. * All files: replace use of free() with ne_free(). Sat Mar 1 09:48:39 2003 Joe Orton * ne_uri.c (ne_path_unescape): Fix memory leak on invalid URI. Sat Mar 1 08:03:18 2003 Joe Orton * ne_string.c (ne_strclean): New function. Wed Feb 26 21:45:12 2003 Joe Orton * ne_request.c (ne_begin_request, proxy_tunnel, open_connection) [NEON_SSL] Don't build CONNECT tunnel support code if SSL is not supported. Wed Feb 26 21:44:18 2003 Joe Orton * ne_utils.c (ne_debug_init): Allow ne_debug_init(NULL, 0) to turn off debugging. Fix to produce debug output if the any of the specified "channels" are active, not all. (also fixing NE_DBG_FLUSH support). Tue Feb 25 23:12:31 2003 Joe Orton * ne_compress.c (process_footer): Mention number of extra bytes in error message for oversized footer. Sun Feb 23 21:19:20 2003 Joe Orton * ne_auth.c (verify_response): Fix to parse nonce count as hex string rather than decimal; fix verification of >9 responses. Thu Feb 13 20:35:45 2003 Joe Orton * ne_session.c (ne_set_useragent): Fix to append "neon/x.y.z" to application-supplied token rather prepend. Thu Feb 13 09:06:22 2003 Joe Orton * ne_request.c (open_connection): Fix for CONNECT tunnelling (regression since 0.23.x), thanks to Nathan Hand . Mon Feb 3 22:10:54 2003 Joe Orton Implement Daniel Stenberg's trick to avoid the slow AF_UNSPEC lookups on Linux: * ne_socket.c (init_ipv6, ipv6_disabled): New function and global. (ne_sock_init): Call init_ipv6. (ne_addr_resolve) [USE_GETADDRINFO]: Pass AF_INET in hints if ipv6_disabled is set. Mon Feb 3 20:55:47 2003 Joe Orton * ne_socket.c [__hpux && USE_GETADDRINFO]: Undefine USE_GETADDRINFO to work around broken implementation in HP-UX 11.11. Mon Jan 27 21:39:31 2003 Joe Orton * ne_socket.c (write_raw): Fix for handling EINTR during write(), from Sergey N Ushakov. Thu Jan 16 21:59:03 2003 Joe Orton Allow _init after _finish to succeed: Sergey N Ushakov. * ne_socket.c (init_result): New global variable. (ne_sock_init): Use init_result global rather than result. (ne_sock_finish): Clear init_result. Fri Dec 27 17:03:17 2002 Joe Orton * ne_request.c (build_request): Remove redundant call to ne_buffer_clear. Fri Dec 27 14:38:08 2002 Joe Orton * ne_request.c (ne_request_create): strdup the method string. (ne_request_destroy): free the method. Mon Dec 23 17:04:32 2002 Joe Orton * ne_socket.c (ne_write, ne_read, ne_close, ne_errno): Renamed macros from NEON_WRITE, NEON_READ, NEON_CLOSE, NEON_ERRNO. All callers changed. Mon Dec 23 16:58:43 2002 Joe Orton Add proper Win32 socket error handling, merged efforts of Johan Lindh and Sergey N Ushakov : * ne_socket.c (ne_errno, NE_ISINTR, NE_ISRESET, NE_ISCLOSED): New macros. [WIN32] (print_error): New function. (set_strerror) [WIN32]: Use print_error. (readable_raw, read_raw, write_raw): Use new error handling macros. (ne_addr_resolve) [WIN32]: Use WSAGetLastError() rather than h_errno. (ne_addr_error) [WIN32]: Use print_error. Tue Dec 10 21:41:26 2002 Joe Orton * ne_socket.c (ne_iaddr_print): Renamed from ne_addr_print for consistency with other ne_iaddr_ functions. Sun Dec 8 20:08:31 2002 Joe Orton * ne_auth.c (get_cnonce): Use GetCurrentThreadId() on Win32. Sun Nov 24 18:45:32 2002 Joe Orton * ne_auth.c: Remove qop_values and algorithm_names arrays. (request_digest): Inlined qop, algorithm name lookups accordingly. Sun Nov 24 16:45:39 2002 Joe Orton * ne_auth.h: Renamed ne_request_auth typedef to ne_auth_creds. * ne_auth.c (auth_session): Renamed reqcreds, recreds_ud fields to creds, userdata. (auth_register, ne_set_proxy_auth, ne_set_server_auth): Update for ne_request_auth rename. Fri Nov 22 17:39:35 2002 Joe Orton * ne_auth.c (auth_challenge): Fix support for RFC2617-style digest auth; notice the qop= parameter in challenge. Fix leak of parsed qop array. Fri Nov 22 17:08:01 2002 Joe Orton * ne_auth.c (get_cnonce): Rewrite to use either pseudo-random data from the SSL library (if available), or really-not-random data from gettimeofday/getpid otherwise. Sun Nov 17 22:13:49 2002 Joe Orton * ne_socket.c (ne_addr_print) [USE_GETADDRINFO]: Use the SACAST() macro. Sun Nov 17 19:29:23 2002 Joe Orton * ne_socket.c (ne_sock_connect): Make address argument const. (raw_connect): Make address argument const; adjust to use a copy of the sockaddr structure, which is correct anyway. (ne_addr_first, ne_addr_next): Make return pointer const. * ne_private.h (struct host_info): Store current address as const. Sun Nov 17 19:03:01 2002 Joe Orton * ne_socket.c (ne_register_progress): Removed function. * ne_socket.h (ne_block_reader, ne_progress, ne_register_progress): Removed. * ne_request.c (do_connect): Don't call ne_register_progress. * ne_request.h: Add ne_block_reader typedef. * ne_session.h: Include sys/types.h; add ne_progress typedef. Sun Nov 17 18:59:29 2002 Joe Orton * ne_socket.c (ne_iaddr_make, ne_iaddr_cmp, ne_iaddr_free): New functions. Mon Nov 11 19:51:24 2002 Joe Orton Allow discovery of document encoding. * ne_xml.c [HAVE_EXPAT]: (struct ne_xml_parser_s): Add encoding field. (decl_handler): New function. (ne_xml_doc_encoding): New function. Mon Nov 11 19:48:43 2002 Joe Orton * ne_xml.c (sax_handler): Use sax_error for fatal error callback. Fri Oct 11 23:50:01 2002 Joe Orton * ne_private.h (struct ne_session_s): Change 'connected' to be a simple boolean flag. * ne_session.c (ne_close_connection): Treat 'connected' as a boolean. * ne_request.c (open_connection): Greatly simplified. Fri Oct 11 00:46:52 2002 Joe Orton * ne_props.c (end_propstat): Fix NULL pointer dereference if no status object is given. Tue Oct 8 20:10:24 2002 Joe Orton * ne_xml.c (ne_xml_create) [!HAVE_EXPAT]: Set 'replaceEntities' flag in created parser so that entities are dereferenced in attribute values. Mon Oct 7 22:08:46 2002 Joe Orton * ne_socket.c (init_ssl): Attempt to seed PRNG using EGD socket at path EGD_PATH or a set of predetermined locations if EGD_PATH is not defined. No longer try $EGDSOCKET or $HOME/.entropy. Mon Oct 7 21:32:33 2002 Joe Orton * ne_auth.c (register_hooks): Removed function. (auth_register): Fold in register_hooks. Tue Sep 24 21:24:44 2002 Joe Orton * ne_request.c (ne_request_create): Pass Request-URI to create_request hooks. Tue Sep 24 20:42:45 2002 Joe Orton * ne_socket.c [__hpux]: Define _XOPEN_SOURCE_EXTENDED to 1, to pick up h_errno definition on HP-UX 10.20. Wed Sep 18 21:46:28 2002 Joe Orton * ne_compress.c (struct ne_decompress_s): Add zstrinit field. (gz_reader): Set zstrinit after inflateInit2 succeeds. (ne_decompress_destroy): Only call inflateEnd if zstrinit is set. Wed Sep 18 19:56:00 2002 Joe Orton * ne_auth.c: Remove incomplete domain support. Tue Sep 17 21:05:11 2002 Joe Orton Fix rejection of server certificates which have commonName as the least specific attribute. * ne_session.c (check_identity): Don't ignore commonName if it is the least specific attribute. Tue Sep 10 21:08:18 2002 Joe Orton * ne_request.c (lookup_host): Destroy cached address if resolve fails; fix segfault if a second request in the session is dispatched after the DNS lookup fails on the first. Mon Sep 9 22:26:03 2002 Joe Orton * ne_request.c (RETRY_RET): Treat SSL truncation as a legitimate persistent connection timeout. Fri Aug 30 21:58:45 2002 Joe Orton * ne_request.c (read_response_block): Clear can_persist flag if an EOF was read (fix for read-till-EOF response terminated by an unclean SSL shutdown). Mon Aug 26 18:05:00 2002 Joe Orton * ne_socket.c: Fix HAVE_LIMITS check (Blair Zajac). Sun Aug 25 23:29:06 2002 Joe Orton * ne_request.c (do_connect): Add debug message for connection attempt. Sun Aug 25 22:54:04 2002 Joe Orton * ne_socket.h (ne_addr_print): Make address argument const. Sun Aug 25 11:52:32 2002 Joe Orton * ne_socket.c (ne_addr_print): New function. Sun Aug 25 10:09:10 2002 Joe Orton Fix interop with Tomcat/3.2 SSL server, which performs an unclean shutdown on an HTTP/1.0 response without a C-L header. * ne_request.c (read_response_block): Ignore SSL connection truncation for a read-till-EOF response, where no reseponse content has been read yet. (ne_read_response_block): Always increase 'total' counter. Sun Aug 25 08:47:41 2002 Joe Orton * ne_request.c (aborted): Handle code=0 case specifically, and NE_SOCK_* as default. Sun Aug 25 08:24:48 2002 Joe Orton * ne_socket.h: Add `NE_SOCK_TRUNC' return value. * ne_socket.c (error_ossl): Return NE_SOCK_TRUNC when an EOF is received without a close_notify. Sat Aug 24 17:37:14 2002 Joe Orton * ne_socket.h (ne_inet_addr): New type. (ne_addr_first, ne_addr_next): New public interface. (ne_sock_connect): Change first parameter to ne_inet_addr. * ne_socket.c: Predefine ne_inet_addr for ne_socket.h, replacing ne_raw_addr. (ne_addr_first, ne_addr_first): Renamed from addr_first, addr_next; return type now ne_inet_addr; made public. (ne_sock_connect): Fold in make_socket() macro; just connect to single IP address passed in. * ne_private.h (struct host_info): Renamed 'addr' to 'address', dded 'current' field, removed 'resolved' field. * ne_request.c (lookup_host): Adjust for addr->address rename. (ne_begin_request): Call lookup_host if 'address' is NULL in host_info structure, don't use 'resolved' flag. (do_connect): Replaces init_socket; factor more code out from open_connection. Loop over available addresses until an ne_sock_connect call succeeds. (open_connection): Moved code into do_connect. * ne_session.c (ne_session_destroy): Adjust for addr->address rename. Sat Aug 24 13:45:26 2002 Joe Orton * ne_string.c (count_concat, do_concat): Compact into while() loops. Sat Aug 24 13:36:04 2002 Joe Orton * ne_private.h (VERSION_PRE11): Removed macro. (struct ne_session_s): Add is_http11 field; removed version_major, version_minor fields. * ne_request.c (add_fixed_headers): Use is_http11 flag rather than VERSION_PRE11 macro. (ne_begin_request): Set and use is_http11 flag. * ne_session.c (ne_version_pre_http11): Use is_http11 flag. (ne_session_create): Don't set version_major, version_minor fields. Sat Aug 24 09:00:13 2002 Joe Orton * ne_request.c (struct ne_request_s): Removed abs_path field. (ne_set_request_uri): Removed function. (ne_request_create): Set req->uri to be the actual Request-URI. Don't use an absoluteURI in Request-URI if using SSL via a proxy tunnel, or if passed-in path does not begin with a '/'. (build_request): Use pre-determined Request-URI. (proxy_tunnel): Pass true Request-URI to ne_request_create. (ne_request_destroy): Don't free abs_path. Sat Aug 24 00:37:25 2002 Joe Orton * ne_request.c (aborted): Fix handling of _CLOSED and _TIMEOUT socket errors, and of non-socket errors. Presume ne_sock_error cannot return NULL. Sat Aug 24 00:07:33 2002 Joe Orton * ne_cookies.c (set_cookie_hdl): Ensure that each cookie field is safe to free(). Fri Aug 23 23:46:58 2002 Joe Orton * ne_request.c (aborted): Close the connection after setting the session error, otherwise the socket error is lost. Fri Aug 23 22:50:30 2002 Joe Orton * ne_socket.c (ne_sock_init): Set SIGPIPE disposition before SSL library initalization, so it happens even if SSL library initialization fails. Fri Aug 23 22:03:26 2002 Joe Orton * ne_socket.c [USE_GETADDRINFO] (make_socket): Pass SOCK_STREAM to socket() rather than ai_socktype: on RHL6.2, ai_socktype is returned as zero. Wed Aug 21 18:06:36 2002 Joe Orton * ne_socket.c: Reinstate stdlib.h include. * ne_socket.h: Reinstate sys/socket.h include. Wed Aug 21 12:58:47 2002 Joe Orton * ne_socket.c (ne_addr_resolve): Accept IPv6 addresses enclosed in square brackets. Wed Aug 21 09:37:24 2002 Joe Orton * ne_uri.c (ne_uri_parse): Parse literal IPv6 address using the RFC2732 `[address]' syntax. Mon Aug 19 17:18:45 2002 Joe Orton * ne_socket.c (ne_addr_error): Override a horribly generic error message from gai_strerror(). Mon Aug 19 16:24:37 2002 Joe Orton * ne_socket.h: Remove netinet/in.h etc includes. (ne_sock_addr): Add new opaque type. (ne_addr_resolve, ne_addr_result, ne_addr_error, ne_addr_destroy): New functions. (ne_sock_connect): Changes address argument to `ne_sock_addr *'. (ne_name_lookup): Removed function. * ne_socket.c: Added netinet/in.h etc includes. (ne_sock_addr, ne_raw_addr): Define types. (make_socket): New macro. (ne_addr_resolve): Replace ne_name_lookup; store results (multiple addresses if returned) in returned ne_sock_addr object. Use getaddrinfo() if available. (raw_connect, addr_first, addr_next, ne_addr_result, ne_addr_error, ne_addr_destroy): New functions. (ne_sock_connect): Re-implement to loop through available addresses until a connect() succeeds; use make_socket, raw_connect auxiliaries. * ne_private.h (struct host_info): Store an ne_sock_addr pointer. * ne_request.c (lookup_host): Use new ne_addr_* interface. * ne_session.c (ne_session_destroy): Destroy address objects. Mon Aug 19 00:19:49 2002 Joe Orton * ne_socket.c: Move prng_seeded inside ifdef NEON_SSL region to prevent unused variable warning for non-SSL build. Sun Aug 18 23:21:21 2002 Joe Orton * ne_string.h (ne_strerror): Return buffer. Sun Aug 18 23:17:56 2002 Joe Orton * ne_socket.c (set_error): Use ne_strnzcpy. Sun Aug 18 23:14:07 2002 Joe Orton * ne_string.c (ne_strerror): Use ne_strnzcpy. Sun Aug 18 23:11:45 2002 Joe Orton * ne_string.h (ne_strnzcpy): New macro. Sun Aug 18 22:48:27 2002 Joe Orton * ne_socket.c (ne_sock_init): Check directly for SIGPIPE definition rather than HAVE_SIGPIPE. Sun Aug 18 13:49:49 2002 Joe Orton * ne_session.c (set_hostport): Use %u for printing unsigned int. Sun Aug 18 13:47:43 2002 Joe Orton * ne_utils.h (NE_DBG_SSL): New constant. * ne_session.c [NEON_SSL] (everywhere): Use NE_DBG_SSL channel for debugging messages. Sun Aug 18 08:17:19 2002 Joe Orton * ne_session.c (match_hostname): Fix to use case-insensitive string comparison. Sun Aug 18 08:10:12 2002 Joe Orton * ne_session.c (check_identity): Check the commonName if no alt. names of DNS type were found. Sun Aug 18 07:39:35 2002 Joe Orton * ne_session.c (check_identity): Use the most specific commonName attribute found, not the first. (for RFC2818 compliance) Sun Aug 18 01:54:53 2002 Joe Orton * ne_session.c (match_hostname): Invert return value. (check_identity): New function; split out commonName check from check_certificate, check subjectAltName extension instead if present. (check_certificate): Use check_identity. Sat Aug 17 19:59:21 2002 Joe Orton * ne_session.c (check_certificate): Extend debugging code to dump the whole certificate chain, but #if 0 it by default. Mon Aug 12 12:04:51 2002 Joe Orton * ne_request.c (aborted): Use NE_FMT_SSIZE_T to print ssize_t value. Mon Aug 12 11:08:35 2002 Joe Orton Support PRNG seeding via EGD to make SSL work on platforms which lack /dev/random: * ne_socket.c (init_ssl): New function. (ne_sock_init): Call init_ssl, set prng_seeded global on success. (ne_sock_use_ssl_os): Fail early if prng_seeded is not set, and RAND_status returns false. Tue Aug 6 07:18:30 2002 Joe Orton * ne_socket.c (ne_sock_use_ssl_os): Remove goto-based error handling. Don't call SSL_shutdown after SSL_connect fails. Mon Aug 5 23:18:55 2002 Joe Orton * ne_session.c (ne_ssl_keypw_prompt): Don't set SSL_CTX default password callbacks, since these are never invoked. Implement once, stub for !NEON_SSL is no longer needed. Mon Aug 5 21:01:54 2002 Joe Orton * ne_session.c (ne_ssl_load_pem): Pass private key prompt callback to PEM_read_X509, PEM_read_PrivateKey (patch by Daniel Berlin). Also handle errors properly; call ERR_get_error() to pop the errors of the error stack. Mon Aug 5 20:15:10 2002 Joe Orton * ne_session.c (provide_client_cert): Increase reference count on key and certificate, to prevent them being free'd too early. Sun Aug 4 22:35:27 2002 Joe Orton Fix `retry_after_abort' test in request.c: * ne_request.c (send_request): Don't use the 'persisted' flag until after a new connection has been opened, when it may have been reset. Sun Aug 4 17:26:37 2002 Joe Orton * ne_request.c (struct ne_request_s): Remove reqbuf field. (ne_request_create, ne_request_destroy): Don't (de)allocate reqbuf. (build_request): Allocate the returned buffer internally. (ne_begin_request): Destroy the buffer after use. Sun Aug 4 15:36:01 2002 Joe Orton * ne_session.c (ne_ssl_load_pem): Close file after use. Sun Aug 4 12:55:49 2002 Joe Orton Factor out EPIPE, ECONNRESET handling from write_raw: * ne_socket.c (MAP_ERR): New macro. (write_raw, error_ossl): Use MAP_ERR. Sun Aug 4 12:25:34 2002 Joe Orton * ne_socket.c (ne_sock_switch_ssl): New function. Sun Aug 4 12:24:23 2002 Joe Orton * ne_socket.c (ne_sock_switch_ssl): New function, really just for test suite. Sat Aug 3 22:11:33 2002 Joe Orton * ne_auth.c (ne_forget_auth): Fix segfault if either server or proxy auth is not in use. Sat Aug 3 22:06:32 2002 Joe Orton * ne_redirect.c (create, post_send, ne_redirect_register, ne_redirect_location): Updated for new hook interface. Sat Aug 3 19:02:33 2002 Joe Orton Adjustment of hook interface and use: fixing a design flaw causing a segfault in the auth hooks when two requests are used concurrently for a single session during a CONNECT tunnel. * ne_request.h, ne_session.h: (ne_get_request_private, ne_get_session_private): Replace ne_request_hook_private, ne_session_hook_private. (ne_set_session_private, ne_set_request_private): Replace ne_hook_session_accessor, ne_hook_request_accessor. * ne_request.h (ne_create_request_fn, ne_pre_send_fn, ne_post_send_fn): Add ne_request pointer as first argument. (ne_hook_destroy_request): Take ne_destroy_req_fn function. (ne_hook_destroy_session): Take ne_destroy_sess_fn function. * ne_request.c (struct ne_request_s): Renamed `accessor_hooks' field to `private'. (get_private): Renamed from call_access; don't invoke function. (ne_null_accessor): Removed function. * ne_auth.c (struct auth_class): Store hook id. (auth_session): Remove auth_request pointer. (ah_create): Store auth_request pointer as request-private data. (ah_pre_send, ah_post_send, ah_destroy): Retrieve auth_request pointer from request-private data. (register_hooks, ne_forget_auth): Use ne_{get,set}_session_private. * ne_locks.c (struct lh_req_cookie): New structure. (struct ne_lock_store_s): Remove submit_locks field. (lk_create, lk_pre_send, submit_lock, ne_lock_using_resource, ne_lock_using_parent, lk_destroy): Adjust to use lh_req_cookie pointer as request-private data. * ne_cookies.c (create, pre_send): Adjust for hook prototype changes. Wed Jul 31 23:46:17 2002 Joe Orton * ne_socket.c [NEON_SSL]: Include limits.h for INT_MAX definition. Mon Jul 29 20:55:57 2002 Joe Orton * ne_auth.c (struct auth_class): New structure; abstracts out proxy/server generic auth handling more cleanly. (ah_server_class, ah_proxy_class): Declare variables. (auth_session): Reference an auth_class structure. (auth_register): Replaces auth_create. (ne_set_server_auth, ne_set_proxy_auth): Simplify, use auth_register. (everywhere): Reference req_hdr etc via ->spec-> reference. Sun Jul 28 12:29:23 2002 Joe Orton * ne_request.c (proxy_tunnel): Reset 'persisted' flag, so that a newly tunnelled connection is not treated as persistent. Sun Jul 28 12:26:49 2002 Joe Orton * ne_string.h (CONCAT2, CONCAT3, CONCAT4): Removed macros. Thu Jul 25 23:16:00 2002 Joe Orton * ne_request.c (send_request): Don't clear retry until a status-line has been read. Thu Jul 25 00:03:17 2002 Joe Orton * ne_auth.c (basic_challenge, request_basic): Use ne_concat not the CONCAT? macros. * ne_basic.c (ne_mkcol): Use ne_concat not the CONCAT2 macro. Wed Jul 24 00:16:39 2002 Joe Orton * ne_string.c (count_concat, do_concat): Factored out from ne_buffer_concat. (ne_buffer_concat): Rewrite to use count_concat, do_concat. (ne_concat): New (resurrected) function. Thu Jul 18 21:52:12 2002 Joe Orton * ne_request.c (proxy_tunnel): Don't use server.hostport in Request-URI; always include `:port' even if default port is used; fix CONNECT through Inktomi Traffic-Server. Thu Jul 18 21:33:43 2002 Joe Orton * ne_request.c (aborted, ne_set_request_body_fd): Use ne_strerror. * ne_session.c (ne_ssl_load_pem, ne_ssl_load_pkcs12): Use ne_strerror. * ne_basic.c (get_to_fd): Use ne_strerror. Thu Jul 18 20:19:30 2002 Joe Orton * ne_string.c (ne_strerror): New function. * ne_socket.c (set_strerror): Move portability logic to ne_strerror; just use that here. Thu Jul 18 20:00:46 2002 Joe Orton * ne_socket.c (read_raw, write_raw): Don't re-evaluate 'errno', per Ulrich Drepper's advice. Wed Jul 17 23:47:01 2002 Joe Orton * ne_socket.c (struct ne_socket_s): Store buffer for error string. (set_error, set_strerror): New macros. (everywhere): Use set_error, set_strerror or ne_snprintf to set the socket error string. Wed Jul 17 23:19:18 2002 Joe Orton * ne_utils.c (ne_version_match): Fix inverted minor version test. Sun Jul 14 20:13:59 2002 Joe Orton * ne_uri.h (ne_uri): Store port as unsigned. * ne_uri.c (ne_uri_defaultport): Return unsigned int, and zero for undefined port. Sun Jul 14 20:07:35 2002 Joe Orton * ne_session.c (ne_session_proxy): Take port parameter as unsigned int, as per ne_session_create. Sun Jul 14 20:03:21 2002 Joe Orton * ne_request.c (strip_eol): Take ssize_t 'len' parameter. (read_message_header): Use ssize_t for 'n'. Sun Jul 14 12:45:40 2002 Joe Orton * ne_socket.c (ne_sock_use_ssl_os): Unconditionally enable SSL_MODE_AUTO_RETRY now OpenSSL 0.9.6 is required. Sun Jul 14 12:15:40 2002 Joe Orton * ne_xml.h (NE_XML_MEDIA_TYPE): New definition. * ne_acl.c (ne_acl_set), * ne_props.c (ne_proppatch, propfind): Use NE_XML_MEDIA_TYPE, rather than hard-coding the incorrect "text/xml" media type. Sun Jul 14 10:53:33 2002 Joe Orton * ne_utils.c (ne_version_match): Replace ne_version_minimum. Sat Jul 13 11:40:37 2002 Joe Orton * ne_session.c (ne_negotiate_ssl): Include socket error string in session error if SSL negotiation fails. Sat Jul 13 11:27:50 2002 Joe Orton * ne_socket.c (error_ossl): New function. (ERROR_SSL_STRING): Removed macro. (CAST2INT): New macro; safety harness for OpenSSL compatibility. (read_ossl, write_ossl): Use error_ossl, CAST2INT. (ne_sock_use_ssl_os): Use error_ssl. Sat Jul 13 11:16:07 2002 Joe Orton * ne_socket.c: Define ECONNRESET as WSAECONNRESET on Win32. Sat Jul 13 10:10:03 2002 Joe Orton * ne_private.h (struct ne_session_s): Replace 'reqcount' with 'persisted' flag. * ne_request.c (ne_end_request): Set 'persisted' flag if connection is left open. (send_request): Adjust to allow retry if 'persisted' flag is set. (init_socket): Clear 'persisted' flag here... (open_connection): ... rather than here. Wed Jul 10 22:51:39 2002 Joe Orton * ne_request.c (RETRY_RET): Retry on an NE_SOCK_RESET too. (send_request): Fix to only retry if not on the first request on a connection (close_not_retried test). Sun Jul 7 20:49:09 2002 Joe Orton * ne_socket.h: Add NE_SOCK_RESET return value; improve comments. * ne_socket.c (read_raw, write_raw): Return NE_SOCK_RESET if an ECONNRESET error is received when reading or writing. Sat Jul 6 13:30:15 2002 Joe Orton * ne_request.c (read_status_line, discard_headers): New functions, split out from send_request. (send_request_body): Move debugging here from send_request. (RETRY_RET): Renamed from CAN_RETRY. (send_request): Simplify: remove complex 100-continue graceful failure logic; use read_status_line, discard_headers, RETRY_RET. Fix to only send request body once (expect_100_once test case). Fix to not return NE_RETRY if reading status-line other than the first fails (fail_eof_continued test case). Fri Jul 5 21:47:49 2002 Joe Orton * ne_request.c (build_request): Fix from previous commit: clear the buffer before building the request. Fri Jul 5 21:00:20 2002 Joe Orton * ne_request.c (build_request): Fold Host header and Request-Line into single ne_buffer_concat call. Don't set req->use_expect100 here. Fold an if/else into an ?:. Optimise to use ne_buffer_append to add 100-continue, user-supplied headers, and trailing EOL, since they all have known lengths. (send_request): Take request data as argument. (ne_begin_request): Call build_request here; pass to send_request. Move Expect100 logic here. Fri Jul 5 17:12:56 2002 Joe Orton * ne_basic.c (ne_read_file): Removed function. Fri Jul 5 17:10:11 2002 Joe Orton * ne_compress.c (process_footer): Take unsigned char buffer. Store calculated CRC in a uLong. (do_inflate, gz_reader): Cast buffers to unsigned char for strict compatibility with zlib interface. Wed Jul 3 19:21:17 2002 Joe Orton * ne_request.c (struct ne_request_s): Use a fixed char array for respbuf field. (ne_request_create, ne_request_destroy): Don't allocate respbuf dynamically. (send_request): Move 'buffer' to appropriate scope. (ne_request_dispatch): Remove 'buffer'; read into respbuf. Tue Jul 2 08:35:05 2002 Joe Orton * ne_request.c (proxy_tunnel): Remove redundant sess->connected assignment. Sun Jun 30 21:04:50 2002 Joe Orton * ne_request.c (ne_begin_request): Only set host->resolved if lookup is successful. Sun Jun 30 18:25:51 2002 Joe Orton * ne_request.c (SOCK_ERR): New macro. (struct ne_request_s): Remove 'forced_close' field. (aborted): Renamed from set_sockerr; also closes connection and prints message in debug log. (send_request_body): Don't use set_sockerr or set forced_close. (read_response_block, read_message_header): Use SOCK_ERR; adjust to use aborted(). (ne_read_response_block, read_response_headers): Don't set forced_close. (CAN_RETRY): New macro. (send_request): Adjust to use CAN_RETRY(); use aborted() to make sure connection is closed in error cases. (ne_begin_request): Don't close connection here in error cases; don't use forced_close. (open_connection): Adjust to use aborted() not set_sockerr(). Sun Jun 30 17:26:41 2002 Joe Orton * ne_session.c (ne_close_connection): Clarify debug messages. Sun Jun 30 14:36:11 2002 Joe Orton * ne_request.c (read_response_block): Fail on chunk size lines which contain no valid chunk size digits. Sun Jun 30 12:35:35 2002 Joe Orton * ne_session.c (ne_negotiate_ssl): Use ne_get_session rather than req->session. * ne_request.c (struct header_handler, struct body_reader, struct ne_request_s): Moved from ne_private.h. Sun Jun 30 12:13:58 2002 Joe Orton Cleanup of response handling: * ne_private.h (struct ne_response): Replace 'is_chunked' field with 'mode' enum. * ne_request.c (te_hdr_handler): Set mode. (connection_hdr_handler): Reset can_persist for 'close'. (clength_hdr_handler): New function. (ne_request_create): Use clength_hdr_handler to parse Content-Length header. (read_response_block, ne_read_response_block): Adapt for 'mode' enum; simplify. (normalize_response_length): Removed function. (ne_begin_request): Fold in normalize_response_length logic. (ne_end_request): Simplify logic. Sun Jun 30 11:08:26 2002 Joe Orton * ne_session.c: Remove X509_NAME workaround in favour of a neon.mak change. Tue Jun 25 23:14:34 2002 Joe Orton * ne_session.c: Undefine X509_NAME if it is defined (by a Windows header). Tue Jun 25 22:51:15 2002 Joe Orton * ne_socket.c: Rename READ_BUFFER to RDBUFSIZ. Tue Jun 25 21:07:13 2002 Joe Orton * ne_private.h (struct host_info): Store port as unsigned int. * ne_session.c (set_hostport, set_hostinfo, ne_session_create): Take port argument as unsigned int. * ne_socket.c (ne_sock_connect): Take port argument as unsigned int. Tue Jun 25 20:59:14 2002 Joe Orton * ne_utils.h [__GNUCC__] (NE_DEBUG): Remove implementation using GNU C extensions. Sun Jun 23 22:47:52 2002 Joe Orton * ne_request.c (set_request_uri): Renamed from ne_set_request_uri; made static. (ne_request_create): Update accordingly. * ne_private.h (ne_set_request_uri): Removed prototype. Sun Jun 23 15:40:57 2002 Joe Orton * ne_request.c (send_request, ne_request_destroy): Free reason_phrase now it is malloc-allocated. Sun Jun 23 14:59:04 2002 Joe Orton Simplify given loss of const qualifier on ne_status.reason_phrase: * ne_props.c (struct propstat): Remove r_phrase field. (end_propstat, free_propset): Use status.reason_phrase not r_phrase field. Sun Jun 23 14:42:22 2002 Joe Orton * ne_207.h (ne_207_end_response, ne_207_end_propstat): Remove status_line parameter from callbacks. * ne_207.c (struct ne_207_parser_s): Remove status_line field. (end_element): Don't store status_line. (handle_error): Drop status_line argument, recreate dummy status line from status object. (end_response, end_propstat): Drop status_line arguments. * ne_props.c (end_propstat, end_response): Drop status_line arguments. Sun Jun 23 14:39:00 2002 Joe Orton * ne_utils.h (ne_status): Remove const qualifier from 'reason_phrase' field. * ne_utils.c (ne_parse_statusline): strdup the reason_phrase on successful return. Sun Jun 23 11:39:24 2002 Joe Orton * ne_compress.c (struct ne_decompress_s): Replace footer union with buffer. (BUF2UINT): New macro. (process_footer): Convert footer to integer in a portable manner, using BUF2UINT. Sun Jun 23 09:05:25 2002 Joe Orton * ne_compress.c (ne_decompress_s): Use unsigned int for 32-bit integers, not uLong (fix for 64-bit platforms). Wed Jun 19 18:46:40 2002 Joe Orton * ne_session.c (ne_session_destroy): Don't leak the proxy hostname. Sun Jun 16 14:09:31 2002 Joe Orton * ne_request.c (read_response_block): Use NE_FMT_SSIZE_T rather than %d, cast field precision argument to int. (ne_pull_request_body): Use ssize_t for store callback return value, use NE_FMT_SSIZE_T rather than %d, cast field precision argument to int. Sun Jun 16 12:15:19 2002 Joe Orton * ne_session.c (ne_negotiate_ssl): Don't leak peer certificate in error cases. Fix spelling mistake in error message. Sun Jun 16 11:23:23 2002 Joe Orton * ne_request.c (open_connection): When SSL negotation fails after doing CONNECT request, use ne_close_connection so that sess->connection is reset to 0, and ne_sock_close isn't called twice for the socket. Wed Jun 12 23:22:20 2002 Joe Orton * ne_props.c (ne_proppatch): Add missing call to ne_lock_using_resource. Mon Jun 10 20:45:27 2002 Joe Orton * ne_auth.c (verify_response): Remove redundant prototype, fix sscanf format string to use signed integer. Mon Jun 10 20:13:57 2002 Joe Orton * ne_compress.c (do_inflate): Continue calling inflate() whilst unconsumed input remains: fix from Justin Erenkrantz . Mon Jun 10 19:53:59 2002 Joe Orton * ne_socket.c (ne_sock_readline): If a complete line is found in the buffer, avoid the memmove() and simply copy the line directly out of the buffer. Sun Jun 9 11:39:20 2002 Joe Orton * ne_redirect.c (post_send): Perform simple relative URI resolution. Tue Jun 4 16:51:54 2002 Joe Orton * ne_uri.c (ne_path_parent): Simplify. Mon Jun 3 17:50:27 2002 Joe Orton * ne_cookies.c (set_cookie_hdl): Avoid free'ing cookie name/value, thanks to Dan Mullen. Mon Jun 3 17:45:33 2002 Joe Orton * ne_string.c (ne_base64): Use size_t for outlen. Mon Jun 3 17:42:34 2002 Joe Orton * ne_utils.h, ne_socket.h [WIN32]: Move ssize_t definition to ne_socket.h. Mon Jun 3 17:27:21 2002 Joe Orton * ne_request.c (read_response_block): Use correct types for passing to/from ne_sock_*. Mon Jun 3 11:32:20 2002 Joe Orton * ne_compress.c (ne_decompress_destroy): Don't fail if response reader callback is never invoked. Sun Jun 2 12:51:35 2002 Joe Orton * ne_socket.c (read_ossl, read_raw): Call readable_{ossl,raw} function here. (ne_sock_read, ne_sock_peek, ne_sock_readline): Remove explicit calls to ops->readable before ops->read. Thu May 30 22:00:07 2002 Joe Orton * ne_socket.c (ne_sock_readline): Optimise to use socket read buffer directly, and use ->read (and ->readable) functions. Tue May 28 17:00:34 2002 Joe Orton * ne_session.c (ne_session_destroy): Don't free proxy.hostport, since it's no longer set. Sun May 26 19:11:46 2002 Joe Orton * ne_xml.c: #error if no expat header is configured; flatten nested #if's, include libxml/xmlversion.h if present. Sun May 26 19:09:04 2002 Joe Orton * ne_utils.c: Include libxml/xmlversion.h if present. Sun May 26 11:55:30 2002 Joe Orton * ne_session.c (set_hostport): Renamed from get_hostport: set host_info field directly; take defaultport argument. (set_hostinfo): Don't use get_hostport. (ne_session_create): Use set_hostinfo and set_hostport; pass in default port correctly for http:/https:. Thu May 23 19:44:44 2002 Joe Orton * ne_xml.c (resolve_nspace): Split out from parse_element. (ne_xml_get_attr): Take parser object, and optional namespace; resolve the namespace if necessary. (parse_element): Use resolve_nspace. * ne_props.c (startelm): Use new ne_xml_get_attr interface. Wed May 22 22:29:05 2002 Joe Orton * ne_dates.c: Renamed HAVE_TM_GMTOFF to HAVE_STRUCT_TM_TM_GMTOFF from use of AC_CHECK_MEMBERS. Tue May 21 21:21:31 2002 Joe Orton * ne_redirect.c (ne_redirect_register): Drop confirm, notify, userdata arguments. (struct redirect): Drop most fields; add a uri structure. (auto_redirect): Removed function. (post_send): Remove functionality which retries a request with a different URI to automatically follow redirects. Qualify the URI if non-absolute. (create): Remove now redundant code. (ne_redirect_location): Return an ne_uri object. Sun May 19 18:53:22 2002 Joe Orton * ne_session.c (ne_set_useragent): Use strcat/malloc/strcpy directly, rather than CONCAT2; allow compiler optimisations. (AGENT): Renamed from NEON_USERAGENT, append space. Sun May 19 17:31:43 2002 Joe Orton Move everything exported by ne_socket.h into ne_*/NE_* namespace; purge inappropriate and unused interfaces. Renaming done by Olof Oberg. * ne_socket.h: (SOCK_FULL): Removed constant. (sock_call_progress, sock_transfer, sock_sendline, sock_send_string, sock_readfile_blocked): Removed functions. (NE_SOCK_ERROR, NE_SOCK_TIMEOUT, NE_SOCK_CLOSED): Renamed constants. (ne_progress, ne_block_reader): Renamed types. (ne_register_progress, ne_sock_init, ne_sock_exit, ne_sock_read, ne_sock_peek, ne_sock_block, ne_sock_fullwrite, ne_sock_readline, ne_sock_connect, ne_sock_accept, ne_sock_fd, ne_sock_error, ne_sock_read_timeout, ne_name_lookup, ne_service_lookup, ne_sock_use_ssl, ne_sock_use_ssl_os): Renamed functions. * ne_private.h, ne_request.c, ne_session.c: Update accordingly. * ne_request.c (build_request): Return the ne_buffer pointer. (send_request): Remove redundant strlen(), use known buffer length. * ne_request.h: Drop ne_block_reader definition. Sun May 19 13:32:12 2002 Joe Orton * ne_request.c (ne_get_session, ne_get_request): Take const request pointer. Sun May 19 13:21:17 2002 Joe Orton * ne_string.c (ne_buffer_ncreate): Renamed from ne_buffer_create_sized. * ne_session.c (check_certificate, provide_client_cert): Update accordingly. * ne_request.c (ne_request_create): Update accordingly. Sun May 19 13:12:14 2002 Joe Orton * ne_string.c (ne_token): Drop quotes parameter. (ne_qtoken): Split out from ne_token. * ne_basic.c (dav_hdr_handler, ne_content_type_handler): Use ne_qtoken. * ne_compress.c (find_token): Removed function. (gz_reader): Compare header value directly against "gzip", remove a stale comment. Sun May 19 09:45:28 2002 Joe Orton * ne_socket.h (sock_fullread): Return ssize_t; takes buflen as size_t. (sock_read, sock_peek): Fix prototypes to match actual definition. * ne_socket.c (write_raw): Return ssize_t. Sat May 18 14:53:45 2002 Joe Orton * ne_string.h (ne_buffer): Remove separate struct ne_buffer_s definition. * ne_string.c (ne_buffer_create_sized): Don't use struct ne_buffer_s. Sun May 12 11:33:02 2002 Joe Orton * ne_string.c (ne_base64): Moved from base64.c. * base64.c, base64.h: Removed files. * Makefile.in: Updated accordingly. * ne_auth.c: Don't include base64.h. Sun May 12 11:26:05 2002 Joe Orton * ne_string.h (ne_utf8_decode, ne_utf8_encode): Removed functions. Sat May 11 15:42:24 2002 Joe Orton As part of patch from Olof Oberg : * ne_request.h (ne_destroy_fn): Renamed from typo'ed ne_destory_fn. * ne_request.c (ne_request_destroy, ne_hook_destroy_request, ne_hook_destroy_session): Update accordingly. * ne_session.c (ne_session_destroy): Update accordingly. Thu May 9 21:44:15 2002 Joe Orton Major improvements to socket layer to incorporate socket read buffering and rewrite sock_readline, and add an abstraction layer to simplify SSL support. Grunt work by Jeff Johnson * ne_socket.c (struct iofns): New type. (struct nsocket_s): Store 'ops' pointer to I/O functions in use for the socket. Add buffer, bufpos, bufavail fields for read buffering. (sock_block, sock_read, sock_peek): Reimplement to add read buffer, simplify to use I/O functions abstraction. (readable_raw, read_raw, write_raw, readable_ossl, read_ossl, write_ossl): Factored out from sock_read/fullwrite, avoiding in-lined ifdefs. (sock_fullwrite): Just use ops->write. (sock_readline): Simplify greatly to exploit read-buffering, return ssize_t. (sock_fullread): Simplify, removing unnecessary local variables, return ssize_t. (create_sock, sock_enable_ssl_os): Set ops pointer. Wed May 8 11:54:48 2002 Joe Orton * ne_socket.c (sock_name_lookup): Avoid casts; use INADDR_NONE. [!INADDR_NONE]: Define to (unsigned long) -1. Wed May 1 22:19:18 2002 Joe Orton * ne_locks.h (ne_lock): Document that ->token and ->owner fields must be malloc-allocated if non-NULL. Wed May 1 22:15:41 2002 Joe Orton * ne_locks.c (get_ltoken_hdr): New function. (ne_lock): Correctly parse Coded-URL from Lock-Token response header. Wed May 1 22:03:08 2002 Joe Orton * ne_redirect.c (post_send): Adjust for ne_uri_parse handling of unspecified port. Wed May 1 22:00:50 2002 Joe Orton * ne_session.c (provide_client_cert): Fail if peer certificate not known when client cert requested. Wed May 1 21:58:35 2002 Joe Orton * ne_session.h (ne_ssl_provide_fn): Adjust callback typedef to return void. Wed May 1 21:52:40 2002 Joe Orton * ne_request.h: Remove NE_SERVERAUTH and NE_AUTHPROXY; fix NE_PROXYAUTH description. Wed May 1 21:32:54 2002 Joe Orton * ne_uri.c (ne_uri_parse): For consistency, port field is 0 if unspecified. Tue Apr 30 10:05:48 2002 Joe Orton * ne_string.c (shave_string): Removed function. Tue Apr 23 21:19:53 2002 Joe Orton * ne_props.c (start_propstat, startelm): Use ne_realloc not realloc (thanks to Jeff Johnson). Tue Apr 23 20:55:56 2002 Joe Orton * ne_xml.c: Include parser.h or libxml/parser.h, depending on which is found. Mon Apr 15 00:37:43 2002 Joe Orton * ne_request.c (build_request, send_request): Simplify logic. Sun Apr 14 16:59:50 2002 Joe Orton * ne_props.c: Remove unused accidental 'propstat' global. (struct propstat): Add r_phrase field. (end_propstat): Dup the reason_phrase string. (free_propset): Free the reason_phrase. Avoid another possible free(NULL) call. Sun Apr 14 12:00:54 2002 Joe Orton * ne_basic.c (ne_content_type_handler): For text/* media types, use default charset of ISO-8859-1. Sat Apr 13 23:11:07 2002 Joe Orton * ne_utils.h: Include trio.h if NEON_TRIO is defined. Sun Apr 7 17:38:14 2002 Joe Orton * ne_request.c (read_response_headers): Don't zero-initialize hdr. Sun Apr 7 17:15:23 2002 Joe Orton * ne_request.c (read_response_headers): Ignore whitespace between header name and colon, simplify logic a little. Sun Apr 7 14:09:07 2002 Joe Orton * ne_session.c (ne_ssl_readable_dname): New function. Sun Apr 7 12:32:25 2002 Joe Orton * ne_string.c (ne_buffer_destroy): Remove redundant check for data pointer being NULL. Wed Apr 3 19:44:59 2002 Joe Orton Optimisation/simplification of header name hashing. * ne_request.c (hash_and_lower): Renamed from hdr_hash; convert string to lower-case in-place too. (lower_string): Removed function. (ne_add_response_header_handler): Use hash_and_lower rather than lower_string. (HH_ITERATE): Change parameter name to 'ch'. Fri Mar 29 23:00:57 2002 Joe Orton * ne_uri.c (ne_uri_parse): Minor optimisation. Mon Mar 25 21:45:36 2002 Joe Orton Pass a lock context around during LOCK processing; search for the correct element in the response body. * ne_locks.c (ne_lock_create): Don't take a path argument. (ne_unlock): Constify lock parameter. (discover_results): Don't parse out href here... (ld_create): do it here instead; renamed from create_private. (lk_startelm): New function. (lk_endelm): Renamed from end_element_lock. (ne_lock): Require a Lock-Token response header; pass lock context to callbacks. Copy lock back out. Mon Mar 25 21:35:42 2002 Joe Orton * ne_session.h (NE_SSL_FAILMASK): New constant. (NE_SSL_*): Shift right one bit. Mon Mar 25 21:21:18 2002 Joe Orton * ne_session.c (ne_close_connection): Return void. Mon Mar 25 20:09:33 2002 Joe Orton * ne_props.c (free_propset): Avoid free(NULL). Mon Mar 11 19:59:04 2002 Joe Orton * ne_locks.c (ne_lock_using_parent): Iterate over the lock list by hand: check for infinite depth locks with cover the parent too (fixing if_covered_child test). Mon Mar 11 19:25:44 2002 Joe Orton * ne_request.c (ne_request_dispatch): Move variable to scope in which is is used. Sun Mar 10 22:04:58 2002 Joe Orton * Makefile.in (NEON_BASEOBJS): Always build ne_compress.o. Sun Mar 10 22:01:54 2002 Joe Orton * ne_compress.c [!NEON_ZLIB] (ne_decompress_reader, ne_decompress_destroy): Add stubs. Sun Mar 10 21:42:11 2002 Joe Orton * ne_locks.c (struct discover_ctx): Store an ne_session pointer. (discover_results): If lock URI is not an absoluteURI, qualify it using the server host/port/scheme from the session. Don't leak the lock object. (create_private): Simplify, use ne_lock_create. Thu Mar 7 20:08:07 2002 Joe Orton * ne_uri.c (ne_uri_defaultport): Fix default port number for https scheme. Wed Mar 6 21:22:23 2002 Joe Orton * ne_locks.c (lk_pre_send): Use an absoluteURI in the If: header. Wed Mar 6 21:15:00 2002 Joe Orton * ne_uri.c (ne_uri_unparse): New function. Tue Mar 5 22:57:00 2002 Joe Orton * ne_uri.c (ne_uri_cmp): Compare hostnames and schemes case-insensitively, and compare empty abspath and "/" as equivalent, as per RFC 2616. Tue Mar 5 20:53:54 2002 Joe Orton * ne_uri.c (ne_uri_defaultport): New function. Mon Mar 4 21:10:29 2002 Joe Orton * ne_uri.h (ne_uri): Renamed from struct uri. * ne_uri.c (ne_path_parent): Renamed from uri_parent. (ne_path_has_trailing_slash): Renamed from uri_has_trailing_slash. (uri_abspath, uri_absolute): Removed. (ne_uri_parse): Renamed from uri_parse, don't take a 'defaults' parameter. (ne_uri_free): Renamed from uri_free. (ne_path_unescape): Renamed from uri_unescape. (ne_path_escape): Renamed from uri_abspath_escape. (ne_uri_cmp): Renamed from uri_cmp. (ne_path_compare): Renamed from uri_compare. (ne_path_childof): Renamed from uri_childof. * ne_basic.c, ne_locks.c, ne_uri.c, ne_redirect.c, ne_session.c, ne_session.h: all callers changed. Mon Mar 4 01:03:23 2002 Joe Orton * ne_request.c (strip_eol): Fix potential segfault. Mon Mar 4 00:38:10 2002 Joe Orton * ne_locks.c (insert_lock): New function. (ne_lockstore_add, submit_lock): use insert_lock. Mon Mar 4 00:33:39 2002 Joe Orton * ne_locks.c (ne_lockstore_remove): Free list item. Mon Mar 4 00:31:08 2002 Joe Orton * ne_locks.c (free_list): Really destroy the lock. (ne_lock_free): Don't free the lock object itself. Mon Mar 4 00:17:18 2002 Joe Orton * ne_request.c (ne_request_destroy): Free accessor hook list. Sun Mar 3 20:35:09 2002 Joe Orton Changes to lock interface; replacing "lock session" with a lock store, which can be registered with an ne_session. Lock objects now store URI as complete URI structure. * ne_locks.h (struct ne_lock): Store URI as complete URI structure. Remove next/prev fields. (ne_lock_store): New type. * ne_locks.c (struct lock_list): New type. (struct ne_lock_store_s): Replaces ne_lock_session_s; store lock_list pointers for stored locks, cursor, and locks to submit. (ne_lock_create): New function. (lk_create): Renamed from create. (lk_pre_send): Renamed from pre_send; adjust for lock list type and to use URI path. (free_list): New function; split out from old 'destroy'. (lk_destroy): Renamed from destroy; use free_list. (ne_lockstore_create, ne_lockstore_destroy, ne_lockstore_first, ne_lockstore_next): New functions. (ne_lockstore_register): Most of old ne_lock_register. (submit_lock): Adjusted for lock_list type. (ne_lockstore_findbyuri): Renamed from ne_lock_find; use full URI structure. (ne_lock_using_resource, ne_lock_using_parent): Adjusted for lock_list/full URI changes. (ne_lock_iterate): Removed function. (ne_lockstore_add, ne_lockstore_remove): Renamed from ne_lock_add, ne_lock_copy; adjusted for lock_list/full URI. (ne_lock_copy): Adjusted for full URI. (ne_lock_create, ne_lock_destroy): New function. (ne_lock, ne_lock_refresh, ne_unlock): Adjusted for full URI. Sun Mar 3 15:23:40 2002 Joe Orton * ne_uri.c (uri_cmp): New function. Sun Mar 3 11:01:30 2002 Joe Orton * ne_session.c (ne_fill_server_uri): New function. Mon Feb 25 21:25:27 2002 Joe Orton * ne_utils.c (version_string): Add zlib version. Mon Feb 25 20:49:07 2002 Joe Orton * (everywhere): Replace use of snprintf, vsnprintf with ne_snprintf, ne_vsnprintf so that trio replacements are used when appropriate. * ne_dates.h: Pick up ne_utils.h for ne_{v,}snprintf defines. Sun Feb 24 11:23:05 2002 Joe Orton * ne_utils.h: Define ne_snprintf, ne_vsnprintf for trio or non-trio builds. Sun Feb 24 11:20:42 2002 Joe Orton * Makefile.in (check-incl): Add target to check that each header file can be included standalone. Sun Feb 24 11:17:54 2002 Joe Orton * ne_xml.h: Add missing sys/types.h include. Sun Feb 24 11:12:22 2002 Joe Orton * ne_utils.h: Remove HTTP_QUOTES, HTTP_WHITESPACE globals. * ne_cookies.c (set_cookie_hdl): Don't use HTTP_QUOTES, HTTP_WHITESPACE globals. Wed Feb 20 19:32:48 2002 Joe Orton * ne_request.c (set_sockerr, ne_set_request_body_fd, send_request): Use ne_set_error rather than accessing session error directly. Tue Feb 19 21:34:59 2002 Joe Orton * ne_utils.c (version_string) [NEON_SOCKS]: Mention SOCKSv5 support. * ne_socket.c (sock_init) [NEON_SOCKS]: Call SOCKSinit. Tue Feb 19 19:21:07 2002 Joe Orton * ne_request.c (open_connection): Remove notify_status call duplicated with ne_negotiate_ssl. Tue Feb 19 19:16:44 2002 Joe Orton * ne_socket.c (sock_get_version): Removed function. Tue Feb 19 19:12:52 2002 Joe Orton * ne_session.c (ne_ssl_provide_ccert): Moved outside ifdef NEON_SSL. [!NEON_SSL] (ne_ssl_load_pem, ne_ssl_load_pkcs12, ne_ssl_keypw_prompt): Added stubs. Sun Feb 17 21:15:34 2002 Joe Orton * ne_session.c (ne_session_create, ne_session_destroy): Only use the SSL context is SSL is being used for the session. Sun Feb 17 20:19:05 2002 Joe Orton Add back client certificate support, much improved. * ne_private.h (struct ne_session_s): Add client cert/key fields, provider, privkey password callbacks. * ne_socket.c (sock_init): Call PKCS12_PBE_add. (sock_enable_ssl_os): Add optional 'appdata' argument. (sock_enable_ssl): Adjust accordingly. * ne_session.c (provide_client_cert, privkey_prompt, ne_ssl_keypw_prompt, ne_ssl_load_pkcs12, ne_ssl_load_pem, ne_ssl_provide_ccert): New functions. (ne_negotiate_ssl): Pass session as appdata to sock_enable_ssl_os. Sun Feb 17 12:32:34 2002 Joe Orton * ne_session.c (make_dname): New function. (check_certificate): Use make_dname. Sun Feb 17 11:29:10 2002 Joe Orton * ne_basic.c (struct get_context): Remove unused 'progress' field, add 'session' field. (get_to_fd, content_range_hdr_handler, clength_hdr_handler): Set session error directly. (clength_hdr_handler): Also fix check for expected range. (everywhere): Initialize session field, don't set session error; use NE_FMT_OFF_T to print off_t's rather than casting to long int. Sat Feb 16 23:24:10 2002 Joe Orton * ne_xml.h (NE_XML_STRIPWS): New element flag. * ne_xml.c (start_element): Clear cdata buffer if not in mixed mode. (char_data): Only strip leading whitespace if NE_XML_STRIPWS is set for the element. Sat Feb 16 14:52:59 2002 Joe Orton * ne_compress.c (enum state): New state NE_Z_AFTER_DATA. (struct ne_decompress_s): Add fields for storing and parsing stream footer; add checksum field for storing current crc. (process_footer): New function. (do_inflate): Compute checksum. Switch to AFTER_DATA state and process footer after reading DEFLATE data. (gz_reader): Fail on trailing content. Handle AFTER_DATA state. (ne_decompress_destroy): Return error if final state was not PASSTHROUGH, or FINISHED. (ne_decompress_reader): Initialize crc. Sat Feb 16 14:26:54 2002 Joe Orton * ne_compress.c (ne_decompress_destroy): Fix potential segfault with use-after-free. Thu Feb 14 16:50:40 2002 Joe Orton * ne_request.c (read_response_headers): Ignore header lines without a ':', rather than failing the request. Tue Feb 12 20:17:49 2002 Joe Orton * ne_request.c (read_response_block): Read chunk size as unsigned using strtoul; check that it fits within an unsigned int (and hence, probably a size_t). Tue Feb 12 20:15:13 2002 Joe Orton * ne_string.h (STRIP_EOL): Removed macro. Mon Feb 11 22:11:03 2002 Joe Orton * ne_session.c (match_hostname): Match fully-qualified hostnames against commonName with leading "*." wildcard. Mon Feb 11 20:47:28 2002 Joe Orton * ne_session.c (match_hostname): New function. (check_certificate): Use it. Sun Feb 10 00:50:49 2002 Joe Orton * ne_request.c (lookup_host): Set error string on lookup failure. Sun Feb 10 00:34:42 2002 Joe Orton * ne_request.c (strip_eol): New function; more efficient STRIP_EOL. (send_request): Use strip_eol. (read_message_header): Use strip_eol, simplify, remove redundant variables. Sat Feb 9 21:02:31 2002 Joe Orton * ne_session.c (ne_set_error): Drop STRIP_EOL call. Sat Feb 9 21:01:01 2002 Joe Orton * ne_session.c (ne_set_error): Take printf-style format string + varargs list. Sat Feb 9 16:15:09 2002 Joe Orton * ne_socket.h (SOCKET_READ_TIMEOUT): Moved to ne_socket.c. * ne_socket.c (struct nsocket_s): Add rdtimeout field. (create_sock): Initialize rdtimeout to SOCKET_READ_TIMEOUT. (sock_read, sock_recv): Use ->rdtimeout field for read timeout. (sock_set_read_timeout): New function. * ne_private.h (struct ne_session_s): Add rdtimeout field. * ne_session.c (ne_set_read_timeout): New function. * ne_request.c (init_socket): New function. (open_connection): Use init_socket. Sat Feb 9 15:11:59 2002 Joe Orton * ne_session.c (ne_session_destroy): Don't leak the server cert. Sat Feb 9 09:59:11 2002 Joe Orton * ne_session.c (check_certificate): Only call verification callback once per certificate; watch for the server cert changing and fail if it does. Wed Feb 6 20:28:27 2002 Joe Orton * ne_session.c (check_certificate): Only call verification callback if failures is non-zero. (ne_ssl_load_ca): Renamed from ne_ssl_add_ca. (ne_ssl_load_default_ca): New function. Wed Feb 6 20:21:29 2002 Joe Orton * ne_socket.c (sock_init): Cache and return result of initialization. Wed Feb 6 01:12:20 2002 Joe Orton * ne_session.c (check_certificate): Ignore cert validity errors from OpenSSL since these are duplicated. Wed Feb 6 01:08:57 2002 Joe Orton * ne_session.c (ne_negotiate_ssl): Fix for invalidating cached SSL_SESSION. Wed Feb 6 01:03:37 2002 Joe Orton * ne_session.c [!NEON_SSL] (STUB): New function. (ne_negotiate_ssl, ne_ssl_add_ca): Implement using STUB. Tue Feb 5 19:56:43 2002 Joe Orton * ne_session.h (ne_ssl_certificate): New type. * ne_session.c (ne_session_create) [NEON_SSL]: Create the SSL_CTX structure. (ne_ssl_get_context): Return the SSL_CTX rather than setting it. (ne_session_destroy): Free the SSL_CTX. (asn1time_to_string): Function moved in from sslcerts.c. (check_certificate): Use OpenSSL's internal validity result. Pass back an ne_ssl_certificate to the verification function; including validity dates. (ne_ssl_add_ca): New function, registers CA certs. Sat Feb 2 14:05:26 2002 Joe Orton * ne_socket.c (sock_enable_ssl_os): Take an optional SSL_SESSION argument. * ne_private.h (struct ne_session_s): Add an SSL_SESSION field. * ne_session.c (ne_negotiate_ssl): Pass stored SSL session to sock_enable_ssl_os, cache session after successful negotiation. (ne_session_destroy): Free cached session. Sat Feb 2 10:45:46 2002 Joe Orton * ne_socket.c, ne_utils.c: Globally replace ENABLE_SSL cpp symbol with NEON_SSL. Sat Feb 2 09:43:27 2002 Joe Orton * ne_session.c (check_certificate): Use 1K on-stack buffer. Sat Feb 2 08:27:08 2002 Joe Orton * ne_private.h (struct host_info): Add 'resolved' flag. (struct ne_session_s): Add scheme field, rename have_proxy to use_proxy, remove proxy_decider. (struct ne_request_s): Remove use_proxy field. * ne_request.c (set_sockerr, ne_set_request_uri, build_request, open_connection): Use session->use_proxy field to determine whether proxy is used. (ne_request_create): Drop use of proxy_decider callback. (lookup_host): Moved here from ne_session.c. (ne_begin_request): Lookup server/proxy hostname if not already resolved. * ne_session.c (ne_session_create): Moved within file; takes scheme, and server hostname, port as arguments. (ne_ssl_enable, ne_session_decide_proxy, ne_session_server): Removed functions. (ne_get_scheme): Simply return scheme field. Fri Feb 1 23:12:38 2002 Joe Orton * ne_request.c (add_fixed_headers): Remove last traces of TLS upgrade support. Thu Jan 31 20:50:12 2002 Joe Orton * ne_private.h (struct ne_session_s): Rename use_secure to use_ssl; removed nssl_context, added SSL_CTX, server cert, verify callback pointers. * ne_request.c (send_request): Remove support for TLS upgrade. (open_connection): Use ne_negotiate_ssl; close socket properly if negotiation fails. * ne_session.c (ne_session_destroy): Free SSL_CTX stored in session. (ne_ssl_set_context, ne_ssl_set_verify, verify_err, getx509field, check_context, ne_negotiate_ssl, ne_ssl_server_cert): New functions. (ne_set_secure_context, ne_set_request_secure_upgrade, ne_set_accept_secure_upgrade): Removed functions. (ne_ssl_enable): Renamed from ne_set_secure. * ne_socket.c (struct nssl_context_s): Removed type. (sock_create_ssl_context, sock_destroy_ssl_context, sock_disable_*, key_prompt_cb, sock_set_key_prompt, sock_set_client_cert): Removed functions. (sock_enable_ssl_os): Renamed from sock_make_secure; take an SSL_CTX pointer, and optionally pass out the SSL structure. (sock_enable_ssl): New function. Wed Jan 30 19:47:42 2002 Joe Orton * ne_string.c (ne_buffer_concat, ne_buffer_zappend, ne_buffer_append, ne_buffer_grow): Don't return success value, presume universe ends at OOM. Sat Jan 26 10:57:42 2002 Joe Orton * ne_compress.c: Renamed enum state constants to have prefix NE_Z_, to avoid conflict with Windows headers (Branko Èibej). Mon Jan 14 20:26:31 2002 Joe Orton * ne_string.c (ne_concat): Removed function - it didn't work, and it wasn't used. Mon Jan 14 02:09:38 2002 Joe Orton * ne_basic.c (ne_content_type_handler): Parse charset parameter. Sun Jan 13 14:29:00 2002 Joe Orton * ne_basic.c (ne_content_type_handler): Remove trailing '/' from parsed type, fix search for parms separator (Greg Stein). Sun Jan 13 12:07:51 2002 Joe Orton * ne_207.c (ne_simple_request): Drop unused Content-Type handling. Thu Jan 10 00:39:17 2002 Joe Orton * ne_request.c (hdr_hash): Mark as inline. Tue Jan 8 22:03:42 2002 Joe Orton * ne_locks.c (add_timeout_header): New function. (ne_lock, ne_lock_refresh): Send a Timeout header if lock->timeout is set. Mon Jan 7 21:48:38 2002 Joe Orton * ne_locks.c (parse_timeout): Fix parsing lock timeout (Arun Garg). Mon Dec 17 22:46:36 2001 Joe Orton * ne_private.h (struct ne_session_s): Make expect100_works a plain integer (rather than a bitfield). Sun Dec 9 14:04:27 2001 Joe Orton * ne_string.c (ne_buffer_grow, ne_buffer_create_sized): Don't zero-fill new memory. (ne_buffer_concat): Zero terminate the string as _grow doesn't do it. Sun Dec 9 13:31:55 2001 Joe Orton * ne_string.c (ne_buffer_zappend): Minor optimisation; implement using ne_buffer_append. Sun Dec 9 13:18:35 2001 Joe Orton * ne_string.c (ne_buffer_concat): Optimise to use time O(n) [n == total string length). Sun Dec 9 11:57:56 2001 Joe Orton * Makefile.in (NEON_DAVOBJS): Remove ne_acl.o. Sat Dec 8 01:11:30 2001 Joe Orton * ne_request.c (ne_pull_request_body): Use NE_FMT_SIZE_T in debugging message; cast size_t to int to avoid GCC warning for field size parameter. (set_body_size): Use NE_FMT_SIZE_T. * ne_xml.c (ne_xml_parse): Similarly. Mon Dec 3 19:56:07 2001 Joe Orton * ne_session.c (ne_session_destroy): Return void. Sat Dec 1 18:37:43 2001 Joe Orton * ne_auth.c (ah_create): Reset attempt counter here... (ah_post_send): ...rather than here. Tue Nov 27 21:26:01 2001 Joe Orton * ne_request.c (send_with_progress): Actually call the callback; fix for correct sock_fullwrite return codes. Tue Nov 27 20:20:40 2001 Joe Orton * ne_private.h (VERSION_PRE11): Define macro; as ne_version_pre_http11. * ne_session.c (ne_version_pre_http11): Use VERSION_PRE11. * ne_request.c (add_fixed_headers, build_request, ne_end_request): Use VERSION_PRE11. Sun Nov 18 19:32:56 2001 Joe Orton * ne_locks.c (discover_results): Check status is 2xx before invoking callback; pass NULL lock and non-NULL status pointer in failure cases. (create_private): Initialize lock to some "value unspecified" defaults. Sun Nov 18 19:25:10 2001 Joe Orton * ne_auth.c (auth_session): Rename 'tries' field to 'attempt'. (get_credentials, ah_pre_send, ah_post_send): Increment attempt counter only when requesting credentials; reset it to zero when no auth failure is signaled. Sun Nov 18 15:49:00 2001 Joe Orton * ne_auth.h (ne_request_auth): Pass username and password as buffers of size NE_ABUFSIZ to callback. Add 'attempt' argument. * ne_auth.c (auth_session): Store username in buffer. (get_credentials, basic_challenge, digest_challenge): Updated for callback prototype changes. (ah_post_send): Request credentials, and retry authentication until callback returns non-zero. Mon Nov 12 20:57:56 2001 Joe Orton * ne_basic.c (get_to_fd): Really cope with short writes (thanks to rado ). Sun Nov 4 15:09:03 2001 Joe Orton * ne_props.h: Define NE_ELM_PROPS_UNUSED for picking element ids for use with the propfind XML parser. Sat Nov 3 19:06:04 2001 Joe Orton * ne_props.c (NSPACE): New macro. (set_body, pnamecmp, startelm, free_propset): Handle property having NULL nspace element in propfind code. Sun Oct 28 22:04:49 2001 Joe Orton * ne_xml.c (parse_element): Prevent false matches of found prefix "abcde" against stored prefix "abcdeFGH". Compare case-sensitively. Fri Oct 26 20:28:03 2001 Joe Orton * ne_request.c (send_request): Fix case where persistent connection times out, and improve error handling. Thu Oct 25 20:42:24 2001 Joe Orton * ne_props.c (ne_proppatch): Really handle properties with a NULL namespace correctly; use the "D:" prefix for elements in the "DAV:" namespace; allow properties to have no namespace. Tue Oct 16 08:54:46 2001 Joe Orton * ne_xml.c (parse_element): Fail the parse if a namespace prefix definition is given with an empty value. Tue Oct 16 08:52:40 2001 Joe Orton * ne_props.h, ne_207.h: Move ne_propname definition into ne_props.h. Tue Oct 16 08:49:42 2001 Joe Orton * ne_props.c (ne_proppatch): Handle properties with a NULL nspace field correctly. Sun Oct 7 19:31:06 2001 Joe Orton * ne_acl.c (ne_acl_set) [USE_DAV_LOCKS]: Notify use of resource to locking code. Sun Oct 7 17:45:01 2001 Joe Orton * ne_acl.c, ne_acl.h: New files, contributed by Arun Garg . * Makefile.in: Add ne_acl.* to build. Sun Oct 7 16:10:05 2001 Joe Orton * ne_private (struct ne_session_s): Add 'reqcount' field. * ne_request.c (send_request): Refactor slightly; don't loop, but return NE_RETRY when appropriate. Increment reqcount. (ne_begin_request): Loop if send_request returns NE_RETRY. (open_connection): Reset reqcount field. Tue Oct 2 21:11:39 2001 Joe Orton * ne_dates.c (GMTOFF): New macro. (ne_iso8601_parse, ne_rfc1123_parse, ne_rfc1036_parse, ne_asctime_parse): Use new macro, fix up date handling on some platforms. Sat Sep 29 14:20:47 2001 Joe Orton * ne_compress.c (gz_reader): Fix tests 4 and 7: don't try to inflate after reading header if no bytes are left in the buffer. Sat Sep 29 14:04:11 2001 Joe Orton * ne_compress.c: Fix API; return an opaque object which must be destroyed later. (ne_decompress_reader): Renamed from ne_gzip_response_body_reader. Doesn't need the session object passed in any more. (ne_decompress_destroy): Merge of co_destroy, co_post_end. Sat Sep 29 13:50:43 2001 Joe Orton * ne_request.c (ne_get_session): New function. Sat Sep 29 12:52:31 2001 Joe Orton * ne_compress.c (parse_header): Bail if flags are set to something unexpected. Sat Sep 29 11:15:30 2001 Joe Orton * ne_compress.c, ne_compress.h: New files. * Makefile.in: Add deps for ne_compress. Thu Sep 27 09:05:24 2001 Joe Orton * ne_redirect.c: Adapted for new hooks interface. * ne_cookies.c: Adapted for new hooks interface. (ne_cookie_register): New function. Thu Sep 27 09:01:03 2001 Joe Orton * ne_auth.c, ne_locks.c: Adapted for new hooks interface. Store pointer to per-request object in the per-session object. Thu Sep 27 08:48:16 2001 Joe Orton Re-write hooks interface to register callbacks individually rather than as a block. Inspired by the Apache 2.0/APR hooks interface. * ne_private.h (struct hook): Store a callback, userdata, id. (struct hook_request): Removed. (struct ne_session_s): Store hooks lists for create_req, pre_send, post_send, destroy_req, destroy_sess, accessor. (struct ne_request_s): Store accessor hooks list. * ne_request.c (ne_add_hooks): Removed. (ne_hook_create_request, ne_hook_pre_send, ne_hook_post_send, ne_hook_destroy_request, ne_hook_destroy_session, ne_hook_session_accessor, ne_hook_request_accessor, ne_null_accessor, call_access, add_hook): New functions. (ne_request_create, ne_request_destroy, build_request, ne_end_request): Adapt for new interface. * ne_session.c (destroy_hooks): New function. (ne_session_destroy): Use it to destroy hooks lists appropriately. Tue Sep 25 07:46:32 2001 Joe Orton * ne_xml.c: Only decode UTF-8 for parsers other than libxml 1.x. Tue Sep 25 07:33:09 2001 Mo DeJong * src/ne_socket.c: Include instead of . (sock_init): Only use signal() to ignore SIGPIPE if both HAVE_SIGNAL and HAVE_SIGPIPE are defined. Tue Sep 25 07:09:53 2001 Mo DeJong * ne_socket.c (sock_init): Declare local variables before invoking any instructions since that is not valid C code. Sun Sep 23 10:30:54 2001 Joe Orton * ne_auth.c (struct auth_challenge): Make members const. (clean_session): Free the realm string. (basic_challenge, digest_challenge): strdup the realm string. (request_digest): opaque is no longer stored quoted. (tokenize): New function. (verify_response, auth_challenge): Rejig to use tokenize(). Sat Sep 22 20:17:00 2001 Joe Orton * ne_string.c (ne_shave): Fix possible memory corruption when result should be the empty string. Thu Sep 20 21:27:57 2001 Joe Orton * ne_request.c (ne_pull_request_body): Add debugging dump of body blocks. Thu Sep 20 21:23:43 2001 Joe Orton * ne_private.h: Remove obsolete 'if_locks' member from struct ne_request_s. Tue Sep 18 23:35:30 2001 Joe Orton * ne_basic.c (ne_get_range): Handle write errors too. Tue Sep 18 22:14:49 2001 Joe Orton * ne_xml.h (ne_xml_validate_cb): Take userdata parameter. * ne_xml.c (find_handler): Pass validate callback the handler's userdata. * ne_207.c, ne_props.c, ne_locks.c: All users changed. Tue Sep 18 21:49:14 2001 Joe Orton * ne_locks.c (ne_lock_refresh): New function. Tue Sep 18 21:17:29 2001 Joe Orton * ne_basic.c (copy_or_move): Take a depth parameter, add depth header, for COPY requests. (ne_copy): Take depth parameter, pass through. (ne_move): Adjusted accordingly. Mon Sep 17 23:29:58 2001 Joe Orton * ne_utils.c (ne_debug_init): Set debug stream to be unbuffered if setvbuf() is available. Mon Aug 27 00:36:37 2001 Joe Orton * ne_207.c (start_element, end_element): Remember when context is valid for a , and only invoke callback then. Sun Aug 26 22:30:39 2001 Joe Orton * ne_basic.c (ne_get_range): Better error handling. Cope with Apache's 416 problem. Sun Aug 26 18:58:47 2001 Joe Orton * ne_auth.c: Store unquoted challenge parameters in session object, prevent having to unquote/free them >1 times. Sun Aug 26 18:57:51 2001 Joe Orton * ne_socket.c (sock_init): Do nothing on any calls after first. Sun Aug 26 12:45:04 2001 Joe Orton * ne_basic.c (server_hdr_handler): Remove function. (ne_options): Don't add server_hdr_handler. Tue Jul 17 11:25:06 2001 Joe Orton * ne_socket.c (sock_init): Set signal dispostion for SIGPIPE to ignore. Sat Jun 30 12:11:44 2001 Joe Orton * ne_utils.c (ne_supports_ssl): New function. Tue Jun 19 21:57:49 2001 Joe Orton * ne_dates.c (ne_iso8601_parse): Fix month off-by-one bug, use separate vars for offsets. (ne_rfc1036_parse): Fix Y2K bug, parsing problem. Tue Jun 19 21:57:42 2001 Joe Orton * ne_dates.c (ne_iso8601_parse): New function. Sun Jun 10 15:39:40 2001 Joe Orton * ne_request.c (send_with_progress): New function. (send_request_body): Use send_with_progress to trigger progress callbacks if necessary. Sat Jun 9 15:42:33 2001 Joe Orton * ne_string.h: Bring back NE_ASC2HEX/HEX2ASC. * ne_md5.c: Use them. Sat Jun 9 15:42:08 2001 Joe Orton * ne_xml.h: Include ne_defs.h. Fri Jun 8 23:02:49 2001 Joe Orton * ne_socket.h, ne_socket.c: Update for includes (Mo DeJong). Fri Jun 8 21:34:00 2001 Joe Orton * ne_basic.c (dav_hdr_handler): Use ne_token. Sat Jun 2 14:37:07 2001 Joe Orton * ne_private.h: Renamed from http_private.h. Sat Jun 2 14:35:23 2001 Joe Orton * ne_auth.c, ne_auth.h: Renamed from http_auth.c, ne_auth.h. Sat Jun 2 14:35:02 2001 Joe Orton * ne_cookies.c, ne_cookies.h: Renamed from http_cookies.c, http_cookies.h. Sat Jun 2 14:34:51 2001 Joe Orton * ne_dates.c, ne_dates.h: Renamed from dates.c, dates.h Sat Jun 2 14:22:49 2001 Joe Orton * ne_redirect.c, ne_redirect.h: Renamed from http_redirect.c, http_redirec.h. Big rename... s/http_/ne_g/ Sat Jun 2 12:54:51 2001 Joe Orton * ne_md5.c (md5_process_block): Fix for word alignment issue on Sparc from Kai Sommerfeld. Wed May 30 23:15:31 2001 Joe Orton * ne_basic.c (ne_put, ne_get, ne_put_if_unmodified, ne_get_range, ne_post): Take an integer fd rather than FILE * stream. (get_to_fd): Write to fd rather than stream. Wed May 30 23:08:55 2001 Joe Orton * ne_i18n.h, ne_i18n.c: Renamed from neon_i18n.h, neon_i18n.c. * *.c: All changed accordingly. Wed May 30 23:02:47 2001 Joe Orton * ne_defs.h: Renamed from neon_defs.h. * *.h: All changed accordingly. Wed May 30 22:58:57 2001 Joe Orton * ne_md5.c, ne_md5.h: Renamed from md5.c, neon_md5.h Wed May 30 22:55:19 2001 Joe Orton * ne_utils.h: In-line ne_debug for GCC which can cope with varargs preprocessor macros. Wed May 30 00:43:05 2001 Joe Orton * http_auth.c (ah_use_body): Removed function. (digest_body): New function. (request_digest): Use ne_pull_request_body to find the MD5 digest of the request body, when necessary. Wed May 30 00:30:52 2001 Joe Orton * http_redirect.c: Store Request-URI, session pointer, and method string in redirect object. Avoid looking inside ne_request/ne_session internals. Wed May 30 00:04:30 2001 Joe Orton * ne_request.c: Re-implement request body handling in terms of a callback which provides the request body blocks on demand. Remove 'use_body' hook, in favour of the hooks calling ne_pull_request_body when necessary. (ne_pull_request_body, body_fd_send, body_string_send): New functions. (send_request_body): Re-implemented using ne_pull_request_body. (run_set_body_hooks): Removed function. (ne_set_request_body_fd): Replacement for ne_set_request_body_stream, using a raw fd rather than a FILE *. Tue May 29 22:39:39 2001 Joe Orton * dav_basic.h, dav_basic.h: Removed. Tue May 29 22:38:54 2001 Joe Orton * ne_207.c (ne_simple_request, etc): Copied in from dav_basic.c. Tue May 29 22:12:23 2001 Joe Orton * ne_locks.c, ne_locks.h, ne_props.c, ne_props.h, ne_207.c, ne_207.h: Big rename. dav_* -> ne_*, and so on. Tue May 29 22:06:24 2001 Joe Orton * ne_basic.c (ne_add_depth_header): Moved from dav_basic.c. Tue May 29 21:55:30 2001 Joe Orton * ne_props.c, ne_props.h: Renamed from dav_props.c, dav_props.h. Tue May 29 21:43:15 2001 Joe Orton * ne_207.c, ne_207.h: Renamed from dav_207.c, dav_207.h. Tue May 29 21:22:25 2001 Joe Orton * ne_locks.c, ne_locks.h: Renamed from dav_locks.c, dav_locks.h. Tue May 29 21:21:44 2001 Joe Orton * ne_socket.c (sock_fullwrite): Cast return value of SSL_write to size_t to prevent comparison of signed with unsigned. Tue May 29 21:05:27 2001 Joe Orton * ne_basic.c [!NEON_NODAV]: Move ne_copy, ne_mkcol, ne_move, ne_delete in here. Tue May 29 20:12:50 2001 Joe Orton * ne_uri.c, ne_uri.h: Renamed from uri.c, uri.h. Tue May 29 19:17:09 2001 Joe Orton * ne_socket.c, ne_socket.h: Renamed from socket.c, nsocket.h. Tue May 29 18:58:51 2001 Joe Orton * ne_basic.c (ne_mkcol, ne_copy, ne_move, ne_delete): Renamed from dav_*. Tue May 29 17:58:09 2001 Joe Orton * ne_basic.c (copy_or_move, dav_copy, dav_move, dav_delete, dav_mkcol): Copied in from dav_basic.c. Tue May 29 17:55:33 2001 Joe Orton * ne_basic.c, ne_basic.h: Renamed from http_basic.c, http_basic.h. Tue May 29 17:47:50 2001 Joe Orton * http_auth.c (ah_create, ah_pre_send): Add the response body handler in pre_send, and only if qop=auth-int. Wed May 16 20:54:51 2001 Joe Orton * ne_request.c (ne_get_request_headers): Removed function. Sat May 12 18:48:46 2001 Joe Orton * ne_request.c (read_message_header, read_response_headers): Use a fixed-size char * buffer argument rather than an ne_buffer. Append directly to it when header-folding. Mon May 7 10:42:38 2001 Joe Orton * ne_string.c (ne_token): Use an optimized search (strchr) if quotes is NULL. Mon May 7 01:33:48 2001 Joe Orton * http_auth.c (basic_challenge, get_cnonce): Updated for ne_base64 change. Mon May 7 01:32:22 2001 Joe Orton * base64.c (ne_base64): Take length parameter. [BASE64_TEST] (main): Remove function, obsoleted by test code. Wed May 2 12:06:59 2001 Joe Orton * ne_string.c, ne_string.h (ne_token, ne_shave): New functions, destined to replace split_string, shave_string, etc. * ne_string.c [SPLIT_STRING_TEST, PAIR_STRING_TEST] (main): Remove tests, functions are obsolete. Tue May 1 22:14:14 2001 Joe Orton * dates.c (ne_httpdate_parse): Moved from ne_utils.c. Tue May 1 21:55:45 2001 Joe Orton * ne_utils.c, ne_utils.h: Renamed from http_utils.c, http_utils.h. Big rename. http_* -> ne_*. neon_* -> ne_*. DEBUG() -> NE_DEBUG(). DEBUG_* -> NE_DBG_*. Tue May 1 21:35:10 2001 Joe Orton * ne_request.c: Updated for ne_buffer changes. Tue May 1 21:28:58 2001 Joe Orton * ne_string.h (ne_buffer_size): Implement as macro. * ne_string.c (ne_buffer_size): Remove function. Tue May 1 21:23:47 2001 Joe Orton * ne_string.c, ne_string.h: Make ne_buffer a transparent type, and no longer be an implicit pointer type. (ne_buffer_*): All changed. (ne_buffer_data, NE_BUFFER_CAST): Removed. Tue May 1 21:17:40 2001 Joe Orton * ne_string.c, ne_string.h: Renamed sbuffer -> ne_buffer. Implicit pointer removed ne_buffer type. Tue May 1 21:12:15 2001 Joe Orton * ne_string.c, ne_string.h: Renamed from string_utils.c, string_utils.h (CVS copy'n'delete). Tue May 1 20:49:46 2001 Joe Orton * md5.c (ASC2HEX, HEX2ASC): Moved here from string_utils.h. * string_utils.h: As above. Tue May 1 20:47:20 2001 Joe Orton * http_request.c, http_request.h: Removed files. * ne_request.c, ne_request.h: Copied from old http_request.[ch]. Renamed http_* -> ne_*. Tue May 1 20:43:11 2001 Joe Orton * hip_xml.c renamed to ne_xml.c, hip_xml.h renamed to ne_xml.h: CVS repository copy'n'delete. Tue May 1 20:41:03 2001 Joe Orton * hip_xml.c, hip_xml.h: Big rename. hip_xml_* -> ne_xml_*. Tue May 1 20:37:13 2001 Joe Orton * http_basic.c, http_basic.h: Big rename. http_* -> ne_*. Tue May 1 19:59:01 2001 Joe Orton * ne_session.c: Renamed http_* to ne_*. Tue May 1 19:55:47 2001 Joe Orton * ne_alloc.h (NE_FREE): Renamed from HTTP_FREE() in http_utils.h Tue May 1 19:54:42 2001 Joe Orton * socket.c (sock_make_secure): Set SSL_MODE_AUTO_RETRY when available. Mon Apr 30 00:36:34 2001 Joe Orton * ne_session.[ch]: New files, split down from http_request.[ch]. Sun Apr 29 15:02:23 2001 Joe Orton * uri.c [URITEST] (main): Remove, obsoleted by new test suite. Sun Apr 29 15:01:30 2001 Joe Orton * uri.c (uri_has_trailing_slash): Return false if uri is "". Sun Apr 29 13:53:41 2001 Joe Orton * dates.c (ne_asctime_parse, ne_rfc1123_date, ne_rfc1036_parse): Set tm_isdst to -1 in struct tm. Sun Apr 29 13:28:26 2001 Joe Orton * http_utils.c (http_parse_statusline): Skip leading whitespace. (Johan Lindh). (http_parse_statusline): Ensure status-code is not more than three digits. Sun Apr 29 13:26:47 2001 Joe Orton * http_request.c (build_request): Don't add "Content-Length: 0" header if no body: Squid 2.3-STABLE1 doesn't like this. Sun Apr 29 13:25:16 2001 Joe Orton * http_auth.c (everywhere): Renamed md5_* -> ne_md5_*. Sun Apr 29 13:24:12 2001 Joe Orton * md5.c: Renamed md5_* -> ne_md5_*. (ne_ascii_to_md5, ne_md5_to_ascii): Moved from string_utils.c. Thu Apr 26 22:39:05 2001 Joe Orton * uri.c (uri_parse): A zero-length URI is invalid. Wed Apr 25 23:11:51 2001 Joe Orton * dav_props.c (startelm): Check for xml:lang attribute and store as prop->lang. (dav_propset_lang): New function. (free_propset): Free lang. Wed Apr 25 23:08:52 2001 Joe Orton * hip_xml.c (hip_xml_get_attr): New function. Sun Apr 22 21:48:06 2001 Joe Orton * uri.c (uri_parse): Skip a userinfo@ segment if present (Johan Lindh ). Wed Apr 18 13:29:46 2001 Joe Orton * dav_locks.c (dav_lock_copy): Allow owner to be NULL. Tue Apr 17 22:57:50 2001 Joe Orton * ne_alloc.h, dav_locks.h: Add C++ inclusion safety. Tue Apr 17 22:56:50 2001 Joe Orton * uri.c (uri_parse): Correctly handle URIs with no scheme or hostport segments (i.e. just a path). Tue Apr 10 00:29:25 2001 Joe Orton * socket.c [HAVE_SOCKS_H]: Include socks.h for SOCKSv5 support. Wed Apr 4 21:41:47 2001 Joe Orton * http_utils.h [WIN32]: Define ssize_t (Kai). Tue Apr 3 21:03:28 2001 Joe Orton * dav_locks.c (dav_lock_discover): Cope with below API change. Tue Apr 3 20:43:50 2001 Joe Orton * dav_props.c (propfind): Register the flat element handler here, to pick up *any* properties and store them as 'flat' if they are not handled by a handler further down the stack. (make_elms, free_elms, dav_propfind_set_flat, dav_propfind_set_complex): Removed functions. (dav_propfind_named): Take the list of property names, and call set_body here. (dav_propfind_set_private): New function. Tue Apr 3 09:33:09 2001 Joe Orton * http_auth.h: Added C++ inclusion safety. (Kai Sommerfeld) Mon Apr 2 02:39:18 2001 Joe Orton * hip_xml.c (sax_error): Add parse error callback for libxml. Mon Apr 2 02:23:06 2001 Joe Orton * http_redirect.c (post_send): Clean up and fix logic. Only check for confirmation for same-server redirects. Mon Apr 2 02:13:48 2001 Joe Orton * http_redirect.c (http_redirect_location): New function. (destroy): Removed function. (create): Free location. (post_send): Only call notify callback for followed redirects. Mon Apr 2 01:55:27 2001 Joe Orton * http_request.c (http_set_request_uri): Allow using the '*' URI even when using a proxy server. Mon Apr 2 01:32:06 2001 Joe Orton * http_redirect.c (post_send): Give up on trying to follow a redirect to another server. Return HTTP_REDIRECT on such a redirect. * http_redirect.c (post_send): Fix leaks of URI object (Kai Sommerfeld). Mon Apr 2 01:08:33 2001 Joe Orton * http_request.c (read_response_headers): Don't read more than 100 response headers. Mon Apr 2 00:54:43 2001 Joe Orton * http_request.c (http_request_dispatch): Remove mapping of auth status codes to return values, the hook does it now. Mon Apr 2 00:53:20 2001 Joe Orton * http_request.c (http_set_request_uri): New function, split out from http_request_create. (http_request_create): Use it. Mon Apr 2 00:51:23 2001 Joe Orton * http_auth.c (http_set_proxy_auth, http_set_server_auth): Add failure codes. (ah_post_send): Return failure code if authentication fails. Mon Apr 2 00:19:17 2001 Joe Orton * http_utils.c: Pick up xmlversion.h from libxml2. (neon_version_string): Include libxml2 version string if defined. Sun Apr 1 21:40:00 2001 Joe Orton * http_basic.c (http_get_range): Fix total length calculation. (Johan Lindh ). (clength_hdr_handler): Use range->total. Sun Apr 1 21:26:09 2001 Joe Orton * hip_xml.c: Add expat2 support (Sam TH ). Sun Apr 1 21:07:19 2001 Joe Orton * string_utils.h (CONCAT2, CONCAT3, CONCAT4): Use ne_malloc. Sun Apr 1 20:59:09 2001 Joe Orton * dav_props.c (propfind, dav_proppatch): As below. Sun Apr 1 20:32:29 2001 Joe Orton * http_basic.c (http_post): Changed as per http_set_request_body_buffer change. * dav_locks.c (dav_lock): Likewise. Sun Apr 1 20:31:06 2001 Joe Orton * http_request.c (http_set_request_body_buffer): Pass in size parameter too. (send_request_body): Use sized rather than NUL-terminated buffer. Sun Apr 1 20:12:51 2001 Joe Orton * http_private.h: Added 'body_callback' request body type, and body_cb, body_ud fields to http_req. * http_request.c (http_set_request_body_provider): New function. (set_body_size): New function, factored out from old http_set_request_body_*. (http_set_request_body_stream, http_set_request_body_buffer): Use it. Sun Apr 1 19:56:17 2001 Joe Orton * dav_props.c: Replaced 'uri' and 'depth' fields in propfind handler object with an 'http_req' pointer. (dav_propfind_create): Create the request object here, and set the depth header. (propfind): Changed accordingly. (dav_propfind_destroy): Destroy request object too. * dav_props.c (dav_propfind_get_request): New function. Fri Mar 30 16:50:51 2001 Joe Orton * hip_xml.c (start_element): Quote attributes in collect (Kai Sommerfeld). Fri Mar 30 16:36:08 2001 Joe Orton * http_basic.c (http_put_if_unmodified): Changed as below. Thu Mar 22 14:05:52 2001 Joe Orton * http_utils.c (http_dateparse): Changed as below. * http_auth.c (get_conce, basic_challenge): Likewise. Thu Mar 22 14:04:54 2001 Joe Orton * dates.c (ne_rfc1123_date, ne_rfc1123_date, ne_asctime_parse, ne_rfc1036_parse): Added ne_ prefix. Thu Mar 22 14:03:12 2001 Joe Orton * base64.c (ne_base64): Renamed from base64. Tue Mar 20 20:34:44 2001 Joe Orton * dav_props.c (make_elms): Don't request UTF-8 decoding of property values. Tue Mar 20 20:33:39 2001 Joe Orton * string_utils.c (ne_utf8_decode): New function. Mon Mar 19 22:08:45 2001 Joe Orton * http_basic.c (get_callback): Removed function. (http_get, http_read_file, http_post): Use callbacks directly rather than indirectly through get_callback. Mon Mar 19 21:55:19 2001 Joe Orton * http_request.c (notify_status, http_set_status, http_set_progress): New functions: request status and progress callbacks. (open_connection, lookup_host): Use notify_status to trigger status callbacks, and register socket progress callbacks. Mon Mar 19 21:53:07 2001 Joe Orton * socket.c (sock_register_notify): Removed function. (sock_connect_u): Renamed to sock_connect. (sock_register_progress): Per-socket progress callbacks rather than global ones. (sock_call_progress): Take socket argument. (all callers changed). Mon Mar 19 21:52:50 2001 Joe Orton * socket.c (sock_get_version): New function. Mon Mar 19 13:59:21 2001 Joe Orton * dav_props.c (propfind): Destroy the handler. Mon Mar 19 13:36:55 2001 Joe Orton * dav_props.c (dav_propnames): New function. Wed Mar 14 22:42:12 2001 Joe Orton * http_request.h (http_begin_request, http_end_request, http_read_response_block): New functions. (http_request_dispatch): Reimplemented using new caller-pulls interface. Wed Mar 14 22:20:38 2001 Joe Orton * http_auth.c (ah_post_send): If authentication fails (i.e. bad credentials), clean the session details. Wed Mar 14 20:46:55 2001 Joe Orton * http_auth.c: Retry the request simply if it has not been tried before with authentication details, otherwise, fail on 40[17]. Wed Mar 14 20:12:52 2001 Joe Orton * http_request.c (open_connection): Make sure to close the connection, and return HTTP_CONNECT if the SSL negotiation fails. Tue Mar 6 18:37:43 2001 Joe Orton * ne_alloc.c (ne_strndup): Allocate n+1 bytes not 'n' (Kai Sommerfeld). Mon Mar 5 01:05:31 2001 Joe Orton * http_request.c: Moved local sbuffer variables of http_request_dispatch into http_req members 'reqbuf' and 'respbuf'. (build_request): Return a const char * of the request. (send_request): Call build_request directly, use req->respbuf. (http_request_dispatch): Don't call build_request. Removed 'goto' exception handling (hoorah). (http_request_create, http_request_destroy): Create and destroy reqbuf and respbuf here. Mon Mar 5 00:43:40 2001 Joe Orton * http_request.c (http_set_request_body_stream): Set req->body_size and Content-Length header here: return success value. (http_set_request_body_buffer): Likewise (but no return value). (get_request_bodysize): Removed function. (build_request): Add Content-Length: 0 header if no request body. Mon Mar 5 00:27:24 2001 Joe Orton * http_auth.c (http_forget_auth): New function. Mon Mar 5 00:25:15 2001 Joe Orton * http_request.c (http_request_hook_private): Renamed from http_get_hook_private. (http_session_hook_private): New function. * dav_locks.c (dav_lock_using_resource, dav_lock_using_parent): Renamed simiarly. Sun Mar 4 23:12:12 2001 Joe Orton * http_auth.c: Moved per-request state into struct auth_request. (request_digest): Take struct auth_request argument. (free_auth): New function. (http_add_hooks): Pass free_auth as cleanup function for auth session. Sun Mar 4 23:08:46 2001 Joe Orton * http_redirect.c (auto_redirect): Auto-redirect OPTIONS requests. (free_redirect): New function. (http_redirect_register): Pass cleanup function. Sun Mar 4 23:07:01 2001 Joe Orton * dav_locks.c (dav_lock_unregister): Removed function. (free_locks): New function. (dav_lock_register): Pass free_locks as cleanup function for hooks. Sun Mar 4 22:54:57 2001 Joe Orton * http_request.h (http_add_hooks): Added fourth argument to register a cleanup function for the cookie. Sun Mar 4 19:53:03 2001 Joe Orton * http_auth.c (request_digest): Use an sbuffer to create the header value. Sun Mar 4 19:44:18 2001 Joe Orton * http_auth.c: Remove namespace protection for private functions. s/http_auth/auth/g. Sun Mar 4 19:39:13 2001 Joe Orton * http_auth.c (ah_pre_send): Increase attempt counter here, ... (ah_post_send): instead of here. Sun Mar 4 18:40:03 2001 Joe Orton * http_request.c (http_request_dispatch): Simplify post_send hook invocation: run them until one doesn't return HTTP_OK. Don't run pre_send hooks here. Loop while a hook returns HTTP_RETRY. (build_request): Run pre_send hooks here. * http_request.c (read_response_body): Call normalize_response_length here. Sun Mar 4 18:12:26 2001 Joe Orton Re-implemented HTTP authentication using generic hooks interface. * http_auth.c: Added http_auth.h. (http_auth_init, http_auth_set_creds_cb, http_auth_new_request, http_auth_request_header): Removed functions, merged into new hooks code. (ah_create, ah_post_send, ah_pre_send, ah_use_body, ah_destroy): New functions. (auth_body_reader, http_set_server_auth, http_set_proxy_auth): Moved over from http_request.c and redone for hooks interface. * http_request.c (http_set_server_auth, http_set_proxy_auth, give_creds, auth_body_reader): Moved to http_auth.c. (http_accept_always): Renamed from always_accept_response and made public. (http_request_create, build_request, http_request_dispatch): Removed authentication code. Tue Feb 27 19:49:42 2001 Joe Orton * dav_props.c (set_body): Remove UTF-8 encoding again. Mon Feb 26 22:38:41 2001 Joe Orton Patch from Kai Sommerfeld to remove URI escaping from inside neon. * dav_207.c (end_element): Don't unescape href elements. * http_request.c (http_request_create): Don't escape Request-URI. * dav_basic.c (copy_or_move): Don't escape destination URI. Mon Feb 26 21:44:56 2001 Joe Orton * dav_props.c (set_body): UTF-8 encode the property name and value. (make_elms): Request UTF-8 decoding of property values. Mon Feb 26 21:40:14 2001 Joe Orton * hip_xml.c: Do perform UTF-8 decoding when using libxml. (char_data): Fix UTF-8 decoding bug where the byte after a multi-byte encoded sequence would be skipped. Sun Feb 25 20:04:05 2001 Joe Orton * string_utils.c (ne_utf8_encode): New function. Sun Feb 25 19:52:01 2001 Joe Orton * ne_alloc.c (ne_realloc): New function. Sun Feb 25 17:00:32 2001 Joe Orton * Makefile.in (all): Rename NEON_IS_BUNDLED to NEON_BUILD_BUNDLED. Sun Feb 25 16:52:43 2001 Joe Orton * Makefile.in (all): Build according to NEON_IS_BUNDLED. Fri Feb 23 23:38:10 2001 Joe Orton * Makefile.in: Fix deps: neon_config.h has gone. Fri Feb 23 22:57:47 2001 Joe Orton * dav_props.c (dav_simple_propfind): Support a NULL 'props' argument to do an allprop request, as per the advertising literature. Register a catch-all handler in this case. Fri Feb 23 22:16:42 2001 Joe Orton * http_request.c (http_session_destroy): Free up hooks list. Thu Feb 22 21:54:36 2001 Joe Orton * http_request.h (http_add_hooks): Make request_hooks 'const'. Thu Feb 15 08:36:56 2001 Joe Orton * http_request.c (read_response_body): Accept SOCK_CLOSED as end-of-response if we don't have a Content-Length (and not chunked). (Kai Sommerfeld). Thu Feb 15 08:36:23 2001 Joe Orton * http_request.c (add_fixed_headers): Don't add the Host header here. (http_request_dispatch): Add it here instead. * http_request.c (set_hostinfo): Dup the hostname. (http_session_destroy): Free the hostname. (Kai Sommerfeld). Thu Feb 15 08:35:49 2001 Joe Orton * http_private.h: Make hostname in struct host_info char *. (Kai Sommerfeld). Thu Feb 15 08:08:50 2001 Joe Orton * http_redirect.h: Add C++ header-inclusion safety macros (Kai Sommerfeld ). Wed Feb 14 23:37:57 2001 Joe Orton * http_request.c (read_response_body): Use a size_t for readlen, as read_response_block requires. Wed Feb 14 23:25:44 2001 Joe Orton * http_auth.c (request_digest): Fix incorrect signed-ness of buffer. Wed Feb 14 23:22:13 2001 Joe Orton * uri.h, string_utils.h: Comment-out tokens after #endif. Sun Feb 4 14:36:11 2001 Joe Orton * http_redirect.c (post_send): Prototype change. Sun Feb 4 14:31:42 2001 Joe Orton * socket.c: Added key_prompt, key_userdata, key_file to nssl_context. (sock_set_key_prompt, key_prompt_cb): New functions. (sock_make_secure): Set ctx->key_file to private key filename. Sun Feb 4 13:31:44 2001 Joe Orton * http_request.h: Make http_status argument of post_send a const pointer. Sun Feb 4 10:38:12 2001 Joe Orton * http_request.c (set_sockerr): Only use the socket error if it is NULL, else print generic "something went wrong"-type error message. Sun Feb 4 10:29:37 2001 Joe Orton * socket.c (sock_set_client_cert): Call SSL_CTX_check_private_key to ensure that the cert and private key match. Sun Feb 4 10:28:02 2001 Joe Orton * socket.c (sock_make_secure): In error cases after SSL_connect succeeds, call SSL_shutdown and assign sock->ssl = NULL before returning. Sat Feb 3 18:33:56 2001 Joe Orton * socket.c (sock_close): Call SSL_shutdown before close()'ing the fd. Sat Feb 3 18:30:48 2001 Joe Orton * socket.c: Store an default SSL_CTX in nsocket, to be used when no nssl_context is supplied. (create_socket): Create default SSL_CTX (sock_close): Free it here. (sock_make_secure): Use it here. Sat Feb 3 15:52:15 2001 Joe Orton * socket.c (sock_set_client_cert): New function. Sat Feb 3 15:48:51 2001 Joe Orton * socket.c: Rejig of nssl_context handling. An nssl_context is now really a wrapper for an SSL_CTX. (sock_create_ssl_context): Create the SSL_CTX here. (sock_disable_tlsv1, sock_disable_sslv2, sock_disable_sslv3): Set the SSL_CTX option directly. (sock_make_secure): Create an SSL_CTX if no nssl_context is supplied, otherwise use SSL_CTX from nssl_context. Sun Jan 28 13:52:03 2001 Joe Orton * http_utils.c (neon_version_minimum): New function. Sun Jan 28 10:37:28 2001 Joe Orton * neon_config.h.in: Removed file. * http_request.c, http_utils.c: Don't include neon_config.h. Sat Jan 27 22:52:37 2001 Joe Orton * socket.c: Use closesocket() as NEON_CLOSE (Markus Fleck ). Sat Jan 27 22:35:16 2001 Joe Orton * hip_xml.c: Add 'char_data' as libxml cdataBlock handler. Tue Jan 23 23:17:00 2001 Joe Orton * neon_config.h.in: Renamed from neon_config.h. Define NEON_VERSION_MAJOR and NEON_VERSION_MINOR too: all picked up from the NEON_VERSIONS macro. Sun Jan 21 22:07:34 2001 Joe Orton * string_utils.c (ne_concat): New function. Thu Jan 18 22:25:34 2001 Joe Orton * ne_alloc.h: Added ne_oom_callback. * ne_alloc.c: Added DO_MALLOC macro to do the malloc and oom callback test. (ne_malloc): Use DO_MALLOC. (ne_strdup, ne_calloc, ne_strndup): Reimplement using DO_MALLOC rather than calling ne_malloc(). Tue Jan 16 20:16:35 2001 Joe Orton * neon_config.h: Bumped version to 0.10.1. Tue Jan 16 20:14:40 2001 Joe Orton * http_request.c (http_session_create): Default expect-100 support to OFF. Mon Jan 15 22:59:33 2001 Joe Orton * neon_config.h: Bumped version to 0.10.0. Mon Jan 15 22:58:04 2001 Joe Orton * dav_basic.c (dav_simple_request): Use dav_207_ignore_unknown. Sun Jan 14 22:52:31 2001 Joe Orton * dav_props.c (propfind): Call dav_207_ignore_unknown. Sun Jan 14 22:49:06 2001 Joe Orton * dav_207.c: Don't handle unknown elements in normal handler. (ignore_cc, dav_207_ignore_unknown): New functions, for ignoring any unknown elements in the parse. Sun Jan 14 21:53:00 2001 Joe Orton * hip_xml.c: Renamed 'handlers' back to top_handlers. (push_handler): Now, p->root->handlers points to BASE of stack, p->top_handlers points to TOP of stack. (hip_xml_destroy): Changed to start from new BASE of stack. Sun Jan 14 10:50:09 2001 Joe Orton * http_request.c (http_session_server): Do perform the DNS lookup if we have a proxy_decider function, since that means we MIGHT need to know the IP address of the origin server. (http_request_create): Pass the real scheme back to the proxy decider callback. Wed Jan 10 22:43:16 2001 Joe Orton * Makefile.in: Rename OBJ_EXT to NEON_OBJEXT. Remove NEON_INTERFACE_VERSION, use NEON_LINK_FLAGS instead. Wed Jan 10 22:02:02 2001 Joe Orton * dav_locks.c (create_private): New function. (dav_lock_discover): Switch to using new dav_propfind_set_complex API. Wed Jan 10 21:59:36 2001 Joe Orton * dav_props.h (dav_propfind_set_complex): Switch the 'sizeof_private' argument for a callback 'creator': the return value of this callback is used as the 'private' field for the current resource. Mon Jan 8 22:09:55 2001 Joe Orton * dav_locks.h (dav_lock_result): Re-order arguments. Make lock object const. * dav_locks.c (dav_lock_copy): New function. (discover_results): Set lock->uri given href for current results. Free lock object after passing to results. Sun Jan 7 21:55:14 2001 Joe Orton * dav_locks.c (dav_lock): Destroy XML parser after use. Remove handling of Lock-Token header: it wasn't used and it leaked. Sun Jan 7 19:58:29 2001 Joe Orton * dav_props.c (free_propset): Free the property values, and the result set URI too. Sun Jan 7 16:58:19 2001 Joe Orton * http_request.c (read_response_block): Fix handling of SOCK_CLOSED from sock_read as end-of-connection. Sat Jan 6 15:02:57 2001 Joe Orton * hip_xml.c (struct hip_xml_parser): Renamed 'top_handlers' to 'handlers' in hip_xml_parser. (push_handler): New function. (hip_xml_push_handler, hip_xml_push_mixed_handler): Use push_handler. * hip_xml.c (find_handler): Begin the search for a new handler from the handler of the current (parent) element, and work up the stack. Sat Jan 6 11:15:17 2001 Joe Orton * hip_xml.c (find_handler): Display error message for unknown XML element as 'elmname (in nspace)' rather than 'nspace:elmname' since the latter produces confusing errors like 'DAV::displayname'. Wed Jan 3 21:34:44 2001 Joe Orton * Makefile.in: Hard-code top_builddir as '..' (possibly wrong, but true for all neon apps so far). Remove INCLUDES, now unused. Add top_srcdir. Fri Dec 22 22:51:27 2000 Joe Orton * dav_props.c: Added 'has_props' field to propfind_handler struct. (set_body): Only add leading 'prop' element if has_props is not set. Set has_props. Don't add trailing element here. (dav_propfind_named): ... add it here instead. (dav_propfind_set_complex, dav_propfind_set_flat): New set_body interface. Fri Dec 22 21:10:39 2000 Joe Orton * socket.c (sock_transfer): Don't use NEON_READ here, this is for reading from a non-socket fd. Wed Dec 20 00:19:34 2000 Joe Orton * neon_config.h: Bumped version to 0.9.1. Wed Dec 20 00:19:09 2000 Joe Orton * dav_props.c (free_propset): Don't free the private structure, make this the caller's responsibility. Wed Dec 20 00:12:36 2000 Joe Orton * dav_props.c (end_propstat): Rename propstat argument to 'pstat_v' to kill warnings. Tue Dec 19 23:42:39 2000 Joe Orton * dav_props.c (start_response): Zero-out the private structure on creation. Tue Dec 19 22:54:06 2000 Joe Orton * http_request.c (read_response_block): Rename local variable 'socket' to 'sock'. Tue Dec 19 22:52:56 2000 Joe Orton * http_request.h: Rename argument from 'stat' in post_send definition. Tue Dec 19 22:52:32 2000 Joe Orton * http_utils.h: Add 'const' to char * argument. Tue Dec 19 22:19:28 2000 Joe Orton * neon_config.h: Bumped version to 0.9.0. Tue Dec 19 22:12:19 2000 Joe Orton * Makefile.in: New file. Tue Dec 19 22:07:50 2000 Joe Orton * Makefile.incl: Removed file. Tue Dec 19 22:06:06 2000 Joe Orton * dav_locks.c (dav_lock_discover): New callback-based lock discovery interface. Re-implemented using new propfind interface. Tue Dec 19 21:22:43 2000 Joe Orton * dav_props.h: Replace old dav_propfind_* interface with better one. (dav_simple_propfind): Renamed from dav_get_props. (dav_propfind_current_private, dav_propfind_set_complex, dav_propfind_set_flat): New functions. (dav_propfind_get_current_resource): Removed function. (dav_propfind_named, dav_propfind_allprop): Change second argument to be the results callback. * dav_props.c: Replace implementatino of old interface with new one. (dav_simple_propfind): Re-implemented on top of new all-singing all-dancing dav_propfind_* interface. Sun Dec 17 18:24:50 2000 Joe Orton * dav_props.c: Add dav_get_props, and all its auxiliaries. Sun Dec 17 15:43:55 2000 Joe Orton * dav_props.c (propfind): Destroy the request after calling http_get_status. Sun Dec 17 18:04:58 2000 Joe Orton * hip_xml.c (find_handler): Allow using NULL as name and nspace in HIP_ELM_unknown elements. Sun Dec 17 18:03:03 2000 Joe Orton * dav_207.c (check_context): Don't handle the unknown element when it is a child of the prop element, this prevents handling allprop responses. Thu Dec 14 21:48:06 2000 Joe Orton * neon_config.h: Bumped version to 0.8.0. Thu Dec 14 21:43:31 2000 Joe Orton * dav_basic.c, dav_locks.c, dav_props.c (everywhere): Changed to new response-status interface, and _class->klass change. Thu Dec 14 21:37:38 2000 Joe Orton * http_request.c (http_get_status): Add new response-status interface. Thu Dec 14 21:30:25 2000 Joe Orton * http_basic.c (everywhere): Use new status interface. Thu Dec 14 21:25:03 2000 Joe Orton * http_private.h: Made http_status pointer in http_req a declared object. * http_request.h: Removed passing status pointer to http_request_dispatch. * http_request.c (everywhere): Removed passing extra http_status * to auxiliaries, use req->status instead. Renamed '_class' to 'klass' everywhere. Thu Dec 14 21:15:54 2000 Joe Orton * http_utils.h: Renamed '_class' member of http_status to 'klass'. (http_parse_statusline): Change accordingly. Wed Dec 13 23:00:23 2000 Joe Orton * socket.c: Changes for pre-BONE BeOS (David Reid ). Wed Dec 13 21:29:36 2000 Joe Orton * uri.c (ESCAPE): Explicitly cast the character to const unsigned int. (uri_abspath_escape): Make 'pnt' a normal const char *. Wed Dec 13 21:17:31 2000 Joe Orton * http_request.c: Remove netinet/in.h include, add limits.h include. (Peter Boos) (read_response_block): Make readlen a size_t (David Reid). Wed Dec 13 21:08:08 2000 Joe Orton * ne_alloc.h [WIN32]: Include stdlib.h. (Peter Boos) Wed Dec 13 20:54:27 2000 Joe Orton Patches from Peter Boos and David Reid for Win32 and BeOS changes respectively: * socket.c: Add NEON_READ, NEON_WRITE, NEON_CLOSE macros to use send/recv/closesocket for BeOS, send/recv/close for Win32, write/read/close otherwise. Include WinSock2.h in Windows. Add arpa/inet.h check. (sock_read, sock_write): Use the NEON_ macros. (sock_connect, sock_close): Use NEON_CLOSE. (sock_init): Winsock initialization. (sock_exit) Winsock cleanup. (sock_fullwrite): Use size_t rather than ssize_t for 'sent'. (sock_connect, sock_connect_u): Make 'port' parameter an unsigned short int. Wed Dec 13 20:42:18 2000 Joe Orton * http_basic.c (clength_hdr_handler): Use an off_t for len, to avoid comparison with size_t. Wed Dec 13 20:38:59 2000 Joe Orton * hip_xml.c (char_data): Use an 'int' for wslen, avoid comparison between size_t (which is signed) and int (which [is|might be?] unsigned). Wed Dec 13 20:29:12 2000 Joe Orton * nsocket.h [WIN32]: Use Windows headers rather than Unixy ones. (sock_exit): New function. Wed Dec 13 20:21:22 2000 Joe Orton * string_utils.c, string_utils.h, uri.h: Includes change (Peter Boos). Wed Dec 13 20:20:09 2000 Joe Orton * http_auth.c (http_auth_response_body): Don't make inline. Includes change. (both by Peter Boos). Wed Dec 13 20:18:38 2000 Joe Orton * uri.c (uri_unescape): Cast strtol return to (char). Includes change as below (both by Peter Boos). Wed Dec 13 20:07:38 2000 Joe Orton * base64.c, dates.c, dates.h, dav_207.c, dav_207.h, dav_basic.h, dav_locks.h, hip_xml.h, http_auth.h, http_basic.h, http_cookies.c, http_redirect.c, http_redirect.h, http_request.h, http_utils.c, md5.c, ne_alloc.c: Use #include "..." rather than #include <...> for neon headers. (Peter Boos ). Thu Dec 7 21:45:02 2000 Joe Orton * socket.c (sock_read): Return zero immediately if a zero count parameter is passed, following SUSv2 semantics. Thu Dec 7 21:41:36 2000 Joe Orton * nsocket.h (sock_readfile_blocked): Define an interface, allow taking -1 as the length parameter. Only return SOCK_CLOSED if length == -1 is NOT passed. Sun Nov 26 09:46:53 2000 Joe Orton * nsocket.h: Fix use of 'socket' in function prototypes. Sun Nov 19 00:29:48 2000 Joe Orton * nsocket.h: Increase read timeout to 120 seconds. Sun Nov 5 14:42:46 2000 Joe Orton * dav_locks.c: Fix element id's (fixes segfault when using locks). Thu Oct 26 22:28:17 2000 Joe Orton * socket.c (sock_peek): Return SOCK_CLOSED if recv() returns zero. Thu Oct 26 22:24:14 2000 Joe Orton * socket.c (sock_block): Return "got data" if SSL_pending indicates data pending. Otherwise select on socket as normal. Thu Oct 26 22:15:14 2000 Joe Orton * socket.c (sock_readline, sock_peek): Check whether SSL connection has been closed if SSL_peek returns 0 (thanks to Jeff Costlow ). Thu Oct 14 19:57:31 2000 Joe Orton * Makefile.incl: Fix spurius backslash at line 69 (thanks to Dirk Bergstrom ). Sat Oct 14 19:51:44 2000 Joe Orton * dav_basic.c (copy_or_move): Use http_get_scheme rather than hard-coding "http". 2000-10-02 Joe Orton * http_request.c (http_get_scheme): New function. Tue Oct 10 19:56:42 2000 Joe Orton * neon_config.h: Bumped version to 0.7.5. Sat Oct 7 19:26:58 2000 Joe Orton * neon_config.h: Bumped version to 0.7.4. Sat Oct 7 19:19:37 2000 Joe Orton * http_auth.c (request_digest): Quote algorithm and qop parameters in digest header. Sat Oct 7 19:15:29 2000 Joe Orton * socket.c (sock_connect_u): Don't leak the fd if connect fails (David Sloat). Sat Sep 16 16:49:57 2000 Joe Orton * hip_xml.h: Add 'HIP_ELM_UNUSED', defining lowest element ID which should be used. * hip_xml.c, hip_xml.h (hip_xml_push_handler, hip_xml_push_mixed_handler): Renamed from hip_xml_add_handler / hip_xml_add_mixed_handler to reflect stack-like usage of handlers. 'handlers' field of hip_xml_parser renamed to top_handler for same reason (globally search'n'replaced). * hip_xml.h: Documentation update. Thu Sep 14 22:37:33 2000 Joe Orton * http_auth.c (request_digest): Quote qop= value, fixes IIS5 interop. Thu Sep 14 00:40:04 2000 Joe Orton * socket.c (sock_connect_u): If connect() fails, close the socket before returning: thanks to David Sloat . Tue Sep 12 20:08:40 2000 Joe Orton * http_request.c (read_response_headers): Remove redundant tolower(). Tue Sep 12 00:41:39 2000 Joe Orton * neon_config.h: Bumped version to 0.7.3. Mon Sep 11 15:31:13 2000 Joe Orton * http_request.c, http_auth.c: Include snprintf.h if HAVE_SNPRINTF_H is defined. Fri Sep 8 10:46:53 2000 Joe Orton * neon_config.h: Bumped version to 0.7.2. Fri Sep 8 10:44:42 2000 Joe Orton * socket.c (sock_block): Return immediately if this is an SSL socket. Thu Sep 7 00:31:12 2000 Joe Orton * hip_xml.h: Correct order of hip_xml_validate_cb arguments in prototype (thanks to Greg Stein). Thu Sep 7 00:27:29 2000 Joe Orton * dav_props.c (propfind): Don't destroy the handler after use. (dav_propfind_destroy): New function. Thu Sep 7 00:08:45 2000 Joe Orton * Makefile.incl: Added targets for ne_alloc.o, string_utils.o, uri.o, base64.o. Tue Aug 15 21:53:53 2000 Joe Orton * neon_config.h: Bumped version to 0.7.1. Tue Aug 15 21:16:34 2000 Joe Orton * http_request.c (http_request_create): Only add authentication response body callbacks if a supply-credentials callback has been set for the session. (http_request_dispatch): Similarly for response header callbacks. Mon Aug 14 09:28:38 2000 Joe Orton * neon_config.h: Bumped version to 0.7.0. Mon Aug 14 09:23:54 2000 Joe Orton * string_utils.h (SBUFFER_CAST): New macro. Mon Aug 14 09:13:05 2000 Joe Orton * http_private.h: Use a hash table for storing response header handlers. Added response header 'catchers', which are passed ALL response headers. * http_request.c (http_add_response_header_handler): Place the handler in the correct hash bucket. (hdr_hash): New function. (http_add_response_header_catcher): New function. (http_request_destroy): Destroy the header catchers, and iterate over the hash table to destroy the handlers. (read_response_headers): Optimisation: hash and search for ':' in a single loop. Remove another local variable. Iterate through catchers too. Sun Aug 13 15:57:35 2000 Joe Orton * neon_config.h: Bumped version to 0.6.1. Sun Aug 13 15:50:42 2000 Joe Orton * http_request.c (send_request): Only go through the loop at most twice. Sun Aug 13 15:49:52 2000 Joe Orton * http_redirect.c (destroy): Don't free the redirect structure. Sat Aug 12 17:10:32 2000 Joe Orton * neon_config.h: Bumped version to 0.6.0. Sat Aug 12 16:48:47 2000 Joe Orton * http_request.c (http_session_decide_proxy): New function. (http_request_create): Call proxy "decider callback" to determine whether to use the proxy server for a given request or not. Sat Aug 12 16:39:10 2000 Joe Orton * Makefile.incl: Updated for http_private.h and http_redirect.[ch]. Sat Aug 12 16:36:49 2000 Joe Orton * http_request.c: Removed data structure definitions. * http_private.h: New file, contains data structure definitions. Interface NOT exported. Sat Aug 12 16:31:32 2000 Joe Orton * http_redirect.c (destroy): No return value. Sat Aug 12 16:04:02 2000 Joe Orton * http_redirect.[ch]: First cut at HTTP redirect handling. Sat Aug 12 11:05:13 2000 Joe Orton * neon_config.h: Bumped version to 0.5.1. Sat Aug 12 02:04:15 2000 Joe Orton * dav_locks.c (dav_lock_using_resource, dav_lock_using_parent): Prevent segfault if locking is not in use. Fri Aug 11 17:19:06 2000 Joe Orton * neon_config.h: Bumped version to 0.5.0. Fri Aug 11 16:31:23 2000 Joe Orton * http_request.c (read_message_header): Take a buffer for storing continuation lines. (read_response_headers): No need to strip EOL since read_message_header does this already. Use one less variable. Fri Aug 4 22:12:04 2000 Joe Orton * http_request.c (send_request): Don't retry sending the request more than once. Wed Aug 2 11:08:31 2000 Joe Orton * ne_alloc.[ch]: Renamed from xalloc.[ch]. Wed Aug 2 02:15:32 2000 Joe Orton * socket.c (sock_transfer): Return SOCK_CLOSED, or set sock->error appropriately on read failure. Tue Aug 1 13:04:27 2000 Joe Orton * socket.c, nsocket.h (sock_progress, sock_call_progress, sock_transfer, sock_readfile_blocked): Use 'off_t' not 'size_t' as file size type. Fri Jul 28 13:32:37 2000 Joe Orton * neon_config.h: Bumped version to 0.4.2. Fri Jul 28 13:31:38 2000 Joe Orton * http_request.c (send_request): Fix sending request body after getting 100-continue response. Fri Jul 28 11:26:47 2000 Joe Orton * neon_config.h: Bumped version to 0.4.1. Fri Jul 28 10:32:34 2000 Joe Orton * neon_config.h: Bumped version to 0.4.0. Fri Jul 28 10:28:21 2000 Joe Orton * http_basic.[ch] (http_post): New function, from Sander Alberink . Thu Jul 27 18:55:49 2000 Joe Orton * http_utils.c (neon_debug): No conditional compilation for function body: compile it all regardless of whether debugging is enabled or not, to allow applications to be debugged regardless of whether debugging is compiled into the library or not. Thu Jul 27 16:59:26 2000 Joe Orton * http_basic.c (clength_hdr_handler): Cast off_t to long int for printing. Tue Jul 25 18:14:15 2000 Joe Orton * http_request.c (read_message_header): Iterate over header handler list before placing zero-terminator at ':': if a handler has a NULL name field, pass it the entire header value. Tue Jul 25 18:00:49 2000 Joe Orton * http_request.c (http_get_request_headers): New function. Mon Jul 24 16:55:29 2000 Joe Orton * neon_config.h: Bumped version to 0.3.9. Mon Jul 24 16:54:33 2000 Joe Orton * http_basic.h: Use 'off_t' in http_content_range. * http_basic.c (http_get_range): Cast range values to (long int) to prevent compiler warnings. Thu Jul 20 20:03:30 2000 Joe Orton * http_request.[ch], socket.c, http_basic.c: Include nsocket.h not socket.h. Thu Jul 20 20:02:20 2000 Joe Orton * http_utils.c (version_string): Indicate which XML parser is supported. Thu Jul 20 20:01:12 2000 Joe Orton * nsocket.h: Renamed from socket.h. Thu Jul 20 15:02:35 2000 Joe Orton * http_utils.c, socket.c, http_request.c: SSL_ENABLE renamaed to ENABLE_SSL. Thu Jul 20 12:20:13 2000 Joe Orton * md5.c, http_auth.h: Include neon_md5.h. Thu Jul 20 12:19:23 2000 Joe Orton * neon_md5.h: Renamed from md5.h. Wed Jul 19 22:33:46 2000 Joe Orton * dav_basic.c (dav_simple_request): Don't leak ctype.value. Wed Jul 19 22:32:03 2000 Joe Orton * dav_207.c (check_context): Accept unknown elements. Wed Jul 19 22:31:10 2000 Joe Orton * dav_locks.c (dav_lock_iterate): Allow passing func as NULL. Wed Jul 19 22:26:13 2000 Joe Orton * socket.h (SOCKET_READ_TIMEOUT): Increase to 60. Wed Jul 19 22:25:51 2000 Joe Orton * dav_locks.h: Include http_request.h. Mon Jul 17 11:41:16 2000 Joe Orton * dates.c (asctime_parse, rfc1036_parse): Actually pass the string to sscanf (thanks to lclint). (rfc1123_date): Check for gmtime() returning NULL. Mon Jul 17 09:16:43 2000 Joe Orton * neon_config.h: Bumped version to 0.3.1. Mon Jul 17 09:07:58 2000 Joe Orton * dav_locks.c: Include limits.h: thanks to Paul D'Anna. Sun Jul 16 18:47:15 2000 Joe Orton * neon_config.h: Bumped version to 0.3.0. Sun Jul 16 16:44:25 2000 Joe Orton * neon_i18n.c (neon_i18n_init) [ENABLE_NLS && NEON_IS_LIBRARY]: New compilation conditions. Sun Jul 16 16:41:12 2000 Joe Orton * neon_i18n.c: New file. Sun Jul 16 16:15:02 2000 Joe Orton * string_utils.c (sbuffer_*): Change to assert postcondition (buf->used == strlen(buf->data) + 1). (sbuffer_append): Fix brokenness. Sun Jul 16 16:11:05 2000 Joe Orton * socket.c (sock_transfer): Increase sum length written correctly. Sun Jul 16 16:10:23 2000 Joe Orton * http_request.c (http_get_hook_private): New function. Sun Jul 16 16:07:11 2000 Joe Orton * hip_xml.c (find_handler): Call validate_cb for any handler which recognizes the element. Allow return codes HIP_XML_{VALID,INVALID,DECLINE} from validate_cb. If DECLINE is returned, continue searching handlers until one returns (IN)VALID. (start_element): Don't call validate_cb. * hip_xml.c (start_element, end_element): In collect mode, don't print namespace prefix if present. Sun Jul 16 15:30:19 2000 Joe Orton * dav_locks.[ch]: New file, code mainly taken from cadaver and adapted for neon HTTP request/response handling. Sun Jul 16 15:28:25 2000 Joe Orton * dav_basic.c (copy_or_move, dav_move, dav_copy): Pass overwrite as parameter. Sun Jul 16 15:26:24 2000 Joe Orton * uri.c (uri_compare): Fixed to only return equal if *shorter* string has no trailing slash. Sat Jul 15 20:14:07 2000 Joe Orton * dav_207.c (dav_207_get_current_response, dav_207_get_current_propstat): New functions. * dav_props.c (dav_propfind_get_current_resource): Implement using dav_207_get_current_response. Sat Jul 15 17:36:37 2000 Joe Orton * xalloc.c (xcalloc): New function. Sat Jul 15 14:11:14 2000 Joe Orton * http_utils.[ch] and elsewhere: Replace 'class' field of http_status with '_class' to be C++-safe. (patch from Tom Bednarz). Thu Jul 6 18:48:52 2000 Joe Orton * dav_basic.c (copy_or_move): Escape the destination URI. Thu Jul 6 18:45:51 2000 Joe Orton * dav_props.c (end_response): Added description parameter. Thu Jul 6 18:43:14 2000 Joe Orton * dav_207.[ch] (end_element): Fix handling of responsedescription. Add "description" parameter to dav_207_end_response callback, and pass the contents of responsedescription. * dav_basic.c (handle_error, end_response, end_propstat): Pass description and add to error string when present. Tue Jul 4 11:43:03 2000 Joe Orton * dav_basic.c, dav_props.c, http_basic.c: Use http_{add,print}_request_header rather than http_get_request_header. Tue Jul 4 11:41:00 2000 Joe Orton * http_request.[ch] (http_add_request_header, http_print_request_header): New functions. (http_get_request_header): Removed function. Mon Jul 3 21:50:40 2000 Joe Orton * http_request.c: Add basic support for TLS upgrade (RFC2817). (http_set_request_secure_upgrade, http_set_accept_secure_upgrade): New functions. (send_request): If upgrade is requested, and a 101 response is received, negotiate the TLS connection. (add_fixed_headers): Add Upgrade header if necessary. Mon Jul 3 21:46:00 2000 Joe Orton * http_request.c (send_request): Don't go into an infinite loop. (read_message_header): Simplyify checking for end-of-line. Tue Jun 13 00:29:42 2000 Joe Orton * http_request.c (http_session_proxy, http_session_server): Allow calling >1 time per session, to switch servers. (send_request): Only retry sending request once. Mon Jun 12 21:50:41 2000 Joe Orton * http_request.c (http_add_hooks): New function. Mon Jun 12 21:37:24 2000 Joe Orton * http_cookies.[ch]: Added basic cookies support. Mon Jun 12 21:33:33 2000 Joe Orton * socket.c (sock_create_ssl_context, sock_destroy_ssl_context, sock_disable_tlsv1, sock_disable_sslv2, sock_disable_sslv3, sock_make_secure): Added nssl_context handling. Mon Jun 12 21:29:52 2000 Joe Orton * http_request.c (http_request_dispatch, http_request_create, http_request_destroy, http_set_request_body_buffer, http_set_request_body_stream): Added hook support. Mon Jun 12 21:04:00 2000 Joe Orton * http_request.c (http_set_secure): Store an nssl_context. (open_connection): Give the nssl_context. Sun Jun 11 16:37:52 2000 Joe Orton * sslcerts.c: Import of SSL support from mutt, relicensed under the LGPL for use in neon by the author, Tommi Komulainen . Sun Jun 11 11:30:16 2000 Joe Orton * http_request.c (set_sockerr): Updated to use sock_get_error. Sun Jun 11 11:29:29 2000 Joe Orton * uri.c (uri_parse): Allow scheme to be omitted. Fri Jun 9 20:39:24 2000 Joe Orton * socket.c (sock_get_error): New function. (sock_*): Set sock->error and SOCK_ERROR on error. Mon May 29 16:32:46 2000 Joe Orton * uri.c (uri_abspath_escape): Allocate the exact amount of memory needed. Mon May 29 15:53:33 2000 Joe Orton * dav_basic.c (dav_simple_request): Correct invalid XML logic. Mon May 29 15:52:08 2000 Joe Orton * socket.c (create_sock, sock_accept, sock_get_fd): New functions. (sock_connect_u): Use create_sock. Sun May 28 21:00:37 2000 Joe Orton * http_utils.c (neon_version_string): New function. Sun May 28 19:36:45 2000 Joe Orton * socket.c (sock_connect_u): Zero out allocated nsocket object. Thu May 25 01:27:04 2000 Joe Orton * *.h: Include other neon headers with . Thu May 25 01:02:12 2000 Joe Orton * dav_props.c: Include stdlib.h for 'free'. Wed May 24 20:15:08 2000 Joe Orton * http_request.c (read_message_header): Return HTTP_RETRY if more headers to read, HTTP_OK on end-of-headers. (read_response_headers): Changed accordingly. Wed May 24 19:56:29 2000 Joe Orton * http_request.c (send_request_body): Return a SOCK_* code. (send_request): Re-send request if socket has been closed (due to persistent connection timeout). Wed May 24 19:00:01 2000 Joe Orton * hip_xml.c (find_element): Fix unknown element handling. Tue May 23 19:12:26 2000 Joe Orton * dav_props.c (propfind): Destroy the request body sbuffer after use. Tue May 23 15:43:42 2000 Joe Orton * socket.c (sock_make_secure) [SSL_ENABLE]: Conditionally compile SSL code. [!SSL_ENABLE]: Return failure. (sock_close) [SSL_ENABLE]: Conditionally compile SSL code. Tue May 23 15:37:53 2000 Joe Orton * http_request.c (http_session_create): Renamed from http_session_init. (http_session_destroy): Renamed frmo http_session_finish. Sun May 21 23:50:58 2000 Joe Orton * http_request.c (lookup_host): Use sock_name_lookup. Sun May 21 23:40:39 2000 Joe Orton * http_request.c (http_request_create): Allow passing NULL uri (internal use only). (http_set_secure): New function. (read_response_block, read_message_headers): Redone for new socket API. (build_request): Moved http_auth_new_request calls here (from http_request_dispatch). (send_request): Always call open_connection before sending the request. (read_message_header, read_response_headers): Looser check for empty line. (normalize_response_length): Set response body length to zero on 2xx class response whilst in CONNECT, if no other response body length is given. (http_request_dispatch): Don't close the connection on a HTTP/1.0 2xx class response after a CONNECT request. (proxy_tunnel): New function. (open_connection): Use an SSL connection where appropriate. Use proxy_tunnel for tunnelling through a proxy. Sun May 21 01:35:40 2000 Joe Orton * src/socket.c: Added 'nsocket' ADT for handling sockets. (sock_*): All changed to take 'nsocket *' argument rather than integer file descriptor. Added 'sock_secure_details' to sock_status enum. (sock_make_secure, sock_init): New function. (sock_peek): Renamed from sock_recv. (send_file_*, recv_file_*): Removed functions. (sock_name_lookup): Renamed from host_lookup. (sock_service_lookup): Renamed from get_tcp_port. (sock_block, sock_read, sock_fullwrite, sock_peek, sock_readline): Added SSL support. (sock_transfer): Use sock_fullwrite and sock_read. Sun May 21 01:25:03 2000 Joe Orton * http_request.c (http_request_destroy): Free header handlers and body readers. Sun May 21 01:24:30 2000 Joe Orton * dav_props.h: Removed obsolte got_property callback type. Sun May 21 01:23:59 2000 Joe Orton * dav_props.c (propfind): Free handler object after use. Sun May 21 01:23:12 2000 Joe Orton * dav_207.c (dav_207_destroy): Don't try to free the 'response' field. Sat May 20 21:45:32 2000 Joe Orton * http_request.c: Changed 'te' enum of struct http_response to 'is_chunked' boolean. Sun May 14 01:00:42 2000 Joe Orton * dav_props.c (propfind): Return error on parse error. Sun May 14 00:40:50 2000 Joe Orton * neon_config.h (NEON_VERSION): Bumped to 0.2.0. Sat May 13 23:31:28 2000 Joe Orton * neon_defs.h (BEGIN_NEON_DECLS, END_NEON_DECLS): Added C++ safety macros. * *.h: Surround with C++ safety macros. Sat May 13 22:36:06 2000 Joe Orton * hip_xml.c (hip_xml_destroy): Free handlers. Sat May 13 21:12:14 2000 Joe Orton * hip_xml.c (hip_xml_valid): Reversed return value. Sat May 13 21:11:17 2000 Joe Orton * http_utils.c: Renamed http_debug_mask to neon_debug_mask, similarly neon_debug_stream. (neon_debug_init): Renamed from http_debug_init. Sat May 13 19:24:40 2000 Joe Orton * http_utils.c: Initialize http_debug_mask to zero. (http_debug_init): New function. * http_utils.h: Fixed #ifdef DEBUGGING. Only define relevant DEBUG_* constants. Sat May 13 19:23:34 2000 Joe Orton * neon_config.h: New file. * http_request.c: Include neon_config.h for NEON_VERSION. Sat May 13 18:28:05 2000 Joe Orton * dav_props.c (dav_propfind_create): Create a hip_xml_parser, a 207 parser, register start+end response handlers with 207 layer. (propfind): Fix allprop (Michael Sobolev). * dav_basic.c (dav_simple_request): Create and destroy hip_xml_parser and 207 parser appropriately. Sat May 13 18:24:49 2000 Joe Orton * dav_207.c: Now takes an externally-declared hip_xml parser pointer. (dav_207_create, dav_207_destroy): New functions. (dav_207_init, dav_207_init_with_handler, dav_207_parse, dav_207_error, dav_207_finish): Removed functions. Sat May 13 17:32:45 2000 Joe Orton * hip_xml.[ch]: Rewritten to use opaque hip_xml_parser pointer. struct hip_xml_handler and struct hip_xml_state removed from external interface. struct hip_xml_elm * passed to startelm_cb and endelm_cb. (hip_xml_add_handler, hip_xml_valid, hip_xml_create, hip_xml_destroy, hip_xml_set_error, hip_xml_get_error): New functions. (hip_xml_init, hip_xml_destroy): Removed functions. Sat May 13 13:43:56 2000 Joe Orton * neon.h: Removed. Sat May 13 13:42:20 2000 Joe Orton * string_utils.h: Don't include config.h. (CONCAT*): Don't use xmalloc, use malloc and abort manually. Sat May 13 13:32:46 2000 Joe Orton * http_utils.h, dates.h, http_basic.h: Don't include config.h Sat May 13 13:31:37 2000 Joe Orton * hip_xml.[ch], dav_207.c: Use HIP_ERR_SIZE for size of parser error string. Sat May 13 13:30:40 2000 Joe Orton * Makefile.incl: Use obj_ext for object file extension. Thu May 11 18:21:53 2000 Joe Orton * neon.h: Bumped version to 0.1.1. Thu May 11 18:16:08 2000 Joe Orton * http_basic.c (get_to_fd): Fix short writes. Wed May 10 19:22:01 2000 Joe Orton * neon.h: Bumped version to 0.1.0. Wed May 10 17:46:48 2000 Joe Orton * uri.c (uri_parse, uri_free): New functions. Wed May 10 17:43:37 2000 Joe Orton * http_basic.c (get_to_fd, http_get): Set error appropriately if fwrite() fails. Wed May 10 14:25:38 2000 Joe Orton * http_utils.c (http_debug): New function. Wed May 10 14:25:08 2000 Joe Orton * http_basic.c (get_callback): Call sock_call_progress. Wed May 10 14:24:20 2000 Joe Orton * socket.c (sock_call_progress): New function. (many places): Use it. Wed May 10 14:22:48 2000 Joe Orton * uri.c (uri_has_trailing_slash): Moved from being inline. Tue May 9 23:34:25 2000 Joe Orton * dav_props.c: Use handler as userdata for 207 callbacks, unified handler and context structures. (start_prop, end_prop, start_propelm, end_propelm): Removed functions. (dav_propfind_get_current_resource): New function. Tue May 9 23:29:44 2000 Joe Orton * xalloc.[ch]: New files. Tue May 9 23:05:47 2000 Joe Orton * dav_207.[ch]: Removed property and property element callbacks. Tue May 9 23:01:00 2000 Joe Orton * dav_207.c: Use separate name/namespace for element names. (dav_207_init_with_handler): New function. (end_element): Unescape URI in href element. Tue May 9 19:54:07 2000 Joe Orton * dav_props.c (dav_propfind_allprop, dav_propfind_named, propfind, start_response, end_response, start_prop, end_prop, start_propelm, end_propelm): New functions; PROPFIND support. Tue May 9 19:45:17 2000 Joe Orton * http_request.c (build_request): Renamed from make_request. Tue May 9 19:36:01 2000 Joe Orton * socket.[ch]: Added sock_block_reader. Tue May 9 15:52:56 2000 Joe Orton * uri.c (uri_childof): Return false when parent is the same length as child. Sun May 7 15:07:49 2000 Joe Orton * dav_207.c: Separated element namespace/names. Tue May 2 16:40:59 2000 Joe Orton * hip_xml.[ch]: Added HIP_XML_UTF8DECODE flag. Tue May 2 16:16:57 2000 Joe Orton * hip_xml.[ch]: Separate element name and namespace. Mon May 1 00:21:24 2000 Joe Orton * dav_207.c (dav_accept_207): Moved function from dav_basic.c. * dav_basic.c (dav_accept_207, dav_parse_xml_block): Removed functions. Sun Apr 30 22:47:47 2000 Joe Orton * dav_props.[ch]: Renamed dav_proppatch_item to dav_proppatch_operation. Sun Apr 30 22:45:04 2000 Joe Orton * hip_xml.c (start_element): Clearer error message. Sun Apr 30 19:12:07 2000 Joe Orton * http_basic.c (http_content_type_handler, dav_hdr_handler): New functions. (http_options): Handle DAV header. Sun Apr 30 18:08:53 2000 Joe Orton * dav_props.c (dav_proppatch): New function. Sun Apr 30 18:05:55 2000 Joe Orton * dav_basic.c (handle_error): New function. (end_response, end_propstat): Use it. (dav_simple_request): Don't return the 207 error string if we get all 2xx class status elements. Sun Apr 30 16:56:41 2000 Joe Orton * dav_basic.c (dav_add_depth_header): New function. Sun Apr 30 14:49:06 2000 Joe Orton * dav_207.c (start_element): Unknown element is only a property if the parent is DAV:propstat. Sun Apr 30 14:43:28 2000 Joe Orton * dav_basic.c (end_response, end_propstat): Only write error line if we have status information and the status is not a 424. Sun Apr 30 14:28:23 2000 Joe Orton * dav_basic.h: Added DAV_DEPTH_*. Sun Apr 30 12:47:50 2000 Joe Orton * dav_207.c (check_context): Allow (and ignore) unknown elements anywhere other than as the root. Sun Apr 30 12:35:39 2000 Joe Orton * string_utils.h (ASC2HEX, HEX2ASC): New macros. Sun Apr 30 12:34:37 2000 Joe Orton * http_auth.c [STANDALONE]: Removed. (everywhere): Switch to using md5_to_ascii rather than md5_hexify. Sun Apr 30 12:32:35 2000 Joe Orton * http_request.c (read_response_block): Fixed to return errors properly and block length to parameter. (read_response_body): Changed accordingly. Sun Apr 30 12:29:45 2000 Joe Orton * hip_xml.c (friendly_name): New function, was PRETTY_NAME macro. (start_element, end_element): Fix COLLECT handling. (hip_xml_parse): Only write parse error if the document has not already been marked invalid. Sun Apr 30 12:28:36 2000 Joe Orton * dav_basic.c (dav_simple_request): Rewritten for new 207 interface. (start_response, end_response, end_propstat): New functions. Sun Apr 30 12:27:52 2000 Joe Orton * dav_207.c (dav_207_error): Return the parser error. Sat Apr 29 14:46:48 2000 Joe Orton * socket.c (sock_register_progress, sock_register_notify): New functions. (everywhere): Use progress + notify callbacks rather than fe_*. Sat Apr 29 14:15:23 2000 Joe Orton * string_utils.c (md5_to_ascii, ascii_to_md5): New functions. Sat Apr 29 13:55:39 2000 Joe Orton * hip_xml.c (hip_xml_init): abort() on out-of-memory. Sat Apr 29 12:56:11 2000 Joe Orton * neon_i18n.h: New file. Sat Apr 29 12:55:24 2000 Joe Orton * dav_207.[ch]: Re-implemented with sensible interface. Fri Apr 28 14:56:01 2000 Joe Orton * http_auth.c (http_auth_request_header): Renamed from http_auth_request. * http_request.c (make_request): As above. Thu Apr 13 11:52:14 2000 Joe Orton * http_basic.c (http_put): Switched URI and stream arguments. Thu Apr 13 09:51:21 2000 Joe Orton * http_request.c: Added user_agent field to session structure. (http_set_useragent): New function. (add_fixed_headers): Only set user-agent if sess->user_agent is set. Thu Apr 13 09:49:32 2000 Joe Orton * http_request.c (lookup_host): New function, split from set_hostinfo. (set_hostinfo): Doesn't perform DNS lookup. (http_session_server): Don't do a DNS lookup if we have a proxy. Wed Apr 12 22:32:21 2000 Joe Orton * http_request.c (http_request_dispatch, http_request_create): Store auth header values in local variables rather than request structure. (http_request_create): Don't leak everything on error. Handle http_auth_challenge return value. Wed Apr 12 22:30:06 2000 Joe Orton * http_basic.c (http_options): Pass server capabilites object, parse Server header to detect Apache/1.3.6 and before, indicating broken 100-continue support. (server_hdr_handler): New function. Mon Apr 10 17:42:07 2000 Joe Orton * socket.c: Use 'int' for return values. Mon Apr 10 17:41:40 2000 Joe Orton * http_auth.c (is_in_domain): Dummy implementation. Mon Apr 10 17:40:21 2000 Joe Orton * http_request.c: Handle read() returning 0 when it shouldn't. i18n'ized error messages. Mon Apr 10 14:45:09 2000 Joe Orton * dates.[ch], md5.[ch], base64.[ch]: Imported date handling utilities, MD5 checksum functions, and text->base64 converter. Mon Apr 10 14:44:08 2000 Joe Orton * Makefile.incl: Dependancies updated for socket.[ch]. Mon Apr 10 14:43:36 2000 Joe Orton * dav_207.c: Replaced malloc() calls with xmalloc() calls. Mon Apr 10 14:42:35 2000 Joe Orton * http_auth.c, uri.c, string_utils.h: Replaced malloc() calls with xmalloc() calls. Mon Apr 10 14:41:40 2000 Joe Orton * socket.[ch]: Imported socket handling utilities. Mon Apr 10 14:36:03 2000 Joe Orton * string_utils.h (CONCAT*): Use xmalloc. Mon Apr 10 13:52:17 2000 Joe Orton * http_request.c (set_sockerr): Added handling for socket errors. Sat Apr 8 13:49:07 2000 Joe Orton * string_utils.[ch]: Imported string utilites. Sat Apr 8 00:26:06 2000 Joe Orton * http_request.c (http_set_persist, http_set_expect100): New functions. Sat Apr 8 00:25:37 2000 Joe Orton * http_basic.c (http_options): New function. Fri Apr 7 13:01:35 2000 Joe Orton * neon.h: New file. Fri Apr 7 12:59:40 2000 Joe Orton * http_request.c (normalize_response_length, read_response_body): New functions. (http_add_response_body_reader): Take a callback to determine whether the body reader wants to read the response body. Fri Apr 7 11:46:41 2000 Joe Orton * http_request.c (http_set_server_auth, http_set_proxy_auth): New functions. (give_creds): Use supplied callbacks for authentication. (get_request_bodysize): Send Content-Length: 0 if no entity-body is being sent with a request. (te_hdr_handler, connection_hdr_handler): New functions. (make_request): Don't use Expect: 100-continue if server is not HTTP/1.1 compliant. (read_message_header): Only read until HTTP_MAXIMUM_HEADER_LENGTH bytes of header have been read. (read_response_headers): No hard-coded header handling. (http_request_create): Set req->method_is_head here. Thu Apr 6 14:39:28 2000 Joe Orton * hip_xml.c [HIP_XML_DECODE_UTF8] (decode_utf8_double): New function. (char_data) [HIP_XML_DECODE_UTF8]: Decode UTF-8. Tue Mar 28 13:54:51 2000 Joe Orton * Makefile.incl: Imported makefile fragment. Tue Mar 28 13:54:09 2000 Joe Orton * http_request.[ch] (http_get_error): New function. Thu Mar 23 18:48:42 2000 Joe Orton * hip_xml.[ch]: Imported generic XML parsing layer. * dav_207.[ch]: Imported generic WebDAV 207 response handling. * dav_basic.[ch]: Imported/implemented DAV response handling and basic Class 1 namespace methods. Thu Mar 23 18:46:14 2000 Joe Orton * http_request.c (add_hooks, run_hooks, http_add_destroy_hook): Adding hooks support. (add_fixed_headers): Send TE token in Connection header. Only send Keep-Alive header & token to pre-1.1 origin servers (i.e., not proxies). Thu Mar 23 12:49:01 2000 Joe Orton * http_auth.[ch], uri.[ch]: Imported HTTP authentication and URI handling modules. Thu Mar 23 12:47:05 2000 Joe Orton * http_utils.c: Imported HTTP utility functions. Thu Mar 23 12:44:38 2000 Joe Orton * http_request.[ch]: Implemented modular HTTP request handling. * http_basic.[ch]: Implemented basic HTTP methods GET, PUT, and PUT with If-Unmodified. gnome-vfs-2.24.4/imported/neon/ne_acl.c0000644000175000001440000000674711334251016014602 00000000000000/* Access control Copyright (C) 2001, 2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ /* Contributed by Arun Garg */ #include "config.h" #include #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #include "ne_request.h" #include "ne_locks.h" #include "ne_alloc.h" #include "ne_string.h" #include "ne_acl.h" #include "ne_uri.h" #include "ne_xml.h" /* for NE_XML_MEDIA_TYPE */ #define EOL "\r\n" static ne_buffer *acl_body(ne_acl_entry *right, int count) { ne_buffer *body = ne_buffer_create(); int m; ne_buffer_zappend(body, "" EOL "" EOL); for (m = 0; m < count; m++) { const char *type; type = (right[m].type == ne_acl_grant ? "grant" : "deny"); ne_buffer_concat(body, "" EOL "", NULL); switch (right[m].apply) { case ne_acl_all: ne_buffer_zappend(body, "" EOL); break; case ne_acl_property: ne_buffer_concat(body, "<", right[m].principal, "/>" EOL, NULL); break; case ne_acl_href: ne_buffer_concat(body, "", right[m].principal, "" EOL, NULL); break; } ne_buffer_concat(body, "" EOL "<", type, ">" EOL, NULL); if (right[m].read == 0) ne_buffer_concat(body, "" "" "" EOL, NULL); if (right[m].read_acl == 0) ne_buffer_concat(body, "" "" "" EOL, NULL); if (right[m].write == 0) ne_buffer_concat(body, "" "" "" EOL, NULL); if (right[m].write_acl == 0) ne_buffer_concat(body, "" "" "" EOL, NULL); if (right[m].read_cuprivset == 0) ne_buffer_concat(body, "" "" "" EOL, NULL); ne_buffer_concat(body, "" EOL, NULL); ne_buffer_zappend(body, "" EOL); } ne_buffer_zappend(body, "" EOL); return body; } int ne_acl_set(ne_session *sess, const char *uri, ne_acl_entry *entries, int numentries) { int ret; ne_request *req = ne_request_create(sess, "ACL", uri); ne_buffer *body = acl_body(entries, numentries); #ifdef NE_HAVE_DAV ne_lock_using_resource(req, uri, 0); #endif ne_set_request_body_buffer(req, body->data, ne_buffer_size(body)); ne_add_request_header(req, "Content-Type", NE_XML_MEDIA_TYPE); ret = ne_request_dispatch(req); ne_buffer_destroy(body); if (ret == NE_OK && ne_get_status(req)->code == 207) { ret = NE_ERROR; } ne_request_destroy(req); return ret; } gnome-vfs-2.24.4/imported/neon/ne_xml.h0000644000175000001440000001357311334251016014643 00000000000000/* neon XML parser interface Copyright (C) 1999-2004, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_XML_H #define NE_XML_H #include /* for size_t */ #include "ne_defs.h" BEGIN_NEON_DECLS /* The neon XML interface filters a streamed XML tree through a stack * of SAX "handlers". A handler is made up of three callbacks * (start-element, char-data, end-element). Each start-element event * is passed to each handler in the stack in turn until one until one * accepts the element. This handler then receives subsequent * char-data and end-element events for the element. * * For each new start-element event, the search up the handler stack * begins with the handler for the parent element (for the root * element, at the base of the stack). * * For each accepted element, a "state" integer is stored, which is * passed to the corresponding char-data and end-element callbacks for * the element. This integer is also passed to the start-element * callback of child elements so they can determine context. * * If no handler in the stack accepts a particular element, it (and * its children, if any) is ignored. */ #define NE_XML_DECLINE (0) #define NE_XML_ABORT (-1) /* A start-element callback for element with given namespace/name. * The callback may return: * <0 => abort the parse (NE_XML_ABORT) * 0 => decline this element (NE_XML_DECLINE) * >0 => accept this element; value is state for this element. * * The 'parent' integer is the state returned by the handler of the * parent element. The attributes array gives name/value pairs * in atts[n] and atts[n+1] from n=0 up to atts[n]==NULL. */ typedef int ne_xml_startelm_cb(void *userdata, int parent, const char *nspace, const char *name, const char **atts); /* state for the root element */ #define NE_XML_STATEROOT (0) /* Character data callback; may return non-zero to abort the parse. */ typedef int ne_xml_cdata_cb(void *userdata, int state, const char *cdata, size_t len); /* End element callback; may return non-zero to abort the parse. */ typedef int ne_xml_endelm_cb(void *userdata, int state, const char *nspace, const char *name); typedef struct ne_xml_parser_s ne_xml_parser; /* Create an XML parser. */ ne_xml_parser *ne_xml_create(void); /* Push a new handler on the stack of parser 'p'. 'cdata' and/or * 'endelm' may be NULL; startelm must be non-NULL. */ void ne_xml_push_handler(ne_xml_parser *p, ne_xml_startelm_cb *startelm, ne_xml_cdata_cb *cdata, ne_xml_endelm_cb *endelm, void *userdata); /* ne_xml_failed returns non-zero if there was an error during * parsing, or zero if the parse completed successfully. The return * value is equal to that of the last ne_xml_parse call for this * parser. */ int ne_xml_failed(ne_xml_parser *p); /* Set error string for parser: the string may be truncated. */ void ne_xml_set_error(ne_xml_parser *p, const char *msg); /* Return the error string (never NULL). After ne_xml_failed returns * >0, this will describe the parse error. Otherwise it will be a * default error string. */ const char *ne_xml_get_error(ne_xml_parser *p); /* Destroy the parser object. */ void ne_xml_destroy(ne_xml_parser *p); /* Parse the given block of input of length len. Parser must be * called with len=0 to signify the end of the document (for that * case, the block argument is ignored). Returns zero on success, or * non-zero on error: for an XML syntax error, a positive number is * returned; if parsing is aborted by a caller-supplied callback, that * callback's return value is returned. */ int ne_xml_parse(ne_xml_parser *p, const char *block, size_t len); /* As above, casting (ne_xml_parser *)userdata internally. * (This function can be passed to ne_add_response_body_reader) */ int ne_xml_parse_v(void *userdata, const char *block, size_t len); /* Return current parse line for errors */ int ne_xml_currentline(ne_xml_parser *p); /* From a start_element callback which was passed 'attrs' using given * parser, return attribute of given name and namespace. If nspace is * NULL, no namespace resolution is performed. */ const char *ne_xml_get_attr(ne_xml_parser *parser, const char **attrs, const char *nspace, const char *name); /* Return the encoding of the document being parsed. May return NULL * if no encoding is defined or if the XML declaration has not yet * been parsed. */ const char *ne_xml_doc_encoding(const ne_xml_parser *p); /* A utility interface for mapping {nspace, name} onto an integer. */ struct ne_xml_idmap { const char *nspace, *name; int id; }; /* Return the size of an idmap array */ #define NE_XML_MAPLEN(map) (sizeof(map) / sizeof(struct ne_xml_idmap)) /* Return the 'id' corresponding to {nspace, name}, or zero. */ int ne_xml_mapid(const struct ne_xml_idmap map[], size_t maplen, const char *nspace, const char *name); /* media type, appropriate for adding to a Content-Type header */ #define NE_XML_MEDIA_TYPE "application/xml" END_NEON_DECLS #endif /* NE_XML_H */ gnome-vfs-2.24.4/imported/neon/ne_redirect.c0000644000175000001440000000710211334251016015626 00000000000000/* HTTP-redirect support Copyright (C) 1999-2004, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #include "ne_session.h" #include "ne_request.h" #include "ne_alloc.h" #include "ne_uri.h" #include "ne_redirect.h" #include "ne_i18n.h" #include "ne_string.h" #define REDIRECT_ID "http://www.webdav.org/neon/hooks/http-redirect" struct redirect { char *requri; int valid; /* non-zero if .uri contains a redirect */ ne_uri uri; ne_session *sess; }; static void create(ne_request *req, void *session, const char *method, const char *uri) { struct redirect *red = session; NE_FREE(red->requri); red->requri = ne_strdup(uri); } #define REDIR(n) ((n) == 301 || (n) == 302 || (n) == 303 || \ (n) == 307) static int post_send(ne_request *req, void *private, const ne_status *status) { struct redirect *red = private; const char *location = ne_get_response_header(req, "Location"); ne_buffer *path = NULL; int ret; /* Don't do anything for non-redirect status or no Location header. */ if (!REDIR(status->code) || location == NULL) return NE_OK; if (strstr(location, "://") == NULL && location[0] != '/') { char *pnt; path = ne_buffer_create(); ne_buffer_zappend(path, red->requri); pnt = strrchr(path->data, '/'); if (pnt && pnt[1] != '\0') { /* Chop off last path segment. */ pnt[1] = '\0'; ne_buffer_altered(path); } ne_buffer_zappend(path, location); location = path->data; } /* free last uri. */ ne_uri_free(&red->uri); /* Parse the Location header */ if (ne_uri_parse(location, &red->uri) || red->uri.path == NULL) { red->valid = 0; ne_set_error(red->sess, _("Could not parse redirect location.")); ret = NE_ERROR; } else { /* got a valid redirect. */ red->valid = 1; ret = NE_REDIRECT; if (!red->uri.host) { /* Not an absoluteURI: breaks 2616 but everybody does it. */ ne_fill_server_uri(red->sess, &red->uri); } } if (path) ne_buffer_destroy(path); return ret; } static void free_redirect(void *cookie) { struct redirect *red = cookie; ne_uri_free(&red->uri); if (red->requri) ne_free(red->requri); ne_free(red); } void ne_redirect_register(ne_session *sess) { struct redirect *red = ne_calloc(sizeof *red); red->sess = sess; ne_hook_create_request(sess, create, red); ne_hook_post_send(sess, post_send, red); ne_hook_destroy_session(sess, free_redirect, red); ne_set_session_private(sess, REDIRECT_ID, red); } const ne_uri *ne_redirect_location(ne_session *sess) { struct redirect *red = ne_get_session_private(sess, REDIRECT_ID); if (red && red->valid) return &red->uri; else return NULL; } gnome-vfs-2.24.4/imported/neon/ne_xml.c0000644000175000001440000004511311334251016014631 00000000000000/* Wrapper interface to XML parser Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #include "ne_i18n.h" #include "ne_alloc.h" #include "ne_xml.h" #include "ne_utils.h" #include "ne_string.h" #if defined(HAVE_EXPAT) /* expat support: */ #ifdef HAVE_XMLPARSE_H #include "xmlparse.h" #else #include #endif typedef XML_Char ne_xml_char; #if !defined(XML_MAJOR_VERSION) || (XML_MAJOR_VERSION < 2 \ && XML_MINOR_VERSION == 95 \ && XML_MICRO_VERSION < 2) #define NEED_BOM_HANDLING #endif #elif defined(HAVE_LIBXML) /* libxml2 support: */ #include #include typedef xmlChar ne_xml_char; #if LIBXML_VERSION < 20619 /* 2.6.19 and earlier have broken BOM handling */ #define NEED_BOM_HANDLING #endif #else /* not HAVE_LIBXML */ # error need an XML parser #endif /* not HAVE_EXPAT */ /* Approx. one screen of text: */ #define ERR_SIZE (2048) struct handler { ne_xml_startelm_cb *startelm_cb; /* start-element callback */ ne_xml_endelm_cb *endelm_cb; /* end-element callback */ ne_xml_cdata_cb *cdata_cb; /* character-data callback. */ void *userdata; /* userdata for the above. */ struct handler *next; /* next handler in stack. */ }; #ifdef HAVE_LIBXML static void sax_error(void *ctx, const char *msg, ...); #endif struct element { const ne_xml_char *nspace; ne_xml_char *name; int state; /* opaque state integer */ /* Namespaces declared in this element */ ne_xml_char *default_ns; /* A default namespace */ struct namespace *nspaces; /* List of other namespace scopes */ struct handler *handler; /* Handler for this element */ struct element *parent; /* parent element, or NULL */ }; /* We pass around a ne_xml_parser as the userdata in the parsing * library. This maintains the current state of the parse and various * other bits and bobs. Within the parse, we store the current branch * of the tree, i.e., the current element and all its parents, up to * the root, but nothing other than that. */ struct ne_xml_parser_s { struct element *root; /* the root of the document */ struct element *current; /* current element in the branch */ struct handler *top_handlers; /* always points at the * handler on top of the stack. */ int failure; /* zero whilst parse should continue */ int prune; /* if non-zero, depth within a dead branch */ #ifdef NEED_BOM_HANDLING int bom_pos; #endif #ifdef HAVE_EXPAT XML_Parser parser; char *encoding; #else xmlParserCtxtPtr parser; #endif char error[ERR_SIZE]; }; /* The callback handlers */ static void start_element(void *userdata, const ne_xml_char *name, const ne_xml_char **atts); static void end_element(void *userdata, const ne_xml_char *name); static void char_data(void *userdata, const ne_xml_char *cdata, int len); static const char *resolve_nspace(const struct element *elm, const char *prefix, size_t pfxlen); /* Linked list of namespace scopes */ struct namespace { ne_xml_char *name; ne_xml_char *uri; struct namespace *next; }; #ifdef HAVE_LIBXML /* Could be const as far as we care, but libxml doesn't want that */ static xmlSAXHandler sax_handler = { NULL, /* internalSubset */ NULL, /* isStandalone */ NULL, /* hasInternalSubset */ NULL, /* hasExternalSubset */ NULL, /* resolveEntity */ NULL, /* getEntity */ NULL, /* entityDecl */ NULL, /* notationDecl */ NULL, /* attributeDecl */ NULL, /* elementDecl */ NULL, /* unparsedEntityDecl */ NULL, /* setDocumentLocator */ NULL, /* startDocument */ NULL, /* endDocument */ start_element, /* startElement */ end_element, /* endElement */ NULL, /* reference */ char_data, /* characters */ NULL, /* ignorableWhitespace */ NULL, /* processingInstruction */ NULL, /* comment */ NULL, /* xmlParserWarning */ sax_error, /* xmlParserError */ sax_error, /* fatal error (never called by libxml2?) */ NULL, /* getParameterEntity */ char_data /* cdataBlock */ }; /* empty attributes array to mimic expat behaviour */ static const char *empty_atts[] = {NULL, NULL}; /* macro for determining the attributes array to pass */ #define PASS_ATTS(atts) (atts ? (const char **)(atts) : empty_atts) #else #define PASS_ATTS(atts) ((const char **)(atts)) /* XML declaration callback for expat. */ static void decl_handler(void *userdata, const XML_Char *version, const XML_Char *encoding, int standalone) { ne_xml_parser *p = userdata; if (encoding) p->encoding = ne_strdup(encoding); } #endif /* HAVE_LIBXML */ int ne_xml_currentline(ne_xml_parser *p) { #ifdef HAVE_EXPAT return XML_GetCurrentLineNumber(p->parser); #else return p->parser->input->line; #endif } const char *ne_xml_doc_encoding(const ne_xml_parser *p) { #ifdef HAVE_LIBXML return p->parser->encoding; #else return p->encoding; #endif } /* The first character of the REC-xml-names "NCName" rule excludes * "Digit | '.' | '-' | '_' | CombiningChar | Extender"; the XML * parser will not enforce this rule in a namespace declaration since * it treats the entire attribute name as a REC-xml "Name" rule. It's * too hard to check for all of CombiningChar | Digit | Extender here, * but the valid_ncname_ch1 macro catches some of the rest. */ /* Return non-zero if 'ch' is an invalid start character for an NCName: */ #define invalid_ncname_ch1(ch) ((ch) == '\0' || strchr("-.0123456789", (ch)) != NULL) /* Subversion repositories have been deployed which use property names * marshalled as NCNames including a colon character; these should * also be rejected but will be allowed for the time being. */ #define invalid_ncname(xn) (invalid_ncname_ch1((xn)[0])) /* Extract the namespace prefix declarations from 'atts'. */ static int declare_nspaces(ne_xml_parser *p, struct element *elm, const ne_xml_char **atts) { int n; for (n = 0; atts && atts[n]; n += 2) { if (strcmp(atts[n], "xmlns") == 0) { /* New default namespace */ elm->default_ns = ne_strdup(atts[n+1]); } else if (strncmp(atts[n], "xmlns:", 6) == 0) { struct namespace *ns; /* Reject some invalid NCNames as namespace prefix, and an * empty URI as the namespace URI */ if (invalid_ncname(atts[n] + 6) || atts[n+1][0] == '\0') { ne_snprintf(p->error, ERR_SIZE, ("XML parse error at line %d: invalid namespace " "declaration"), ne_xml_currentline(p)); return -1; } /* New namespace scope */ ns = ne_calloc(sizeof(*ns)); ns->next = elm->nspaces; elm->nspaces = ns; ns->name = ne_strdup(atts[n]+6); /* skip the xmlns= */ ns->uri = ne_strdup(atts[n+1]); } } return 0; } /* Expand an XML qualified name, which may include a namespace prefix * as well as the local part. */ static int expand_qname(ne_xml_parser *p, struct element *elm, const ne_xml_char *qname) { const ne_xml_char *pfx; pfx = strchr(qname, ':'); if (pfx == NULL) { struct element *e = elm; /* Find default namespace; guaranteed to terminate as the root * element always has default_ns="". */ while (e->default_ns == NULL) e = e->parent; elm->name = ne_strdup(qname); elm->nspace = e->default_ns; } else if (invalid_ncname(pfx + 1) || qname == pfx) { ne_snprintf(p->error, ERR_SIZE, _("XML parse error at line %d: invalid element name"), ne_xml_currentline(p)); return -1; } else { const char *uri = resolve_nspace(elm, qname, pfx-qname); if (uri) { elm->name = ne_strdup(pfx+1); elm->nspace = uri; } else { ne_snprintf(p->error, ERR_SIZE, ("XML parse error at line %d: undeclared namespace prefix"), ne_xml_currentline(p)); return -1; } } return 0; } /* Called with the start of a new element. */ static void start_element(void *userdata, const ne_xml_char *name, const ne_xml_char **atts) { ne_xml_parser *p = userdata; struct element *elm; struct handler *hand; int state = NE_XML_DECLINE; if (p->failure) return; if (p->prune) { p->prune++; return; } /* Create a new element */ elm = ne_calloc(sizeof *elm); elm->parent = p->current; p->current = elm; if (declare_nspaces(p, elm, atts) || expand_qname(p, elm, name)) { p->failure = 1; return; } /* Find a handler which will accept this element (or abort the parse) */ for (hand = elm->parent->handler; hand && state == NE_XML_DECLINE; hand = hand->next) { elm->handler = hand; state = hand->startelm_cb(hand->userdata, elm->parent->state, elm->nspace, elm->name, PASS_ATTS(atts)); } NE_DEBUG(NE_DBG_XML, "XML: start-element (%d, {%s, %s}) => %d\n", elm->parent->state, elm->nspace, elm->name, state); if (state > 0) elm->state = state; else if (state == NE_XML_DECLINE) /* prune this branch. */ p->prune++; else /* state < 0 => abort parse */ p->failure = state; } /* Destroys an element structure. */ static void destroy_element(struct element *elm) { struct namespace *this_ns, *next_ns; ne_free(elm->name); /* Free the namespaces */ this_ns = elm->nspaces; while (this_ns != NULL) { next_ns = this_ns->next; ne_free(this_ns->name); ne_free(this_ns->uri); ne_free(this_ns); this_ns = next_ns; } if (elm->default_ns) ne_free(elm->default_ns); ne_free(elm); } /* cdata SAX callback */ static void char_data(void *userdata, const ne_xml_char *data, int len) { ne_xml_parser *p = userdata; struct element *elm = p->current; if (p->failure || p->prune) return; if (elm->handler->cdata_cb) { p->failure = elm->handler->cdata_cb(elm->handler->userdata, elm->state, data, len); NE_DEBUG(NE_DBG_XML, "XML: char-data (%d) returns %d\n", elm->state, p->failure); } } /* Called with the end of an element */ static void end_element(void *userdata, const ne_xml_char *name) { ne_xml_parser *p = userdata; struct element *elm = p->current; if (p->failure) return; if (p->prune) { if (p->prune-- > 1) return; } else if (elm->handler->endelm_cb) { p->failure = elm->handler->endelm_cb(elm->handler->userdata, elm->state, elm->nspace, elm->name); if (p->failure) { NE_DEBUG(NE_DBG_XML, "XML: end-element for %d failed with %d.\n", elm->state, p->failure); } } NE_DEBUG(NE_DBG_XML, "XML: end-element (%d, {%s, %s})\n", elm->state, elm->nspace, elm->name); /* move back up the tree */ p->current = elm->parent; p->prune = 0; destroy_element(elm); } /* Find a namespace definition for 'prefix' in given element, where * length of prefix is 'pfxlen'. Returns the URI or NULL. */ static const char *resolve_nspace(const struct element *elm, const char *prefix, size_t pfxlen) { const struct element *s; /* Search up the tree. */ for (s = elm; s != NULL; s = s->parent) { const struct namespace *ns; /* Iterate over defined spaces on this node. */ for (ns = s->nspaces; ns != NULL; ns = ns->next) { if (strlen(ns->name) == pfxlen && memcmp(ns->name, prefix, pfxlen) == 0) return ns->uri; } } return NULL; } ne_xml_parser *ne_xml_create(void) { ne_xml_parser *p = ne_calloc(sizeof *p); /* Placeholder for the root element */ p->current = p->root = ne_calloc(sizeof *p->root); p->root->default_ns = ""; p->root->state = 0; strcpy(p->error, _("Unknown error")); #ifdef HAVE_EXPAT p->parser = XML_ParserCreate(NULL); if (p->parser == NULL) { abort(); } XML_SetElementHandler(p->parser, start_element, end_element); XML_SetCharacterDataHandler(p->parser, char_data); XML_SetUserData(p->parser, (void *) p); XML_SetXmlDeclHandler(p->parser, decl_handler); #else p->parser = xmlCreatePushParserCtxt(&sax_handler, (void *)p, NULL, 0, NULL); if (p->parser == NULL) { abort(); } p->parser->replaceEntities = 1; #endif return p; } void ne_xml_push_handler(ne_xml_parser *p, ne_xml_startelm_cb *startelm_cb, ne_xml_cdata_cb *cdata_cb, ne_xml_endelm_cb *endelm_cb, void *userdata) { struct handler *hand = ne_calloc(sizeof(struct handler)); hand->startelm_cb = startelm_cb; hand->cdata_cb = cdata_cb; hand->endelm_cb = endelm_cb; hand->userdata = userdata; /* If this is the first handler registered, update the * base pointer too. */ if (p->top_handlers == NULL) { p->root->handler = hand; p->top_handlers = hand; } else { p->top_handlers->next = hand; p->top_handlers = hand; } } int ne_xml_parse_v(void *userdata, const char *block, size_t len) { ne_xml_parser *p = userdata; return ne_xml_parse(p, (const ne_xml_char *)block, len); } #define BOM_UTF8 "\xEF\xBB\xBF" /* UTF-8 BOM */ int ne_xml_parse(ne_xml_parser *p, const char *block, size_t len) { int ret, flag; /* duck out if it's broken */ if (p->failure) { NE_DEBUG(NE_DBG_XMLPARSE, "XML: Failed; ignoring %" NE_FMT_SIZE_T " bytes.\n", len); return p->failure; } if (len == 0) { flag = -1; block = ""; NE_DEBUG(NE_DBG_XMLPARSE, "XML: End of document.\n"); } else { NE_DEBUG(NE_DBG_XMLPARSE, "XML: Parsing %" NE_FMT_SIZE_T " bytes.\n", len); flag = 0; } #ifdef NEED_BOM_HANDLING if (p->bom_pos < 3) { NE_DEBUG(NE_DBG_XMLPARSE, "Checking for UTF-8 BOM.\n"); while (len > 0 && p->bom_pos < 3 && block[0] == BOM_UTF8[p->bom_pos]) { block++; len--; p->bom_pos++; } if (len == 0) return 0; if (p->bom_pos == 0) { p->bom_pos = 3; /* no BOM */ } else if (p->bom_pos > 0 && p->bom_pos < 3) { strcpy(p->error, _("Invalid Byte Order Mark")); return p->failure = 1; } } #endif /* Note, don't write a parser error if p->failure, since an error * will already have been written in that case. */ #ifdef HAVE_EXPAT ret = XML_Parse(p->parser, block, len, flag); NE_DEBUG(NE_DBG_XMLPARSE, "XML: XML_Parse returned %d\n", ret); if (ret == 0 && p->failure == 0) { ne_snprintf(p->error, ERR_SIZE, "XML parse error at line %d: %s", XML_GetCurrentLineNumber(p->parser), XML_ErrorString(XML_GetErrorCode(p->parser))); p->failure = 1; NE_DEBUG(NE_DBG_XMLPARSE, "XML: Parse error: %s\n", p->error); } #else ret = xmlParseChunk(p->parser, block, len, flag); NE_DEBUG(NE_DBG_XMLPARSE, "XML: xmlParseChunk returned %d\n", ret); /* Parse errors are normally caught by the sax_error() callback, * which clears p->valid. */ if (p->parser->errNo && p->failure == 0) { ne_snprintf(p->error, ERR_SIZE, "XML parse error at line %d.", ne_xml_currentline(p)); p->failure = 1; NE_DEBUG(NE_DBG_XMLPARSE, "XML: Parse error: %s\n", p->error); } #endif return p->failure; } int ne_xml_failed(ne_xml_parser *p) { return p->failure; } void ne_xml_destroy(ne_xml_parser *p) { struct element *elm, *parent; struct handler *hand, *next; /* Free up the handlers on the stack: the root element has the * pointer to the base of the handler stack. */ for (hand = p->root->handler; hand!=NULL; hand=next) { next = hand->next; ne_free(hand); } /* Clean up remaining elements */ for (elm = p->current; elm != p->root; elm = parent) { parent = elm->parent; destroy_element(elm); } /* free root element */ ne_free(p->root); #ifdef HAVE_EXPAT XML_ParserFree(p->parser); if (p->encoding) ne_free(p->encoding); #else xmlFreeParserCtxt(p->parser); #endif ne_free(p); } void ne_xml_set_error(ne_xml_parser *p, const char *msg) { ne_snprintf(p->error, ERR_SIZE, "%s", msg); } #ifdef HAVE_LIBXML static void sax_error(void *ctx, const char *msg, ...) { ne_xml_parser *p = ctx; va_list ap; char buf[1024]; va_start(ap, msg); ne_vsnprintf(buf, 1024, msg, ap); va_end(ap); if (p->failure == 0) { ne_snprintf(p->error, ERR_SIZE, _("XML parse error at line %d: %s."), p->parser->input->line, buf); p->failure = 1; } } #endif const char *ne_xml_get_error(ne_xml_parser *p) { return p->error; } const char * ne_xml_get_attr(ne_xml_parser *p, const char **attrs, const char *nspace, const char *name) { int n; for (n = 0; attrs[n] != NULL; n += 2) { char *pnt = strchr(attrs[n], ':'); if (!nspace && !pnt && strcmp(attrs[n], name) == 0) { return attrs[n+1]; } else if (nspace && pnt) { /* If a namespace is given, and the local part matches, * then resolve the namespace and compare that too. */ if (strcmp(pnt + 1, name) == 0) { const char *uri = resolve_nspace(p->current, attrs[n], pnt - attrs[n]); if (uri && strcmp(uri, nspace) == 0) return attrs[n+1]; } } } return NULL; } int ne_xml_mapid(const struct ne_xml_idmap map[], size_t maplen, const char *nspace, const char *name) { size_t n; for (n = 0; n < maplen; n++) if (strcmp(name, map[n].name) == 0 && strcmp(nspace, map[n].nspace) == 0) return map[n].id; return 0; } gnome-vfs-2.24.4/imported/neon/ne_207.h0000644000175000001440000001022611334251016014343 00000000000000/* WebDAV 207 multi-status response handling Copyright (C) 1999-2004, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef DAV207_H #define DAV207_H #include "ne_xml.h" #include "ne_request.h" /* for ne_request */ BEGIN_NEON_DECLS /* The defined state integer for the '{DAV:}prop' element. */ #define NE_207_STATE_PROP (50) /* This interface reserves the state integers 'x' where 0 < x < 100 */ #define NE_207_STATE_TOP (100) /* Handling of 207 multistatus XML documents. A "multistatus" * document is made up of a set of responses, each concerned with a * particular resource. Each response may have an associated result * status and failure description. A response is made up of a set of * propstats, each of which again may have an associated result status * and failure description. */ /* Start and end response callbacks trigger at the start and end of * each "response" within the multistatus body. 'href' gives the URI * of the resource which is subject of this response. The return * value of a 'start_response' callback is passed as the 'response' * parameter to the corresponding 'end_response' parameter. */ typedef void *ne_207_start_response(void *userdata, const char *href); typedef void ne_207_end_response(void *userdata, void *response, const ne_status *status, const char *description); /* Similarly, start and end callbacks for each propstat within the * response. The return value of the 'start_response' callback for * the response in which this propstat is contains is passed as the * 'response' parameter. The return value of each 'start_propstat' is * passed as the 'propstat' parameter' to the corresponding * 'end_propstat' callback. If the start_propstat callback returns * NULL, parsing is aborted (the XML parser error must be set by the * callback). */ typedef void *ne_207_start_propstat(void *userdata, void *response); typedef void ne_207_end_propstat(void *userdata, void *propstat, const ne_status *status, const char *description); typedef struct ne_207_parser_s ne_207_parser; /* Create 207 parser an add the handlers the the given parser's * handler stack. */ ne_207_parser *ne_207_create(ne_xml_parser *parser, void *userdata); /* Register response handling callbacks. */ void ne_207_set_response_handlers(ne_207_parser *p, ne_207_start_response *start, ne_207_end_response *end); /* Register propstat handling callbacks. */ void ne_207_set_propstat_handlers(ne_207_parser *p, ne_207_start_propstat *start, ne_207_end_propstat *end); /* Destroy the parser */ void ne_207_destroy(ne_207_parser *p); /* An acceptance function which only accepts 207 responses */ int ne_accept_207(void *userdata, ne_request *req, const ne_status *status); void *ne_207_get_current_propstat(ne_207_parser *p); void *ne_207_get_current_response(ne_207_parser *p); /* Dispatch request 'req', returning: * NE_ERROR: for a dispatch error, or a non-2xx response, or a * 207 response which contained a non-2xx propstat * NE_OK: for a 2xx response or a 207 response which contained * only 2xx-class propstats. * The request object is destroyed in both cases. */ int ne_simple_request(ne_session *sess, ne_request *req); END_NEON_DECLS #endif /* DAV207_H */ gnome-vfs-2.24.4/imported/neon/ne_utils.c0000644000175000001440000001270411334251016015171 00000000000000/* HTTP utility functions Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #include #ifdef HAVE_STRING_H #include #endif #include #include /* isdigit() for ne_parse_statusline */ #ifdef NE_HAVE_ZLIB #include #endif #ifdef HAVE_OPENSSL #include #endif #ifdef HAVE_GNUTLS #include #endif /* libxml2: pick up the version string. */ #if defined(HAVE_LIBXML) #include #elif defined(HAVE_EXPAT) && !defined(HAVE_XMLPARSE_H) #include #endif #include "ne_utils.h" #include "ne_string.h" /* for ne_strdup */ #include "ne_dates.h" int ne_debug_mask = 0; FILE *ne_debug_stream = NULL; void ne_debug_init(FILE *stream, int mask) { ne_debug_stream = stream; ne_debug_mask = mask; #if defined(HAVE_SETVBUF) && defined(_IONBF) /* If possible, turn off buffering on the debug log. this is very * helpful if debugging segfaults. */ if (stream) setvbuf(stream, NULL, _IONBF, 0); #endif } void ne_debug(int ch, const char *template, ...) { va_list params; if ((ch & ne_debug_mask) == 0) return; fflush(stdout); va_start(params, template); vfprintf(ne_debug_stream, template, params); va_end(params); if ((ch & NE_DBG_FLUSH) == NE_DBG_FLUSH) fflush(ne_debug_stream); } #define NE_STRINGIFY(x) # x #define NE_EXPAT_VER(x,y,z) NE_STRINGIFY(x) "." NE_STRINGIFY(y) "." NE_STRINGIFY(z) static const char version_string[] = "neon " NEON_VERSION ": " #ifdef NEON_IS_LIBRARY "Library build" #else "Bundled build" #endif #ifdef NE_HAVE_IPV6 ", IPv6" #endif #ifdef HAVE_EXPAT ", Expat" /* expat >=1.95.2 exported the version */ #ifdef XML_MAJOR_VERSION " " NE_EXPAT_VER(XML_MAJOR_VERSION, XML_MINOR_VERSION, XML_MICRO_VERSION) #endif #else /* !HAVE_EXPAT */ #ifdef HAVE_LIBXML ", libxml " LIBXML_DOTTED_VERSION #endif /* HAVE_LIBXML */ #endif /* !HAVE_EXPAT */ #if defined(NE_HAVE_ZLIB) && defined(ZLIB_VERSION) ", zlib " ZLIB_VERSION #endif /* NE_HAVE_ZLIB && ... */ #ifdef NE_HAVE_SOCKS ", SOCKSv5" #endif #ifdef HAVE_OPENSSL #ifdef OPENSSL_VERSION_TEXT ", " OPENSSL_VERSION_TEXT #else "OpenSSL (unknown version)" #endif /* OPENSSL_VERSION_TEXT */ #endif /* HAVE_OPENSSL */ #ifdef HAVE_GNUTLS ", GNU TLS " LIBGNUTLS_VERSION #endif /* HAVE_GNUTLS */ "." ; const char *ne_version_string(void) { return version_string; } int ne_version_match(int major, int minor) { return NE_VERSION_MAJOR != major || NE_VERSION_MINOR < minor || (NE_VERSION_MAJOR == 0 && NE_VERSION_MINOR != minor); } int ne_has_support(int feature) { switch (feature) { #if defined(NE_HAVE_SSL) || defined(NE_HAVE_ZLIB) || defined(NE_HAVE_IPV6) \ || defined(NE_HAVE_SOCKS) || defined(NE_HAVE_LFS) #ifdef NE_HAVE_SSL case NE_FEATURE_SSL: #endif #ifdef NE_HAVE_ZLIB case NE_FEATURE_ZLIB: #endif #ifdef NE_HAVE_IPV6 case NE_FEATURE_IPV6: #endif #ifdef NE_HAVE_SOCKS case NE_FEATURE_SOCKS: #endif #ifdef NE_HAVE_LFS case NE_FEATURE_LFS: #endif return 1; #endif /* NE_HAVE_* */ default: return 0; } } int ne_parse_statusline(const char *status_line, ne_status *st) { const char *part; int major, minor, status_code, klass; /* skip leading garbage if any. */ if ((part = strstr(status_line, "HTTP/")) != NULL) { minor = major = 0; /* Parse version string, skipping leading zeroes. */ for (part += 5; *part != '\0' && isdigit(*part); part++) major = major*10 + (*part-'0'); if (*part++ != '.') return -1; for (;*part != '\0' && isdigit(*part); part++) minor = minor*10 + (*part-'0'); /* workaround for broken ShoutCast and IceCast server which responed with ICY instead of HTTP */ } else if ((part = strstr(status_line, "ICY")) != NULL) { major = 1; minor = 0; part += 3; } else { return -1; } if (*part != ' ') return -1; /* Skip any spaces */ for (; *part == ' '; part++) /* noop */; /* Parse the Status-Code; part now points at the first Y in * "HTTP/x.x YYY". */ if (!isdigit(part[0]) || !isdigit(part[1]) || !isdigit(part[2]) || (part[3] != '\0' && part[3] != ' ')) return -1; status_code = 100*(part[0]-'0') + 10*(part[1]-'0') + (part[2]-'0'); klass = part[0]-'0'; /* Skip whitespace between status-code and reason-phrase */ for (part+=3; *part == ' ' || *part == '\t'; part++) /* noop */; /* part now may be pointing to \0 if reason phrase is blank */ /* Fill in the results */ st->major_version = major; st->minor_version = minor; st->reason_phrase = ne_strclean(ne_strdup(part)); st->code = status_code; st->klass = klass; return 0; } gnome-vfs-2.24.4/imported/neon/ne_session.h0000644000175000001440000001656611334251016015533 00000000000000/* HTTP session handling Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_SESSION_H #define NE_SESSION_H 1 #include #include "ne_ssl.h" #include "ne_uri.h" /* for ne_uri */ #include "ne_defs.h" #include "ne_socket.h" BEGIN_NEON_DECLS typedef struct ne_session_s ne_session; /* Create a session to the given server, using the given scheme. If * "https" is passed as the scheme, SSL will be used to connect to the * server. */ ne_session *ne_session_create(const char *scheme, const char *hostname, unsigned int port); /* Finish an HTTP session */ void ne_session_destroy(ne_session *sess); /* Prematurely force the connection to be closed for the given * session. */ void ne_close_connection(ne_session *sess); /* Set the proxy server to be used for the session. */ void ne_session_proxy(ne_session *sess, const char *hostname, unsigned int port); /* Disable use of persistent connection if 'flag' is non-zero, else * enable (the default). */ void ne_set_persist(ne_session *sess, int flag); /* Bypass the normal name resolution; force the use of specific set of * addresses for this session, addrs[0]...addrs[n-1]. The addrs array * must remain valid until the session is destroyed. */ void ne_set_addrlist(ne_session *sess, const ne_inet_addr **addrs, size_t n); /* Progress callback. */ typedef void (*ne_progress)(void *userdata, off_t progress, off_t total); /* Set a progress callback for the session. */ void ne_set_progress(ne_session *sess, ne_progress progress, void *userdata); /* Store an opaque context for the session, 'priv' is returned by a * call to ne_session_get_private with the same ID. */ void ne_set_session_private(ne_session *sess, const char *id, void *priv); void *ne_get_session_private(ne_session *sess, const char *id); typedef enum { ne_conn_namelookup, /* lookup up hostname (info = hostname) */ ne_conn_connecting, /* connecting to host (info = hostname) */ ne_conn_connected, /* connected to host (info = hostname) */ ne_conn_secure /* connection now secure (info = crypto level) */ } ne_conn_status; typedef void (*ne_notify_status)(void *userdata, ne_conn_status status, const char *info); /* Set a status notification callback for the session, to report * connection status. */ void ne_set_status(ne_session *sess, ne_notify_status status, void *userdata); /* Certificate verification failures. * The certificate is not yet valid: */ #define NE_SSL_NOTYETVALID (0x01) /* The certificate has expired: */ #define NE_SSL_EXPIRED (0x02) /* The hostname for which the certificate was issued does not * match the hostname of the server; this could mean that the * connection is being intercepted: */ #define NE_SSL_IDMISMATCH (0x04) /* The certificate authority which signed the server certificate is * not trusted: there is no indicatation the server is who they claim * to be: */ #define NE_SSL_UNTRUSTED (0x08) /* The bitmask of known failure bits: if (failures & ~NE_SSL_FAILMASK) * is non-zero, an unrecognized failure is given, and the verification * should be failed. */ #define NE_SSL_FAILMASK (0x0f) /* A callback which is used when server certificate verification is * needed. The reasons for verification failure are given in the * 'failures' parameter, which is a binary OR of one or more of the * above NE_SSL_* values. failures is guaranteed to be non-zero. The * callback must return zero to accept the certificate: a non-zero * return value will fail the SSL negotiation. */ typedef int (*ne_ssl_verify_fn)(void *userdata, int failures, const ne_ssl_certificate *cert); /* Install a callback to handle server certificate verification. This * is required when the CA certificate is not known for the server * certificate, or the server cert has other verification problems. */ void ne_ssl_set_verify(ne_session *sess, ne_ssl_verify_fn fn, void *userdata); /* Use the given client certificate for the session. The client cert * MUST be in the decrypted state, otherwise behaviour is undefined. */ void ne_ssl_set_clicert(ne_session *sess, const ne_ssl_client_cert *clicert); /* Indicate that the certificate 'cert' is trusted; 'cert' is * duplicated internally and may be destroyed at will. */ void ne_ssl_trust_cert(ne_session *sess, const ne_ssl_certificate *cert); /* If the SSL library provided a default set of CA certificates, trust * this set of CAs. */ void ne_ssl_trust_default_ca(ne_session *sess); /* Callback used to load a client certificate on demand. If dncount * is > 0, the 'dnames' array dnames[0] through dnames[dncount-1] * gives the list of CA names which the server indicated were * acceptable. The callback should load an appropriate client * certificate and then pass it to 'ne_ssl_set_clicert'. */ typedef void (*ne_ssl_provide_fn)(void *userdata, ne_session *sess, const ne_ssl_dname *const *dnames, int dncount); /* Register a function to be called when the server requests a client * certificate. */ void ne_ssl_provide_clicert(ne_session *sess, ne_ssl_provide_fn fn, void *userdata); /* Set the timeout (in seconds) used when reading from a socket. The * timeout value must be greater than zero. */ void ne_set_read_timeout(ne_session *sess, int timeout); /* Sets the user-agent string. neon/VERSION will be appended, to make * the full header "User-Agent: product neon/VERSION". * If this function is not called, the User-Agent header is not sent. * The product string must follow the RFC2616 format, i.e. * product = token ["/" product-version] * product-version = token * where token is any alpha-numeric-y string [a-zA-Z0-9]* */ void ne_set_useragent(ne_session *sess, const char *product); /* Returns non-zero if next-hop server does not claim compliance to * HTTP/1.1 or later. */ int ne_version_pre_http11(ne_session *sess); /* Returns the 'hostport' URI segment for the end-server, e.g. * "my.server.com:8080". */ const char *ne_get_server_hostport(ne_session *sess); /* Returns the URL scheme being used for the current session, omitting * the trailing ':'; e.g. "http" or "https". */ const char *ne_get_scheme(ne_session *sess); /* Sets the host, scheme, and port fields (and no others) of the given * URI structure; host and scheme are malloc-allocated. */ void ne_fill_server_uri(ne_session *sess, ne_uri *uri); /* Set the error string for the session; takes printf-like format * string. */ void ne_set_error(ne_session *sess, const char *format, ...) ne_attribute((__format__ (__printf__, 2, 3))); /* Retrieve the error string for the session */ const char *ne_get_error(ne_session *sess); END_NEON_DECLS #endif /* NE_SESSION_H */ gnome-vfs-2.24.4/imported/neon/ne_auth.c0000644000175000001440000011537511334251016015002 00000000000000/* HTTP Authentication routines Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #include #ifdef HAVE_SYS_TIME_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #ifdef HAVE_UNISTD_H #include /* for getpid() */ #endif #ifdef WIN32 #include /* for GetCurrentThreadId() etc */ #endif #ifdef HAVE_OPENSSL #include #endif #include #include "ne_md5.h" #include "ne_dates.h" #include "ne_request.h" #include "ne_auth.h" #include "ne_string.h" #include "ne_utils.h" #include "ne_alloc.h" #include "ne_uri.h" #include "ne_i18n.h" #ifdef HAVE_GSSAPI #ifdef HAVE_GSSAPI_GSSAPI_H #include #ifdef HAVE_GSSAPI_GSSAPI_GENERIC_H #include #endif #else #include #endif #endif #ifdef HAVE_SSPI #include "ne_sspi.h" #endif #if defined(HAVE_GSSAPI) || defined(HAVE_SSPI) #include "ne_private.h" /* only need to extract proxy hostname */ #endif #define HOOK_SERVER_ID "http://webdav.org/neon/hooks/server-auth" #define HOOK_PROXY_ID "http://webdav.org/neon/hooks/proxy-auth" /* The authentication scheme we are using */ typedef enum { auth_scheme_basic, auth_scheme_digest, auth_scheme_gssapi, auth_scheme_sspi_negotiate, auth_scheme_sspi_ntlm } auth_scheme; typedef enum { auth_alg_md5, auth_alg_md5_sess, auth_alg_unknown } auth_algorithm; /* Selected method of qop which the client is using */ typedef enum { auth_qop_none, auth_qop_auth } auth_qop; /* A challenge */ struct auth_challenge { auth_scheme scheme; const char *realm; const char *nonce; const char *opaque; unsigned int stale:1; /* if stale=true */ unsigned int got_qop:1; /* we were given a qop directive */ unsigned int qop_auth:1; /* "auth" token in qop attrib */ auth_algorithm alg; struct auth_challenge *next; }; static const struct auth_class { const char *id, *req_hdr, *resp_hdr, *resp_info_hdr, *fail_msg; int status_code, fail_code; } ah_server_class = { HOOK_SERVER_ID, "Authorization", "WWW-Authenticate", "Authentication-Info", N_("Server was not authenticated correctly."), 401, NE_AUTH }, ah_proxy_class = { HOOK_PROXY_ID, "Proxy-Authorization", "Proxy-Authenticate", "Proxy-Authentication-Info", N_("Proxy server was not authenticated correctly."), 407, NE_PROXYAUTH }; /* Authentication session state. */ typedef struct { ne_session *sess; /* Which context will auth challenges be accepted? */ enum { AUTH_ANY, /* ignore nothing. */ AUTH_CONNECT, /* only in response to a CONNECT request. */ AUTH_NOTCONNECT /* only in non-CONNECT responsees */ } context; /* Specifics for server/proxy auth. FIXME: need a better field * name! */ const struct auth_class *spec; /* The scheme used for this authentication session */ auth_scheme scheme; /* The callback used to request new username+password */ ne_auth_creds creds; void *userdata; /*** Session details ***/ /* The username and password we are using to authenticate with */ char username[NE_ABUFSIZ]; /* Whether we CAN supply authentication at the moment */ unsigned int can_handle:1; /* This used for Basic auth */ char *basic; #ifdef HAVE_GSSAPI /* for the GSSAPI/Negotiate scheme: */ char *gssapi_token; gss_ctx_id_t gssctx; gss_name_t gssname; gss_OID gssmech; #endif #ifdef HAVE_SSPI /* This is used for SSPI (Negotiate/NTLM) auth */ char *sspi_token; void *sspi_context; #endif /* These all used for Digest auth */ char *realm; char *nonce; char *cnonce; char *opaque; auth_qop qop; auth_algorithm alg; unsigned int nonce_count; /* The ASCII representation of the session's H(A1) value */ char h_a1[33]; /* Temporary store for half of the Request-Digest * (an optimisation - used in the response-digest calculation) */ struct ne_md5_ctx stored_rdig; /* Details of server... needed to reconstruct absoluteURI's when * necessary */ const char *host; const char *uri_scheme; unsigned int port; int attempt; } auth_session; struct auth_request { /*** Per-request details. ***/ ne_request *request; /* the request object. */ /* The method and URI we are using for the current request */ const char *uri; const char *method; /* Whether we WILL supply authentication for this request or not */ unsigned int will_handle:1; /* Used for calculation of H(entity-body) of the response */ struct ne_md5_ctx response_body; }; static void clean_session(auth_session *sess) { sess->can_handle = 0; NE_FREE(sess->basic); NE_FREE(sess->nonce); NE_FREE(sess->cnonce); NE_FREE(sess->opaque); NE_FREE(sess->realm); #ifdef HAVE_GSSAPI { unsigned int major; if (sess->gssctx != GSS_C_NO_CONTEXT) gss_delete_sec_context(&major, &sess->gssctx, GSS_C_NO_BUFFER); } NE_FREE(sess->gssapi_token); #endif #ifdef HAVE_SSPI NE_FREE(sess->sspi_token); ne_sspi_destroy_context(sess->sspi_context); sess->sspi_context = NULL; #endif } /* Returns client nonce string. */ static char *get_cnonce(void) { char ret[33]; unsigned char data[256], tmp[16]; struct ne_md5_ctx hash; ne_md5_init_ctx(&hash); #ifdef HAVE_OPENSSL if (RAND_status() == 1 && RAND_pseudo_bytes(data, sizeof data) >= 0) ne_md5_process_bytes(data, sizeof data, &hash); else { #endif /* Fallback sources of random data: all bad, but no good sources * are available. */ /* Uninitialized stack data; yes, happy valgrinders, this is * supposed to be here. */ ne_md5_process_bytes(data, sizeof data, &hash); #ifdef HAVE_GETTIMEOFDAY { struct timeval tv; if (gettimeofday(&tv, NULL) == 0) ne_md5_process_bytes(&tv, sizeof tv, &hash); } #else /* HAVE_GETTIMEOFDAY */ { time_t t = time(NULL); ne_md5_process_bytes(&t, sizeof t, &hash); } #endif { #ifdef WIN32 DWORD pid = GetCurrentThreadId(); #else pid_t pid = getpid(); #endif ne_md5_process_bytes(&pid, sizeof pid, &hash); } #ifdef HAVE_OPENSSL } #endif ne_md5_finish_ctx(&hash, tmp); ne_md5_to_ascii(tmp, ret); return ne_strdup(ret); } static int get_credentials(auth_session *sess, char *pwbuf) { return sess->creds(sess->userdata, sess->realm, sess->attempt++, sess->username, pwbuf); } /* Examine a Basic auth challenge. * Returns 0 if an valid challenge, else non-zero. */ static int basic_challenge(auth_session *sess, struct auth_challenge *parms) { char *tmp, password[NE_ABUFSIZ]; /* Verify challenge... must have a realm */ if (parms->realm == NULL) { return -1; } NE_DEBUG(NE_DBG_HTTPAUTH, "Got Basic challenge with realm [%s]\n", parms->realm); clean_session(sess); sess->realm = ne_strdup(parms->realm); if (get_credentials(sess, password)) { /* Failed to get credentials */ return -1; } sess->scheme = auth_scheme_basic; tmp = ne_concat(sess->username, ":", password, NULL); sess->basic = ne_base64((unsigned char *)tmp, strlen(tmp)); ne_free(tmp); /* Paranoia. */ memset(password, 0, sizeof password); return 0; } /* Add Basic authentication credentials to a request */ static char *request_basic(auth_session *sess) { return ne_concat("Basic ", sess->basic, "\r\n", NULL); } #ifdef HAVE_GSSAPI /* Add GSSAPI authentication credentials to a request */ static char *request_gssapi(auth_session *sess) { if (sess->gssapi_token) return ne_concat("Negotiate ", sess->gssapi_token, "\r\n", NULL); else return NULL; } /* Create an GSSAPI name for server HOSTNAME; returns non-zero on * error. */ static void get_gss_name(gss_name_t *server, const char *hostname) { unsigned int major, minor; gss_buffer_desc token; token.value = ne_concat("HTTP@", hostname, NULL); token.length = strlen(token.value); major = gss_import_name(&minor, &token, GSS_C_NT_HOSTBASED_SERVICE, server); ne_free(token.value); if (GSS_ERROR(major)) { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: gss_import_name failed.\n"); *server = GSS_C_NO_NAME; } } /* Append GSSAPI error(s) for STATUS of type TYPE to BUF; prepending * ": " to each error if *FLAG is non-zero, setting *FLAG after an * error has been appended. */ static void make_gss_error(ne_buffer *buf, int *flag, unsigned int status, int type) { unsigned int major, minor; unsigned int context = 0; do { gss_buffer_desc msg; major = gss_display_status(&minor, status, type, GSS_C_NO_OID, &context, &msg); if (major == GSS_S_COMPLETE && msg.length) { if ((*flag)++) ne_buffer_append(buf, ": ", 2); ne_buffer_append(buf, msg.value, msg.length); } if (msg.length) gss_release_buffer(&minor, &msg); } while (context); } /* Continue a GSS-API Negotiate exchange, using input TOKEN if * non-NULL. Returns non-zero on error. */ static int continue_negotiate(auth_session *sess, const char *token) { unsigned int major, minor; gss_buffer_desc input = GSS_C_EMPTY_BUFFER; gss_buffer_desc output = GSS_C_EMPTY_BUFFER; unsigned char *bintoken = NULL; int ret; if (token) { input.length = ne_unbase64(token, &bintoken); if (input.length == 0) { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Invalid input [%s].\n", token); return -1; } input.value = bintoken; NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Continuation token [%s]\n", token); } else if (sess->gssctx != GSS_C_NO_CONTEXT) { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Reset incomplete context.\n"); gss_delete_sec_context(&minor, &sess->gssctx, GSS_C_NO_BUFFER); } major = gss_init_sec_context(&minor, GSS_C_NO_CREDENTIAL, &sess->gssctx, sess->gssname, sess->gssmech, GSS_C_MUTUAL_FLAG, GSS_C_INDEFINITE, GSS_C_NO_CHANNEL_BINDINGS, &input, &sess->gssmech, &output, NULL, NULL); /* done with the input token. */ if (bintoken) ne_free(bintoken); if (GSS_ERROR(major)) { ne_buffer *err = ne_buffer_create(); int flag = 0; make_gss_error(err, &flag, major, GSS_C_GSS_CODE); make_gss_error(err, &flag, minor, GSS_C_MECH_CODE); NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Error: %s\n", err->data); ne_set_error(sess->sess, _("GSSAPI authentication error (%s)"), err->data); ne_buffer_destroy(err); return -1; } if (major == GSS_S_CONTINUE_NEEDED || major == GSS_S_COMPLETE) { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: init_sec_context OK. (major=%d)\n", major); ret = 0; } else { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Init failure %d.\n", major); ret = -1; } if (major != GSS_S_CONTINUE_NEEDED) { /* context no longer needed: destroy it */ gss_delete_sec_context(&minor, &sess->gssctx, GSS_C_NO_BUFFER); } if (output.length) { sess->gssapi_token = ne_base64(output.value, output.length); NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Output token: [%s]\n", sess->gssapi_token); gss_release_buffer(&minor, &output); } else { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: No output token.\n"); } return ret; } /* Process a Negotiate challange CHALL in session SESS; returns zero * if challenge is accepted. */ static int gssapi_challenge(auth_session *sess, struct auth_challenge *chall) { int ret = continue_negotiate(sess, chall->opaque); if (ret == 0) sess->scheme = auth_scheme_gssapi; return ret; } /* Verify the header HDR in a Negotiate response. */ static int verify_negotiate_response(auth_session *sess, char *hdr) { char *sep, *ptr = strchr(hdr, ' '); if (strncmp(hdr, "Negotiate", ptr - hdr) != 0) { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Not a Negotiate response!\n"); return -1; } ptr++; if (strlen(ptr) == 0) { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: No token in Negotiate response!\n"); return 0; } if ((sep = strchr(ptr, ',')) != NULL) *sep = '\0'; if ((sep = strchr(ptr, ' ')) != NULL) *sep = '\0'; NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Negotiate response token [%s]\n", ptr); return continue_negotiate(sess, ptr); } #endif #ifdef HAVE_SSPI static char *request_sspi(auth_session *sess) { const char *mechanism; if (ne_sspi_get_mechanism(sess->sspi_context, &mechanism)) { return NULL; } return ne_concat(mechanism, " ", sess->sspi_token, "\r\n", NULL); } static int sspi_challenge(auth_session *sess, struct auth_challenge *parms, int ntlm) { int status; char *response = NULL; NE_DEBUG(NE_DBG_HTTPAUTH, "auth: SSPI challenge.\n"); if (!sess->sspi_context) { status = ne_sspi_create_context(&sess->sspi_context, sess->sess->server.hostname, ntlm); if (status) { return status; } } status = ne_sspi_authenticate(sess->sspi_context, parms->opaque, &response); if (status) { return status; } sess->sspi_token = response; NE_DEBUG(NE_DBG_HTTPAUTH, "auth: SSPI challenge [%s]\n", sess->sspi_token); if (ntlm) { sess->scheme = auth_scheme_sspi_ntlm; } else { sess->scheme = auth_scheme_sspi_negotiate; } return 0; } #endif /* Examine a digest challenge: return 0 if it is a valid Digest challenge, * else non-zero. */ static int digest_challenge(auth_session *sess, struct auth_challenge *parms) { struct ne_md5_ctx tmp; unsigned char tmp_md5[16]; char password[NE_ABUFSIZ]; /* Verify they've given us the right bits. */ if (parms->alg == auth_alg_unknown || (parms->alg == auth_alg_md5_sess && !parms->qop_auth) || parms->realm == NULL || parms->nonce == NULL) { NE_DEBUG(NE_DBG_HTTPAUTH, "Invalid challenge."); return -1; } if (parms->stale) { /* Just a stale response, don't need to get a new username/password */ NE_DEBUG(NE_DBG_HTTPAUTH, "Stale digest challenge.\n"); } else { /* Forget the old session details */ NE_DEBUG(NE_DBG_HTTPAUTH, "In digest challenge.\n"); clean_session(sess); sess->realm = ne_strdup(parms->realm); /* Not a stale response: really need user authentication */ if (get_credentials(sess, password)) { /* Failed to get credentials */ return -1; } } sess->alg = parms->alg; sess->scheme = auth_scheme_digest; sess->nonce = ne_strdup(parms->nonce); sess->cnonce = get_cnonce(); /* TODO: add domain handling. */ if (parms->opaque != NULL) { sess->opaque = ne_strdup(parms->opaque); /* don't strip the quotes */ } if (parms->got_qop) { /* What type of qop are we to apply to the message? */ NE_DEBUG(NE_DBG_HTTPAUTH, "Got qop directive.\n"); sess->nonce_count = 0; sess->qop = auth_qop_auth; } else { /* No qop at all/ */ sess->qop = auth_qop_none; } if (!parms->stale) { /* Calculate H(A1). * tmp = H(unq(username-value) ":" unq(realm-value) ":" passwd) */ NE_DEBUG(NE_DBG_HTTPAUTH, "Calculating H(A1).\n"); ne_md5_init_ctx(&tmp); ne_md5_process_bytes(sess->username, strlen(sess->username), &tmp); ne_md5_process_bytes(":", 1, &tmp); ne_md5_process_bytes(sess->realm, strlen(sess->realm), &tmp); ne_md5_process_bytes(":", 1, &tmp); ne_md5_process_bytes(password, strlen(password), &tmp); memset(password, 0, sizeof password); /* done with that. */ ne_md5_finish_ctx(&tmp, tmp_md5); if (sess->alg == auth_alg_md5_sess) { unsigned char a1_md5[16]; struct ne_md5_ctx a1; char tmp_md5_ascii[33]; /* Now we calculate the SESSION H(A1) * A1 = H(...above...) ":" unq(nonce-value) ":" unq(cnonce-value) */ ne_md5_to_ascii(tmp_md5, tmp_md5_ascii); ne_md5_init_ctx(&a1); ne_md5_process_bytes(tmp_md5_ascii, 32, &a1); ne_md5_process_bytes(":", 1, &a1); ne_md5_process_bytes(sess->nonce, strlen(sess->nonce), &a1); ne_md5_process_bytes(":", 1, &a1); ne_md5_process_bytes(sess->cnonce, strlen(sess->cnonce), &a1); ne_md5_finish_ctx(&a1, a1_md5); ne_md5_to_ascii(a1_md5, sess->h_a1); NE_DEBUG(NE_DBG_HTTPAUTH, "Session H(A1) is [%s]\n", sess->h_a1); } else { ne_md5_to_ascii(tmp_md5, sess->h_a1); NE_DEBUG(NE_DBG_HTTPAUTH, "H(A1) is [%s]\n", sess->h_a1); } } NE_DEBUG(NE_DBG_HTTPAUTH, "I like this Digest challenge.\n"); return 0; } /* Return Digest authentication credentials header value for the given * session. */ static char *request_digest(auth_session *sess, struct auth_request *req) { struct ne_md5_ctx a2, rdig; unsigned char a2_md5[16], rdig_md5[16]; char a2_md5_ascii[33], rdig_md5_ascii[33]; char nc_value[9] = {0}; const char *qop_value = "auth"; /* qop-value */ ne_buffer *ret; /* Increase the nonce-count */ if (sess->qop != auth_qop_none) { sess->nonce_count++; ne_snprintf(nc_value, 9, "%08x", sess->nonce_count); NE_DEBUG(NE_DBG_HTTPAUTH, "Nonce count is %u, nc is [%s]\n", sess->nonce_count, nc_value); } /* Calculate H(A2). */ ne_md5_init_ctx(&a2); ne_md5_process_bytes(req->method, strlen(req->method), &a2); ne_md5_process_bytes(":", 1, &a2); ne_md5_process_bytes(req->uri, strlen(req->uri), &a2); ne_md5_finish_ctx(&a2, a2_md5); ne_md5_to_ascii(a2_md5, a2_md5_ascii); NE_DEBUG(NE_DBG_HTTPAUTH, "H(A2): %s\n", a2_md5_ascii); NE_DEBUG(NE_DBG_HTTPAUTH, "Calculating Request-Digest.\n"); /* Now, calculation of the Request-Digest. * The first section is the regardless of qop value * H(A1) ":" unq(nonce-value) ":" */ ne_md5_init_ctx(&rdig); /* Use the calculated H(A1) */ ne_md5_process_bytes(sess->h_a1, 32, &rdig); ne_md5_process_bytes(":", 1, &rdig); ne_md5_process_bytes(sess->nonce, strlen(sess->nonce), &rdig); ne_md5_process_bytes(":", 1, &rdig); if (sess->qop != auth_qop_none) { /* Add on: * nc-value ":" unq(cnonce-value) ":" unq(qop-value) ":" */ NE_DEBUG(NE_DBG_HTTPAUTH, "Have qop directive, digesting: [%s:%s:%s]\n", nc_value, sess->cnonce, qop_value); ne_md5_process_bytes(nc_value, 8, &rdig); ne_md5_process_bytes(":", 1, &rdig); ne_md5_process_bytes(sess->cnonce, strlen(sess->cnonce), &rdig); ne_md5_process_bytes(":", 1, &rdig); /* Store a copy of this structure (see note below) */ sess->stored_rdig = rdig; ne_md5_process_bytes(qop_value, strlen(qop_value), &rdig); ne_md5_process_bytes(":", 1, &rdig); } else { /* Store a copy of this structure... we do this because the * calculation of the rspauth= field in the Auth-Info header * is the same as this digest, up to this point. */ sess->stored_rdig = rdig; } /* And finally, H(A2) */ ne_md5_process_bytes(a2_md5_ascii, 32, &rdig); ne_md5_finish_ctx(&rdig, rdig_md5); ne_md5_to_ascii(rdig_md5, rdig_md5_ascii); ret = ne_buffer_create(); ne_buffer_concat(ret, "Digest username=\"", sess->username, "\", " "realm=\"", sess->realm, "\", " "nonce=\"", sess->nonce, "\", " "uri=\"", req->uri, "\", " "response=\"", rdig_md5_ascii, "\", " "algorithm=\"", sess->alg == auth_alg_md5 ? "MD5" : "MD5-sess", "\"", NULL); if (sess->opaque != NULL) { ne_buffer_concat(ret, ", opaque=\"", sess->opaque, "\"", NULL); } if (sess->qop != auth_qop_none) { /* Add in cnonce and nc-value fields */ ne_buffer_concat(ret, ", cnonce=\"", sess->cnonce, "\", " "nc=", nc_value, ", " "qop=\"", qop_value, "\"", NULL); } ne_buffer_zappend(ret, "\r\n"); NE_DEBUG(NE_DBG_HTTPAUTH, "Digest request header is %s\n", ret->data); return ne_buffer_finish(ret); } /* Parse line of comma-separated key-value pairs. If 'ischall' == 1, * then also return a leading space-separated token, as *value == * NULL. Otherwise, if return value is 0, *key and *value will be * non-NULL. If return value is non-zero, parsing has ended. If * 'sep' is non-NULL and ischall is 1, the separator character is * written to *sep when a challenge is parsed. */ static int tokenize(char **hdr, char **key, char **value, char *sep, int ischall) { char *pnt = *hdr; enum { BEFORE_EQ, AFTER_EQ, AFTER_EQ_QUOTED } state = BEFORE_EQ; if (**hdr == '\0') return 1; *key = NULL; do { switch (state) { case BEFORE_EQ: if (*pnt == '=') { if (*key == NULL) return -1; *pnt = '\0'; *value = pnt + 1; state = AFTER_EQ; } else if ((*pnt == ' ' || *pnt == ',') && ischall && *key != NULL) { *value = NULL; if (sep) *sep = *pnt; *pnt = '\0'; *hdr = pnt + 1; return 0; } else if (*key == NULL && strchr(" \r\n\t", *pnt) == NULL) { *key = pnt; } break; case AFTER_EQ: if (*pnt == ',') { *pnt = '\0'; *hdr = pnt + 1; return 0; } else if (*pnt == '\"') { state = AFTER_EQ_QUOTED; } break; case AFTER_EQ_QUOTED: if (*pnt == '\"') { state = AFTER_EQ; } break; } } while (*++pnt != '\0'); if (state == BEFORE_EQ && ischall && *key != NULL) { *value = NULL; if (sep) *sep = '\0'; } *hdr = pnt; /* End of string: */ return 0; } /* Pass this the value of the 'Authentication-Info:' header field, if * one is received. * Returns: * 0 if it gives a valid authentication for the server * non-zero otherwise (don't believe the response in this case!). */ static int verify_digest_response(struct auth_request *req, auth_session *sess, const char *value) { char *hdr, *pnt, *key, *val; auth_qop qop = auth_qop_none; char *nextnonce = NULL, /* for the nextnonce= value */ *rspauth = NULL, /* for the rspauth= value */ *cnonce = NULL, /* for the cnonce= value */ *nc = NULL, /* for the nc= value */ *qop_value = NULL; unsigned int nonce_count; int okay; if (!req->will_handle) { /* Ignore it */ return 0; } if (sess->scheme != auth_scheme_digest) { NE_DEBUG(NE_DBG_HTTPAUTH, "Found Auth-Info header not in response " " to Digest credentials - dodgy.\n"); return -1; } pnt = hdr = ne_strdup(value); NE_DEBUG(NE_DBG_HTTPAUTH, "Auth-Info header: %s\n", value); while (tokenize(&pnt, &key, &val, NULL, 0) == 0) { val = ne_shave(val, "\""); NE_DEBUG(NE_DBG_HTTPAUTH, "Pair: [%s] = [%s]\n", key, val); if (strcasecmp(key, "qop") == 0) { qop_value = val; if (strcasecmp(val, "auth") == 0) { qop = auth_qop_auth; } else { qop = auth_qop_none; } } else if (strcasecmp(key, "nextnonce") == 0) { nextnonce = val; } else if (strcasecmp(key, "rspauth") == 0) { rspauth = val; } else if (strcasecmp(key, "cnonce") == 0) { cnonce = val; } else if (strcasecmp(key, "nc") == 0) { nc = val; if (sscanf(val, "%x", &nonce_count) != 1) { NE_DEBUG(NE_DBG_HTTPAUTH, "Couldn't find nonce count.\n"); } else { NE_DEBUG(NE_DBG_HTTPAUTH, "Got nonce_count: %u\n", nonce_count); } } } /* Presume the worst */ okay = -1; if ((qop != auth_qop_none) && (qop_value != NULL)) { if ((rspauth == NULL) || (cnonce == NULL) || (nc == NULL)) { NE_DEBUG(NE_DBG_HTTPAUTH, "Missing rspauth, cnonce or nc with qop.\n"); } else { /* Have got rspauth, cnonce and nc */ if (strcmp(cnonce, sess->cnonce) != 0) { NE_DEBUG(NE_DBG_HTTPAUTH, "Response cnonce doesn't match.\n"); } else if (nonce_count != sess->nonce_count) { NE_DEBUG(NE_DBG_HTTPAUTH, "Response nonce count doesn't match.\n"); } else { /* Calculate and check the response-digest value. * joe: IMO the spec is slightly ambiguous as to whether * we use the qop which WE sent, or the qop which THEY * sent... */ struct ne_md5_ctx a2; unsigned char a2_md5[16], rdig_md5[16]; char a2_md5_ascii[33], rdig_md5_ascii[33]; NE_DEBUG(NE_DBG_HTTPAUTH, "Calculating response-digest.\n"); /* First off, H(A2) again. */ ne_md5_init_ctx(&a2); ne_md5_process_bytes(":", 1, &a2); ne_md5_process_bytes(req->uri, strlen(req->uri), &a2); ne_md5_finish_ctx(&a2, a2_md5); ne_md5_to_ascii(a2_md5, a2_md5_ascii); /* We have the stored digest-so-far of * H(A1) ":" unq(nonce-value) * [ ":" nc-value ":" unq(cnonce-value) ] for qop * in sess->stored_rdig, to save digesting them again. * */ if (qop != auth_qop_none) { /* Add in qop-value */ NE_DEBUG(NE_DBG_HTTPAUTH, "Digesting qop-value [%s:].\n", qop_value); ne_md5_process_bytes(qop_value, strlen(qop_value), &sess->stored_rdig); ne_md5_process_bytes(":", 1, &sess->stored_rdig); } /* Digest ":" H(A2) */ ne_md5_process_bytes(a2_md5_ascii, 32, &sess->stored_rdig); /* All done */ ne_md5_finish_ctx(&sess->stored_rdig, rdig_md5); ne_md5_to_ascii(rdig_md5, rdig_md5_ascii); NE_DEBUG(NE_DBG_HTTPAUTH, "Calculated response-digest of: " "[%s]\n", rdig_md5_ascii); NE_DEBUG(NE_DBG_HTTPAUTH, "Given response-digest of: " "[%s]\n", rspauth); /* And... do they match? */ okay = (strcasecmp(rdig_md5_ascii, rspauth) == 0)?0:-1; NE_DEBUG(NE_DBG_HTTPAUTH, "Matched: %s\n", okay?"nope":"YES!"); } } } else { NE_DEBUG(NE_DBG_HTTPAUTH, "No qop directive, auth okay.\n"); okay = 0; } /* Check for a nextnonce */ if (nextnonce != NULL) { NE_DEBUG(NE_DBG_HTTPAUTH, "Found nextnonce of [%s].\n", nextnonce); if (sess->nonce != NULL) ne_free(sess->nonce); sess->nonce = ne_strdup(nextnonce); } ne_free(hdr); return okay; } /* Passed the value of a "(Proxy,WWW)-Authenticate: " header field. * Returns 0 if valid challenge was accepted; non-zero if no valid * challenge was found. */ static int auth_challenge(auth_session *sess, const char *value) { char *pnt, *key, *val, *hdr, sep; struct auth_challenge *chall = NULL, *challenges = NULL; int success; pnt = hdr = ne_strdup(value); NE_DEBUG(NE_DBG_HTTPAUTH, "Got new auth challenge: %s\n", value); /* The header value may be made up of one or more challenges. We * split it down into attribute-value pairs, then search for * schemes in the pair keys. */ while (!tokenize(&pnt, &key, &val, &sep, 1)) { if (val == NULL) { auth_scheme scheme; if (strcasecmp(key, "basic") == 0) { scheme = auth_scheme_basic; } else if (strcasecmp(key, "digest") == 0) { scheme = auth_scheme_digest; } #ifdef HAVE_GSSAPI else if (strcasecmp(key, "negotiate") == 0) { scheme = auth_scheme_gssapi; } #else #ifdef HAVE_SSPI else if (strcasecmp(key, "negotiate") == 0) { scheme = auth_scheme_sspi_negotiate; } else if (strcasecmp(key, "ntlm") == 0) { scheme = auth_scheme_sspi_ntlm; } #endif #endif else { NE_DEBUG(NE_DBG_HTTPAUTH, "Ignoring challenge '%s'.\n", key); chall = NULL; continue; } NE_DEBUG(NE_DBG_HTTPAUTH, "New '%s' challenge.\n", key); chall = ne_calloc(sizeof *chall); chall->scheme = scheme; chall->next = challenges; challenges = chall; if (sep == ' ' && (scheme == auth_scheme_gssapi || scheme == auth_scheme_sspi_negotiate || scheme == auth_scheme_sspi_ntlm) ) { /* Cope with the fact that the unquoted base64 * paramater token doesn't match the 2617 auth-param * grammar: */ chall->opaque = ne_shave(ne_token(&pnt, ','), " \t"); NE_DEBUG(NE_DBG_HTTPAUTH, "auth: Negotiate parameter '%s'\n", chall->opaque); if (!pnt) break; /* stop parsing at end-of-string. */ } continue; } else if (chall == NULL) { /* Ignore pairs for an unknown challenge. */ NE_DEBUG(NE_DBG_HTTPAUTH, "Ignored pair: %s = %s\n", key, val); continue; } /* Strip quotes off value. */ val = ne_shave(val, "\"'"); NE_DEBUG(NE_DBG_HTTPAUTH, "Got pair: [%s] = [%s]\n", key, val); if (strcasecmp(key, "realm") == 0) { chall->realm = val; } else if (strcasecmp(key, "nonce") == 0) { chall->nonce = val; } else if (strcasecmp(key, "opaque") == 0) { chall->opaque = val; } else if (strcasecmp(key, "stale") == 0) { /* Truth value */ chall->stale = (strcasecmp(val, "true") == 0); } else if (strcasecmp(key, "algorithm") == 0) { if (strcasecmp(val, "md5") == 0) { chall->alg = auth_alg_md5; } else if (strcasecmp(val, "md5-sess") == 0) { chall->alg = auth_alg_md5_sess; } else { chall->alg = auth_alg_unknown; } } else if (strcasecmp(key, "qop") == 0) { /* iterate over each token in the value */ do { const char *tok = ne_shave(ne_token(&val, ','), " \t"); if (strcasecmp(tok, "auth") == 0) { chall->qop_auth = 1; } } while (val); chall->got_qop = chall->qop_auth; } } NE_DEBUG(NE_DBG_HTTPAUTH, "Finished parsing parameters.\n"); /* Did we find any challenges */ if (challenges == NULL) { ne_free(hdr); return -1; } success = 0; #ifdef HAVE_GSSAPI /* Ignore Negotiate challenges from origin servers which don't * come over SSL. */ if (sess->spec == &ah_proxy_class || sess->context != AUTH_ANY) { NE_DEBUG(NE_DBG_HTTPAUTH, "Looking for GSSAPI.\n"); /* Try a GSSAPI challenge */ for (chall = challenges; chall != NULL; chall = chall->next) { if (chall->scheme == auth_scheme_gssapi) { if (!gssapi_challenge(sess, chall)) { success = 1; break; } } } } #endif #ifdef HAVE_SSPI if (!success) { NE_DEBUG(NE_DBG_HTTPAUTH, "Looking for SSPI/Negotiate.\n"); for (chall = challenges; chall != NULL; chall = chall->next) { if (chall->scheme == auth_scheme_sspi_negotiate) { if (!sspi_challenge(sess, chall, 0)) { success = 1; break; } } } } if (!success) { NE_DEBUG(NE_DBG_HTTPAUTH, "Looking for SSPI/NTLM.\n"); for (chall = challenges; chall != NULL; chall = chall->next) { if (chall->scheme == auth_scheme_sspi_ntlm) { if (!sspi_challenge(sess, chall, 1)) { success = 1; break; } } } } #endif /* Try a digest challenge */ if (!success) { NE_DEBUG(NE_DBG_HTTPAUTH, "Looking for Digest challenges.\n"); for (chall = challenges; chall != NULL; chall = chall->next) { if (chall->scheme == auth_scheme_digest) { if (!digest_challenge(sess, chall)) { success = 1; break; } } } } if (!success) { NE_DEBUG(NE_DBG_HTTPAUTH, "No good Digest challenges, looking for Basic.\n"); for (chall = challenges; chall != NULL; chall = chall->next) { if (chall->scheme == auth_scheme_basic) { if (!basic_challenge(sess, chall)) { success = 1; break; } } } if (!success) { /* No good challenges - record this in the session state */ NE_DEBUG(NE_DBG_HTTPAUTH, "Did not understand any challenges.\n"); } } /* Remember whether we can now supply the auth details */ sess->can_handle = success; while (challenges != NULL) { chall = challenges->next; ne_free(challenges); challenges = chall; } ne_free(hdr); return !success; } static void ah_create(ne_request *req, void *session, const char *method, const char *uri) { auth_session *sess = session; int is_connect = strcmp(method, "CONNECT") == 0; if (sess->context == AUTH_ANY || (is_connect && sess->context == AUTH_CONNECT) || (!is_connect && sess->context == AUTH_NOTCONNECT)) { struct auth_request *areq = ne_calloc(sizeof *areq); NE_DEBUG(NE_DBG_HTTPAUTH, "ah_create, for %s\n", sess->spec->resp_hdr); areq->method = method; areq->uri = uri; areq->request = req; sess->attempt = 0; ne_set_request_private(req, sess->spec->id, areq); } } static void ah_pre_send(ne_request *r, void *cookie, ne_buffer *request) { auth_session *sess = cookie; struct auth_request *req = ne_get_request_private(r, sess->spec->id); if (!sess->can_handle || !req) { NE_DEBUG(NE_DBG_HTTPAUTH, "Not handling session.\n"); } else { char *value; NE_DEBUG(NE_DBG_HTTPAUTH, "Handling auth session.\n"); req->will_handle = 1; switch(sess->scheme) { case auth_scheme_basic: value = request_basic(sess); break; case auth_scheme_digest: value = request_digest(sess, req); break; #ifdef HAVE_GSSAPI case auth_scheme_gssapi: value = request_gssapi(sess); break; #endif #ifdef HAVE_SSPI case auth_scheme_sspi_negotiate: case auth_scheme_sspi_ntlm: value = request_sspi(sess); break; #endif default: value = NULL; break; } if (value != NULL) { ne_buffer_concat(request, sess->spec->req_hdr, ": ", value, NULL); ne_free(value); } } } static int ah_post_send(ne_request *req, void *cookie, const ne_status *status) { auth_session *sess = cookie; struct auth_request *areq = ne_get_request_private(req, sess->spec->id); const char *auth_hdr, *auth_info_hdr; int ret = NE_OK; if (!areq) return NE_OK; auth_hdr = ne_get_response_header(req, sess->spec->resp_hdr); auth_info_hdr = ne_get_response_header(req, sess->spec->resp_info_hdr); if (sess->context == AUTH_CONNECT && status->code == 401 && !auth_hdr) { /* Some broken proxies issue a 401 as a proxy auth challenge * to a CONNECT request; handle this here. */ auth_hdr = ne_get_response_header(req, "WWW-Authenticate"); auth_info_hdr = NULL; } #ifdef HAVE_GSSAPI /* whatever happens: forget the GSSAPI token cached thus far */ if (sess->gssapi_token) { ne_free(sess->gssapi_token); sess->gssapi_token = NULL; } #endif NE_DEBUG(NE_DBG_HTTPAUTH, "ah_post_send (#%d), code is %d (want %d), %s is %s\n", sess->attempt, status->code, sess->spec->status_code, sess->spec->resp_hdr, auth_hdr ? auth_hdr : "(none)"); if (auth_info_hdr && sess->scheme == auth_scheme_digest) { if (verify_digest_response(areq, sess, auth_info_hdr)) { NE_DEBUG(NE_DBG_HTTPAUTH, "Response authentication invalid.\n"); ne_set_error(sess->sess, "%s", _(sess->spec->fail_msg)); ret = NE_ERROR; } } #ifdef HAVE_GSSAPI /* one must wonder... has Mr Brezak actually read RFC2617? */ else if (sess->scheme == auth_scheme_gssapi && (status->klass == 2 || status->klass == 3) && auth_hdr) { char *hdr = ne_strdup(auth_hdr); if (verify_negotiate_response(sess, hdr)) { NE_DEBUG(NE_DBG_HTTPAUTH, "gssapi: Mutual auth failed.\n"); ret = NE_ERROR; } ne_free(hdr); } #endif /* HAVE_GSSAPI */ else if ((status->code == sess->spec->status_code || (status->code == 401 && sess->context == AUTH_CONNECT)) && auth_hdr) { /* note above: allow a 401 in response to a CONNECT request * from a proxy since some buggy proxies send that. */ NE_DEBUG(NE_DBG_HTTPAUTH, "Got challenge (code %d).\n", status->code); if (!auth_challenge(sess, auth_hdr)) { ret = NE_RETRY; } else { clean_session(sess); ret = sess->spec->fail_code; } } return ret; } static void ah_destroy(ne_request *req, void *session) { auth_session *sess = session; struct auth_request *areq = ne_get_request_private(req, sess->spec->id); if (areq) { ne_free(areq); } } static void free_auth(void *cookie) { auth_session *sess = cookie; #ifdef HAVE_GSSAPI if (sess->gssname != GSS_C_NO_NAME) { unsigned int major; gss_release_name(&major, &sess->gssname); } #endif clean_session(sess); ne_free(sess); } static void auth_register(ne_session *sess, int isproxy, const struct auth_class *ahc, const char *id, ne_auth_creds creds, void *userdata) { auth_session *ahs = ne_calloc(sizeof *ahs); ahs->creds = creds; ahs->userdata = userdata; ahs->sess = sess; ahs->spec = ahc; if (strcmp(ne_get_scheme(sess), "https") == 0) { ahs->context = isproxy ? AUTH_CONNECT : AUTH_NOTCONNECT; #ifdef HAVE_GSSAPI { get_gss_name(&ahs->gssname, (isproxy ? sess->proxy.hostname : sess->server.hostname)); ahs->gssctx = GSS_C_NO_CONTEXT; ahs->gssmech = GSS_C_NO_OID; } #endif } else { ahs->context = AUTH_ANY; } /* Register hooks */ ne_hook_create_request(sess, ah_create, ahs); ne_hook_pre_send(sess, ah_pre_send, ahs); ne_hook_post_send(sess, ah_post_send, ahs); ne_hook_destroy_request(sess, ah_destroy, ahs); ne_hook_destroy_session(sess, free_auth, ahs); ne_set_session_private(sess, id, ahs); } void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata) { auth_register(sess, 0, &ah_server_class, HOOK_SERVER_ID, creds, userdata); } void ne_set_proxy_auth(ne_session *sess, ne_auth_creds creds, void *userdata) { auth_register(sess, 1, &ah_proxy_class, HOOK_PROXY_ID, creds, userdata); } void ne_forget_auth(ne_session *sess) { auth_session *as; if ((as = ne_get_session_private(sess, HOOK_SERVER_ID)) != NULL) clean_session(as); if ((as = ne_get_session_private(sess, HOOK_PROXY_ID)) != NULL) clean_session(as); } gnome-vfs-2.24.4/imported/neon/ne_basic.h0000644000175000001440000001076611334251016015125 00000000000000/* HTTP/1.1 methods Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_BASIC_H #define NE_BASIC_H #include /* for time_t */ #include "ne_request.h" BEGIN_NEON_DECLS /* Perform a GET request on resource at 'path', writing the entity * body which is returned to 'fd'. */ int ne_get(ne_session *sess, const char *path, int fd); /* Perform a PUT request on resource at 'path', reading the entity * body to submit from 'fd'. */ int ne_put(ne_session *sess, const char *path, int fd); #define NE_DEPTH_ZERO (0) #define NE_DEPTH_ONE (1) #define NE_DEPTH_INFINITE (2) /* For ne_copy and ne_move: * * If a resource exists at "dest" and overwrite is zero, the operation * will fail; if overwrite is non-zero, any existing resource will * be over-written. */ /* Copy resource from 'src to 'dest' paths. If 'src' identifies a * collection resource, depth may be NE_DEPTH_ZERO to request that the * collection and its properties are to be copied, or * NE_DEPTH_INFINITE to request that the collection and its contents * are to be copied. */ int ne_copy(ne_session *sess, int overwrite, int depth, const char *src, const char *dest); /* Move resource from 'src' to dest 'path'. */ int ne_move(ne_session *sess, int overwrite, const char *src, const char *dest); /* Delete resource at 'path'. */ int ne_delete(ne_session *sess, const char *path); /* Create a collection at 'path', which MUST have a trailing slash. */ int ne_mkcol(ne_session *sess, const char *path); /* Adds a Depth: header to a request */ void ne_add_depth_header(ne_request *req, int depth); /* Retrieve modification time of resource at location 'path', place in * *modtime. (uses HEAD) */ int ne_getmodtime(ne_session *sess, const char *path, time_t *modtime); typedef struct { const char *type, *subtype; const char *charset; char *value; } ne_content_type; /* Retrieve the content-type of the response; returns zero if response * had valid content-type, in which case all fields in *ctype are set * (and never NULL); the caller must free(ctype->value) after use. * Returns non-zero on error, in which case *ctype is not altered. */ int ne_get_content_type(ne_request *req, ne_content_type *ctype); /* Server capabilities: */ typedef struct { unsigned int dav_class1; /* True if Class 1 WebDAV server */ unsigned int dav_class2; /* True if Class 2 WebDAV server */ unsigned int dav_executable; /* True if supports the 'executable' * property a. la. mod_dav */ } ne_server_capabilities; /* Determines server capabilities (using OPTIONS). Pass 'path' as "*" * to determine proxy server capabilities if using a proxy server. */ int ne_options(ne_session *sess, const char *path, ne_server_capabilities *caps); /* Defines a range of bytes, starting at 'start' and ending * at 'end'. 'total' is the number of bytes in the range. */ typedef struct { off_t start, end, total; } ne_content_range; /* Partial GET. range->start must be >= 0. range->total is ignored. * * If range->end is -1, then the rest of the resource from start is * requested, and range->total and end are filled in on success. * * Otherwise, bytes from range->start to range->end are requested. * * This will write to the CURRENT position of f; so if you want * to do a resume download, use: * struct ne_content_range range; * range.start = resume_from; * range.end = range.start + 999; (= 1000 bytes) * fseek(myfile, resume_from, SEEK_SET); * ne_get_range(sess, path, &range, myfile); */ int ne_get_range(ne_session *sess, const char *path, ne_content_range *range, int fd); /* Post using buffer as request-body: stream response into f */ int ne_post(ne_session *sess, const char *path, int fd, const char *buffer); END_NEON_DECLS #endif /* NE_BASIC_H */ gnome-vfs-2.24.4/imported/neon/ne_utils.h0000644000175000001440000000667611334251016015211 00000000000000/* HTTP utility functions Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_UTILS_H #define NE_UTILS_H #include #include #include #include "ne_defs.h" #include BEGIN_NEON_DECLS /* Returns a human-readable version string like: * "neon 0.2.0: Library build, OpenSSL support" */ const char *ne_version_string(void); /* Returns non-zero if library version is not of major version * 'major', or if minor version is not greater than or equal to * 'minor'. For neon versions with major == 0, all minor versions are * presumed to be incompatible. */ int ne_version_match(int major, int minor); #define NE_FEATURE_SSL (1) /* SSL/TLS support */ #define NE_FEATURE_ZLIB (2) /* zlib compression in compress interface */ #define NE_FEATURE_IPV6 (3) /* IPv6 is supported in resolver */ #define NE_FEATURE_LFS (4) /* large file support */ #define NE_FEATURE_SOCKS (5) /* SOCKSv5 support */ /* Returns non-zero if neon has support for given feature code * NE_FEATURE_*. */ int ne_has_support(int feature); /* CONSIDER: mutt has a nicer way of way of doing debugging output... maybe * switch to like that. */ #ifndef NE_DEBUGGING #define NE_DEBUG if (0) ne_debug #else /* DEBUGGING */ #define NE_DEBUG ne_debug #endif /* DEBUGGING */ #define NE_DBG_SOCKET (1<<0) #define NE_DBG_HTTP (1<<1) #define NE_DBG_XML (1<<2) #define NE_DBG_HTTPAUTH (1<<3) #define NE_DBG_HTTPPLAIN (1<<4) #define NE_DBG_LOCKS (1<<5) #define NE_DBG_XMLPARSE (1<<6) #define NE_DBG_HTTPBODY (1<<7) #define NE_DBG_SSL (1<<8) #define NE_DBG_FLUSH (1<<30) /* Send debugging output to 'stream', for all of the given debug * channels. To disable debugging, pass 'stream' as NULL and 'mask' * as 0. */ void ne_debug_init(FILE *stream, int mask); /* The current debug mask and stream set by the last call to * ne_debug_init. */ extern int ne_debug_mask; extern FILE *ne_debug_stream; /* Produce debug output if any of channels 'ch' is enabled for * debugging. */ void ne_debug(int ch, const char *, ...) ne_attribute((__format__ (__printf__, 2, 3))); /* Storing an HTTP status result */ typedef struct { int major_version; int minor_version; int code; /* Status-Code value */ int klass; /* Class of Status-Code (1-5) */ char *reason_phrase; } ne_status; /* NB: couldn't use 'class' in ne_status because it would clash with * the C++ reserved word. */ /* Parser for strings which follow the Status-Line grammar from * RFC2616. s->reason_phrase is malloc-allocated if non-NULL, and * must be free'd by the caller. * Returns: * 0 on success, *s will be filled in. * -1 on parse error. */ int ne_parse_statusline(const char *status_line, ne_status *s); END_NEON_DECLS #endif /* NE_UTILS_H */ gnome-vfs-2.24.4/imported/neon/ne_207.c0000644000175000001440000002305211334251016014337 00000000000000/* WebDAV 207 multi-status response handling Copyright (C) 1999-2004, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ /* Generic handling for WebDAV 207 Multi-Status responses. */ #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #include "ne_alloc.h" #include "ne_utils.h" #include "ne_xml.h" #include "ne_207.h" #include "ne_uri.h" #include "ne_basic.h" #include "ne_i18n.h" struct ne_207_parser_s { ne_207_start_response *start_response; ne_207_end_response *end_response; ne_207_start_propstat *start_propstat; ne_207_end_propstat *end_propstat; ne_xml_parser *parser; void *userdata; ne_buffer *cdata; /* remember whether we are in a response: the validation * doesn't encapsulate this since we only count as being * "in a response" when we've seen the href element. */ int in_response; /* current position */ void *response, *propstat; /* caching */ ne_status status; char *description, *href; }; #define ELM_multistatus 1 #define ELM_response 2 #define ELM_responsedescription 3 #define ELM_href 4 #define ELM_prop (NE_207_STATE_PROP) #define ELM_status 6 #define ELM_propstat 7 static const struct ne_xml_idmap map207[] = { { "DAV:", "multistatus", ELM_multistatus }, { "DAV:", "response", ELM_response }, { "DAV:", "responsedescription", ELM_responsedescription }, { "DAV:", "href", ELM_href }, { "DAV:", "propstat", ELM_propstat }, { "DAV:", "prop", ELM_prop }, { "DAV:", "status", ELM_status } }; /* Set the callbacks for the parser */ void ne_207_set_response_handlers(ne_207_parser *p, ne_207_start_response *start, ne_207_end_response *end) { p->start_response = start; p->end_response = end; } void ne_207_set_propstat_handlers(ne_207_parser *p, ne_207_start_propstat *start, ne_207_end_propstat *end) { p->start_propstat = start; p->end_propstat = end; } void *ne_207_get_current_response(ne_207_parser *p) { return p->response; } void *ne_207_get_current_propstat(ne_207_parser *p) { return p->propstat; } /* return non-zero if (child, parent) is an interesting element */ static int can_handle(int parent, int child) { return (parent == 0 && child == ELM_multistatus) || (parent == ELM_multistatus && child == ELM_response) || (parent == ELM_response && (child == ELM_href || child == ELM_status || child == ELM_propstat || child == ELM_responsedescription)) || (parent == ELM_propstat && (child == ELM_prop || child == ELM_status || child == ELM_responsedescription)); } static int cdata_207(void *userdata, int state, const char *buf, size_t len) { ne_207_parser *p = userdata; if ((state == ELM_href || state == ELM_responsedescription || state == ELM_status) && p->cdata->used + len < 2048) ne_buffer_append(p->cdata, buf, len); return 0; } static int start_element(void *userdata, int parent, const char *nspace, const char *name, const char **atts) { ne_207_parser *p = userdata; int state = ne_xml_mapid(map207, NE_XML_MAPLEN(map207), nspace, name); if (!can_handle(parent, state)) return NE_XML_DECLINE; /* if not in a response, ignore everything. */ if (!p->in_response && state != ELM_response && state != ELM_multistatus && state != ELM_href) return NE_XML_DECLINE; if (state == ELM_propstat && p->start_propstat) { p->propstat = p->start_propstat(p->userdata, p->response); if (p->propstat == NULL) { return NE_XML_ABORT; } } ne_buffer_clear(p->cdata); return state; } #define GIVE_STATUS(p) ((p)->status.reason_phrase?&(p)->status:NULL) #define HAVE_CDATA(p) ((p)->cdata->used > 1) static int end_element(void *userdata, int state, const char *nspace, const char *name) { ne_207_parser *p = userdata; const char *cdata = ne_shave(p->cdata->data, "\r\n\t "); switch (state) { case ELM_responsedescription: if (HAVE_CDATA(p)) { NE_FREE(p->description); p->description = ne_strdup(cdata); } break; case ELM_href: /* Now we have the href, begin the response */ if (p->start_response && HAVE_CDATA(p)) { p->response = p->start_response(p->userdata, cdata); p->in_response = 1; } break; case ELM_status: if (HAVE_CDATA(p)) { NE_FREE(p->status.reason_phrase); if (ne_parse_statusline(cdata, &p->status)) { char buf[500]; NE_DEBUG(NE_DBG_HTTP, "Status line: %s\n", cdata); ne_snprintf(buf, 500, _("Invalid HTTP status line in status element " "at line %d of response:\nStatus line was: %s"), ne_xml_currentline(p->parser), cdata); ne_xml_set_error(p->parser, buf); return -1; } else { NE_DEBUG(NE_DBG_XML, "Decoded status line: %s\n", cdata); } } break; case ELM_propstat: if (p->end_propstat) p->end_propstat(p->userdata, p->propstat, GIVE_STATUS(p), p->description); p->propstat = NULL; NE_FREE(p->description); NE_FREE(p->status.reason_phrase); break; case ELM_response: if (!p->in_response) break; if (p->end_response) p->end_response(p->userdata, p->response, GIVE_STATUS(p), p->description); p->response = NULL; p->in_response = 0; NE_FREE(p->status.reason_phrase); NE_FREE(p->description); break; } return 0; } ne_207_parser *ne_207_create(ne_xml_parser *parser, void *userdata) { ne_207_parser *p = ne_calloc(sizeof *p); p->parser = parser; p->userdata = userdata; p->cdata = ne_buffer_create(); /* Add handler for the standard 207 elements */ ne_xml_push_handler(parser, start_element, cdata_207, end_element, p); return p; } void ne_207_destroy(ne_207_parser *p) { if (p->status.reason_phrase) ne_free(p->status.reason_phrase); ne_buffer_destroy(p->cdata); ne_free(p); } int ne_accept_207(void *userdata, ne_request *req, const ne_status *status) { return (status->code == 207); } /* Handling of 207 errors: we keep a string buffer, and append * messages to it as they come down. * * Note, 424 means it would have worked but something else went wrong. * We will have had the error for "something else", so we display * that, and skip 424 errors. */ /* This is passed as userdata to the 207 code. */ struct context { char *href; ne_buffer *buf; unsigned int is_error; }; static void *start_response(void *userdata, const char *href) { struct context *ctx = userdata; NE_FREE(ctx->href); ctx->href = ne_strdup(href); return NULL; } static void handle_error(struct context *ctx, const ne_status *status, const char *description) { if (status && status->klass != 2 && status->code != 424) { char buf[50]; ctx->is_error = 1; sprintf(buf, "%d", status->code); ne_buffer_concat(ctx->buf, ctx->href, ": ", buf, " ", status->reason_phrase, "\n", NULL); if (description != NULL) { /* TODO: these can be multi-line. Would be good to * word-wrap this at col 80. */ ne_buffer_concat(ctx->buf, " -> ", description, "\n", NULL); } } } static void end_response(void *userdata, void *response, const ne_status *status, const char *description) { struct context *ctx = userdata; handle_error(ctx, status, description); } static void end_propstat(void *userdata, void *propstat, const ne_status *status, const char *description) { struct context *ctx = userdata; handle_error(ctx, status, description); } /* Dispatch a DAV request and handle a 207 error response appropriately */ /* TODO: hook up Content-Type parsing; passing charset to XML parser */ int ne_simple_request(ne_session *sess, ne_request *req) { int ret; struct context ctx = {0}; ne_207_parser *p207; ne_xml_parser *p; p = ne_xml_create(); p207 = ne_207_create(p, &ctx); /* The error string is progressively written into the * ne_buffer by the element callbacks */ ctx.buf = ne_buffer_create(); ne_207_set_response_handlers(p207, start_response, end_response); ne_207_set_propstat_handlers(p207, NULL, end_propstat); ne_add_response_body_reader(req, ne_accept_207, ne_xml_parse_v, p); ret = ne_request_dispatch(req); if (ret == NE_OK) { if (ne_get_status(req)->code == 207) { if (ne_xml_failed(p)) { /* The parse was invalid */ ne_set_error(sess, "%s", ne_xml_get_error(p)); ret = NE_ERROR; } else if (ctx.is_error) { /* If we've actually got any error information * from the 207, then set that as the error */ ne_set_error(sess, "%s", ctx.buf->data); ret = NE_ERROR; } } else if (ne_get_status(req)->klass != 2) { ret = NE_ERROR; } } ne_207_destroy(p207); ne_xml_destroy(p); ne_buffer_destroy(ctx.buf); NE_FREE(ctx.href); ne_request_destroy(req); return ret; } gnome-vfs-2.24.4/imported/neon/ne_request.c0000644000175000001440000013176611334251016015533 00000000000000/* HTTP request/response handling Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ /* This is the HTTP client request/response implementation. * The goal of this code is to be modular and simple. */ #include "config.h" #include #ifdef HAVE_LIMITS_H #include /* for UINT_MAX etc */ #endif #include #include #include #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #include "ne_i18n.h" #include "ne_alloc.h" #include "ne_request.h" #include "ne_string.h" /* for ne_buffer */ #include "ne_utils.h" #include "ne_socket.h" #include "ne_uri.h" #include "ne_private.h" #define SOCK_ERR(req, op, msg) do { ssize_t sret = (op); \ if (sret < 0) return aborted(req, msg, sret); } while (0) #define EOL "\r\n" struct body_reader { ne_block_reader handler; ne_accept_response accept_response; unsigned int use:1; void *userdata; struct body_reader *next; }; #if !defined(LONG_LONG_MAX) && defined(LLONG_MAX) #define LONG_LONG_MAX LLONG_MAX #endif #ifdef NE_LFS #define ne_lseek lseek64 typedef off64_t ne_off_t; #define FMT_NE_OFF_T NE_FMT_OFF64_T #define NE_OFFT_MAX LONG_LONG_MAX #ifdef HAVE_STRTOLL #define ne_strtoff strtoll #else #define ne_strtoff strtoq #endif #else /* !NE_LFS */ typedef off_t ne_off_t; #define ne_lseek lseek #define FMT_NE_OFF_T NE_FMT_OFF_T #if defined(SIZEOF_LONG_LONG) && defined(LONG_LONG_MAX) \ && SIZEOF_OFF_T == SIZEOF_LONG_LONG #define NE_OFFT_MAX LONG_LONG_MAX #else #define NE_OFFT_MAX LONG_MAX #endif #if SIZEOF_OFF_T > SIZEOF_LONG && defined(HAVE_STRTOLL) #define ne_strtoff strtoll #elif SIZEOF_OFF_T > SIZEOF_LONG && defined(HAVE_STRTOQ) #define ne_strtoff strtoq #else #define ne_strtoff strtol #endif #endif /* NE_LFS */ struct field { char *name, *value; size_t vlen; struct field *next; }; /* Maximum number of header fields per response: */ #define MAX_HEADER_FIELDS (100) /* Size of hash table; 43 is the smallest prime for which the common * header names hash uniquely using the *33 hash function. */ #define HH_HASHSIZE (43) /* Hash iteration step: *33 known to be a good hash for ASCII, see RSE. */ #define HH_ITERATE(hash, ch) (((hash)*33 + (unsigned char)(ch)) % HH_HASHSIZE) /* pre-calculated hash values for given header names: */ #define HH_HV_CONNECTION (0x14) #define HH_HV_CONTENT_LENGTH (0x13) #define HH_HV_TRANSFER_ENCODING (0x07) struct ne_request_s { char *method, *uri; /* method and Request-URI */ ne_buffer *headers; /* request headers */ /* Request body. */ ne_provide_body body_cb; void *body_ud; /* Request body source: file or buffer (if not callback). */ union { struct { int fd; ne_off_t offset, length; ne_off_t remain; /* remaining bytes to send. */ } file; struct { /* length bytes @ buffer = whole body. * remain bytes @ pnt = remaining bytes to send */ const char *buffer, *pnt; size_t length, remain; } buf; } body; ne_off_t body_length; /* length of request body */ /* temporary store for response lines. */ char respbuf[NE_BUFSIZ]; /**** Response ***/ /* The transfer encoding types */ struct ne_response { enum { R_TILLEOF = 0, /* read till eof */ R_NO_BODY, /* implicitly no body (HEAD, 204, 304) */ R_CHUNKED, /* using chunked transfer-encoding */ R_CLENGTH /* using given content-length */ } mode; union { /* clen: used if mode == R_CLENGTH; total and bytes * remaining to be read of response body. */ struct { ne_off_t total, remain; } clen; /* chunk: used if mode == R_CHUNKED; total and bytes * remaining to be read of current chunk */ struct { size_t total, remain; } chunk; } body; ne_off_t progress; /* number of bytes read of response */ } resp; struct hook *private, *pre_send_hooks; /* response header fields */ struct field *response_headers[HH_HASHSIZE]; unsigned int current_index; /* response_headers cursor for iterator */ /* List of callbacks which are passed response body blocks */ struct body_reader *body_readers; /*** Miscellaneous ***/ unsigned int method_is_head:1; unsigned int use_expect100:1; unsigned int can_persist:1; ne_session *session; ne_status status; }; static int open_connection(ne_request *req); /* Returns hash value for header 'name', converting it to lower-case * in-place. */ static inline unsigned int hash_and_lower(char *name) { char *pnt; unsigned int hash = 0; for (pnt = name; *pnt != '\0'; pnt++) { *pnt = tolower(*pnt); hash = HH_ITERATE(hash,*pnt); } return hash; } /* Abort a request due to an non-recoverable HTTP protocol error, * whilst doing 'doing'. 'code', if non-zero, is the socket error * code, NE_SOCK_*, or if zero, is ignored. */ static int aborted(ne_request *req, const char *doing, ssize_t code) { ne_session *sess = req->session; int ret = NE_ERROR; NE_DEBUG(NE_DBG_HTTP, "Aborted request (%" NE_FMT_SSIZE_T "): %s\n", code, doing); switch(code) { case NE_SOCK_CLOSED: if (sess->use_proxy) { ne_set_error(sess, _("%s: connection was closed by proxy server."), doing); } else { ne_set_error(sess, _("%s: connection was closed by server."), doing); } break; case NE_SOCK_TIMEOUT: ne_set_error(sess, _("%s: connection timed out."), doing); ret = NE_TIMEOUT; break; case NE_SOCK_ERROR: case NE_SOCK_RESET: case NE_SOCK_TRUNC: ne_set_error(sess, "%s: %s", doing, ne_sock_error(sess->socket)); break; case 0: ne_set_error(sess, "%s", doing); break; } ne_close_connection(sess); return ret; } static void notify_status(ne_session *sess, ne_conn_status status, const char *info) { if (sess->notify_cb) { sess->notify_cb(sess->notify_ud, status, info); } } static void *get_private(const struct hook *hk, const char *id) { for (; hk != NULL; hk = hk->next) if (strcmp(hk->id, id) == 0) return hk->userdata; return NULL; } void *ne_get_request_private(ne_request *req, const char *id) { return get_private(req->private, id); } void *ne_get_session_private(ne_session *sess, const char *id) { return get_private(sess->private, id); } typedef void (*void_fn)(void); #define ADD_HOOK(hooks, fn, ud) add_hook(&(hooks), NULL, (void_fn)(fn), (ud)) static void add_hook(struct hook **hooks, const char *id, void_fn fn, void *ud) { struct hook *hk = ne_malloc(sizeof (struct hook)), *pos; if (*hooks != NULL) { for (pos = *hooks; pos->next != NULL; pos = pos->next) /* nullop */; pos->next = hk; } else { *hooks = hk; } hk->id = id; hk->fn = fn; hk->userdata = ud; hk->next = NULL; } void ne_hook_create_request(ne_session *sess, ne_create_request_fn fn, void *userdata) { ADD_HOOK(sess->create_req_hooks, fn, userdata); } void ne_hook_pre_send(ne_session *sess, ne_pre_send_fn fn, void *userdata) { ADD_HOOK(sess->pre_send_hooks, fn, userdata); } void ne_hook_post_send(ne_session *sess, ne_post_send_fn fn, void *userdata) { ADD_HOOK(sess->post_send_hooks, fn, userdata); } void ne_hook_destroy_request(ne_session *sess, ne_destroy_req_fn fn, void *userdata) { ADD_HOOK(sess->destroy_req_hooks, fn, userdata); } void ne_hook_destroy_session(ne_session *sess, ne_destroy_sess_fn fn, void *userdata) { ADD_HOOK(sess->destroy_sess_hooks, fn, userdata); } /* Hack to fix ne_compress layer problems */ void ne__reqhook_pre_send(ne_request *req, ne_pre_send_fn fn, void *userdata) { ADD_HOOK(req->pre_send_hooks, fn, userdata); } void ne_set_session_private(ne_session *sess, const char *id, void *userdata) { add_hook(&sess->private, id, NULL, userdata); } void ne_set_request_private(ne_request *req, const char *id, void *userdata) { add_hook(&req->private, id, NULL, userdata); } static ssize_t body_string_send(void *userdata, char *buffer, size_t count) { ne_request *req = userdata; if (count == 0) { req->body.buf.remain = req->body.buf.length; req->body.buf.pnt = req->body.buf.buffer; } else { /* if body_left == 0 we fall through and return 0. */ if (req->body.buf.remain < count) count = req->body.buf.remain; memcpy(buffer, req->body.buf.pnt, count); req->body.buf.pnt += count; req->body.buf.remain -= count; } return count; } static ssize_t body_fd_send(void *userdata, char *buffer, size_t count) { ne_request *req = userdata; if (count) { if (req->body.file.remain == 0) return 0; if ((off_t)count > req->body.file.remain) count = req->body.file.remain; return read(req->body.file.fd, buffer, count); } else { ne_off_t newoff; /* rewind for next send. */ newoff = ne_lseek(req->body.file.fd, req->body.file.offset, SEEK_SET); if (newoff == req->body.file.offset) { req->body.file.remain = req->body.file.length; return 0; } else { char err[200]; if (newoff == -1) { /* errno was set */ ne_strerror(errno, err, sizeof err); } else { strcpy(err, _("offset invalid")); } ne_set_error(req->session, _("Could not seek to offset %" FMT_NE_OFF_T " of request body file: %s"), req->body.file.offset, err); return -1; } } } /* For accurate persistent connection handling, for any write() or * read() operation for a new request on an already-open connection, * an EOF or RST error MUST be treated as a persistent connection * timeout, and the request retried on a new connection. Once a * read() operation has succeeded, any subsequent error MUST be * treated as fatal. A 'retry' flag is used; retry=1 represents the * first case, retry=0 the latter. */ /* RETRY_RET() crafts a function return value given the 'retry' flag, * the socket error 'code', and the return value 'acode' from the * aborted() function. */ #define RETRY_RET(retry, code, acode) \ ((((code) == NE_SOCK_CLOSED || (code) == NE_SOCK_RESET || \ (code) == NE_SOCK_TRUNC) && retry) ? NE_RETRY : (acode)) /* Sends the request body; returns 0 on success or an NE_* error code. * If retry is non-zero; will return NE_RETRY on persistent connection * timeout. On error, the session error string is set and the * connection is closed. */ static int send_request_body(ne_request *req, int retry) { ne_session *const sess = req->session; ne_off_t progress = 0; char buffer[NE_BUFSIZ]; ssize_t bytes; NE_DEBUG(NE_DBG_HTTP, "Sending request body:\n"); /* tell the source to start again from the beginning. */ if (req->body_cb(req->body_ud, NULL, 0) != 0) { ne_close_connection(sess); return NE_ERROR; } while ((bytes = req->body_cb(req->body_ud, buffer, sizeof buffer)) > 0) { int ret = ne_sock_fullwrite(sess->socket, buffer, bytes); if (ret < 0) { int aret = aborted(req, _("Could not send request body"), ret); return RETRY_RET(retry, ret, aret); } NE_DEBUG(NE_DBG_HTTPBODY, "Body block (%" NE_FMT_SSIZE_T " bytes):\n[%.*s]\n", bytes, (int)bytes, buffer); /* invoke progress callback */ if (sess->progress_cb) { progress += bytes; /* TODO: progress_cb offset type mismatch ick */ req->session->progress_cb(sess->progress_ud, progress, req->body_length); } } if (bytes == 0) { return NE_OK; } else { NE_DEBUG(NE_DBG_HTTP, "Request body provider failed with " "%" NE_FMT_SSIZE_T "\n", bytes); ne_close_connection(sess); return NE_ERROR; } } /* Lob the User-Agent, connection and host headers in to the request * headers */ static void add_fixed_headers(ne_request *req) { if (req->session->user_agent) { ne_buffer_zappend(req->headers, req->session->user_agent); } /* If persistent connections are disabled, just send Connection: * close; otherwise, send Connection: Keep-Alive to pre-1.1 origin * servers to try harder to get a persistent connection, except if * using a proxy as per 2068§19.7.1. Always add TE: trailers. */ if (req->session->no_persist) { ne_buffer_czappend(req->headers, "Connection: TE, close" EOL "TE: trailers" EOL); } else if (!req->session->is_http11 && !req->session->use_proxy) { ne_buffer_czappend(req->headers, "Keep-Alive: " EOL "Connection: TE, Keep-Alive" EOL "TE: trailers" EOL); } else { ne_buffer_czappend(req->headers, "Connection: TE" EOL "TE: trailers" EOL); } } int ne_accept_always(void *userdata, ne_request *req, const ne_status *st) { return 1; } int ne_accept_2xx(void *userdata, ne_request *req, const ne_status *st) { return (st->klass == 2); } ne_request *ne_request_create(ne_session *sess, const char *method, const char *path) { ne_request *req = ne_calloc(sizeof *req); req->session = sess; req->headers = ne_buffer_create(); /* Add in the fixed headers */ add_fixed_headers(req); /* Set the standard stuff */ req->method = ne_strdup(method); req->method_is_head = (strcmp(method, "HEAD") == 0); /* Only use an absoluteURI here when absolutely necessary: some * servers can't parse them. */ if (req->session->use_proxy && !req->session->use_ssl && path[0] == '/') req->uri = ne_concat(req->session->scheme, "://", req->session->server.hostport, path, NULL); else req->uri = ne_strdup(path); { struct hook *hk; for (hk = sess->create_req_hooks; hk != NULL; hk = hk->next) { ne_create_request_fn fn = (ne_create_request_fn)hk->fn; fn(req, hk->userdata, method, req->uri); } } return req; } /* Set the request body length to 'length' */ static void set_body_length(ne_request *req, ne_off_t length) { req->body_length = length; ne_print_request_header(req, "Content-Length", "%" FMT_NE_OFF_T, length); } void ne_set_request_body_buffer(ne_request *req, const char *buffer, size_t size) { req->body.buf.buffer = buffer; req->body.buf.length = size; req->body_cb = body_string_send; req->body_ud = req; set_body_length(req, size); } void ne_set_request_body_provider(ne_request *req, off_t bodysize, ne_provide_body provider, void *ud) { req->body_cb = provider; req->body_ud = ud; set_body_length(req, bodysize); } void ne_set_request_body_fd(ne_request *req, int fd, off_t offset, off_t length) { req->body.file.fd = fd; req->body.file.offset = offset; req->body.file.length = length; req->body_cb = body_fd_send; req->body_ud = req; set_body_length(req, length); } #ifdef NE_LFS void ne_set_request_body_fd64(ne_request *req, int fd, off64_t offset, off64_t length) { req->body.file.fd = fd; req->body.file.offset = offset; req->body.file.length = length; req->body_cb = body_fd_send; req->body_ud = req; set_body_length(req, length); } void ne_set_request_body_provider64(ne_request *req, off64_t bodysize, ne_provide_body provider, void *ud) { req->body_cb = provider; req->body_ud = ud; set_body_length(req, bodysize); } #endif void ne_set_request_expect100(ne_request *req, int flag) { req->use_expect100 = flag; } void ne_add_request_header(ne_request *req, const char *name, const char *value) { ne_buffer_concat(req->headers, name, ": ", value, EOL, NULL); } void ne_print_request_header(ne_request *req, const char *name, const char *format, ...) { va_list params; char buf[NE_BUFSIZ]; va_start(params, format); ne_vsnprintf(buf, sizeof buf, format, params); va_end(params); ne_buffer_concat(req->headers, name, ": ", buf, EOL, NULL); } /* Returns the value of the response header 'name', for which the hash * value is 'h', or NULL if the header is not found. */ static inline char *get_response_header_hv(ne_request *req, unsigned int h, const char *name) { struct field *f; for (f = req->response_headers[h]; f; f = f->next) if (strcmp(f->name, name) == 0) return f->value; return NULL; } const char *ne_get_response_header(ne_request *req, const char *name) { char *lcname = ne_strdup(name); unsigned int hash = hash_and_lower(lcname); char *value = get_response_header_hv(req, hash, lcname); ne_free(lcname); return value; } /* The return value of the iterator function is a pointer to the * struct field of the previously returned header. */ void *ne_response_header_iterate(ne_request *req, void *iterator, const char **name, const char **value) { struct field *f = iterator; unsigned int n; if (f == NULL) { n = 0; } else if ((f = f->next) == NULL) { n = req->current_index + 1; } if (f == NULL) { while (n < HH_HASHSIZE && req->response_headers[n] == NULL) n++; if (n == HH_HASHSIZE) return NULL; /* no more headers */ f = req->response_headers[n]; req->current_index = n; } *name = f->name; *value = f->value; return f; } /* Removes the response header 'name', which has hash value 'hash'. */ static void remove_response_header(ne_request *req, const char *name, unsigned int hash) { struct field **ptr = req->response_headers + hash; while (*ptr) { struct field *const f = *ptr; if (strcmp(f->name, name) == 0) { *ptr = f->next; ne_free(f->name); ne_free(f->value); ne_free(f); return; } ptr = &f->next; } } /* Free all stored response headers. */ static void free_response_headers(ne_request *req) { int n; for (n = 0; n < HH_HASHSIZE; n++) { struct field **ptr = req->response_headers + n; while (*ptr) { struct field *const f = *ptr; *ptr = f->next; ne_free(f->name); ne_free(f->value); ne_free(f); } } } void ne_add_response_body_reader(ne_request *req, ne_accept_response acpt, ne_block_reader rdr, void *userdata) { struct body_reader *new = ne_malloc(sizeof *new); new->accept_response = acpt; new->handler = rdr; new->userdata = userdata; new->next = req->body_readers; req->body_readers = new; } void ne_request_destroy(ne_request *req) { struct body_reader *rdr, *next_rdr; struct hook *hk, *next_hk; ne_free(req->uri); ne_free(req->method); for (rdr = req->body_readers; rdr != NULL; rdr = next_rdr) { next_rdr = rdr->next; ne_free(rdr); } free_response_headers(req); ne_buffer_destroy(req->headers); NE_DEBUG(NE_DBG_HTTP, "Running destroy hooks.\n"); for (hk = req->session->destroy_req_hooks; hk; hk = hk->next) { ne_destroy_req_fn fn = (ne_destroy_req_fn)hk->fn; fn(req, hk->userdata); } for (hk = req->private; hk; hk = next_hk) { next_hk = hk->next; ne_free(hk); } for (hk = req->pre_send_hooks; hk; hk = next_hk) { next_hk = hk->next; ne_free(hk); } if (req->status.reason_phrase) ne_free(req->status.reason_phrase); NE_DEBUG(NE_DBG_HTTP, "Request ends.\n"); ne_free(req); } /* Reads a block of the response into BUFFER, which is of size * *BUFLEN. Returns zero on success or non-zero on error. On * success, *BUFLEN is updated to be the number of bytes read into * BUFFER (which will be 0 to indicate the end of the repsonse). On * error, the connection is closed and the session error string is * set. */ static int read_response_block(ne_request *req, struct ne_response *resp, char *buffer, size_t *buflen) { ne_socket *const sock = req->session->socket; size_t willread; ssize_t readlen; switch (resp->mode) { case R_CHUNKED: /* Chunked transfer-encoding: chunk syntax is "SIZE CRLF CHUNK * CRLF SIZE CRLF CHUNK CRLF ..." followed by zero-length * chunk: "CHUNK CRLF 0 CRLF". resp.chunk.remain contains the * number of bytes left to read in the current chunk. */ if (resp->body.chunk.remain == 0) { unsigned long chunk_len; char *ptr; /* Read the chunk size line into a temporary buffer. */ SOCK_ERR(req, ne_sock_readline(sock, req->respbuf, sizeof req->respbuf), _("Could not read chunk size")); NE_DEBUG(NE_DBG_HTTP, "[chunk] < %s", req->respbuf); chunk_len = strtoul(req->respbuf, &ptr, 16); /* limit chunk size to <= UINT_MAX, so it will probably * fit in a size_t. */ if (ptr == req->respbuf || chunk_len == ULONG_MAX || chunk_len > UINT_MAX) { return aborted(req, _("Could not parse chunk size"), 0); } NE_DEBUG(NE_DBG_HTTP, "Got chunk size: %lu\n", chunk_len); resp->body.chunk.remain = chunk_len; } willread = resp->body.chunk.remain > *buflen ? *buflen : resp->body.chunk.remain; break; case R_CLENGTH: willread = resp->body.clen.remain > (off_t)*buflen ? *buflen : (size_t)resp->body.clen.remain; break; case R_TILLEOF: willread = *buflen; break; case R_NO_BODY: default: willread = 0; break; } if (willread == 0) { *buflen = 0; return 0; } NE_DEBUG(NE_DBG_HTTP, "Reading %" NE_FMT_SIZE_T " bytes of response body.\n", willread); readlen = ne_sock_read(sock, buffer, willread); /* EOF is only valid when response body is delimited by it. * Strictly, an SSL truncation should not be treated as an EOF in * any case, but SSL servers are just too buggy. */ if (resp->mode == R_TILLEOF && (readlen == NE_SOCK_CLOSED || readlen == NE_SOCK_TRUNC)) { NE_DEBUG(NE_DBG_HTTP, "Got EOF.\n"); req->can_persist = 0; readlen = 0; } else if (readlen < 0) { return aborted(req, _("Could not read response body"), readlen); } else { NE_DEBUG(NE_DBG_HTTP, "Got %" NE_FMT_SSIZE_T " bytes.\n", readlen); } /* safe to cast: readlen guaranteed to be >= 0 above */ *buflen = (size_t)readlen; NE_DEBUG(NE_DBG_HTTPBODY, "Read block (%" NE_FMT_SSIZE_T " bytes):\n[%.*s]\n", readlen, (int)readlen, buffer); if (resp->mode == R_CHUNKED) { resp->body.chunk.remain -= readlen; if (resp->body.chunk.remain == 0) { char crlfbuf[2]; /* If we've read a whole chunk, read a CRLF */ readlen = ne_sock_fullread(sock, crlfbuf, 2); if (readlen < 0) return aborted(req, _("Could not read chunk delimiter"), readlen); else if (crlfbuf[0] != '\r' || crlfbuf[1] != '\n') return aborted(req, _("Chunk delimiter was invalid"), 0); } } else if (resp->mode == R_CLENGTH) { resp->body.clen.remain -= readlen; } resp->progress += readlen; return NE_OK; } ssize_t ne_read_response_block(ne_request *req, char *buffer, size_t buflen) { struct body_reader *rdr; size_t readlen = buflen; struct ne_response *const resp = &req->resp; if (read_response_block(req, resp, buffer, &readlen)) return -1; if (req->session->progress_cb) { req->session->progress_cb(req->session->progress_ud, resp->progress, resp->mode==R_CLENGTH ? resp->body.clen.total:-1); } for (rdr = req->body_readers; rdr!=NULL; rdr=rdr->next) { if (rdr->use && rdr->handler(rdr->userdata, buffer, readlen) != 0) { ne_close_connection(req->session); return -1; } } return readlen; } /* Build the request string, returning the buffer. */ static ne_buffer *build_request(ne_request *req) { struct hook *hk; ne_buffer *buf = ne_buffer_create(); /* Add Request-Line and Host header: */ ne_buffer_concat(buf, req->method, " ", req->uri, " HTTP/1.1" EOL, "Host: ", req->session->server.hostport, EOL, NULL); /* Add custom headers: */ ne_buffer_append(buf, req->headers->data, ne_buffer_size(req->headers)); #define E100 "Expect: 100-continue" EOL if (req->use_expect100) ne_buffer_append(buf, E100, strlen(E100)); NE_DEBUG(NE_DBG_HTTP, "Running pre_send hooks\n"); for (hk = req->session->pre_send_hooks; hk!=NULL; hk = hk->next) { ne_pre_send_fn fn = (ne_pre_send_fn)hk->fn; fn(req, hk->userdata, buf); } for (hk = req->pre_send_hooks; hk!=NULL; hk = hk->next) { ne_pre_send_fn fn = (ne_pre_send_fn)hk->fn; fn(req, hk->userdata, buf); } ne_buffer_append(buf, "\r\n", 2); return buf; } #ifdef NE_DEBUGGING #define DEBUG_DUMP_REQUEST(x) dump_request(x) static void dump_request(const char *request) { if (ne_debug_mask & NE_DBG_HTTPPLAIN) { /* Display everything mode */ NE_DEBUG(NE_DBG_HTTP, "Sending request headers:\n%s", request); } else if (ne_debug_mask & NE_DBG_HTTP) { /* Blank out the Authorization paramaters */ char *reqdebug = ne_strdup(request), *pnt = reqdebug; while ((pnt = strstr(pnt, "Authorization: ")) != NULL) { for (pnt += 15; *pnt != '\r' && *pnt != '\0'; pnt++) { *pnt = 'x'; } } NE_DEBUG(NE_DBG_HTTP, "Sending request headers:\n%s", reqdebug); ne_free(reqdebug); } } #else #define DEBUG_DUMP_REQUEST(x) #endif /* DEBUGGING */ /* remove trailing EOL from 'buf', where strlen(buf) == *len. *len is * adjusted in accordance with any changes made to the string to * remain equal to strlen(buf). */ static inline void strip_eol(char *buf, ssize_t *len) { char *pnt = buf + *len - 1; while (pnt >= buf && (*pnt == '\r' || *pnt == '\n')) { *pnt-- = '\0'; (*len)--; } } /* Read and parse response status-line into 'status'. 'retry' is non-zero * if an NE_RETRY should be returned if an EOF is received. */ static int read_status_line(ne_request *req, ne_status *status, int retry) { char *buffer = req->respbuf; ssize_t ret; ret = ne_sock_readline(req->session->socket, buffer, sizeof req->respbuf); if (ret <= 0) { int aret = aborted(req, _("Could not read status line"), ret); return RETRY_RET(retry, ret, aret); } NE_DEBUG(NE_DBG_HTTP, "[status-line] < %s", buffer); strip_eol(buffer, &ret); if (status->reason_phrase) ne_free(status->reason_phrase); memset(status, 0, sizeof *status); if (ne_parse_statusline(buffer, status)) return aborted(req, _("Could not parse response status line."), 0); return 0; } /* Discard a set of message headers. */ static int discard_headers(ne_request *req) { do { SOCK_ERR(req, ne_sock_readline(req->session->socket, req->respbuf, sizeof req->respbuf), _("Could not read interim response headers")); NE_DEBUG(NE_DBG_HTTP, "[discard] < %s", req->respbuf); } while (strcmp(req->respbuf, EOL) != 0); return NE_OK; } /* Send the request, and read the response Status-Line. Returns: * NE_RETRY connection closed by server; persistent connection * timeout * NE_OK success * NE_* error * On NE_RETRY and NE_* responses, the connection will have been * closed already. */ static int send_request(ne_request *req, const ne_buffer *request) { ne_session *const sess = req->session; ne_status *const status = &req->status; int sentbody = 0; /* zero until body has been sent. */ int ret, retry; /* retry non-zero whilst the request should be retried */ ssize_t sret; /* Send the Request-Line and headers */ NE_DEBUG(NE_DBG_HTTP, "Sending request-line and headers:\n"); /* Open the connection if necessary */ ret = open_connection(req); if (ret) return ret; /* Allow retry if a persistent connection has been used. */ retry = sess->persisted; sret = ne_sock_fullwrite(req->session->socket, request->data, ne_buffer_size(request)); if (sret < 0) { int aret = aborted(req, _("Could not send request"), ret); return RETRY_RET(retry, sret, aret); } if (!req->use_expect100 && req->body_length > 0) { /* Send request body, if not using 100-continue. */ ret = send_request_body(req, retry); if (ret) { return ret; } } NE_DEBUG(NE_DBG_HTTP, "Request sent; retry is %d.\n", retry); /* Loop eating interim 1xx responses (RFC2616 says these MAY be * sent by the server, even if 100-continue is not used). */ while ((ret = read_status_line(req, status, retry)) == NE_OK && status->klass == 1) { NE_DEBUG(NE_DBG_HTTP, "Interim %d response.\n", status->code); retry = 0; /* successful read() => never retry now. */ /* Discard headers with the interim response. */ if ((ret = discard_headers(req)) != NE_OK) break; if (req->use_expect100 && (status->code == 100) && req->body_length > 0 && !sentbody) { /* Send the body after receiving the first 100 Continue */ if ((ret = send_request_body(req, 0)) != NE_OK) break; sentbody = 1; } } return ret; } /* Read a message header from sock into buf, which has size 'buflen'. * * Returns: * NE_RETRY: Success, read a header into buf. * NE_OK: End of headers reached. * NE_ERROR: Error (session error is set, connection closed). */ static int read_message_header(ne_request *req, char *buf, size_t buflen) { ssize_t n; ne_socket *sock = req->session->socket; n = ne_sock_readline(sock, buf, buflen); if (n <= 0) return aborted(req, _("Error reading response headers"), n); NE_DEBUG(NE_DBG_HTTP, "[hdr] %s", buf); strip_eol(buf, &n); if (n == 0) { NE_DEBUG(NE_DBG_HTTP, "End of headers.\n"); return NE_OK; } buf += n; buflen -= n; while (buflen > 0) { char ch; /* Collect any extra lines into buffer */ SOCK_ERR(req, ne_sock_peek(sock, &ch, 1), _("Error reading response headers")); if (ch != ' ' && ch != '\t') { /* No continuation of this header: stop reading. */ return NE_RETRY; } /* Otherwise, read the next line onto the end of 'buf'. */ n = ne_sock_readline(sock, buf, buflen); if (n <= 0) { return aborted(req, _("Error reading response headers"), n); } NE_DEBUG(NE_DBG_HTTP, "[cont] %s", buf); strip_eol(buf, &n); /* assert(buf[0] == ch), which implies len(buf) > 0. * Otherwise the TCP stack is lying, but we'll be paranoid. * This might be a \t, so replace it with a space to be * friendly to applications (2616 says we MAY do this). */ if (n) buf[0] = ' '; /* ready for the next header. */ buf += n; buflen -= n; } ne_set_error(req->session, _("Response header too long")); return NE_ERROR; } #define MAX_HEADER_LEN (8192) /* Add a respnose header field for the given request, using * precalculated hash value. */ static void add_response_header(ne_request *req, unsigned int hash, char *name, char *value) { struct field **nextf = &req->response_headers[hash]; size_t vlen = strlen(value); while (*nextf) { struct field *const f = *nextf; if (strcmp(f->name, name) == 0) { if (vlen + f->vlen < MAX_HEADER_LEN) { /* merge the header field */ f->value = ne_realloc(f->value, f->vlen + vlen + 3); memcpy(f->value + f->vlen, ", ", 2); memcpy(f->value + f->vlen + 2, value, vlen + 1); f->vlen += vlen + 2; } return; } nextf = &f->next; } (*nextf) = ne_malloc(sizeof **nextf); (*nextf)->name = ne_strdup(name); (*nextf)->value = ne_strdup(value); (*nextf)->vlen = vlen; (*nextf)->next = NULL; } /* Read response headers. Returns NE_* code, sets session error and * closes connection on error. */ static int read_response_headers(ne_request *req) { char hdr[MAX_HEADER_LEN]; int ret, count = 0; while ((ret = read_message_header(req, hdr, sizeof hdr)) == NE_RETRY && ++count < MAX_HEADER_FIELDS) { char *pnt; unsigned int hash = 0; /* Strip any trailing whitespace */ pnt = hdr + strlen(hdr) - 1; while (pnt > hdr && (*pnt == ' ' || *pnt == '\t')) *pnt-- = '\0'; /* Convert the header name to lower case and hash it. */ for (pnt = hdr; (*pnt != '\0' && *pnt != ':' && *pnt != ' ' && *pnt != '\t'); pnt++) { *pnt = tolower(*pnt); hash = HH_ITERATE(hash,*pnt); } /* Skip over any whitespace before the colon. */ while (*pnt == ' ' || *pnt == '\t') *pnt++ = '\0'; /* ignore header lines which lack a ':'. */ if (*pnt != ':') continue; /* NUL-terminate at the colon (when no whitespace before) */ *pnt++ = '\0'; /* Skip any whitespace after the colon... */ while (*pnt == ' ' || *pnt == '\t') pnt++; /* pnt now points to the header value. */ NE_DEBUG(NE_DBG_HTTP, "Header Name: [%s], Value: [%s]\n", hdr, pnt); add_response_header(req, hash, hdr, pnt); } if (count == MAX_HEADER_FIELDS) ret = aborted( req, _("Response exceeded maximum number of header fields."), 0); return ret; } /* Perform any necessary DNS lookup for the host given by *info; * return NE_ code. */ static int lookup_host(ne_session *sess, struct host_info *info) { if (sess->addrlist) return NE_OK; NE_DEBUG(NE_DBG_HTTP, "Doing DNS lookup on %s...\n", info->hostname); if (sess->notify_cb) sess->notify_cb(sess->notify_ud, ne_conn_namelookup, info->hostname); info->address = ne_addr_resolve(info->hostname, 0); if (ne_addr_result(info->address)) { char buf[256]; ne_set_error(sess, _("Could not resolve hostname `%s': %s"), info->hostname, ne_addr_error(info->address, buf, sizeof buf)); ne_addr_destroy(info->address); info->address = NULL; return NE_LOOKUP; } else { return NE_OK; } } int ne_begin_request(ne_request *req) { struct body_reader *rdr; struct host_info *host; ne_buffer *data; const ne_status *const st = &req->status; const char *value; int ret; /* Resolve hostname if necessary. */ host = req->session->use_proxy?&req->session->proxy:&req->session->server; if (host->address == NULL) { ret = lookup_host(req->session, host); if (ret) return ret; } /* Build the request string, and send it */ data = build_request(req); DEBUG_DUMP_REQUEST(data->data); ret = send_request(req, data); /* Retry this once after a persistent connection timeout. */ if (ret == NE_RETRY && !req->session->no_persist) { NE_DEBUG(NE_DBG_HTTP, "Persistent connection timed out, retrying.\n"); ret = send_request(req, data); } ne_buffer_destroy(data); if (ret != NE_OK) return ret == NE_RETRY ? NE_ERROR : ret; /* Determine whether server claims HTTP/1.1 compliance. */ req->session->is_http11 = (st->major_version == 1 && st->minor_version > 0) || st->major_version > 1; /* Persistent connections supported implicitly in HTTP/1.1 */ if (req->session->is_http11) req->can_persist = 1; ne_set_error(req->session, "%d %s", st->code, st->reason_phrase); /* Empty the response header hash, in case this request was * retried: */ free_response_headers(req); /* Read the headers */ ret = read_response_headers(req); if (ret) return ret; /* check the Connection header */ value = get_response_header_hv(req, HH_HV_CONNECTION, "connection"); if (value) { char *vcopy = ne_strdup(value), *ptr = vcopy; do { char *token = ne_shave(ne_token(&ptr, ','), " \t"); unsigned int hash = hash_and_lower(token); if (strcmp(token, "close") == 0) { req->can_persist = 0; } else if (strcmp(token, "keep-alive") == 0) { req->can_persist = 1; } else if (!req->session->is_http11 && strcmp(token, "connection")) { /* Strip the header per 2616§14.10, last para. Avoid * danger from "Connection: connection". */ remove_response_header(req, token, hash); } } while (ptr); ne_free(vcopy); } /* Decide which method determines the response message-length per * 2616§4.4 (multipart/byteranges is not supported): */ #ifdef NE_HAVE_SSL /* Special case for CONNECT handling: the response has no body, * and the connection can persist. */ if (req->session->in_connect && st->klass == 2) { req->resp.mode = R_NO_BODY; req->can_persist = 1; } else #endif /* HEAD requests and 204, 304 responses have no response body, * regardless of what headers are present. */ if (req->method_is_head || st->code == 204 || st->code == 304) { req->resp.mode = R_NO_BODY; } else if (get_response_header_hv(req, HH_HV_TRANSFER_ENCODING, "transfer-encoding")) { /* Treat *any* t-e header as implying a chunked response * regardless of value, per the "Protocol Compliance" * statement in the manual. */ req->resp.mode = R_CHUNKED; req->resp.body.chunk.remain = 0; } else if ((value = get_response_header_hv(req, HH_HV_CONTENT_LENGTH, "content-length")) != NULL) { ne_off_t len = ne_strtoff(value, NULL, 10); if (len != NE_OFFT_MAX && len >= 0) { req->resp.mode = R_CLENGTH; req->resp.body.clen.total = req->resp.body.clen.remain = len; } else { /* fail for an invalid content-length header. */ return aborted(req, _("Invalid Content-Length in response"), 0); } } else { req->resp.mode = R_TILLEOF; /* otherwise: read-till-eof mode */ } /* Prepare for reading the response entity-body. Call each of the * body readers and ask them whether they want to accept this * response or not. */ for (rdr = req->body_readers; rdr != NULL; rdr=rdr->next) { rdr->use = rdr->accept_response(rdr->userdata, req, st); } return NE_OK; } int ne_end_request(ne_request *req) { struct hook *hk; int ret; /* Read headers in chunked trailers */ if (req->resp.mode == R_CHUNKED) { ret = read_response_headers(req); if (ret) return ret; } else { ret = NE_OK; } NE_DEBUG(NE_DBG_HTTP, "Running post_send hooks\n"); for (hk = req->session->post_send_hooks; ret == NE_OK && hk != NULL; hk = hk->next) { ne_post_send_fn fn = (ne_post_send_fn)hk->fn; ret = fn(req, hk->userdata, &req->status); } /* Close the connection if persistent connections are disabled or * not supported by the server. */ if (req->session->no_persist || !req->can_persist) ne_close_connection(req->session); else req->session->persisted = 1; return ret; } int ne_read_response_to_fd(ne_request *req, int fd) { ssize_t len; while ((len = ne_read_response_block(req, req->respbuf, sizeof req->respbuf)) > 0) { const char *block = req->respbuf; do { ssize_t ret = write(fd, block, len); if (ret == -1 && errno == EINTR) { continue; } else if (ret < 0) { char err[200]; ne_strerror(errno, err, sizeof err); ne_set_error(ne_get_session(req), _("Could not write to file: %s"), err); return NE_ERROR; } else { len -= ret; block += ret; } } while (len > 0); } return len == 0 ? NE_OK : NE_ERROR; } int ne_discard_response(ne_request *req) { ssize_t len; do { len = ne_read_response_block(req, req->respbuf, sizeof req->respbuf); } while (len > 0); return len == 0 ? NE_OK : NE_ERROR; } int ne_request_dispatch(ne_request *req) { int ret; do { ret = ne_begin_request(req); if (ret == NE_OK) ret = ne_discard_response(req); if (ret == NE_OK) ret = ne_end_request(req); } while (ret == NE_RETRY); NE_DEBUG(NE_DBG_HTTP | NE_DBG_FLUSH, "Request ends, status %d class %dxx, error line:\n%s\n", req->status.code, req->status.klass, req->session->error); return ret; } const ne_status *ne_get_status(const ne_request *req) { return &req->status; } ne_session *ne_get_session(const ne_request *req) { return req->session; } #ifdef NE_HAVE_SSL /* Create a CONNECT tunnel through the proxy server. * Returns HTTP_* */ static int proxy_tunnel(ne_session *sess) { /* Hack up an HTTP CONNECT request... */ ne_request *req; int ret = NE_OK; char ruri[200]; /* Can't use server.hostport here; Request-URI must include `:port' */ ne_snprintf(ruri, sizeof ruri, "%s:%u", sess->server.hostname, sess->server.port); req = ne_request_create(sess, "CONNECT", ruri); sess->in_connect = 1; ret = ne_request_dispatch(req); sess->in_connect = 0; sess->persisted = 0; /* don't treat this is a persistent connection. */ if (ret != NE_OK || !sess->connected || req->status.klass != 2) { ne_set_error (sess, _("Could not create SSL connection through proxy server")); ret = NE_ERROR; } ne_request_destroy(req); return ret; } #endif /* Return the first resolved address for the given host. */ static const ne_inet_addr *resolve_first(ne_session *sess, struct host_info *host) { if (sess->addrlist) { sess->curaddr = 0; return sess->addrlist[0]; } else { return ne_addr_first(host->address); } } /* Return the next resolved address for the given host or NULL if * there are no more addresses. */ static const ne_inet_addr *resolve_next(ne_session *sess, struct host_info *host) { if (sess->addrlist) { if (sess->curaddr++ < sess->numaddrs) return sess->addrlist[sess->curaddr]; else return NULL; } else { return ne_addr_next(host->address); } } /* Make new TCP connection to server at 'host' of type 'name'. Note * that once a connection to a particular network address has * succeeded, that address will be used first for the next attempt to * connect. */ static int do_connect(ne_request *req, struct host_info *host, const char *err) { ne_session *const sess = req->session; int ret; if ((sess->socket = ne_sock_create()) == NULL) { ne_set_error(sess, _("Could not create socket")); return NE_ERROR; } if (host->current == NULL) host->current = resolve_first(sess, host); do { notify_status(sess, ne_conn_connecting, host->hostport); #ifdef NE_DEBUGGING if (ne_debug_mask & NE_DBG_HTTP) { char buf[150]; NE_DEBUG(NE_DBG_HTTP, "Connecting to %s\n", ne_iaddr_print(host->current, buf, sizeof buf)); } #endif ret = ne_sock_connect(sess->socket, host->current, host->port); } while (ret && /* try the next address... */ (host->current = resolve_next(sess, host)) != NULL); if (ret) { ne_set_error(sess, "%s: %s", err, ne_sock_error(sess->socket)); ne_sock_close(sess->socket); return NE_CONNECT; } notify_status(sess, ne_conn_connected, host->hostport); if (sess->rdtimeout) ne_sock_read_timeout(sess->socket, sess->rdtimeout); sess->connected = 1; /* clear persistent connection flag. */ sess->persisted = 0; return NE_OK; } static int open_connection(ne_request *req) { ne_session *sess = req->session; int ret; if (sess->connected) return NE_OK; if (!sess->use_proxy) ret = do_connect(req, &sess->server, _("Could not connect to server")); else ret = do_connect(req, &sess->proxy, _("Could not connect to proxy server")); if (ret != NE_OK) return ret; #ifdef NE_HAVE_SSL /* Negotiate SSL layer if required. */ if (sess->use_ssl && !sess->in_connect) { /* CONNECT tunnel */ if (req->session->use_proxy) ret = proxy_tunnel(sess); if (ret == NE_OK) { ret = ne__negotiate_ssl(req); if (ret != NE_OK) ne_close_connection(sess); } } #endif return ret; } gnome-vfs-2.24.4/imported/neon/ne_ssl.h0000644000175000001440000001550011334251016014634 00000000000000/* SSL/TLS abstraction layer for neon Copyright (C) 2003-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ /* ne_ssl.h defines an interface for loading and accessing the * properties of SSL certificates. */ #ifndef NE_SSL_H #define NE_SSL_H 1 #include "ne_defs.h" BEGIN_NEON_DECLS /* A "distinguished name"; a unique name for some entity. */ typedef struct ne_ssl_dname_s ne_ssl_dname; /* Returns a single-line string representation of a distinguished * name, intended to be human-readable (e.g. "Acme Ltd., Norfolk, * GB"). Return value is a UTF-8-encoded malloc-allocated string and * must be free'd by the caller. */ char *ne_ssl_readable_dname(const ne_ssl_dname *dn); /* Returns zero if 'dn1' and 'dn2' refer to same name, or non-zero if * they are different. */ int ne_ssl_dname_cmp(const ne_ssl_dname *dn1, const ne_ssl_dname *dn2); /* An SSL certificate. */ typedef struct ne_ssl_certificate_s ne_ssl_certificate; /* Read a certificate from a file in PEM format; returns NULL if the * certificate could not be parsed. */ ne_ssl_certificate *ne_ssl_cert_read(const char *filename); /* Write a certificate to a file in PEM format; returns non-zero if * the certificate could not be written. */ int ne_ssl_cert_write(const ne_ssl_certificate *cert, const char *filename); /* Export a certificate to a base64-encoded, NUL-terminated string. * The returned string is malloc-allocated and must be free()d by the * caller. */ char *ne_ssl_cert_export(const ne_ssl_certificate *cert); /* Import a certificate from a base64-encoded string as returned by * ne_ssl_cert_export(). Returns a certificate object or NULL if * 'data' was not valid. */ ne_ssl_certificate *ne_ssl_cert_import(const char *data); /* Returns the identity of the certificate, or NULL if none is given. * For a server certificate this will be the hostname of the server to * whom the cert was issued. String returned is UTF-8-encoded. */ const char *ne_ssl_cert_identity(const ne_ssl_certificate *cert); /* Return the certificate of the entity which signed certificate * 'cert'. Returns NULL if 'cert' is self-signed or the issuer * certificate is not available. */ const ne_ssl_certificate *ne_ssl_cert_signedby(const ne_ssl_certificate *cert); /* Returns the distinguished name of the certificate issuer. */ const ne_ssl_dname *ne_ssl_cert_issuer(const ne_ssl_certificate *cert); /* Returns the distinguished name of the certificate subject. */ const ne_ssl_dname *ne_ssl_cert_subject(const ne_ssl_certificate *cert); #define NE_SSL_DIGESTLEN (60) /* Calculate the certificate digest ("fingerprint") and format it as a * NUL-terminated hex string in 'digest', of the form "aa:bb:...:ff". * Returns zero on success or non-zero if there was an internal error * whilst calculating the digest. 'digest' must be at least * NE_SSL_DIGESTLEN bytes in length. */ int ne_ssl_cert_digest(const ne_ssl_certificate *cert, char *digest); #define NE_SSL_VDATELEN (30) /* Copy the validity dates into buffers 'from' and 'until' as * NUL-terminated human-readable strings. The buffers must be at * least NE_SSL_VDATELEN bytes in length. */ void ne_ssl_cert_validity(const ne_ssl_certificate *cert, char *from, char *until); /* Returns zero if 'c1' and 'c2' refer to the same certificate, or * non-zero otherwise. */ int ne_ssl_cert_cmp(const ne_ssl_certificate *c1, const ne_ssl_certificate *c2); /* Deallocate memory associated with certificate. */ void ne_ssl_cert_free(ne_ssl_certificate *cert); /* A client certificate (and private key). */ typedef struct ne_ssl_client_cert_s ne_ssl_client_cert; /* Read a client certificate and private key from a PKCS12 file; * returns NULL if the file could not be parsed. If the client cert * is encrypted, it must be decrypted before use. */ ne_ssl_client_cert *ne_ssl_clicert_read(const char *filename); /* Returns the "friendly name" given for the client cert, or NULL if * none given. This can be called before or after the client cert has * been decrypted. Returns a NUL-terminated, UTF-8-encoded string. */ const char *ne_ssl_clicert_name(const ne_ssl_client_cert *ccert); /* Returns non-zero if client cert is encrypted. */ int ne_ssl_clicert_encrypted(const ne_ssl_client_cert *ccert); /* Decrypt the encrypted client cert using given password. Returns * non-zero on failure, in which case, the function can be called * again with a different password. For a ccert on which _encrypted() * returns 0, calling _decrypt results in undefined behaviour. */ int ne_ssl_clicert_decrypt(ne_ssl_client_cert *ccert, const char *password); /* Return the actual certificate part of the client certificate (never * returns NULL). */ const ne_ssl_certificate *ne_ssl_clicert_owner(const ne_ssl_client_cert *ccert); /* Deallocate memory associated with a client certificate. */ void ne_ssl_clicert_free(ne_ssl_client_cert *ccert); /* SSL context object. The interfaces to manipulate an SSL context * are only needed when interfacing directly with ne_socket.h. */ typedef struct ne_ssl_context_s ne_ssl_context; /* Context creation modes: */ #define NE_SSL_CTX_CLIENT (0) /* client context */ #define NE_SSL_CTX_SERVER (1) /* default server context */ #define NE_SSL_CTX_SERVERv2 (2) /* SSLv2-specific server context */ /* Create an SSL context. */ ne_ssl_context *ne_ssl_context_create(int mode); /* Client mode: trust the given certificate 'cert' in context 'ctx'. */ void ne_ssl_context_trustcert(ne_ssl_context *ctx, const ne_ssl_certificate *cert); /* Server mode: use given cert and key (filenames to PEM certificates). */ int ne_ssl_context_keypair(ne_ssl_context *ctx, const char *cert, const char *key); /* Server mode: set client cert verification options: required is non-zero if * a client cert is required, if ca_names is non-NULL it is a filename containing * a set of PEM certs from which CA names are sent in the ccert request. */ int ne_ssl_context_set_verify(ne_ssl_context *ctx, int required, const char *ca_names, const char *verify_cas); /* Destroy an SSL context. */ void ne_ssl_context_destroy(ne_ssl_context *ctx); END_NEON_DECLS #endif gnome-vfs-2.24.4/imported/neon/ne_uri.h0000644000175000001440000000610611334251016014634 00000000000000/* URI manipulation routines. Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_URI_H #define NE_URI_H #include "ne_defs.h" BEGIN_NEON_DECLS /* Return a copy of a path string with anything other than * "unreserved" and the forward-slash character percent-encoded * according to the URI encoding rules. Returns a malloc-allocated * string and never NULL. */ char *ne_path_escape(const char *path); /* Return a decoded copy of a percent-encoded path string. Returns * malloc-allocated path on success, or NULL if the string contained * any syntactically invalid percent-encoding sequences. */ char *ne_path_unescape(const char *epath); /* Returns malloc-allocated parent of path, or NULL if path has no * parent (such as "/"). */ char *ne_path_parent(const char *path); /* Returns strcmp-like value giving comparison between p1 and p2, * ignoring trailing-slashes. */ int ne_path_compare(const char *p1, const char *p2); /* Returns non-zero if child is a child of parent */ int ne_path_childof(const char *parent, const char *child); /* Returns non-zero if path has a trailing slash character */ int ne_path_has_trailing_slash(const char *path); /* Return the default port for the given scheme, or 0 if none is * known. */ unsigned int ne_uri_defaultport(const char *scheme); typedef struct { char *scheme; char *host; unsigned int port; char *path; char *authinfo; } ne_uri; /* Parse absoluteURI 'uri' and place parsed segments in *parsed. * Returns zero on success, non-zero on parse error. On successful or * error return, all the 'char *' fields of *parsed are either set to * NULL, or point to malloc-allocated NUL-terminated strings. * ne_uri_free can be used to free the structure after use.*/ int ne_uri_parse(const char *uri, ne_uri *parsed); /* Turns a URI structure back into a string. String is * malloc-allocated, and must be freed by the caller. */ char *ne_uri_unparse(const ne_uri *uri); /* Compares URIs u1 and u2, returns non-zero if they are found to be * non-equal. The sign of the return value is <0 if 'u1' is less than * 'u2', or >0 if 'u2' is greater than 'u1'. */ int ne_uri_cmp(const ne_uri *u1, const ne_uri *u2); /* Frees any non-NULL fields of parsed URI structure *parsed. All * fields are then zero-initialized. */ void ne_uri_free(ne_uri *parsed); END_NEON_DECLS #endif /* NE_URI_H */ gnome-vfs-2.24.4/imported/neon/COPYING.LIB0000644000175000001440000006130311334251016014642 00000000000000 GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! gnome-vfs-2.24.4/imported/neon/ne_string.h0000644000175000001440000001176111334251016015346 00000000000000/* String utility functions Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef NE_STRING_H #define NE_STRING_H #include "ne_defs.h" #include "ne_alloc.h" #include BEGIN_NEON_DECLS /* ne_token and ne_qtoken return the next token in *str between *str * and separator character 'sep' or the NUL terminator. ne_qtoken * skips over any parts quoted using a pair of any one of the * characters given in 'quotes'. After returning, *str will point to * the next character after the separator, or NULL if no more * separator characters were found. * * ne_qtoken may return NULL if unterminated quotes are found. */ char *ne_token(char **str, char sep); char *ne_qtoken(char **str, char sep, const char *quotes); /* Return portion of 'str' with any characters in 'whitespace' shaved * off the beginning and end. Modifies str. */ char *ne_shave(char *str, const char *whitespace); /* Cleanse 'str' of non-printable characters. 'str' is modified * in-place, and returned. */ char *ne_strclean(char *str); /* A base64 encoder: converts 'len' bytes of 'text' to base64. * Returns malloc-allocated buffer; caller must free(). */ char *ne_base64(const unsigned char *text, size_t len); /* Base64 decoder; decodes NUL-terminated base64-encoded string * 'data', places malloc-allocated raw data in '*out', returns length, * or zero on decode error (in which case *out is undefined). */ size_t ne_unbase64(const char *data, unsigned char **out); /* String buffer handling. (Strings are zero-terminated still). A * string buffer ne_buffer * which grows dynamically with the * string. */ typedef struct { char *data; /* contents: null-terminated string. */ size_t used; /* used bytes in buffer */ size_t length; /* length of buffer */ } ne_buffer; /* Returns size of data in buffer, equiv to strlen(ne_buffer_data(buf)) */ #define ne_buffer_size(buf) ((buf)->used - 1) /* Concatenate all given strings onto the end of the buffer. The * strings must all be NUL-terminated, and MUST be followed by a NULL * argument marking the end of the list. */ void ne_buffer_concat(ne_buffer *buf, ...); /* Create a new ne_buffer. */ ne_buffer *ne_buffer_create(void); /* Create a new ne_buffer of given minimum size. */ ne_buffer *ne_buffer_ncreate(size_t size); /* Destroys (deallocates) a buffer */ void ne_buffer_destroy(ne_buffer *buf); /* Append a NUL-terminated string 'str' to buf. */ void ne_buffer_zappend(ne_buffer *buf, const char *str); /* Append 'len' bytes of 'data' to buf. 'data' does not need to be * NUL-terminated. The resultant string will have a NUL-terminator, * either way. */ void ne_buffer_append(ne_buffer *buf, const char *data, size_t len); /* Append a literal constant string 'str' to buffer 'buf'. */ #define ne_buffer_czappend(buf, str) \ ne_buffer_append((buf), (str), sizeof((str)) - 1) /* Empties the contents of buf; makes the buffer zero-length. */ void ne_buffer_clear(ne_buffer *buf); /* Grows the ne_buffer to a minimum size. */ void ne_buffer_grow(ne_buffer *buf, size_t size); void ne_buffer_altered(ne_buffer *buf); /* Destroys a buffer, WITHOUT freeing the data, and returns the * data. */ char *ne_buffer_finish(ne_buffer *buf); /* Thread-safe strerror() wrapper; place system error for errno value * 'errnum' in 'buffer', which is of length 'buflen'. Returns * 'buffer'. */ char *ne_strerror(int errnum, char *buffer, size_t buflen); /* ne_strnzcpy copies at most 'n'-1 bytes of 'src' to 'dest', and * ensures that 'dest' is subsequently NUL-terminated. */ #define ne_strnzcpy(dest, src, n) do { \ strncpy(dest, src, n-1); dest[n-1] = '\0'; } while (0) /* Return malloc-allocated concatenation of all NUL-terminated string * arguments, up to a terminating NULL. */ char *ne_concat(const char *str, ...); #define NE_ASC2HEX(x) (((x) <= '9') ? ((x) - '0') : (tolower((x)) + 10 - 'a')) #define NE_HEX2ASC(x) ((char) ((x) > 9 ? ((x) - 10 + 'a') : ((x) + '0'))) /* Wrapper for snprintf: always NUL-terminates returned buffer, and * returns strlen(str). */ size_t ne_snprintf(char *str, size_t size, const char *fmt, ...) ne_attribute((format(printf, 3, 4))); /* Wrapper for vsnprintf. */ size_t ne_vsnprintf(char *str, size_t size, const char *fmt, va_list ap) ne_attribute((format(printf, 3, 0))); END_NEON_DECLS #endif /* NE_STRING_H */ gnome-vfs-2.24.4/imported/neon/ne_string.c0000644000175000001440000002203211334251016015332 00000000000000/* String utility functions Copyright (C) 1999-2004, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #include #include /* for isprint() etc in ne_strclean() */ #include "ne_alloc.h" #include "ne_string.h" char *ne_token(char **str, char separator) { char *ret = *str, *pnt = strchr(*str, separator); if (pnt) { *pnt = '\0'; *str = pnt + 1; } else { /* no separator found: return end of string. */ *str = NULL; } return ret; } char *ne_qtoken(char **str, char separator, const char *quotes) { char *pnt, *ret = NULL; for (pnt = *str; *pnt != '\0'; pnt++) { char *quot = strchr(quotes, *pnt); if (quot) { char *qclose = strchr(pnt+1, *quot); if (!qclose) { /* no closing quote: invalid string. */ return NULL; } pnt = qclose; } else if (*pnt == separator) { /* found end of token. */ *pnt = '\0'; ret = *str; *str = pnt + 1; return ret; } } /* no separator found: return end of string. */ ret = *str; *str = NULL; return ret; } char *ne_shave(char *str, const char *whitespace) { char *pnt, *ret = str; while (*ret != '\0' && strchr(whitespace, *ret) != NULL) { ret++; } /* pnt points at the NUL terminator. */ pnt = &ret[strlen(ret)]; while (pnt > ret && strchr(whitespace, *(pnt-1)) != NULL) { pnt--; } *pnt = '\0'; return ret; } void ne_buffer_clear(ne_buffer *buf) { memset(buf->data, 0, buf->length); buf->used = 1; } /* Grows for given size, returns 0 on success, -1 on error. */ void ne_buffer_grow(ne_buffer *buf, size_t newsize) { #define NE_BUFFER_GROWTH 512 if (newsize > buf->length) { /* If it's not big enough already... */ buf->length = ((newsize / NE_BUFFER_GROWTH) + 1) * NE_BUFFER_GROWTH; /* Reallocate bigger buffer */ buf->data = ne_realloc(buf->data, buf->length); } } static size_t count_concat(va_list *ap) { size_t total = 0; char *next; while ((next = va_arg(*ap, char *)) != NULL) total += strlen(next); return total; } static void do_concat(char *str, va_list *ap) { char *next; while ((next = va_arg(*ap, char *)) != NULL) { #ifdef HAVE_STPCPY str = stpcpy(str, next); #else size_t len = strlen(next); memcpy(str, next, len); str += len; #endif } } void ne_buffer_concat(ne_buffer *buf, ...) { va_list ap; ssize_t total; va_start(ap, buf); total = buf->used + count_concat(&ap); va_end(ap); /* Grow the buffer */ ne_buffer_grow(buf, total); va_start(ap, buf); do_concat(buf->data + buf->used - 1, &ap); va_end(ap); buf->used = total; buf->data[total - 1] = '\0'; } char *ne_concat(const char *str, ...) { va_list ap; size_t total, slen = strlen(str); char *ret; va_start(ap, str); total = slen + count_concat(&ap); va_end(ap); ret = memcpy(ne_malloc(total + 1), str, slen); va_start(ap, str); do_concat(ret + slen, &ap); va_end(ap); ret[total] = '\0'; return ret; } /* Append zero-terminated string... returns 0 on success or -1 on * realloc failure. */ void ne_buffer_zappend(ne_buffer *buf, const char *str) { ne_buffer_append(buf, str, strlen(str)); } void ne_buffer_append(ne_buffer *buf, const char *data, size_t len) { ne_buffer_grow(buf, buf->used + len); memcpy(buf->data + buf->used - 1, data, len); buf->used += len; buf->data[buf->used - 1] = '\0'; } ne_buffer *ne_buffer_create(void) { return ne_buffer_ncreate(512); } ne_buffer *ne_buffer_ncreate(size_t s) { ne_buffer *buf = ne_malloc(sizeof(*buf)); buf->data = ne_malloc(s); buf->data[0] = '\0'; buf->length = s; buf->used = 1; return buf; } void ne_buffer_destroy(ne_buffer *buf) { ne_free(buf->data); ne_free(buf); } char *ne_buffer_finish(ne_buffer *buf) { char *ret = buf->data; ne_free(buf); return ret; } void ne_buffer_altered(ne_buffer *buf) { buf->used = strlen(buf->data) + 1; } static const char b64_alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789+/="; char *ne_base64(const unsigned char *text, size_t inlen) { /* The tricky thing about this is doing the padding at the end, * doing the bit manipulation requires a bit of concentration only */ char *buffer, *point; size_t outlen; /* Use 'buffer' to store the output. Work out how big it should be... * This must be a multiple of 4 bytes */ outlen = (inlen*4)/3; if ((inlen % 3) > 0) /* got to pad */ outlen += 4 - (inlen % 3); buffer = ne_malloc(outlen + 1); /* +1 for the \0 */ /* now do the main stage of conversion, 3 bytes at a time, * leave the trailing bytes (if there are any) for later */ for (point=buffer; inlen>=3; inlen-=3, text+=3) { *(point++) = b64_alphabet[ (*text)>>2 ]; *(point++) = b64_alphabet[ ((*text)<<4 & 0x30) | (*(text+1))>>4 ]; *(point++) = b64_alphabet[ ((*(text+1))<<2 & 0x3c) | (*(text+2))>>6 ]; *(point++) = b64_alphabet[ (*(text+2)) & 0x3f ]; } /* Now deal with the trailing bytes */ if (inlen > 0) { /* We always have one trailing byte */ *(point++) = b64_alphabet[ (*text)>>2 ]; *(point++) = b64_alphabet[ (((*text)<<4 & 0x30) | (inlen==2?(*(text+1))>>4:0)) ]; *(point++) = (inlen==1?'=':b64_alphabet[ (*(text+1))<<2 & 0x3c ]); *(point++) = '='; } /* Null-terminate */ *point = '\0'; return buffer; } /* VALID_B64: fail if 'ch' is not a valid base64 character */ #define VALID_B64(ch) (((ch) >= 'A' && (ch) <= 'Z') || \ ((ch) >= 'a' && (ch) <= 'z') || \ ((ch) >= '0' && (ch) <= '9') || \ (ch) == '/' || (ch) == '+' || (ch) == '=') /* DECODE_B64: decodes a valid base64 character. */ #define DECODE_B64(ch) ((ch) >= 'a' ? ((ch) + 26 - 'a') : \ ((ch) >= 'A' ? ((ch) - 'A') : \ ((ch) >= '0' ? ((ch) + 52 - '0') : \ ((ch) == '+' ? 62 : 63)))) size_t ne_unbase64(const char *data, unsigned char **out) { size_t inlen = strlen(data); unsigned char *outp; const unsigned char *in; if (inlen == 0 || (inlen % 4) != 0) return 0; outp = *out = ne_malloc(inlen * 3 / 4); for (in = (const unsigned char *)data; *in; in += 4) { unsigned int tmp; if (!VALID_B64(in[0]) || !VALID_B64(in[1]) || !VALID_B64(in[2]) || !VALID_B64(in[3]) || in[0] == '=' || in[1] == '=' || (in[2] == '=' && in[3] != '=')) { ne_free(*out); return 0; } tmp = (DECODE_B64(in[0]) & 0x3f) << 18 | (DECODE_B64(in[1]) & 0x3f) << 12; *outp++ = (tmp >> 16) & 0xff; if (in[2] != '=') { tmp |= (DECODE_B64(in[2]) & 0x3f) << 6; *outp++ = (tmp >> 8) & 0xff; if (in[3] != '=') { tmp |= DECODE_B64(in[3]) & 0x3f; *outp++ = tmp & 0xff; } } } return outp - *out; } char *ne_strclean(char *str) { unsigned char *pnt; for (pnt = str; *pnt; pnt++) if (iscntrl(*pnt) || !isprint(*pnt)) *pnt = ' '; return str; } char *ne_strerror(int errnum, char *buf, size_t buflen) { #ifdef HAVE_STRERROR_R #ifdef STRERROR_R_CHAR_P /* glibc-style strerror_r which may-or-may-not use provided buffer. */ char *ret = strerror_r(errnum, buf, buflen); if (ret != buf) ne_strnzcpy(buf, ret, buflen); #else /* POSIX-style strerror_r: */ strerror_r(errnum, buf, buflen); #endif #else /* no strerror_r: */ ne_strnzcpy(buf, strerror(errnum), buflen); #endif return buf; } /* Wrapper for ne_snprintf. */ size_t ne_snprintf(char *str, size_t size, const char *fmt, ...) { va_list ap; va_start(ap, fmt); #ifdef HAVE_TRIO trio_vsnprintf(str, size, fmt, ap); #else vsnprintf(str, size, fmt, ap); #endif va_end(ap); str[size-1] = '\0'; return strlen(str); } /* Wrapper for ne_vsnprintf. */ size_t ne_vsnprintf(char *str, size_t size, const char *fmt, va_list ap) { #ifdef HAVE_TRIO trio_vsnprintf(str, size, fmt, ap); #else vsnprintf(str, size, fmt, ap); #endif str[size-1] = '\0'; return strlen(str); } gnome-vfs-2.24.4/imported/neon/ne_uri.c0000644000175000001440000002126311334251016014630 00000000000000/* URI manipulation routines. Copyright (C) 1999-2005, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #include "config.h" #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_STRINGS_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #include #include #include "ne_string.h" /* for ne_buffer */ #include "ne_alloc.h" #include "ne_uri.h" char *ne_path_parent(const char *uri) { size_t len = strlen(uri); const char *pnt = uri + len - 1; /* skip trailing slash (parent of "/foo/" is "/") */ if (pnt >= uri && *pnt == '/') pnt--; /* find previous slash */ while (pnt > uri && *pnt != '/') pnt--; if (pnt < uri || (pnt == uri && *pnt != '/')) return NULL; return ne_strndup(uri, pnt - uri + 1); } int ne_path_has_trailing_slash(const char *uri) { size_t len = strlen(uri); return ((len > 0) && (uri[len-1] == '/')); } unsigned int ne_uri_defaultport(const char *scheme) { /* RFC2616/3.2.3 says use case-insensitive comparisons here. */ if (strcasecmp(scheme, "http") == 0) return 80; else if (strcasecmp(scheme, "https") == 0) return 443; else return 0; } /* TODO: Also, maybe stop malloc'ing here, take a "char *" uri, modify * it in-place, and have fields point inside passed uri. More work * for the caller then though. */ /* TODO: not a proper URI parser */ int ne_uri_parse(const char *uri, ne_uri *parsed) { const char *pnt, *slash, *colon, *atsign, *openbk; parsed->port = 0; parsed->host = NULL; parsed->path = NULL; parsed->scheme = NULL; parsed->authinfo = NULL; if (uri[0] == '\0') { return -1; } pnt = strstr(uri, "://"); if (pnt) { parsed->scheme = ne_strndup(uri, pnt - uri); pnt += 3; /* start of hostport segment */ } else { pnt = uri; } atsign = strchr(pnt, '@'); slash = strchr(pnt, '/'); openbk = strchr(pnt, '['); /* Check for an authinfo segment in the hostport segment. */ if (atsign != NULL && (slash == NULL || atsign < slash)) { parsed->authinfo = ne_strndup(pnt, atsign - pnt); pnt = atsign + 1; } if (openbk && (!slash || openbk < slash)) { const char *closebk = strchr(openbk, ']'); if (closebk == NULL) return -1; colon = strchr(closebk + 1, ':'); } else { colon = strchr(pnt, ':'); } if (slash == NULL) { parsed->path = ne_strdup("/"); if (colon == NULL) { parsed->host = ne_strdup(pnt); } else { parsed->port = atoi(colon+1); parsed->host = ne_strndup(pnt, colon - pnt); } } else { if (colon == NULL || colon > slash) { /* No port segment */ if (slash != uri) { parsed->host = ne_strndup(pnt, slash - pnt); } else { /* No hostname segment. */ } } else { /* Port segment */ parsed->port = atoi(colon + 1); parsed->host = ne_strndup(pnt, colon - pnt); } parsed->path = ne_strdup(slash); } return 0; } void ne_uri_free(ne_uri *u) { if (u->host) ne_free(u->host); if (u->path) ne_free(u->path); if (u->scheme) ne_free(u->scheme); if (u->authinfo) ne_free(u->authinfo); memset(u, 0, sizeof *u); } char *ne_path_unescape(const char *uri) { const char *pnt; char *ret, *retpos, buf[5] = { "0x00\0" }; retpos = ret = ne_malloc(strlen(uri) + 1); for (pnt = uri; *pnt != '\0'; pnt++) { if (*pnt == '%') { if (!isxdigit((unsigned char) pnt[1]) || !isxdigit((unsigned char) pnt[2])) { /* Invalid URI */ ne_free(ret); return NULL; } buf[2] = *++pnt; buf[3] = *++pnt; /* bit faster than memcpy */ *retpos++ = (char)strtol(buf, NULL, 16); } else { *retpos++ = *pnt; } } *retpos = '\0'; return ret; } /* ABNF definitions derived from RFC3986, except with "/" removed from * gen-delims since it's special: */ #define GD (1) /* gen-delims = ":" / "?" / "#" / "[" / "]" / "@" */ #define SD (1) /* sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" */ #define SL (0) /* forward-slash = "/" */ #define UN (0) /* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" */ #define OT (1) /* others */ /* Lookup table for percent-encoding logic: value is non-zero if * character should be percent-encoded. */ static const unsigned char uri_chars[128] = { /* 0xXX x0 x2 x4 x6 x8 xA xC xE */ /* 0x */ OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, /* 1x */ OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, OT, /* 2x */ OT, SD, OT, GD, SD, OT, SD, SD, SD, SD, SD, SD, SD, UN, UN, SL, /* 3x */ UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, GD, SD, OT, SD, OT, GD, /* 4x */ GD, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, /* 5x */ UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, GD, OT, GD, OT, OT, /* 6x */ OT, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, /* 7x */ UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, UN, OT, OT, OT, UN, OT }; #undef SD #undef GD #undef SL #undef UN #undef OT /* CH must be an unsigned char; evaluates to 1 if CH should be * percent-encoded. */ #define path_escape_ch(ch) ((ch) > 127 || uri_chars[(ch)]) char *ne_path_escape(const char *path) { const unsigned char *pnt; char *ret, *p; size_t count = 0; for (pnt = (const unsigned char *)path; *pnt != '\0'; pnt++) { count += path_escape_ch(*pnt); } if (count == 0) { return ne_strdup(path); } p = ret = ne_malloc(strlen(path) + 2 * count + 1); for (pnt = (const unsigned char *)path; *pnt != '\0'; pnt++) { if (path_escape_ch(*pnt)) { /* Escape it - % */ sprintf(p, "%%%02x", (unsigned char) *pnt); p += 3; } else { *p++ = *pnt; } } *p = '\0'; return ret; } #undef path_escape_ch #define CASECMP(field) do { \ n = strcasecmp(u1->field, u2->field); if (n) return n; } while(0) #define CMP(field) do { \ n = strcmp(u1->field, u2->field); if (n) return n; } while(0) /* As specified by RFC 2616, section 3.2.3. */ int ne_uri_cmp(const ne_uri *u1, const ne_uri *u2) { int n; if (u1->path[0] == '\0' && strcmp(u2->path, "/") == 0) return 0; if (u2->path[0] == '\0' && strcmp(u1->path, "/") == 0) return 0; CMP(path); CASECMP(host); CASECMP(scheme); if (u1->port > u2->port) return 1; else if (u1->port < u2->port) return -1; return 0; } #undef CMP #undef CASECMP #ifndef WIN32 #undef min #define min(a,b) ((a)<(b)?(a):(b)) #endif /* TODO: implement properly */ int ne_path_compare(const char *a, const char *b) { int ret = strcasecmp(a, b); if (ret) { /* This logic says: "If the lengths of the two URIs differ by * exactly one, and the LONGER of the two URIs has a trailing * slash and the SHORTER one DOESN'T, then..." */ int traila = ne_path_has_trailing_slash(a), trailb = ne_path_has_trailing_slash(b), lena = strlen(a), lenb = strlen(b); if (traila != trailb && abs(lena - lenb) == 1 && ((traila && lena > lenb) || (trailb && lenb > lena))) { /* Compare them, ignoring the trailing slash on the longer * URI */ if (strncasecmp(a, b, min(lena, lenb)) == 0) ret = 0; } } return ret; } char *ne_uri_unparse(const ne_uri *uri) { ne_buffer *buf = ne_buffer_create(); ne_buffer_concat(buf, uri->scheme, "://", uri->host, NULL); if (uri->port > 0 && ne_uri_defaultport(uri->scheme) != uri->port) { char str[20]; ne_snprintf(str, 20, ":%d", uri->port); ne_buffer_zappend(buf, str); } ne_buffer_zappend(buf, uri->path); return ne_buffer_finish(buf); } /* Give it a path segment, it returns non-zero if child is * a child of parent. */ int ne_path_childof(const char *parent, const char *child) { char *root = ne_strdup(child); int ret; if (strlen(parent) >= strlen(child)) { ret = 0; } else { /* root is the first of child, equal to length of parent */ root[strlen(parent)] = '\0'; ret = (ne_path_compare(parent, root) == 0); } ne_free(root); return ret; } gnome-vfs-2.24.4/imported/neon/ne_dates.h0000644000175000001440000000314311334251016015133 00000000000000/* Date manipulation routines Copyright (C) 1999-2002, Joe Orton 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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 */ #ifndef DATES_H #define DATES_H #include #include "ne_defs.h" BEGIN_NEON_DECLS /* Date manipulation routines as per RFC1123 and RFC1036 */ /* Return current date/time in RFC1123 format */ char *ne_rfc1123_date(time_t anytime); /* Returns time from date/time using the subset of the ISO8601 format * referenced in RFC2518 (e.g as used in the creationdate property in * the DAV: namespace). */ time_t ne_iso8601_parse(const char *date); /* Returns time from date/time in RFC1123 format */ time_t ne_rfc1123_parse(const char *date); time_t ne_rfc1036_parse(const char *date); /* Parses asctime date string */ time_t ne_asctime_parse(const char *date); /* Parse an HTTP-date as per RFC2616 */ time_t ne_httpdate_parse(const char *date); END_NEON_DECLS #endif /* DATES_H */ gnome-vfs-2.24.4/imported/fnmatch/0000755000175000001440000000000011450333532013743 500000000000000gnome-vfs-2.24.4/imported/fnmatch/fnmatch.c0000644000175000001440000001346411334251016015454 00000000000000/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* Stripped-down UTF-8 fnmatch() lifted from GTK+ */ #include #include static gunichar get_char (const char **str) { gunichar c = g_utf8_get_char (*str); *str = g_utf8_next_char (*str); #ifdef G_PLATFORM_WIN32 c = g_unichar_tolower (c); #endif return c; } #if defined(G_OS_WIN32) || defined(G_WITH_CYGWIN) #define DO_ESCAPE 0 #else #define DO_ESCAPE 1 #endif static gunichar get_unescaped_char (const char **str, gboolean *was_escaped) { gunichar c = get_char (str); *was_escaped = DO_ESCAPE && c == '\\'; if (*was_escaped) c = get_char (str); return c; } /* Match STRING against the filename pattern PATTERN, returning zero if it matches, nonzero if not. */ static gboolean gtk_fnmatch_intern (const char *pattern, const char *string, gboolean component_start, gboolean no_leading_period) { const char *p = pattern, *n = string; while (*p) { const char *last_n = n; gunichar c = get_char (&p); gunichar nc = get_char (&n); switch (c) { case '?': if (nc == '\0') return FALSE; else if (nc == G_DIR_SEPARATOR) return FALSE; else if (nc == '.' && component_start && no_leading_period) return FALSE; break; case '\\': if (DO_ESCAPE) c = get_char (&p); if (nc != c) return FALSE; break; case '*': if (nc == '.' && component_start && no_leading_period) return FALSE; { const char *last_p = p; for (last_p = p, c = get_char (&p); c == '?' || c == '*'; last_p = p, c = get_char (&p)) { if (c == '?') { if (nc == '\0') return FALSE; else if (nc == G_DIR_SEPARATOR) return FALSE; else { last_n = n; nc = get_char (&n); } } } /* If the pattern ends with wildcards, we have a * guaranteed match unless there is a dir separator * in the remainder of the string. */ if (c == '\0') { if (strchr (last_n, G_DIR_SEPARATOR) != NULL) return FALSE; else return TRUE; } if (DO_ESCAPE && c == '\\') c = get_char (&p); for (p = last_p; nc != '\0';) { if ((c == '[' || nc == c) && gtk_fnmatch_intern (p, last_n, component_start, no_leading_period)) return TRUE; component_start = (nc == G_DIR_SEPARATOR); last_n = n; nc = get_char (&n); } return FALSE; } case '[': { /* Nonzero if the sense of the character class is inverted. */ gboolean not; gboolean was_escaped; if (nc == '\0' || nc == G_DIR_SEPARATOR) return FALSE; if (nc == '.' && component_start && no_leading_period) return FALSE; not = (*p == '!' || *p == '^'); if (not) ++p; c = get_unescaped_char (&p, &was_escaped); for (;;) { register gunichar cstart = c, cend = c; if (c == '\0') /* [ (unterminated) loses. */ return FALSE; c = get_unescaped_char (&p, &was_escaped); if (!was_escaped && c == '-' && *p != ']') { cend = get_unescaped_char (&p, &was_escaped); if (cend == '\0') return FALSE; c = get_char (&p); } if (nc >= cstart && nc <= cend) goto matched; if (!was_escaped && c == ']') break; } if (!not) return FALSE; break; matched:; /* Skip the rest of the [...] that already matched. */ /* XXX 1003.2d11 is unclear if was_escaped is right. */ while (was_escaped || c != ']') { if (c == '\0') /* [... (unterminated) loses. */ return FALSE; c = get_unescaped_char (&p, &was_escaped); } if (not) return FALSE; } break; default: if (c != nc) return FALSE; } component_start = (nc == G_DIR_SEPARATOR); } if (*n == '\0') return TRUE; return FALSE; } /* Match STRING against the filename pattern PATTERN, returning zero if * it matches, nonzero if not. * * GTK+ used to use a old version of GNU fnmatch() that was buggy * in various ways and didn't handle UTF-8. The following is * converted to UTF-8. To simplify the process of making it * correct, this is special-cased to the combinations of flags * that gtkfilesel.c uses. * * FNM_FILE_NAME - always set * FNM_LEADING_DIR - never set * FNM_NOESCAPE - set only on windows * FNM_CASEFOLD - set only on windows */ int fnmatch_utf8 (const char *pattern, const char *string, int flags) { /* The xdgmime code always calls us with flags==0, make sure it * stays like that, since GTK+'s stripped-down fnmatch() doesn't * handle any of the flags. Or actually, as it says above, it acts * as if FNM_FILE_NAME was always set, so let's hope that doesn't * matter. */ g_assert (flags == 0); /* GTK+'s _gtk_fnmatch() returns TRUE on match, FALSE on * non-match. The real fnmatch() returns 0 on match, non-zero on * non-match. Here we want to work like the real fnmatch(), thus the * NOT operator. */ return !gtk_fnmatch_intern (pattern, string, TRUE, FALSE); } gnome-vfs-2.24.4/imported/fnmatch/Makefile.am0000644000175000001440000000023111334251016015710 00000000000000if OS_WIN32 noinst_LTLIBRARIES = libfnmatch.la endif libfnmatch_la_SOURCES = \ fnmatch.h \ fnmatch.c libfnmatch_la_CFLAGS = \ $(LIBGNOMEVFS_CFLAGS) gnome-vfs-2.24.4/imported/fnmatch/fnmatch.h0000644000175000001440000000212011334251016015444 00000000000000/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __FNMATCH_H__ #define __FNMATCH_H__ /* Stripped-down UTF-8 fnmatch() lifted from GTK+ */ int fnmatch_utf8 (const char *pattern, const char *string, int flags); #define fnmatch(pattern, string ,flags) fnmatch_utf8 (pattern, string, flags) #endif /* __FNMATCH_H__ */ gnome-vfs-2.24.4/imported/fnmatch/Makefile.in0000644000175000001440000004537611450333332015745 00000000000000# 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@ subdir = imported/fnmatch 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 = LTLIBRARIES = $(noinst_LTLIBRARIES) libfnmatch_la_LIBADD = am_libfnmatch_la_OBJECTS = libfnmatch_la-fnmatch.lo libfnmatch_la_OBJECTS = $(am_libfnmatch_la_OBJECTS) libfnmatch_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libfnmatch_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @OS_WIN32_TRUE@am_libfnmatch_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libfnmatch_la_SOURCES) DIST_SOURCES = $(libfnmatch_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @OS_WIN32_TRUE@noinst_LTLIBRARIES = libfnmatch.la libfnmatch_la_SOURCES = \ fnmatch.h \ fnmatch.c libfnmatch_la_CFLAGS = \ $(LIBGNOMEVFS_CFLAGS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(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 imported/fnmatch/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu imported/fnmatch/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): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_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 libfnmatch.la: $(libfnmatch_la_OBJECTS) $(libfnmatch_la_DEPENDENCIES) $(libfnmatch_la_LINK) $(am_libfnmatch_la_rpath) $(libfnmatch_la_OBJECTS) $(libfnmatch_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfnmatch_la-fnmatch.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libfnmatch_la-fnmatch.lo: fnmatch.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfnmatch_la_CFLAGS) $(CFLAGS) -MT libfnmatch_la-fnmatch.lo -MD -MP -MF $(DEPDIR)/libfnmatch_la-fnmatch.Tpo -c -o libfnmatch_la-fnmatch.lo `test -f 'fnmatch.c' || echo '$(srcdir)/'`fnmatch.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libfnmatch_la-fnmatch.Tpo $(DEPDIR)/libfnmatch_la-fnmatch.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fnmatch.c' object='libfnmatch_la-fnmatch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfnmatch_la_CFLAGS) $(CFLAGS) -c -o libfnmatch_la-fnmatch.lo `test -f 'fnmatch.c' || echo '$(srcdir)/'`fnmatch.c mostlyclean-libtool: -rm -f *.lo 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 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) 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 clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES 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-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 # 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: gnome-vfs-2.24.4/gtk-doc.make0000644000175000001440000001567111450333323012617 00000000000000# -*- 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) EXTRA_DIST = \ $(content_files) \ $(HTML_IMAGES) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ pdf-build.stamp \ $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp \ $(srcdir)/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 #### scan #### scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) @echo 'gtk-doc: Scanning header files' @-chmod -R u+w $(srcdir) @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ cd $(srcdir) && \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) @if grep -l '^..*$$' $(srcdir)/$(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) --output-dir=$(srcdir) ; \ else \ cd $(srcdir) ; \ 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: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt @echo 'gtk-doc: Rebuilding template files' @-chmod -R u+w $(srcdir) @cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) @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 ; \ cd $(srcdir) && \ 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' @-chmod -R u+w $(srcdir) @rm -rf $(srcdir)/html @mkdir $(srcdir)/html @mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$(?)" = "0"; then \ mkhtml_options=--path="$(srcdir)"; \ fi; \ cd $(srcdir)/html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) @echo 'gtk-doc: Fixing cross-references' @cd $(srcdir) && 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' @-chmod -R u+w $(srcdir) @rm -rf $(srcdir)/$(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; \ cd $(srcdir) && 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: cd $(srcdir) && \ rm -rf xml $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt maintainer-clean-local: clean cd $(srcdir) && 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 $(srcdir)/tmpl/*.sgml $(distdir)/tmpl cp $(srcdir)/html/* $(distdir)/html -cp $(srcdir)/$(DOC_MODULE).pdf $(distdir)/ -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ cd $(distdir) && rm -f $(DISTCLEANFILES) $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs gnome-vfs-2.24.4/aclocal.m40000644000175000001440000127147211450333327012300 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 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. # 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 ]) # _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]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # 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. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # 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 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... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # 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. # serial 8 # 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 -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [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 ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 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_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. 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 # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 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. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 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. # # 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. ]) # serial 56 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])]) # _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_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT 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 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 # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # 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], []) # _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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _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 _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_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])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 _LT_PROG_ECHO_BACKSLASH 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 # 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. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # 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' # 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]) # 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 ;; 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_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 # 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. # _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_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 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _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_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])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _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 ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # 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)])]) # 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 ]) # _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 "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _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 "X$" | $Xsed -e "$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)])])]) # _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_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 ]) # _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)])])]) # _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])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _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 # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # 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 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' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) 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 "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_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]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD 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]] -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_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. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." 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.]) ;; *) 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 _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # 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. if test "$no_create" != yes; then 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) fi ])# LT_OUTPUT # _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 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 # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _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 COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" 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 # 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], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # 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 # _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 # _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)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) 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 # 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)]) 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], []) # _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 # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _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_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_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]) 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" ]) 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 "$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" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _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 _LT_TAGVAR(whole_archive_flag_spec, $1)='' _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=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _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_SYS_MODULE_PATH_AIX # ----------------------- # 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. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # 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 if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _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 # 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 __oline__ "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 fi rm -rf conftest* ;; 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 need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) 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= 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 _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_CMD_OLD_ARCHIVE # _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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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" ]) 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_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; ;; 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; ;; 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 ;; 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"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$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 ]) 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_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _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 __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #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 /* 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 void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); 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_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 ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; 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 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" 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 "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 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:__oline__: $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:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 "$_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_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 # _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 # 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)]) 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 # _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_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 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 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` 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 case $host_os in aix3*) version_type=linux 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 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' 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=`$ECHO "X$lib" | $Xsed -e '\''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 ;; 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 ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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 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}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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' ;; 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 ;; freebsd1*) dynamic_linker=no ;; 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 ;; 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 ;; 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' ;; 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 ;; 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 ;; # This must be Linux ELF. linux* | k*bsd*-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 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], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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 # 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;/^$/d' | tr '\n' ' '` 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 # 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' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; 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' ;; 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 ;; 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 ;; 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 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 "$with_gnu_ld" = yes; 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' 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 ;; 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' ;; 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 ;; 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 ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no 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_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([], [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_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 *** 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 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 # 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], []) # _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) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # 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 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 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' 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_cv_deplibs_check_method=pass_all ;; 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 ;; gnu*) 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]) 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)$' ;; 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 ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; 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 ;; 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 ;; *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 ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; 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 ;; esac ]) 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_CHECK_MAGIC_METHOD # 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" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) 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 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:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $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:__oline__: 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 # 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], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-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 # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _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 # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])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 # 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 "$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 # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # 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'" # 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 # 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" # 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 # Check to see that the pipe works correctly. pipe_works=no 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 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 #ifdef __cplusplus extern "C" { #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. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@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 #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_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_save_LIBS" CFLAGS="$lt_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 "$pipe_works" = yes; 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 AC_MSG_RESULT(ok) fi _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_CMD_GLOBAL_SYMBOLS # _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)= AC_MSG_CHECKING([for $compiler option to produce PIC]) 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' 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 ;; 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 ;; 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)= ;; 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 ;; 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) 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*) # IBM XL 8.0 on PPC _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*) # 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' 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 ;; 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 ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; 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']) ;; 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' ;; 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 ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; 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 ;; *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' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; 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 "$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']) ;; 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' ;; 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' ;; linux* | k*bsd*-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' ;; pgcc* | pgf77* | pgf90* | pgf95*) # 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*) # IBM XL C 8.0/Fortran 10.1 on PPC _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)='-Wl,' ;; *Sun\ F*) # 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)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *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' ;; 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' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; 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' ;; 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' ;; 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 ;; 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' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac 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_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # 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]) # # 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_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_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' 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 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")) && ([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*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ 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= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = 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 *\ [[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 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. _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 ;; 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 ;; 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(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/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' 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 ;; 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' ;; gnu* | linux* | tpf* | k*bsd*-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= 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # 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; $ECHO \"$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]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; 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; $ECHO \"$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' 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*) # 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 $compiler_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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; 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 $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' fi ;; 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_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _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 ;; 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 *** 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. _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 fi ;; esac ;; 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 ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _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 ;; 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)= 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 ;; 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 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")) && ([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 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_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_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 _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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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 _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' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _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 ;; 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 ;; 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. _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 `$ECHO "X$deplibs" | $Xsed -e '\''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(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; 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 ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=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 ;; # 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 ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -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 ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${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 # 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' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${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 ;; hpux11*) if test "$GCC" = yes -a "$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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; 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' ;; *) _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)=: 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' # 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 ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -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. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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 ;; 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 ;; 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 ;; *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' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; 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' ;; 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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)=: ;; 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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # 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)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${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 ${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 ;; 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 ;; 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' ;; 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 "$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' 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 ;; 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 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(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 "$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_MSG_CHECKING([whether -lc should be explicitly linked in]) $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_TAGVAR(archive_cmds_need_lc, $1)=no else _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* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac 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([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _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([], [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_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 C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _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 # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE 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 # Report which library types will actually be built 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]) 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_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX 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 else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _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], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl 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(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # 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;" # Code to be used in simple link tests 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 # 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_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++"} 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 -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -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 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}' # 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 # 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 "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # 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 # 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 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_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 "$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 _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 _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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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 _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' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _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 ;; 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 ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; 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(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 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 ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; 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 ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; 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. 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; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${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 ;; 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)=: 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 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; $ECHO "X$list" | $Xsed' ;; *) 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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -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 ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # 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; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # 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 | $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 | $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 | $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 | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will 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_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; $ECHO \"$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)=: # 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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # 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; $ECHO \"$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='echo' # 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 ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; 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 ;; 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::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; 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=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # 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(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" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _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. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; 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 ;; solaris*) case $cc_basename in CC*) # 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' _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 output_verbose_link_cmd='echo' # 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 "$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 -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 -nostdlib ${wl}-M $wl$lib.exp -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 -shared $CFLAGS -v conftest.$objext 2>&1 | $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' # 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 "\-L"' fi _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' 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 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(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 ;; 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 AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$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) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC 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 AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _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 # 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)= 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 ]) 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. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -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 else prev= fi if test "$pre_test_object_deps_done" = no; then case $p 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 ;; *.$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 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 ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # 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)= ;; 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 ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # 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 ;; 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' fi ;; esac ;; esac ]) 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 # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _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_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _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(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 # Object file extension for compiled f77 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 # 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_GCC=$GCC CC=${F77-"f77"} 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]) 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]) 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_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$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_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" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _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_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _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(no_undefined_flag, $1)= _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} # Object file extension for compiled fc 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) # 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 # 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 # 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_GCC=$GCC CC=${FC-"f95"} 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]) 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_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$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) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _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 # 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 {}" # 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 # 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_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # 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 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 AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_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 # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # 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" # 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 # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} 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 GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # 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 ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # 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_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]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # 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 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. # 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 # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _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"}, \ = c,a/b,, \ && 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']) 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 # 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_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # 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_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}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # 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 () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -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 file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # 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 "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # Helper functions for option handling. -*- 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. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _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_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 ]) # _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)]) 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 # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # 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 ]) 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 aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes 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 test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll 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.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _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]) ]) 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($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _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) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) 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], []) # _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_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL 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])]) # 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.]) ]) 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.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _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]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # 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.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) 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])]) 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])]) # 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. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # 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($@)))])]) # 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) # 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])]) # 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_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])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # 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)])]))]) # 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 -*- # # 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. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 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 4 lt~obsolete.m4 # 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. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) 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_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) 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])]) # nls.m4 serial 3 (gettext-0.15) dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$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: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES dnl AM_GCONF_SOURCE_2 dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas dnl (i.e. pass to gconftool-2 dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where dnl you should install foo.schemas files dnl AC_DEFUN([AM_GCONF_SOURCE_2], [ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source` else GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE fi AC_ARG_WITH([gconf-source], AC_HELP_STRING([--with-gconf-source=sourceaddress], [Config database for installing schema files.]), [GCONF_SCHEMA_CONFIG_SOURCE="$withval"],) AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE) AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation]) if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' fi AC_ARG_WITH([gconf-schema-file-dir], AC_HELP_STRING([--with-gconf-schema-file-dir=dir], [Directory for installing schema files.]), [GCONF_SCHEMA_FILE_DIR="$withval"],) AC_SUBST(GCONF_SCHEMA_FILE_DIR) AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files]) AC_ARG_ENABLE(schemas-install, AC_HELP_STRING([--disable-schemas-install], [Disable the schemas installation]), [case ${enableval} in yes|no) ;; *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-install]) ;; esac]) AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no]) ]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo 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 and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) # gnome-common.m4 # # serial 3 # dnl GNOME_COMMON_INIT AU_DEFUN([GNOME_COMMON_INIT], [ dnl this macro should come after AC_CONFIG_MACRO_DIR AC_BEFORE([AC_CONFIG_MACRO_DIR], [$0]) dnl ensure that when the Automake generated makefile calls aclocal, dnl it honours the $ACLOCAL_FLAGS environment variable ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}" if test -n "$ac_macro_dir"; then ACLOCAL_AMFLAGS="-I $ac_macro_dir $ACLOCAL_AMFLAGS" fi AC_SUBST([ACLOCAL_AMFLAGS]) ], [[$0: This macro is deprecated. You should set put "ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}" in your top-level Makefile.am, instead, where "m4" is the macro directory set with AC_CONFIG_MACRO_DIR() in your configure.ac]]) AC_DEFUN([GNOME_DEBUG_CHECK], [ AC_ARG_ENABLE([debug], AC_HELP_STRING([--enable-debug], [turn on debugging]),, [enable_debug=no]) if test x$enable_debug = xyes ; then AC_DEFINE(GNOME_ENABLE_DEBUG, 1, [Enable additional debugging at the expense of performance and size]) fi ]) dnl GNOME_MAINTAINER_MODE_DEFINES () dnl define DISABLE_DEPRECATED dnl AC_DEFUN([GNOME_MAINTAINER_MODE_DEFINES], [ AC_REQUIRE([AM_MAINTAINER_MODE]) DISABLE_DEPRECATED="" if test $USE_MAINTAINER_MODE = yes; then DOMAINS="G ATK PANGO GDK GDK_PIXBUF GTK GCONF BONOBO BONOBO_UI GNOME LIBGLADE VTE GNOME_VFS WNCK LIBSOUP" for DOMAIN in $DOMAINS; do DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES" done fi AC_SUBST(DISABLE_DEPRECATED) ]) dnl GNOME_COMPILE_WARNINGS dnl Turn on many useful compiler warnings dnl For now, only works on GCC AC_DEFUN([GNOME_COMPILE_WARNINGS],[ dnl ****************************** dnl More compiler warnings dnl ****************************** AC_ARG_ENABLE(compile-warnings, AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], [Turn on compiler warnings]),, [enable_compile_warnings="m4_default([$1],[yes])"]) warnCFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi warning_flags= realsave_CFLAGS="$CFLAGS" case "$enable_compile_warnings" in no) warning_flags= ;; minimum) warning_flags="-Wall" ;; yes) warning_flags="-Wall -Wmissing-prototypes" ;; maximum|error) warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" CFLAGS="$warning_flags $CFLAGS" for option in -Wno-sign-compare; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" AC_MSG_CHECKING([whether gcc understands $option]) AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) CFLAGS="$SAVE_CFLAGS" AC_MSG_RESULT($has_option) if test $has_option = yes; then warning_flags="$warning_flags $option" fi unset has_option unset SAVE_CFLAGS done unset option if test "$enable_compile_warnings" = "error" ; then warning_flags="$warning_flags -Werror" fi ;; *) AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) ;; esac CFLAGS="$realsave_CFLAGS" AC_MSG_CHECKING(what warning flags to pass to the C compiler) AC_MSG_RESULT($warning_flags) AC_ARG_ENABLE(iso-c, AC_HELP_STRING([--enable-iso-c], [Try to warn if code is not ISO C ]),, [enable_iso_c=no]) AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) complCFLAGS= if test "x$enable_iso_c" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCFLAGS) WARN_CFLAGS="$warning_flags $complCFLAGS" AC_SUBST(WARN_CFLAGS) ]) dnl For C++, do basically the same thing. AC_DEFUN([GNOME_CXX_WARNINGS],[ AC_ARG_ENABLE(cxx-warnings, AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] [Turn on compiler warnings.]),, [enable_cxx_warnings="m4_default([$1],[minimum])"]) AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) warnCXXFLAGS= if test "x$GXX" != xyes; then enable_cxx_warnings=no fi if test "x$enable_cxx_warnings" != "xno"; then if test "x$GXX" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) warnCXXFLAGS="-Wall -Wno-unused" ;; esac ## -W is not all that useful. And it cannot be controlled ## with individual -Wno-xxx flags, unlike -Wall if test "x$enable_cxx_warnings" = "xyes"; then warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" fi fi fi AC_MSG_RESULT($warnCXXFLAGS) AC_ARG_ENABLE(iso-cxx, AC_HELP_STRING([--enable-iso-cxx], [Try to warn if code is not ISO C++ ]),, [enable_iso_cxx=no]) AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) complCXXFLAGS= if test "x$enable_iso_cxx" != "xno"; then if test "x$GXX" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; esac case " $CXXFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCXXFLAGS) WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" AC_SUBST(WARN_CXXFLAGS) ]) dnl -*- mode: autoconf -*- # serial 1 dnl Usage: dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) AC_DEFUN([GTK_DOC_CHECK], [ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first 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 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"]) ]) 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 case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac 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 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 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 $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) m4_include([acinclude.m4]) gnome-vfs-2.24.4/acinclude.m40000644000175000001440000004237311334251016012617 00000000000000AC_DEFUN([AM_GNOME_CHECK_TYPE], [AC_CACHE_CHECK([$1 in ], ac_cv_type_$1, [AC_TRY_COMPILE([ #include #if STDC_HEADERS #include #include #endif ],[$1 foo;], ac_cv_type_$1=yes, ac_cv_type_$1=no)]) if test $ac_cv_type_$1 = no; then AC_DEFINE($1, $2, $1) fi ]) AC_DEFUN([AM_GNOME_SIZE_T], [AM_GNOME_CHECK_TYPE(size_t, unsigned) AC_PROVIDE([AC_TYPE_SIZE_T]) ]) AC_DEFUN([AM_GNOME_OFF_T], [AM_GNOME_CHECK_TYPE(off_t, long) AC_PROVIDE([AC_TYPE_OFF_T]) ]) dnl Autoconf macros for libgnutls # Modified for LIBGNUTLS -- nmav # Configure paths for LIBGCRYPT # Shamelessly stolen from the one of XDELTA by Owen Taylor # Werner Koch 99-12-09 dnl AM_PATH_LIBGNUTLS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl Test for libgnutls, and define LIBGNUTLS_CFLAGS and LIBGNUTLS_LIBS dnl AC_DEFUN([AM_PATH_LIBGNUTLS], [dnl dnl Get the cflags and libraries from the libgnutls-config script dnl AC_ARG_WITH(libgnutls-prefix, [ --with-libgnutls-prefix=PFX Prefix where libgnutls is installed (optional)], libgnutls_config_prefix="$withval", libgnutls_config_prefix="") if test x$libgnutls_config_prefix != x ; then libgnutls_config_args="$libgnutls_config_args --prefix=$libgnutls_config_prefix" if test x${LIBGNUTLS_CONFIG+set} != xset ; then LIBGNUTLS_CONFIG=$libgnutls_config_prefix/bin/libgnutls-config fi fi AC_PATH_PROG(LIBGNUTLS_CONFIG, libgnutls-config, no) min_libgnutls_version=ifelse([$1], ,0.1.0,$1) AC_MSG_CHECKING(for libgnutls - version >= $min_libgnutls_version) no_libgnutls="" if test "$LIBGNUTLS_CONFIG" = "no" ; then no_libgnutls=yes else LIBGNUTLS_CFLAGS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --cflags` LIBGNUTLS_LIBS=`$LIBGNUTLS_CONFIG $libgnutls_config_args --libs` libgnutls_config_version=`$LIBGNUTLS_CONFIG $libgnutls_config_args --version` ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" dnl dnl Now check if the installed libgnutls is sufficiently new. Also sanity dnl checks the results of libgnutls-config to some extent dnl rm -f conf.libgnutlstest AC_TRY_RUN([ #include #include #include #include int main () { system ("touch conf.libgnutlstest"); if( strcmp( gnutls_check_version(NULL), "$libgnutls_config_version" ) ) { printf("\n*** 'libgnutls-config --version' returned %s, but LIBGNUTLS (%s)\n", "$libgnutls_config_version", gnutls_check_version(NULL) ); printf("*** was found! If libgnutls-config was correct, then it is best\n"); printf("*** to remove the old version of LIBGNUTLS. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If libgnutls-config was wrong, set the environment variable LIBGNUTLS_CONFIG\n"); printf("*** to point to the correct copy of libgnutls-config, and remove the file config.cache\n"); printf("*** before re-running configure\n"); } else if ( strcmp(gnutls_check_version(NULL), LIBGNUTLS_VERSION ) ) { printf("\n*** LIBGNUTLS header file (version %s) does not match\n", LIBGNUTLS_VERSION); printf("*** library (version %s)\n", gnutls_check_version(NULL) ); } else { if ( gnutls_check_version( "$min_libgnutls_version" ) ) { return 0; } else { printf("no\n*** An old version of LIBGNUTLS (%s) was found.\n", gnutls_check_version(NULL) ); printf("*** You need a version of LIBGNUTLS newer than %s. The latest version of\n", "$min_libgnutls_version" ); printf("*** LIBGNUTLS is always available from ftp://gnutls.hellug.gr/pub/gnutls.\n"); printf("*** \n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the libgnutls-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of LIBGNUTLS, but you can also set the LIBGNUTLS_CONFIG environment to point to the\n"); printf("*** correct copy of libgnutls-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_libgnutls=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libgnutls" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else if test -f conf.libgnutlstest ; then : else AC_MSG_RESULT(no) fi if test "$LIBGNUTLS_CONFIG" = "no" ; then echo "*** The libgnutls-config script installed by LIBGNUTLS could not be found" echo "*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the LIBGNUTLS_CONFIG environment variable to the" echo "*** full path to libgnutls-config." else if test -f conf.libgnutlstest ; then : else echo "*** Could not run libgnutls test program, checking why..." CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS" LIBS="$LIBS $LIBGNUTLS_LIBS" AC_TRY_LINK([ #include #include #include #include ], [ return !!gnutls_check_version(NULL); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong" echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" echo "***" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed" echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you" echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi LIBGNUTLS_CFLAGS="" LIBGNUTLS_LIBS="" ifelse([$3], , :, [$3]) fi rm -f conf.libgnutlstest AC_SUBST(LIBGNUTLS_CFLAGS) AC_SUBST(LIBGNUTLS_LIBS) ]) dnl end of Autoconf macros for libgnutls dnl macros for the neon bundeled build # Copyright (C) 1998-2004 Joe Orton # Modifications by Christian Kellner AC_DEFUN([NE_DEFINE_VERSIONS], [ NEON_VERSION="${NE_VERSION_MAJOR}.${NE_VERSION_MINOR}.${NE_VERSION_PATCH}${NE_VERSION_TAG}" AC_DEFINE_UNQUOTED([NEON_VERSION], ["${NEON_VERSION}"], [Define to be the neon version string]) AC_DEFINE_UNQUOTED([NE_VERSION_MAJOR], [(${NE_VERSION_MAJOR})], [Define to be neon library major version]) AC_DEFINE_UNQUOTED([NE_VERSION_MINOR], [(${NE_VERSION_MINOR})], [Define to be neon library minor version]) AC_DEFINE_UNQUOTED([NE_VERSION_PATCH], [(${NE_VERSION_PATCH})], [Define to be neon library patch version]) ]) AC_DEFUN([NE_VERSIONS], [ # Define the current versions. NE_VERSION_MAJOR=0 NE_VERSION_MINOR=25 NE_VERSION_PATCH=4 NE_VERSION_TAG= # libtool library interface versioning. Release policy dictates that # for neon 0.x.y, each x brings an incompatible interface change, and # each y brings no interface change, and since this policy has been # followed since 0.1, x == CURRENT, y == RELEASE, 0 == AGE. For # 1.x.y, this will become N + x == CURRENT, y == RELEASE, x == AGE, # where N is constant (and equal to CURRENT + 1 from the final 0.x # release) NEON_INTERFACE_VERSION="${NE_VERSION_MINOR}:${NE_VERSION_PATCH}:0" NE_DEFINE_VERSIONS ]) AC_DEFUN([VFS_NEON_BUNDLED],[ neon_bundled_srcdir=$1 neon_bundled_builddir=$1 # INLINED This was NEON_COMMON NE_VERSIONS AC_MSG_NOTICE([using bundled neon ($NEON_VERSION)]) NEON_BUILD_BUNDLED="yes" LIBNEON_SOURCE_CHECKS NEON_CFLAGS="$CFLAGS -I.. -I../.. -I$srcdir/$neon_bundled_srcdir" NEON_NEED_XML_PARSER=yes neon_library_message="included libneon (${NEON_VERSION})" AC_SUBST(NEON_BUILD_BUNDLED) # INLINED This was NEON_BUILD_LIBTOOL NEON_TARGET=libneon.la NEON_OBJEXT=lo # Using the default set of object files to build. # Add the extension to EXTRAOBJS ne="$NEON_EXTRAOBJS" NEON_EXTRAOBJS= for o in $ne; do NEON_EXTRAOBJS="$NEON_EXTRAOBJS $o.$NEON_OBJEXT" done NEON_SUPPORTS_DAV=yes NEONOBJS="$NEONOBJS \$(NEON_DAVOBJS)" # Turn on DAV locking please then. AC_DEFINE(USE_DAV_LOCKS, 1, [Support WebDAV locking through the library]) AC_SUBST(NEON_TARGET) AC_SUBST(NEON_OBJEXT) AC_SUBST(NEONOBJS) AC_SUBST(NEON_EXTRAOBJS) AC_SUBST(NEON_LINK_FLAGS) AC_SUBST(NEON_SUPPORTS_DAV) #xml parser stuff PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $XML_REQUIRED) NEON_CFLAGS="$NEON_CFLAGS $LIBXML_CFLAGS" NEON_LIBS="$NEON_LIBS $LIBXML_LIBS" AC_DEFINE(HAVE_LIBXML, 1, [Define if you have libxml]) neon_xml_parser=libxml2 ]) dnl Checks needed when compiling the neon source. AC_DEFUN([LIBNEON_SOURCE_CHECKS], [ dnl Run all the normal C language/compiler tests AC_REQUIRE([NEON_COMMON_CHECKS]) dnl Needed for building the MD5 code. AC_REQUIRE([AC_C_BIGENDIAN]) dnl Is strerror_r present; if so, which variant AC_REQUIRE([AC_FUNC_STRERROR_R]) AC_CHECK_HEADERS([strings.h sys/time.h limits.h sys/select.h arpa/inet.h \ signal.h sys/socket.h netinet/in.h netinet/tcp.h netdb.h]) AC_REPLACE_FUNCS(strcasecmp) AC_CHECK_FUNCS(signal setvbuf setsockopt stpcpy) AC_CHECK_MEMBERS(struct tm.tm_gmtoff,, AC_MSG_WARN([no timezone handling in date parsing on this platform]), [#include ]) ifdef([neon_no_zlib], [ neon_zlib_message="zlib disabled" NEON_SUPPORTS_ZLIB=no ], [ NEON_ZLIB() ]) # Conditionally enable ACL support AC_MSG_CHECKING([whether to enable ACL support in neon]) if test "x$neon_no_acl" = "xyes"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) NEON_EXTRAOBJS="$NEON_EXTRAOBJS ne_acl" fi NEON_SUPPORTS_SSL=yes dnl NEON_SSL is an autoconf macro in current version of neon: m4_pushdef([NEON_SSL], [[NEON_SSL]]) AC_DEFINE([NEON_SSL], 1, [Build neon ssl support]) m4_popdef([NEON_SSL]) if test "x$have_gssapi" = "xyes"; then NEON_CFLAGS="$NEON_CFLAGS $GSSAPI_CFLAGS" NEON_LIBS="$NEON_LIBS $GSSAPI_LIBS" fi AC_SUBST(NEON_CFLAGS) AC_SUBST(NEON_LIBS) AC_SUBST(NEON_LTLIBS) ]) #copied and pasted unchanged form the neon macros files # Copyright (C) 1998-2004 Joe Orton dnl AC_SEARCH_LIBS done differently. Usage: dnl NE_SEARCH_LIBS(function, libnames, [extralibs], [actions-if-not-found], dnl [actions-if-found]) dnl Tries to find 'function' by linking againt `-lLIB $NEON_LIBS' for each dnl LIB in libnames. If link fails and 'extralibs' is given, will also dnl try linking against `-lLIB extralibs $NEON_LIBS`. dnl Once link succeeds, `-lLIB [extralibs]` is prepended to $NEON_LIBS, and dnl `actions-if-found' are executed, if given. dnl If link never succeeds, run `actions-if-not-found', if given, else dnl give an error and fail configure. AC_DEFUN([NE_SEARCH_LIBS], [ AC_CACHE_CHECK([for library containing $1], [ne_cv_libsfor_$1], [ AC_TRY_LINK_FUNC($1, [ne_cv_libsfor_$1="none needed"], [ ne_sl_save_LIBS=$LIBS ne_cv_libsfor_$1="not found" for lib in $2; do LIBS="$ne_sl_save_LIBS -l$lib $NEON_LIBS" AC_TRY_LINK_FUNC($1, [ne_cv_libsfor_$1="-l$lib"; break]) m4_if($3, [], [], dnl If $3 is specified, then... [LIBS="$ne_sl_save_LIBS -l$lib $3 $NEON_LIBS" AC_TRY_LINK_FUNC($1, [ne_cv_libsfor_$1="-l$lib $3"; break])]) done LIBS=$ne_sl_save_LIBS])]) if test "$ne_cv_libsfor_$1" = "not found"; then m4_if($4, [], [AC_MSG_ERROR([could not find library containing $1])], [$4]) elif test "$ne_cv_libsfor_$1" != "none needed"; then NEON_LIBS="$ne_cv_libsfor_$1 $NEON_LIBS" $5 fi]) dnl Check for presence and suitability of zlib library AC_DEFUN([NEON_ZLIB], [ AC_ARG_WITH(zlib, AC_HELP_STRING([--without-zlib], [disable zlib support]), ne_use_zlib=$withval, ne_use_zlib=yes) NEON_SUPPORTS_ZLIB=no AC_SUBST(NEON_SUPPORTS_ZLIB) if test "$ne_use_zlib" = "yes"; then AC_CHECK_HEADER(zlib.h, [ AC_CHECK_LIB(z, inflate, [ NEON_LIBS="$NEON_LIBS -lz" NEON_CFLAGS="$NEON_CFLAGS -DNEON_ZLIB" NEON_SUPPORTS_ZLIB=yes neon_zlib_message="found in -lz" ], [neon_zlib_message="zlib not found"]) ], [neon_zlib_message="zlib not found"]) else neon_zlib_message="zlib disabled" fi ]) AC_DEFUN([NE_MACOSX], [ # Check for Darwin, which needs extra cpp and linker flags. AC_CACHE_CHECK([for Darwin], ne_cv_os_macosx, [ case `uname -s 2>/dev/null` in Darwin) ne_cv_os_macosx=yes ;; *) ne_cv_os_macosx=no ;; esac]) if test $ne_cv_os_macosx = yes; then CPPFLAGS="$CPPFLAGS -no-cpp-precomp" LDFLAGS="$LDFLAGS -flat_namespace" fi ]) AC_DEFUN([NEON_FORMAT_PREP], [ AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) if test "$GCC" = "yes"; then AC_CACHE_CHECK([for gcc -Wformat -Werror sanity], ne_cv_cc_werror, [ # See whether a simple test program will compile without errors. ne_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -Wformat -Werror" AC_TRY_COMPILE([#include #include ], [int i = 42; printf("%d", i);], [ne_cv_cc_werror=yes], [ne_cv_cc_werror=no]) CPPFLAGS=$ne_save_CPPFLAGS]) ne_fmt_trycompile=$ne_cv_cc_werror else ne_fmt_trycompile=no fi ]) dnl NEON_FORMAT(TYPE[, HEADERS[, [SPECIFIER]]) dnl dnl This macro finds out which modifier is needed to create a dnl printf format string suitable for printing integer type TYPE (which dnl may be an int, long, or long long). dnl The default specifier is 'd', if SPECIFIER is not given. dnl TYPE may be defined in HEADERS; sys/types.h is always used first. AC_DEFUN([NEON_FORMAT], [ AC_REQUIRE([NEON_FORMAT_PREP]) AC_CHECK_SIZEOF($1, [$2]) dnl Work out which specifier character to use m4_ifdef([ne_spec], [m4_undefine([ne_spec])]) m4_if($#, 3, [m4_define(ne_spec,$3)], [m4_define(ne_spec,d)]) AC_CACHE_CHECK([how to print $1], [ne_cv_fmt_$1], [ ne_cv_fmt_$1=none if test $ne_fmt_trycompile = yes; then oflags="$CPPFLAGS" # Consider format string mismatches as errors CPPFLAGS="$CPPFLAGS -Wformat -Werror" dnl obscured for m4 quoting: "for str in d ld qd; do" for str in ne_spec l]ne_spec[ q]ne_spec[; do AC_TRY_COMPILE([#include $2 #include ], [$1 i = 1; printf("%$str", i);], [ne_cv_fmt_$1=$str; break]) done CPPFLAGS=$oflags else # Best guess. Don't have to be too precise since we probably won't # get a warning message anyway. case $ac_cv_sizeof_$1 in $ac_cv_sizeof_int) ne_cv_fmt_$1="ne_spec" ;; $ac_cv_sizeof_long) ne_cv_fmt_$1="l]ne_spec[" ;; $ac_cv_sizeof_long_long) ne_cv_fmt_$1="ll]ne_spec[" ;; esac fi ]) if test "x$ne_cv_fmt_$1" = "xnone"; then AC_MSG_ERROR([format string for $1 not found]) fi AC_DEFINE_UNQUOTED([NE_FMT_]translit($1, a-z, A-Z), "$ne_cv_fmt_$1", [Define to be printf format string for $1]) ]) dnl Wrapper for AC_CHECK_FUNCS; uses libraries from $NEON_LIBS. AC_DEFUN([NE_CHECK_FUNCS], [ ne_cf_save_LIBS=$LIBS LIBS="$LIBS $NEON_LIBS" AC_CHECK_FUNCS($@) LIBS=$ne_cf_save_LIBS]) dnl Find 'ar' and 'ranlib', fail if ar isn't found. AC_DEFUN([NE_FIND_AR], [ # Search in /usr/ccs/bin for Solaris ne_PATH=$PATH:/usr/ccs/bin AC_PATH_TOOL(AR, ar, notfound, $ne_PATH) if test "x$AR" = "xnotfound"; then AC_MSG_ERROR([could not find ar tool]) fi AC_PATH_TOOL(RANLIB, ranlib, :, $ne_PATH) ]) dnl Less noisy replacement for PKG_CHECK_MODULES AC_DEFUN([NE_PKG_CONFIG], [ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test "$PKG_CONFIG" = "no"; then : Not using pkg-config $4 else AC_CACHE_CHECK([for $2 pkg-config data], ne_cv_pkg_$2, [if $PKG_CONFIG $2; then ne_cv_pkg_$2=yes else ne_cv_pkg_$2=no fi]) if test "$ne_cv_pkg_$2" = "yes"; then $1_CFLAGS=`$PKG_CONFIG --cflags $2` $1_LIBS=`$PKG_CONFIG --libs $2` : Using provided pkg-config data $3 else : No pkg-config for $2 provided $4 fi fi]) AC_DEFUN([NEON_COMMON_CHECKS], [ # These checks are done whether or not the bundled neon build # is used. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_PROG_CC_STDC]) AC_REQUIRE([AC_LANG_C]) AC_REQUIRE([AC_ISC_POSIX]) AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_CONST]) AC_REQUIRE([AC_TYPE_SIZE_T]) AC_REQUIRE([AC_TYPE_OFF_T]) AC_REQUIRE([NE_MACOSX]) AC_REQUIRE([AC_PROG_MAKE_SET]) AC_REQUIRE([AC_HEADER_STDC]) AC_CHECK_HEADERS([errno.h stdarg.h string.h stdlib.h]) NEON_FORMAT(size_t,,u) dnl size_t is unsigned; use %u formats NEON_FORMAT(off_t) NEON_FORMAT(ssize_t) ]) dnl end of neon macros gnome-vfs-2.24.4/ChangeLog0000644000175000001440000374426211354402652012217 000000000000002009-10-08 Alexander Larsson * configure.in: Post release version bump ==================== 2.24.2 ==================== 2009-10-08 Alexander Larsson * NEWS: Update for release 2009-10-08 Alexander Larsson * libgnomevfs/xdgmime.c: * libgnomevfs/xdgmimecache.c: * libgnomevfs/xdgmimeglob.c: * libgnomevfs/xdgmimeglob.h: Update to latest xdgmime updates so we get support for the new mime.cache format 2009-04-16 Alexander Larsson Bug 500307 – uninitialized GnomeVFSFileInfo struct in do_seek() * modules/sftp-method.c: (do_seek): Initialize info to avoid crashes. Patch from Fabrice Bellet 2009-03-17 Vincent Untz * configure.in: Post release version bump ==================== 2.24.1 ==================== 2009-03-17 Vincent Untz * NEWS: version 2.24.1 2007-12-09 Richard Hult * libgnomevfs/gnome-vfs-volume-monitor-daemon.c (get_drive_name): Free the original name after uniquifying it. Closes bug #478516. 2008-12-09 Kjartan Maraas * libgnomevfs/gnome-vfs-file-size.h.in: Last single glib include gone. 2008-12-07 Cosimo Cecchi * libgnomevfs/gnome-vfs-pthread.h: * modules/cdda-cddb.c: * modules/cdda-cddb.h: * test/test-async-directory.c: * test/test-resolv.c: Remove some more GLib includes. 2008-12-06 Cosimo Cecchi * libgnomevfs/*: * modules/bzip2-method.c: * modules/gzip-method.c: * modules/test-method.c: * test/test-*.c: Use single GLib includes. Thanks to Pedro Fragoso (#562441). 2008-11-23 Kjartan Maraas * programs/authentication.c: (do_full_auth): * test/test-shell.c: (get_input_string): Fix two missing format specifiers. 2008-11-21 Felix Riemann * modules/http-neon-method.c: (neon_return_headers): Fix leaking HTTP response headers. Fixes bug #352850. 2008-09-22 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.24.0 === 2008-09-22 Alexander Larsson * NEWS: * configure.in: Bump version 2008-09-12 Tor Lillqvist * libgnomevfs/gnome-vfs-open-fd.c (do_truncate_handle): On Windows, instead of ftruncate use _chsize(). It doesn't handle 64-bit sizes, though, so fail in case a "large" length is passed to us. * xdgmime.win32.diff: Update to match current libgnomevfs/xdgmime*.[ch]. Drop the #warning if not HAVE_MMAP as configure.in wants this to be compiled with -Werror... 2008-08-16 Matthias Clasen Bug 356772 – excessive dbus warnings * libgnomevfs/gnome-vfs-volume-monitor-client.c: Reduce excessive warning spam when dbus is not available. 2008-08-04 Matthias Clasen * configure.in: Bump version === gnome-vfs 2.23.0 === 2008-08-04 Matthias Clasen * NEWS: Updates 2008-08-03 Carlos Garcia Campos * libgnomevfs/xdgmime.c (xdg_mime_shutdown): Fix memory leak. 2008-07-25 Claudio Saavedra * libgnomevfs/Makefile.am: Add xdgmimeicon.[ch] in order to fix the build. 2008-07-25 Matthias Clasen * libgnomevfs/xdgmime*: Sync with GIO, so that we can read the same version of mime.cache files. * libgnomevfs/gnome-vfs-mime.c: Adapt. 2008-07-25 Matthias Clasen * configure.in: Bump version to 2.23.0 * Branch for Gnome 2.22. 2008-06-06 Tor Lillqvist * xdgmime.win32.diff: Update. 2008-05-21 Frederic Crozat * acinclude.m4: Fix typo * modules/Makefile.am: Fix missing linking with ftp, smb and http modules, causing build failure when using "-Wl,--no-undefined". 2008-05-14 Lucas Rocha * libgnomevfs/gnome-vfs-volume-ops.c, modules/sftp-method.c: fixed two build warnings. 2008-04-16 Matthias Clasen * libgnomevfs/xdgmime.c: Rework the timestamp checking code to protect against duplicate directories in XDG_DATA_DIRS. Fixes fd.o bug 12513, reported by Joe Shaw. 2008-04-16 Matthias Clasen Partically revert the last commit after realizing that xdg_mime_media_type_equal doesn't have to init at all. * libgnomevfs/xdgmime.h: * libgnomevfs/xdgmime.c: Get rid of _xdg_mime_media_type_equal * libgnomevfs/xdgmimecache.c: Use xdg_mime_media_type_equal 2008-04-16 Matthias Clasen Avoid possible memory corruption in xdgmime, fd.o bug 12512, reported by Joe Shaw and Federico Mena Quintero. * libgnomevfs/xdgmime.c(_xdg_mime_media_type_equal): Implement. (xdg_mime_media_type_equal): Turn into a wrapper around the _-prefixed version. * libgnomevfs/xdgmimecache.c: Use the _-prefixed versions of comparison functions throughout. 2008-04-03 Christian Neumair * libgnomevfs/gnome-vfs-ace.c (permset_copy): Do not index beyond array bounds (#511031). Thanks to Ghee Teo and Marcel Telka. 2008-03-23 Tor Lillqvist * gnome-vfs-zip.in: Drop the moniker stuff from here, too. (The corresponding files were removed on 2006-07-06 already.) 2008-03-21 Christian Kellner * modules/http-neon-method.c: Declare http_context_host_matches static. Get rid of unused local variable in do_open (). Patch from Bryan Hundven. (#523670) 2008-03-18 Christian Kellner * modules/http-neon-method.c: Don't use ranged GETs for broken servers. Marked broken for Range: so far: youtube. 2008-03-11 Christian Kellner * configure.in: Post release version bump. === gnome-vfs 2.22.0 === 2008-03-10 Christian Kellner * NEWS: Update for release. * configure.in: Bump to version 2.22.0 2008-02-15 Sebastian Dröge * modules/http-neon-method.c: (do_open): Patch by Christian Kellner to allow seeking with GNOME_VFS_OPEN_RANDOM and don't fail to open an URI if GNOME_VFS_OPEN_RANDOM is given but seeking does not work. This makes the http method consistent with the others. 2008-01-30 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.21.90 === 2008-01-30 Alexander Larsson * NEWS: Update for release * configure.in: Bump version to 2.21.90 2008-01-28 Christian Persch * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_device_added), (_hal_device_removed), (_gnome_vfs_hal_mounts_init): * libgnomevfs/gnome-vfs-mime-handlers.c: * modules/sftp-method.c: (buffer_send), (buffer_recv), (buffer_read_file_info), (iobuf_read_file_info), (sftp_connect), (sftp_get_connection), (sftp_connection_process_errors), (sftp_connection_get_id), (get_real_path), (do_open), (do_create), (do_close), (do_read), (do_write), (do_seek), (do_tell), (sftp_readlink), (get_file_info_for_path), (do_get_file_info), (do_get_file_info_from_handle), (do_open_directory), (do_read_directory), (do_set_file_info): * modules/smb-method.c: (cache_reap_cb): Use G_STRFUNC instead of the deprecated G_GNUC_FUNCTION. 2008-01-22 Tor Lillqvist * gnome-vfs-zip.in: Look for catalogs in share/locale first, as that is where they will be with a properly built GNU gettext. * libgnomevfs/gnome-vfs-module-shared.c (gnome_vfs_stat_to_file_info): Don't use S_ISLNK() if it isn't there. 2008-01-21 Ross Burton * modules/local_inotify_syscalls.h: * modules/local_inotify.h: * modules/Makefile.am: Remove. * modules/inotify-kernel.c: * modules/inotify-helper.c: * modules/inotify-path.c: * configure.in: Instead of using local inotify headers, use the system headers. This fixes inotify on ARM and SH4/5 (#510999). 2008-01-16 Alexander Larsson * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_find_directory_cancellable): Revert previous patch (see #312506) 2008-01-03 Alexander Larsson * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_find_directory_cancellable): Allow trashing symlink to filesystem root that does not support trashing (#312506) Patch from Yann Rouillard 2008-01-03 Alexander Larsson * modules/http-neon-method.c: (propfind_result): Handle filenames with reserved chars (#166969) Patch from Yann Rouillard 2008-01-03 Alexander Larsson * libgnomevfs/gnome-vfs-parse-ls.c: Handle links with spaces in them (#332676) Patch from Yann Rouillard 2007-11-03 Matthias Clasen * configure.in: Check for mmap, so that the mime cache is actually used. (#501160) 2007-11-19 Frederic Crozat * libgnomevfs/gnome-vfs-utils.c: Remove old copy/pasted code from glib. Handle correctly locale encoded filenames when using non-UTF8 locale (GNOME bug #498261). 2007-11-14 Alexander Larsson * daemon/daemon-connection.c: * modules/smb-method.c: Plug leaks. Found by James "Doc" Livingston. 2007-10-17 Mathias Hasselmann * libgnomevfs/gnome-vfs-dns-sd.c: (avahi_resolve_host_name): Initialize got_data field of sync_resolve_data structure (#487227). 2007-09-17 Alexander Larsson * configure.in: Post-release version bump === gnome-vfs 2.20.0 === 2007-09-17 Alexander Larsson * NEWS: * configure.in: Bump version to 2.20.0 2007-09-01 Christian Kellner * MAINTAINERS: Update MAINTAINERS file to hip new GNOME standard. 2007-08-27 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.19.91 === 2007-08-27 Alexander Larsson * NEWS: Update for release * configure.in: Bump version to 2.19.91 2007-08-21 Alexander Larsson * modules/smb-method.c: Look for unescaped name when looking up workgroup (#428200) Patch from Takao Fujiwara 2007-08-10 Bastien Nocera * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_open_uri_cancellable): * modules/smb-method.c: (do_open), (do_create): Patch from Joe Orton to avoid expansion of open() when it is a macro, as allowed by POSIX and done in newer glibc (Closes: #464984) 2007-07-27 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.19.3 === 2007-07-27 Alexander Larsson * NEWS: Update for release 2007-07-25 Bastien Nocera * gnome-vfs-2.0.pc.in: * gnome-vfs-module-2.0.pc.in: Export the modules directory in the pkg-config files, so that applications can look for specific modules without relying on gnome-vfs itself (Closes: #447202) 2007-07-23 Alexander Larsson * configure.in: Actually bump micro version too 2007-07-23 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: (xfer_open_source): Fix crash on ignore (#450909) Patch from Christian Neumair 2007-07-23 Alexander Larsson * libgnomevfs/gnome-vfs-directory.[ch]: Added GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR (#433105) Patch from Marlon Nelson 2007-07-23 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: Don't resolve non-local addresses, so that we propely handle virtual hosts (#332759) Patch from Mathias Hasselmann 2007-07-23 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: (avahi_resolve_sync_callback): (gnome_vfs_dns_sd_resolve_sync): Don't hand out link-local ipv6 addresses, prefer ipv4 instead, since the API doesn't return the interface anyway these are useless. 2007-05-14 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.19.2 === 2007-05-14 Alexander Larsson * NEWS: * configure.in: Bump to 2.19.2 2007-05-08 Alexander Larsson * modules/ftp-method.c: Correctly set flags as valid field for symlinks (#435823) Patch from Mathias Clasen 2007-04-23 Alexander Larsson * libgnomevfs/gnome-vfs-filesystem-type.c: * libgnomevfs/gnome-vfs-volume.c: Add FUSE to known filesystem types (#349622) Patch from Rob Garth 2007-04-21 John McCutchan * modules/inotify-helper.c: (ih_mask_to_EventType): Send a DELETE event when inotify gets an UNMOUNT event 2007-04-19 John McCutchan * modules/inotify-path.c: (ip_event_callback): Add unmounted monitors to the missing list too 2007-04-12 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c (strcmp_null): strcmp returns int 2007-03-22 Manjunath Kadajji * libgnomevfs/gnome-vfs-parse-ls.c: (is_year), (vfs_parse_filedate): Parsing the file/folder named like "2002 filename" for ftp locations. Fixes the bug #350052. 2007-03-29 Hans Petter Jansson * libgnomevfs/gnome-vfs-xfer.c (copy_file_data): Significantly reduce the number of calls to fadvise() by using bigger batches. Fixes GNOME bug #363400. 2007-03-26 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: Handle avahi shutdowns better. Patch from Chris Rivera 2007-03-19 Alexander Larsson * configure.in: Bump to 2.19.1 Gnome 2.18 work continues on gnome-2-18 branch 2007-03-13 Christian Kellner * configure.in: Post release version correction to 2.18.1 === gnome-vfs 2.18.0.1 === 2007-03-13 Christian Kellner * NEWS: Update for release * configure.in: Chnage to version 2.18.0.1 2007-03-13 Christian Kellner * libgnomevfs/gnome-vfs-utils.c: Revert last commit (#374341) because that broke GnomeVFSUri usage for any scheme that is not handled by a gnome-vfs module i.e. yelp and its yelp-uris. This should fix bug #417595 bug un-fix bug #374341 again. 2007-03-12 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.18.0 === 2007-03-12 Alexander Larsson * NEWS: Update for release * configure.in: Bump version to 2.18.0 2007-03-07 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_volume_policy_get_icon): Revert previous checking for now. (#414073) 2007-03-05 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (has_valid_scheme): Handle filename with colon in better (#374341) 2007-03-05 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_volume_policy_get_icon): Handle device-specific icons 2007-03-01 Tor Lillqvist Quick fixes to make gnome-vfs build on Win32 again. It is still somewhat debatable whether it makes any sense to use the real gnome-vfs (with not all modules though) on Windows. It might be better to write a small dummy replacement implementing only the file scheme that would offer just the subset of the API that some actual application like Evolution needs. Experimentation needed. * configure.in: Don't require dbus on Win32. Add --enable-daemon switch, by default enabled on Unix, always disabled on Win32 for now. Define config.h macro USE_DAEMON and Automake conditional USE_DAEMON. * xdgmime.win32.diff: New file. Patch for the xdgmime files on Win32 to make them use the gstdio wrappers. Apply this before building gnome-vfs on Windows. * Makefile.am: Dist xdgmime.win32.diff. * modules/Makefile.am: Don't build the computer module on Win32. * modules/file-method-acl.c: Conditionalize inclusion of . * libgnomevfs/Makefile.am: Compile gnome-vfs-daemon-method.c, gnome-vfs-dbus-utils.c, gnome-vfs-module-callback-marshall.c, gnome-vfs-volume-monitor-client.c and gnome-vfs-volume-ops.c only on Unix for now. Do compile gnome-vfs-volume-monitor.c also on Win32, though. * libgnomevfs/gnome-vfs-drive.c * libgnomevfs/gnome-vfs-module-callback.c * libgnomevfs/gnome-vfs-method.c * libgnomevfs/gnome-vfs-init.c * libgnomevfs/gnome-vfs-volume.c: Don't compile dbus-related functionality unless USE_DAEMON. * libgnomevfs/gnome-vfs-volume-monitor-private.h * libgnomevfs/gnome-vfs-module-callback-private.h: Don't include or declare dbus-related functions unless USE_DAEMON. * libgnomevfs/gnome-vfs-volume-monitor.c: Don't compile dbus-related functionality unless USE_DAEMON. Without USE_DAEMON, initialise the volume data just once and don't bother trying to keep up if it changes while the app is running. Add Win32 code to list volumes. * programs/gnomevfs-df.c: Some cosmetic changes. List first volumes, then drives. 2007-03-01 Tor Lillqvist * data/mime/WHERE_IS_THE_MIME_REGISTRY?: Rename to * data/mime/WHERE_IS_THE_MIME_REGISTRY: to enable SVN checkout on Windows where '?' is an illegal character in file names. (Not that the current gnome-vfs would build on Windows due to the unconditional use of dbus.) 2007-02-12 Alexander Larsson * configure.in: Post-release version bump === gnome-vfs 2.17.91 === 2007-02-12 Alexander Larsson * NEWS: Update for release 2007-02-08 Richard Hult * modules/http-neon-method.c (http_acquire_connection): Set the read timeout to 30 seconds so that we timeout if the network doesn't respond. Fixes bug #402851. 2007-02-07 Alexander Larsson * libgnomevfs/xdgmime.h: Fix some namespace clashes with gtk+ by privatizing more names. (#359487) Patch from Joe Marcus Clarke 2007-02-07 Alexander Larsson * configure.in: * libgnomevfs/gnome-vfs-address.c: * libgnomevfs/gnome-vfs-hal-mounts.c: * modules/file-method.c: FreeBSD build fixes (#340880) Patch from Joe Marcus Clarke 2007-02-06 Brian Cameron * libgnomevfs/gnome-vfs-job.h, libgnomevfs-/gnome-vfs-job-queue.h: Move definition of G_GNUC_INTERNAL to the beginning of the prototype since this is more portable and now the recommended location specified in the glib API docs. 2007-02-02 Alexander Larsson * libgnomevfs/gnome-vfs-daemon-method.c: Handle disconnected dbus connections better. Patch from Jonathan Matthew 2007-02-02 Alexander Larsson * libgnomevfs/gnome-vfs-result.c: Add support for ENOTSUP. Patch from cascardo@minaslivre.org 2007-01-22 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.17.90 === 2007-01-22 Alexander Larsson * NEWS: * configure.in: Bump to 2.17.90 2007-01-18 Christian Persch * libgnomevfs/gnome-vfs-drive.c: (gnome_vfs_drive_get_type): * libgnomevfs/gnome-vfs-volume-monitor-client.c: (gnome_vfs_volume_monitor_client_get_type): * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: (gnome_vfs_volume_monitor_daemon_get_type): * libgnomevfs/gnome-vfs-volume-monitor.c: (gnome_vfs_volume_monitor_get_type): * libgnomevfs/gnome-vfs-volume.c: (gnome_vfs_volume_get_type): No need to make GTypeInfo static. Bug #362035. 2007-01-18 Christian Persch * configure.in: Don't enable http-debug by default in svn builds. Bug #395912. 2007-01-18 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: (xfer_open_source): If get_file_info didn't give file size, try get_file_info_from_handle size. (#330498) 2007-01-16 Bastien Nocera * test/test-shell.c: remove unneeded popt include (Closes: #396713) 2007-01-15 Bastien Nocera * configure.in: test for util.h * libgnomevfs/gnome-vfs-pty.c: fix the MacOS X build by adding util.h to the includes for login_tty 2007-01-12 Alexander Larsson * configure.in: * libgnomevfs/gnome-vfs-pty.c: Add local login_tty implementation if not supported by libc. (#324709) Patch from Damien Carbery 2007-01-11 Fernando Herrera * modules/sftp-method.c: (sftp_connect): Fix password saving. Fixes #394491 2007-01-08 Christian Neumair * programs/authentication.c: Don't prepend slash to object name for local authentications (cf. libgnomeui, #390518). 2007-01-08 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c: Doc string fix from Claudio Saavedra (#355470) 2007-01-08 Alexander Larsson * modules/sftp-method.c (sftp_get_connection): Fix leak (patch from Claudio Saavedra) 2007-01-08 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_application_new_from_desktop_id): Correctly handle empty Path key. (#389273) Patch from Peter Volkov 2007-01-07 Christian Neumair * libgnomevfs/gnome-vfs-module-shared.c: * libgnomevfs/gnome-vfs-module-shared.h: Add gnome_vfs_mime_type_from_mode_or_default(). * modules/ftp-method.c: (do_get_file_info): Use gnome_vfs_mime_type_from_mode_or_default() instead of checking for NULL return value ourselves. Fixes #330625. 2006-12-29 Christian Neumair * modules/sftp-method.c: (buffer_read_file_info): Ignore UID/GID, i.e. SSH2_FILEXFER_ATTR_UIDGID since there is simply no way to determine them properly (unless the remote uids match the local ones). Add TODO item for SSH_FILEXFER_ATTR_OWNERGROUP which would provide textual strings. Fixes #346676. 2006-12-28 Christian Neumair * modules/sftp-method.c: * programs/authentication.c: * libgnomevfs/gnome-vfs-standard-callbacks.h: Support changing user name when accessing sftp locations. Fix CLI authentication to use default input if no input was provided, properly document GnomeVFSModuleCallbackFullAuthenticationOut. Should fix #350111. 2006-12-19 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.17.2 === 2006-12-19 Alexander Larsson * NEWS: Update for release 2006-12-18 Federico Mena Quintero Fix http://bugzilla.gnome.org/show_bug.cgi?id=385085 (same as https://bugzilla.novell.com/show_bug.cgi?id=195269). When opening SMB files with no extension or unknown extension, the proper MIME type doesn't get sniffed. * modules/smb-method.c (do_get_file_info): If we have GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE, then use gnome_vfs_get_mime_type_common() to cause the file to be sniffed. Otherwise, call gnome_vfs_mime_type_from_name_or_default() as usual. 2006-12-18 Alexander Larsson * libgnomevfs/gnome-vfs-module-callback-marshall.c: Fix parsing of auth callbacks. Fixes crash on 64bit arches. 2006-12-18 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.17.1 === 2006-12-18 Alexander Larsson * NEWS: Update for release 2006-12-01 Christian Neumair * libgnomevfs/gnome-vfs-unix-mounts.c: _gnome_vfs_get_unix_mount_table(): NULL-initialize retval pointer in all variants (#381119). 2006-11-23 Alexander Larsson * configure.in: Bump version to 2.17.1 Gnome 2.16 work continues on gnome-2-16 branch 2006-11-23 Alexander Larsson * libgnomevfs/gnome-vfs-socket-buffer.c: (refill_input_buffer): Fix overwrite of buffer data. (#378442) I don't think this is ever actually hit with current code. 2006-11-20 Alexander Larsson * libgnomevfs/gnome-vfs-daemon-method.c: Remove the daemon code for forget_cache. Its not used by any daemon code, and was causing extra roundtrips on copy. 2006-11-20 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.16.3 === 2006-11-20 Alexander Larsson * NEWS: Update for release 2006-11-20 Daniel Drake * modules/http-neon-method.c: Support HTTP redirects in do_create Fixes #372603 2006-11-19 Vincent Untz * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_copy): (gnome_vfs_mime_application_launch_with_e): (gnome_vfs_mime_application_new_from_desk): respect Path key in desktop files to launch the application from the specified directory Fix bug #375427 Based on patch by Brian Harring 2006-11-10 Alexander Larsson * daemon/daemon-connection.c: * libgnomevfs/gnome-vfs-daemon-method.c: * libgnomevfs/gnome-vfs-module-callback-marshall.c: Don't use deprecated dbus_message_iter_get_array_len function. 2006-11-07 Alexander Larsson * libgnomevfs/gnome-vfs-module-callback.c (stack_table_destroy): Protect against reordering of atexit handlers and thread exit handlers. Don't know if this is possible, but could be the cause of bug #359655. 2006-11-07 Christian Kellner * configure.in: Post-release version bump === gnome-vfs 2.16.2 === 2006-11-07 Christian Kellner * NEWS: Update for release 2006-11-06 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: (copy_items): Don't always cancel on EFILEEXISTS unless we're trying to generate unique filenames. This fixes a silent abort when copying "file.txt" and "FILE.TXT" to a case insensitive filesystem (like FAT). (#144726) 2006-11-06 Alexander Larsson * daemon/vfs-daemon.c (main): Call setlocale() in daemon to get translations. (#359875) Patch from Martin Pitt 2006-11-02 Alexander Larsson * libgnomevfs/gnome-vfs-monitor.c: Avoid ending up in a loop via timeouts spending 100% cpu if a monitor is cancelled when there are outstanding callbacks. Fixes #357704 2006-11-02 Alexander Larsson * daemon/daemon-connection.c (connection_handle_close): Allow operations on file handles that were created in another DaemonConnection. This can happen if another thread in the client than the one that called open does an operation. This fixes (amongs other things) the random failure of displaying workgroups and computers when browsing smb. 2006-11-02 Alexander Larsson * daemon/vfs-daemon.c: Allow --replace argument to gnome-vfs-daemon to replace the current daemon. Useful for debugging. 2006-11-02 Alexander Larsson * libgnomevfs/gnome-vfs-job-queue.c: Remove debug spew 2006-11-02 Alexander Larsson * libgnomevfs/gnome-vfs-daemon-method.c: Handle error case where we don't get a reply. 2006-10-30 Alexander Larsson * modules/dns-sd-method.c: Handle IPv6 addresses when creating dav uris. Patch from Matthias Clasen 2006-10-26 Alexander Larsson * modules/sftp-method.c: Support sun ssh version (#362535) Patch from jedy.wang@sun.com 2006-10-18 Alexander Larsson * libgnomevfs/gnome-vfs-monitor.c: Performance enhancements. We now avoid constantly going through the pending lists as much as we can. 2006-10-18 John McCutchan * modules/inotify-kernel.c: Relicense: GPL->LGPL * modules/inotify-kernel.h: Relicense: GPL->LGPL * modules/inotify-path.h: Relicense: GPL->LGPL 2006-10-17 Alexander Larsson * libgnomevfs/gnome-vfs-dbus-utils.c: Remove warning spew * libgnomevfs/gnome-vfs-volume-monitor-client.c: Don't crash if there is no session dbus (#354823) Patch from Frederic Crozat 2006-10-17 Alexander Larsson * modules/file-method.c (do_get_file_info): Don't fail getting selinux context. This causes us to return e.g. no-such-file on broken symlinks. 2006-10-02 Alexander Larsson * configure.in: Post-release version bump === gnome-vfs 2.16.1 === 2006-10-02 Alexander Larsson * NEWS: Update for release * configure.in: Bump to 2.16.1 2006-09-28 Christian Neumair * modules/ftp-method.c: (unix_ls_to_file_info): Handle NULL retvals of gnome_vfs_mime_type_from_mode, #330625. Will eventually be fixed by introducing gnome_vfs_mime_type_from_mode_or_default. * modules/sftp-method.c: (update_mime_type_and_name_from_path), (do_read_directory): Ditto. Also check for GNOME_VFS_FILE_INFO_FIELDS_TYPE being in file info's valid_fields before assuming that we have a symlink in do_read_directory. * programs/gnomevfs-info.c: * programs/gnomevfs-ls.c: Improve handling of GNOME_VFS_FILE_INFO_FIELDS_TYPE absence from GnomeVFSFileInfo's valid_fields field. 2006-09-28 Christian Neumair * imported/fnmatch/.cvsignore: * imported/neon/.cvsignore: * po/.cvsignore: * test/.cvsignore: (Re)add/update. 2006-09-26 Christian Neumair * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_find_directory_cancellable): Convert home directory to URI before passing it to gnome_vfs_uri_new(). 2006-09-19 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: Revert previous commits. They don't seem to quite work. 2006-09-19 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: Forgot a place in the last fix. 2006-09-19 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: Default to data for mixed audio and data cds. 2006-09-15 Christian Neumair * modules/http-neon-module.c: Refcount. Fixes double-frees (#347470). 2006-09-13 Alexander Larsson * libgnomevfs/xdgmime.[ch]: * libgnomevfs/xdgmimeglob.c: * libgnomevfs/xdgmimemagic.c: Backport fixes from gtk+ version of xdgmime 2006-09-13 Alexander Larsson * libgnomevfs/gnome-vfs-daemon-method.c (gnome_vfs_daemon_message_iter_get_file_info): Fix some leaks. (Noticed by Kjartan Maraas) 2006-09-07 John McCutchan * modules/inotify-kernel.c: * modules/inotify-kernel.h: * modules/inotify-missing.c: * modules/inotify-path.c: Don't use g_list_length when testing for an empty list. Indentation fixes. 2006-09-04 Alexander Larsson * configure.in: Bump version to 2.16.0 * NEWS: Update for release. 2006-09-01 Christian Kellner * modules/http-neon-method.c: Never try to the resolve the status of a neon request after a call to http_follow_redirect(). Fixes #353337 2006-08-25 Alexander Larsson * modules/http-neon-method.c: (http_context_set_uri): Ignore fragment identifier in URI. (#347717) Patch from Alex Jones 2006-08-24 Alexander Larsson * configure.in: Support --disable-selinux 2006-08-23 Alexander Larsson * libgnomevfs/gnome-vfs-mime.c (gnome_vfs_mime_type_is_equal): Actually return the return value. 2006-08-23 Alexander Larsson * libgnomevfs/gnome-vfs-uri.c: Add warning to gnome_vfs_uri_to_string docs * modules/file-method.c: * modules/inotify-sub.h: Make sure we always use the right function to cancel monitors. Remove unbounded cache from do_is_local. Use inotify, not fam for non-existing files. 2006-08-23 Alexander Larsson * modules/inotify-kernel.c: Don't sleep in the inotify code (#352479) Patch from John McCutchan 2006-08-21 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.15.92 === 2006-08-21 Alexander Larsson * NEWS: Update for release 2006-08-21 Alexander Larsson * libgnomevfs/gnome-vfs-job.h: Fix build failure with job debugging on. * libgnomevfs/gnome-vfs-xfer.c: (call_progress_with_current_names): Call the async callback less often to work around slowdown with inotify backend. Fix timeout delay calculation. 2006-08-21 Alexander Larsson * libgnomevfs/gnome-vfs-mime-magic.c: (_gnome_vfs_sniff_buffer_looks_like_text): Better way to check for embedded zeros to catch all occurances. 2006-08-14 Alexander Larsson * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-metadata.gob: * libgnomevfs/gnome-vfs-metadata.[ch]: * libgnomevfs/gnome-vfs-metadata-private.h: Remove old code that was never built. 2006-08-10 Alexander Larsson * libgnomevfs/gnome-vfs-dbus-utils.c: (dbus_filter_func): Remove debug spew 2006-08-08 Alexander Larsson * configure.in: Post-release version bump === gnome-vfs 2.15.91 === 2006-08-08 Alexander Larsson * NEWS: Update for release 2006-08-08 Alexander Larsson * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_find_directory_cancellable): Avoid I/O if find-directory not supported. (#349241) Patch from Christian Neumair 2006-08-07 Alexander Larsson * daemon/Makefile.am: * libgnomevfs/Makefile.am: Define DBUS_API_SUBJECT_TO_CHANGE 2006-07-27 John McCutchan * modules/Makefile.am: * modules/inotify-diag.c: (id_dump), (id_startup): * modules/inotify-diag.h: Dump inotify missing list to /tmp/gvfsid.%pid every 20 seconds if GNOME_VFS_INOTIFY_DIAG is set. * modules/inotify-kernel.c: (ik_pair_moves), (ik_process_eq_callback): Disable move pairing. * modules/inotify-missing.c: (im_add), (im_scan_missing), (im_diag_dump): * modules/inotify-missing.h: Write missing list to file and only scan missing list every 4 seconds. 2006-07-25 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.15.90 === 2006-07-25 Alexander Larsson * configure.in: Bump to 2.15.90 * NEWS: Update for release 2006-07-23 Christian Kellner * daemon/daemon-connection.c: * libgnomevfs/gnome-vfs-dbus-utils.c: * libgnomevfs/gnome-vfs-init.c: Explicitly define DBUS_API_SUBJECT_TO_CHANGE to 1 to make all compilers happy. Fixes bug #347469 2006-07-23 Christian Kellner * daemon/Makefile.am: Change the order in which we link to libgnomevfs and libgnomevfsdaemon. This will hopefully fix symbol resolution for MacOS X. 2006-07-23 Christian Kellner * configure.in: Fix test statements to be more portable. * modules/file-method-acl.c: Move file_get_acl out of the HAVE_ACL #if block because we also need this function to be defined when ACL support is disabled. This should fix #348082 and #348083 2006-07-23 Christian Kellner * libgnomevfs/gnome-vfs-hal-mounts.c: Replace __FUNCTION__ by G_GNUC_FUNCTION. 2006-07-16 Christian Neumair * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-ops.h: Add GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME. Update gnome_vfs_set_file_info(_uri) docs. * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-result.h: Add GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK. * libgnomevfs/gnome-vfs-async-ops.c: (gnome_vfs_async_set_file_info): Update docs. * modules/file-method.c: (do_set_file_info): Support setting a symlink's target. * modules/sftp-method.c: (do_set_file_info): Filter out masks we can't set, and return GNOME_VFS_ERROR_NOT_SUPPORTED on failure. Fixes #309949. 2006-07-16 Christian Neumair * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_resolve_relative), (gnome_vfs_uri_resolve_symbolic_link): * libgnomevfs/gnome-vfs-uri.h: Add gnome_vfs_uri_resolve_symbolic_link API. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_resolve_symlink), (_gnome_vfs_uri_resolve_all_symlinks_uri): Use gnome_vfs_uri_resolve_symbolic_link for resolving symlinks, Assert that path and symlink are not NULL in gnome_vfs_resolve_symlink. * doc/gnome-vfs-2.0-sections.txt: Add gnome_vfs_uri_resolve_symbolic_link. Fixes #323016. 2006-07-16 Christian Kellner * test/test-shell.c: (main): Get rid of C99ism (Declare variable at the beginning). This should fix the build with gcc 2.95. Patch from Jens Granseuer . Fixes #347603 2006-07-14 Christian Neumair * libgnomevfs/gnome-vfs-filesystem-type.c: Add ffs, kernfs, lfs, ptyfs, tmpfs and encfs. Thanks to Julio M. Merino Vidal and . Fixes #336533 and #328883. * libgnomevfs/gnome-vfs-volume.c: Update API docs, i.e. list of recognized file systems. 2006-07-14 Christian Kellner * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-ssl-private.h: Not needed anymore. Removed. * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init): * libgnomevfs/gnome-vfs-ssl.c: (ssl_init), (gnome_vfs_ssl_create_from_fd): Inintialize SSL lazily (on first use). Fixes bug #346573. 2006-07-14 Christian Neumair * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-volume.c: Protect public API with g_return_if_fail statements. Fixes #329919. 2006-07-14 Christian Neumair * libgnomevfs/gnome-vfs-result.c: (gnome_vfs_result_from_errno_code): Wrap ENAMETOOLONG using GNOME_VFS_ERROR_NAME_TOO_LONG. Fixes #308509. 2006-07-14 Christian Kellner * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-result.h: Add GNOME_VFS_ERROR_INVALID_FILENAME. Fixes bug #305828 Patch from Alexander Brausewetter 2006-07-14 Christian Kellner * configure.in: * modules/Makefile.am: * modules/http-authn.c: * modules/http-authn.h: * modules/http-cache.c: * modules/http-cache.h: * modules/http-method.c: * modules/http-method.h: Kill the old, totally unmaintained http method. 2006-07-14 Christian Kellner * libgnomevfs/gnome-vfs-utils.c: Replace gnome_vfs_str_has_prefix with glib's g_str_has_prefix. Fixes bug #342239 Patch from Paolo Borelli 2006-07-13 Christian Kellner * configure.in: * libgnomevfs/.cvsignore: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-version.h.in: Add gnome-vfs-version.h for compile time version checking. Partly fixes bug #323614 2006-07-13 Christian Neumair * libgnomevfs/gnome-vfs-pty.c: (_gnome_vfs_pty_fork_on_pty_name): Initialize ready_a and ready_b to satisfy compiler. Fixes #342115. 2006-07-13 Christian Neumair * libgnomevfs/gnome-vfs-volume-ops.c: (spawn_mount), Include , cast &pid to pid_t * before passing it to gnome_vfs_pty_open. * libgnomevfs/xdgmimemagic.c: (_xdg_mime_magic_parse_magic_line): Only declare 'i' #if LITTLE_ENDIAN. Fixes #340277. Thanks to James Andrewartha. 2006-07-13 Christian Neumair * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-ops.c: Initialize passed-in handle to NULL after g_return_if_fail check in public functions. Add g_return_if_fail statements and NULL initializer to gnome_vfs_monitor_add(). Thanks to George Karabin . Fixes #45783. 2006-07-13 Christian Kellner * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-drive.h: gnome_vfs_drive_needs_eject (): New function indicating wether a drive needs to be ejected after it has been unmounted. Patch from Martin Pitt Fixes bug #336533 2006-07-13 Christian Kellner * libgnomevfs/gnome-vfs-resolve.c: (_gnome_vfs_result_from_gai_error): Fix EAI_ADDRFAMILY case in switch construction to always return the appropriate error. Patch from Julio M. Merino Vidal Fixes bug #336391 2006-07-13 Christian Neumair * libgnomevfs/gnome-vfs-monitor.c: (install_timeout), (actually_dispatch_callback): Immediately dispatch events when possible by reinstalling timeout. Patch from Jean-Yves Lefort . Fixes #341585. 2006-07-13 Christian Neumair * modules/ftp-method.c: (do_get_file_info): Try to CWD to path if it isn't reported by LS, enhances IIS virtual directory support. Fixes #119245. 2006-07-13 Christian Kellner * daemon/daemon-connection.c: * daemon/vfs-daemon.c: * libgnomevfs/gnome-vfs-daemon-method.c: Replace the deprecated call to dbus_connection_disconnect with its newer pendant dbus_connection_close. Patch from Laurent Goujon Fixes bug #347099 2006-07-13 Christian Kellner * modules/http-neon-method.c: Don't fall-through to HEAD if we get a 404 on the PROPFIND in http_get_file_info (). Don't overwrite the mime-type if we previously set it to HTTP_DIR_MIME_TYPE in propfind_result (). This should fix bug #338867 2006-07-13 Christian Kellner * modules/sftp-method.c: Replace __FUNCTION__ with G_GNUC_FUNCTION. Patch from Tim Mooney Fixes bug #342963. 2006-07-12 Christian Kellner * configure.in: Post-release version bump. === gnome-vfs 2.15.3 === 2006-07-11 Christian Kellner * NEWS: Update for release. 2006-07-07 William Jon McCann * gnome-vfs-2.0.pc.in: * gnome-vfs-module-2.0.pc.in: Remove @BONOBO_PKGS@ from Requires. 2006-07-07 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_add_volume): Fix bug with setting display_name_key for volumes. Don't create drives for volumes that don't pass policy check (they still get a volume since we need that for trash) 2006-07-07 Alexander Larsson * libgnomevfs/gnome-vfs-mime-deprecated.h: * libgnomevfs/gnome-vfs-mime-handlers.[ch]: Move all bonobo mime support functions to libbonobo. * configure.in: * libgnomevfs/Makefile.am: * test/test-mime.c: (main): Remove all references and dependencies on bonobo. 2006-07-07 Alexander Larsson * libgnomevfs/gnome-vfs-address.c: Add OSX workaround. 2006-07-07 Alexander Larsson * configure.in: * gnome-vfs-2.0.pc.in: * gnome-vfs-module-2.0.pc.in: Don't require bonobo packages if using dlopen. 2006-07-06 Alexander Larsson * configure.in: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-mime-handlers.c: Optionally (at build time) allow gnome-vfs to dlopen bonobo instead of linking to it. 2006-07-06 Alexander Larsson * Makefile.am: * configure.in: * monikers/*: Remove moniker code. This was moved to gnome-vfs-monikers cvs module. * daemon/GNOME_VFS_Daemon.server.in: * daemon/gnome-vfs-async-daemon.c: * daemon/gnome-vfs-async-daemon.h: * daemon/gnome-vfs-daemon-dir-handle.c: * daemon/gnome-vfs-daemon-dir-handle.h: * daemon/gnome-vfs-daemon-handle.c: * daemon/gnome-vfs-daemon-handle.h: * daemon/gnome-vfs-daemon.c: Remove old daemon code. * libgnomevfs/gnome-vfs-mime-handlers.c: initialize bonobo lazily. * libgnomevfs/gnome-vfs-module-callback-marshall.c: Remove bonobo include 2006-07-06 Alexander Larsson * Merge vfs-dbus branch 2006-07-06 Alexander Larsson * daemon/Makefile.am: * daemon/dbus-utils.h: * daemon/vfs-daemon.c: Clean up * libgnomevfs/gnome-vfs-init.c: Add back old bonobo stuff, commented out. Need to move it. * libgnomevfs/gnome-vfs-module-callback.c: Remove spew. 2006-07-06 Alexander Larsson * daemon/vfs-daemon.c: (daemon_new_connection_func): * libgnomevfs/gnome-vfs-daemon-method.c: (execute_operation): * libgnomevfs/gnome-vfs-volume-ops.c: (report_mount_result): Remove stale todos 2006-07-06 Alexander Larsson * libgnomevfs/gnome-vfs-module-callback-marshall.c: Convert more marshallers. 2006-07-05 Alexander Larsson * daemon/daemon-connection.c: * libgnomevfs/gnome-vfs-daemon-method.c: * libgnomevfs/gnome-vfs-dbus-utils.[ch]: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs/gnome-vfs-job.[ch]: * libgnomevfs/gnome-vfs-module-callback-marshall.c: * libgnomevfs/gnome-vfs-module-callback-private.h: * libgnomevfs/gnome-vfs-module-callback.c: Initial work on module callbacks. 2006-07-05 Alexander Larsson * daemon/daemon-connection.c: * libgnomevfs/gnome-vfs-daemon-method.[ch]: * libgnomevfs/gnome-vfs-dbus-utils.h: Change readdir to push an array of fileinfo to allow larger chunk size. Bump chunk size to 60. 2006-07-05 Alexander Larsson * libgnomevfs/gnome-vfs-cancellation.c: Use _gnome_vfs_get_main_dbus_connection() * libgnomevfs/gnome-vfs-daemon-method.c: (get_private_connection): Add comment. 2006-07-05 Alexander Larsson * daemon/daemon-connection.c: Lower readdir chunk size again, due to errors. Remove all per-connection monitoring stuff. Don't escape uris sent as strings. * daemon/dbus-utils.[ch]: Use the right volume/drive dbus types. Add some dbus helpers for reply generation and name tracking. * daemon/vfs-daemon.c: Implement file monitoring, including cancel when client goes away. Remove connection unrefs that were causing asserts. * libgnomevfs/gnome-vfs-daemon-method.c: Send NULL strings as "" again. Don't escape uris sent as strings. Implement file monitoring client side. * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-dbus-utils.[ch]: Move main dbus client connection setup here. * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-volume.c: Send NULL strings as "" again. * libgnomevfs/gnome-vfs-volume-monitor-client.[ch]: Move out connection setup. 2006-07-04 Alexander Larsson * daemon/daemon-connection.c (READDIR_CHUNK_SIZE): Bump readdir chunk size to 40 2006-07-04 Alexander Larsson * daemon/daemon-connection.[ch]: * daemon/vfs-daemon.c: Clean up and simplify how cancellation is handled in daemon. This should make cancellation threadsafe. 2006-07-04 Alexander Larsson * daemon/dbus-utils.c: No need to pass struct types. * daemon/vfs-daemon.c: Implement non-abstract sockets for non-linux. 2006-07-03 Alexander Larsson * libgnomevfs/GNOME_VFS_Daemon.idl: * libgnomevfs/Makefile.am: Remove old corba stuff 2006-07-03 Alexander Larsson * daemon/daemon-connection.c: Add DBUS-TODO * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-dbus-utils.c: * libgnomevfs/gnome-vfs-dbus-utils.h: * libgnomevfs/gnome-vfs-volume-monitor-client.c: Move functions to monitor-client.c Remove dbus-utils.c file. * libgnomevfs/gnome-vfs-cancellation-private.h: * libgnomevfs/gnome-vfs-cancellation.c: * libgnomevfs/gnome-vfs-daemon-method.c: Fix daemon cancellation. Tell "" and NULL appart on the wire. * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-volume.c: Tell "" and NULL appart on the wire. 2006-07-03 Alexander Larsson * daemon/dbus-utils.c: * libgnomevfs/gnome-vfs-dbus-utils.c: * libgnomevfs/gnome-vfs-dbus-utils.h: * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-volume-monitor-client.c: * libgnomevfs/gnome-vfs-volume-monitor-client.h: * libgnomevfs/gnome-vfs-volume-monitor-private.h: * libgnomevfs/gnome-vfs-volume-ops.c: * libgnomevfs/gnome-vfs-volume.c: * modules/default-modules.conf: Some volume manager dbus work. 2006-06-29 Alexander Larsson * libgnomevfs/gnome-vfs-cancellation-private.h: * libgnomevfs/gnome-vfs-cancellation.c: * libgnomevfs/gnome-vfs-daemon-method.c: Use one private dbus connection per thread for the daemon method. 2006-06-26 Alexander Larsson * configure.in: * daemon/.cvsignore: * daemon/Makefile.am: * daemon/daemon-connection.[ch]: * daemon/dbus-utils.[ch]: * daemon/gnome-vfs-daemon.service.in: * daemon/vfs-daemon.c: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-cancellation-private.h: * libgnomevfs/gnome-vfs-cancellation.c: * libgnomevfs/gnome-vfs-client-call.[ch]: * libgnomevfs/gnome-vfs-client.[ch]: * libgnomevfs/gnome-vfs-daemon-method.[ch]: * libgnomevfs/gnome-vfs-dbus-utils.[ch]: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-module-callback-marshall.c: * libgnomevfs/gnome-vfs-module-callback-private.h: * libgnomevfs/gnome-vfs-module-callback.c: * libgnomevfs/gnome-vfs-volume-monitor-client.c: * libgnomevfs/gnome-vfs-volume-monitor-client.h: * libgnomevfs/gnome-vfs-volume-ops.c: * modules/default-modules.conf: Initial import of the dbus gnome-vfs daemon from imendio SVN. Most work done by Richard Hult and Mikael Hallendal. 2006-07-03 Alexander Larsson * modules/computer-method.c (get_data_for_drive): Handle NULL uris. Add newline after last lines in desktop files. 2006-07-03 Alexander Larsson * configure.in: * programs/Makefile.am: * test/Makefile.am: * test/test-async-directory.c: (main): * test/test-directory.c: (main): * test/test-shell.c: (main): * test/test-symlinks.c: * test/test-xfer.c: (main): Convert the final use of pop to GOpt. (#336831) Patch from Saleem Abdulrasool 2006-06-22 Christian Neumair * doc/*: * doc/tmpl/*: * libgnomevfs/*: Massive API documentation update. 2006-06-20 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c (expand_macro): Handle %% escaping % in desktop files. (#343632) Patch from Josselin Mouette 2006-06-19 Alexander Larsson * configure.in: Check for later version of libselinux (#344349) Patch from Elijah Newren 2006-06-13 John McCutchan From Josselin Mouette : * modules/file-method.c: (do_monitor_add), (do_monitor_cancel): When inotify support is enabled, it always gets used if it's found in the kernel. However, it won't work on remote filesystems. As such, monitoring for NFS filesystems should still be done with FAM. 2006-06-13 Alexander Larsson * modules/file-method-acl.c: Fix build when no ACL supported. 2006-06-12 John McCutchan * modules/inotify*: Update my email address 2006-06-12 John McCutchan * modules/inotify-kernel.c: * modules/inotify-missing.c: The inotify monitoring code has two timers that run continuously 1) The missing list scan timer. This timer tests if any missing directories have been recreated. 2) The event queue processing timer. This timer pairs MOVED_TO and MOVED_FROM events together. Both of these timers can be turned off when they have no work to do. Also extend the delay between missing list scans from 1 to 2 seconds. 2006-06-12 Alexander Larsson * configure.in: Post-release version bump. === gnome-vfs 2.15.2 === 2006-06-12 Alexander Larsson * NEWS: Update for release 2006-06-09 Alexander Larsson * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_hash): Fix hash calculation for toplevel uris. Bug found by Ken Ishii 2006-06-08 Alexander Larsson * configure.in: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-file-info.[ch]: * modules/file-method.c: * programs/gnomevfs-info.c: * programs/gnomevfs-ls.c: * test/test-info.c: Add support for reading the selinux context. Patch from James Antill 2006-06-08 Alexander Larsson * configure.in: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-ace.[ch]: * libgnomevfs/gnome-vfs-acl.[ch]: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs.h: Merge generic ACL work from acl branch. * libgnomevfs/gnome-vfs-daemon-method.c: (gnome_vfs_daemon_convert_from_corba_file_info), (gnome_vfs_daemon_convert_to_corba_file_info): Add comment about missing code for acl. * modules/Makefile.am: * modules/file-method-acl.[ch]: * modules/file-method.c: Merge posix and solaris ACL support. * programs/gnomevfs-info.c: Show ACLs in gnomevfs-info. * test/Makefile.am: * test/test-acl.c: Add acl tests. The work on the branch was done by Christian Kellner and Alvaro Lopez Ortega. 2006-05-30 Alexander Larsson * modules/smb-method.c (is_hidden_entry): Don't hide all shares that end with $. Patch from Federico Mena Quintero 2006-05-24 Tor Lillqvist * programs/authentication.c (ask_for_password): Don't attempt to turn off echo unless HAVE_TERMIOS_H. 2006-05-17 Alexander Larsson * configure.in: Post-release version bump === gnome-vfs 2.15.1 === 2006-05-17 Alexander Larsson * test/test-escape.c (main): Fix escaping test * configure.in: Bump intltool req to 0.35.0 * NEWS: Update for release 2006-05-16 Alexander Larsson * modules/computer-method.c: (drive_connected), (fill_root): Show all drives in computer:// (#341446) Patch from Xavier Claessens 2006-05-14 Christian Kellner * programs/gnomevfs-df.c: (ignore_volume): Ignore volumes with type == NULL for now (e.g. "Connect to Server" volumes). Fixes #340910 2006-05-13 Christian Neumair * modules/sftp-method.c: (vfs_module_shutdown): Only remove entries from hash table if it exists. Fixes #341564. 2006-05-12 Christian Neumair * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_init), (gnome_vfs_mime_info_cache_dir_init_defaults_list): Unalias application MIME types before adding them to the cache. 2006-05-02 Federico Mena Quintero Fix http://bugzilla.gnome.org/show_bug.cgi?id=338893: file size is reported wrong in the FTP method for files larger than 2 GB. * configure.in.orig: Check for atoll() to AC_CHECK_FUNCS(). Check for stat.st_blksize stat.st_rdev, and AC_STRUCT_ST_BLOCKS (without these, we were never entering the corresponding #ifdef blocks in gnome-vfs-parse-ls.c, and thus not filling in certain fields of struct stat). * libgnomevfs/gnome-vfs-parse-ls.c (gnome_vfs_parse_ls_lga): Use atoll() when available for stat.st_size, or atof() if it's not available. Use HAVE_STRUCT_STAT_ST_RDEV, HAVE_STRUCT_STAT_ST_BLOCKS, and HAVE_STRUCT_STAT_ST_BLKSIZE instead of HAVE_ST_RDEV, HAVE_ST_BLOCKS, and HAVE_ST_BLKSIZE, respectively. 2006-04-28 Alexander Larsson * configure.in: Switch to po/LINGUAS (#338028) Patch from Przemyslaw Grzegorczyk 2006-04-27 Kjartan Maraas * libgnomevfs/gnome-vfs-mime-monitor.c: Relicense to LGPL * libgnomevfs/gnome-vfs-mime-monitor.h: Same. Closes bug #332301. (Joselin Mouette) 2006-04-26 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_add_drive_without_volumes): Set drive is_user_visible based on mediacheck support. (#321320) Patch from Federico Mena Quintero 2006-04-25 Frederic Crozat * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_launch_with_env), (expand_macro), (expand_application_parameters), (test_exec_array), (test_exec_macro_expansion): Fix % parameters expansion in Exec field (bug #302436). 2006-04-25 Christian Neumair * libgnomevfs/*: Add more documentation. 2006-04-25 Christian Neumair * libgnomevfs/gnome-vfs-drive.c: (gnome_vfs_drive_finalize), (gnome_vfs_drive_compare): * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_add_drive_without_volumes), (_hal_add_volume), * libgnomevfs/gnome-vfs-volume.c: (gnome_vfs_volume_finalize), (gnome_vfs_volume_compare), (_gnome_vfs_volume_from_corba): * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: (create_drive_from_mount_point), (create_vol_from_mount), (connected_server_compare), (get_connected_servers), (create_volume_from_connected_server): * libgnomevfs/gnome-vfs-volume-monitor-private.h: Create collation keys for volume and drive display names, and strcmp the keys instead of the names. Fixes #321320. * libgnomevfs/gnome-vfs-method.c: (_gnome_vfs_method_shutdown): Remove unused module_element variable. 2006-04-25 Christian Neumair * libgnomevfs/gnome-vfs-directory.c: (directory_visit_internal): Return GNOME_VFS_ERROR_INTERRUPTED when callback returns 0. 2006-04-25 Christian Neumair * modules/ftp-method.c: (query_user_for_authn_info), (ftp_connection_create): Handle anonymous login failure, add query_user_for_authn_info documentation. Fixes #336619. 2006-04-25 Christian Neumair * libgnomevfs/gnome-vfs-volume-ops.c: (mount_unmount_thread): Don't strcmp NULL when ejecting. Partly fixes #337014. 2006-04-25 Christian Neumair * libgnomevfs/gnome-vfs-method.c: (module_element_free), (init_hash_table), (load_module), (load_module_in_path_list), (gnome_vfs_add_module_to_hash_table), (_gnome_vfs_method_shutdown), * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_shutdown): Add _gnome_vfs_method_shutdown, invoke each module's shutdown function when shutting down GnomeVFS. Fixes #154980. 2006-04-25 Alexander Larsson * modules/ftp-method.c: Better handling of existing files in do_create and do_makedir. Patch from Fabio Bonelli. 2006-04-25 Alexander Larsson * imported/neon/Makefile.am: Include sources needed to resolve all symbols. 2006-04-25 Julio M. Merino Vidal * libgnomevfs/xdgmimemagic.c, modules/fstype.c: Removed the hardcoded errno extern declaration as it clashes with the one in errno.h. Fixes build under Dragonfly BSD and closes bug #336382. 2006-04-25 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info-cache.c (get_all_parent_types): Lock around calls to xdg_mime_* 2006-04-21 Alexander Larsson * modules/default-modules.conf: Remove cdda, its in cdda-module.conf 2006-04-21 Julio M. Merino Vidal * configure.in: * modules/cdda-method.c: Check if cdparanoia contains FreeBSD-specific patches to use their libcam library. If so, use their modified cdrom_drive structure; otherwise, use the pristine definition. Fixes cdda-method's build under non-Linux, non-FreeBSD systems (such as NetBSD) and closes bug #134276. 2006-04-21 Alexander Larsson * modules/ftp-method.c (do_read_directory): Escape the symlink name before calling resolve_relative. 2006-04-21 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (_gnome_vfs_uri_resolve_all_symlinks_uri): Escape the symlink name before calling resolve_relative. 2006-04-21 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c: Correct the first line of comments in the acceptable table. 2006-04-21 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c: Escape ? in paths. This is a special character in URIs which there is no reason not to escape. * libgnomevfs/gnome-vfs-xfer.c: Correctly escape pathnames from _visit_uri when appending to uris. * programs/gnomevfs-ls.c: (main): Use gnome_vfs_get_uri_from_local_path, not gnome_vfs_escape_path_string. 2006-04-21 Christian Neumair * programs/Makefile.am: * programs/authentication.c: Add CLI authentication callbacks. * programs/gnomevfs-cat.c: (main): * programs/gnomevfs-copy.c: (main): * programs/gnomevfs-df.c: (main): * programs/gnomevfs-info.c: (main): * programs/gnomevfs-ls.c: (main): * programs/gnomevfs-mkdir.c: (main): * programs/gnomevfs-monitor.c: (main): * programs/gnomevfs-mv.c: (main): * programs/gnomevfs-rm.c: (main): Use CLI authentication. * programs/gnomevfs-xfer.c: Add Xfer testing utility. 2006-04-21 Christian Neumair * modules/smb-method.c: (string_nzero), (find_cached_server): Treat "" as NULL for SmbServerCacheEntry cache lookups. Should fix mass connection establishment. 2006-04-21 Martyn Russell * libgnomevfs/gnome-vfs-result.c: Removed duplicate GNOEM_VFS_ERROR_TIMEOUT string, fixes bug #335250. 2006-04-20 Alexander Larsson * daemon/gnome-vfs-async-daemon.c: * daemon/gnome-vfs-daemon-dir-handle.c: * daemon/gnome-vfs-daemon-handle.c: * daemon/gnome-vfs-daemon.c: * libgnomevfs/gnome-vfs-async-ops.c: * libgnomevfs/gnome-vfs-client-call.c: * libgnomevfs/gnome-vfs-client.c: * libgnomevfs/gnome-vfs-configuration.c: * libgnomevfs/gnome-vfs-daemon-method.c: * libgnomevfs/gnome-vfs-hal-mounts.c: * libgnomevfs/gnome-vfs-job.c: * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-module-callback-marshall.c: * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-xfer.c: * modules/cdda-cddb.c: * modules/file-method.c: * modules/ftp-method.c: * modules/http-method.c: * modules/http-neon-method.c: * modules/nntp-method.c: * modules/sftp-method.c: * modules/smb-method.c: * test/test-long-cancel.c: * test/test-mime-info-cache.c: * test/test-seek.c: * test/test-symlinks.c: Fix warnings from ICC. Patch from Kjartan Maraas 2006-04-20 Alexander Larsson * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-utils.c: Add gnome_vfs_resolve_symlink * modules/sftp-method.c: Work on symlink support Patch from Christian Neumair 2006-04-20 Alexander Larsson * configure.in: Bump version to 2.15.1 Gnome 2.14 work continues on gnome-2-14 branch 2006-04-20 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.14.1 === 2006-04-20 Alexander Larsson * NEWS: Update for release. 2006-04-17 Kjartan Maraas * configure.in: Remove obsolete entry for no_NO * po/no.po: And the translation. 2006-04-14 Dinoop Thomas * modules/smb-method.c: (add_cached_server), (find_cached_server), (get_cached_server), (update_user_cache), (lookup_user_cache), (initial_authentication), (prefill_authentication), (prompt_authentication), (save_authentication): Made extra checks so when debugging is enabled, it doesn't crash on Solaris while trying to print strings which are NULL. Fixes bug #305645. 2006-04-02 Vladimer Sichinava * configure.in: Added "ka" (Georgian) to ALL_LINGUAS 2006-03-30 Bastien Nocera * programs/Makefile.am: * programs/gnomevfs-df.c: (show_free_space), (ignore_volume), (main): add a program to show the amount of free space available on local filesystems 2006-03-28 Christian Kellner * libgnomevfs/gnome-vfs-address.c: Fix use of the IN6_ARE_ADDR_EQUAL macro. (Fixes #336390) Patch from Julio M. Merino Vidal 2006-03-29 Gora Mohanty * configure.in: Added 'or' (Oriya) to ALL_LINGUAS. 2006-03-27 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c (_gnome_vfs_get_unix_mount_table): OpenBSD support. Patch from Genadijus Paleckis 2006-03-20 Christian Neumair * modules/ftp-method.c: (do_path_command), (do_path_transfer_command), (invalidate_dirlist_cache), (do_open_directory), (do_read_directory): Use "/" when path is NULL. Fixes #308231. 2006-03-20 Christian Neumair * modules/ftp-method.c: (do_make_directory): * modules/sftp-method.c: (do_make_directory): Correctly return GNOME_VFS_ERROR_FILE_EXISTS if directory existed. Fixes #161279. 2006-03-20 Christian Neumair * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_add_volume): Set GnomeVFSVolume's is_read_only property to the value of the HAL devices's "volume.is_mounted_read_only" property. 2006-03-20 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: Use MAX(source_block_size, target_block_size) as copy block size. * modules/sftp-method.c: Clean up read/write to correctly handle multiple outstanding blocks. Increase block_size by max_req times to get better transfer performance. Based on patch from Christian Neumair 2006-03-13 Alexander Larsson * configure.in: Post-release version bump === gnome-vfs 2.14.0 === 2006-03-13 Alexander Larsson * configure.in: Update version to 2.14.0 * NEWS: Update for release 2006-03-04 David Zeuthen * configure.in: Remove build-time support for detecting gnome-mount. Add useful note to --with-hal-mount and friends that these parameters are not used if gnome-mount is detected * libgnomevfs/gnome-vfs-volume-ops.c: Detect gnome-mount and friends at run time instead of at build time 2006-03-03 Mikael Hallendal * libgnomevfs/gnome-vfs-xfer.c: (xfer_open_source): Emit progress with phase opening source. (copy_file): Set file size, fixes issue where using recursive and the files in a sub directory has the file size of the directory. 2006-03-03 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (_gnome_vfs_uri_resolve_all_symlinks_uri): Avoid crash when symlinks have : in them. (#323016) Patch from Christian Neumair 2006-03-02 David Zeuthen * configure.in: Require hal 0.5.7 for new crypto bits in libhal-storage 0.5.7 * libgnomevfs/gnome-vfs-hal-mounts.c: Don't read settings from /system/storage and remove code that uses it. Also use new API available in libhal-storage 0.5.7 and later instead of relying on a magic hal property volume.crypto_luks.clear.backing_volume. * schemas/system_storage.schemas.in: Removed * schemas/Makefile.am: Remove system_storage.schemas.in * po/POTFILES.in: Remove system_storage.schemas.in 2006-03-02 Alexander Larsson * libgnomevfs/xdgmimeglob.c (_xdg_glob_hash_insert_text): Fix leak in glob code: https://bugs.freedesktop.org/show_bug.cgi?id=5993 Patch from Martin Wehner 2006-03-02 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info-cache.c (gnome_vfs_mime_get_all_desktop_entries): Fix leak (#331931) Patch from Martin Wehner 2006-03-01 Tor Lillqvist * test/Makefile.am: test-parse-ls-lga is Unix-only. * test/test-long-cancel.c: Make it build on Win32, too. 2006-02-28 Alexander Larsson * modules/smb-method.c: Try to log in anonymously when possible. This fixes problems browsing workgroups and gives a lot less auth dialogs. However, it means you must put the username in the uri if you want to log in with a username on a share where anon login is allowed. Patch from Nate Nielsen 2006-02-28 Alexander Larsson * modules/file-method.c (get_access_info): Fix bug in optimization that made us overwrite the normal permissions. 2006-02-27 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.13.92 === 2006-02-27 Alexander Larsson * NEWS: Update for release. 2006-02-27 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: Don't use AVAHI_LOOKUP_USE_MULTICAST (#332634) patch from Mathias Hasselmann 2006-02-27 Alexander Larsson * libgnomevfs/gnome-vfs-uri.c: Add g_return_val_if_fail for some arguments. Add details to docs for gnome_vfs_uri_is_local. Patch from Christian Neumair 2006-02-27 Christian Neumair * src/xdgmimemagic.c: (_xdg_mime_magic_lookup_data): Make priority equality check more robust so that it works for three or more matches. Also allow matchlets with 0 priority. 2006-02-27 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_make_uri_from_input_internal): Prepend file:///, not file:// for strings that doesn't start with a slash. Fixes #329781 2006-02-27 Alexander Larsson * modules/file-method.c (get_access_info): Slight optimization. We try to do as few access calls as possible. 2006-02-24 Alexander Larsson * doc/tmpl/gnome-vfs-file-info.sgml: * libgnomevfs/gnome-vfs-file-info.h: * modules/file-method.c: Add and implement GNOME_VFS_FILE_INFO_NAME_ONLY for readdir. 2006-02-23 Christian Neumair * modules/sftp-method.c: Include . Fixes #325135. 2006-02-21 David Zeuthen * libgnomevfs/gnome-vfs-volume-ops.c (gnome_vfs_volume_eject) (gnome_vfs_volume_unmount): Get the hal_udi for from the drive if a volume doesn't have a hal_udi and we're using gnome-mount. This is the case for PC style floppy disks, IDE zip drives and other drives that hal cannot poll. This means we can use gnome-eject resp. gnome-eject for these which is necessary as we used gnome-mount to actually mount them (needs privs and needs to clean up mount point). Also fixes leaking the hal udi. This is also Red Hat bug #182046. * libgnomevfs/gnome-vfs-hal-mounts.c: Uncomment debug 2006-02-19 Christian Neumair * libgnomevfs/xdgmimemagic.c: (_xdg_mime_magic_lookup_data): When two unrelated MIME types with equal priorities match, don't assume one of them matches. Fixes #331719. 2006-02-18 David Zeuthen * libgnomevfs/gnome-vfs-volume-ops.c: Don't define the variables pmount_known_locations and pumount_known_locations when building with USE_GNOME_MOUNT as -Werror complains about it. * libgnomevfs/gnome-vfs-volume-monitor-private.h: (GnomeVFSDrivePrivate): Add hal_backing_crypto_volume_udi * libgnomevfs/gnome-vfs-hal-mounts.c (_hal_volume_policy_check): Show crypto volumes if they have no cleartext columes associated with them (_hal_add_volume): Remove GnomeVFSDrive for crypto drive if we are the corresponding cleartext volume (_hal_device_removed): Add back GnomeVFSDrive for crypto drive if the cleartext volume is going away * libgnomevfs/gnome-vfs-drive.c (gnome_vfs_drive_finalize): Free hal_backing_crypto_volume_udi 2006-02-17 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor.c (_gnome_vfs_volume_monitor_disconnect_all, _gnome_vfs_volume_monitor_unmount_all): Plug mem leaks found by manny. 2006-02-17 Alexander Larsson * libgnomevfs/gnome-vfs-volume-ops.c: Use pmount in /media if not using gnome-mount or hal-mount. 2006-02-15 Gustavo J. A. M. Carneiro * configure.in: Change --http-debug configure option name to --enable--http-debug. 2006-02-15 Jürg Billeter * devel-docs/Makefile.am: Don't needlessly create empty $(prefix)/doc directory. 2006-02-14 James Henstridge * modules/http-neon-method.c: fix some HTTP_DEBUG() calls to use GNOME_VFS_*_FORMAT_STR constants in their format strings, to fix build on 64 bit systems. 2006-02-13 Alexander Larsson * configure.in: Post-release version bump. === gnome-vfs 2.13.91 === 2006-02-13 Alexander Larsson * NEWS: Update for release * configure.in: Update version to 2.13.91 2006-02-08 JP Rosevear * modules/sftp-method.c (sftp_connect): handle 'Password:' for newer BSD and MacOSX releases (#322390) 2006-02-06 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: (handle_overwrite): For now, revert the change: 2006-01-15 Christian Neumair See bug #327984 2006-02-06 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-info-cache.c: Tweak default application handling a bit. Now if a mimetype has no default in defaults.list we pick any availible handler for that type before going on to the parent mimetype. This fixes e.g. the application/rtf case where we used to pick gedit (default for text/plain) instead of abiword (non-default, but only handler for application/rtf). * libgnomevfs/gnome-vfs-mime-private.h: Remove unused definition. 2006-02-02 Tor Lillqvist * configure.in: Don't use getaddrinfo() on Windows. It's implemented only on XP, and we want to support Windows 2000, too. 2006-01-28 David Zeuthen * libgnomevfs/gnome-vfs-volume.h (GnomeVFSVolumeOpCallback): Clarify documentation. 2006-01-24 David Zeuthen Eject fixes, based on initial patch from Alexander Larsson. Should fix #328126. * libgnomevfs/gnome-vfs-volume-ops.c: (mount_unmount_operation): Handle mount_point being NULL (gnome_vfs_volume_eject): Handle eject for TYPE_VFS_MOUNT volumes stemming from the hal backend (e.g. burn:// and cdda://) * libgnomevfs/gnome-vfs-volume-monitor.c: (_gnome_vfs_volume_monitor_find_volume_by_hal_udi): Also search the vfs_volumes as we now put burn:// and cdda:// volumes here (_gnome_vfs_volume_monitor_find_volume_by_hal_drive_udi): -do- * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_volume_policy_show_on_desktop): Remove the TODO here as alexl confirmed that there is no setting for hiding certain mounted volumes from the desktop (_hal_add_volume): Use TYPE_VFS_MOUNT for cdda:// and burn:// volumes as these are not file systems (_hal_update_all, _hal_device_added, _hal_device_removed): Put in some more debug here 2006-01-22 Christian Kellner * Makefile.am: Added MAINTAINERS file. 2006-01-17 Christian Kellner * configure.in: Post release version bump. === gnome-vfs 2.13.4 === 2006-01-17 Christian Kellner * NEWS: Update for release. * po/POTFILES.in: * po/POTFILES.skip: Move neon files from .in to .skip to fix distcheck. * test/Makefile.am: Remove queue test for now. 2006-01-16 Christian Kellner * libgnomevfs/gnome-vfs-job-queue.c: (thread_entry_point), (_gnome_vfs_job_schedule): Directly use the GnomeVFSJob struct not the job_handle. (_gnome_vfs_job_queue_init), (prioritize_threads): Prioritize threads. * libgnomevfs/gnome-vfs-job.h: Mark functions as internal with G_GNUC_INTERNAL. * configure.in: Require glib 2.9.3. 2006-01-16 Christian Kellner * libgnomevfs/gnome-vfs-mime-utils.h: * libgnomevfs/gnome-vfs-mime.c: Rename gnome_vfs_mime_type_for_name_and_data to gnome_vfs_get_mime_type_for_name_and_data. 2006-01-16 Christian Kellner * libgnomevfs/gnome-vfs-mime-utils.h: * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type_for_name), (gnome_vfs_mime_type_for_name_and_data): New mime utility functions for use with e.g. mmap'ed files (gnome_vfs_mime_type_from_name): Deprecated, use gnome_vfs_get_mime_type_for_name instead. Based on a patch from Paolo Borelli (#324185) 2006-01-15 David Zeuthen * libgnomevfs/gnome-vfs-volume-ops.c: (mount_unmount_thread): Use gnome-mount if configured to do so. * libgnomevfs/gnome-vfs-volume-monitor.c: (drive_name_is_unique): Do not test name uniqueness against hidden drives (volume_name_is_unique): Same for volumes * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_drive_policy_get_display_name): Vendor as returned from libhal- storage may be NULL; handle that case (_hal_volume_policy_check): Use new hal 0.5.6 API addition to hide volumes that are to be ignored * libgnomevfs/Makefile.am: Export $(bindir) as GNOME_VFS_BINDIR as it's needed to find gnome-mount and friends * configure.in: Look for gnome-mount and use it if found (unless specifically told not to; on by default). Require hal >= 0.5.6. 2006-01-15 Christian Neumair * libgnomevfs/gnome-vfs-xfer.c: (handle_overwrite): Return GNOME_VFS_ERROR_INTERRUPTED instead of GNOME_VFS_ERROR_FILE_EXISTS when aborting a transfer. 2006-01-12 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (list_add_items_and_size): Always pass GNOME_VFS_FILE_INFO_DEFAULT, even in FOLLOW_LINKS case. Doesn't really matter (default is 0), but looks cleaner. Patch from Christian Neumair (#325861) 2005-00-12 Archana Shah * libgnomevfs/gnome-vfs-xfer.c: (handle_overwrite): Skip the copy operation if we are trying to overwrite the file onto itself. Partly fixes bug# 311591 2006-01-11 Alexander Larsson * modules/ftp-method.c: don't use absolut paths, fixes #312343 Patch from Fabio Bonelli 2006-01-11 Alexander Larsson * modules/ftp-method.c: initial ftp proxy work, #113200 Patch from Fabio Bonelli 2006-01-10 Christian Kellner * configure.in: Require glib 2.9.2 * modules/file-method.c: Remove code copied from glib obsoleted with the dependency to glib 2.9.2. 2006-01-08 Christian Kellner * modules/http-neon-method.c: (http_get_file_info): Destroy the request object only after we have read out the headers. Patch from Christian Neumair (#325861). 2006-01-08 Christian Kellner * configure.in: Clean up some SSL stuff and report SSL support. Add --http-debug configure options to enable http module debugging support (activate it per default for cvs versions). * imported/neon/Makefile.am: * imported/neon/ne_auth.c: * imported/neon/ne_gnomevfs.c: * imported/neon/ne_utils.c: Make SSL work again. * modules/http-neon-method.c: Report NOT_SUPPORTED if a ssl uri was requested but no ssl support was compiled in. (#326030) 2006-01-07 Chao-Hsiung Liao * configure.in: Add "zh_HK" to ALL_LINGUAS. 2006-01-06 Christian Neumair * MAINTAINERS: Add. 2006-01-05 John McCutchan * modules/inotify-path.c: (ip_event_dispatch): When delivering a paired MOVED_TO event do the right thing and check the MOVED_TO filename instead of the MOVED_FROM. (#324999) 2006-01-03 Mark McLoughlin * configure.in: remove comment which refers to code which was removed when we started using AM_GCONF_SOURCE_2 2006-01-02 John McCutchan * modules/inotify-path.c: (ip_unmap_wd_dir), (ip_unmap_wd): dir_list can be empty. Fixes #325001. 2005-12-28 Christian Kellner * modules/http-neon-method.c: (do_seek): Only abort the transfer if position acutally changed. Path from Jan Kratochvil (#324984). 2005-12-19 Murray Cumming * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-utils.c: Expand some documentation to make it clearer what types of strings are expected/provided by some functions. 2005-12-19 John McCutchan * modules/file-method.c: (inotify_monitor_add), (inotify_monitor_cancel): * modules/inotify-helper.c: (ih_sub_cancel): Stop cancelling the subscription before it was really cancelled. This avoids freeing the subscription while it's still active and stops crashes. * modules/inotify-missing.c: * modules/inotify-path.c: * modules/inotify-sub.c: Add some debug output. 2005-12-19 John McCutchan * modules/inotify-helper.c: (ih_sub_add), (ih_sub_cancel), (ih_event_callback), (ih_not_missing_callback): Don't call ih_sub_setup anymore. Unconditionally call im_rm. * modules/inotify-missing.c: (im_scan_missing): Don't call ih_sub_setup anymore. * modules/inotify-path.c: (ip_start_watching): Rename 'dir' to 'dirname'. * modules/inotify-sub.c: (ih_sub_new), (ih_sub_free), (ih_sub_get_uri_dirname), (ih_sub_get_uri_filename), (ih_sub_fix_dirname), (ih_sub_setup): Rework ih_sub_setup. * modules/inotify-sub.h: Make ih_sub_setup private. 2005-12-19 Christian Kellner * libgnomevfs/gnome-vfs-file-info.h: Tweak macros to acutally use the value returned from the ? : statement to keep gcc happy. Patch from Trevor Davenport 2005-12-14 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.13.3 === 2005-12-14 Alexander Larsson * NEWS: Update for release. 2005-12-13 Alexander Larsson * libgnomevfs/gnome-vfs-method.c (load_module): Load methods with G_MODULE_BIND_LOCAL. 2005-12-12 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.13.2 === 2005-12-12 Alexander Larsson * modules/inotify-path.c: Define __KERNEL_STRICT_NAMES to make things build. 2005-12-12 Alexander Larsson * imported/neon/Makefile.am (NEON_INCLUDES): Add ne_xmlreq.h 2005-12-12 Alexander Larsson * NEWS: Update for release. 2005-12-12 Christian Kellner * modules/http-neon-method.c: Check for mime type validity before using it in a comparation. (#323657). Patch from William Jon McCann 2005-12-11 John McCutchan * modules/inotify-helper.c: Disable debug messages * modules/inotify-kernel.c: Tweak timings to be suitable for a application. 2005-12-10 John McCutchan * modules/Makefile.am: Add new inotify files. * modules/file-method.c: (inotify_monitor_add), (do_monitor_add), (inotify_monitor_cancel), (do_monitor_cancel): Adapt to changes in inotify backend. * modules/inotify-helper.c: (ih_startup), (ih_sub_add), (ih_sub_cancel), (ih_event_callback), (ih_not_missing_callback), (ih_mask_to_EventType): * modules/inotify-helper.h: * modules/inotify-kernel.c: (ik_event_new_dummy), (ik_watch), (ik_ignore): * modules/inotify-kernel.h: * modules/inotify-missing.c: (im_startup), (im_add), (im_rm), (im_scan_missing): * modules/inotify-missing.h: * modules/inotify-path.c: (ip_startup), (ip_map_path_dir), (ip_map_sub_dir), (ip_map_wd_dir), (ip_start_watching), (ip_unmap_path_dir), (ip_unmap_wd_dir), (ip_unmap_wd), (ip_unmap_sub_dir), (ip_unmap_all_subs), (ip_stop_watching), (ip_watched_dir_new), (ip_watched_dir_free), (ip_wd_delete), (ip_event_dispatch), (ip_event_callback): * modules/inotify-path.h: * modules/inotify-sub.c: (ih_sub_new), (ih_sub_free), (ih_sub_setup): * modules/inotify-sub.h: Factored the inotify backend into more modules. inotify-path: A path based interface to inotify-kernel. inotify-missing: Polls twice a second for missing subscriptions. inotify-sub: An inotify helper subscription. Fixes the busted missing list. The missing list now monitors each subscription instead of each directory. This fixes issues with the missing list and symbolic links. Fixes monitoring of paths with spaces in them. Includes code to take advantage of race avoidance flags scheduled for inclusion with 2.6.16. Supports "don't follow symbolic link" behaviour when it is added to gnome-vfs. 2005-12-09 Alexander Larsson * modules/nntp-method.c (generate_folder_from_element): Fix warning. 2005-12-07 John McCutchan * modules/local_inotify.h: Update inotify header with my changes queued for 2.6.16. 2005-12-06 John McCutchan * modules/inotify-helper.c: * modules/inotify-kernel.c: Just use the local copy of the headers. To many people have broken systems and are complaining. 2005-12-04 Christian Kellner * modules/http-neon-method.c: (neon_session_pool_insert): Forget auth cached when inserting the session into the session cache. See the code comments for details. 2005-12-04 Christian Kellner * configure.in: Move inotify checks into the fs monitor section. Remove "have inotify" summary notice but merge it into the "FS monitor backends" notice. 2005-12-04 Christian Kellner * libgnomevfs/gnome-vfs-address.c: * libgnomevfs/gnome-vfs-address.h: Implement gnome_vfs_address_equal () and gnome_vfs_address_match (). * test/Makefile.am: * test/test-address.c: Add tests for GnomeVFSAddress objects. 2005-12-02 Christian Kellner * libgnomevfs/gnome-vfs-address.c: * libgnomevfs/gnome-vfs-address.h: No code/logic changes only reformating. 2005-12-02 Christian Kellner The "Get Out With The Sickness" commit. It replaces gnome-vfs' own implementation of a thread pool and priority queue (which was never working correctly). * libgnomevfs/gnome-vfs-job-queue.c: Use GThreadPool. It lacks prioritizing for now - which was not working anyway. We will add that to glib's GThreadPool and then re-add here. * libgnomevfs/gnome-vfs-job-queue.h: Mark functions as internal with G_GNUC_INTERNAL and remove gnome_vfs_job_queue_run (). * libgnomevfs/gnome-vfs-pthread.c: * libgnomevfs/gnome-vfs-init.c: Remove calls to thread pool's init and shutdown functions which are gone now. * libgnomevfs/gnome-vfs-thread-pool.c: * libgnomevfs/gnome-vfs-thread-pool.h: * libgnomevfs/gnome-vfs-job-slave.c: * libgnomevfs/gnome-vfs-job-slave.h: Obsoleted by GThreadPool. Removed. * libgnomevfs/Makefile.am: Remove -thread-pool.[ch] and -job-slave.[ch] * libgnomevfs/gnome-vfs-job.c: Remove gnome-vfs-job-slave.h include. 2005-12-01 John McCutchan * modules/inotify-helper.c: (inotify_helper_cancel): Fix crash when opening gtk file selector. 2005-12-01 Christian Neumair * libgnomevfs/xdgmime*: Sync with xdgmime. 2005-12-01 John McCutchan * modules/file-method.c: (inotify_monitor_cancel): Use inotify_helper_cancel. * modules/inotify-helper.c: (inotify_helper_init), (inotify_sub_new), (inotify_sub_free), (inotify_helper_add), (inotify_helper_cancel), (ih_watched_dir_new), (ih_watched_dir_free), (ih_emit_one_event), (ih_emit_event), (ih_wd_delete), (ih_event_callback), (ih_is_missing), (ih_send_not_missing_events), (ih_is_not_missing), (ih_scan_missing), (ih_mask_to_EventType): * modules/inotify-helper.h: * modules/inotify-kernel.c: (ik_startup), (ik_read_callback), (ik_process_eq_callback): Pretty much a rewrite. Much less code. Fixes many problems with old backend. Including: 1) The gamin influence. 2) Support mapping multiple paths to one watch descriptor. Watching the symbolic link and its target now work, giving you events on both paths even though they share the same wd. 3) Monitor a files parent directory, not the file itself. My latest inotify changes in 2.6.13 needed this. 2005-12-01 Christian Kellner * libgnomevfs/gnome-vfs-resolve.c: Check if EAI_NODATA is defined before using it. Patch by Joe Marcus Clarke . (#168203 part I) 2005-11-30 Christian Kellner * modules/bzip2-method.c: (do_read): Return GNOME_VFS_ERROR_EOF on BZ_STREAM_END result. Patch from jylefort@FreeBSD.org (#322652) 2005-11-30 Christian Kellner * libgnomevfs/gnome-vfs-configuration.c: Spit out a warning if loading if a config file failed (#41139). Patch from Christian Neumair 2005-11-30 John McCutchan * modules/inotify-kernel.c: (ik_move_stats), (ik_mask_to_string), (ik_pair_events), (ik_process_events): * modules/inotify-kernel.h: Add utility functions: ik_move_stats - returns the # of matched moves and missed moves. Missed moves is an over-estimate because we count impossible to match moves to. ik_mask_to_string - returns the string version of the event. Fix crash when moving files in nautilus. 2005-11-30 Christian Neumair * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_application_for_uri): Don't call gnome_vfs_mime_application_supports_uris with NULL argument. Instead, always return NULL if no default application is associated with the given MIME type. 2005-11-30 Christian Kellner * libgnomevfs/gnome-vfs-file-info.h: Correct a typo. * modules/file-method.c: (do_read_directory): Get access rights if GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS is requested. * programs/gnomevfs-ls.c: (show_data), (list): Add command line option to get access rights and display them. 2005-11-29 John McCutchan * modules/inotify-helper.c: (mask_to_event_type), (mask_to_event_type_dir_as_file), (mask_to_event_type_file_as_dir), (gam_inotify_emit_one_event), (gam_inotify_emit_events), (gam_inotify_process_event), (inotify_helper_add), (inotify_helper_remove), (inotify_helper_init), (gam_inotify_nolonger_missing), (gam_inotify_nolonger_link), (gam_inotify_poll_link), (gam_inotify_sanity_check): inotify-helper now uses inotify-kernel. * modules/inotify-kernel.c: (ik_startup), (ik_event_new_dummy), (ik_event_free), (ik_ignore), (ik_read_callback), (ik_process_events), (ik_process_eq_callback): * modules/inotify-kernel.h: Slight changes for inotify-helper. 2005-11-29 Christian Kellner * doc/tmpl/gnome-vfs-file-info.sgml: * libgnomevfs/gnome-vfs-file-info.h: Add GNOME_VFS_FILE_INFO_FIELDS_IDS to indicate UID/GID fields are valid. * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_stat_to_file_info): * modules/http-neon-method.c: * modules/nfs-method.c: (nfs_attr_to_file_info): * modules/sftp-method.c: (buffer_read_file_info): * modules/tar-method.c: (do_get_file_info): Set GNOME_VFS_FILE_INFO_FIELDS_IDS if uid/gid are valid. * programs/gnomevfs-info.c: (show_file_info): Honor GNOME_VFS_FILE_INFO_FIELDS_IDS. Fixes #40644. 2005-11-28 John McCutchan * modules/Makefile.am: Compile inotify-kernel.c, ship inotify-kernel.h. * modules/inotify-kernel.c: (ik_startup), (ik_event_internal_new), (ik_event_new), (ik_event_free), (ik_watch), (ik_ignore), (ik_read_events), (ik_read_callback), (g_timeval_lt), (g_timeval_eq), (ik_pair_events), (ik_event_add_microseconds), (ik_event_ready), (ik_pair_moves), (ik_process_events), (ik_process_eq_callback): * modules/inotify-kernel.h: Factored out inotify code that deals with the kernel and raw events. 2005-11-27 Christian Kellner * imported/neon/Makefile.am: Define NE_HAVE_DAV. 2005-11-26 Tor Lillqvist * libgnomevfs/gnome-vfs-volume-ops.c: Make it compile on Win32 again, although it does not really do anything useful on Win32. Just providing the API as no-ops, more or less, to avoid ifdefs in client code. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_to_string): Add logic for Win32 so we won't return crap like /x:/foo/bar.zap. * modules/file-method.c (rename_helper): On Win32, if force_replace and old_exists, try removing the old file (or directory) first. Don't then bother on Win32 with the EISDIR error case after the rename. 2005-11-26 Christian Kellner * libgnomevfs/gnome-vfs-xfer.c: (copy_items), (move_items), (link_items): Free progress_info->duplicate_name before setting it (#322324). Patch from Richard Hult . 2005-11-26 Christian Kellner * modules/http-neon-method.c: Port http neon method to neon 0.25; 2005-11-26 Christian Kellner * acinclude.m4: * imported/neon/Makefile.am: * imported/neon/ne_gnomevfs.c: Make neon build again. Part I of the port to neon 0.25. 2005-11-24 Alexander Larsson * configure.in: * modules/Makefile.am: * modules/file-method.c: * modules/inotify-helper.c: * modules/inotify-helper.h: * modules/local_inotify.h: * modules/local_inotify_syscalls.h: Inotify support, patch from John McCutchan 2005-11-22 Alexander Larsson * configure.in: * modules/Makefile.am: * module/pty-open.[ch] * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-pty.[ch]: Move pty-open to libgnomevfs and add some features * modules/sftp-method.c: (sftp_connect): Use the new pty-open * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: * libgnomevfs/gnome-vfs-volume-ops.c: Implement password asking when mounting. Patch from Nate Nielsen 2005-11-22 Alexander Larsson * modules/dns-sd-method.c: * libgnomevfs/gnome-vfs-dns-sd.c Port to Avahi 0.6 * configure.in: Require avahi 0.6 2005-11-22 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: Revert accidental removal of avahi code. 2005-11-16 Christian Kellner * programs/gnomevfs-ls.c: Use GNOME_VFS_SIZE_FORMAT_STR in the format string and avoid so the cast to glong. This should fix bug #314691. 2005-11-14 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.13.1 === 2005-11-14 Alexander Larsson * NEWS: Update for release 2005-11-14 Federico Mena Quintero * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_delete_items): Turn on progress->progress_info->top_level_item. This will make Nautilus know that it must remove the metadata of really-deleted files (in nautilus-file-operations.c:sync_transfer_callback(): GNOME_VFS_XFER_PHASE_DELETESOURCE). Fixes part of bug #45953. 2005-11-14 Alexander Larsson * doc/gnome-vfs-2.0-sections.txt: * doc/tmpl/gnome-vfs-uri.sgml: * libgnomevfs/gnome-vfs-async-ops.c: * libgnomevfs/gnome-vfs-cancellation.c: * libgnomevfs/gnome-vfs-context.c: * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-dns-sd.c: * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-find-directory.c: * libgnomevfs/gnome-vfs-inet-connection.c: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs/gnome-vfs-job-queue.c: * libgnomevfs/gnome-vfs-method.c: * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-info-cache.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-monitor.c: * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-module-callback.c: * libgnomevfs/gnome-vfs-module-shared.c: * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-parse-ls.c: * libgnomevfs/gnome-vfs-resolve.c: * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-socket-buffer.c: * libgnomevfs/gnome-vfs-socket.c: * libgnomevfs/gnome-vfs-ssl.c: * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/gnome-vfs-volume-monitor.c: * libgnomevfs/gnome-vfs-volume.c: * libgnomevfs/gnome-vfs-xfer.c: Documentation fixes from archana.shah@wipro.com (#313661) 2005-11-14 Alexander Larsson * configure.in: * libgnomevfs/Makefile.am: Hide symbols that start with _ * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-hal-mounts.c: * libgnomevfs/gnome-vfs-method.c: * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-private.h: * libgnomevfs/gnome-vfs-volume-monitor-client.c: * libgnomevfs/gnome-vfs-volume-monitor-client.h: * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: * libgnomevfs/gnome-vfs-volume-monitor-private.h: * libgnomevfs/gnome-vfs-volume-monitor.c: * libgnomevfs/gnome-vfs-volume.c: Make private functions used by the daemon _private. * modules/file-method.c: Fix up use of private gnome-vfs library function. 2005-11-08 Kjartan Maraas * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_equal): Return early if the two URIs are the same. Patch from Christian Neumair. Closes bug #302743. 2005-11-08 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Don't ignore return value from handle_error (#320869) Patch from paolo borelli 2005-11-08 Alexander Larsson * libgnomevfs/gnome-vfs-cancellable-ops.c (gnome_vfs_get_file_info_uri_cancellable): Check for NULL info. (#320476) Patch from Thomas Wabner 2005-11-08 Alexander Larsson * doc/about.sgml: Change example to handle shell arguments. 2005-11-07 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_add_volume): Fix for earlier change. Patch from Jon Nettleton 2005-11-04 Matthias Clasen * libgnomevfs/xdgmime.c (xdg_mime_list_mime_parents): Prevent a segfault. 2005-11-04 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c: Fix problem with multiple cd volumes (#319689) Patch from Jon Nettleton 2005-10-30 Emmanuele Bassi * programs/gnomevfs-ls.c: (list), (main): fix typo (quite => quiet). 2005-10-30 Christian Kellner * programs/gnomevfs-ls.c: (list), (main): Add command line option to suppress stat info output and another one for timing the operation. 2005-10-28 Christian Neumair * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-mime-private.h: * libgnomevfs/gnome-vfs-mime-utils.h: * libgnomevfs/gnome-vfs-vfs-utils.c: Add gnome_vfs_get_slow_mime_type API. Rename _gnome_vfs_get_slow_mime_type to _gnome_vfs_get_slow_mime_type_internal, make it return errors on failure and use it in gnome_vfs_url_show_with_env and gnome_vfs_get_slow_mime_type. 2005-10-26 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: No need to get server version to check for success. * modules/dns-sd-method.c: Also support davs. 2005-10-25 Alexander Larsson * modules/Makefile.am: Add Avahi cflags/libs to dns-sd module 2005-10-25 Alexander Larsson * configure.in: * libgnomevfs/gnome-vfs-dns-sd.c: * modules/dns-sd-method.c: Add Avahi support, use in favour of Howl by default 2005-10-20 Christian Neumair * modules/ftp-method.c: (query_user_for_authn_info), (ftp_connection_create): * modules/sftp-method.c: (invoke_full_auth), (sftp_connect): * modules/smb-method.c: (prompt_authentication), (perform_authentication): Correctly return GNOME_VFS_ERROR_CANCELLED if an authentication was cancelled. 2005-10-20 Christian Neumair * libgnomevfs/gnome-vfs-parse-ls.c: (is_last_column), (vfs_parse_filedate): (gnome_vfs_parse_ls_lga): Improve parsing of files which have names that match dates, years or times of day. Fixes #163671. 2005-10-20 Alexander Larsson * test/.cvsignore: * test/Makefile.am: * test/test-long-cancel.c: Add a cancellation test for http. This shows a problem in the patch in bug #123472 2005-10-20 Sven Herzberg reviewed by: Christian Kellner * doc/gnome-vfs-2.0-sections.txt, * libgnomevfs/gnome-vfs-ops.c, * libgnomevfs/gnome-vfs-ops.h: add gnome_vfs_exists as the text uri pendant to gnome_vfs_uri_exists 2005-10-20 Christian Kellner * programs/gnomevfs-info.c: (main): Add command line options to force slow mime type detection and the following of symlinks. 2005-10-19 Matthias Clasen * libgnomevfs/xdg*.[hc]: Sync to upstream to fix handling of the mime cache. 2005-10-17 Christian Neumair * libgnomevfs/gnome-vfs-utils.c: (_gnome_vfs_uri_resolve_all_symlinks_uri): Correctly resolve nested symlinks without accessing invalid memory. Fixes #318457. 2005-10-17 Alexander Larsson * test/Makefile.am: * test/test-parse-ls-lga.c: Add ls parser test from #163671 2005-10-11 Bastien Nocera reviewed by: Alexander Larsson * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_read_cancellable): Make sure bytes_read is set to 0 when the read returns an error (fixes possible problems using gnomevfs-cat with methods that don't set *bytes_read to 0 when an error occurs) 2005-10-12 Bastien Nocera reviewed by: Alexander Larsson * programs/gnomevfs-ls.c: (show_data), (list), (main): Add the ability to list more than one directory, really test dir_close() 2005-10-05 Edward Hervey * configure.in: (HAVE_SAMBA_OLD_CLOSE): * modules/smb-method.c: Added correct handling of the renaming of the close function pointer in samba's libsmbclient.h (close --> close_fn) 2005-10-03 Alexander Larsson * configure.in: Bump version to 2.13.1. Further 2.12.x work is on gnome-2-12 branch. === gnome-vfs 2.12.1 === 2005-10-03 Alexander Larsson * NEWS: Update for 2.12.1. 2005-09-30 Alexander Larsson * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: (_gnome_vfs_mime_sniff_buffer_get): Fix mime sniffing being broken for small file, due to change in EOF behaviour in 2005-09-07 change. 2005-09-29 Tor Lillqvist * libgnomevfs/gnome-vfs-configuration.c * libgnomevfs/gnome-vfs-method.c: Include gnome-vfs-private-utils.h on Win32 to get the redefinitions of GNOME_VFS_SYSCONFDIR and GNOME_VFS_LIBDIR so that we don't have compile-time pathnames in the binary, and install-anywhere actually works. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): Simplify the Win32 code. Don't call gnome_vfs_escape_path_string() as the Unix code doesn't either. Just turn backslashes into slashes. I am still not sure whether it is correct for all use cases, though. Unfortunately much GNOME software mixes URIs and pathnames rather freely (which mostly works on Unix where pathname syntax matches the local part of a file: URI). The parameter to this function is called text_uri, and said to be "a string representing a URI". What does that mean? Is it actually a pathname in the so-called GLib file name encoding (on-disk encoding on Unix, UTF-8 on Windows), or a URI that already is properly URI-escaped? Apparently currently it can be either, sigh. 2005-09-13 Christian Neumair * libgnomevfs/gnome-vfs-utils.c: (_gnome_vfs_uri_resolve_all_symlinks_uri): Partially revert the last commit which was a workaround for a bug in * libgnomevfs/gnome-vfs-uri.c: (make_full_uri_from_relative), (gnome_vfs_uri_resolve_relative): Properly resolve symlinks on the toplevel for URIs without any domain. Improve documentation. 2005-09-13 Christian Neumair * libgnomevfs/gnome-vfs-utils.c: (_gnome_vfs_uri_resolve_all_symlinks_uri): Correctly resolve symlinks, and correctly re-append the rest of the URI text upon resolution. Fixes #308639. 2005-09-13 Stepan Kasal * gnome-vfs-2.0.pc.in: Add dependency on gobject-2.0. * gnome-vfs-module-2.0.pc.in: Likewise; also add the dependencies which were added to gnome-vfs-2.0.pc.in on 2004-10-13. 2005-09-12 Christian Neumair * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_find_directory_cancellable): NULLify *result_uri before doing anything. Partially fixes #308639. 2005-09-08 Christian Kellner * libgnomevfs/gnome-vfs-hal-mounts.c: (_gnome_vfs_hal_mounts_modify_drive), (_gnome_vfs_hal_mounts_modify_volume): Fix path char array so we can use PATH_MAX - 1 bytes in the readlink () call. Path from Robert Love . 2005-09-08 Tor Lillqvist * libgnomevfs/Makefile.am (EXTRA_DIST): Include libgnomevfs_win32_sources which otherwise wouldn't be in the tarball as make distdir is run on Unix. 2005-09-07 Christian Kellner * libgnomevfs/gnome-vfs-mime.c: (file_read_binder): Fix error checking logic for the fread call. Pointed out by Kjartan Maraas 2005-09-06 Alexander Larsson * autogen.sh: Require automake 1.8 * libgnomevfs/Makefile.am: Work with 1.8 * daemon/Makefile.am: Don't dist auto-build corba files (#315294) 2005-09-05 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.12.0 === 2005-09-05 Alexander Larsson * configure.in: Bump version to 2.12.0 * NEWS: Update for release 2005-08-30 David Zeuthen * libgnomevfs/gnome-vfs-hal-mounts.c: Fix up some issues with the HAL backend; for details see this bug report http://bugzilla.gnome.org/show_bug.cgi?id=171073#c17 The problem is that the hal backend makes the mistake of not adding a drive/volume if it fails the policy checks. For instance, this means that the drive/volume for e.g. /home or /usr is not added since we don't want to show an icon for this location. The correct behavior, if policy checks fails, is to still add the drive/volume but set the is_user_visble flag to FALSE. Also rework how debbugging works. 2005-08-31 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime.c: Wrap all remaining calls to xdg_mime with the mime lock. #170947 2005-08-29 Christian Neumair * libgnomevfs/gnome-vfs-xfer.c: (copy_directory): set source/target URI before processing each of the copied files. Fixes #310061. 2005-08-28 Christian Kellner * libgnomevfs/gnome-vfs-hal-mounts.c: (_gnome_vfs_hal_mounts_modify_drive), (_gnome_vfs_hal_mounts_modify_volume): Check both the listed device node and its resolved link target against HAL, before adding as a new device. Patch from Robert Love . Fixes bug #314490. 2005-08-29 Tor Lillqvist * gnome-vfs-zip.in: Include also documentation in the developer zipfile. 2005-08-24 Christian Kellner * configure.in: Post release version bump. === gnome-vfs 2.9.92 === 2005-08-24 Christian Kellner * NEWS: Update for release. * configure.in: Bump to version 2.11.92 2005-08-23 Christian Kellner * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_add_drive_without_volumes), (_hal_add_volume): Honour hal's storage.eject_required flag. This fixes bug #314272 2005-08-23 Christian Kellner * libgnomevfs/gnome-vfs-mime-info.c: (add_data_dir), (gnome_vfs_mime_init): Use g_get_user_data_dir () instead of a home grown solution. This fixes bug #168549 2005-08-23 Stepan Kasal * acinclude.m4 (LIBNEON_SOURCE_CHECKS): NEON_SSL is an autoconf macro in current version of neon; we have to temporarily redefine it if we want to use it as AC_DEFINEd symbol. * configure.in: Improve quoting and other cosmetic changes. 2005-08-10 David Zeuthen * libgnomevfs/gnome-vfs-hal-mounts.c: (_gnome_vfs_hal_mounts_modify_volume): Handle the drives that HAL doesn't detect media for (e.g. IDE Zip drives, legacy x86 floppies) 2005-07-28 Tor Lillqvist * imported/neon/Makefile.am (libneon_la_LDFLAGS): As libneon is a static library, no need to link with libgnomevfs, especially as it isn't even built yet after the below change. 2005-07-27 Tor Lillqvist * Makefile.am (SUBDIRS): Reorder: put imported first, as the xdgmime stuff in libgnomevfs depends on imported/fnmatch on Win32. * libgnomevfs/gnome-vfs-ssl.c: Use on Win32. 2005-07-25 Christian Kellner * configure.in: Post release version bump. === gnome-vfs 2.11.90 === 2005-07-25 Christian Kellner * NEWS: Update for release * configure.in: Bump to version 2.11.90 2005-07-24 Christian Kellner * configure.in: Indicate if we build the cdda method * modules/cdda-cddb.c: (CDDBRead): Initialize disc. This should fix bug #309661. 2005-07-24 Christian Kellner * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_drive_policy_get_display_name): Avoid displaying (null) if the CD-ROM is not a combo drive. Fixes bug #310296. Patch from Sebastien Bacher . 2005-07-23 Christian Kellner * modules/http-neon-method.c: Don't loop ad infinitum when authentication fails on GET. Also fix a Typo. Fixes bug #310596. Patch from jylefort@FreeBSD.org. 2005-07-18 Sebastien Bacher * libgnomevfs/gnome-vfs-filesystem-type.c: list reiser4, fix the trash issues with it, patch by James Lademann (Closes: #153100). 2005-07-18 Alexander Larsson * modules/sftp-method.c: Handle errors correctly (#304022) Patch from Sebastien Bacher 2005-07-15 Alexander Larsson * configure.in: Disable cdda method by default. We don't recommend that you ship or use this module atm. 2005-07-15 William Jon McCann * modules/file-method.c (do_is_local): Add autofs and unknown filesystem types to not local list (#310418) 2005-07-15 Alexander Larsson * libgnomevfs/gnome-vfs-uri.[ch]: Handle escaped chars in username/password (#89106) Patch from Ryan Lortie 2005-07-14 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: (howl_resolve_idle): actually pass text parameters for mDNS (#310292) Patch from Christian Persch 2005-07-11 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.11.4 === 2005-07-11 Alexander Larsson * NEWS: Update for release. 2005-07-08 Federico Mena Quintero * libgnomevfs/gnome-vfs-cancellable-ops.c (gnome_vfs_find_directory_cancellable): Canonicalize the near_uri unconditionally. If we are finding a trash directory, we also need to look at the real device, not the device on which the symlink is stored. Also, return an error if we cannot canonicalize the symlink. 2005-07-08 Paolo Borelli * libgnomevfs/gnome-vfs-xfer.[ch]: add an option to not preserve permissions when xfering a file. Bug 309604. 2005-07-07 David Zeuthen * libgnomevfs/gnome-vfs-hal-mounts.c (_hal_drive_policy_get_icon): Support storage.icon.drive property for icon supplied by vendor (_hal_volume_policy_get_icon): -do- for storage.icon.volume (_hal_add_volume): Reuse GnomeVFSDrive object if it already exists 2005-07-05 Christian Kellner Second part of the even-more-rocking-hal-support by David Zeuthen : Fixes pointed out by Alexander Larsson. * libgnomevfs/gnome-vfs-hal-mounts.h: Don't define HAL_MOUNTS_INVALID_URI as it's actually not used * libgnomevfs/gnome-vfs-hal-mounts.c: Uncomment a lot of g_debug calls (GnomeVFSHalUserData): Add display_* settings from gconf (_hal_size_as_string): Delete this function (_hal_drive_policy_get_display_name): Use gnome_vfs_format_file_size_ for_display instead of _hal_size_as_string (_hal_drive_policy_check): Use settings from GnomeVFSHalUserData instead of calling into gconf (_hal_add_drive_without_volumes): Set activation_uri to empty string instead of HAL_MOUNTS_INVALID_URI (_hal_add_volume): Don't attempt to reuse a drive if it's already there - instead just delete the drive and add a new one. Also set activation_uri to empty string instead of HAL_MOUNTS_INVALID_URI (_hal_get_settings_from_gconf): New function (_hal_settings_changed): Call _hal_get_settings_from_gconf (_gnome_vfs_hal_mounts_init): Call _hal_get_settings_from_gconf 2005-07-01 Christian Kellner * programs/gnomevfs-info.c: Add the "Default app" field. Fixes bug #309319. Patch from Joe Shaw 2005-07-01 Christian Kellner * configure.in: Post release version bump. === gnome-vfs 2.11.3 === 2005-07-01 Christian Kellner * NEWS: Update for release. * po/POTFILES.in: Mark strings in libgnomevfs/gnome-vfs-hal-mounts.c as UTF-8 encoded. This fixes broken distcheck. 2005-07-01 Christian Kellner * schemas/system_storage.schemas.in: New file. Also part of the hal patch from David. 2005-06-30 Alexander Larsson * configure.in: * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-hal-mounts.[ch]: * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: * libgnomevfs/gnome-vfs-volume-monitor-private.h: * libgnomevfs/gnome-vfs-volume-monitor.c: * libgnomevfs/gnome-vfs-volume-ops.c: (report_mount_result), * libgnomevfs/gnome-vfs-volume.c: (gnome_vfs_volume_finalize): * schemas/Makefile.am: Improvements to the hal-based version of the volume/drive handling. Now also allows hal-specific mount/unmount/eject apps. Patch from David Zeuthen 2005-06-23 Alexander Larsson * libgnomevfs/gnome-vfs-mime.c: add missing locking around some xdg_mime calls (#170947) Patch from Joe Marcus Clarke 2005-06-23 Narayana Pattipati * libgnomevfs/gnome-vfs-filesystem-type.c: Add an entry for Common Internet File System (CIFS) so that it supports trash volume. Bugzilla bug#145442. 2005-06-10 Federico Mena Quintero * libgnomevfs/xdgmime.c (xdg_mime_init_from_directory): Apply the fix from https://bugs.freedesktop.org/show_bug.cgi?id=3506 --- pass the right size to realloc(). 2005-06-08 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.11.2 === 2005-06-08 Alexander Larsson * NEWS: Update for release. 2005-06-05 Christian Kellner * configure.in: Just make configuration summary more pretty. * programs/gnomevfs-cat.c: * programs/gnomevfs-copy.c: * programs/gnomevfs-info.c: * programs/gnomevfs-ls.c: * programs/gnomevfs-mkdir.c: * programs/gnomevfs-monitor.c: * programs/gnomevfs-mv.c: * programs/gnomevfs-rm.c: Use gnome_vfs_make_uri_from_shell_arg () so we don't have to specify full URIs for local paths. 2005-06-02 Christian Neumair * modules/ftp-method.c: (get_list_command): Use const modifier for command candidates. 2005-06-02 Christian Neumair * modules/ftp-method.c: (get_list_command), (do_open_directory): Use smarter method to figure out what "LIST" parameters a particular FTP server supports. Fixes #48427. 2005-05-30 Christian Kellner * libgnomevfs/gnome-vfs-mime.c: (_gnome_vfs_get_mime_type_internal): Only use extensions as the more accurate mime-type if the mime-type of the extension is a subclass of text/plain. Fallback to text/plain if not. This should fix bug #304238. 2005-05-29 Christian Kellner * programs/gnomevfs-info.c: (main): Use gnome_vfs_make_uri_from_input_with_dirs () to smartly guess the uri from user input. 2005-05-26 Anders Carlsson * doc/tmpl/gnome-vfs-application-registry.sgml: * doc/tmpl/gnome-vfs-async-ops.sgml: * doc/tmpl/gnome-vfs-cancellation.sgml: * doc/tmpl/gnome-vfs-context.sgml: * doc/tmpl/gnome-vfs-directory-basic-ops.sgml: * doc/tmpl/gnome-vfs-directory-find-ops.sgml: * doc/tmpl/gnome-vfs-directory-list-ops.sgml: * doc/tmpl/gnome-vfs-dns-sd.sgml: * doc/tmpl/gnome-vfs-drive.sgml: * doc/tmpl/gnome-vfs-file-advanced-ops.sgml: * doc/tmpl/gnome-vfs-file-basic-ops.sgml: * doc/tmpl/gnome-vfs-file-info-ops.sgml: * doc/tmpl/gnome-vfs-file-info.sgml: * doc/tmpl/gnome-vfs-file-rw-ops.sgml: * doc/tmpl/gnome-vfs-file-size.sgml: * doc/tmpl/gnome-vfs-file-trunc-ops.sgml: * doc/tmpl/gnome-vfs-inet-connection.sgml: * doc/tmpl/gnome-vfs-init.sgml: * doc/tmpl/gnome-vfs-method.sgml: * doc/tmpl/gnome-vfs-mime-database-deprecated.sgml: * doc/tmpl/gnome-vfs-mime-database.sgml: * doc/tmpl/gnome-vfs-mime-monitor.sgml: * doc/tmpl/gnome-vfs-mime.sgml: * doc/tmpl/gnome-vfs-module-callback-module-api.sgml: * doc/tmpl/gnome-vfs-module-callback.sgml: * doc/tmpl/gnome-vfs-module-shared.sgml: * doc/tmpl/gnome-vfs-module.sgml: * doc/tmpl/gnome-vfs-monitor.sgml: * doc/tmpl/gnome-vfs-ops.sgml: * doc/tmpl/gnome-vfs-parse-ls.sgml: * doc/tmpl/gnome-vfs-resolve.sgml: * doc/tmpl/gnome-vfs-result.sgml: * doc/tmpl/gnome-vfs-socket-buffer.sgml: * doc/tmpl/gnome-vfs-socket.sgml: * doc/tmpl/gnome-vfs-ssl.sgml: * doc/tmpl/gnome-vfs-standard-callbacks.sgml: * doc/tmpl/gnome-vfs-transform.sgml: * doc/tmpl/gnome-vfs-uri.sgml: * doc/tmpl/gnome-vfs-utils.sgml: * doc/tmpl/gnome-vfs-volume-monitor.sgml: * doc/tmpl/gnome-vfs-volume.sgml: * doc/tmpl/gnome-vfs-xfer.sgml: * libgnomevfs/gnome-vfs-application-registry.c: * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime.c: Mark deprecated functions as deprecated in the docs. 2005-05-24 Nate Nielsen * modules/network-method.c (notify_gconf_value_changed, vfs_module_init): * modules/smb-method.c (try_init): * schemas/system_smb.schemas.in: Use gconf SMB workgroup for default in the SMB VFS method. 2005-05-23 Nate Nielsen * modules/smb-method.c: (prompt_authentication) Fill in default_user and default_domain 2005-05-22 Christian Kellner * configure.in: Post release version bump (2.11.2). === gnome-vfs 2.11.1 === 2005-05-22 Christian Kellner * NEWS: Update for 2.11.1 release * configure.in: Pre release version bump 2005-05-22 Christian Kellner * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_get_special_mime_type): Use the GnomeVFSFileInfo struct properly. Should fix bug #168557. 2005-05-16 Nate Nielsen * smb-method.c (lookup_user_cache, initial_authentication, prompt_authentication): Fix problems with prompting for authentication twice. Patch by Narayana Pattipati. Fixes bug #172695. 2005-05-16 Tor Lillqvist * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): On Win32, use gnome_vfs_escape_path_string() on file: URIs to replace backslashes with slashes etc. * modules/file-method.c (do_open, do_create): Use binary mode on Win32. (do_remove_directory, do_find_directory, rename_helper): Use gstdio wrappers here, too. 2005-05-12 Christian Kellner * libgnomevfs/gnome-vfs-mime.c: (_gnome_vfs_get_mime_type_internal): Implement mime subclassing lookup. Should fix bug #171595. 2005-05-10 Christian Neumair * schemas/system_dns_sd.schemas.in: Minor string fixes. Fixes bug #149523. 2005-05-09 Christian Neumair * libgnomevfs/gnome-vfs-private-utils.c: (_gnome_vfs_url_show_using_handler_with_env): Properly expand "%s" occuring in arguments. Fixes bug #302992. 2005-05-09 Christian Kellner * libgnomevfs/gnome-vfs-xfer.c: (copy_directory): Restore preservation of atime, mtime and permissions broken by the setgid directories patch. Fixes bug #303470. 2005-05-08 Christian Kellner * libgnomevfs/gnome-vfs-cdrom.c: (_gnome_vfs_get_cdrom_type): Default to CDS_NO_INFO on any not sepcially handled system. Fixes bug #171495. Oath From Michael Banck . 2005-05-08 Christian Kellner * configure.in: Check for sem_wait in -lsem * libgnomevfs/gnome-vfs-cdrom.c: (_gnome_vfs_get_cdrom_type): * libgnomevfs/gnome-vfs-volume-ops.c: (mount_unmount_thread): * modules/cdda-method.c: Build fixes for GNU/k*BSD. Fixes bug #150568. Patch from Robert Millan . 2005-05-08 Christian Kellner * libgnomevfs/gnome-vfs-volume-ops.c: (mount_unmount_thread): * modules/cdda-method.c: Build fixes for DragonFly. Fixes bug #170530. Patch from Yonetani Tomokazu 2005-05-08 Christian Kellner * libgnomevfs/gnome-vfs-i18n.h: removed. * doc/Makefile.am: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-cdrom.c: * libgnomevfs/gnome-vfs-configuration.c: * libgnomevfs/gnome-vfs-filesystem-type.c: * libgnomevfs/gnome-vfs-hal-mounts.c: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs/gnome-vfs-job.c: * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-parse-ls.c: * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: * libgnomevfs/gnome-vfs-volume-ops.c: * modules/computer-method.c: * modules/dns-sd-method.c: * modules/file-method.c: * modules/network-method.c: * modules/sftp-method.c: * modules/smb-method.c: * modules/test-method.c: Port from gnome-vfs-i18n.h to gi18n-lib.h. Path from Christian Neumair . Should fix bug #168731. 2005-05-07 Christian Neumair * configure.in: (BONOBO_REQUIRED): Require bonobo 2.3.1. Fixes bug #45924. 2005-05-06 Christian Kellner * libgnomevfs/gnome-vfs-async-ops.c: (gnome_vfs_async_create_as_channel), (gnome_vfs_async_create_uri_as_channel): Implement gnome_vfs_async_create_uri_as_channel and use it in gnome_vfs_async_create_as_channel. Patch from Christophe Fergeau . Fixes bug #138398. 2005-05-06 Christian Kellner * libgnomevfs/gnome-vfs-job.c: (serve_channel_write), (execute_create_as_channel): Call create internally instead of open. Patch from Mikael Hallendal Fixes bug #157261. 2005-05-06 Christian Kellner * libgnomevfs/gnome-vfs-xfer.c: (init_progress): Initialize progress_info->duplicate_count to 0. Patch from Torsten Schoenfeld . Fixes bug #169626. 2005-05-06 Christian Kellner * doc/gnome-vfs-2.0-sections.txt: * doc/tmpl/gnome-vfs-async-ops.sgml: * doc/tmpl/gnome-vfs-file-info.sgml: * doc/writing-modules.sgml: Doc fixes and updates. * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-async-ops.c: (gnome_vfs_find_directory_result_get_type), (gnome_vfs_find_directory_result_dup), (gnome_vfs_find_directory_result_free): Register GnomeVFSFindDirectoryResult as a boxed type in the GType system. * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_get_file_info_result_get_type), (gnome_vfs_get_file_info_result_dup), (gnome_vfs_get_file_info_result_free): Also register GnomeVFSGetFileInfoResult as a boxed type in the GType system. Based on a patch from Murray Cumming . Fixes bug #139393. 2005-05-03 Tor Lillqvist * libgnomevfs/gnome-vfs-cancellable-ops.c (gnome_vfs_set_file_info_cancellable): Use strchr() instead of g_strrstr(), we are looking for just one byte anywhere in the string. Or am I confused and there really is some reason to use g_strrstr()? Anyway, on Win32 check for backslash, too. * libgnomevfs/gnome-vfs-job.c (execute_create_as_channel): Use g_io_channel_win32_new_socket() on the pipe fds on Win32 here, too. * libgnomevfs/gnome-vfs-private-utils.c (_gnome_vfs_pipe): On Win32, return the actual sockets, not sockets encapsulated as C library file descriptors. 2005-04-28 Alexander Brausewetter * libgnomevfs/gnome-vfs-method.h * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space) * modules/file-method.c: (do_get_volume_free_space): Added module support for gnome_vfs_get_volume_free_space. Fixes bug #302202. * doc/writing-modules.sgml: Updated documentation according to changes. 2005-05-02 Christian Kellner * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_set_file_info_cancellable): Check for "/" in info->name, since that would move the file instead of renaming it. * modules/file-method.c: (do_set_file_info): Remove the FIXME. * modules/http-neon-method.c: (do_set_file_info): Remove the check for "/" since this is done globally now. 2005-04-28 Nate Nielsen * modules/smb-method.c: Fix the issue of two authentication dialogs when user selects a second folder. Fixes bugzilla bug #167082. Patch by Narayana Pattipati 2005-04-23 Christian Kellner * modules/file-method.c: (get_access_info): Switch back to call g_access on non win32 platforms. There is no need to call this on !win32. I also removed the equals 0 check from the g_file_test "if case". This totally broke gnome-vfs-xfer(). 2005-04-20 Tor Lillqvist Further Win32 work. Please note that also changes to the xdgmime files are necessary for improved functionality on Win32. Those have been submitted upstream. Hopefully they will get accepted, and then propagate here. * imported/fnmatch/fnmatch.c (fnmatch_utf8): The fnmatch() lifted from GTK+ returns TRUE on a match, while the "standard" fnmatch() should return zero on a match. Thus we must negate the return value. * libgnomevfs/*.c: Use GDir functions instead of dirent functions, for Win32 UTF-8 file name support. Use gstdio wrappers in more places, for the same reason. Use g_build_filename() instead of g_strconcat() when constructing file names. Use G_SEARCHPATH_SEPARATOR instead of hardcoded ':'. Use g_file_test() where applicable instead of stat() and/or access(). * libgnomevfs/gnome-vfs-utils.c (const guchar acceptable[]): Improve comments: Put each char in a comment line above its corresponding table entry. (gnome_vfs_escape_path_string): Separate code for Windows. Turn backslashes into forward slashes, and use a leading slash even if the path is absolute and includes a drive letter. Don't escape the colon after the drive letter. This matches the syntax used in Inter Shortcut (.url) files. Still have to investigate more what encoding to use for non-ASCII characters for best interoperability with native Win32 applications. Explorer seems to use UTF-7 for file: URLs pointing to files with non-ASCII names. * modules/file-method.c (get_path_from_uri): Check also that there actually is an initial slash in front of the drive letter and colon. * test/test-mime.c (is_uri): Check for absolute file path earlier not to mistake drive letters for methods. (main): Use g_path_is_absolute() instead of checking if first char is a slash. Use g_build_filename() instead of g_strconcat(). 2005-04-19 Tor Lillqvist * gnome-vfs-zip.in: New file, used to build gnome-vfs zipfile distribution for Win32. * configure.in: We do have getaddrinfo() on Win32. * imported/fnmatch/Makefile.am * imported/fnmatch/fnmatch.c * imported/fnmatch/fnmatch.h: Import the fnmatch() from GTK+ for xdgmime's use on Win32. * libgnomevfs/Makefile.am: Use fnmatch() from ../imported/fnmatch on Win32. * libgnomevfs/gnome-vfs-address.c * libgnomevfs/gnome-vfs-resolve.c: Include on Win32 for IPv6 support. * libgnomevfs/gnome-vfs-address.c (gnome_vfs_address_new_from_string): Clean up if-else and ifdef mess. Use WSAStringToAddress() on Win32. (gnome_vfs_address_to_string): Use WSAAddressToString() on Win32. * libgnomevfs/gnome-vfs-mime.c (gnome_vfs_mime_type_from_name_or_default): On Win32 look also for a (forward) slash. No need to use g_utf8_strrchr() when looking for single byte characters. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_get_uri_from_local_path, gnome_vfs_is_executable_command_string, gnome_vfs_make_uri_from_input_internal, gnome_vfs_make_uri_from_input_with_dirs, gnome_vfs_make_uri_canonical, gnome_vfs_make_uri_from_shell_arg): Use g_path_is_absolute() to check for absolute paths. Don't just check first character for being a slash. (gnome_vfs_make_uri_from_input_internal, gnome_vfs_make_uri_from_input_with_dirs): Don't support the tilde convention on Windows. It's not used on Windows, and it would be overly complex to find out the home directory (or what corresponds to it) for another account anyway. * libgnomevfs/gnome-vfs-private-utils.c (_gnome_vfs_socket_set_blocking): Fix typo. * libgnomevfs/gnome-vfs-resolve.c (_gnome_vfs_result_from_gai_error): Conditionalize some errors not present on Win32. * modules/file-method.c: Include g_access() from GLib HEAD if built against GLib < 2.7.0. (get_access_info): Use g_access() for better localized file name support On Win32. Use g_file_test(G_FILE_TEST_IS_EXECUTABLE) instead of access(X_OK) to check for executability. The Microsoft's C library's access() implementation is a bit silly. 2005-04-17 Christian Kellner * modules/http-neon-method.c: (neon_return_headers): Don't free headers list here anymore. (neon_free_headers): New function used to free the headers list. (http_aquire_connection): Register neon_free_headers as a request-destroy callback so headers will always get freed when requests are getting destroyed. (http_follow_redirect): Unref a not used URI. Fixes bug #169826 2005-04-17 Kjartan Maraas * programs/gnomevfs-cat.c: Merge leak fix from stable. 2005-04-17 Christophe Fergeau * libgnomevfs/Makefile.am: added new files to Makefile.am, fixes compilation 2005-04-17 Christophe Fergeau * libgnomevfs/xdgmime*: sync with xdgmime 2005-04-15 Christian Kellner * configure.in: Require hal >= 0.5 and dbus >= 0.32 * libgnomevfs/gnome-vfs-hal-mounts.c: Port to new hal API. Patch from David Zeuthen Fixes bug #172576 2005-04-15 Christian Kellner * .cvsignore: Ignore *.patch and .project * daemon/.cvsignore: Ignore .deps and .libs dirs * imported/neon/.cvsignore: Added .deps * monikers/.cvsignore: Added *.lo and *.la * programs/.cvsignore: Added .deps and .libs 2005-04-14 Christian Kellner Integration of the Win32 integration patch. Mostly based on the great work of Tor Lillqvist ! * configure.in: Check for Win32 platfrom. Use guint64 for VFS_SIZE and VFS_OFFSET. Also check for statfs and fchmod functions and the fnmatch header. * daemon/Makefile.am: Prefix DATADIR, LIBDIR, PREFIX and SYSCONFDIR defines with GNOME_VFS_. Don't compile the daemon on Win32. * imported/neon/ne_gnomevfs.c: * imported/neon/ne_request.h: * imported/neon/ne_session.h: * imported/neon/ne_utils.h: format (printf, 2, 3) -> __format__ (__printf__, 2, 3) * libgnomevfs/Makefile.am: Also add the GNOME_VFS_ Prefix to the direcotry defines. Add -lws2_32 on Win32. Don't compile gnome-vfs-cdrom.c, gnome-vfs-dns-sd.c and gnome-vfs-parse-ls.c on Win32. * libgnomevfs/gnome-vfs-address.c: * libgnomevfs/gnome-vfs-address.h: Small Win32 specific changes. * libgnomevfs/gnome-vfs-application-registry.c: mkdir -> g_mkdir * libgnomevfs/gnome-vfs-async-ops.c: usleep -> g_usleep * libgnomevfs/gnome-vfs-cancellation.c: pipe -> _gnome_vfs_pipe * libgnomevfs/gnome-vfs-configuration.c: fopen -> g_fopen, stat -> g_stat * libgnomevfs/gnome-vfs-directory.c: open -> do_open * libgnomevfs/gnome-vfs-dns-sd.h: Remove sys/socket.h include. * libgnomevfs/gnome-vfs-file-info.h: define missing S_I* on Win32 * libgnomevfs/gnome-vfs-file-size.h.in: Fix _FORMAT_STR macros to match the confgiure.in VFS_* changes. * libgnomevfs/gnome-vfs-inet-connection.c: _gnome_vfs_set_fd_flags -> _gnome_vfs_socket_set_blocking * libgnomevfs/gnome-vfs-init.c: mkdir -> g_mkdir, gnome_vfs_pthread_init -> gnome_vfs_thread_init * libgnomevfs/gnome-vfs-job-slave.c: usleep -> g_usleep * libgnomevfs/gnome-vfs-job.h: Don't include unistd.h and fcntl.h on Win32 * libgnomevfs/gnome-vfs-job.c: pipe -> _gnome_vfs_pipe _gnome_vfs_clear_fd_flags -> _gnome_vfs_pipe_set_blocking Use g_io_channel_win32_new_socket on Win32. * libgnomevfs/gnome-vfs-method.h: Don't include unistd.h on Win32 * libgnomevfs/gnome-vfs-method.c: Use g_build_filename, check for HAVE_SETEUID, HAVE_SETEGID, HAVE_SETRESUID and HAVE_SETRESGID before using either one of them. * libgnomevfs/gnome-vfs-monitor.c: * libgnomevfs/gnome-vfs-mime-info-cache.c: gettimeofday -> time * libgnomevfs/gnome-vfs-mime.c: Ensure S_ISSOCK exists before using it. Remove unused RegexMimePair struct and regex.h include. * libgnomevfs/gnome-vfs-module-shared.c: Ensure S_ISLNK and S_ISSOCK exist befure using them. * libgnomevfs/gnome-vfs-open-fd.c: (get_open_mode): Always return GNOME_VFS_OPEN_READ for now. * libgnomevfs/gnome-vfs-private-utils.h: Setup various data dirs on Win32. Remove declarations for functions that don't exist anymore and add ones for the new functions. Define platfrom independent macros for socket operations: _GNOME_VFS_SOCKET_IS_ERROR, _GNOME_VFS_SOCKET_CLOSE, _GNOME_VFS_SOCKET_READ and _GNOME_VFS_SOCKET_WRITE. * libgnomevfs/gnome-vfs-private-utils.c: mkstemp -> g_mkstemp. Use fchmod if available. Plug small memleak. Remove _gnome_vfs_set_fd_flags and _gnome_vfs_clear_fd_flags. Implement _gnome_vfs_socket_set_blocking and _gnome_vfs_pipe. The latter is used to create pipes platform independent. Also implement _gnome_vfs_map_winsock_error_to_errno and _gnome_vfs_winsock_strerror on Win32. * libgnomevfs/gnome-vfs-private.h: Fix declaration of GNOME_VFS_MODULE_DIR for Win32. * libgnomevfs/gnome-vfs-resolve.c: bzero -> memset. Use WSAGetLastError on Win32 for error handling. * libgnomevfs/gnome-vfs-result.c: h_errno -> h_errno_code to not conflict with extern h_errno. Check the existanes of various EXXX erros before using them. * libgnomevfs/gnome-vfs-ssl.c: _gnome_vfs_set_fd_flags -> _gnome_vfs_socket_set_blocking * libgnomevfs/gnome-vfs-thread-pool.h: Remove pthread.h include * libgnomevfs/gnome-vfs-unix-mounts.h: Don't include unistd.h on Win32 * libgnomevfs/gnome-vfs-uri.c: Be aware of dirve letters in Win32 * libgnomevfs/gnome-vfs-utils.c: No pwd.h on Win32. * libgnomevfs/gnome-vfs-volume-ops.c: No mount_unmount_operation on Win32 yet. * libgnomevfs/gnome-vfs-volume.h: Don't include unistd.h on Win32. * libgnomevfs/gnome-vfs-xfer.c: gettimeofday -> g_get_current_time * modules/Makefile.am: Also prefix the various datadirs with GNOME_VFS_ here. Don't compile dns-sd, network, nntp, sftp, ftp and http on Win32 for now. * modules/file-method.c: G_DIR_SEPARATOR_S -> DIR_SEPARATORS, open -> g_open, use GDir and g_dir_open on Win32, lstat -> g_lstat, mkdir -> g_mkdir. Various dir seperator fixes related fixes. * modules/test-method.c: use g_usleep instead of some select magic * monikers/bonobo-storage-fs.c: Dir seperator fixes. rename -> g_rename, DIR -> GDir, opendir -> g_dir_open, readdir -> g_dir_read_name, rewinddir -> g_dir_rewind. stat -> g_stat. * schemas/Makefile.am: Work around MSYS feature on Win32 for install-data-local * test/Makefile.am: No test-dns-sd test-symlinks on Win32 * test/test-async-cancel.c: * test/test-callback.c: * test/test-mime-info-cache.c: * test/test-queue.c: * test/test-shell.c: Various Win32 fixes. I am getting tired to list them now :) I am pretty sure I am not listening all changes here, it's just too much ... 2005-04-14 Sebastien Bacher * modules/cdda-cddb.c: (CDDBDoQuery): check the number of returned matches agains the maximum size to avoid overflowing the buffer. 2005-04-13 Kjartan Maraas * configure.in: Remove -Wno-pointer-sign * libgnomevfs/gnome-vfs-daemon-method.c: (do_write), (do_tell): Fix GCC4 warnings about signed vs. unsigned. * libgnomevfs/gnome-vfs-dns-sd.c: (decode_txt_record), (split_service_instance), (parse_header), (parse_qs), (parse_rr): Same here. * libgnomevfs/gnome-vfs-method.h: Same * libgnomevfs/gnome-vfs-mime-info.c: (handle_simple_string), (handle_attribute), (handle_mime_info): Same * libgnomevfs/gnome-vfs-mime-magic.c: (_gnome_vfs_sniff_buffer_looks_like_text): Same * libgnomevfs/gnome-vfs-open-fd.c: (do_tell): Same * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_remove_optional_escapes), (gnome_vfs_escape_high_chars), (gnome_vfs_make_uri_from_input_internal): Same * libgnomevfs/xdgmimealias.c: (_xdg_mime_alias_list_lookup): 0 vs NULL * libgnomevfs/xdgmimeint.c: More GCC4 warnings * libgnomevfs/xdgmimeint.h: Same * libgnomevfs/xdgmimemagic.c: (_xdg_mime_magic_read_to_newline): Same * modules/bzip2-method.c: (bzip2_method_handle_init_for_decompress), (bzip2_method_handle_init_for_compress), (flush_write), (fill_buffer), (do_write): Same * modules/computer-method.c: (do_tell): Same * modules/dns-sd-method.c: (do_tell): Same * modules/file-method.c: (do_tell): Same * modules/ftp-method.c: (get_response), (ftp_kerberos_login), (do_tell): Same * modules/http-neon-method.c: (do_close), (do_tell): Same * modules/network-method.c: (do_tell): Same * modules/sftp-method.c: (iobuf_read_handle), (do_open), (do_tell): * modules/smb-method.c: (do_tell): Same again * modules/tar-method.c: (do_tell): And again * modules/test-method.c: (translate_uri), (load_settings), (do_tell): And again * modules/translate-method.c: (tr_do_tell): ... * monikers/bonobo-stream-vfs.c: (vfs_seek): ... * programs/gnomevfs-ls.c: Make var static. * test/test-async-cancel.c: Same * test/test-async-directory.c: Again * test/test-directory.c: Again * test/test-shell.c: Same * test/test-symlinks.c: Same * test/test-uri.c: More staticification * test/test-xfer.c: And more 2005-04-13 Sebastien Bacher * libgnomevfs/gnome-vfs-volume-ops.c: (find_command): Add pumount to the known_locations and looks if the file is executable. 2005-04-13 Christian Kellner * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-private-utils.h: Move gnome_vfs_forget_cache from private into public API space. * doc/gnome-vfs-2.0-sections.txt: * doc/tmpl/gnome-vfs-file-advanced-ops.sgml: Include gnome_vfs_forget_cache () in the devel docs. 2005-04-12 Christian Kellner * libgnomevfs/gnome-vfs-init.c: Removed gnome_vfs_process stuff. Add a few therefore missing headers. * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-private-utils.c: Killed not used functions: gnome_vfs_forkexec () and gnome_vfs_process_run_cancellable (). * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-process.c: * libgnomevfs/gnome-vfs-process.h: Removed from cvs because it wasn't used by anything anymore. * modules/Makefile.am: * modules/translate-method.c: * modules/pipe-method.c: * modules/default-modules.conf: Killed the (unsafe) pipe and (not used) translate method! * test/test-module-selftest.c: * test/test-uri.c: Added signal.h previously included by gnome-vfs-process.h. Fixes bug #153266 2005-04-12 Sebastien Bacher * libgnomevfs/gnome-vfs-mime-magic.c: (_gnome_vfs_sniff_buffer_looks_like_text): detect empty files as "text/plain" so we can use them with nautilus. 2005-04-12 Alexander Larsson * gnome-vfs-2.0.pc.in (Requires): * gnome-vfs-module-2.0.pc.in (Requires): Use gmodule-no-export-2.0 instead of gmodule-2.0 to avoid using --export-dynamic. 2005-04-12 Alexander Larsson * configure.in: Use gmodule-no-export-2.0 instead of gmodule-2.0 to avoid using --export-dynamic. 2005-04-12 Christian Kellner * programs/gnomevfs-copy.c: It is not an real error if gnome_vfs_get_file_info () of the destination is GNOME_VFS_ERROR_NOT_FOUND. This should fix bug #172658 2005-04-12 Christian Kellner * programs/gnomevfs-ls.c: (list): close the directory handle after iterating over the childs. 2005-04-11 Christian Kellner * programs/gnomevfs-monitor.c: New file * programs/.cvsignore: Added gnomevfs-monitor * programs/Makefile.am: Added gnomevfs-monitor.c 2005-04-11 Christian Kellner * libgnomevfs/gnome-vfs-drive.c: Fix some doc mistakes. Fixes bug #171336. Patch from Bastien Nocera 2005-04-11 Christian Kellner * modules/smb-method.c: (do_read): Remove a double semicolon. Fixes bug #172414 2005-04-10 Christian Kellner * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: Added gnome_vfs_make_uri_from_input_with_trailing_ws (). Also renamed the uri parameters of some functions that don't take uris to location. * doc/tmpl/gnome-vfs-utils.sgml: Updated docs to reflect the changes above! Fixes bug #165753 2005-04-10 Christian Kellner * configure.in: Add check for gcrypt.h * libgnomevfs/gnome-vfs-ssl.c: Initialize gnu crypto library/gnutls to use gthread locking. Based on a patch from Vasily Tchekalkin Fixes bug #172813 2005-04-06 Nate Nielsen * modules/smb-method.c: Patch from Narayana Pattipati which fixes caching problems with invalid logins. bug #171468 2005-04-03 Ryan Lortie * libgnomevfs/Makefile.am: remove gnome-vfs-i18n.c * libgnomevfs/gnome-vfs-i18n.c: 'cvs delete' this file. The function here (gnome_vfs_i18n_get_language_list) used an undocumented and soon to be removed call to bonobo. * libgnomevfs/gnome-vfs-mime-info.c: Convert this file to use g_get_language_names() instead of gnome_vfs_i18n_get_language_list. Fix locale prioritisation as per bug #169329. * libgnomevfs/gnome-vfs-application-registry.c: Same as above. * libgnomevfs/gnome-vfs-private-utils.h: Remove the prototype for gnome_vfs_i18n_get_language_list. * programs/.cvsignore: Add gnomevfs-mv. 2005-04-01 Kjartan Maraas * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid): Merge patch that closes a few leaks from stable. Closes bug #172231. 2005-03-30 Steve Murphy * configure.in: Added "rw" to ALL_LINGUAS. 2005-03-21 Mikael Hallendal * libgnomevfs/gnome-vfs-async-ops.c: * libgnomevfs/gnome-vfs-async-ops.h: - Deprecate the gnome_vfs_async_*_as_channel functions. One of them aren't even implemented and the others doesn't behave as intended. See bugs #157266, #157265, #157261, #138398 in GNOME Bugzilla. - If they are needed they can be fixed and undeprecated in a future version of GnomeVFS. 2005-03-20 Christian Kellner * configure.in: Add -Wno-pointer-sign if available. This will stop the gcc4 warnings about char * vs unsigned char * for now. It's not 100% optimal but even the linux kernel uses it at the moment! * modules/http-proxy.c: Correct the logic to actually handle netmaks right! * modules/sftp-method.c: Initialize save_password. This is not really necessary here but it will keep gcc4 quiet. 2005-03-14 Kjartan Maraas * modules/http-neon-method.c: (http_get_file_info), (http_options), (do_create), (do_close), (do_make_directory), (do_move): Don't leak quite as many requests. Bug #16826, still one that needs attention. 2005-03-07 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.10.0 === 2005-03-07 Alexander Larsson * configure.in: * NEWS: Update for 2.10.0 release 2005-03-03 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.9.93 === 2005-03-03 Alexander Larsson * NEWS: Update for release 2005-03-02 Nate Nielsen * modules/smb-method.c: (perform_authentication, auth_callback) Fix problems when not on a domain and browsing smb://, or anonymous shares. Fixes bug #168864 and bug #167020. Approval for code freeze breakage by luis and kmaraas 2005-03-01 Alexander Larsson * configure.in: Post release bump. === gnome-vfs 2.9.92 === 2005-03-01 Alexander Larsson * NEWS: Update for release 2005-02-24 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_description): Special case folders to get the right description. 2005-02-23 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_read_entire_file): Make the string nul-terminated. Some apps were expecting this, and it makes it work like g_file_get_contents. 2005-02-22 Alexander Larsson * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_read_cancellable), (gnome_vfs_write_cancellable): Return OK on read/writes of 0 bytes. 2005-02-16 Ryan Lortie * modules/http-proxy.c (parse_ignore_host): Fix for unused variable 'gint i' when ENABLE_IPV6 is undefined. 2005-02-16 Nate Nielsen * modules/smb-method.c (prompt_authentication): Allow user name and domain in prompt dialog even when no URI is in context. * modules/smb-method.c (perform_authentication, get_cached_server): Don't reauthenticate for access errors on established connections. 2005-02-16 Alexander Larsson * libgnomevfs/gnome-vfs-async-ops.c: Document how cancellation works (eh, doesn't work) in multithreaded applications- * libgnomevfs/gnome-vfs-cancellation.c: (gnome_vfs_cancellation_cancel): Remove main thread assert. 2005-02-14 Christian Kellner * modules/ftp-method.c (unix_ls_to_file_info): Unset the invaild fields instead of setting everthing except those fields. This should also fix bug #167268. 2005-02-14 Christian Kellner * libgnomevfs/gnome-vfs-socket.c: Make read and write calls aware of cancellation. This should fix bug #151380. 2005-02-11 Christian Kellner * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_delete_items_common): Plug some more leaks. This fixes bug #166109. 2005-02-11 Christian Kellner * modules/sftp-method.c: Plug some leaks. This should fix bug #153264. 2005-02-11 Nate Nielsen * modules/smb-method.c (lookup_user_cache): Fix crash when user name specified in smb URI. See bug #167075. Thanks Narayana Pattipati * modules/smb-method.c: Fix server cache access for IPC$ shares. * modules/smb-method.c: Allow authentication with an empty password. * modules/smb-method.c: Try 'guest' login instead of blank for compatibility with certain SMB configurations. 2005-02-11 Christian Kellner * test/test-uri.c: Replaced old obsolete uri tests with new ones. Should make check work again. 2005-02-10 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.9.91 === 2005-02-10 Christian Kellner * NEWS: Update for release. 2005-02-09 Christian Kellner * doc/gnome-vfs-2.0-sections.txt: * doc/tmpl/gnome-vfs-directory-list-ops.sgml: * doc/tmpl/gnome-vfs-utils.sgml: * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/gnome-vfs-utils.h: Doc updates! This fixes bug #160837. 2005-02-09 Christian Kellner * libgnomevfs/gnome-vfs-directory.h (gnome_vfs_directory_visit): Rename uri to text_uri to be consistent with the other functions. Fixes bug #140939. 2005-02-09 Christian Kellner * libgnomevfs/gnome-vfs-cdrom.c (_gnome_vfs_get_cdrom_type): return CDS_NO_INFO on OS X to fix broken build. 2005-02-09 Christian Kellner * modules/sftp-method.c (sftp_connect): Increased timeout and return GNOME_VFS_ERROR_TIMEOUT instead if ERROR_IO. * modules/pty-open.c (_gnome_vfs_pty_fork_on_pty_name): Double fork so that we don't produce zombies! This should fix bug #139872. 2005-02-09 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type): Remove old hardcoding of folders as components, since we don't use bonobo in nautilus anymore. * libgnomevfs/gnome-vfs-mime-info-cache.c: (get_default_desktop_entry): New way to handle default folder handler. 2005-02-08 Christian Rose * configure.in: Added "xh" to ALL_LINGUAS. 2005-02-07 Christian Kellner * programs/gnomevfs-copy.c: Reworked to have cp semantics so that if the destination is a directory don't overwrite the it but copy the source into it. This is the first part of the fix for #149666! 2005-02-06 Crispin Flowerday * libgnomevfs/gnome-vfs-mime-handlers.c: The new mime API is new in 2.10, not 2.8. Fixes bug #166478 2005-02-03 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info.h: gnome_vfs_mime_set_value was declared twice 2005-03-01 Christian Kellner * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_destination_is_writable): Don't try to create a temporary file to check if the destination is writable but use new GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS option of gnome_vfs_get_file_info (). This should also fix bug #78486. 2005-02-01 Christian Kellner * OUTSTANDING_API_ISSUES: Remove that file because it is very old, wasn't maintained and we can't do API changes like that anyway. 2005-01-31 Alexander Larsson * modules/dns-sd-method.c: Browse for the new sftp-ssh service. 2005-01-31 Christian Kellner * acinclude.m4: Correct neon version to 0.24.7 because this will be sent as the value of the User-Agent header with every request. 2005-01-31 Christian Kellner * libgnomevfs/gnome-vfs-uri.c (set_uri_element): Treat https, dav, and davs as http when doing additional escaping. This is not the best way to fix the broken uri escaping at this palce but it should be ok for now. (Removed old eazel-service method) 2005-01-31 Christian Kellner * schemas/system_http_proxy.schemas.in: Correct bad grammar. This fixes bug #150342. Patch from Ryan Lortie 2005-01-30 Christian Kellner * modules/http-neon-method.c (propfind_result): Don't check for the etag property since we are not requesting it at the moment. 2005-01-30 Christian Kellner * modules/http-neon-method.c: Check if a given propfind context's target member is NULL before copying or dereferencing it. This should fix bug #161406. Also unref the remaining GnomeVFSFileInfos in the context's children memeber. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_escape_set): Add missing documentation. 2005-01-30 Christian Kellner * imported/neon/*: Import of neon upstream version 0.24.7. I also moved some ChangeLog entries from imported/neon/ to this file. 2005-01-29 Christian Kellner * modules/http-neon-method.c: Some small code cleanups. Also remove the etag header handle on get since we don't use it at this time. 2005-01-28 Vincent Untz * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_extract_short_name): fix to never return NULL. This happened with URIs that have encoded / in the filename. Fix bug #157723 2005-01-28 Christian Kellner * modules/http-neon-method.c (http_get_file_info): Close the connection if we got the audio/mpeg mime-type. This is another work around for broken icecast server. 2005-01-28 Christian Kellner * modules/http-neon-method.c: Differ between dav:// and http://. So only do PORPFINDs and other dav specific methods when dav:// was specified in the URL. This will also fix bug #164019. 2005-01-28 Christian Kellner * modules/http-neon-method.c: Beautify some code and always add a trailing slash on do_open_directory (). 2005-01-28 Sebastien Bacher reviewed by: Christophe Fergeau * modules/ftp-method.c: (toggle_winnt_into_unix_mode), (ftp_connection_create), (do_read_directory): patch from Simon Howard to fix the directory listings when connecting a windows ftp server (Closes: #151594). 2005-01-26 Nate Nielsen * modules/smb-method.c: Fix (initial_authentication) so that server connection cache lookup works properly. 2005-01-26 Kjartan Maraas * libgnomevfs/gnome-vfs-monitor.c: (destroy_monitor_handle): Fix a typo in a g_warning. 2005-01-25 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.9.90 === 2005-01-25 Alexander Larsson * test/test-uri.c (main): Fix test * NEWS: Update for release. * configure.in: Bump version to 2.9.90 2005-01-25 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (copy_directory): Support setgid directories. Patch from Sjoerd Simons 2005-01-25 Alexander Larsson * modules/smb-method.c: Cache passwords on a per-server level, not per-share. Patch from Nate Nielsen 2005-01-24 Nate Nielsen * modules/smb-method.c: (try_init) Use new flag for supressing automatic guest login. See: https://bugzilla.samba.org/show_bug.cgi?id=2092#c5 2005-01-18 Alexander Larsson * daemon/gnome-vfs-daemon.c: (main): Create volume monitor early to avoid possible deadlock later (#161997) 2005-01-16 Paolo Borelli * modules/sftp-method.c: always check gnome_vfs_unescape_string return value. 2005-01-15 Nate Nielsen * modules/smb-method.c (add_cached_server), (initial_authentication) (prompt_authentication): Fix problems with user/domain contained in smb uri. (see #132933) Patch from Narayana Pattipati 2005-01-12 Alexander Larsson * configure.in: Check for posix_fadvice * libgnomevfs/gnome-vfs-handle-private.h: * libgnomevfs/gnome-vfs-handle.c: (_gnome_vfs_handle_forget_cache): * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_forget_cache): * libgnomevfs/gnome-vfs-private-utils.h: Add _gnome_vfs_handle_forget_cache * libgnomevfs/gnome-vfs-xfer.c: (copy_file_data), (xfer_open_source): Upe _gnome_vfs_handle_forget when copying large files * modules/file-method.c: (do_open), (do_forget_cache): Implement forget_cache for local files using posix_fadvise Set POSIX_FADV_SEQUENTIAL for non random opened files. 2005-01-12 Alexander Larsson * libgnomevfs/gnome-vfs-cdrom.c: (_gnome_vfs_get_iso9660_volume_name): Use the iso volume if the first 16 characters are the same as the joiliet one. (Since then the joliet label is just a truncated version of it.) Patch from leon breedt 2005-01-11 Alexander Larsson * libgnomevfs/gnome-vfs-volume-ops.c: (mount_unmount_thread), (mount_unmount_operation), (gnome_vfs_volume_unmount), (gnome_vfs_volume_eject), (gnome_vfs_drive_mount), (gnome_vfs_drive_eject): allow eject of unmounted volumes. Patch from Magnus Damm 2005-01-11 Alexander Larsson * libgnomevfs/gnome-vfs-cdrom.c: (_gnome_vfs_get_iso9660_volume_name): * libgnomevfs/gnome-vfs-iso9660.h: Implement joliet label support. Patch from leon breedt === gnome-vfs 2.9.3 === 2005-01-11 Alexander Larsson * NEWS: Update for release * configure.in: Update glib require to 2.6.0 2005-01-10 Alexander Larsson * doc/tmpl/gnome-vfs-file-basic-ops.sgml: Added OPEN_TRUNCATE symbol * modules/smb-method.c: New authentication method to avoid deadlocks. 2005-01-10 Christophe Fergeau * libgnomevfs/gnome-vfs-dns-sd.c: fixes compilation on NetBSD, bug #162289 2005-01-10 Christophe Fergeau * libgnomevfs/xdgmimeglob.c: (_xdg_glob_hash_lookup_file_name): * libgnomevfs/xdgmimeint.h: sync with mainline, fixed bug #162328 2005-01-10 Paolo Borelli * libgnomevfs/gnome-vfs-handle.h: add GNOME_VFS_OPEN_TRUNCATE * modules/file-method.c: (do_open): add support for _TRUNCATE flag * modules/sftp-method.c: (do_open): add support for _TRUNCATE flag * modules/smb-method.c: (do_open): add support for _TRUNCATE flag 2005-01-10 Christophe Fergeau * doc/tmpl/gnome-vfs-xfer.sgml: copied doc for GnomeVFSXferProgressCallback from gnome-vfs-xfer.h to the API doc 2005-01-09 Christian Kellner * configure.in: Define _GNU_SOURCE globally. This should fix bug #160052. * daemon/Makefile.am: * libgnomevfs/Makefile.am: * modules/Makefile.am: Remove -D_GNU_SOURCE that is now defined in config.h. 2005-01-09 Vincent Untz * modules/default-modules.conf: remove vfolder methods Fix bug #160523 2005-01-08 Anders Carlsson * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_application_new_from_desktop_id): The icon field name is "Icon", not "IconName". 2005-1-08 Paolo Borelli * programs/gnomevfs-mv.c: added. 2005-1-08 Paolo Borelli * modules/sftp-method.c (do_move): honour the force_replace flag. 2004-12-21 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.9.2 === 2004-12-21 Alexander Larsson * NEWS: Update for release 2004-12-15 Alexander Larsson * modules/sftp-method.c (do_read): Don't break if we get an eof and there are outstanding requests. 2004-12-14 Christophe Fergeau * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: fix build when HAL is disabled 2004-12-13 Marco Pesenti Gritti * libgnomevfs/xdgmime.h: Sync 2004-12-13 Marco Pesenti Gritti * libgnomevfs/xdgmimeglob.c: (_xdg_glob_hash_lookup_file_name): Resync 2004-12-12 Marco Pesenti Gritti * libgnomevfs/gnome-vfs-mime-deprecated.h: * libgnomevfs/gnome-vfs-mime-handlers.h: Deprecate gnome_vfs_mime_get_icon API 2004-12-11 Christophe Fergeau * libgnomevfs/gnome-vfs-utils.c: fixed API doc for gnome_vfs_unescape_string_for_display 2004-12-11 Marco Pesenti Gritti * libgnomevfs/gnome-vfs-mime-info-cache.c: (get_default_desktop_entry), (gnome_vfs_mime_get_default_desktop_entry): Check also parents mime types. Fix #159825 2004-12-06 David Zeuthen * libgnomevfs/gnome-vfs-volume-ops.c (gnome_vfs_volume_unmount): Honor the must_eject_at_unmount for the containing drive (gnome_vfs_drive_unmount): Honor must_eject_at_unmount * libgnomevfs/gnome-vfs-volume-monitor.c (_gnome_vfs_volume_monitor_find_volume_by_device_path): New function (_gnome_vfs_volume_monitor_find_drive_by_device_path): New function * libgnomevfs/gnome-vfs-volume-monitor-private.h: Add field must_eject_at_unmount to GnomeVFSDrivePrivate. Add prototypes for _gnome_vfs_volume_monitor_find_volume_by_device_path and _gnome_vfs_volume_monitor_find_drive_by_device_path. * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: (gnome_vfs_volume_monitor_daemon_init): Remove old hal code; still use fstab and mtab detection code (gnome_vfs_volume_monitor_daemon_force_probe): Remove old hal code (gnome_vfs_volume_monitor_daemon_finalize): Remove old hal code (update_fstab_drives): Let hal modify the drive attributes (update_mtab_volumes): Let hal modify the volume attributes * libgnomevfs/gnome-vfs-unix-mounts.c: (_gnome_vfs_get_unix_mount_table): Also support pamconsole option * libgnomevfs/gnome-vfs-hal-mounts.c: Total rewrite * libgnomevfs/gnome-vfs-drive.c: (gnome_vfs_drive_to_corba): Handle must_eject_at_unmount (_gnome_vfs_drive_from_corba): Handle must_eject_at_unmount * libgnomevfs/GNOME_VFS_Daemon.idl: Add must_eject_at_unmount boolean 2004-12-09 Marco Pesenti Gritti reviewed by: Christophe Fergeau * libgnomevfs/gnome-vfs-mime-info-cache.c: (get_all_parent_types): * libgnomevfs/gnome-vfs-mime-info.c: (get_entry), (gnome_vfs_mime_get_value), (gnome_vfs_mime_type_is_known): * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_mime_type_is_equal), (gnome_vfs_mime_type_get_equivalence): Finish up aliases implementation using xdgmime whenever possible. Fix #160102 2004-12-09 Christophe Fergeau * libgnomevfs/xdgmime.c: (xdg_mime_unalias_mime_type), (xdg_mime_mime_type_equal), (xdg_mime_mime_type_subclass), (xdg_mime_get_mime_parents): * libgnomevfs/xdgmime.h: * libgnomevfs/xdgmimealias.c: (_xdg_mime_alias_list_lookup), (_xdg_mime_alias_read_from_file): * libgnomevfs/xdgmimeglob.c: (_xdg_glob_hash_node_lookup_file_name): * libgnomevfs/xdgmimeglob.h: * libgnomevfs/xdgmimeint.c: (_xdg_ucs4_to_lower): * libgnomevfs/xdgmimeint.h: * libgnomevfs/xdgmimemagic.c: (_xdg_mime_magic_read_from_file): * libgnomevfs/xdgmimeparent.c: (_xdg_mime_parent_list_lookup), (_xdg_mime_parent_read_from_file): sync with xdgmime from freedesktop 2004-12-09 Dwayne Bailey * configure.in: Added "zu" to ALL_LINGUAS. 2004-12-03 Alexander Larsson * libgnomevfs/gnome-vfs-resolve.c: (gnome_vfs_resolve_next_address): AIX bug workaround * libgnomevfs/gnome-vfs-unix-mounts.c: (get_fstab_file), (_gnome_vfs_get_unix_mount_table): Finish up the aix support Patch from Michael 2004-12-03 Christophe Fergeau * libgnomevfs/gnome-vfs-init.c: (ensure_dot_gnome_exists): check for ~/.gnome2 existence, not ~/.gnome * libgnomevfs/gnome-vfs-mime-info-cache.c: (emit_mime_changed), (gnome_vfs_mime_info_cache_dir_changed), (gnome_vfs_mime_info_cache_dir_defaults_changed), (_gnome_vfs_mime_info_cache_init), (gnome_vfs_mime_get_all_desktop_entries), (gnome_vfs_mime_get_default_desktop_entry): * libgnomevfs/gnome-vfs-mime-monitor.c: (gnome_vfs_mime_monitor_class_init), (gnome_vfs_mime_monitor_init): clean up gnome-vfs-mime-monitor code to remove obsolete stuff, when using gamin or fam, emit a "data-changed" signal as soon as a file modification is detected. 2004-12-02 Crispin Flowerday * libgnomevfs/gnome-vfs-mime-handlers.h: Wrap deprecated parts of the GnomeVFSMimeApplication structure with the deprecated #ifdef guard, done in such a way as to preserve ABI compatibility. Fixes bug #160018 2004-12-01 Dwayne Bailey * configure.in: Added "nso" to ALL_LINGUAS. 2004-11-30 Sebastien Bacher * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_get_all_desktop_entries): Fix a memory leak, patch from Josselin Mouette (Closes: #159823). 2004-11-29 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.9.1 === 2004-11-29 Alexander Larsson * configure.in: Require glib 2.5.5 (for e.g. gkeyfile) * NEWS: Update for release. 2004-11-28 James Henstridge * libgnomevfs/xdgmimeparent.c (_xdg_mime_parent_read_from_file): apply the same crash fix as found in gtk+. This has been reported upstream as https://bugs.freedesktop.org/show_bug.cgi?id=1916 2004-11-26 Christophe Fergeau * libgnomevfs/xdgmimeparent.h: added missing file 2004-11-26 Marco Pesenti Gritti * libgnomevfs/Makefile.am: * libgnomevfs/xdgmime.c: (xdg_mime_init_from_directory), (xdg_mime_init), (xdg_mime_shutdown), (xdg_mime_get_max_buffer_extents), (unalias_mime_type), (xdg_mime_mime_type_equal), (xdg_mime_media_type_equal), (xdg_mime_is_super_type), (xdg_mime_mime_type_subclass), (xdg_mime_dump): * libgnomevfs/xdgmime.h: * libgnomevfs/xdgmimealias.c: (_xdg_mime_alias_list_new), (_xdg_mime_alias_list_free), (alias_entry_cmp), (_xdg_mime_alias_list_lookup), (_xdg_mime_alias_read_from_file), (_xdg_mime_alias_list_dump): * libgnomevfs/xdgmimealias.h: * libgnomevfs/xdgmimeparent.c: (_xdg_mime_parent_list_new), (_xdg_mime_parent_list_free), (parent_entry_cmp), (_xdg_mime_parent_list_lookup), (_xdg_mime_parent_read_from_file), (_xdg_mime_parent_list_dump): * libgnomevfs/xdgmimeparent.h: Resync xdgmime 2004-11-25 Marco Pesenti Gritti * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_copy), (gnome_vfs_mime_application_new_from_desktop_id), (gnome_vfs_mime_application_supports_startup_notification): * libgnomevfs/gnome-vfs-mime-handlers.h: Better name for get_startup_notify. More clear even if longish. * doc/gnome-vfs-2.0-sections.txt: * doc/tmpl/gnome-vfs-mime-database.sgml: * test/test-mime-handlers.c: (print_application_info): Update 2004-11-25 Marco Pesenti Gritti * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_equal), (gnome_vfs_mime_application_copy), (gnome_vfs_mime_application_free), (gnome_vfs_mime_application_new_from_desktop_id), (gnome_vfs_mime_application_get_exec), (gnome_vfs_mime_application_get_binary_name): * libgnomevfs/gnome-vfs-mime-handlers.h: Add a way to get the binary name and to equal applications. 2004-11-25 Marco Pesenti Gritti * libgnomevfs/gnome-vfs-mime-handlers.c: (expand_application_parameters), (gnome_vfs_mime_application_new_from_desktop_id): Do not go in an infinite cycle if we are unable to do substitutions. If the exec field doesnt specifi any macros default to %f. 2004-11-24 Alexander Larsson * libgnomevfs/gnome-vfs-cancellation.c: (gnome_vfs_cancellation_cancel): Use a CORBA_Environment in the call. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_url_show_with_env): Don't crash if no mimetype for uri. 2004-11-23 Marco Pesenti Gritti * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_new_from_desktop_id): * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid): * libgnomevfs/gnome-vfs-mime-info-cache.h: Get properties only from the Desktop Entry group. Improve documentation 2004-11-23 Marco Pesenti Gritti * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_launch_with_env), (expand_macro_single), (expand_macro), (expand_application_parameters), (print_expansion_data), (print_macro_expansion), (test_exec_array), (test_exec_macro_expansion): * test/test-mime-handlers.c: (main): Improve expand_application_parameters. Now it handles --open-uri=%u correctly. Add tests for macro expansion. 2004-11-22 Marco Pesenti Gritti * .cvsignore: * doc/tmpl/gnome-vfs-file-size.sgml: * doc/tmpl/gnome-vfs-mime-database-deprecated.sgml: * doc/tmpl/gnome-vfs-mime-database.sgml: * doc/tmpl/gnome-vfs-resolve.sgml: * imported/.cvsignore: * imported/neon/.cvsignore: * libgnomevfs/.cvsignore: * test/.cvsignore: Update * libgnomevfs/eggdesktopentries.c: * libgnomevfs/eggdesktopentries.h: * libgnomevfs/eggdirfuncs.c: * libgnomevfs/eggdirfuncs.h: Remove, they are not used anymore. 2004-11-22 Marco Pesenti Gritti * doc/Makefile.am: Recognize deprecated apis * doc/gnome-vfs-2.0-docs.sgml: * doc/gnome-vfs-2.0-sections.txt: Move the mime deprecated api to a separate document for clarity. * doc/tmpl/gnome-vfs-application-registry.sgml: * doc/tmpl/gnome-vfs-file-size.sgml: * doc/tmpl/gnome-vfs-mime-database.sgml: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-application-registry.h: Fully deprecate. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_application), (gnome_vfs_mime_application_copy), (gnome_vfs_mime_application_free), (gnome_vfs_mime_application_new_from_id), (gnome_vfs_mime_action_launch_with_env), (gnome_vfs_mime_application_launch_with_env), (expand_application_parameters), (expand_component_parameters), (copy_str_list), (guess_deprecated_fields_from_exec), (gnome_vfs_mime_application_new_from_desktop_id), (gnome_vfs_mime_get_default_application_for_uri), (gnome_vfs_mime_get_all_applications_for_uri), (gnome_vfs_mime_application_get_desktop_id), (gnome_vfs_mime_application_get_desktop_file_path), (gnome_vfs_mime_application_get_name), (gnome_vfs_mime_application_get_generic_name), (gnome_vfs_mime_application_get_icon), (gnome_vfs_mime_application_get_exec), (gnome_vfs_mime_application_supports_uris), (gnome_vfs_mime_application_requires_terminal), (gnome_vfs_mime_application_get_startup_notify), (gnome_vfs_mime_application_get_startup_wm_class): * libgnomevfs/gnome-vfs-mime-handlers.h: Adapt the API to the new desktop entries based backend and add some features previously provided by the application registry. * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_init), (gnome_vfs_mime_info_cache_dir_init_defaults_list), (gnome_vfs_mime_info_cache_get_search_path), (gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid): * libgnomevfs/gnome-vfs-mime-info-cache.h: Port to the glib key file parser. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_url_show_with_env): Use the new API here. * test/test-mime-handlers.c: (print_application_info), (main): Rewrite to test not deprecated API. 2004-11-16 Mark McLoughlin Remove the vfolder and cdemenu methods - the panel and control-center now use libgnome-menu for accessing the menus. * configure.in: don't build modules/vfolder/Makefile * modules/Makefile.am: remove cdemenu and vfolder methods. * modules/cdemenu-desktop-method.c, modules/cdemenu-module.conf: remove. * modules/vfolder/*: remove. 2004-11-04 Vincent Noel * modules/gzip-method.c (do_read): Return GNOME_VFS_ERROR_EOF when we reach the end of a file with the gzip method. Fixes bug 157275. 2004-11-01 Alexander Larsson * modules/http-authn.c: (http_authn_self_test): * test/test-uri.c: (main): Fix bogus warnings in later gcc (#156505). Patch from Thomas Fitzsimmons 2004-10-29 Ray Strode * test/test-mime-info-cache.c: (foo): return a value to silence gcc warning. 2004-10-29 Alexander Larsson * configure.in: Update version to 2.9.1. Gnome 2.8 versions are now on the gnome-2-8 branch. ==== gnome-2-8 branched from here === 2004-10-28 Alexander Larsson * configure.in: Post release version dump === gnome-vfs 2.8.3 === 2004-10-28 Alexander Larsson * NEWS: Update for release 2004-10-28 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c: (filename_charset_cache_free), (vfs_get_filename_charset), (gnome_vfs_format_uri_for_display_internal), (gnome_vfs_format_uri_for_display), (gnome_vfs_make_uri_from_input_internal), (gnome_vfs_make_uri_from_input): Correctly handle the new forms of G_BROKEN_FILENAMES 2004-10-27 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_application_new_from_id): Chomp spaces off command strings. 2004-10-26 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info-cache.c: Handle default.list files that have lists of desktop files. 2004-10-21 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (copy_symlink): Handle existing files when copying symlinks. 2004-10-21 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_new_directory_with_unique_name): Set vfs_status on callback. 2004-10-18 Ray Strode * libgnomevfs/eggdesktopentries.c (egg_desktop_entries_parse_entry): Reword error message to not break string freeze. 2004-10-18 Ray Strode * libgnomevfs/eggdesktopentries.c (egg_desktop_entries_parse_entry): Error out if trying to add key-value pair to comment group (Patch from Miloslav Trmac ) 2004-10-18 Alexander Larsson * libgnomevfs/gnome-vfs-hal-mounts.c (_hal_get_drive_name): Use utf8 +/- char, not latin1. 2004-10-18 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info.c (handle_attribute): Remove some debug spew. 2004-10-15 Ryan Lortie * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): Prevent uri->text from containing a NULL pointer (as per bug #141051). (set_uri_element): trivial style fix 2004-10-15 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c: (_gnome_vfs_get_current_unix_mounts), (_gnome_vfs_get_unix_mount_table): Handle several changes to mtab/fstab in the same second. Fix aix mtime check. Patch from johnp@redhat.com 2004-10-13 Alexander Larsson * gnome-vfs-2.0.pc.in: Add missing dependencies. Patch from Juergen George Sawinski 2004-10-13 Alexander Larsson * libgnomevfs/gnome-vfs-socket-buffer.c (flush): Correctly move memory in buffer when we've written some bytes. 2004-10-11 Christian Kellner * libgnomevfs/Makefile.am: Fix build issues with concurrent installs. Patch from Chris Kelso . 2004-10-11 Alexander Larsson * configure.in: Post release version bump === gnome-vfs 2.8.2 === 2004-10-11 Alexander Larsson * NEWS: Update for release. 2004-10-11 Alexander Larsson * modules/smb-method.c (do_read_directory), (update_workgroup_cache): Ignore entries with empty name. (#154670) 2004-10-09 Christian Kellner * modules/http-neon-method.c: Invoke received header callback before reading the data on a GET (See comment in source code for more information) Thanks to Sebastien Bacher for helping and testing. This should now finally fix bug #150561. 2004-10-08 Alexander Larsson * configure.in: Add --disable-howl flag. Patch from Peter Johanson 2004-10-07 Alexander Larsson * libgnomevfs/gnome-vfs-monitor.c (send_uri_changes_now): Don't touch send_at of already sent events. Patch from Martin Wehner 2004-10-07 Alexander Larsson * modules/network-method.c: (notify_gconf_value_changed), (vfs_module_init): * modules/smb-method.c: (smb_uri_type), (do_open_directory): Use the smb.conf defined workgroup as the default if not set in gconf. Patch from James Henstridge 2004-10-07 Christian Kellner * doc/tmpl/gnome-vfs-inet-connection.sgml: * doc/tmpl/gnome-vfs-socket-buffer.sgml: * doc/tmpl/gnome-vfs-socket.sgml: API doc updates. 2004-10-06 Christian Kellner * modules/http-neon-method.c: Add support for additional and received headers callbacks. This fixes bug #150561. Also fixed some debugging macros. 2004-10-05 Christian Kellner * modules/http-neon-method.c (http_transfer_start_read): Fix leaking a req in a error case. This should fix bug #152842. 2004-10-05 Christian Kellner * ne_gnomevfs.c (ne_sock_connect): Use the same method as in ne_negotiate_ssl ( ). (ne_sock_close): Don't free the socket because it will get be freed in gnome_vfs_socket_buffer_destroy ( ). This should fix bug #154300. 2004-10-05 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_action_type): Temporary workaround to make show_url handle folders. This needs rethinking. 2004-09-27 Ray Strode * libgnomevfs/eggdesktopentries.c (egg_desktop_entries_get_locale_encoding): swap if and else clauses to prevent needlessly misallocating gigabytes of memory (Spotted by Nicholas Miell, bug 153759). 2004-09-27 Ray Strode * libgnomevfs/eggdesktopentries.c (egg_find_file_in_data_dirs): use g_error_new instead g_set_error. (egg_find_file_in_data_dir): get rid of the secondary error cruft. (egg_desktop_entries_free): free entries->default_group_name (egg_desktop_entries_get_locale_country): swap if and else clauses to prevent needlessly misallocating gigabytes of memory (Spotted by Nicholas Miell, bug 153759). 2004-09-22 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.[ch]: * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: Try to reuse children when getting dev_t by stating. Fixes bug 151026. Patch from Morten Welinder. * configure.in: Post release version bump. === gnome-vfs 2.8.1 === 2004-09-21 Alexander Larsson * NEWS: Update for 2.8.1 * modules/http-proxy.c: (construct_gl_http_proxy): Make sure proxy is non-empty before using it. Patch from Mark McLoughlin. 2004-09-21 Alexander Larsson * modules/http-neon-method.c: Don't modify the uri object passed in in http_context_set_uri Handle redirects in do_move. Make close_dir return OK, not NOT_SUPPORTED. Resolve schema aliases for the target file in do_move. Add some debug stuff. * modules/sftp-method.c: (sftp_connect), (sftp_connection_close): Don't leak tty_fd. 2004-09-21 Alexander Larsson * modules/http-neon-method.c (do_seek): Don't restart read on seek, which causes problems for seek-to-end (#153153) Patch from Mark McLoughlin. 2004-09-21 Alexander Larsson * imported/neon/ne_gnomevfs.c: (ne_sock_close): * libgnomevfs/gnome-vfs-dns-sd.c: (howl_input): * libgnomevfs/gnome-vfs-resolve.c: (gnome_vfs_resolve): * modules/http-neon-method.c: (neon_session_pool_destroy), (http_context_free), (http_context_set_uri): Fix some leaks and build issues (#151003) Patches from Christian Kellner and Kjartan Maraas. 2004-09-21 Alexander Larsson * modules/sftp-method.c (sftp_connect): Fix some leaks (#152839). Patch from Christophe Fergeau. 2004-09-21 Alexander Larsson * modules/sftp-method.c (sftp_connect): Use password from uri if availible (#152639). Patch from Bastien Nocera. 2004-09-21 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c: Include sys/vfstab.h if found (#152115) Patch from danek.duvall@sun.com. 2004-09-21 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c: Make stating actually work (#152114). Patch from danek.duvall@sun.com. 2004-09-21 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info-cache.c: Cache global default lookups, to avoid re-reading and validating desktop files. Blow away global cache if any directory changes. Don't validate all desktop entries in the mime cache. Instead validate when used. Don't limit defaults.list to reference desktop files from the same directory. This means user defaults.list now works. Lock mime_info_cache when getting file monitor callbacks. separate mime.cache and defaults.list file change handling Don't leak mime_info_cache on reload. Remove defaults.list-only dirs. 2004-09-20 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info-cache.c (gnome_vfs_mime_info_cache_get_search_path) (gnome_vfs_mime_info_cache_get_defaults_search_path): Don't reorder search paths. 2004-09-16 Jeffrey Stedfast * imported/neon/Makefile.am: Add $(GSSAPI_CFLAGS) to INCLUDES section so that ne_auth.c will have the proper include path for the gssapi headers. 2004-09-16 JP Rosevear * modules/ftp-method.c (ftp_kerberos_login): use GSS_C_NT_HOSTBASED_SERVICE always, since we define it if it doesn't exist in configure.in (fixes heimdal) (ftp_connection_destroy): use GSS_C_NO_CONTEXT define instead of NULL and pass a pointer to the context rather than the context itself which is what gss_delete_sec_context wants 2004-09-16 Christophe Fergeau * doc/*: more API doc updates 2004-09-16 Christophe Fergeau * libgnomevfs/gnome-vfs-drive.h: * libgnomevfs/gnome-vfs-volume-monitor.c: * doc/tmpl/gnome-vfs-drive.sgml: API doc updates 2004-09-16 Christophe Fergeau * libgnomevfs/xdgmimeglob.c: * libgnomevfs/xdgmimemagic.c: fix memleaks (sync with upstream), fixes #152768 and #152771 2004-09-16 Alexander Larsson * modules/ftp-method.c: Include the right gssapi headers. 2004-09-16 Kjartan Maraas * modules/ftp-method.c: Fix debugging define so it doesn't create leaks. Closes bug #152811. 2004-09-15 Kjartan Maraas * libgnomevfs/gnome-vfs-mime-info.c: (handle_mime_info): Plug one more leak. Closes bug #152754. 2004-09-15 Christian Kellner * modules/http-neon-method.c (http_get_file_info): Be a little more cautious and fall back to HEAD in any case except a 207 result. This should fix bug #152577 and also make gtik (the stock ticker applet) working again. 2004-09-14 Alexander Larsson * configure.in: * modules/Makefile.am: AC_SUBST GSSAPI_* vars, and use them 2004-09-14 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor-client.c: * libgnomevfs/gnome-vfs-volume-monitor-client.h: * libgnomevfs/gnome-vfs-volume-monitor.c: Allow unreffing the volume monitor after shutdown. 2004-09-14 Alexander Larsson * configure.in: Make kerberos detection actually work * modules/ftp-method.c: (try_kerberos), (ftp_connection_create): Fail before requesting a password if we can't even connect to the ftp site. 2004-09-13 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.8.0 === 2004-09-13 Alexander Larsson * NEWS: * configure.in: Update for 2.8.0 2004-09-13 Alexander Larsson * modules/Makefile.am: Properly dist both http methods. Patch from Rodney Dawes 2004-09-10 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_get_value): Hack to make description for folders work. 2004-09-08 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: (move_items), (link_items): Make unique names work again. 2004-09-08 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_get_value), (gnome_vfs_mime_type_is_known): Implement type_is_known and can_be_executable. 2004-09-07 Christian Kellner * modules/http-neon-method.c: (http_transfer_start_read), (do_read): Fix a bad cast and handle io errors during ne_read_response_block so we will not call ne_end_request anymore because that will crash neon! This should fix #150780. 2004-09-07 Christian Kellner * imported/neon/ne_utils.c (ne_parse_statusline): Workaround ShoutCast and IceCast servers not responding with "HTTP" but "ICY". This should fix bug #151453. 2004-09-07 Christian Kellner * libgnomevfs/gnome-vfs-ssl.c: Fix build when neither OpenSSL nor GnuTLS is enabled. This should fix #151880. Thanks to Alex Fraser for providing the patch. 2004-09-07 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_get_short_list_components): unrevert previous reversion (with release team approval). 2004-09-07 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_get_short_list_components): revert change that breaks code freeze (oops!). 2004-09-06 Alexander Larsson * modules/smb-method.c: (do_read_directory): Set the type field as valid. 2004-09-06 Alexander Larsson * modules/ftp-method.c: (do_get_file_info), (do_read_directory): Support symlinks. 2004-09-04 Christophe Fergeau * libgnomevfs/gnome-vfs-mime-handlers.c: remove unused variables to fix compilation 2004-09-04 Christophe Fergeau * libgnomevfs/gnome-vfs-mime-info-cache.c: make sure we don't free memory we'll reuse later when managing the mime_info_cache_map hash table memory (fixes #150467) 2004-09-03 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component): don't use the short list when selecting a componenent to return. (gnome_vfs_mime_get_short_list_components): Prioritize exact matches higher than supertype matches. 2004-09-03 Ray Strode Cleanup and leak fixes by Christophe Fergeau. * libgnomevfs/eggdesktopentries.c: (egg_desktop_entries_free): fix leak (egg_desktop_entries_parse_comment): use g_strndup instead of g_new/strncpy(). (egg_desktop_entry_free), (egg_desktop_entries_remove_group_node): fix leak. 2004-09-03 Alexander Larsson * libgnomevfs/gnome-vfs-ssl.c (handle_ssl_read_write): Fix build without openssl/gnutls. (Bug 151632) Patch from Morten Welinder. 2004-09-03 Alexander Larsson * configure.in: * libgnomevfs/gnome-vfs-unix-mounts.c: Fix build on NetBSD. (#151677) Patch from Julio M. Merino Vidal 2004-09-02 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor-daemon.c (get_drive_name): Fix a small typo in fstab-sync patch 2004-09-02 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor-daemon.c (get_drive_name): * modules/http-neon-method.c: (http_list_directory), (do_make_directory): Fix dav redirect handling issues. 2004-09-01 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: Recognize the mountpoint names generated by fstab-sync from hal. 2004-08-30 Christian Kellner * libgnomevfs/gnome-vfs-ssl.c: Fix the broken GnuTLS patch. This should finally fix bug #151350. 2004-08-30 Alexander Larsson * configure.in: Post-release version bump === gnome-vfs 2.7.92 === 2004-08-30 Alexander Larsson * test/test-uri.c (main): Fix tests * NEWS: Update for 2.7.92 2004-08-30 Alexander Larsson * modules/file-method.c: Trim old non-existing cached trash dirs from on-disk cache. 2004-08-29 Christian Kellner * libgnomevfs/gnome-vfs-ssl.c: Make GnuTLS work again! This should fix bug #151350. Thanks to Carlos Perelló Marín for helping and testing. 2004-08-27 Alexander Larsson * libgnomevfs/gnome-vfs-mime.c (_gnome_vfs_get_mime_type_internal): Prefer suffix to sniffing for xml files. 2004-08-27 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-private.h: Add private (for now) function gnome_vfs_mime_get_default_application_for_scheme. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_url_show_with_env): Consider uri scheme when picking default app. 2004-08-27 Alexander Larsson * modules/http-neon-method.c (http_options): Correctly follow redirects. 2004-08-27 Alexander Larsson * modules/file-method.c: Revert part of recent change. For some cases this is needed anyway (such as when the toplevel found by the algorithm is a symlink), since otherwise we won't find the right trash directories when displaying the merged trash. 2004-08-26 Alexander Larsson * modules/file-method.c (find_disk_top_directory): Correctly handle top directory if its a symlink. Remove on-disk caching of trash directories. Thats not useful anymore, since we don't search for folders. 2004-08-26 Alexander Larsson * libgnomevfs/gnome-vfs-cdrom.c (_gnome_vfs_get_cdrom_type): Check drive status before disk status. 2004-08-25 Kjartan Maraas * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init): 0 vs NULL * modules/nntp-method.c: (remove_numbers_between_dashes): Fix a warning from sparse. * modules/smb-method.c: (server_cache_reap_cb), (schedule_server_cache_reap), (auth_failed): ANSIfication and add a cast to the source func. * test/test-symlinks.c: (deal_with_result): 0 vs. NULL 2004-08-25 Alexander Larsson * modules/smb-method.c (auth_fn): Fix domain name from uri parsing. Patch from George Karabin. Fixes bug #140313 2004-08-25 Alexander Larsson * modules/smb-method.c (auth_fn): * configure.in (XML_REQUIRED): Add back MODULES_XML, as we're still using that. Fixes bug #149297 2004-08-25 Alexander Larsson * modules/pty-open.c (_gnome_vfs_pty_run_on_pty): Fix valgrind warning. 2004-08-25 Alexander Larsson * configure.in: Look for sys/poll.h and poll. * libgnomevfs/gnome-vfs-unix-mounts.c: Use poll instead of select if availible. Don't leak pipes on fork failure. Don't close pipes[0] twice in child. Close pipes[1] before waitpid Re-do poll/select on EINTR. 2004-08-24 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c (_gnome_vfs_get_current_unix_mounts): Workaround for --bind mounts. Patch from Davyd Madeley Fixes bug #139854 2004-08-19 Christophe Fergeau * configure.in: * libgnomevfs/gnome-vfs-hal-mounts.c: * libgnomevfs/gnome-vfs-hal-mounts.h: * modules/Makefile.am: fix compilation with --enable-hal with dbus 0.22, fixed link flags for the cdda method 2004-08-18 Anders Carlsson * libgnomevfs/eggdesktopentries.c: (egg_desktop_entries_parse_entry), (key_get_locale), (egg_desktop_entries_get_locale_string): Fix bug where locale strings would not be read correctly. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_new_from_id): Translate the application name. 2004-08-17 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info-cache.c (gnome_vfs_mime_info_cache_init): Emit mime data changed from idle. 2004-08-16 Alexander Larsson * configure.in: Post release version bump. === gnome-vfs 2.7.91 === 2004-08-16 Alexander Larsson * NEWS: Update * configure.in: Bump version to 2.7.91 2004-08-16 Alexander Larsson * configure.in: Add some missing goject-2.0 references to PKG_CHECK macros. 2004-08-16 Christophe Fergeau * doc/Makefile.am: * doc/gnome-vfs-2.0-docs.sgml: * doc/gnome-vfs-2.0-sections.txt: * doc/gnome-vfs-2.0.types: * doc/tmpl/gnome-vfs-dns-sd.sgml: * doc/tmpl/gnome-vfs-drive.sgml: * doc/tmpl/gnome-vfs-inet-connection.sgml: * doc/tmpl/gnome-vfs-mime-database.sgml: * doc/tmpl/gnome-vfs-resolve.sgml: * doc/tmpl/gnome-vfs-result.sgml: * doc/tmpl/gnome-vfs-socket-buffer.sgml: * doc/tmpl/gnome-vfs-socket.sgml: * doc/tmpl/gnome-vfs-ssl.sgml: * doc/tmpl/gnome-vfs-utils.sgml: * doc/tmpl/gnome-vfs-volume-monitor.sgml: * doc/tmpl/gnome-vfs-volume.sgml: * libgnomevfs/gnome-vfs-address.h: * libgnomevfs/gnome-vfs-application-registry.h: * libgnomevfs/gnome-vfs-dns-sd.c: * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-hal-mounts.c: * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-resolve.c: * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-volume-monitor.c: * libgnomevfs/gnome-vfs-volume-ops.c: * libgnomevfs/gnome-vfs-volume.c: * libgnomevfs/gnome-vfs-utils.c: Huge API doc clean up (added new API in the built html doc, reorganized the index a bit, ...). Now the doc for each function needs to be written ;) * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_make_uri_canonical_old), (gnome_vfs_read_entire_file), (gnome_vfs_format_uri_for_display), (gnome_vfs_make_uri_from_input), (gnome_vfs_make_uri_full_from_relative), (_gnome_vfs_uri_resolve_all_symlinks): fixed a memory leak, small clean ups 2004-08-15 Christophe Fergeau * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_get_vol_name): * libgnomevfs/gnome-vfs-job.c: (gnome_vfs_op_destroy): modified 2 strings, fixes #149520 and #149522. 2004-08-14 Danilo Šegan * schemas/desktop_gnome_url_handlers.schemas.in: s/HTTP URLs/"http" URLs/, s/HTTPS URLs/"https" URLs/, s/H323 URLs/"h323" URLs/ to make messages more consistent with other messages (fixes bug #149519). 2004-08-14 Christophe Fergeau * libgnomevfs/gnome-vfs-xfer.c: plug more leaks 2004-08-14 Ryan Lortie * libgnomevfs/gnome-vfs-xfer.c: fix small leaks 2004-08-14 Joe Marcus Clarke * libgnomevfs/gnome-vfs-utils.c: fix free space calculation on FreeBSD. 2004-08-13 Alexander Larsson * modules/ftp-method.c (ftp_connection_create): Don't ask for password for anonymous. 2004-08-13 Mark McLoughlin * schemas/desktop_gnome_url_handlers.schemas.in: s/need-terminal/needs_terminal/ for the aim: handler. 2004-08-13 Alexander Larsson * configure.in: * modules/Makefile.am: * modules/default-modules.conf: * modules/extfs-method.c: * modules/extfs/*: Remove extfs module. It had security issues and it doesn't work well anyway. 2004-08-12 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_init_defaults_list): Rename default.list name to [Default Applications] Need eel upgrade. (get_all_parent_types_helper), (get_all_parent_types), (gnome_vfs_mime_get_all_desktop_entries): Correctly find desktop files for parent mime types. 2004-08-12 Kjartan Maraas * configure.in: Added nb to ALL_LINGUAS. 2004-08-12 Ryan Lortie * libgnomevfs/gnome-vfs-private-utils.c: (_gnome_vfs_have_ipv6): * libgnomevfs/gnome-vfs-resolve.c: (restart_resolve): * libgnomevfs/gnome-vfs-ssl.c: (_gnome_vfs_ssl_init), (gnome_vfs_ssl_enabled): * modules/computer-method.c: (get_data_for_network), (get_data_for_home), (get_data_for_root): * modules/extfs-method.c: (getdelim): * modules/fstype.c: (filesystem_type), (filesystem_type_uncached), (xatoi): * modules/http-neon-method.c: (http_auth_cache_init), (http_auth_cache_shutdown), (quick_allow_lookup_init), (quit_allow_lookup_destroy), (neon_session_pool_init), (neon_session_pool_shutdown): * modules/http-proxy.c: (proxy_init), (proxy_shutdown): * modules/sftp-method.c: (get_sftp_client_vendor): don't use old K&R function prototypes, use ANSI prototypes. 2004-08-11 Alexander Larsson * libgnomevfs/gnome-vfs-i18n.c (gnome_vfs_i18n_get_language_list): Use the get_language_list in bonobo-activation to minimize duplication and memory use. 2004-08-11 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c (_gnome_vfs_unix_mount_get_unix_device): Fix some statfs issues and increase select timeout (bug 140322) Patch from Joe Marcus Clarke 2004-08-11 Alexander Larsson * libgnomevfs/gnome-vfs-file-info.h: Remove strange comment about removing GnomeVFSFileType. 2004-08-10 Kjartan Maraas * libgnomevfs/eggdesktopentries.c: Added #include for working i18n. 2004-08-10 Alexander Larsson * configure.in: Require howl 0.9.6 * libgnomevfs/gnome-vfs-dns-sd.c: * modules/dns-sd-method.c: Update howl usage to 0.9.6 API. 2004-08-09 Ryan Lortie * modules/sftp-method.c: fix potential deadlock in sftp_get_connection 2004-08-03 William Jon McCann * modules/sftp-method.c (sftp_connect): write responses to tty, fixes #147444. 2004-08-09 Ray Strode * libgnomevfs/eggdesktopentries.c (egg_find_file_in_data_dirs): free path string when done with it (Spotted by Kjarten Maraas, bug 149717). 2004-08-09 Christophe Fergeau * libgnomevfs/gnome-vfs-resolve.c: reordered #includes (include glib headers after system headers) to fix a compilation breakage with gcc 2.95 2004-08-09 Ryan Lortie * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_get_volume_free_space): Fixed small memory leak. Fixes bug #149333. 2004-08-08 Christian Kellner * modules/http-neon-method.c (do_get_file_info): Don't free HttpContext if http_context_open failed. Patch from desrt@desrt.ca. Fixes bug #149268. 2004-08-06 Christian Kellner * libgnomevfs/gnome-vfs-resolve.c (gnome_vfs_resolve_next_address): Small cleanup. * libgnomevfs/gnome-vfs-address.c: Added brackets around macros. Fixed wrong argument check. Patch from desrt@desrt.ca. Fixes bug #149242. 2004-08-04 Christian Kellner * libgnomevfs/gnome-vfs-ssl.c: Changed #if to #ifdef. This should fix bug #149205. * modules/sftp-method.c: Use memset instead of bzero, fixes #149206. 2004-08-04 Malcolm Tredinnick * libgnomevfs/gnome-vfs-dns-sd.h: Remove a trailing comma from an enum (bug #149052). === gnome-vfs 2.7.90 === 2004-07-31 Christophe Fergeau * configure.in * NEWS: version 2.7.90 2004-07-31 Christophe Fergeau * modules/ftp-method.c: added explicit cast to struct sockaddr in the hope that it will fix part of bug #147887. 2004-07-31 Christophe Fergeau * modules/sftp-method.c: support ssh.com ssh server, patch from William Jon McCann , fixes #147444 2004-07-31 Christophe Fergeau * libgnomevfs/Makefile.am: removed -export-symbols-regex since it doesn't seem to make a difference on linux anyway, and it breaks compilation on Solaris. 2004-07-30 Christian Kellner * configure.in: Added checks for res_ninit and rearranged the resolver checks. * libgnomevfs/gnome-vfs-resolve.c: Added support for resolver reloads and fixed a memory leak. The reload support is partially based on a patch from Christophe Fergeau . Fixes #76283 2004-07-31 Christophe Fergeau * modules/sftp-method.c: (do_create): use memset instead of bzero 2004-07-31 Torsten Schoenfeld * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-dns-sd.c: (gnome_vfs_dns_sd_service_status_get_type): * libgnomevfs/gnome-vfs-dns-sd.h: * libgnomevfs/gnome-vfs.h: Adds GType for GnomeVFSDNSSDServiceStatus 2004-07-31 Christophe Fergeau * libgnomevfs/Makefile.am: 2004-07-31 Christophe Fergeau * modules/ftp-method.c: (do_transfer_command): * modules/http-neon-method.c: (http_transfer_start_read): use GNOME_VFS_OFFSET_FORMAT_STR to print a GnomeVFSFileOffset (fixes #148913) 2004-07-31 Christophe Fergeau * acinclude.m4 * configure.in: renamed NEON_BUNDLED to VFS_NEON_BUNDLED not to clash with macro names installed by libneon-dev. Fixes #148903 2004-07-29 Christophe Fergeau * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): fixed a small leak 2004-07-29 Christian Kellner * modules/http-authn.c: * test/test-uri.c: Changed the VERIFY_STRING_RESULT macro to use strcmp_allow_nulls to avoid gcc warnings. 2004-07-27 Christian Kellner * libgnomevfs/gnome-vfs-resolve.h: * libgnomevfs/gnome-vfs-resolve.c (gnome_vfs_resolve_next_address): * libgnomevfs/gnome-vfs-ssl.c (gnome_vfs_ssl_create): * libgnomevfs/gnome-vfs-inet-connection.c (gnome_vfs_inet_connection_create): * imported/neon/ne_gnomevfs.c: Renamed gnome-vfs-next-address to gnome-vfs-resolve-next-address. === gnome-vfs 2.7.5 === Mon Jul 26 16:09:44 2004 Jonathan Blandford * NEWS: update NEWS. Mon Jul 26 15:28:24 2004 Jonathan Blandford * libgnomevfs/gnome-vfs-mime-info.c: (_gnome_vfs_mime_info_mark_user_mime_dir_dirty), (_gnome_vfs_mime_info_mark_gnome_mime_dir_dirty), (gnome_vfs_mime_set_registered_type_key), (gnome_vfs_get_registered_mime_types), (gnome_vfs_mime_registered_mime_type_delete), (gnome_vfs_mime_registered_mime_type_list_free), (gnome_vfs_mime_get_extensions_pretty_string), (gnome_vfs_mime_get_extensions_string), (gnome_vfs_mime_get_key_list), (gnome_vfs_mime_keys_list_free), (gnome_vfs_mime_reset), (gnome_vfs_mime_set_extensions_list): * libgnomevfs/gnome-vfs-mime-info.h: Put back symbols inadvertantly removed. 2004-07-25 Anders Carlsson * libgnomevfs/gnome-vfs-hal-mounts.h: * libgnomevfs/gnome-vfs-volume-monitor-daemon.h: include , not 2004-07-25 Christian Kellner * libgnomevfs/gnome-vfs-address.[ch]: Register GnomeVFSAddress in the glib GType system. 2004-07-25 Christophe Fergeau * libgnomevfs/gnome-vfs-hal-mounts.c: (_hal_add_volume): removed duplicate setting of the hal_udi member * modules/cdda-cddb.c: * modules/http-neon-method.c: replaced // comments with /* */ 2004-07-24 Christophe Fergeau * modules/http-proxy.c: forgot to #define HTTP_DEBUG(x) to an empty macro 2004-07-24 Christophe Fergeau * modules/http-neon-method.c: Use /* */ instead of // for comments * modules/http-proxy.c: disable debugging statements * modules/http-method.[ch] * modules/http-authn.[ch] * modules/http-cache.[ch]: added comment at the beginning of the files that this code is dead 2004-07-23 Dafydd Harries * Changelog: Converted entry for 2004-01-30 from ISO-8859-2 to UTF-8. * schemas/desktop_gnome_url_handlers.schemas.in: Make improvements to schema documentation. The changes are similar to those proposed in #120740 and fix that bug. 2004-07-22 Christophe Fergeau * daemon/Makefile.am * libgnomevfs/gnome-vfs-hal-mounts.c: fix compilation when HAL support is enabled. Fixes bug #148181 2004-07-22 Christophe Fergeau * libgnomevfs/gnome-vfs-utils.c: lower case the uri scheme before looking for a handler for it. Fixes #139346 * doc/tmpl/gnome-vfs-result.sgml: sync with gnome-vfs-result.h changes 2004-07-22 Ray Strode * libgnomevfs/egg*.[ch]: sync up from libegg again (fixes bug 148182 again) 2004-07-22 Ray Strode * libgnomevfs/egg*.[ch]: sync up from libegg (fixes bug 148182) 2004-07-22 Christian Kellner * modules/http-neon-method.c: Reordered some debugging statements and set debugging to be off as default. Fixed small typo. 2004-07-22 Dave Camp * configure.in: post-release version bump === gnome-vfs 2.7.4 === 2004-07-22 Ray Strode * imported/neon/Makefile.am: * test/test-mime-info-cache.c: Small build fixes for distcheck 2004-07-22 Dave Camp * configure.in: * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-result.h: * modules/Makefile.am: * modules/http-neon-method.c: * modules/http-proxy.c: * modules/http-proxy.h: neon http method from Christian Kellner . 2004-07-22 Dave Camp * libgnomevfs/gnome-vfs-result.c: Add missing comma 2004-07-21 Dave Camp * Merged MIME_DESKTOP_REWRITE branch. 2004-07-21 Dave Camp * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_init), (gnome_vfs_mime_info_cache_dir_init_defaults_list), (gnome_vfs_mime_info_cache_dir_new), (gnome_vfs_mime_info_cache_dir_free), (gnome_vfs_mime_info_cache_update_dir_lists): Fix up the monitor creation/destruction. 2004-07-20 Ray Strode * libgnomevfs/gnome-vfs-mime.[ch]: (gnome_vfs_mime_info_cache_reload), (gnome_vfs_mime_reload): Add cache flushing functions to module headers. 2004-07-20 Ray Strode * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_init), (gnome_vfs_mime_info_cache_dir_out_of_date), (gnome_vfs_mime_info_cache_dir_defaults_list_out_of_date), (gnome_vfs_mime_info_cache_dir_init),: (gnome_vfs_mime_info_cache_dir_init_defaults_list), (gnome_vfs_mime_info_cache_dir_changed), (gnome_vfs_mime_info_cache_init_dir_lists), (gnome_vfs_mime_info_cache_update_dir_lists), (gnome_vfs_mime_info_cache_init), (gnome_vfs_mime_get_all_desktop_entries), (gnome_vfs_mime_get_default_desktop_entry): Refactor cache monitoring code to match discussed implementation plan, and add support for fam in addition to polling the files every 5 seconds. Wed Jul 21 15:07:33 2004 Jonathan Blandford * libgnomevfs/gnome-vfs-mime-utils.h: move the comparison functions into a public header. 2004-07-20 Ray Strode * libgnomevfs/gnome-vfs-mime-info-handlers.c: When unable to guess an application's file loading capabilities from its Exec= line, assume it will accept uris. Also, remove the check for %k, because it was wrong. 2004-07-20 Ray Strode * libgnomevfs/gnome-vfs-mime-info-handlers.c: When unable to guess an application's file loading capabilities from its Exec= line, assume it will only accept one local file at a time. Mon Jul 19 18:48:26 2004 Jonathan Blandford * libgnomevfs/gnome-vfs-mime.c (gnome_vfs_mime_type_get_equivalence): fix stupid spelling error. Mon Jul 19 18:42:58 2004 Jonathan Blandford * libgnomevfs/gnome-vfs-mime.c (gnome_vfs_mime_type_get_equivalance): New function. (gnome_vfs_mime_type_is_equal): New function. * libgnomevfs/Makefile.am (libgnomevfs_headers_to_scan_for_enums): scan for gnome-vfs-mime.h * libgnomevfs/gnome-vfs-mime-info.c (handle_mime_info): Store aliases as well as mime types. 2004-07-19 Ray Strode * libgnomevfs/gnome-vfs-mime-info-cache.c: Don't ping mime monitor on initial load of configuration data. 2004-07-19 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: use new found _gnome_vfs_configuration_get_methods_list function for getting supported uri schemes. 2004-07-19 Ray Strode * libgnomevfs/gnome-vfs-mime-info-cache.c: ping mime monitor after successfully reading in cache, so it doesn't get pinged superfluously for directories that lack cache files. * test/test-mime-info-cache.c: update test file to use mime monitor. 2004-07-19 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: (prune_ids_for_nonexistent_applications), (application_known_to_be_nonexistent), (gnome_vfs_mime_get_all_applications): Get rid of unneeded pruning functions * libgnomevfs/gnome-vfs-mime-info-cache.c: ping mime monitor when caches are reread from disk. 2004-07-19 Ray Strode * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_get_default_desktop_entry): strdup the result before returning it. 2004-07-19 Ray Strode * test/test-mime-info-cache.c: Make program multi-threaded. 2004-07-19 Dave Camp * libgnomevfs/gnome-vfs-mime-info.c: (handle_mime_info), (mime_entry_free), (gnome_vfs_mime_get_value): Add a "parent_classes" key read from the is-subclass-of fields. 2004-07-19 Ray Strode * libgnomevfs/gnome-vfs-mime-info-cache.c: Remove some nested G_LOCK nastiness. 2004-07-19 Ray Strode Detect changes to cache files. Note it's still somehow broken cause nautilus locks up when the test files change. * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_out_of_date): (gnome_vfs_mime_info_cache_defaults_list_out_of_date): new functions to detect whether cache should be reloaded. (gnome_vfs_mime_info_cache_dir_load): (gnome_vfs_mime_info_cache_dir_load_defaults_list): use aforementioned new functions. (gnome_vfs_mime_info_cache_load): Only create new mime_info_cache if it's never been created before. * test/test-mime-info-cache.c: update test file to loop. 2004-07-19 Dave Camp * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_get_search_path): Include the user data dir in the search path. Mon Jul 19 00:31:54 2004 Jonathan Blandford * libgnomevfs/xdgmime*: Sync from upstream; add the register_callback function. Sun Jul 18 22:53:39 2004 Jonathan Blandford * libgnomevfs/gnome-vfs-mime.c: remove mime_dir_source_t 2004-07-18 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_new_from_id): For now, hard code the available uri schemes * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_get_all_desktop_entries), (gnome_vfs_mime_get_default_desktop_entry): okay so rereading the cache every time killed performance. (gnome_vfs_mime_info_cache_dir_load_defaults_list), (gnome_vfs_mime_info_cache_load), (gnome_vfs_mime_info_cache_flush): Add lock guards, but probably is wrong, will need to look it over again. Sun Jul 18 21:03:35 2004 Jonathan Blandford * libgnomevfs/xdgmime*: Sync from upstream. Now it rereads when the files change every 5 seconds. 2004-07-18 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_new_from_id): look at "Terminal" key instead of "NeedsTerminal". Make it non-fatal if no "Terminal" key exists. Strip off escape characters from command (and everything after, because if there is anything after it's not going to work anyway). * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_free): Fix this horribly broken function. (gnome_vfs_mime_info_cache_get_search_path), (gnome_vfs_mime_info_cache_get_defaults_search_path): Don't make return value static. (gnome_vfs_mime_get_all_desktop_entries), (gnome_vfs_mime_get_default_desktop_entry): reread the cache from disk every time functions are loaded (temporarily for now anyway). * tests/test-mime-info-cache.c: Get rid of some warnings. Run twice to test cache flushing functions. 2004-07-18 Ray Strode * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_application), (gnome_vfs_mime_get_all_applications), (gnome_vfs_mime_application_new_from_id): initial pass at using the new mime cache API * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_load), (gnome_vfs_mime_info_cache_dir_load_defaults_list): free entries objects when done with them. 2004-07-18 Ray Strode * libgnomevfs/egg*.[ch]: sync up from libegg * libgnomevfs/gnome-vfs-mime-info-cache.c: More clean ups, function renaming, etc. 2004-07-18 Ray Strode * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid): new function for checking if desktop files are meant for GNOME. (gnome_vfs_mime_info_cache_dir_reload_default_associations): prune defaults lists from $XDG_CONFIG_DIRS/mime based on desktop files in $XDG_DATA_DIRS/applications (gnome_vfs_mime_get_default_desktop_entry): check defaults lists from $XDG_CONFIG_DIRS/mime, too. 2004-07-18 Ray Strode Fix compile warnings and look at NotShowIn and OnlyShowIn when building association lists. * libgnomevfs/egg*.[ch]: sync up from libegg * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_dir_reload_*): Don't ignore errors (gnome_vfs_mime_info_cache_dir_desktop_entry_is_valid): new function to check for OnlyShowIn and NotShowIn (gnome_vfs_mime_info_cache_dir_merge_mime): use new is_valid function 2004-07-17 Ray Strode Search in $XDG_CONFIG_DIRS for default.list, too * libgnomevfs/gnome-vfs-mime-info-cache.c: (gnome_vfs_mime_info_cache_get_defaults_search_path): new function. (gnome_vfs_mime_info_cache_reload): flush cache from memory before reloading. Load additional default.list files. (gnome_vfs_mime_info_cache_free): clean up better (gnome_vfs_mime_get_all_desktop_entries): fix bug where list was getting built wrong. * test/gnome-vfs-mime-info-cache.c: file for testing functions Sat Jul 17 22:55:33 2004 Jonathan Blandford * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_set_description), (gnome_vfs_mime_set_icon), (gnome_vfs_mime_set_can_be_executable), (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_get_all_components), (gnome_vfs_mime_set_default_action_type), (gnome_vfs_mime_set_default_application), (gnome_vfs_mime_set_default_component), (gnome_vfs_mime_set_short_list_applications), (gnome_vfs_mime_set_short_list_components), (gnome_vfs_mime_add_application_to_short_list), (gnome_vfs_mime_remove_application_from_list), (gnome_vfs_mime_remove_application_from_short_list), (gnome_vfs_mime_add_component_to_short_list), (gnome_vfs_mime_remove_component_from_short_list), (gnome_vfs_mime_add_extension), (gnome_vfs_mime_remove_extension), (gnome_vfs_mime_extend_all_applications), (gnome_vfs_mime_remove_from_all_applications), (copy_str_list): * libgnomevfs/gnome-vfs-mime-handlers.h: Deprecate all the setters and use of the short list. * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-result.h: New result GNOME_VFS_ERROR_DEPRECATED_FUNCTION 2004-07-17 Dave Camp * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_can_be_executable): Return FALSE for directories. * libgnomevfs/gnome-vfs-mime-info.h: * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_info_reload), (read_next), (handle_simple_string), (handle_mime_info), (load_mime_entry): Fix up the parser. * test/Makefile.am: Disable the mime tests until we're sorted out 2004-07-17 Ray Strode * libgnomevfs/gnome-vfs-mime-info-cache.[ch]: initial version of gnome_vfs_mime_get_default_desktop_entries (still needs work though) 2004-07-17 Dave Camp * libgnomevfs/gnome-vfs-mime-info.c: (_gnome_vfs_mime_info_mark_user_mime_dir_dirty), (_gnome_vfs_mime_info_mark_gnome_mime_dir_dirty), (gnome_vfs_mime_set_registered_type_key): Adding back some noops temporarily. 2004-07-16 Ray Strode * libgnomevfs/gnome-vfs-mime-info-cache.[ch]: initial working version of gnome_vfs_mime_get_all_desktop_entries (still needs work though) 2004-07-16 Dave Camp * configure.in: Require libxml 2.6.0 * libgnomevfs/gnome-vfs-mime-info.c: (mime_entry_free), (add_data_dir), (gnome_vfs_mime_init), (reload_if_needed), (gnome_vfs_mime_info_clear), (_gnome_vfs_mime_info_shutdown), (gnome_vfs_mime_info_reload), (gnome_vfs_mime_freeze), (gnome_vfs_mime_thaw), (language_level), (consume_element), (handle_simple_string), (handle_mime_info), (load_mime_entry), (get_mime_entry_path), (get_entry), (gnome_vfs_mime_set_value), (gnome_vfs_mime_get_value), (gnome_vfs_mime_type_is_known), (gnome_vfs_mime_get_extensions_list), (gnome_vfs_mime_extensions_list_free): * libgnomevfs/gnome-vfs-mime-info.h: Use shared-mime-info to get mime type descriptions. Doesn't notice changes yet. 2004-07-16 Ray Strode * NEWS: Update NEWS for pending release. 2004-07-21 Christian Kellner * libgnomevfs/gnome-vfs-inet-connection.c (gnome_vfs_inet_connection_write): Set the cancellation fd in read fd-set not in write fd-set. Fixes cancellation for writes. 2004-07-20 Christophe Fergeau * modules/vfolder/vfolder-info.c: fix compilation after the previous commit 2004-07-20 Christophe Fergeau * libgnomevfs/gnome-vfs-monitor-private.h * libgnomevfs/gnome-vfs-monitor.c * libgnomevfs/gnome-vfs-module-shared.h: export gnome_vfs_monitor_callback in the module API. Fixes #144015 2004-07-21 Christophe Fergeau * libgnomevfs/gnome-vfs-context.c * libgnomevfs/gnome-vfs-method.c * libgnomevfs/gnome-vfs-mime-info.c * libgnomevfs/gnome-vfs-unix-mounts.c * libgnomevfs/gnome-vfs-uri.c: marked a bunch of global variable which weren't meant to be exported as static 2004-07-20 Josselin Mouette * modules/tar-method.c: prevent crash when opening tar:/// in Nautilus 2004-07-20 Christophe Fergeau * schemas/system_dns_sd_schemas.in: added missing period at the end of a long description. Fixes #145360 2004-07-20 Narayana Pattipati * libgnomevfs/gnome-vfs-filesystem-type.c: Add an entry for Sun SAM-QFS filesystem. Bugzilla bug#145442. 2004-07-20 Kurt Roeckx * configure.in: fixes test for res_search in libresolv on amd64 (resolv.h needs to be included for the test to succeed). Fixes bug #147702 2004-07-20 Christophe Fergeau * modules/sftp-method.c: use memset instead of bzero * libgnomevfs/gnome-vfs-resolve.c: include strings.h if available since this file uses bzero which is defined there. Fixes part of bug #147887 2004-07-18 Christian Kellner * po/POTFILES.skip: Added neon files because we do not use neon strings anywhere in the http method. 2004-07-17 Murray Cumming * libgnomevfs/gnome-vfs-address.h: In the GnomeVFSAddres hidden-struct declaration, put the _ before rather than after, because that's what we normally do, and that's what gtkmm depends on. 2004-07-16 Christian Kellner * libgnomevfs/gnome-vfs-result.c (gnome_vfs_result_from_errno_code): Added ECONNREFUSED and ENETUNREACH error codes. 2004-07-16 Christian Kellner * modules/Makefile.am * configure.in: cleanups and ability to switch between neon and the old module. 2004-07-16 William Jon McCann * modules/sftp-method.c (sftp_connect): Initialize strings to prevent crash. Fixes #147194. 2004-07-16 Christian Kellner * libgnomevfs/gnome-vfs-resolve.h: * libgnomevfs/gnome-vfs-resolve.c (gnome_vfs_resolve_reset_to_beginning): Implemented. * configure.in: * acinclude.m4: Moved some checks from neon into configure.in and removed duplicated ones. * imported/neon/ne_gnomevfs.c: * imported/neon/ne_gnomevfs.h: * imported/neon/Makefile.am: Use the gnome-vfs io layer (inc. ssl stuff) in neon. * imported/neon/ne_utils.h: Use g_snprintf for ne_snprintf. * libgnomevfs/gnome-vfs-address.c (gnome_vfs_address_to_string): Fixed typos. 2004-07-16 Alexander Larsson * configure.in: * modules/smb-method.c: Don't create ~/.smb/smb.conf, remove old zero-byte versions. Use kerberos if availible. * programs/gnomevfs-ls.c: (main): Call setlocale. 2004-07-16 Christian Kellner * libgnomevfs/gnome-vfs-socket.c (gnome_vfs_socket_free): Implemented new function for freeing the socket object. * libgnomevfs/gnome-vfs-inet-connection.c (gnome_vfs_inet_connection_create_from_address): (gnome_vfs_inet_connection_free) Implemented. (gnome_vfs_inet_connection_destroy): Use gnome_vfs_inet_connection_free. 2004-07-15 Christian Kellner * libgnomevfs/gnome-vfs-result.h: * libgnomevfs/gnome-vfs-result.c Added the GNOME_VFS_ERROR_NAMESERVER result. (gnome_vfs_result_from_h_errno_val): (gnome_vfs_result_from_h_errno): Moved gnome_vfs_error_from_h_errno code body to gnome_vfs_error_from_h_errno_val and let the former use that. * libgnomevfs/gnome-vfs-ssl.c (gnome_vfs_ssl_create): * libgnomevfs/gnome-vfs-inet-connection.c (gnome_vfs_inet_connection_create) (gnome_vfs_inet_connection_get_ip): Moved to the new resolver API. * libgnomevfs/gnome-vfs-address.h: * libgnomevfs/gnome-vfs-address.c: * libgnomevfs/gnome-vfs-resolve.h: * libgnomevfs/gnome-vfs-resolve.c: New Files. Implemented a simple resolver API. * libgnomevfs/Makefile.am: Added gnome-vfs-resolve.[ch] and gnome-vfs-address.[ch] 2004-07-15 Alexander Larsson Patch from John Palmieri. * libgnomevfs/GNOME_VFS_Daemon.idl: * libgnomevfs/gnome-vfs-drive.c: (gnome_vfs_drive_finalize), (gnome_vfs_drive_get_mounted_volume), (gnome_vfs_drive_volume_list_free), (gnome_vfs_drive_get_mounted_volumes), (gnome_vfs_drive_is_mounted), (_gnome_vfs_drive_remove_volume), (_gnome_vfs_drive_add_mounted_volume), (gnome_vfs_drive_to_corba), (_gnome_vfs_drive_from_corba): * libgnomevfs/gnome-vfs-drive.h: * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: (create_drive_from_mount_point), (create_vol_from_mount): * libgnomevfs/gnome-vfs-volume-monitor-private.h: * libgnomevfs/gnome-vfs-volume-monitor.c: (_gnome_vfs_volume_monitor_unmounted), (_gnome_vfs_volume_monitor_disconnected): * libgnomevfs/gnome-vfs-volume-ops.c: (gnome_vfs_drive_unmount), (gnome_vfs_drive_eject): * libgnomevfs/gnome-vfs-volume.c: (_gnome_vfs_volume_from_corba): * modules/computer-method.c: (get_data_for_drive): Allow several volumes per drive. Deprecate gnome_vfs_drive_get_mounted_volume for gnome_vfs_drive_get_mounted_volumes. 2004-07-15 Christian Kellner * acconfig.h: obsoleted by the new AC_DEFINE statements. Removed. 2004-07-15 Christian Kellner * configure.in: Cleaned up AC_DEFINE statements to avoid autoheader warnings and seperated IPv6 and resolver checks. Added checks for gethostbyname_r on various systems. 2004-07-14 Alexander Larsson * configure.in: * daemon/Makefile.am: * daemon/gnome-vfs-daemon.c: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-method.c: * libgnomevfs/gnome-vfs-private.h: * libgnomevfs/gnome-vfs-volume-monitor-client.c: * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: * libgnomevfs/gnome-vfs-volume-monitor-daemon.h: * libgnomevfs/gnome-vfs-volume-monitor.c: * libgnomevfs/gnome-vfs-volume-ops.c: Move daemon-only code over to a helper library for the daemon. This way all apps won't have to link to the volume code, including dependencies. 2004-07-13 David Zeuthen Export HAL UDI to applications using GNOME VFS. Largely based on patch from Alexander Larsson. * libgnomevfs/gnome-vfs-volume-monitor-private.h: hal_udi is now always added to _GnomeVFSVolumePrivate and _GnomeVFSDrivePrivate even if HAL is not used * libgnomevfs/gnome-vfs-hal-mounts.c: Remove TODO about exporting UDI (_hal_add_volume): Remember to set vol->priv->hal_udi * libgnomevfs/gnome-vfs-volume.h: add gnome_vfs_volume_get_hal_udi() prototype * libgnomevfs/gnome-vfs-volume.c (gnome_vfs_volume_finalize): Always free hal_udi as it is now available even when not using HAL (gnome_vfs_volume_get_hal_udi): New function (gnome_vfs_volume_to_corba, gnome_vfs_volume_from_corba): Handle hal_udi * libgnomevfs/gnome-vfs-drive.h: add gnome_vfs_drive_get_hal_udi() prototype * libgnomevfs/gnome-vfs-drive.c (gnome_vfs_drive_finalize): Always free hal_udi as it is now available even when not using HAL (gnome_vfs_drive_get_hal_udi): New function (gnome_vfs_drive_to_corba, gnome_vfs_drive_from_corba): Handle hal_udi * libgnomevfs/GNOME_VFS_Daemon.idl: (GNOME::VFS::Volume, GNOME::VFS::Drive): Add hal_udi as a string 2004-07-13 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (copy_items): Make sure to not lose skip if its ever set to true. Fixes bug #145487 2004-07-12 Alexander Larsson * modules/ftp-method.c (ftp_connection_destroy): Add more HAVE_GSSAPI ifdefs 2004-07-11 Sebastien Bacher * libgnomevfs/gnome-vfs-uri.c: (make_full_uri_from_relative): Patch from Josselin Mouette to fix a crash, on 64bit arches, due to a bad cast. 2004-07-09 Alexander Larsson * modules/ftp-method.c: Remove spew 2004-07-09 Alexander Larsson * configure.in: * modules/Makefile.am: * modules/ftp-method.c: Implement kerberos/gssapi support for the ftp method. 2004-07-09 Alexander Larsson * configure.in: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-hal-mounts.[ch]: * libgnomevfs/gnome-vfs-drive.c: * libgnomevfs/gnome-vfs-volume.c: * libgnomevfs/gnome-vfs-volume-monitor-daemon.[ch]: * libgnomevfs/gnome-vfs-volume-monitor-private.h: * libgnomevfs/gnome-vfs-volume-monitor.c: Use HAL for volumes if enabled. Patch from David Zeuthen and others. 2004-07-08 Christian Kellner * libgnomevfs/gnome-vfs-file-info.[ch]: register GnomeVFSFileInfo in the glib GType system. Fixes #84530. The patch is based on the bug report of Miroslav Bajtos. 2004-07-08 Christian Kellner * libgnomevfs/gnome-vfs-dns-sd.h: Fixed small typos. 2004-07-07 Christian Kellner * libgnomevfs/gnome-vfs-socket-buffer.[ch]: added the gnome_vfs_socket_buffer_read_until function and fixed some minor gtk-doc comment typos. 2004-07-07 Alexander Larsson * modules/http-method.c (connect_to_uri): * modules/default-modules.conf: Introduce davs for ssl dav. 2004-07-06 Christian Kellner * libgnomevfs/gnome-vfs-inet-connection.[ch]: * libgnomevfs/gnome-vfs-socket.[ch]: * libgnomevfs/gnome-vfs-ssl.[ch]: fixed some gtk-doc comments and added gnome_vfs_inet_connection_set_timeout fuctions * libgnomevfs/gnome-vfs-result.[ch]: added a GNOME_VFS_ERROR_TIMEOUT result 2004-07-06 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c: Make move/copy merge directories instead of overwriting them. * modules/file-method.c: (get_stat_info): Fix up symlink handling 2004-07-05 Alexander Larsson * configure.in: Post release bump ==== gnome-vfs 2.7.3 ==== 2004-07-05 Alexander Larsson * NEWS: Update for 2.7.3 * imported/neon/Makefile.am: Build using automake 2004-07-03 Christophe Fergeau * libgnomevfs/gnome-vfs-utils.c: use dngettext instead of ngettext since gnome-vfs is a library, fixes bug #145344 2004-07-03 Takao Fujiwara * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: add a 'DVD' to the list of known translatable drive names * daemon/gnome-vfs-daemon.c: initialize gettext so that strings from the daemon are translated 2004-06-26 Marco Pesenti Gritti * schemas/desktop_gnome_url_handlers.schemas.in: Set gaim as default handler for aim protocol. 2004-07-02 Alexander Larsson Patch from Christian Kellner to import the latest neon library * Makefile.am: * acinclude.m4: * configure.in: * imported/Makefile.am: * imported/neon/*: Import latest neon sources. 2004-07-02 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: include unistd.h, patch from Ray Simard 2004-06-24 Alexander Larsson Partially based on a patch from laszlo.kovacs@sun.com * libgnomevfs/gnome-vfs-inet-connection.[ch]: Add gnome_vfs_inet_connection_get_ip. * libgnomevfs/gnome-vfs-standard-callbacks.h: Add flags to ask for anon login. * modules/ftp-method.c: Major rewrite, with caching, authentiation, keyring support and generally working a lot better. * modules/network-method.c: (do_monitor_add), (do_monitor_cancel): Fix some typos. 2004-06-23 Alexander Larsson * libgnomevfs/gnome-vfs-cdrom.c: (_gnome_vfs_get_cdrom_type): Support for DragonFly. Patch from hmp96@yahoo.co.uk (Hiten Pandya). 2004-06-23 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c (gnome_vfs_get_default_browse_domains): Add new helper function. * test/test-dns-sd.c (main): Add some tests for gnome_vfs_get_default_browse_domains * modules/network-method.c (refresh_link_lists): fixed typo 2004-06-21 Alexander Larsson * libgnomevfs/gnome-vfs-dns-sd.c: * libgnomevfs/gnome-vfs-dns-sd.h: FreeBSD fixes from Joe Marcus Clarke. 2004-06-18 Alexander Larsson * configure.in: Post release version bump ==== gnome-vfs 2.7.2 ==== 2004-06-18 Alexander Larsson * NEWS: Update news for release 2004-06-18 Alexander Larsson * configure.in: Need -lresolve for unicast dns-sd * doc/gnome-vfs-2.0-sections.txt: Update with some new stuff 2004-06-18 Alexander Larsson * configure.in: Check for howl 0.9.5 * libgnomevfs/Makefile.am: Add gnome-vfs-dns-sd.[ch]. * libgnomevfs/gnome-vfs-dns-sd.[ch]: New files. Implements unicast dns-sd natively and mDNS using howl. * modules/Makefile.am: Add new files * modules/default-modules.conf: Add dns-sd: * modules/dns-sd-method.c: New method for dns-sd browsing. * modules/network-method.c: Rewrite and add support for dns-sd. * schemas/Makefile.am: * schemas/system_dns_sd.schemas.in: Some gconf keys used by network:// * test/Makefile.am: * test/test-dns-sd.c: Testing code for dns-sd 2004-06-09 Alexander Larsson * libgnomevfs/gnome-vfs-socket-buffer.c (gnome_vfs_socket_buffer_write): Slightly more efficient flushing strategy. 2004-06-09 Narayana Pattipati * libgnomevfs/gnome-vfs-socket-buffer.c (gnome_vfs_socket_buffer_write): Consider bytes left to be written instead of total bytes while writing into the target in ftp:// method. Bugzilla bug#143320 2004-06-08 Dave Camp * modules/computer-method.c: (get_file), (build_file_name), (volume_mounted), (drive_connected), (fill_root): Escape the volume name before using it as a file name. 2004-06-07 Nickolay V. Shmyrev * monikers/bonobo-storage-fs.c: fix Bonobo_Storage_listContents so that it uses the proper path. 2004-06-03 Niall Power * libgnomevfs/gnome-vfs-volume-ops.c: mount_unmount_thread(): ignore umount errors if ejection still succeeds. Fixes bugzilla #143569 2004-06-01 Alexander Larsson * configure.in: Post-release bump ==== gnome-vfs 2.7.1 ==== * NEWS: Update for 2.7.1 Thu May 27 15:59:40 2004 Jonathan Blandford * libgnomevfs/xdgmimemagic.c: Sync from upstream. 2004-05-26 Fernando Herrera * modules/sftp-method.c: (invoke_fill_auth), (invoke_full_auth), (invoke_save_auth), (sftp_connect): Get password from keyring if possible. After a correct password is introduced and marked for "store in keyring" store it. Also handles the case of wrong password in the keyring asking again for it. 2004-05-25 Alexander Larsson * modules/default-modules.conf (ssh): * modules/Makefile.am: * modules/ssh-method.c: Remove ssh method, alias to sftp. 2004-05-18 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor-daemon.c (get_device_type_from_device_and_mount): Figure out type by looking at mountpoint basename even outside /mnt. 2004-05-17 Christophe Fergeau * modules/ftp-method.c: reset connection offset in ftp_connection_acquire (should fix #140583) 2004-05-16 Georges Karabin * doc/writing-modules.sgml: fixed prototypes of the module virtual functions, corrected a few spelling/grammatical mistakes, reformulated some sentences for clarity. 2004-05-15 Christophe Fergeau * modules/sftp-method.c: fix filling of the 'type' field in GnomeVFSFileInfo, fixes bug #139371 2004-05-15 Christophe Fergeau * modules/sftp-method.c: truncate existing files when using gnome_vfs_create, fixes bug #140551 2004-05-15 Damien Carbery * modules/sftp-method.c: remove TEMP_FAILURE_RETRY macro since it's used only once and breaks compilation on Solaris. 2004-05-15 ynakai@redhat.com * doc/about.sgml: use 0777 permissions instead of 0x777 in sample code 2004-05-15 Morten Welinder * configure.in: fix ngettext detection on Solaris and AIX 2004-05-15 Michael Wilson * libgnomevfs/xdgmimeglob.h: removed unnecessary comma at the end of an enum 2004-05-11 Alexander Larsson * configure.in: Include sys/param.h when looking for statfs(). Fixes FreeBSD build. Patch from Joe Marcus Clarke 2004-04-20 Christophe Fergeau * modules/sftp-method.c: fix method error reporting, return HOST_NOT_FOUND when trying to use the method with an empty host name. 2004-04-20 Alexander Larsson * configure.in: Bump INTERFACE age (forgot before) * libgnomevfs/GNOME_VFS_Daemon.idl: * libgnomevfs/gnome-vfs-module-callback-marshall.c: * libgnomevfs/gnome-vfs-standard-callbacks.h: Add GNOME_VFS_MODULE_CALLBACK_QUESTION callback * modules/sftp-method.c: (sftp_connect): Call the new callback if host key is missing. Patch from Mattias Eriksson 2004-04-16 Alexander Larsson * acinclude.m4: * configure.in: Fix underquoted m4 definitions. (#133126) Patch from Alexander Winston 2004-04-16 Alexander Larsson * configure.in: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): Better statfs portability (#136468) 2004-04-16 Alexander Larsson Patch from Ondrej Sury * acconfig.h: * configure.in: * libgnomevfs/gnome-vfs-ssl.c: (gnome_vfs_ssl_create_from_fd), (gnome_vfs_ssl_destroy): Work with gnutls 1.0 and older versions. 2004-04-15 Joe Marcus Clarke * configure.in: Add check for the posix_openpt() function (similar to getpt). * modules/pty-open.c: (_gnome_vfs_pty_getpt) Try to use posix_openpt() to get our master pty. * modules/sftp-mthod.c: Define TEMP_FAILURE_RETRY if it is not already defined. Note: this is a GNU'ism, and not very portable. A better solution might need to be found. 2004-04-15 Alexander Larsson * programs/gnomevfs-info.c (main): Better error reporting * modules/sftp-method.c (sftp_connect): Handle ssh servers that ask "Password:" instead of "password:". 2004-04-15 Bastien Nocera * programs/.cvsignore: * programs/Makefile.am: * programs/gnomevfs-rm.c: add a test for unlink (Closes: #135796) 2004-04-09 Guntupalli Karunakar * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS. 2004-04-01 Alexander Larsson Partially based on patch from Christian Kellner * doc/tmpl/gnome-vfs-socket-buffer.sgml: * doc/tmpl/gnome-vfs-socket.sgml: * doc/tmpl/gnome-vfs-ssl.sgml: Docs updates. * libgnomevfs/gnome-vfs-socket.h: * libgnomevfs/gnome-vfs-socket.c: (gnome_vfs_socket_write), (gnome_vfs_socket_close), (gnome_vfs_socket_read): Make sockets have cancellable arguments. * libgnomevfs/gnome-vfs-inet-connection.c: (gnome_vfs_inet_connection_create), (gnome_vfs_inet_connection_close), (gnome_vfs_inet_connection_read), (gnome_vfs_inet_connection_write): Make fd non-blocking, implement cancelability * libgnomevfs/gnome-vfs-socket-buffer.[ch]: (gnome_vfs_socket_buffer_destroy), (refill_input_buffer), (gnome_vfs_socket_buffer_read), (gnome_vfs_socket_buffer_peekc), (flush), (gnome_vfs_socket_buffer_write), (gnome_vfs_socket_buffer_flush): Make cancellable. * libgnomevfs/gnome-vfs-ssl.[ch]: (_gnome_vfs_ssl_init), (handle_ssl_read_write), (gnome_vfs_ssl_create), (gnome_vfs_ssl_create_from_fd), (gnome_vfs_ssl_read), (gnome_vfs_ssl_write), (gnome_vfs_ssl_destroy): Make cancellable, handle non-blocking fds. Note: gnutls version not updated yet, will not build. * modules/ftp-method.c: (get_cancellation), (read_response_line), (get_response), (do_control_write), (do_basic_command), (do_path_command), (do_path_command_completely), (do_transfer_command), (end_transfer), (ftp_login), (ftp_connection_create), (ftp_connection_destroy), (ftp_connection_acquire), (do_close), (do_read), (do_write), (do_seek), (do_open_directory), (do_move): Support cancellation. * modules/http-method.c: (get_header), (create_handle), (https_proxy), (connect_to_uri), (xmit_request), (make_request), (http_handle_close), (do_read): Support cancellation. * modules/nntp-method.c: (read_response_line), (do_control_write), (nntp_connection_create), (nntp_connection_destroy): * test/test-ssl.c: (main): Update for new API. 2004-04-01 Christian Kellner * libgnomevfs/gnome-vfs-job.c: * libgnomevfs/gnome-vfs-private-utils.[ch]: Moved set_fl and clr_fl to gnome-vfs-private-utils as _gnome_vfs_set_fd_flags and _gnome_vfs_clear_fd_flags. 2004-03-31 Alexander Larsson * configure.in: Bump version to 2.7.1. 2.6.x work continues on gnome-2-6 branch 2004-03-31 Christian Rose * configure.in: Added "af" to ALL_LINGUAS. 2004-03-30 Adam Weinberger * configure.in: Added en_CA to ALL_LINGUAS. 2004-03-30 Alexander Larsson * libgnomevfs/gnome-vfs-parse-ls.c (finduid, findgid): Remove non-threadsafe use of globals (bug 41179) 2004-03-26 Alexander Larsson * libgnomevfs/gnome-vfs-application-registry.c (gnome_vfs_application_registry_get_mime_types): Fix crash. (#136748) 2004-03-19 Alexander Larsson * modules/smb-method.c (do_get_file_info): Make sure the toplevel smb directories aren't writeable. 2004-03-22 Alexander Larsson * configure.in: Bump to 2.6.1 === gnome-vfs 2.6.0 === 2004-03-22 Alexander Larsson * NEWS: * configure.in: Update to 2.6.0 2004-03-22 Guntupalli Karunakar * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS. 2004-03-19 Alexander Larsson * doc/writing-modules.sgml: Fixed some doc details wrt chained uri syntax * modules/ftp-method.c (do_open_directory): Fix potential buffer overrun. 2004-03-18 Alexander Larsson * schemas/desktop_gnome_url_handlers.schemas.in: Fix up needs_terminal typos Patch from Warren Togami 2004-03-16 Gareth Owen * configure.in: Added en_GB to ALL_LINGUAS === gnome-vfs 2.5.91 === 2004-03-15 Alexander Larsson * NEWS: * configure.in: Update to 2.5.91 2004-03-12 Alexander Larsson * modules/smb-method.c (auth_fn): Fix compiler errors due to typo. 2004-03-10 Alexander Larsson * libgnomevfs/gnome-vfs-cancellable-ops.c (gnome_vfs_find_directory_cancellable): For NULL near_uri, expand home dir if symlink. 2004-03-10 Alexander Larsson * libgnomevfs/gnome-vfs-private-utils.[ch] (gnome_vfs_process_run_cancellable): Use correct return type. 2004-03-09 Christophe Fergeau * libgnomevfs/gnome-vfs-ssl.c: Doh! I managed to break compilation by adding unwanted chars at the beginning of the file :( 2004-03-08 Christophe Fergeau * configure.in: Properly install ssl-modules.conf when using GNU TLS * libgnomevfs/gnome-vfs-ssl.c: (gnome_vfs_ssl_create_from_fd): fix an implicit int to pointer conversion when using GNU TLS. 2004-03-08 Alexander Larsson * modules/sftp-method.c (sftp_connect): Return ACCESS DENIED for servers with unknown host key (for now) === gnome-vfs 2.5.90 === 2004-03-08 Alexander Larsson * NEWS: * configure.in: Update to 2.5.90 2004-03-08 Dave Camp * modules/sftp-method.c: (sftp_connect), (sftp_get_connection), (sftp_connection_close), (sftp_connection_ref), (close_and_remove_connection), (sftp_connection_unref), (do_open), (do_create), (do_write), (do_get_file_info), (do_open_directory), (do_make_directory), (do_remove_directory), (do_move), (do_rename), (do_unlink), (do_set_file_info), (do_create_symlink), (close_thunk), (vfs_module_shutdown): Fix some threadsafety and refcounting problems. 2004-03-07 Christophe Fergeau * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): Fixed a small leak on Sun machines 2004-03-05 Alexander Larsson * libgnomevfs/gnome-vfs-volume-ops.c (emit_pre_unmount): Do a synchronous pre_unmount in this process and delay to allow other processes to release their hold on the device. 2004-03-05 Alexander Larsson * modules/default-modules.conf (sftp): Don't include "lib" and ".so" in library reference. Noticed by Michael Wilson 2004-03-05 Christophe Fergeau * libgnomevfs/xdgmimemagic.c: fix sniffing for mime types using nested patterns (application/x-core for example) 2004-03-04 Alexander Larsson * modules/http-method.c: Don't send host:port when port undefined Remove webdav hack from last checkin that was caused by this. 2004-03-04 Alexander Larsson * modules/http-method.c (make_propfind_request): Handle redirects in PROPFIND. Force slash on end of uri for open_directory. 2004-03-04 Alexander Larsson * configure.in: Actually define HAVE_OPENSSL when used. 2004-03-04 Alexander Larsson * libgnomevfs/xdgmimeint.h: * libgnomevfs/xdgmimeint.c: Fix some declarations. 2004-03-03 Alexander Larsson * libgnomevfs/gnome-vfs-mime.c (_gnome_vfs_get_mime_type_internal): Prefer extensions for ole-streams. Fixes sniffing of ms office types. 2004-03-03 Alexander Larsson * modules/file-method.c (do_monitor_add): Handle NULL filenames correctly. 2004-03-02 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor-client.c: (gnome_vfs_volume_monitor_client_class_init), (read_drives_from_daemon), (read_volumes_from_daemon), (gnome_vfs_volume_monitor_client_finalize): * libgnomevfs/gnome-vfs-volume-ops.c: (force_probe), (emit_pre_unmount): Handle NIL return from _gnome_vfs_client_get_daemon(). Hopefully fixes #133808. 2004-03-02 Alexander Larsson * libgnomevfs/gnome-vfs-mime.c (_gnome_vfs_get_mime_type_internal): Extension before sniffed for bzip2. 2004-02-28 Bryan Forbes * libgnomevfs/gnome-vfs-drive.h: changed GnomeVFSDriveClass to follow conventions used in Gtk+ to work with C++ bindings. * libgnomevfs/gnome-vfs-volume.h: moved the inclusion of gnome-vfs-drive.h lower; took out forward declaration of GnomeVFSDeviceType and declared it before including gnome-vfs-drive.h; moved forward declarations of GnomeVFSDrive, GnomeVFSVolume, and GnomeVFSVolumeOpCallback to right before inclusion of gnome-vfs-drive.h changed GnomeVFSVolumeClass to follow conventions used in Gtk+ to work with C++ bindings. * libgnomevfs/gnome-vfs.h: added gnome-vfs-drive.h, gnome-vfs-volume.h, and gnome-vfs-volume-monitor.h to the list of included headers. * libgnomevfs/Makefile.am: added gnome-vfs-drive.h, gnome-vfs-volume.h, and gnome-vfs-volume-monitor.h to the list of headers to generated gtypes from. * Closes bug #135554. 2004-03-01 Alexander Larsson * modules/sftp-method.c (sftp_connect): Add -oNoHostAuthenticationForLocalhost yes option. Patch from Stefan Voelkel 2004-02-29 Paisa Seeluangsawat * configure.in: Added "th" (Thai) to ALL_LINGUAS. 2004-02-27 Alexander Larsson * libgnomevfs/gnome-vfs-drive.h: * libgnomevfs/gnome-vfs-volume-monitor.h: * libgnomevfs/gnome-vfs-volume.h: Fix includes. 2004-02-26 Alexander Larsson * daemon/gnome-vfs-daemon-dir-handle.c: (gnome_vfs_daemon_dir_handle_read): * daemon/gnome-vfs-daemon-handle.c: (gnome_vfs_daemon_handle_read): * daemon/gnome-vfs-daemon.c: (get_volumes), (get_drives): Fix some corba leaks. (#135034) Found by nshmyrev@yandex.ru (Nickolay V. Shmyrev) 2004-02-25 Danilo Šegan * configure.in: Added sr@ije to ALL_LINGUAS. 2004-02-25 Alexander Larsson * configure.in: * Makefile.am (SUBDIRS): * gtk/* Remove gtk module. Now in libgnomeui 2004-02-25 Alexander Larsson * modules/file-method.c: remove fam watch if fam connection dies make fam global vars static. === gnome-vfs 2.5.8 === 2004-02-23 Alexander Larsson * NEWS: * configure.in: Bump to 2.5.8 2004-02-20 Christophe Fergeau * libgnomevfs/gnome-vfs-mime.c: fix smart sniffing of text files 2004-02-19 Julio M. Merino Vidal * configure.in: Add --with-gtk=yes/no/auto option 2004-02-19 Alexander Larsson * configure.in: Don't fail if libgnomeui not found. 2004-02-18 Alexander Larsson * libgnomevfs/gnome-vfs-filesystem-type.c: Add NetBSD filesystems. Patch from jmmv@menta.net 2004-02-17 Alexander Larsson * Makefile.am: * configure.in: Build the gtk subdir if gtk availible. 2004-02-14 Julio M. Merino Vidal * configure.in: checks for sysctlbyname availability * libgnomevfs/gnome-vfs-unix-mounts.c: fix compilation on NetBSD 2004-02-14 Julio M. Merino Vidal * libgnomevfs/gnome-vfs-cdrom.c: fixed compilation on NetBSD 2004-02-11 Alexander Larsson * modules/computer-method.c (get_data_for_drive): Avoid really really silly drive names. === gnome-vfs 2.5.7 === 2004-02-11 Alexander Larsson * Makefile.am: * modules/vfolder/Makefile.am: * schemas/Makefile.am: Fix distcheck 2004-02-11 Alexander Larsson * NEWS: * configure.in: Bump to 2.5.7 2004-02-09 Christophe Fergeau * modules/http-method.c (parse_ignore_host): Cleaned code from previous commit a bit 2004-02-09 Alexander Larsson * modules/http-method.c (parse_ignore_host): Fix up a couple of issues with masks. 2004-02-06 Anthony Taranto * libgnomevfs/gnome-vfs-volume-ops.c (mount_unmount_thread): Added code to use cdcontrol to eject cds on FreeBSD. Fixes #129980. 2004-02-06 Robert Sedak * configure.in: Added "hr" (Croatian) to ALL_LINGUAS. 2004-02-03 Thomas Cataldo * libgnomevfs/gnome-vfs-socket.c (gnome_vfs_socket_close): Free socket structure * modules/ftp-method.c: (do_transfer_command), (end_transfer), (ftp_connection_create), (ftp_connection_destroy): Fix leaks. 2004-02-03 Thomas Cataldo * modules/nntp-method.c: (parse_date_string), (parse_header): some memory leak fixes. 2004-02-03 Alexander Larsson * modules/file-method.c (monitor_setup): Use better name as fam client 2004-02-03 Federico Mena Quintero * gtk/: New directory for GtkFilesystemGnomeVFS. * gtk/*: Moved files over from the gtkfilechooser module on CVS. 2004-01-30 Tomasz Kłoczko * daemon/Makefile.am: fixes for "make install DESTDIR=". === gnome-vfs 2.5.6 === 2004-01-30 Alexander Larsson * NEWS: * configure.in: Bump to 2.5.6 2004-01-27 David Hawthorne * daemon/gnome-vfs-daemon.c * libgnomevfs/gnome-vfs-volume-monitor-daemon.c * libgnomevfs/gnome-vfs-volume-monitor-daemon.h * libgnomevfs/gnome-vfs-volume-ops.c: gnome_vfs_volume_monitor_daemon_force_probe shouldn't be internal to libgnomevfs (the daemon uses it), fixes bug #132652 (and the build on Solaris) 2004-01-23 Alexander Larsson * schemas/Makefile.am: Dist .schemas files, only clean them on maintainer-clean. 2004-01-22 Alexander Larsson * daemon/gnome-vfs-daemon.c: (force_probe), (gnome_vfs_daemon_class_init): * libgnomevfs/GNOME_VFS_Daemon.idl: * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: (_gnome_vfs_volume_monitor_daemon_force_probe): * libgnomevfs/gnome-vfs-volume-monitor-daemon.h: * libgnomevfs/gnome-vfs-volume-monitor-private.h: * libgnomevfs/gnome-vfs-volume-ops.c: (force_probe), (report_mount_result): Force reload of volumes after a volume operation. 2004-01-22 Christophe Fergeau Portability patch from "The Written Word", fixes bug #131393 * configure.in: use AC_SEARCH_LIBS instead of AC_CHECK_LIB fix small bug in OpenSSL check, added various additional checks for portability * libgnomevfs/gnome-vfs-inet-connection.c: wrap h_errno in #ifdef for AIX * libgnomevfs/gnome-vfs-mime-monitor.c: remove trailing comma in enum * libgnomevfs/gnome-vfs-private-utils.h: fix gnome_vfs_process_run_cancellable return value * libgnomevfs/gnome-vfs-process.c: fix _gnome_vfs_process_signal return value * libgnomevfs/gnome-vfs-result.c: handle both ENOTEMPTY and EEXIST if necessary * modules/bzip2-method.c: * modules/cdda-method.c: * modules/extfs-method.c: * modules/gzip-method.c: * modules/vfolder/test-vfolder.c: * modules/test-method.c: Don't use C++ comments * modules/fstype.c: include for IRIX * modules/ftp-method.c: fix use of a non constant initializer * modules/vfolder/vfolder-method.c: fix val_end type 2004-01-22 Christophe Fergeau * libgnomevfs/gnome-vfs-parse-ls.c: properly handle 32 bits linux device numbers Wed Jan 21 09:31:22 2004 Jonathan Blandford * libgnomevfs/xdgmimeglob.c: * libgnomevfs/xdgmimemagic.c: Sync from upstream 2004-01-20 Christian Kellner * libgnomevfs/gnome-vfs-unix-mounts.c: differ "user" from "user_xattr" mount option Tue Jan 20 14:57:26 2004 Jonathan Blandford * libgnomevfs/xdg*.[ch]: Sync to upstream XDG changes. Merged in GTK+ and other fixes. * libgnomevfs/Makefile.am: Use xdg name mangling to avoid collision with GTK+'s copy. 2004-01-20 Alexander Larsson * libgnomevfs/xdgmimemagic.c (_xdg_mime_magic_insert_match): Correct ordering of priority 2004-01-19 Alex Duggan * daemon/GNOME_VFS_Daemon.server: Removed from cvs * deamon/GNOME_VFS_Daemon.server.in: Added to cvs * daemon/Makefile.am: Rename to gnome-vfs-daemon and move to libexec 2004-01-16 Alexander Larsson * libgnomevfs/GNOME_VFS_Daemon.idl: Make FileSize and FileOffset 64bit 2004-01-15 Alexander Larsson * libgnomevfs/gnome-vfs-socket-buffer.c (gnome_vfs_socket_buffer_read): Don't return OK on EOF. Fixes bug #62147 2004-01-14 Christian Neumair * modules/network-method.c: Fixed tiny obvious typo. 2004-01-14 Alexander Larsson * libgnomevfs/gnome-vfs-mime-private.h: Add _gnome_vfs_get_slow_mime_type. * libgnomevfs/gnome-vfs-mime-sniff-buffer-private.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-mime.h: Default mime sniffing to first extensions, then sniffing. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_url_show_with_env): Always get slow mimetype when launching an app * libgnomevfs/xdgmime.c: * libgnomevfs/xdgmime.h: Fix some bugs. * modules/file-method.c: (get_mime_type): Allow you to force slow mime detection. 2004-01-13 Alexander Larsson * libgnomevfs/xdgmime.c (xdg_mime_init): Apply fix from Joe Marcus Clarke Mon Jan 12 10:14:29 2004 Jonathan Blandford * libgnomevfs/gnome-vfs-mime.c (_gnome_vfs_get_mime_type_internal): special case application/zip as well as application/x-gzip. 2004-01-12 Alexander Larsson * Makefile.am (EXTRA_DIST): Add gtk-doc.make 2004-01-12 Alexander Larsson * Makefile.am (EXTRA_DIST): Remove OrigTree.pl * configure.in: Require intltool 0.29 === gnome-vfs 2.5.5 === 2004-01-12 Alexander Larsson * modules/Makefile.am (libsftp_la_SOURCES): Add sftp.h and pty-open.h 2004-01-12 Alexander Larsson * NEWS: * configure.in: Update to 2.5.5 2004-01-09 Alexander Larsson * daemon/gnome-vfs-async-daemon.c: * daemon/gnome-vfs-async-daemon.h: * daemon/gnome-vfs-daemon-dir-handle.c: * daemon/gnome-vfs-daemon-dir-handle.h: * daemon/gnome-vfs-daemon-handle.c: * daemon/gnome-vfs-daemon-handle.h: * daemon/gnome-vfs-daemon.c: * daemon/gnome-vfs-daemon.h: Add GPL headers to vfs-daemon code. 2004-01-09 Alexander Larsson * modules/Makefile.am: * modules/network-method.c: * modules/default-modules.conf: Network method * modules/computer-method.c: * modules/smb-method.c: Switch desktop file type to application/x-desktop * schemas/Makefile.am: * schemas/system_smb.schemas.in: New workgroup setting 2004-01-09 Alexander Larsson * modules/sftp-method.c (do_rename): Fix rename. based on patch from David O'Callaghan 2004-01-08 Alexander Larsson * configure.in: Add checks for pty stuff * libgnomevfs/gnome-vfs-standard-callbacks.h: * modules/http-method.c: (invoke_callback_basic_authn): * modules/smb-method.c: (invoke_full_auth): Add saving_supported flag * modules/ssh-method.c: (ssh_connect): * modules/Makefile.am: * modules/default-modules.conf: * modules/sftp-method.c: * modules/sftp.h: * modules/pty-open.[ch]: Added sftp method by Bradford Hovinen, with a few fixes and new features. pty-open.c is based on pty.c from vte. * libgnomevfs/xdgmimeglob.c: (_xdg_glob_hash_free_nodes): Fix crash on shutdown 2004-01-08 Thomas Cataldo * programs/gnomevfs-info.c: Fixed a memory leak 2004-01-08 Alexander Larsson * configure.in: * modules/Makefile.am: * modules/smb-method.c: * modules/smb-module.conf: Add smb module, used to be in gnome-vfs-extras. Wed Jan 7 13:36:53 2004 Jonathan Blandford * libgnomevfs/mime*: use the xdg mime system. 2004-01-07 Martin Wehner * modules/file-method.c (rename_helper): Enable capitalization changes on vfat filesystems by renaming via a temp file name. (#130159) 2004-01-06 Federico Mena Quintero * libgnomevfs/gnome-vfs-drive.h: Fix the casting and type-testing macros. * libgnomevfs/gnome-vfs-volume.h: Likewise. === gnome-vfs 2.5.4.1 === 2003-12-28 Alexander Larsson * Makefile.am (EXTRA_DIST): Add OrigTree.pm === gnome-vfs 2.5.4 === 2003-12-28 Alexander Larsson * NEWS: * configure.in: Update for 2.5.4 2003-12-19 Christian Neumair * schemas/desktop_gnome_url_handlers.schemas.in: * schemas/system_http_proxy.schemas.in: Introduce some consistency/simplification both in terminology and punctuation (#129492, #129493, #129497, #129498). 2003-12-18 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_format_file_size_for_display): Correct unit for kilobyte is KB (according to style guide). 2003-12-15 Alexander Larsson * libgnomevfs/gnome-vfs-module-shared.c (gnome_vfs_stat_to_file_info): Never make io_block_size less than 4k if set. That makes no sense. * libgnomevfs/gnome-vfs-xfer.c: (copy_file): Default to 8k buffer * modules/ftp-method.c: (unix_ls_to_file_info): * modules/ssh-method.c: (do_read_directory): Larger block sizes for remote methods. 2003-12-15 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (move_source_is_in_target): Don't unref NULL. * libgnomevfs/gnome-vfs-daemon-method.c (do_get_file_info): Never return NULL corba strings or structures * daemon/gnome-vfs-async-daemon.c (gnome_vfs_async_daemon_get_file_info): Handle failures better. 2003-12-10 Alexander Larsson * libgnomevfs/gnome-vfs-module-callback-marshall.c: Remove debug spew. 2003-12-10 Alexander Larsson * libgnomevfs/GNOME_VFS_Daemon.idl: * libgnomevfs/gnome-vfs-module-callback-marshall.c: Marshallers for the new auth callbacks. 2003-12-10 Carlos Romero * libgnomevfs/gnome-vfs-client.c: properly NULL terminate the list of properties passed to g_object_new (fixes #128931) 2003-12-09 Alexander Larsson * test/test-shell.c (authentication_callback): Fix warnings * libgnomevfs/gnome-vfs-cdrom.c (_gnome_vfs_get_iso9660_volume_name): Clear iso buffer before reading. Based on patch from Joe Marcus Clarke === gnome-vfs 2.5.3 === 2003-12-08 Alexander Larsson * NEWS: * configure.in: 2.5.3 2003-12-05 Alexander Larsson * modules/http-method.c: Implement the new authentication fallbacks for http. 2003-12-05 Mark McLoughlin * schemas/desktop_gnome_url_handlers.schemas.in: Use gnomemeeting -c to handle callto: and h323: 2003-12-05 Mark McLoughlin * schemas/desktop_gnome_url_handlers.schemas.in: Add a h323: handler using gnomemeeting too. 2003-12-05 Mark McLoughlin * schemas/desktop_gnome_url_handlers.schemas.in: Add evolution and gnomemeeting as mailto: and callto: handlers. 2003-12-05 Mark McLoughlin * schemas/Makefile.am: add desktop_gnome_url_handlers.schemas. 2003-12-04 Alexander Larsson * libgnomevfs/gnome-vfs.h: Include gnome-vfs-standard-callbacks.h * libgnomevfs/gnome-vfs-standard-callbacks.h: Add new standard auth callbacks 2003-12-01 Malcolm Tredinnick * libgnomevfs/Makefile.am: Install gnome-vfs-enum-types.h 2003-11-29 Murray Cumming * libgnomevfs/Makefile.am: Use glib-mkenums to generate the get_type() functions for the gnome-vfs enums. The build file stuff is based on the same stuff in pango. * libgnomevfs/gnome-vfs-uri.[h|cc]: Hand-code a get_type() function for GnomeVFSURIHideOptions because glib-mkenums can not guess the correct get_type() function name. 2003-11-28 Jody Goldberg * libgnomevfs/gnome-vfs-unix-mounts.c (get_fstab_file) : fix the build. 2003-11-28 Niall Power * libgnomevfs/gnome-vfs-unix-mounts.c: use VFSTAB macro defn to determine fstab path, if defined. * libgnomevfs/gnome-vfs-volume-monitor-daemon.c: add "hsfs" as a recognized filesystem type for CD-ROM devices. Added autofs detection for Solaris. * libgnomevfs/gnome-vfs-volume-ops.c: eject media by using device path as the default operand instead of the mount point 2003-11-25 Padraig O'Briain * daemon/gnome-vfs-async-daemon.c: Remove underscore from start of gnome_vfs_daemon_set_current_daemon_client_call and gnome_vfs_daemon_convert_to_corba_file_info * daemon/gnome-vfs-daemon-dir-handle.c: Remove underscore from start of gnome_vfs_daemon_convert_to_corba_file_info and gnome_vfs_daemon_convert_from_corba_file_info * daemon/gnome-vfs-daemon-handle.c: Remove underscore from start of gnome_vfs_daemon_convert_to_corba_file_info * daemon/gnome-vfs-daemon.c: Remove underscore from start of gnome_vfs_daemon_volume_to_corba, gnome_vfs_drive_to_corba, gnome_vfs_volume_monitor_emit_pre_unmount * libgnomevfs/gnome-vfs-client-call.[ch]: Remove underscore from start of gnome_vfs_daemon_set_current_daemon_client_call * libgnomevfs/gnome-vfs-client.c: Remove underscore from start of gnome_vfs_volume_monitor_emit_pre_unmount * libgnomevfs/gnome-vfs-daemon-method.[ch]: Remove underscore from start of gnome_vfs_daemon_convert_to_corba_file_info and gnome_vfs_daemon_convert_from_corba_file_info * libgnomevfs/gnome-vfs-drive.c: Remove underscore from start of gnome_vfs_drive_to_corba * libgnomeui/gnome-vfs-volume-monitor-private.h: Remove underscore from start of gnome_vfs_volume_monitor_emit_pre_unmount, gnome_vfs_volume_to_corba and gnome_vfs_drive_to_corba * libgnomevfs/gnome-vfs-volume-monitor.c: Remove underscore from start of gnome_vfs_volume_monitor_emit_pre_unmount * libgnomevfs/gnome-vfs-volume-ops.c: Remove underscore from start of gnome_vfs_volume_monitor_emit_pre_unmount * libgnomevfs/gnome-vfs-volume.c: Remove underscore from start of gnome_vfs_volume_to_corba Fixes bug #127212. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_get_volume_free_space): Add Solaris specific code. Fixes bug #127193. === gnome-vfs 2.5.2 === 2003-11-24 Alexander Larsson * NEWS: * configure.in: Bump to 2.5.2 2003-11-21 Alexander Larsson * libgnomevfs/gnome-vfs-unix-mounts.c (_gnome_vfs_unix_mount_get_unix_device): Avoid creating zombie (#127391) 2003-11-20 Bastien Nocera * programs/gnomevfs-ls.c: (main): escape the current path to be used for listing when no arguments have been passed 2003-11-15 Christophe Fergeau * modules/http-method.c: fixed some leaks 2003-11-15 Jan Kratochvil * modules/http-method.c: forgot to set to NULL a closed connection, fixes #126568 and #125243 2003-11-15 Christophe Fergeau * libgnomevfs/gnome-vfs-utils.c * configure.in: uses ngettext, added check for it in configure.in (gnome-vfs-utils.c was committed with the previous commit, not this one) 2003-11-15 Christophe Fergeau * */.cvsignore: updates 2003-11-15 Christophe Fergeau * docs/* * configure.in: added version number to the API docs start page (fixes #126027) * libgnomevfs/gnome-vfs-utils.c: make copying/moving files to ncpfs file systems work again (fixes #97789), patch by radu@netsoft.ro * modules/http-method.c: don't print warning on empty PROPFIND responses (fixes #125469, patch by Jan Kratochvil) * programs/gnomevfs-ls.c: don't print an error about EOF since EOF on a directory listing only indicates that we finished reading the directory 2003-11-14 Christophe Fergeau * configure.in: removed GNOME_PLATFORM_GNOME_2 since it's deprecated 2003-11-13 Niall Power * libgnomevfs/gnome-vfs-unix-mounts.c: * libgnomevfs/gnome-vfs-cdrom.c: Solaris fixes 2003-11-12 Alexander Larsson * daemon/gnome-vfs-daemon.c: (gnome_vfs_daemon_factory): * libgnomevfs/gnome-vfs-unix-mounts.c: (_gnome_vfs_get_current_unix_mounts): * libgnomevfs/gnome-vfs-utils.c: * modules/cdda-method.c: * modules/ssh-method.c: FreeBSD fixes from Joe Marcus Clarke 2003-11-12 Christophe Fergeau * modules/http-method.c: ignore non significant white spaces in webdav messages. Fixes #118773. It may break some webdav servers, please file bugs or email me if you encounter some webdav breakage. 2003-11-11 Alexander Larsson * libgnomevfs/gnome-vfs-volume.c (gnome_vfs_volume_handles_trash): Don't handle trash on read-only volumes. 2003-11-11 Alexander Larsson * libgnomevfs/gnome-vfs-volume-monitor-daemon.c (create_vol_from_mount): Make sure volumes for user_visible drives are user_visible. === gnome-vfs 2.5.1 === 2003-11-10 Alexander Larsson * test/test-volumes.c: Fix up build 2003-11-10 Alexander Larsson * configure.in: * NEWS: 2.5.1 2003-11-06 Alexander Larsson * libgnomevfs/gnome-vfs-drive.[ch]: Add new function gnome_vfs_drive_is_mounted * libgnomevfs/gnome-vfs-volume-ops.c: * libgnomevfs/gnome-vfs-volume.h: Fix up server unmount slight api change for volume ops new function gnome_vfs_connect_to_server * modules/computer-method.c: (fill_root): No home in computer 2003-11-05 Alexander Larsson * configure.in: Check for more headers/funcs * daemon/gnome-vfs-daemon.c: Renames to fix collision with system headers Implement proxying of volume monitoring * libgnomevfs/GNOME_VFS_Daemon.idl: Added interfaces to proxy volumes * libgnomevfs/Makefile.am: Add new files * libgnomevfs/gnome-vfs-iso9660.h: * libgnomevfs/gnome-vfs-cdrom.[ch]: CDROM utilities * libgnomevfs/gnome-vfs-client.c: Volume proxy code * libgnomevfs/gnome-vfs-filesystem-type.[ch]: Filesystem info * libgnomevfs/gnome-vfs-drive.[ch]: New GnomeVFSDrive API * libgnomevfs/gnome-vfs-init.c: Shut down volume monitor on shutdown * libgnomevfs/gnome-vfs-unix-mounts.[ch]: Code to read mtabs/fstabs. * libgnomevfs/gnome-vfs-volume-monitor-private.h: private volume monitor details * libgnomevfs/gnome-vfs-volume-monitor-client.[ch]: Client implementation of volume monitoring * libgnomevfs/gnome-vfs-volume-monitor-daemon.[ch]: vfs daemon implementation of volume monitoring * libgnomevfs/gnome-vfs-volume-monitor.[ch]: Common volume monitoring code. * libgnomevfs/gnome-vfs-volume-ops.c: Mount/Unmount/Eject code * libgnomevfs/gnome-vfs-volume.[ch]: New GnomeVFSVolume API * modules/Makefile.am: * modules/computer-method.c: * modules/default-modules.conf: New computer:/// method * test/Makefile.am: * test/test-volumes.c: Test code for volume monitoring. 2003-10-31 Stanislav Brabec * modules/vfolder/vfolder-info.c: Fixed special case for applications-all-users with paths specified in $GNOME2_PATH (bug #108665). 2003-10-27 Alexander Larsson * daemon/gnome-vfs-async-daemon.c: FreeBSD has a public async_daemon symbol. Avoid collision. Patch from Joe Marcus Clarke === gnome-vfs 2.5.0.1 === 2003-10-23 Alexander Larsson * configure.in: 2.5.0.1 to fix build 2003-10-21 Alexander Larsson * schemas/Makefile.am (install-data-local): Apparently builddir here is broken for some people. But without it distcheck broke. WTF? === gnome-vfs 2.5.0 === 2003-10-20 Alexander Larsson * schemas/Makefile.am (install-data-local): Fix distcheck 2003-10-20 Alexander Larsson * Makefile.am: * configure.in: * doc/Makefile.am: Use gtk-doc.make * daemon/Makefile.am: * daemon/gnome-vfs-daemon-handle.h: * libgnomevfs/Makefile.am: * test/Makefile.am: Fix distcheck 2003-10-20 Alexander Larsson * configure.in: Require orbit 2.9.0 2003-10-20 Christophe Fergeau * NEWS: updated 2003-10-20 Manuel Clos * libgnomevfs/gnome-vfs-async-ops.c * libgnomevfs/gnome-vfs-async-ops.h * libgnomevfs/gnome-vfs-job.c * libgnomevfs/gnome-vfs-job.h: added asynchronous seek implementation (gnome_vfs_async_seek) 2003-10-20 Manuel Clos * modules/ftp-method.c: added seek/tell support 2003-10-20 Christophe Fergeau * libgnomevfs/gnome-vfs-private-utils.c: forgot to take into account '\0' when replacing strcpy with memmove. Fixes the panel applications menu. Sun Oct 19 09:30:05 2003 Jonathan Blandford * libgnomevfs/gnome-vfs-xfer.c (free_progress): fix typo that prevented free_progress from compiling. 2003-10-19 Christophe Fergeau * modules/ssh-method.c: removed debugging g_print * NEWS: updated 2003-10-19 Christophe Fergeau * modules/ssh-method.c: applied slightly modified patch from Mitch to fix the method with some ssh servers. 2003-10-18 Christophe Fergeau * libgnomevfs/gnome-vfs-private-utils.c: replaced some strcpy where src and dest overlapped with memmove. Fixes #124873. 2003-10-18 Christophe Fergeau * libgnomevfs/gnome-vfs-xfer.c: only free duplicate_name after the GNOME_VFS_XFER_PHASE_COMPLETED state. 2003-10-17 Jody Goldberg * autogen.sh : Add an explicit depend on automake >= 1.6 to get things building again with the new daemon code. 2003-10-17 Alexander Larsson Merge the ALEX_DAEMON branch * Makefile.am: Add daemon subdir * configure.in: Add libbonobo req * daemon/GNOME_VFS_Daemon.server: bonobo-activation file for the server * daemon/Makefile.am: Makefiles * daemon/gnome-vfs-async-daemon.[ch]: * daemon/gnome-vfs-daemon-dir-handle.[ch]: * daemon/gnome-vfs-daemon-handle.[ch]: * daemon/gnome-vfs-daemon.[ch]: Implementation of the vfs daemon * libgnomevfs/GNOME_VFS_Daemon.idl: The (internal) corba interface between daemon and clients * libgnomevfs/Makefile.am: Add new files and required CFLAGS * libgnomevfs/gnome-vfs-cancellation-private.h: Export some private cancellation ops * libgnomevfs/gnome-vfs-cancellation.c: Fix locking for the pipes. Add cancellation of the daemon side cancellation objects on cancel. Comment gnome_vfs_cancellation_ack crack. * libgnomevfs/gnome-vfs-client-call.[ch]: Implement client callback object. * libgnomevfs/gnome-vfs-client.[ch]: Client object for server lifecycle control and callbacks. * libgnomevfs/gnome-vfs-configuration.[ch]: Handle config options. Add daemon config option. * libgnomevfs/gnome-vfs-context.c: (gnome_vfs_context_new): Doesn't have to be in primary thread for daemon. * libgnomevfs/gnome-vfs-daemon-method.[ch]: Implement proxy vfs method. * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init), (gnome_vfs_shutdown): Init and shutdown bonobo. Shutdown client stuff. * libgnomevfs/gnome-vfs-job.c: Comment about bug. * libgnomevfs/gnome-vfs-method.c: gnome_vfs_get/set_is_daemon. Proxy to daemon if needed. * libgnomevfs/gnome-vfs-module-callback-marshall.c: * libgnomevfs/gnome-vfs-module-callback-private.h: * libgnomevfs/gnome-vfs-module-callback.c: Code to marshal callbacks over corba. * libgnomevfs/gnome-vfs-private.h: get/set_is_daemon() * libgnomevfs/gnome-vfs-thread-pool.c: Fix shutdown problems * programs/gnomevfs-cat.c: Clean up on exit. 2003-10-17 Christophe Fergeau * configure.in: bump version number to 2.5.0 2003-10-12 Christophe Fergeau * libgnomevfs/gnome-vfs-mime-handlers.c: applied patch by Unai Uribarri Rodríguez (unaiur@yahoo.es) for bug #124779, fixed a memory leak. * libgnomevfs/gnome-vfs-private-utils.c: properly unref the GConf client in error cases. 2003-10-12 Christophe Fergeau * modules/http-method.c: fixed 2 small memory leaks 2003-10-12 Christophe Fergeau * configure.in: fix problem with automake >= 1.6 (fixes #124725) 2003-10-06 Christian Rose * configure.in: Added "mr" to ALL_LINGUAS. 2003-09-23 James M. Cape * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_uri_internal): Don't check volume size info when symlinking (Fixes #48467). 2003-09-22 Alexander Larsson * schemas/Makefile.am: Translate schemas files. Patch from chris@gnome-de.org 2003-09-18 William Jon McCann * test/test-shell.c (main): * test/test-async-directory.c (main): Process options before getting leftover arguments. 2003-09-11 Mathieu Lacage * libgnomevfs/gnome-vfs-file-info.c: make gnome_vfs_file_info_matches match against everything in the FileInfo structure. This effectively makes this function behave like an _equals function but we cannot change the name of the function. 2003-09-18 Alexander Larsson * modules/vfolder/Makefile.am (CLEANFILES): Remove generated vfolder files on make clean. Fixes #121741, patch by Steve Chaplin. 2003-09-17 Alexander Larsson * libgnomevfs/gnome-vfs-async-job-map.c (_gnome_vfs_async_job_map_get_job): Don't assert async_job_map != NULL. Patch from Martin Wehner 2003-09-16 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (copy_file): Correctly set utimes if the owner change fails. Bug #117762 2003-09-16 Alexander Larsson * schemas/system_http_proxy.schemas: Add missing schemas. Patch by Marco Pesenti Gritti. 2003-09-15 Christophe Fergeau * modules/http-method.c: define INET_ADDRSTRLEN if it's not defined in the system headers (fixes #121720) 2003-09-12 Alexander Larsson * HACKING: Fix list name. 2003-09-11 Fatih Demir * configure.in: Added "ta" (Tamil) to the languages' list. === gnome-vfs 2.4.0 === 2003-09-08 Alexander Larsson * NEWS: * configure.in: Version 2.4.0 === gnome-vfs 2.3.90 === 2003-09-02 Alexander Larsson * NEWS: * configure.in: 2.3.90 2003-09-02 Alexander Larsson * libgnomevfs/gnome-vfs-mime-monitor.c: Add a small delay to the mime db changed signal emission to avoid sending multiple events for one change. 2003-09-01 Christian Rose * configure.in: Added "ne" to ALL_LINGUAS. === gnome-vfs 2.3.8 === 2003-08-25 Alexander Larsson * NEWS: * configure.in: Bump to 2.3.8 2003-08-25 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_make_uri_from_input_internal): Only add http: if the string looks like a http uri. 2003-08-25 Alexander Larsson * modules/default-modules.conf: Add dav: scheme, handled by the http module. 2003-08-19 Alexander Larsson * modules/file-method.c (fam_do_iter_unlocked): Don't do anything if fam_connection is NULL. Should fix bug #120211 2003-08-13 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c: revert the ngettext usage. 2003-08-13 Alexander Larsson * modules/http-method.c: Fix the build for Solaris, FreeBSD (and probably anything else that is "not Linux"). Fixes bug #119706. based on patch by Malcolm Tredinnick 2003-08-12 Thomas Vander Stichele * configure.in: make maintainer builds work with aclocal 2003-08-12 Leena Gunda * modules/cdemenu-desktop-method.c (get_title): Added this to get the menu names without quotes. * modules/cdemenu-desktop-method.c (do_open): * modules/cdemenu-desktop-method.c (do_read_directory): Make sure that for unquoted menu item names, the pointers are not NULL. Bugzilla bug# 119425 === gnome-vfs 2.3.7 === 2003-08-11 Alexander Larsson * NEWS: Update * configure.in: Bump to 2.3.7. 2003-08-11 Malcolm Tredinnick * modules/http-method.c: Process the contents of the /system/http_proxy/ignore_hosts gconf key and do not use the proxy when connecting to these hosts. * schemas/system_http_proxy.schemas: Add an entry for /system/http_proxy/ignore_hosts. 2003-08-04 Michael Meeks * test/test-shell.c (authentication_callback), (get_input_string): don't pollute user/password with trailing '\n's. 2003-08-01 Michael Meeks * test/test-shell.c (do_ls): add ls [dir] (main): quit properly at end of stream. 2003-08-03 Danilo Segan * libgnomevfs/gnome-vfs-utils.c: uses ngettext (committed by teuf@gnome.org, please note this makes gnome-vfs depend on a 'new enough' gettext implementation, and compilation will break if such a gettext impl is not available. Hopefully some gnome module (intltool?) makes sure this is the case(?)) === gnome-vfs 2.3.6 === 2003-08-01 Christophe Fergeau * NEWS: * configure.in: Bump version to 2.3.6. 2003-07-25 Christophe Fergeau * libgnomevfs/gnome-vfs-xfer.h: another gcc 3.3 fix, remove unnecessary ',' at the end of some enums. Fixes bug #118851 2003-07-25 Christophe Fergeau * libgnomevfs/gnome-vfs-file-size.h.in: add G_GNUC_EXTENSION before GnomeVFSFileSize declaration to prevent g++ from spitting warnings about long long being forbidden in C++ when used with -pedantic (glib does exactly the same thing in its gint64 definition) Fixes bug #118315 2003-07-24 Leena Gunda * libgnomevfs/gnome-vfs-process.c: Create hash table before associating signal handler for SIGCHLD. Fixes bug #118059 2003-07-18 Christophe Fergeau * test/test-symlinks.c: removed unnecessary ;, fixes build on older gcc and bug #117818 2003-07-18 Fredrik Jönsson * modules/ssh-method.c: cast pid_t* to gint * (fixes compilation on Solaris, bug #117788) * modules/cde-method.c: removed unused variable (fixes compilation on Solaris, bug #117789) * modules/ftp-method.c: include strings.h (for index) (fixes #117787) 2003-07-18 Christophe Fergeau * test/Makefile.am: don't build test-subdir.c since it uses a private gnome-vfs symbol (prefixed with _) which breaks build on some non linux platforms (fixes bug #117791) 2003-07-18 Christophe Fergeau * libgnomevfs/gnome-vfs-mime.c: some stuff wasn't properly freed when calling gnome_vfs_mime_shutdown * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_to_string): fixed a small leak * libgnomevfs/gnome-vfs-uri.c * libgnomevfs/gnome-vfs-utils.c: fixed a few function descriptions to explicitly say when these functions return a newly allocated string * libgnomevfs/gnome-vfs-utils.c (_gnome_vfs_uri_is_in_subdir): fixed a memory leak * test/test-uri.c * test/test-subdir.c * test/test-symlinks.c: fixed some memory leaks (it may seem pointless, but this will save some precious time the next time someone runs valgrind on those tests) 2003-07-17 Christophe Fergeau * test/test-mime-handlers.c: don't segfault on unknown mime types 2003-07-17 Christophe Fergeau * libgnomevfs/gnome-vfs-mime-info.c: fixed a memory leak, fixed a bug where the last line of .mime and .keys files wouldn't be read properly if it didn't end with a \n. 2003-07-17 Christophe Fergeau * modules/vfolder/vfolder-info.c: properly ignore // which can appear in elements * modules/vfolder/vfolder-util.h: fixes debug macro so that it compiles with gcc 3.3 2003-07-17 Christophe Fergeau * test/test-mime-handlers.c: free all allocated memory before exiting to make valgrind happy (and to identify the leaks which are truly coming from gnome-vfs ;) 2003-07-17 Christophe Fergeau * test/test-mime.c: fixed a crash when using an absolute path 2003-07-11 Calum Benson reviewed by: Alex Larsson * modules/vfolder/applications-all-users.vfolder-info.in: Add an Accessibility menu to the Applications menu. Closes #116379, #115979 and #115981. 2003-07-11 Arvind Samptur Reviewed by: Stephen Browne * modules/cdemenu-desktop-method.c: (do_open),(do_open_directory), (do_read_directory): Replace chars such as '/' and '#' with appropriate % escape codes the then unescape again when used to search the dtwmrc files. * modules/cdemenu-desktop-method.c: (open_and_find_pointer_to_menu): Do an exact match of the menu names (strcmp) from the dtwrmc file and not just the first occurance of the string(strchr). 2003-07-10 Alexander Larsson * libgnomevfs/gnome-vfs-thread-pool.c (new_thread_state): Make vfs thread stack size 256k 2003-07-08 Alexander Larsson * libgnomevfs/gnome-vfs-directory.c (gnome_vfs_directory_visit): Handle NULL uris * libgnomevfs/gnome-vfs-cancellable-ops.c (gnome_vfs_get_file_info_uri_cancellable): Handle NULL uris 2003-07-04 Christophe Fergeau * libgnomevfs/gnome-vfs-mime-info.c: (set_value_real): added missing g_string_free (fixes leak) * test/Makefile.am: disabled test-resolv since it uses a private gnome-vfs symbol, which breaks compilation on some non-linux platforms 2003-07-02 Leena Gunda * modules/cdemenu-desktop-method.c (open_and_find_pointer_to_menu): Show the last custom menu defined for the CDE menu items. Bugzilla bug #116101 2003-06-28 Christophe Fergeau * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_set_short_list_applications): when adding an app to the short_list for a mime-type, also add it to the global list of apps able to handle this mime-type 2003-06-28 Christophe Fergeau * libgnomevfs/gnome-vfs-uri.c (BV_IS_SET): don't read out of the buffer bounds if the uri contains 8-bit chars (this fixes some problem when trying to parse uris containing UTF-8 chars) 2003-06-25 Christophe Fergeau * programs/gnomevfs-mkdir.c: removed debugging code, fixes compilation with Forte on Solaris (bug #115862) === gnome-vfs 2.3.5 === 2003-06-23 Dave Camp * NEWS: * configure.in: Bump version to 2.3.5. 2003-06-13 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c (expand_parameters): Fix memory handling. We were freeing already freed stuff in the GNOME_VFS_ERROR_NOT_SUPPORTED case. 2003-06-11 Jon Svendsen * libgnomevfs/gnome-vfs-application-registry.h (GNOME_VFS_APPLICATION_REGISTRY_STARTUP_NOTIFY): Add a macro describing a new application registry key to determine if an application supports startup notification. 2003-06-11 Leena Gunda * modules/cdemenu-desktop-method.c (do_open): Make sure that for unquoted menu item names, the pointers are not NULL. Bugzilla bug#114555 2003-06-10 Alexander Larsson * libgnomevfs/gnome-vfs-job.c: Make job_private static. ==== gnome-vfs 2.3.4 ==== 2003-06-10 Alexander Larsson * NEWS: * configure.in: Bump version 2003-06-07 Mark Finlay * modules/vfolder/applications-all-users.vfolder-info.in Make other point to Other.directory (bug #81834) 2003-06-05 Kenneth Rohde Christiansen * configure.in: Added li to ALL_LINGUAS. ==== gnome-vfs 2.3.3 ==== 2003-06-04 Alexander Larsson * NEWS: * configure.in: Bump version * libgnomevfs/gnome-vfs-mime-magic.c (_gnome_vfs_sniff_buffer_looks_like_text): Make sure to fallback to returning FALSE. 2003-05-26 Alexander Larsson * configure.in: Reomve -Wsign-promo and add -Wno-strict-aliasing to the list of options to test for. Fixes the gcc 3.3 aliasing warnings. 2003-05-24 Christophe Fergeau * doc/Makefile.am * doc/gnome-vfs-2.0-docs.sgml (added) * doc/gnome-vfs-2.0-overrides.txt (added) * doc/gnome-vfs-2.0-sections.txt (added) * doc/gnome-vfs-2.0.types (added) * doc/gnome-vfs-docs.sgml (removed) * doc/gnome-vfs-overrides.txt (removed) * doc/gnome-vfs-sections.txt (removed) * doc/gnome-vfs.types (removed): fixed API docs building so that they appear in devhelp * doc/tmpl/*.tmpl: removed unnecessary \n in section names, added descriptions for some sections 2003-05-23 Alexander Larsson * modules/file-method.c: Handle the fam connection going away if the connection breaks. 2003-05-23 Alexander Larsson * modules/file-method.c (do_monitor_add): Make FAM usage threadsafe. 2003-05-21 Hidetoshi Tajima * configure.in (GETTEXT_PACKAGE): do libnsl and libsocket checks before inet_pton (#113325). 2003-05-20 Christophe Fergeau * modules/ftp-method.c * modules/http-method.c * modules/ssh-method.c: fixed potential crash with uris containing %2F, fixed a few small leaks ==== gnome-vfs 2.3.2 ==== 2003-05-19 Alexander Larsson * NEWS: * configure.in: Bump to 2.3.2. 2003-05-17 Bastien Nocera * Makefile.am: add the programs subdir so the programs are built by default 2003-05-16 Radu Greab Christophe Fergeau * libgnomevfs/gnome-vfs-utils.c(gnome_vfs_get_volume_free_space): fixed a leak when the function was called with an non-file:// uri * modules/file-method.c(do_is_local): ncpfs file systems aren't local (fixes #97789) 2003-05-16 Bastien Nocera * programs/gnomevfs-ls.c: (show_data), (main): remove use of SHOW_ICON 2003-05-16 Bastien Nocera reviewed by: Alexander Larsson * configure.in: * programs/.cvsignore: * programs/Makefile.am: * programs/gnomevfs-cat.c: * programs/gnomevfs-copy.c: * programs/gnomevfs-info.c: * programs/gnomevfs-ls.c: * programs/gnomevfs-mkdir.c: added some programs to test out gnome-vfs methods, use the gnomevfs- prefix for them, add some more information from get_info in -ls and -info 2003-05-14 Pasupathi Duraisamy * configure.in: check "getdelim" in AC_CHECK_FUNCS * libgnomevfs/Makefile.am (EXTRA_DIST): remove getdelim.c * modules/extfs-method.c: Wrap getdelim definition inside #ifndef HAVE_GETDELIM (patch reviewed by alexl@redhat.com) 2003-05-14 Malcolm Tredinnick * modules/http-method.c: Bring comment about gconf keys into line with reality. 2003-05-13 Shailesh Mittal (applied by Ian McKellar ) Changes are made by keeping nautilus in focus. * libgnomevfs/gnome-vfs-uri.c: Macro for URI_DELIMITER_IPV6_SET is added and a value is added to array of structures uri_strspn_sets[]. (split_toplevel_uri): Changed to parse IPv6 address (given in square brackets) like [fe80::203:baff:fe0b:a63d]. (gnome_vfs_uri_to_string): Modified to enclose an IPv6 address within '[' and ']', while converting uri to string. 2003-05-12 Michael Meeks * libgnomevfs/gnome-vfs-job.c: update misc. calls to spew more pleasant debug. * libgnomevfs/gnome-vfs-job.h: add gettimeofday call to JOB_DEBUG_PRINT, add job_debug_types array and JOB_DEBUG_TYPE macro to pretty-print the job type. 2003-05-09 Telsa Gwynne * configure.in: Added cy to ALL_LINGUAS 2003-05-08 Samúel Jón Gunnarsson * configure.in: Added "is" into ALL_LINGUAS 2003-05-06 Danilo Å egan * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS. 2003-05-05 Bastien Nocera * libgnomevfs/gnome-vfs-mime.c: (_gnome_vfs_get_mime_type_internal): "audio/mpeg" is the right mimetype for MP3 files, not "audio/x-mp3" (Closes: #100523) 2003-05-05 Xan Lopez * modules/cdda-cddb.c: (CDDBConnect): Init sock variable to -1, fixes warning compilation. ==== gnome-vfs 2.3.1 ==== 2003-05-05 Alexander Larsson * libgnomevfs/Makefile.am: * configure.in: Go to libgnome/gtk+ style library versioning. 2003-05-05 Alexander Larsson * NEWS: Update * configure.in: Bump version 2003-05-03 Arvind Samptur * modules/cdemenu-desktop-method.c: (create_cde_icon_name_cache): While running the dttypes command to create a icon cache for the cde menu, we need to reap the child process. wait() currently on a solaris box fails with an EINTR. So loop till you succeed. Fixes #111628 2003-04-25 Alexander Larsson Based on patch by Frank Worsley * libgnomevfs/gnome-vfs-utils.[ch]: (gnome_vfs_icon_path_from_filename): Use g_file_test instead of hack_file_exists. (gnome_vfs_make_uri_from_input_with_dirs): Add new function. 2003-04-24 Alexander Larsson * libgnomevfs/Makefile.am (libgnomevfs_2_la_LIBADD): Remove LTLIBOBJS for the moment. It was breaking the build. 2003-04-24 Alexander Larsson Patch from Frank Worsley * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_new_from_id), (gnome_vfs_mime_action_launch), (gnome_vfs_mime_action_launch_with_env), (gnome_vfs_mime_application_launch), (gnome_vfs_mime_application_launch_with_env), (expand_parameters): new functions for launching mime actions and applications * libgnomevfs/gnome-vfs-mime-handlers.h: updated for new functions * libgnomevfs/gnome-vfs-private-utils.c: (_gnome_vfs_use_handler_for_scheme), (_gnome_vfs_url_show_using_handler_with_env): private functions for launching url handlers defined in gconf (gnome_vfs_prepend_terminal_to_vector): the default terminal is needed by gnome-vfs so we make a copy of this from libgnome * libgnomevfs/gnome-vfs-private-utils.h: update for new functions * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-result.h: new error codes for the new functions * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_url_show), (gnome_vfs_url_show_with_env): convenience functions for launching a url in string form using the default application or component * libgnomevfs/gnome-vfs-utils.h: updated for new functions * schemas/desktop_default_applications.schemas: new schema that defines the default terminal application * schemas/Makefile.am: updated for new schema 2003-04-24 Masahiro Sakai * configure.in: fix IPV6 test. check inet_pton() and off64_t. * configure.in: call AC_LIBTOOL_WIN32_DLL. This is necessary for building DLL on some win32 platform. * modules/cdemenu-module.conf * modules/default-modules.conf: remove "lib" prefix from module names since it is added automatically by g_module_build_path(), and it breaks on Cygwin. (Cygwin uses "cyg" as library prefix.) * libgnomevfs/Makefile.am * modules/Makefile.am * modules/vfolder/Makefile.am: add -no-undefined to each library's LDFLAGS, and write each library's depencency libraries explicitly in its LIBADD. These are necessary for building DLL on some win32 platform. * libgnomevfs/Makefile.am (libgnomevfs_2_la_LIBADD): add $(LTLIBOBJS) to link getdelim.lo. * libgnomevfs/getdelim.c: add prototype and fix to work on Cygwin. * modules/file-method.c: don't use lseek64() when off64_t is not available. (do_read_directory): call G_UNLOCK(readdir) when readdir() is failed. (find_trash_in_one_hierarchy_level): fix to work without readdir_r(). * modules/vfolder/Makefile.am (module_flags): add -module * modules/vfolder/vfolder-common.c (entry_reload_if_needed): comment out vfolder_monitor_emit() call since this function is not defined. * modules/http-method.c: if inet_pton() is not available, define the function using inet_aton(). [FIXME: should be done using AC_REPLACE_FUNCS]. 2003-04-24 Michael Meeks * TODO: waffle unproductively - this file is really stale. 2003-04-23 Alexander Larsson * libgnomevfs/gnome-vfs-mime-info.c (gnome_vfs_mime_type_is_known): Nothing is known if the mime type has been deleted. Fixes bug #109479 2003-04-23 Alexander Larsson * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_remove_extension): Handle the case when the last extension is removed. * modules/file-method.c (get_stat_info): Correct handling of symlinks. Fixes bug #111397. Based on patch in bug by jon. 2003-04-18 Christophe Fergeau * libgnomevfs/gnome-vfs-private-utils.h: removed misleading comment * modules/cdemenu-module.conf * modules/default-modules.conf: removed .so extension to module names since this is added automatically by gmodule, and it breaks on some unices (eg HPUX). Fixes #110986 2003-4-17 HideToshi Tajima * modules/cdemenu-desktop-method.c (get_icon_for_menu): Fixes bug #103306. Translators, please translate these messages exactly the same in CDE's sys.dtwmrc file of the locale. 2003-04-17 Balamurali Viswanathan * modules/http-method.c: Changed private symbol inet_aton to inet_pton. 2003-04-15 Christophe Fergeau * configure.in: * libgnomevfs/gnome-vfs-mime-magic.c: don't try to use wctype.h and mbrtowc on platforms which don't have it (bug #110226) 2003-04-11 Christophe Fergeau * modules/http-method.[ch]: cleaned up some eazel related stuff parses an HTTP error code in the body of an answer to a PROPFIND request (fixes access to WebDAV servers using Resin). Fixes bug #110532 2003-04-11 Christophe Fergeau * test/test-uri.c: added regression test for gnome_vfs_uri_make_full_from_relative 2003-04-11 Christophe Fergeau * libgnomevfs/gnome-vfs-i18n.c (read_aliases): make it work * libgnomevfs/gnome-vfs-utils.c: removed bogus #ifndef GNOME_VFS_DISABLE_DEPRECATED 2003-04-11 Hidetoshi Tajima * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): call bindtextdomain inside #ifdef ENABLE_NLS. Fixes bug #110213. 2003-04-11 Michael Meeks * test/test-shell.c (authentication_callback, main): hook up some really dumb authentication bits. 2003-04-11 Alexander Larsson * test/test-async.c (file_control_callback): Don't double free operation_data. 2003-04-09 Michael Meeks * libgnomevfs/gnome-vfs-module-callback.h: add G_BEGIN/END_DECLS for my C++ 2003-04-05 Christophe Fergeau * libgnomevfs/gnome-vfs-uri.c * libgnomevfs/gnome-vfs-utils.c * libgnomevfs/gnome-vfs-utils.h: removed duplicated code, deprecated gnome_vfs_make_uri_full_from_relative, use gnome_vfs_uri_make_full_from_relative instead 2003-04-04 Christophe Fergeau * modules/fstype.c: don't try to call getmntent with a NULL parameter if mtab is non-existent. Fixes bug #106950 2003-04-03 Kaushal Kumar * libgnomevfs/gnome-vfs-mime-info.c (gnome_vfs_mime_set_extensions_list): Set the deleted key to "" if it exists before resetting ext key. Fixes bug #109795. 2003-04-02 Shailesh Mittal * configure.in : Added option for enabling IPv6 support, and only enabling IPv6 support if AF_INET6 and function getaddrinfo are defined there. * libgnomevfs/gnome-vfs-inet-connection.c : Added a field addr6 of #sockaddr_in6 type in structure GnomeVFSInetConnection, for holding IPv6 address. One more field socklen is added to the definition of structure GnomeVFSInetConnection to hold the length of socket for identification of address family. (gnome_vfs_inet_connection_create): Modified to have support for IPv6 addresses too. Included for prototype of the function _gnome_vfs_have_ipv6 (). * libgnomevfs/gnome-vfs-private-utils.c : (_gnome_vfs_have_ipv6): Function added to check for run-time IPv6 support. * libgnomevfs/gnome-vfs-private-utils.h : Added prototype for function _gnome_vfs_have_ipv6 (). * libgnomevfs/gnome-vfs-ssl.c (gnome_vfs_ssl_create) : Modified to have support for IPv6 addresses as well. Included for prototype of the function _gnome_vfs_have_ipv6 (). * modules/cdda-cddb.c : Included "config.h" for having definition of macro ENABLE_IPV6. (CDDBConnect) : Modified to support IPv6 addresses in addition to IPv4. (have_ipv6) : Function added to check for run-time IPv6 support. * modules/http-method.c : Included header for prototype of getaddrinfo(). (have_ipv6) : Function added to check for run-time IPv6 support. (proxy_should_for_hostname) : It is modified to work with IPv6 and IPv4-Mapped IPv6 addresses in addition to IPv4 addresses. ==== gnome-vfs 2.2.4 ==== 2003-03-31 Alexander Larsson * NEWS: * configure.in: Bump to 2.2.4. 2003-03-31 Alexander Larsson * libgnomevfs/gnome-vfs-configuration.c (_gnome_vfs_configuration_init): Look for user modules in ~/.gnome2/vfs/modules instead of ~/.gnome/vfs/modules. 2003-03-27 Christophe Fergeau * modules/ftp-method.c: make sure the current directory is / when using an uri without directory 2003-03-26 Christian Rose * configure.in: Added "yi" to ALL_LINGUAS. 2003-03-25 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_get_volume_free_space): statvfs works for nfs! 2003-03-25 Alexander Larsson * libgnomevfs/gnome-vfs-monitor.c: Don't queue changes to canceled monitors. Fix sign bug that caused events to be missed. Fix theoretical race with setting up the idle handler. 2003-03-23 Murray Cumming * doc/about.sgml: Simple Sample Progam: Allocated memory for the read buffer. Initializing this to 0 would show the error. I don't know how this ran without crashing before. 2003-03-24 Alexander Larsson * libgnomevfs/gnome-vfs-job.c (_gnome_vfs_job_destroy_notify_result): Don't free OP_XFER notify result. Its stack-allocated. (#100654) 2003-03-20 Guntupalli Karunakar * configure.in: Added "ml" in ALL_LINGUAS 2003-03-18 Alexander Larsson * libgnomevfs/gnome-vfs-xfer.c (copy_symlink): Check for errors when copying symlinks. 2003-03-14 Alexander Larsson * libgnomevfs/gnome-vfs-monitor.c (gnome_vfs_monitor_callback): Throttle the change event rate so that applications don't use 100% cpu when monitoring a directory someone is downloading to. 2003-03-14 Dave Camp * libgnomevfs/gnome-vfs-job.c (_gnome_vfs_job_destroy_notify_result): Remove the unnecessary g_warning here. 2003-03-14 Joël Brich * configure.in: Added "eo" to ALL_LINGUAS. 2003-03-14 Michael Meeks * test/test-shell.c (do_ssl): impl. (main, list_commands): upd. 2003-03-14 Alexander Larsson * Makefile.am: Remove hardcoded ACLOCAL_AMFLAGS. Please do not make changes to modules without permission from the maintainer. ==== gnome-vfs 2.2.3 ==== 2003-03-10 Alexander Larsson * NEWS: * configure.in: Bump to 2.2.3 2003-03-05 Alexander Larsson * configure.in: Try pkg-config for detecting openssl. Add --disable-openssl to not use openssl Add --enable-gnutls to enable gnutls. 2003-02-25 Taneem Ahmed * configure.in: Added "bn" to ALL_LINGUAS. 2003-02-24 Alexander Larsson * libgnomevfs/gnome-vfs-job.c (_gnome_vfs_job_destroy_notify_result): Turn crash into g_warning for smb: module callback bug. This needs looking into. I'm not sure what is happening here. 2003-02-24 Alexander Larsson * modules/file-method.c (do_read_directory): Actually make the non-readdir_r case work. 2003-02-24 Alexander Larsson * libgnomevfs/gnome-vfs-monitor.c (destroy_monitor_handle): Warn if the handle was not in the hash table. (gnome_vfs_monitor_callback): Loop to get the hashtable. This fixes a possible race where there is a callback before the add_monitor code has added the monitor to the hashtable. (#106758) 2003-02-21 Alexander Larsson * monikers/Makefile.am: Assign CLEANFILES with normal assignment * libgnomevfs/Makefile.am: Remove commented out lines that were confusing automake. 2003-02-20 Alexander Larsson * libgnomevfs/gnome-vfs-job.h: Remove include of semaphore.h. Not needed. 2003-02-19 Alexander Larsson * libgnomevfs/gnome-vfs-mime-magic.c: Fix vorbis sniff change. (_gnome_vfs_sniff_buffer_looks_like_text): Non utf8 text sniffing. * schemas/Makefile.am (install-data-local): Don't install schemas if --disable-schemas-install was passed * test/test-shell.c: Add support for get_info_from_handle. * modules/http-method.c (do_get_file_info_from_handle): For get_info_from_handle we use the cached file info to avoid re-connecting. 2003-02-18 Alexander Larsson * configure.in: * modules/file-method.c (do_read_directory): Check for readdir_r and use locks + readdir if it doesn't exist. 2003-02-18 Alexander Larsson * libgnomevfs/gnome-vfs-mime-magic.c (_gnome_vfs_sniff_buffer_looks_like_mp3): Don't interpret vorbis files with ID3 tags as mp3. 2003-02-18 Alexander Larsson * configure.in: Define HAVE_SYS_PARAM_H. Patch from jmmv@hispabsd.org. 2003-02-18 Roozbeh Pournader * configure.in: Added "fa" to ALL_LINGUAS. 2003-02-17 Bastien Nocera * modules/ssh-method.c: (do_read_directory): implement setting the type of the file when we have a symlink (Closes: #92630) 2003-02-17 Bastien Nocera * modules/ssh-method.c: (do_read_directory): implement mime-type checking for symlinks, still doesn't work for directories 2003-02-17 Frederic Crozat * modules/file-method.c: (read_link): fix memleak when readlink fails. * test/.cvsignore : quiet CVS, quiet. 2003-02-13 Bastien Nocera * modules/ssh-method.c: (do_move), (do_unlink), (do_check_same_fs): implement do_move and revive do_check_same_fs 2003-02-13 Bastien Nocera * modules/ssh-method.c: (ssh_connect), (do_open_directory): don't crash when accessing ssh://, nicer error message when we get a connection refused 2003-02-13 Bastien Nocera reviewed by: Alexander Larsson * modules/ssh-method.c: (ssh_connect), (ssh_destroy), (ssh_check_for_done), (do_read), (do_read_directory): add more robust error checking, check for EOF and EOD when we're done reading rather than on close ==== gnome-vfs 2.2.2 ==== 2003-02-12 Alexander Larsson * NEWS: * configure.in: Bump to 2.2.2 2003-02-12 Alexander Larsson * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_monitor_add): Free uri if no monitor_add implementation. Plugs leak. * libgnomevfs/gnome-vfs-monitor.c (_gnome_vfs_monitor_do_cancel): Correctly destroy the handle of result == OK. Plugs leak. 2003-02-12 Bastien Nocera reviewed by: Alexander Larsson * modules/Makefile.am: * modules/ssh-method.c: (ssh_connect), (ssh_read_error), (ssh_wait_and_destroy), (do_open), (do_close), (do_read), (do_make_directory), (do_remove_directory), (do_unlink), (do_check_same_fs), (do_set_file_info): give a login failed error when no key is setup to access the machine, a server not available when the machine doesn't have its keys in the known_hosts, use port information from the URI, redirect ssh:/// to ssh://localhost/, wait 30 secs for ssh to finish before killing it (fixes the data loss problem when copying files to a remote location), check for cancellation when ssh takes to much time to finish, implement do_check_same_fs (disabled until move is implemented) 2003-02-10 Christophe Fergeau * modules/file-method.c: disabled the annoying "FAMOpen failed..." warning ==== gnome-vfs 2.2.1 ==== 2003-02-10 Alexander Larsson * NEWS: * configure.in: Bump to 2.2.1 * modules/file-method.c: Queue up fam events before adding/removing monitors to avoid deadlocking. Fixes gnome-theme-manager hang. 2003-02-09 Christophe Fergeau * libgnomevfs/gnome-vfs-configuration.c: fixed a memory leak 2003-02-08 Kang Jeong-Hee * Makefile.am: Added ACLOCAL_AMFLAGS. bug #102296 2003-02-06 Christian Rose * configure.in: Added "id" to ALL_LINGUAS. 2003-01-22 Pablo Saratxaga * configure.in: Added Amharic (am), Bosnian (bs), Macedonian (mk) to ALL_LINGUAS 2003-01-22 Christian Rose * configure.in: Added "mn" to ALL_LINGUAS. ==== gnome-vfs 2.2.0 ==== 2003-01-20 Alexander Larsson * NEWS: * configure.in: Bump to 2.2.0 2003-01-17 Alexander Larsson * libgnomevfs/gnome-vfs-ssl.c (gnome_vfs_ssl_create_from_fd): Fix warning. 2003-01-16 Alexander Larsson * configure.in: Comment out the gnutls check since its not tested. 2003-01-16 Alexander Larsson * acinclude.m4: * acconfig.h: * configure.in: * libgnomevfs/gnome-vfs-ssl.c: gnutls support if openssl is not availible. Patch from Andrew McDonald (debian). I haven't tested this. 2003-01-14 Alexander Larsson * libgnomevfs/gnome-vfs-job.c: Fix race and bugs. Patches from Josh Parsons (jp30@st-and.ac.uk). Fixes #103420 and #103236. ==== gnome-vfs 2.1.91 ==== 2003-01-13 Alexander Larsson * NEWS: * configure.in: Bump to 2.1.91 2003-01-07 Alexander Larsson * modules/gzip-method.c (write_gzip_header): Set creation time. Based on patch by davh@davh.dk. (#41172) * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_extract_dirname): Don't crash on NULL uri->text. Patch by Dennis Haney. (#79730) * libgnomevfs/gnome-vfs-socket-buffer.c (gnome_vfs_socket_buffer_peekc): Return correct char instead of first in buffer. Patch from ksato@users.sourceforge.net (#102202) ==== gnome-vfs 2.1.6 ==== 2003-01-06 Alexander Larsson * NEWS: * configure.in: Bump version to 2.1.6. 2002-12-19 Alexander Larsson * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_format_file_size_for_display): Fix erronous change in string. 2002-12-19 Michael Meeks * big sed job to '_' prefix 'internal' methods, it turns out that the modules use loads of these methods, based on Tim Janik's patch (thanks Tim) 2002-12-18 Diego Gonzalez * libgnomevfs/gnome-vfs-job.h: spelling fix * libgnomevfs/gnome-vfs-handle.h: add the description of GnomeVFSHandle 2002-12-18 Alexander Larsson * configure.in: Fix up mistakes from previous change. 2002-12-18 Diego Gonzalez * configure.in: accidentaly changed the version in the last merge 2002-12-18 Diego Gonzalez * configure.in: check for gtk-doc version 0.10 * libgnomevfs/gnome-vfs-async-ops.[c-h] * libgnomevfs/gnome-vfs-directory.h * libgnomevfs/gnome-vfs-file-info.[c-h] * libgnomevfs/gnome-vfs-handle.h * libgnomevfs/gnome-vfs-init.c * libgnomevfs/gnome-vfs-mime.[c-h] * libgnomevfs/gnome-vfs-mime-info.h * libgnomevfs/gnome-vfs-job.h * libgnomevfs/gnome-vfs-mime-handlers.h * libgnomevfs/gnome-vfs-open-fd.c * libgnomevfs/gnome-vfs-ops.c * libgnomevfs/gnome-vfs-monitor.h * libgnomevfs/gnome-vfs-result.h * libgnomevfs/gnome-vfs-utils.c * libgnomevfs/gnome-vfs-xfer.[c-h] add API docs * doc/writing-modules.sgml: * doc/gnome-vfs-sections.txt * doc/gnome-vfs-docs.sgml * doc/about.sgml * doc/tmpl/gnome-vfs-async-ops.sgml * doc/tmpl/gnome-vfs-directory.sgml * doc/tmpl/gnome-vfs-file-info.sgml * doc/tmpl/gnome-vfs-init.sgml * doc/tmpl/gnome-vfs-metadata.sgml * doc/tmpl/gnome-vfs-ops.sgml * doc/tmpl/gnome-vfs-result.sgml * doc/tmpl/gnome-vfs-uri.sgml * doc/tmpl/gnome-vfs-utils.sgml * doc/tmpl/gnome-vfs-xfer.sgml * doc/Makefile.am fix documentation, reorganize it and migrate the generation to use xml and lixslt * doc/tmpl/gnome-vfs-directory-basic-ops.sgml * doc/tmpl/gnome-vfs-directory-find-ops.sgml * doc/tmpl/gnome-vfs-directory-list-ops.sgml * doc/tmpl/gnome-vfs-file-rw-ops.sgml * doc/tmpl/gnome-vfs-file-trunc-ops.sgml * doc/tmpl/gnome-vfs-file-basic-ops.sgml * doc/tmpl/gnome-vfs-file-advanced-ops.sgml * doc/tmpl/gnome-vfs-file-info-ops.sgml new files 2002-12-18 Alexander Larsson * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-init.h: Deprecate gnome_vfs_mime_shutdown, gnome_vfs_loadinit, gnome_vfs_preinit and gnome_vfs_postinit. 2002-12-18 Frederic Crozat * modules/Makefile.am: * modules/extfs-method.c: * modules/extfs/Makefile.am: use $(libdir) instead of $(prefix)/lib (needed for AMD x86-64) 2002-12-18 Alexander Larsson * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-utils.c: (_gnome_vfs_uri_resolve_all_symlinks_uri), (_gnome_vfs_uri_resolve_all_symlinks), (_gnome_vfs_uri_is_in_subdir): New functions. Not exported since we're in a freeze, but might be nice to export later. * libgnomevfs/gnome-vfs-xfer.c: (move_source_is_in_target), (handle_name_conflicts): Handle the case when moving a file over a directory it is contained in. (Bug #99346) * test/Makefile.am: * test/test-resolv.c: (main): * test/test-subdir.c: (main): Some test code. 2002-12-17 Alexander Larsson * configure.in: * modules/vfolder/Makefile.am (libvfolder_desktop_la_LIBADD): Add gthread-2.0 to TEST_LIBS and add it to LIBADD. Patch from owen taylor. ==== gnome-vfs 2.1.5 ==== 2002-12-16 Alexander Larsson * NEWS: * configure.in: Bump to 2.1.5 2002-12-12 Alexander Larsson * libgnomevfs/gnome-vfs-result.[ch]: Add GNOME_VFS_ERROR_NO_MASTER_BROWSER error. ==== gnome-vfs 2.1.4 ==== 2002-12-09 Alexander Larsson * configure.in: Bump version to 2.1.4. * NEWS: Update 2002-12-06 Frederic Crozat * libgnomevfs/gnome-vfs-mime-info.c: (ensure_user_directory_exist): Check dir is not NULL before trying to close it. 2002-12-05 Frederic Crozat * libgnomevfs/gnome-vfs-mime-info.c: (ensure_user_directory_exist), (write_back_mime_user_file), (write_back_keys_user_file): Ensure directory stream is never leaked. 2002-12-05 Frederic Crozat * libgnomevfs/gnome-vfs-mime-monitor.c: (gnome_vfs_mime_monitor_init): Ensure user mime dir exists before monitoring it 2002-12-05 Alexander Larsson * modules/default-modules.conf: * modules/console-method.c: * modules/Makefile.am: Remove console method. * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-open-fd.c: * libgnomevfs/gnome-vfs-utils.h: Implement gnome_vfs_open_fd(). Patch from Giovanni Corriga 2002-11-27 Jody Goldberg * configure.in : post release version bump 2002-11-27 Jody Goldberg * Release 2.1.3.1 2002-11-27 Jody Goldberg * configure.in : bump to 2.1.3.1 for release 2002-11-12 Michael Meeks * modules/extfs-method.c (do_get_file_info): check result before using the handle. 2002-11-12 Alexander Larsson * libgnomevfs/gnome-vfs-method.h: Added file_control to ops * libgnomevfs/gnome-vfs-async-ops.[ch]: Added gnome_vfs_async_file_control * libgnomevfs/gnome-vfs-cancellable-ops.[ch]: Added gnome_vfs_file_control_cancellable * libgnomevfs/gnome-vfs-ops.[ch]: Added gnome_vfs_file_control * libgnomevfs/gnome-vfs-handle-private.h: * libgnomevfs/gnome-vfs-handle.c: * libgnomevfs/gnome-vfs-job.[ch]: Implement file_control 2002-11-08 Giovanni Corriga * modules/Makefile.am * modules/default-modules.conf * modules/console-method.c: added console method (which adds console:///stdin, console:///stdout, console:///stderr uris) 2002-11-08 Christophe Fergeau * libgnomevfs/gnome-vfs-file-info.h: documented GNOME_VFS_FILE_INFO_FIELDS_ACCESS and GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS * modules/ssh-method.c: only get mime type and access info if they were asked 2002-11-06 Christophe Fergeau * libgnomevfs/gnome-vfs-mime-magic.c * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: rework looks_like_text to use glib functions, remove looks_like_gzip (moved in gnome-mime-data) * libgnomevfs/gnome-vfs-mime.c: removed looks_like_gzip call, replaced by a strcmp on the mime type returned by the sniff function 2002-11-05 Michael Meeks * test/Makefile.am: disable test-metadata * libgnomevfs/gnome-vfs.h: remove gnome-vfs-metadata.h. * libgnomevfs/gnome-vfs-metadata-private.h, * libgnomevfs/gnome-vfs-metadata.h, * libgnomevfs/gnome-vfs-metadata.c: add generated files to CVS, so they can be canonicalized later if neccessary. * libgnomevfs/Makefile.am: disable gob builds, and remove generated files from install - immature / unfinished API. * configure.in: disable building gob. 2002-11-04 Frederic Vannere * modules/ftp-method.c: add support for Microsoft and Netware FTP servers 2002-11-04 bugzilla-gnome@thewrittenword.com * configure.in: * libgnomevfs/gnome-vfs-method.c: check whether to use seteuid/setegid or setresuid/setregid (fixes #96078) 2002-11-04 Jens Elkner * configure.in: fixes --with-openssl-includes 2002-11-04 Josh Lucas * test/test-shell.c: display more info, fixes #42800 2002-11-03 Dmitry G. Mastrukov * configure.in: Added Belarusian to ALL_LINGUAS 2002-11-02 Michael Meeks * Version 2.1.3 * libgnomevfs/Makefile.am: disable check-headers.pl, we have some path issues here. * modules/vfolder/Makefile.am: disable this, doesn't pass either (grr.) 2002-10-31 Bastien Nocera * modules/vfolder/network.vfolder-info.in: make writing to network: work again 2002-10-30 Bastien Nocera * modules/default-modules.conf: * modules/vfolder/Makefile.am: * modules/vfolder/network.vfolder-info.in: added network: scheme 2002-10-29 Jody Goldberg Patch from Christophe Fergeau * libgnomevfs/gnome-vfs-file-info.h : Add explicit flags to request permissioning. * modules/file-method.c (get_access_info) : new. * modules/ssh-method.c (get_access_info) : new. * test/test-info.c (print_file_info) : test for the new flag. 2002-10-29 Michael Meeks * libgnomevfs/gnome-vfs-module-callback.c (copy_one_callback): bin so we can build -Wall cleanly again. 2002-10-29 Colin Walters * test/test-xfer.c: add params so we can regression test the various options nicely. * libgnomevfs/gnome-vfs-xfer.h (GnomeVFSXferOptions): add GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE. * libgnomevfs/gnome-vfs-xfer.c (copy_directory): add recursive symlink following copy support. 2002-10-25 Alex Graveley Drop support for the broken .vfolder-info-default concept. * modules/vfolder/Makefile.am (EXTRA_DIST): Remove applications.vfolder-info-default.in and preferences.vfolder-info-default.in (vfolder_DATA): Remove applications.vfolder-info-default and preferences.vfolder-info-default. * modules/vfolder/applications-all-users.vfolder-info.in: Link to preferences:/// instead of preferences-all-users:///. If admins want to edit preferences-all-users:, they should go there directly. * modules/vfolder/vfolder-info.c (vfolder_info_find_filenames): Don't look for .vfolder-info-default, and don't copy it to the user's vfolder directory. (copy_user_default_file): Remove. (vfolder_info_init): Set the default writedir to ~/.gnome2/vfolders/scheme, in case a .vfolder-info files doesn't exist to tell us where to write changes. 2002-10-25 Alex Graveley * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new_private): Use gnome_vfs_context_peek_current() instead of gnome_vfs_context_new() which was triggering an abort if resolving a transform URI from a worker thread because you cannot create contexts in anything other than the primary thread (for some reason). 2002-10-25 Alex Graveley * modules/vfolder/vfolder-common.c (folder_add_include): Don't add the include to a hashtable, since a) we don't use it and b) it was causing memory corruption on folder free. Fixes #95965. (folder_remove_include): Drop hashtable removing code. 2002-10-24 Brian Cameron * libgnomevfs/gnome-vfs-module-callback.c: Performance fix. No longer copy the default callback functions to stack_info in the function gnome_vfs_module_callback_get_stack_info. Note that the function gnome_vfs_module_callback_invoke is the only function to access the callback hashes, and it already will get the callback from the default if it is not in the private thread memory. 2002-10-21 Stephen Browne * modules/cdemenu-desktop-method.c: Find correct titles and use last defintion instead of first found of a menu that is defined multiple times. 2002-10-12 Seth Nickell * modules/vfolder/applications.vfolder-info-default.in: Disable favorites folder... Everything is favorites now. 2002-10-04 Mark McLoughlin * modules/vfolder/vfolder-common.h: turn on VFOLDER_DEBUG for debugging spew and VFOLDER_DEBUG_WITHOUT_MONITORING for testing non-FAM monitoring code. * modules/vfolder/vfolder-common.c: * modules/vfolder/vfolder-info.c: only spew debugging info if VFOLDER_DEBUG. * modules/vfolder/vfolder-util.c: (monitor_callback_internal): Use non-FAM monitoring code if VFOLDER_DEBUG_WITHOUT_MONITORING is defined. 2002-10-07 Seth Nickell * modules/vfolder/applications-all-users.vfolder-info.in: Don't hardcode displaying evolution and galeon into the top-level menu. 2002-10-01 Yanko Kaneti * schemas/system_http_proxy.schemas: reorder some elements so that it validates. 2002-09-30 Christophe Fergeau * modules/ssh-method.c: Quote filenames using g_shell_quote before passing them to ssh 2002-09-30 Christophe Fergeau * modules/ssh-method.c: Make do_read return GNOME_VFS_ERROR_EOF when it read 0 byte Force C locale in ssh_connect before running ssh (the ls parsing function expects ls output to be in this locale) When the uri contains no username, use the name of the current user (otherwise ssh://localhost won't work). Fix a possible buffer overflow in do_read_directory 2002-09-30 Christophe Fergeau * modules/ftp-method.c: Moved ftp authentification to a separate function (ftp_login) Correctly return GNOME_VFS_ERROR_EOF when do_read didn't read anything 2002-09-27 Arvind Samptur * modules/Makefile.am : look for cde menus only if cde is present. * cdemenu-module.conf : added the new file. * default-modules.conf : remove cdemenu from defaults. Fixes #86736. Patch from Stephen Browne. 2002-09-20 Arvind Samptur * modules/cde-desktop-method.c: Removing Comment field from the desktop files. Fixes #88484 Redoing this since gnome-vfs-rewrite and gnome-2-0 branch merge had knocked it off. 2002-09-19 James Willcox Moved some of eel-vfs-extensions.c into gnome-vfs-utils.c * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_escape_string_internal), (gnome_vfs_make_uri_canonical_old), (gnome_vfs_make_valid_utf8), (gnome_vfs_format_uri_for_display_internal), (gnome_vfs_format_uri_for_display), (is_valid_scheme_character), (has_valid_scheme), (gnome_vfs_escape_high_chars), (gnome_vfs_make_uri_from_input_internal), (gnome_vfs_make_uri_from_input), (gnome_vfs_make_uri_canonical_strip_fragment), (uris_match), (gnome_vfs_uris_match), (gnome_vfs_str_has_prefix), (gnome_vfs_uri_is_local_scheme), (gnome_vfs_handle_trailing_slashes), (gnome_vfs_make_uri_canonical), (gnome_vfs_get_uri_scheme), (file_uri_from_local_relative_path), (gnome_vfs_make_uri_from_shell_arg), (is_uri_partial), (remove_internal_relative_components), (gnome_vfs_make_uri_full_from_relative): * libgnomevfs/gnome-vfs-utils.h: 2002-09-19 Christophe Fergeau * libgnomevfs/gnome-vfs-application-registry.c * libgnomevfs/gnome-vfs-application-registry.h * libgnomevfs/gnome-vfs-configuration.c * libgnomevfs/gnome-vfs-configuration.h: added support for uses_gnomevfs in .application file so that apps can indicate they can open all uris supported by gnomevfs * doc/mime-data-specification.txt: updated doc accordingly 2002-09-13 Ghee Teo * Fixes #92132 in modules/http-method.c which leaks file descriptor on a bad page, error 405. 2002-09-09 Jody Goldberg * libgnomevfs/gnome-vfs-job.c (gnome_vfs_job_destroy_notify_result) : Add an entry to OP_XFER. 2002-09-04 Ian McKellar * libgnomevfs/gnome-vfs-configuration.c: (gnome_vfs_configuration_init): Fixed bug #90035. If g_get_home_dir returns NULL then don't load configuration from your home directory. 2002-09-04 Ian McKellar * LIMITATIONS: Document a few of GnomeVFS's limitations 2002-08-29 Alex Graveley * configure.in: Bump version to 2.1.2 for development. === start merge changes from gnome-vfs-2-0-vfolder-rewrite branch === 2002-08-23 Alex Graveley * modules/vfolder/vfolder-method.c (do_move): Remove fake CHANGED event for .directory files since it is really a bug in nautilus renames (see bug #89616). 2002-08-23 Alex Graveley * modules/vfolder/vfolder-info.c (vfolder_info_emit_change): Call gnome_vfs_escape_path_string() on the path arg. This fixes some strange behavior in nautilus when editing .desktop files with emacs, since emacs' temporary #files were being parsed as URI fragment identifiers. * modules/vfolder/vfolder-util.h (VFOLDER_URI_PARSE): Add debug printf with function name being called. This allows us to trace the vfs method calls. 2002-08-23 Alex Graveley * modules/vfolder/vfolder-common.c (folder_extend_monitor_cb): Fix segfault where we accidentally used child.entry instead of entry. Remove local entry var, and use child.entry throughout. Fixes bug #91271. 2002-08-19 Alex Graveley * modules/vfolder/vfolder-method.c (set_desktop_file_key): Impl. Append a key/value pair to the end of the buffer, after removing any prior occurances of the same keyname. (set_desktop_file_locale_key): Impl. Localize the keyname with the current locale gotten from gnome_vfs_i18n_get_language_list(), and call set_desktop_file_key(). (set_dot_directory_locale_name): Impl. Handles renaming .directory files by making them user-private if necessary, reading in the file contents, replacing the localized Name key, and writing it back out again. Also generates a CHANGED event for the .directory file. (do_move): Call set_dot_directory_locale_name() to change the folder name as described in the .directory file, as well as renaming the "physical" directory name. (do_create_symbolic_link): Fix deadlock by unlocking the vfolder before calling get_file_info() and locking it again afterwards , in case the target URI is on the same filesystem (which may always be the case). * modules/vfolder/vfolder-common.c (entry_make_user_private): Make a .directory file user-private by calling folder_set_desktop_file(), instead of modifying includes/excludes. (create_dot_directory_entry): Make files user_private again, so we don't make a new user-private copy for each edit. Ths has the side effect that changes to applications-all-users: directory names will be reflected in the original .directory files. * modules/vfolder/vfolder-info.c (filename_monitor_handle): Reset info->filename_reload_tag to 0 as a precaution. 2002-08-16 Alex Graveley * modules/vfolder/vfolder-method.c (do_remove_directory_unlocked): Use vfolder_build_uri instead of creating a parent uri only to concat the filename to. (do_move): Call folder_set_name() after folder_make_user_private() just in case. * modules/vfolder/vfolder-info.c (integrate_writedir_entry_changed): Call entry_set_dirty() on the changed entry. (writedir_monitor_cb): Handle files with a .directory extension. * modules/vfolder/vfolder-common.c (folder_extend_monitor_cb): Handle extended subfolder deletion, and don't iterate child entries for changed/delete just lookup based on filename and compare URIs. (create_dot_directory_entry): Don't consider files user_private. (folder_reload_if_needed): Reset the entries and the non-user-private subfolders here. (folder_new): Set dirty to true for new folders. (folder_remove_subfolder): Don't blindly unref the child folder, instead unref the folder we know is our child. Set the removed child's parent to NULL. (folder_add_subfolder): Call folder_remove_subfolder() before adding, but ref first of all. 2002-08-14 Alex Graveley * modules/vfolder/vfolder-util.c (vfolder_untimestamp_file_name): Only remove one set of timestamp, in case we are copying the same file around multiple times. * modules/vfolder/vfolder-common.c (create_dot_directory_entry): Only add entry to folder if it does not contain one with the same name and a higher weight. (read_one_extended_entry): Ditto. (read_one_extended_entry): Ditto. (read_one_include): Ditto. * modules/vfolder/vfolder-method.c (do_remove_directory_unlocked): Remove check for hiddeness, as a recursive delete on a folder with will not allow the actual folder to be deleted once all its contents are removed. (do_unlink_unlocked): Only check result of file delete if parent is a linked directory, since if it fails we can still just remove it from the .vfolder-info. (do_read_directory): Skip to next entry if getting the real file's info fails. * modules/vfolder/vfolder-common.c (read_one_include): Untimestamp included files that originate in the writedir. (folder_remove_entry): Only unref the existing entry, instead of assuming the one we are removing is the same. (folder_add_entry): Ref before calling folder_remove_entry, in case we hold the only ref. * modules/vfolder/preferences-all-users.vfolder-info.in: Set the WriteDir to @vfolderdir@/preferences-all-users. * modules/vfolder/applications-all-users.vfolder-info.in: Set the WriteDir to @vfolderdir@/applications-all-users. * modules/vfolder/Makefile.am (VFOLDER_INFO_CREATE): Translate @vfolderdir@ in .vfolder-info.in files as $(sysconfdir)/gnome-vfs-2.0/vfolders. * modules/vfolder/vfolder-info.c (vfolder_info_find_filenames): Check for system-global file first, then user-local, then try copying the system-default file. This allows administrator override of editing. Remove default WriteDir. (create_itemdir_entry): Don't create ItemDir/MergeDir entries as user-private, because we probably don't really want them deleted/edited. (read_vfolder_from_file): Don't bother creating ItemDir struct to monitor writedirs, since I don't think we actually care about the results. 2002-08-12 Alex Graveley * modules/Makefile.am (modules_LTLIBRARIES): Remove libdesktop.so. * modules/default-modules.conf: Use libvfolder-desktop.so instead of libdesktop.so. * modules/desktop-method.c: Delete in favor of vfolder-based impl. * modules/vfolder/Makefile.am (vfolder_DATA): Install favorites.vfolder-info, start-here.vfolder-info, server-settings.vfolder-info, and system-settings.vfolder-info. * modules/vfolder/favorites.vfolder-info.in: * modules/vfolder/start-here.vfolder-info.in: * modules/vfolder/server-settings.vfolder-info.in: * modules/vfolder/system-settings.vfolder-info.in: New vfolder info files to support the vfs methods currently handled by desktop-method.c 2002-08-12 Alex Graveley * modules/vfolder/vfolder-info.c (find_replacement_for_delete): For correctness, only call set_mergedir_entry_keywords() if id_next is a MergeDir. (itemdir_monitor_handle): Ditto. (itemdir_monitor_cb): Don't handle events other than CHANGED for the WriteDir, since if we care about them the .vfolder-info should be updated and reread, instead of us trying to guess where they go. (vfolder_info_find_filenames): Load user-private, else try copying system-default to user-private, else try using system-global .vfolder-info directly, else fall back to empty user-private .vfolder-info. Fixes bug #90202. 2002-08-09 Alex Graveley * modules/vfolder/vfolder-method.c (do_remove_directory_unlocked): Always unconditionally the deleted folder name, in case the folder is overrriding a system one. (do_unlink_unlocked): Always exclude the deleted entry's displayname, for the same reasons. 2002-08-09 Alex Graveley * modules/vfolder/vfolder-info.c (set_mergedir_entry_keywords): Abstract the MergeDir keyword adding to here. (create_mergedir_entry): Call set_mergedir_entry_keywords(). (find_replacement_for_delete): Take an entry which this mmanipulates directly. Make sure to load up MergeDir keywords for the replaced file on the existing entry. Set the entry weight to that of the ItemDir where we are finding our replacement. (itemdir_monitor_handle): Set weight and load MergeDir keywords when the CREATED entry has a higher weight than an existing one with the same name. (check_monitors_foreach): Don't emit events for folders, since we can't be sure all the entries have been allocated yet. * modules/vfolder/vfolder-common.c (entry_make_user_private): Set the weigth to 1000 so no other entries will override us. (entry_set_weight): Impl. 2002-08-09 Alex Graveley * modules/vfolder/vfolder-method.c (fill_file_info_for_directory): Copy code for filling a GnomeVFSFileInfo with a directory's properties to here from get_file_info_internal(). (get_file_info_internal): Make child a pointer to a FolderChild, not pass-by-value. (do_get_file_info_from_handle): Use get_file_info_internal(), and be sure to read lock the info. * modules/vfolder/vfolder-info.c (vfolder_info_read_info): Don't forget to add the moniitor for the root directory, as directory_visit doesn't call create_entry_directory_visit_cb() for the starting directory. (itemdir_monitor_cb): If the file matches the monitored uri, ignore since we only care about events from our children. Don't set the Vfolder to loading, since we want events to actually be sent. Check the child filename in question is not hidden. 2002-08-08 Alex Graveley * modules/vfolder/vfolder-method.c (do_create): Don't Forgot to write unlock when returning from a failed parent directory creation. (dir_handle_new): Don't hold a read lock here, otherwise directory deletion deadlocks as nautilus traverses the files and deletes them one by one. (dir_handle_new_all): Ditto. (dir_handle_free): Don't read unlock, to match above. (get_file_info_internal): Abstract the GnomeVFSFileInfo filling to here to share code between do_read_directory() and do_get_file_info(). (do_read_directory): Acquire read lock while reading the next entry. (do_make_directory): Add check to block against trying to create the root folder, which always exists. Don't forget to write unlock if make_directory fails for a link folder's actual destination. (do_remove_directory_unlocked): Don't write unlock here, since this is an _unlocked function :-) (do_unlink_unlocked): Only add exclude for displayname if file is not user-private. (do_create_symbolic_link): Use GNOME_VFS_FILE_INFO_FOLLOW_LINKS when stat'ing our target link, as we need to be able to tell if the destination is really a directory. * modules/vfolder/vfolder-info.c (filename_monitor_handle): Move code from filename_monitor_cb, so we can be called from the filename event timeout handler. (filename_monitor_cb): For delete events set a 2 second delay before processing .vfolder-info files, for create a .5 second delay and process change events instantly. * modules/vfolder/vfolder-common.c (entry_make_user_private): Clean up include/exclude handling. Exclude current displayname, remove include for current filename, and add include for new filename. (read_one_include): Simplify include loading, don't try to futz with untimestamping filenames, handle include with just a filename and not a full uri. * modules/vfolder/applications-all-users.vfolder-info.in: Don't include sep.desktop. 2002-08-08 Alex Graveley * modules/vfolder/vfolder-method.c (do_unlink_unlocked): Call folder_remove_include() if the entry is user-private, so we don't leave old tags around. * modules/vfolder/vfolder-info.c (itemdir_free): g_slist_free() monitor list. (vfolder_info_write_user): Check filename monitor exists before trying to freeze/thaw it. This should fix bug #90160. (integrate_entry): Skip folders. Emit a monitor event based on the outcome here. (itemdir_monitor_handle): Update info->modification_time. Fix botched relative path handling on create events. (itemdir_monitor_cb): Fix typo causing double write lock instead of an unlock. Doh :) (copy_user_default_file): Call vfolder_make_directory_and_parents() before trying to copy the default .vfolder-info file. * modules/vfolder/vfolder-common.c (folder_emit_changed): Make non-static. Add some monitor-related debugging g_prints. 2002-08-06 Alex Graveley * modules/vfolder/vfolder-util.c (vfolder_monitor_freeze): Use gnome_vfs_monitor_cancel instead of setting a freeze flag, because the events can arrive after the flag has been reset, causing unneccessary .vfolder-info reads. (vfolder_monitor_thaw): Use gnome_vfs_monitor_add() to add the monitor back. * modules/vfolder/vfolder-method.c (do_create): Create entry with highest weight (1000). (dir_handle_new): Read lock info on DirHandle creation. Use new folder_list_children(). (dir_handle_free): Read unlock info. (do_move): Only delete directory if source and destination folders are different. (do_create_symbolic_link): Impl. Support creation of symbolic links to direcctories by creating a new directory with a tag. (do_monitor_add): Use a read lock instead of write lock because we don't want to write out changes after creating a new monitor. (do_monitor_cancel): Ditto. * modules/vfolder/vfolder-info.c (folder_read): Escape directories beginning with '~'. Unref the child folder after adding it as a subfolder. (read_vfolder_from_file): Ditto, but for ItemDir, MergeDir, WriteDir, and DesktopDir. (itemdir_new): Take weight and untimestamp_files parameters. The first is the weight which will be assigned to entries created from this folder, the second is for WriteDirs, so filenames are displayed without the timestamp. Add ourselves to the info's item_dirs list. (itemdir_free): Free the list of monitors on subdirs of this ItemDir. (create_itemdir_entry): Refactor entry creation for dirs. Add a monitor to the ItemDir struct if the child is a dir, so that we are informed of changes in subfolders. (create_mergedir_entry): Use create_itemdir_entry() to create the entries for dirs, and add keywords by splitting up the relative path and matching against the known list of dir names. (create_entry_directory_visit_cb): directory_visit callback which creates entries based on the type of ItemDir. (vfolder_info_read_info): After reading .vfolder-info, foreach ItemDir call gnome_vfs_directory_visit() so we can create all the entries. (vfolder_info_write_user): Write XML to temporary file then use gnome_vfs_move to move to the config filename, in order to minimize listeners getting libxml parse errors from empty .vfolder-info files. (find_replacement_for_delete): Impl. Look for a like-named replacement for a file which has been deleted. (integrate_entry): Impl. Conditionally traverse and replace all entries with the same name and a lower weight, after rechecking that the new entry matches the folder's query. (itemdir_monitor_handle): Impl. Handling monitor events on ItemDirs by either updating or replacing existing entires, then integrate with all folders using integrate_entry(). (vfolder_info_find_filenames): Complexify the .vfolder-info filename finding code by first checking the standard user location, and then if it doesn't exist copying a system default file to the standard location. This allows for overrides and additions of things in the -all-users.vfolder-info file, such as preferences:// and favorites:///. (filename_monitor_cb): Correctly handle .vfolder-info filename events by looking at the requested monitors, and if they monitor a directory, constructing a list of that directory's children. Then free all the folder/entry resources and reread the .vfolder-info configuration file. Then trave trhough the list we created and check if the folders and their children still exist (if not, then send a DELETED event to the monitor), and then send CREATED events for any new children. * modules/vfolder/vfolder-common.h: Clean out specific monitors from VFolderInfo, as they are all handled as ItemDirs now. * modules/vfolder/vfolder-common.c (entry_new): Accept a weight, which can be used to tell if a given Entry is more important than another based on load order. (entry_reload_if_needed): Copy implicit keywords lists when reloading so we don't lose the MergeDir keywords. (entry_get_weight): Return weight. (entry_add_implicit_keyword): Add Quark to implicit_keywords as well as keywords. (folder_new): Take user_private as a parameter. (folder_extend_monitor_cb): Handle monitor events from our extend_uri correctly by refreshing, deleting, or creating child entries. (create_dot_directory_entry): Move code to create a ".directory" entry here from vfolder-info.c (read_includes): Create entries with highest weight (1000). (read_one_extended_entry): Pass 900 as weight for created entries. Create folders as non-user-private. (folder_reload_if_needed): Start monitoring the extend_uri here, to cut down on unneeded events (folder_emit_changed): Take a child argument, which emits the given event with the uri of the named folder child. (folder_set_extend_uri): Cancel the extend_monitor here. (folder_set_desktop_file): Don't set the folder dirty. (folder_list_children): Impl. Copies all the folder children's names into a list, moved from vfolder-method.c. (folder_get_subfolder): Don't ref the returned folder. (folder_remove_subfolder): Don't modify includes/excludes here, but let the caller do it. Don't set the parent folder to dirty. (folder_add_subfolder): Don't emit monitor changes here, let our caller do it. 2002-07-29 Alex Graveley * modules/vfolder/vfolder-info.c: Add WordProcessing->Office and Toys->Utility keyword mapping. These are two top-level KDE menus. * modules/vfolder/applications-all-users.vfolder-info.in: Use for Preferences, so changes get written out to preferences-all-users:///. 2002-07-29 Alex Graveley * modules/vfolder/vfolder-util.c (vfolder_escape_home): Impl, if the filename starts with '~', escape with home directory. * modules/vfolder/vfolder-method.c Support is_link folders thoughtout. Probably buggy. (do_create_symbolic_link): Impl, support creating "symbolic links" to directories using the element. * modules/vfolder/vfolder-info.c (folder_read): Support ParentLink elements, which means all changes to a directory are forwarded to the parent, and not a private copy in the WriteDir. (itemdir_new): Use vfolder_escape_home(). (read_vfolder_from_file): Ditto. (add_xml_tree_from_folder): Store parent as if is_link is set. (vfolder_info_reset): Reset the flags. (copy_user_default_file): Impl. Copies the scheme.vfolder-info-default to scheme.vfolder-info in the user's .vfolder-info dir. (vfolder_info_init): Split filename choosing out to vfolder_info_find_filenames. * modules/vfolder/vfolder-common.h: Use one bit allocation for flags. Rename inhibit_write to loading in VFolderInfo. Add is_link to Folder. Turn off debugging. * modules/vfolder/vfolder-common.c (read_extended_entries): Call read_one_extended_entry() for each file. (read_info_entry_pool): Call read_one_info_entry_pool() for each entry in the entry pool. * modules/vfolder/Makefile.am (EXTRA_DIST): Installed vfolder-info files are now applications-all-users.vfolder-info, preferences-all-users.vfolder-info, and applications.vfolder-info-default. 2002-07-26 Alex Graveley * modules/vfolder/test-vfolder.c (main): Use putenv() as setenv() is not portable to Solaris. 2002-07-26 Alex Graveley * modules/vfolder/vfolder-util.c (monitor_timeout_cb): Fix reentrency by copying the stat_monitors list, and checking each VFolderMonitor is still in the list while iterating. * modules/vfolder/vfolder-method.c (do_open): Handle all-scheme by loading the FolderChild manually. (dir_handle_new_all): ret->list is a list of entry names, not Entry pointers. (do_read_directory): Handle all-scheme. (do_get_file_info): Ditto. Also, handle a NULL parent folder for all-scheme. (do_remove_directory_unlocked): New, unlocked version of do_remove_directory. (do_remove_directory): Wrap do_remove_directory_unlocked() with a lock. (do_unlink_unlocked): New, unlocked version of do_unlink. (do_unlink): Wrap do_unlink_unlocked() with a lock. (do_move): Fix some logic bugs, use _unlocked versions of unlink and remove_directory, only make the moved file user-private if the displayname has changed. * modules/vfolder/vfolder-info.c (vfolder_info_write_user): Freeze and thaw the filename_monitor while writing out the .vfolder-info, so we don't trigger our own reloads. (vfolder_info_set_dirty): just set info->dirty to true, instead of writing the .vfolder-info out every time. * modules/vfolder/vfolder-common.h (VFOLDER_INFO_WRITE_UNLOCK): Call vfolder_info_write_user() before unlocking, so we batch .vfoldeer-info file writes. * modules/vfolder/vfolder-common.c (entry_reload_if_needed): Add basic support for a "Deprecates" keyword, to allow differently named .desktop files to replace one-another. (read_includes): Read and load the explicit includes here, so we can support including arbitrary URLs, not just extended/pool entries. (is_excluded): New, check the displayname and filename for includability. (folder_reload_if_needed): Call read_includes. (folder_add_include): remove_exclude here. (folder_add_exclude): remove_include here. 2002-07-25 Alex Graveley * modules/vfolder/test-vfolder.c (main): NULL term g_build_filename(). Use putenv() which is more portable than setenv(). 2002-07-24 jacob berkman * modules/vfolder/Makefile.am (libvfolder_desktop_la_LIBADD): point to $(top_builddir) and not a relative path 2002-07-24 Alex Graveley * modules/vfolder/vfolder-method.c (dir_handle_new): Match with folder query for OnlyUnallocated folders when listing contents. (do_make_directory): Handle existing but hidden folder by removing DontShowIfEmpty. * modules/vfolder/vfolder-common.c (folder_is_hidden): Match with folder query for OnlyUnallocated folders, which clears out the Other menu somewhat. * modules/vfolder/vfolder-info.c (get_folder_for_path_list_n): return NULL if parent folder is hidden. * modules/vfolder/test-vfolder.c (test_vfolder_ops): Fix some bad args to gnome-vfs, implement test #6 and #7. 2002-07-23 Alex Graveley * modules/vfolder/vfolder-util.c (vfolder_build_uri): Rip off of g_build_filename, but which handles the first element being a uri scheme://. * modules/vfolder/vfolder-method.c: Use vfolder_build_uri(). * modules/vfolder/vfolder-info.c: Use vfolder_build_uri(). * modules/vfolder/vfolder-common.c: Use vfolder_build_uri(). 2002-07-22 Alex Graveley * modules/vfolder/vfolder-common.c (read_extended_entries): Use g_build_filename(). 2002-07-22 Alex Graveley * modules/vfolder/vfolder-method.c (do_create): Uniquely timestamp filename if there is a writedir, otherwise use the folder's extended URI, otherwise give up. Ensure destination directory before creating. (do_get_file_info): Set permissions to read-only for ReadOnly folders. * modules/vfolder/vfolder-info.c: Add some keywords so ximian menus get organized nicely. (create_entries_from_itemdir): Allow stripping of timestamp at beginning of file if we are reading from the WriteDir. (vfolder_info_read_info): Pass TRUE for user_private so folders are persisted correctly. (vfolder_info_read_info): Strip timestamps from filenames for WriteDir and not from ItemDir. (vfolder_info_write_user): Make directory and parents before saving file. (vfolder_info_init): Allow overwriting of WriteDir and directory containing .vfolder-info files from environment variables. * modules/vfolder/vfolder-common.c (entry_make_user_private): Ensure write directory is created before xferring file. Uniqueify filename, to avoid naming conflicts. Fail if there is no filename. Exclude the old displayname, and include the new timestamped one. Take the parent folder as an arg so we can manage the Includes/Excludes. (entry_set_filename): Free entry->uri on change. (read_extended_entries): Check include/exclude against full uri and filename. * modules/vfolder/test-vfolder.c: New, loads and performs operations on the test-vfolder:/// uri. Still needs a few more tests implemented to be complete. * modules/vfolder/test-vfolder.vfolder-info.in: New, .vfolder-info file used by test-vfolder. * modules/vfolder/test-vfolder-parent.vfolder-info.in: New, .vfolder-info file used by test-vfolder. * modules/vfolder/test-vfolder-modules.conf: Created, vfs module description used by test-vfolder. * modules/vfolder/applications.vfolder-info.in: Merge in ximian menus, as they add some sanity. On the root folder, Exclude gmc, nautilus-help, and gnome-help, Include evolution & galeon. Remove silly rule on root folder causing root entries from GNOME1 to not be shown. Remove silly rule about hiding "System" entries from the Accessories menu. * modules/vfolder/TODO: Update. * modules/vfolder/Makefile.am (test_vfolder_SOURCES): Build test-vfolder, and generate test-vfolder-parent.vfolder-info & test-vfolder.vfolder-info. 2002-07-18 Damon Chaplin * modules/vfolder/vfolder-common.c (folder_emit_changed): for the root folder pass "/" as the uri rather than NULL. 2002-07-18 Damon Chaplin * modules/vfolder/vfolder-common.c (entry_quick_read_keys): oops. didn't need to add '\0' to a GString. That was silly. 2002-07-18 Damon Chaplin * modules/vfolder/vfolder-common.c (entry_quick_read_keys): init *result1 & *result2 to NULL, in case there is an error reading the .desktop file. (Some of my X11 .desktop files are not readable by me, so that caused a problem here.) Also append '\0' to the GString, so we can use it like a normal string. These 2 fixes seem to fix the corruption problems I was having. 2002-07-18 Alex Graveley * modules/vfolder/vfolder-common.c (folder_get_child): Don't call vfolder_info_lookup_entry here for only_unallocated folders, let folder_get_entry() do it. 2002-07-17 Alex Graveley * modules/vfolder/vfolder-info.c (vfolder_info_locate): Wrap load_folders in an inhibit_write, so the vfolder info file doesn't get written out as we create new extended folders. 2002-07-17 Alex Graveley * modules/vfolder/vfolder-info.c (read_vfolder_from_file): Don't free default itemdirs/mergedirs since they are now pulled from GNOME2_PATH. * modules/vfolder/vfolder-common.c (read_extended_entries): Put the '/' in the right place between dirname and filename. (read_extended_entries): Remove extraneous entry_set_filename(). 2002-07-17 Damon Chaplin * modules/vfolder/vfolder-common.c (entry_reload_if_needed): store the value returned from g_slist_prepend(). Fixes bug #88132. 2002-07-17 Alex Graveley * modules/vfolder/vfolder-method.c (do_create): If there is a write dir, then the parent folder's URI, otherwise read-only. * modules/vfolder/vfolder-common.c (entry_quick_read_keys): Free fullbuf even if empty. (entry_make_user_private): Use g_build_filename, not g_build_path. Return success if there is no WriteDir. (folder_unref): Dealloc entries as well as unref. Dealloc any entries which we Excluded. (read_info_entry_pool): Alloc excluded files. * modules/vfolder/applications.vfolder-info.in: Add some defaults, so we don't rely on mandatory defaults from vfolder_info_init(). Spell "Accessories" correctly. Remove the duplication of the preferences-all-users:/// vfolder layout, and just make it the of the Preferences folder. * modules/vfolder/vfolder-info.c (vfolder_info_init): Remove the default itemdir/writedir/desktopdir; just listen to the config file. Use GNOME2_PATH as a bunch of prefixes for itemdirs. 2002-07-16 Alex Graveley * modules/vfolder/ABOUT: Add file describing the vfolder architecture somewhat. 2002-07-15 Frederic Crozat * test/test-uri.c: (main): Fix test, due to canonization change 2002-07-13 Peteris Krisjanis * configure.in - (ALL_LINGUAS) Added support for Latvian (lv) language. 2002-07-12 Rohit R Laavanya K R * modules/file-method.c (do_find_directory): modified the code so as to create the .Trash directory with permissions 0700 only. Fixes bug #46475. 2002-07-12 Alex Graveley * modules/vfolder/vfolder-info.c (read_vfolder_from_file): Load mergedirs and itemdirs to the same list, so we retain load order. (itemdir_new): Add is_mergedir arg. 2002-07-12 Alex Graveley * modules/vfolder/vfolder-method.c (do_unlink): Exclude based on displayname, not filename. (do_create): Include based on displayname, not filename. * modules/vfolder/vfolder-common.c (read_info_entry_pool): Check include/exclude against entry's displayname, note full filename. 2002-07-12 Alex Graveley * modules/vfolder/vfolder-info.c (vfolder_info_destroy): Call vfolder_info_reset. (vfolder_info_reset): Implement. Free everything except scheme, requested_monitors, and rw_lock. (filename_monitor_cb): Call vfolder_info_reset() then vfolder_info_read_info() to reload everything from scratch. (write_dir_monitor_cb): Ditto. * modules/vfolder/vfolder-common.c (entry_quick_read_keys): Fix to not expect fgets() type strings. (entry_set_dirty): Set a dirty flag, instead of always reloading. (entry_set_filename): Set entry dirty. (entry_add_implicit_keyword): Set entry dirty. (entry_get_keywords): Call entry_reload_if_needed(), in case the entry is dirty. 2002-07-11 Alexander Larsson * modules/file-method.c (get_stat_info, do_open): Correctly set O_TRUNC in do_open. Fix uninitialized memory read bug with symlinks in get_stat_info. 2002-07-11 Alex Graveley * modules/vfolder/vfolder-info.c (vfolder_info_init): Free base_scheme. * modules/vfolder/vfolder-util.c (vfolder_monitor_cancel): Free monitor->uri. * modules/vfolder/applcations.vfolder-info: Spell Accessories correctly. 2002-07-10 Alex Graveley * modules/vfolder/vfolder-method.c (dir_handle_new): Fix typo, handle unallocated folders, sorting, and the entry display name being different from the source file's. * modules/vfolder/vfolder-common.c: Redo lots of things here. Notably fixes folder and entry dirtying, and dir loading fixups. * modules/vfolder/vfolder-info.c: Implement missing featues: like correct .directory file handling and, implicit mergedir keywords, and client monitors. * modules/default-modules.conf (all-applications): Add applications-all-users: and preferences-all-users: methods to allow access to system-global vfolders, to allow administrator changes and folder extension. === end merge changes from gnome-vfs-2-0-vfolder-rewrite branch === 2002-08-16 Arvind Samptur * modules/cde-desktop-method.c: Removing Comment field from the desktop files. Fixes #88484 Re-doing this patch as Hidetoshi's patch to fix menus to correctly translate to utf-8 had knocked it off. 2002-08-15 Michael Meeks * modules/file-method.c (read_saved_cached_trash_entries): code should agree on the size of the buffer and how much to read into it. (find_trash_directory): hold a lock on the trash cache while operating on it. #10438 Thu Aug 8 11:26:03 2002 HideToshi Tajima * modules/cdemenu-desktop-method.c (expand_env_vars): get LC_CTYPE from setlocale when no LC_CTYPE environment variable is set. Fixes #86462 * modules/cdemenu-desktop-method.c (get_icon_for_action): use /usr/dt/appconfig/icons/C for fallback to avoid returning "ICON=NONE" which makes gnome-panel crash in many locales. * modules/cdemenu-desktop-method.c (do_open): Patch to fix the cde menus to correctly translate to utf-8, originally by George Lebl Fixes #84074 merged changes back from the gnome-2-0 branch 2002-08-08 jacob berkman * modules/Makefile.am (module_flags): add -module flag (fixes building on OS X) * modules/cdemenu-desktop-method.c (expand_env_vars): fix some broken logic to make cde menu work when $LANG is not set (fixes bug #87684) 2002-08-07 Dave Camp * modules/fstype.c (filesystem_type): Use g_free to free the g_strduped string. 2002-08-05 Federico Mena Quintero Should fix #48539. * modules/fstype.c (filesystem_type_uncached): Merged fix from GNU findutils-4.1.7; return a copied string instead of a pointer to a string on the stack... (filesystem_type): Free the string we got when we must cache a new value. 2002-08-05 Michael Meeks * libgnomevfs/gnome-vfs-mime-info.c (reload_if_needed): forward port Jody's fix for the 5s problem. 2002-02-29 Arvind Samptur * modules/cde-desktop-method.c: Removing Comment field from the desktop files. Fixes #88484 * modules/cde-desktop-method.c (do_read_directory): REALLY ignore CDE specific actions that make no sense in GNOME Patch by Stephen Browne. Fixes #88483 2002-07-27 Ian McKellar * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_read_cancellable), (gnome_vfs_write_cancellable): Check for NULL bytes_(read|written), pass in dummy pointer. 2002-07-26 Ian McKellar * libgnomevfs/gnome-vfs-xfer.c: (copy_file): Fixed up gnome-vfs-xfer problem pointed out by Josh Parsons. My fix is slightly different than his proposed fix but the spirits the same. 2002-07-25 Dave Camp * libgnomevfs/gnome-vfs-inet-connection.c (gnome_vfs_inet_connection_read): Return EOF if 0 bytes were read. 2002-07-25 Michael Meeks * libgnomevfs/gnome-vfs-init.c (gnome_vfs_pthread_init, gnome_vfs_init): init threads if we have to before taking the vfs_already_initialized lock - makes Valgrind happy; thanks to Julian Seward. 2002-07-25 Laszlo Peter reviewed by Michael Meeks * configure.in: added test for libpopt * test/Makefile.am: link libpopt to the test programs. 2002-07-25 Pablo Saratxaga * configure.in: Added Bosnian (bs) to ALL_LINGUAS 2002-07-24 Frederic Crozat * test/Makefile.am: add auto-test to EXTRA_DIST (otherwise make check fails with tarball) 2002-07-24 Michael Meeks * libgnomevfs/gnome-vfs-job.c (gnome_vfs_job_go): dump debug before scheduling the job, rather than when job might be invalid. (handle_cancelled_open): don't do daft things with re-using the original job, and trying to signal strangely to the caller. (dispatch_job_callback): expand switch for CREATE_SYMBOLIC_LINK test for a valid handle before destroying it here, since it wasn't killed at the exit of gnome-vfs-job-slave.c (thread_routine). (execute_read, execute_write): set the op type to READ_WRITE_DONE here before job might be invalid. (gnome_vfs_job_execute): and not here, when it may be duff / freed. * libgnomevfs/gnome-vfs-async-ops.c (gnome_vfs_async_xfer): set handle_return before calling job_go [ which may invalidate job ] * libgnomevfs/gnome-vfs-job.c (job_notify): prune semaphore mess. (gnome_vfs_job_set): lock/unlock. 2002-07-23 Michael Meeks * test/test-async-cancel.c (file_open_callback): move the async_read into the open_callback. * libgnomevfs/gnome-vfs-job.c (empty_close_callback): kill. * libgnomevfs/gnome-vfs-job-queue.c (job_queue_get_first): don't foreach a NULL job_queue. 2002-07-23 Michael Meeks * libgnomevfs/gnome-vfs-async-job-map.c (async_job_callback_map_destroy): don't assert on the idly built async_job_callback_map. * libgnomevfs/gnome-vfs-job-slave.c (thread_routine): always destroy the VFS job, if we are complete, instead of checking for whether we have a callback still registered in the job map, therein lies a race. * libgnomevfs/gnome-vfs-job.c (job_oneway_notify, job_notify): don't leak on cancel. (gnome_vfs_job_destroy): blank the memory for good measure. * libgnomevfs/gnome-vfs-async-job-map.c (gnome_vfs_async_job_map_unlock), (gnome_vfs_async_job_map_lock): cope with the recursive nature of this properly. * libgnomevfs/gnome-vfs-job-queue.c (gnome_vfs_job_queue_shutdown): try locking the job_queue lock before destroying the entire tree, sob. (gnome_vfs_job_queue_run): kill black magic with volatile 'gnome_vfs_quitting' stuff, we don't need that - just hold the job queue lock. * test/test-async-cancel.c (wait_until_vfs_jobs_gone): eliminate follow on error, so we can try and isolate problems more accurately. (test_get_file_info): don't leak URIs in lists. (main): if memprof is running, don't quit just loop. 2002-07-19 Frederic Crozat * configure.in: don't set OPENSSL_CFLAGS if it is "/usr/include", otherwise gcc >= 3.1 issues a warning. 2002-07-19 Frederic Crozat * modules/ssh-method.c: (ssh_connect): Fix bug 88539 (leaking ssh processes) by using g_spawn_async_with_pipes 2002-07-17 Michael Meeks * test/auto-test: re-write. * test/Makefile.am: connect auto-test, upd env. * test/test-async-cancel.c (MAX_THREAD_WAIT): bump the thread wait for my poor old machine. 2002-07-16 Michael Meeks * libgnomevfs/gnome-vfs-async-job-map.c: re-arrange to ensure the locks protect the bits they are supposed to. Kill the volatile things assert on. 2002-07-16 Michael Meeks * libgnomevfs/gnome-vfs-thread-pool.c (thread_list_locks): don't use a recursive mutex. debug print thread pointer not pthread id. * libgnomevfs/gnome-vfs-method.c (init_hash_table, init_path_list): don't take fine grained locks here. (gnome_vfs_method_init): take a lock here instead. (gnome_vfs_add_module_to_hash_table): hold the lock for longer, to avoid nasty races, change sig. (gnome_vfs_method_get): upd / simplify / speedup. (gnome_vfs_transform_get): ditto. * libgnomevfs/gnome-vfs-module-callback.c (stack_keys_alloc): kill in favour of (gnome_vfs_module_callback_private_init): this. (initialize_per_thread_if_needed): upd. (async_callback_response): broadcast instead of signalling, there might be multiple threads waiting. * libgnomevfs/gnome-vfs-init.c (gnome_vfs_pthread_init): upd. (gnome_vfs_init): here. (gnome_vfs_postinit): ensure we do it here too & re-order. 2002-07-15 Michael Meeks * libgnomevfs/gnome-vfs-thread-pool.c (gnome_vfs_thread_create): kill unused thread argument (new_thread_state): port to g_thread. * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): use g_thread_init not gnome_vfs_pthread stuff. (gnome_vfs_postinit): ditto. * libgnomevfs/Makefile.am: remove gnome-vfs-pthread.[ch] * *.[ch]: switch pthread -> g_thread stuff, mostly a sed. 2002-07-12 Michael Meeks * libgnomevfs/gnome-vfs-cancellation.c (gnome_vfs_cancellation_cancel), (gnome_vfs_cancellation_ack): only write if we have a pipe. (gnome_vfs_cancellation_get_fd): idly create the pipes, return -1 on error. (gnome_vfs_cancellation_new): init the pipe fds to -1 * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): move pthread_init up the order. If we don't do this we create a default main context, without the 'wake_up_pipe' initialized, which means that anyone doing a plain gnome-init has a '0' wake_up_pipe by the time they need to write / read to it. This means you see an 'A' on the console and have to hit enter before getting any async callbacks. * libgnomevfs/gnome-vfs-job.h (JOB_DEBUG_PRINT): make more standard. * test/test-async.c (async_queue_callback): impl. (main): hammer the async queue to test efficiency. re-hash lots of this. 2002-07-15 Frederic Crozat * libgnomevfs/gnome-vfs-uri.c: (set_uri_element): canonize NULL uri into "/". "start-here:" will now be canonized into "start-here:///", fixing some monitoring problem in nautilus * test/test-uri.c: (main): Fix test due to canonization change 2002-07-11 Michael Meeks * libgnomevfs/gnome-vfs-mime-info.c (load_type_info_from): use g_string_truncate for a 20% speedup. (APPEND_CHAR): inline more for another 20%. * test/test-mime.c (main): add --speedTest for mime info reloading. 2002-07-07 Seth Nickell * libgnomevfs/gnome-vfs-method.gob: Ahem. Getting built accidentally. Not a good thing. Replacing decent clean files. 2002-07-05 Stephen Browne * modules/cdemenu-desktop-method.c Patch from rohit.raveendran@wipro.com modified the code so that the function create_cde_icon_name_cache creates the file g-cdeiconnames with permissions 644 in .gnome directory in the users home directory. Fixes #87267 2002-06-27 Michael Meeks * modules/vfolder-desktop-method.c (try_free_file_monitors_create_files_unlocked): use ensure_folder_unlocked to avoid deadlock. (rescan_monitors): ditto. #84910 2002-06-25 Jody Goldberg * libgnomevfs/gnome-vfs-mime.c (file_date_record_update_mtime) : track monitor files even if they do not exist at start up. That way we can notice the first user defined mime type is added. (mime_fill_from_file) : ditto. (mime_load) : don't ignore the unborn files just because their parent dir does not exist yet. 2002-06-25 Damon Chaplin * libgnomevfs/gnome-vfs-async-job-map.c (gnome_vfs_async_job_map_init): initialize the async_job_callback_map_lock mutex here, instead of in gnome_vfs_async_job_add_callback(), so we can use it even when async_job_callback_map is NULL. (gnome_vfs_async_job_add_callback): lock the above mutex before checking & creating the async_job_callback_map hash table, to avoid a tiny race condition. (gnome_vfs_async_job_cancel_job_and_callbacks): lock the above mutex first and set job->cancelled. Previously it was just returning if async_job_callback_map was NULL, which meant that job->cancelled didn't get set. (async_job_callback_map_destroy): don't destroy the async_job_callback_map_lock mutex here. We keep it around forever. Fixes bug #74189. 2002-06-21 Seth Nickell * doc/tmpl/gnome-vfs-method.sgml: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-standard-callbacks.h: * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-xfer.h: Pad every struct by at least two "void *"s to avoid future breaks in ABI compatibility. When we already know we're going to have to add fields to a struct, and can forsee needing extra, pad by a little more (notable GnomeVFSFileInfo). * modules/ssh-method.c: Fix compilation problem on Solaris. * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/Makefile.am Add gnome-vfs-types.h back in. 2002-06-21 Stephen Browne * modules/cdemenu-desktop-method.c (find_all_included_files): fix for bug #84967. Patch from ghee.teo@sun.com 2002-06-21 Michael Meeks * configure.in: bin GTK_REQUIRED, upd. BONOBO_REQUIRED and ORBIT_REQUIRED, bonobo-activation-required. #80244 2002-06-13 Glynn Foster * docs/vfolder-info-spec.dtd: Remove some confusing whitespace so you can see where the comments are directed. 2002-06-17 Damon Chaplin * libgnomevfs/gnome-vfs-monitor.c (gnome_vfs_monitor_do_add): if the monitor_add call fails, return NULL as the handle. It was returning a pointer to freed memory before. Fixes bug #84693. Approved by Ian McKellar. 2002-06-17 Seth Nickell * libgnomevfs/gnome-vfs-method.gob: Formatting improvements. 2002-06-17 Seth Nickell * libgnomevfs/gnome-vfs-method.gob: Initial (non-working) pass at converting GnomeVFSMethods into a GObject. 2002-06-17 Seth Nickell * doc/tmpl/gnome-vfs-context.sgml: Add a short description of GnomeVFSContext. * libgnomevfs/gnome-vfs-init.c: Fix documentation for gnome_vfs_is_primary_thread() * libgnomevfs/gnome-vfs-utils.c: Document several string escaping calls. 2002-06-17 Seth Nickell * HACKING: Clean up the hacking file, add comments on making sure any API changes are reflected in the documentation. 2002-06-17 Seth Nickell * libgnomevfs/gnome-vfs-application-registry.h: Document a few special key types. * libgnomevfs/gnome-vfs-async-ops.c: * libgnomevfs/gnome-vfs-async-ops.h: Document all the AsyncCallbacks. * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-monitor.c: * libgnomevfs/gnome-vfs-mime-utils.h: Finish documenting these files. * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-utils.h: Add documentation for a few data types. * libgnomevfs/gnome-vfs-xfer.h: Improve documentation of Xfer data types and enumerations. 2002-06-16 Seth Nickell * doc/tmpl/gnome-vfs-context.sgml: * libgnomevfs/gnome-vfs-context.c: (gnome_vfs_context_new), (gnome_vfs_context_free): * libgnomevfs/gnome-vfs-context.h: Remove "unref" and "ref" calls. Replace with "free". Document context. * doc/gnome-vfs-sections.txt: * libgnomevfs/gnome-vfs-async-ops.c: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-job.c: (gnome_vfs_op_destroy): * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new_private): * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-xfer.h: Finish URI documentation, document xfer, and some enums in file-info. 2002-06-16 Seth Nickell * doc/tmpl/gnome-vfs-async-ops.sgml: * doc/tmpl/gnome-vfs-inet-connection.sgml: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-standard-callbacks.h: * libgnomevfs/gnome-vfs-uri.h: More documentation. 2002-06-16 Seth Nickell * doc/gnome-vfs-sections.txt: * doc/tmpl/gnome-vfs-directory.sgml: * doc/tmpl/gnome-vfs-inet-connection.sgml: * doc/tmpl/gnome-vfs-iobuf.sgml: * doc/tmpl/gnome-vfs-socket-buffer.sgml: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-application-registry.c: * libgnomevfs/gnome-vfs-async-ops.c: (gnome_vfs_async_get_file_info), (gnome_vfs_async_find_directory): * libgnomevfs/gnome-vfs-directory.c: (gnome_vfs_directory_visit_files): * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-inet-connection.c: (gnome_vfs_inet_connection_to_socket), (gnome_vfs_inet_connection_to_socket_buffer): * libgnomevfs/gnome-vfs-inet-connection.h: * libgnomevfs/gnome-vfs-job-queue.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-module.h: * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-socket-buffer.c: (gnome_vfs_socket_buffer_destroy), (gnome_vfs_socket_buffer_peekc): * libgnomevfs/gnome-vfs-socket-buffer.h: * libgnomevfs/gnome-vfs-socket.c: * libgnomevfs/gnome-vfs-ssl.c: (gnome_vfs_ssl_create): * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-utils.c: Bunch more documentation :-) * libgnomevfs/gnome-vfs-iobuf.c: * libgnomevfs/gnome-vfs-iobuf.h: Remove from GnomeVFS as they have the same functions as GnomeVFSSocketBuffer. * modules/ftp-method.c: (read_response_line), (do_control_write), (do_transfer_command), (end_transfer), (ftp_connection_create), (ftp_connection_destroy), (do_read), (do_write), (internal_get_file_info), (do_open_directory): * modules/nntp-method.c: (read_response_line), (do_control_write), (nntp_connection_create), (nntp_connection_destroy): * modules/nntp-method.h: Convert from iobuf to socket_buffer. 2002-06-16 Seth Nickell * libgnomevfs/gnome-vfs-metadata.gob: * libgnomevfs/gnome-vfs-monitor.h: * libgnomevfs/gnome-vfs-ops.c: Add some documentation for metadata and monitoring APIs. 2002-06-16 Seth Nickell * doc/gnome-vfs-docs.sgml: * doc/gnome-vfs-sections.txt: * doc/tmpl/gnome-vfs-async-ops.sgml: * doc/tmpl/gnome-vfs-job-limit.sgml: * doc/tmpl/gnome-vfs-mime-monitor.sgml: * doc/tmpl/gnome-vfs-ops.sgml: Merge some needless categories into ops and async-ops. 2002-06-16 Seth Nickell * doc/gnome-vfs-docs.sgml: * doc/gnome-vfs-sections.txt: Re-organize documentation, move stuff more fluidly between sections rather than relying so heavily on the (rather poor) header file organization. * doc/tmpl/application-registry.sgml: * doc/tmpl/async-ops.sgml: * doc/tmpl/cancellation.sgml: * doc/tmpl/context.sgml: * doc/tmpl/directory.sgml: * doc/tmpl/file-info.sgml: * doc/tmpl/file-size.sgml: * doc/tmpl/find-directory.sgml: * doc/tmpl/gnome-vfs-application-registry.sgml: * doc/tmpl/gnome-vfs-async-ops.sgml: * doc/tmpl/gnome-vfs-cancellation.sgml: * doc/tmpl/gnome-vfs-context.sgml: * doc/tmpl/gnome-vfs-directory.sgml: * doc/tmpl/gnome-vfs-file-info.sgml: * doc/tmpl/gnome-vfs-file-size.sgml: * doc/tmpl/gnome-vfs-find-directory.sgml: * doc/tmpl/gnome-vfs-inet-connection.sgml: * doc/tmpl/gnome-vfs-init.sgml: * doc/tmpl/gnome-vfs-iobuf.sgml: * doc/tmpl/gnome-vfs-job-limit.sgml: * doc/tmpl/gnome-vfs-metadata.sgml: * doc/tmpl/gnome-vfs-method.sgml: * doc/tmpl/gnome-vfs-mime-database.sgml: * doc/tmpl/gnome-vfs-mime-monitor.sgml: * doc/tmpl/gnome-vfs-mime.sgml: * doc/tmpl/gnome-vfs-module-callback-module-api.sgml: * doc/tmpl/gnome-vfs-module-callback.sgml: * doc/tmpl/gnome-vfs-module-shared.sgml: * doc/tmpl/gnome-vfs-module.sgml: * doc/tmpl/gnome-vfs-monitor.sgml: * doc/tmpl/gnome-vfs-ops.sgml: * doc/tmpl/gnome-vfs-parse-ls.sgml: * doc/tmpl/gnome-vfs-result.sgml: * doc/tmpl/gnome-vfs-socket-buffer.sgml: * doc/tmpl/gnome-vfs-socket.sgml: * doc/tmpl/gnome-vfs-ssl.sgml: * doc/tmpl/gnome-vfs-standard-callbacks.sgml: * doc/tmpl/gnome-vfs-transform.sgml: * doc/tmpl/gnome-vfs-unused.sgml: * doc/tmpl/gnome-vfs-uri.sgml: * doc/tmpl/gnome-vfs-utils.sgml: * doc/tmpl/gnome-vfs-xfer.sgml: * doc/tmpl/gnome-vfs.sgml: * doc/tmpl/handle.sgml: * doc/tmpl/inet-connection.sgml: * doc/tmpl/init.sgml: * doc/tmpl/iobuf.sgml: * doc/tmpl/method.sgml: * doc/tmpl/mime-handlers.sgml: * doc/tmpl/mime-info.sgml: * doc/tmpl/mime-monitor.sgml: * doc/tmpl/mime.sgml: * doc/tmpl/module-callback-module-api.sgml: * doc/tmpl/module-callback.sgml: * doc/tmpl/module-shared.sgml: * doc/tmpl/module.sgml: * doc/tmpl/ops.sgml: * doc/tmpl/parse-ls.sgml: * doc/tmpl/result.sgml: * doc/tmpl/ssl.sgml: * doc/tmpl/standard-callbacks.sgml: * doc/tmpl/types.sgml: * doc/tmpl/uri.sgml: * doc/tmpl/utils.sgml: * doc/tmpl/xfer.sgml: New templates... woo hoo. 2002-06-16 Seth Nickell * doc/Makefile.am: * doc/gnome-vfs-docs.sgml: * doc/gnome-vfs-sections.txt: * doc/tmpl/cancellable-ops.sgml: * doc/tmpl/configuration.sgml: * doc/tmpl/gnome-vfs-unused.sgml: * doc/tmpl/handle.sgml: * doc/tmpl/mime-magic.sgml: * doc/tmpl/mime-sniff-buffer.sgml: * doc/tmpl/module.sgml: * doc/tmpl/process.sgml: * doc/tmpl/uri.sgml: * doc/tmpl/xfer.sgml: Remove some unused sections, add labels to others. * doc/writing-modules.txt: Remove since its outdated by the SGML version. * libgnomevfs/gnome-vfs-handle-private.h: * libgnomevfs/gnome-vfs-handle.c: * libgnomevfs/gnome-vfs-handle.h: Split handle into a type declaration and a GnomeVFS-internal function declaration. The type needs to be installed (since a number of ops use Handles) but the functions for manipulating handles shouldn't be needed by either modules or library users. * libgnomevfs/gnome-vfs-cancellable-ops.c: * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-method.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-module.h: * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-result.c: (gnome_vfs_result_to_string): * libgnomevfs/gnome-vfs-utils.c: Document a bunch of functions. * libgnomevfs/Makefile.am: * libgnomevfs/check-headers.pl: Use noinst_HEADERS instead of including non-installed headers in the source. This makes it easier to find headers that should not be included in documentation. * libgnomevfs/gnome-vfs-types.h: Remove deprecated header. 2002-06-15 Seth Nickell * doc/tmpl/ops.sgml: * doc/tmpl/uri.sgml: * doc/tmpl/utils.sgml: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-xfer.c: Document some 30 GnomeVFS functions, bringing our coverage to a miserable 54%. 2002-06-15 Seth Nickell * .cvsignore: * libgnomevfs/.cvsignore: Don't pay attention to weird GOB crap. * test/test-metadata.c: (main): Oops, forgot a cvs add. 2002-06-15 Seth Nickell * libgnomevfs/gnome-vfs-metadata.gob: Load XML properly using GnomeVFS rather than just from local files. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_read_entire_file): * libgnomevfs/gnome-vfs-utils.h: Add convenience function for reading in entire files (very useful for use with libxml). 2002-06-15 James Henstridge * modules/Makefile.am: link modules back against libgnomevfs-2.la 2002-06-15 Seth Nickell * HACKING: Clarify checkin policies. 2002-06-15 Seth Nickell Semi-working metadata code, landed as requested by commodore Yakk. * Makefile.am: * configure.in: Add included GOB into the build. * libgnomevfs/Makefile.am: Build the metadata code, and install the header. * libgnomevfs/gnome-vfs.h: Pull in the metadata header. * libgnomevfs/gnome-vfs-metadata.gob: * test/Makefile.am: The metadata code itself. 2002-06-13 Alex Graveley * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): Always ensure ~/.gnome exists before initializing. (ensure_dot_gnome_exists): Create ~/.gnome if it does not exist. 2002-06-13 Damon Chaplin * modules/file-method.c (do_find_directory): always use 0700 (S_IRWXU) when creating trash directories outside of $HOME, so other users can't see your files. Fixes bug #46475. 2002-06-13 Glynn Foster * docs/vfolder-info-spec.dtd: Initial version of the vfolder-info dtd. -------------------2.0.0------------------------ 2002-06-10 Seth Nickell * NEWS: * configure.in: Release the big 2.0.0. Thu Jun 06 15:17:01 2002 George Lebl * modules/vfolder-desktop-method.c: some more monitors tinkering, this time it makes file create and delete monitors work as they should Thu Jun 06 14:34:30 2002 George Lebl * modules/vfolder-desktop-method.c: Actually return the method handle on add and don't crash on NULL on cancel for file monitors. Thu Jun 06 14:16:27 2002 George Lebl * modules/vfolder-desktop-method.c: implement file monitors as per the 2.0.0 bug #81670. The bug is not closed even though it seems to be that we are emitting monitors correctly, but nautilus isn't catching them. This also fixes some errors in the directory monitors as well. 2002-06-06 Jacob Berkman * modules/ssh-method.c: include Wed Jun 05 12:31:10 2002 George Lebl * modules/vfolder-desktop-method.c: implement directory monitors as per the 2.0.0 bug #81670. Still not completely finished since according to test-monitor we are getting changes, but nautilus refuses to update. So I think there is some problem in nautilus, perhaps it doesn't like the fact that it has dir monitors but not file monitors? 2002-06-05 Yanko Kaneti * configure.in: (ALL_LINGUAS) Added Bulgarian (bg). 2002-06-04 Jody Goldberg * libgnomevfs/gnome-vfs-mime-info.c (reload_if_needed) : honour gnome_vfs_is_frozen. (gnome_vfs_is_frozen) : rename from should_write_file_back. 2002-06-04 Kristian Rietveld * libgnomevfs/gnome-vfs-standard-callbacks.h: add http:send-additional-headers and http:received-headers hooks. * modules/http-method.c (create_handle): invoke headers received callback after receiving full header, (make_request): invoke send additional headers callback and add extra headers if needed, (invoke_callback_headers_received): new function, (invoke_callback_send_additional_headers): new function 2002-06-03 Ian McKellar * modules/ssh-method.c: Big improvement to the ssh method from Robert Migues 2002-06-02 Alex Graveley * modules/desktop-method.c (do_get_file_info): Set mime_type to "x-directory/vfolder-desktop", to allow launcher creation from nautilus. (do_get_file_info_from_handle): Ditto. Fri May 31 10:23:01 2002 George Lebl * modules/applications.vfolder-info.in, modules/preferences.vfolder-info.in: Handle both kewords 'Sawfish' and 'X-GNOME-Sawfish' to make a clear transition, in case someone has an older install of sawfish. Thu May 30 17:11:04 2002 George Lebl * modules/preferences.vfolder-info.in: arghh! we have two places where preference menus are defined. Ok fix the bug here as well. Thu May 30 17:04:48 2002 George Lebl * modules/applications.vfolder-info.in: don't put sawfish capplets in the advanced dir fixes #77772 Thu May 30 10:03:03 2002 George Lebl * modules/vfolder-desktop-method.c: the directories are of type x-directory/vfolder-desktop 2002-05-28 Jody Goldberg * libgnomevfs/gnome-vfs-application-registry.c (gnome_vfs_application_registry_init) : initialize before we load the applications so that things do not loop. Tue May 28 15:04:17 2002 George Lebl * modules/vfolder-desktop-method.c: fix adding/removing of includes to remove inconsistencies between the has and the list 2002-05-27 Ian McKellar * configure.in: Don't make libgnomevfs depend on libbonobo. It doesn't need it and it isn't in the .pc file anyway. 2002-05-26 Alex Graveley * configure.in (FAM_LIBS): Don't use C++ compiler to compile FAM test, as the problem is really with a miscompiled libfam which doesn't pull in the needed libstdc++.so, and hence won't link. Removing as per alexl's suggestion on bug #80826. 2002-05-24 Alex Graveley * modules/applications.vfolder-info.in: Remove explicit cddb-capplet exclusion, so it will shot up in the Advanced settings menu. Fixes bug #74767. 2002-05-24 Jody Goldberg http://bugzilla.gnome.org/show_bug.cgi?id=80776 * libgnomevfs/gnome-vfs-application-registry.c (application_lookup_or_create) : make sure to load the app db before trying to store something. 2002-05-24 Seth Nickell * configure.in: Bump version number & release. 2002-05-24 Seth Nickell * modules/vfolder-desktop-method.c: (vfolder_info_read_items_merge): Add filters for the "Office" sub-directory (which KDE uses). 2002-05-22 Alex Graveley * modules/desktop-method.c (do_monitor_add): Implement monitoring, by registering a monitor with the parent method, and changing the destination uri for events to start with the proper prefix for this method before sending on to the real destination. 2002-05-22 Alex Graveley * configure.in (FAM_MISSING_WARNING): Print a warning if FAM is not found. * modules/file-method.c (fam_callback): Handle FAMEvent pathnames that can be either relative or absolute. Clean up the code a little as well. 2002-05-20 Laszlo Peter * modules/vfolder-desktop-method.c: (VFOLDER_URI_PARSE): remove unnecessary ( )'s that break the build on Solaris. (do_create): basename is undefined, use vuri.file. Mon May 20 10:51:32 2002 George Lebl * modules/vfolder-desktop-method.c: make note if we have had a slash on the end of a path, and in that case don't allow the 'file' specific operations on it Mon May 20 10:41:17 2002 George Lebl * modules/vfolder-desktop-method.c: fix root path reading (case where we read something like all-applications:/ rather then all-applications: This fixes the panel run box and should fix the rest of issues of #82187 2002-05-20 Alex Graveley * modules/vfolder-desktop-method.c (vfolder_uri_parse_internal): Set file to start of path if there are no slashes. 2002-05-20 Alex Graveley * modules/vfolder-desktop-method.c (vfolder_uri_parse_internal): Set vuri->file to the basename of the URL, strip trailing slashes. (resolve_folder): Simplify lookup as trailing slashes are now stripped. (get_entry_unlocked): Don't call any_subdir, just let the lookup fail. (get_entry_unlocked): Resolve optinal leading path for all-applictions: 2002-05-20 Mark McLoughlin * modules/vfolder-desktop-method.c: (vfolder_uri_parse_internal): band aid for crasher. Work out basename correctly. (vfolder_desktop_dir_monitor), (vfolder_user_desktop_dir_monitor), (do_open), (do_read_directory): remove debug info. 2002-05-17 Alex Graveley * modules/vfolder-desktop-method.c (VFOLDER_URI_PARSE): New macro/internal function to populate on-stack VFolderURI with unescaped copy of vfs uri. Used throughout instead of get_basename() and broken path handling. 2002-05-17 Alex Graveley * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_destination_is_writable): Handle GNOME_VFS_ERROR_INVALID_URI when creating .vfs-write.tmp, and assume writability. 2002-05-17 Michael Meeks * test/test-mime.c (main): do a debug_shutdown. * test/mime-test-files/small-file: add as regression test, causes the crash below. * libgnomevfs/gnome-vfs-mime-magic.c (gnome_vfs_mime_try_one_magic_pattern): check vs. the range_end + pattern_length, not the range_start + pattern_length, otherwise for small files eg. 66 bytes and GnomeMagicEntry of nautilus_link ( range_end == 256, pattern_length == 13), we fairly soon segv in try_one_pattern_on_buffer. 2002-05-17 Anders Carlsson * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_try_one_magic_pattern): Don't try to check the buffer if it's not long enough. Fixes #82027, reported by Jacob Berkman. 2002-05-16 Jody Goldberg * libgnomevfs/gnome-vfs-application-registry.c (application_sync) : add some safety. Just in case. 2002-05-16 Michael Meeks * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_edit_user_file_full): don't dup (leak) key and value. * modules/file-method.c (fam_callback): unref the URI we create. 2002-04-19 Mark McLoughlin * modules/http-method.c: (construct_gl_http_proxy), (set_proxy_auth): split these methods out from sig_gconf_value_changed. (notify_gconf_value_changed): rename from sig_gconf_value_changed (vfs_module_init): don't use gconf_init. Also use gconf_client_notify_add instead of the 'value-changed' signal on GConfClient so that we don't get notified of other user changes. 2002-05-15 Mark McLoughlin * schema/system_http_proxy.schemas: set default for all string keys so that the PropertyEditor doesn't complain. 2002-05-14 Seth Nickell * modules/applications.vfolder-info.in: * modules/preferences.vfolder-info.in: Tweak merging so we don't get so much crap from GNOME 1.4 2002-05-14 Jody Goldberg From ali.akcaagac@stud.fh-wilhelmshaven.de (Ali Akcaagac) http://bugzilla.gnome.org/show_bug.cgi?id=80826 * configure.in : improve FAM test. Mon May 13 17:35:39 2002 Jonathan Blandford * modules/tarpet.h (TARPET_TYPE_FIFO): Modify to make match tar documentation better. 2002-05-13 Anders Carlsson * modules/applications.vfolder-info.in: * modules/http-method.c: (strip_semicolon), (set_content_type), (process_propfind_propstat): Always try to strip off text after the semicolon when looking for the mime type. Fixes #81561, reported by Rene Seindal. 2002-05-12 Rachel Hestilow * modules/Makefile.am: * modules/default-modules.conf: Add tar module. * modules/tar-method.c: * modules/tarpet.h: Added. Many thanks to Abi Brady for her cleanroom tar header implementation. * docs/tarpet: Added: tar format documentation used for cleanroom. 2002-05-10 Naba Kumar * configure.in: Added "hi" to ALL_LINGUAS. Wed May 8 15:04:05 2002 Jonathan Blandford * Makefile.am: new supdir * configure.in: Add GConf testing * modules/cdda-method.c: Fix http proxy keys * modules/http-method.c: ditto * modules/ftp-method.c: ditto, though they seem to be effectively unused * schemas/.cvsignore: shut up, cvs * schemas/Makefile.am: Install new proxy schemas * schemas/system_http_proxy.schemas: new proxy schemas 2002-05-07 Seth Nickell * configure.in: Bump version number to 1.9.15 and release. 2002-05-07 Seth Nickell * modules/vfolder-desktop-method.c: (vfolder_info_read_items_merge): Inherit all keywords to lower level directories, allowing nested directories (not common, but they exist) to figure out their main category name unless they match a "closer" category. Flag merged .desktop files with "Merged" so we can optionally handle them specially in the vfolder. * modules/applications.vfolder-info.in: Merge "Merged" capplets into Advanced by default. 2002-05-06 Seth Nickell * modules/vfolder-desktop-method.c: (vfolder_info_read_items_merge), (vfolder_info_read_items): Handle knowledge of settings directory recursively so it covers things like Settings/Sawfish too. 2002-05-06 Seth Nickell * modules/applications.vfolder-info.in: Merge in .desktop files installed into /usr PREFIX. * modules/vfolder-desktop-method.c: (vfolder_info_read_items_merge): Do not set "Applications" category flag on merged .desktop files that come from the Settings directory. * modules/fstype.c: (fstype_internal_error): Fix the build. 2002-05-03 David Emory Watson * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_extract_dirname): Should return URI_PATH_STR whenever there is only one URI_PATH_CHR in the uri (and it occurs at the begining), not just when the string equals URI_PATH_CHR. * test/test-uri.c: (test_uri_extract_dirname): New. (main): Update. 2002-05-03 jacob berkman * doc/Makefile.am $(TARGET_DIR): don't conflict with the gnome-vfs 1 docs 2002-05-02 Bastien Nocera * test/test-directory.c: (show_result): print error before exiting * test/vfs-test: new "all-in-one" automatic tester 2002-05-02 Bastien Nocera * test/test-monitor.c: (timeout_cb), (callback), (main): make the test be automatic, by exiting after 2 events, add in an timeout function 1 file create and 1 file deletion 2002-05-02 Bastien Nocera * test/test-mime-info.c: (main): fixup for current gnome2 removed test for default_component_iid, change test for gnome_vfs_mime_set_registered_type_key as the behaviour change in gnome2 2002-05-02 James Henstridge * modules/fstype.c: get rid of some warnings that were preventing it from compiling due to -Werror 2002-05-01 Jody Goldberg * test/test-info.c (main) : add a test for is_local. * modules/Makefile.am : add fstype.c from gnu/findutils * modules/file-method.c (do_is_local) : implement. * configure.in : Add afs option and check for some utilities required for the fstype code from gnu/findutils. 2002-04-26 Jody Goldberg * libgnomevfs/gnome-vfs-application-registry.c (application_add_key) : Store supported_uri_schemes as a key in addition to the internal representation. Wed May 01 16:49:01 2002 George Lebl * modules/vfolder-desktop-method.c: reverted fix for #75150 and fixed this correctly. Do not reload the entire info structure, all we need to do is to invalidate the root folder. Also in unrelated revert, g_build_filename already takes care of the '/'. Wed May 1 19:12:02 2002 Jonathan Blandford * libgnomevfs/gnome-vfs-mime-info.c: (_gnome_vfs_mime_info_mark_gnome_mime_dir_dirty), (_gnome_vfs_mime_info_mark_user_mime_dir_dirty), (reload_if_needed), (gnome_vfs_mime_info_reload): Only reload the data if it is needed to be reloaded. * libgnomevfs/gnome-vfs-mime-monitor.c: (gnome_vfs_mime_monitor_init), (mime_dir_changed_callback), (gnome_vfs_mime_monitor_finalize): Let the data know that it needs to be reloaded. * libgnomevfs/gnome-vfs-mime-private.h: add _gnome_vfs_mime_info_mark_gnome_mime_dir_dirty and _gnome_vfs_mime_info_mark_user_mime_dir_dirty. 2002-05-01 Stephen Browne * configure.in: * modules/Makefile.am: Made compile of cdemenu module conditional on solaris. 2002-04-30 Pablo Saratxaga * configure.in (ALL_LINGUAS): added Vietnamese (vi) 2002-04-30 Stephen Browne * modules/Makefile.am * modules/default-modules.conf * modules/cdemenu-desktop-method.c Added new 'read-only' module to read CDE (dtwmrc) menus. This is used by the gnome-panel on Solaris systems. 2002-04-29 Pablo Saratxaga * configure.in (ALL_LINGUAS): added Basque (eu) 2002-04-29 Seth Nickell * configure.in: Bump version number to 1.9.14, release, rinse, repeat. Mon Apr 29 15:54:45 2002 Jonathan Blandford * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_info_reload): remove FIXME that's now fixed. * libgnomevfs/gnome-vfs-mime-monitor.c: (gnome_vfs_mime_monitor_class_init), (gnome_vfs_mime_monitor_init), (mime_dir_changed_callback), (gnome_vfs_mime_monitor_monitor_dir), (gnome_vfs_mime_monitor_finalize), (gnome_vfs_mime_monitor_get), (gnome_vfs_mime_monitor_get_type): Let the user know if any directory we care about changes. 2002-04-26 Benedikt Roth * modules/applications.vfolder-info.in: Added entry for the Applications folder so that nautilus will display applications:/// information in the sidebar (#72718). Moved all before and added one to the Accessibility folder. * modules/vfolder-desktop-method.c: (get_entry_unlocked): If the user made a request for 'applications:' (which would fail) use 'applications:/' to be consistent witch eg 'start-here:' (#75033) * modules/vfolder-desktop-method.c: (vfolder_info_recheck): Fix monitoring of directories so that eg newly installed .desktop files will show up. (#75150) * modules/vfolder-desktop-method.c: (vfolder_info_init), (make_file_private): Changed ~/.gnome2vfolders/ to ~/.gnome2/vfolders (#78065). 2002-04-25 Jody Goldberg * libgnomevfs/gnome-vfs-application-registry.c (cb_application_collect) : fix. 2002-04-24 Iain * modules/preferences.vfolder-info.in: Allow the CDDB capplet in the main menu. 2002-04-24 Anders Carlsson * libgnomevfs/gnome-vfs-mime.c (add_to_key): NULL out the key and list if we don't find the extension. 2002-04-22 Jody Goldberg * configure.in : post release version bump. 2002-04-22 Jody Goldberg * Release 1.9.12 2002-04-22 Jody Goldberg * configure.in : bump version number in preparation for release. 2002-04-21 Jody Goldberg * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_icon_path_from_filename) : See if this is an absolute path. 2002-04-21 Jody Goldberg * libgnomevfs/gnome-vfs-application-registry.c (gnome_vfs_application_registry_get_applications) : add a hook for the file-type capplet such that passing NULL as the mime type returns _all_ applications. 2002-04-21 Anders Carlsson * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_do_short_list_processing), (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_set_short_list_applications), (gnome_vfs_mime_set_short_list_components), (copy_str_list), (gnome_vfs_mime_maybe_get_user_level_value): Don't look at the user level for components, just use "short_list_component_iids". We do the same thing for applications, except that we fall back to the advanced user level if we don't find any items at first. * libgnomevfs/gnome-vfs-mime.c: (add_to_key): Plug a memory leak. 2002-04-16 Jody Goldberg * modules/file-method.c (do_monitor_cancel) : really cancel things. 2002-04-12 Jody Goldberg * libgnomevfs/gnome-vfs-mime-info.c (set_value_real) : just use g_hash_table_replace. Avoid double freeing memory. 2002-04-10 Seth Nickell * modules/applications.vfolder-info.in: Hide search tool since it will be in actions (we'd still like it to show up in non-gnome-panel situations so we leave the .desktop file as installed) * modules/file-method.c: (do_monitor_cancel): Fix build warning. 2002-04-02 Jody Goldberg * modules/file-method.c (fam_callback) : Alex pointed out the Acknowledged event. I'll use that, it is much cleaner. Ignore events that are tagged as cancelled, and delete cancelled handlers when an ack comes in. (do_monitor_add) : init cancelled. (do_monitor_cancel) : watch out for double cancels. 2002-04-06 Zbigniew Chyla * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): Set textdomain's encoding to UTF-8 using bind_textdomain_codeset. 2002-04-07 Michael Meeks * test/test-performance.c (main): upd. * libgnomevfs/gnome-vfs-mime-info.c (context_new): use g_hash_table_new_full. (context_add_key): make the logic more sane, don't do stupid things keeping 'previous_key' around, since it's always the same (current) key. (load_mime_list_info_from, load_mime_type_info_from): expunge previous_key inefficiency. (load_mime_type_info_from): don't keep dupping stuff we don't need to, instead build the several strings we need in the GString. (load_mime_list_info_from): ditto. (release_key_and_value): kill. (context_destroy): upd. use g_string_insert_c instead of append_char. (load_mime_type_info_from): rename to (load_type_info_from): and unify from giant ugly cut and paste (load_mime_list_info_from): kill junk. use defines to map to old names. (load_type_info_from): ignore lines that don't have the right lang before doing much slower parsing on them. 2002-03-30 Jody Goldberg http://bugzilla.gnome.org/show_bug.cgi?id=71391 * modules/file-method.c (do_monitor_cancel) : add a comment explaining the issue here. (fam_callback) : and here. Then patch the problem by not accessing the uri unless we really need to. 2002-03-31 Murray Cumming * monikers/bonobo-stream-fs.c & monikers/bonobo-stream-vfs.c: Changed use of e.g. Bonobo_Stream_SEEK_CUR to Bonobo_Stream_SeekCur, due to recent change in libbonobo. 2002-03-28 Kevin Vandersloot * modules/http-method.c: bind to the "value_changed" gconf signal for the proxy settings so that changes made by the user are updated instantly. Fixes bug # 73578 incidentally. 2002-03-27 Seth Nickell * configure.in: Bump version number to 1.9.11 2002-03-27 Seth Nickell * modules/applications.vfolder-info.in: Add accesibility category to applications: too. 2002-03-25 Seth Nickell * modules/applications.vfolder-info.in: Change "Applications" to "Other", since lots of people are seeing this category and its weird to have Applications->Applications. 2002-03-18 Jody Goldberg * modules/preferences.vfolder-info.in : add an Accessibility category. Fri Mar 22 11:13:30 2002 Owen Taylor * test/test-async.c (main): Fix includes and g_type_init (0) [ g_type_init() hasn't taken arguments for a long time. ] 2002-03-22 jacob berkman * modules/extfs/Makefile.am (extfsdir): * modules/extfs-method.c (EXTFS_COMMAND_DIR): move into a 2.0 subdirectory for parallel install 2002-03-14 Seth Nickell * HACKING: * configure.in: Build sherrif commits, bump version number to deal with tarball that built wrong. 2002-03-11 James Henstridge * configure.in: shell doesn't need semicolons to terminate statements. In fact it can be harmful if an m4 expansion leaves a semicolon on a line alone, as that is a syntax error. 2002-03-09 Darin Adler * test/.cvsignore: Ignore test-performance. 2002-03-08 Seth Nickell * configure.in: Release 1.9.9 2002-03-08 Seth Nickell * modules/applications.vfolder-info.in: Update applications vfolder for capplet movement too. 2002-03-05 jacob berkman * modules/preferences.vfolder-info.in: the capplets apparently moved 2002-02-25 Laszlo Peter * modules/file-method.c: (do_read_directory): work around a Solaris bug where readdir64_r returns -1 instead of 0 at EOF. 2002-02-25 Hasbullah Bin Pit * configure.in: REALLY Added ms (Malay) at ALL_LINGUAS. 2002-02-25 Seth Nickell * NEWS: * configure.in: Release 1.9.8 2002-02-23 Andy Hertzfeld * modules/nntp-method.c: (do_basic_command), (get_auth_info), (get_files_from_newsgroup), (add_file_to_folder), (do_get_file_info), (do_open_directory): added password interrogation when necessary, using the standard gnome-vfs facilities. Also, added some checks to avoid crashing with badly formed urls. * modules/default-modules.conf: removed the "news" protocol variant since it's supposed to get the servername from preferences; I'll put it back when that's implemented 2002-02-20 Seth Nickell * modules/applications.vfolder-info.in: * modules/preferences.vfolder-info.in: more minor tweaks 2002-02-20 Michael Meeks * test/test-performance.c: add. * test/Makefile.am: upd. * libgnomevfs/gnome-vfs-mime-info.c (fast_file_getc, fast_file_open, fast_file_close): impl. (hack_getc): expunge the crack smoking evil. (load_mime_type_info_from), (load_mime_list_info_from): adapt to not need hack_getc, these parsers sucked - they couldn't cope with two lines starting with '#', remove need for ungetc. switch to the faster read methods. * test/test-shell.c: dump the mime type. Tue Feb 19 17:11:41 2002 George Lebl * tests/test-monitor.c: when printing out value of a pointer use %p and not %d to fix compilation on alpha 2002-02-18 Seth Nickell * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_gzip): * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type_internal): Prioritize suffix matching over gzip sniffing. Not very elegant, but the number of gzip'd documents misidentified as gzip files far exceeds the number of improperly suffixed gzip files. * modules/applications.vfolder-info.in: * modules/preferences.vfolder-info.in: Minor menu tweaks. 2002-02-17 Alexander Larsson * modules/vfolder-desktop-method.c (vfolder_info_insert_entry): Use g_hash_table_replace instead of g_hash_table_insert, so we don't keep a pointer to the old key which eventually got freed. Seems to fix a startup segfault in the panel. 2002-02-14 Tõivo Leedjärv * configure.in: Added et to ALL_LINGUAS. 2002-02-12 Morten Welinder * libgnomevfs/gnome-vfs-method.h, libgnomevfs/gnome-vfs-job.h, libgnomevfs/gnome-vfs-mime.h, gnome-vfs-parse-ls.h: Fix Solaris compile. 2002-02-11 Seth Nickell * NEWS: * configure.in: Release 1.9.7 2002-02-08 Mark McLoughlin * modules/vfolder-desktop-method.c: (invalidate_folder_T): impl lock taken version. (invalidate_folder): split out subfolder stuff to (invalidate_folder_subfolders): here. (do_close): use _T here to avoid deadlock. 2002-02-09 Darin Adler * libgnomevfs/gnome-vfs-file-info.h: Oops. Missed that inode numbers also are 64 bits when _FILE_OFFSET_BITS=64. 2002-02-09 Bastien Nocera reviewed by: Darin Adler * configure.in: check for bzlib.h, bomb if it's not there * modules/Makefile.am: use BZ2_LIBS and CDDA_LIBS defines 2002-02-09 Jon K Hellan * configure.in: s/OPENSSL_LDFLAGS/OPENSSL_LIBS/ 2002-02-09 Darin Adler Fix some 64-bit problems by setting flags properly. * libgnomevfs/Makefile.am: * modules/Makefile.am: GNOME_VFS_CONFDIR -> SYSCONFDIR GNOME_VFS_DATADIR -> DATADIR GNOME_VFS_PREFIX -> PREFIX Define _FILE_OFFSET_BITS=64; needed to get large file sizes from stat. Define _BSD_SOURCE; previous defined in some source files, but it does no harm to define it consistently. Define _LARGEFILE64_SOURCE; previously defined in some source files, but affects the stat structure, so needs to be consistent across more files. * libgnomevfs/gnome-vfs-application-registry.c: (gnome_vfs_application_registry_init): GNOME_VFS_DATADIR -> DATADIR * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_init): GNOME_VFS_DATADIR -> DATADIR * libgnomevfs/gnome-vfs-mime-magic.c: Remove the _BSD_SOURCE define now that it's handled on the command line. (gnome_vfs_mime_get_magic_table): GNOME_VFS_CONFDIR -> SYSCONFDIR * libgnomevfs/gnome-vfs-mime.c: (mime_init): GNOME_VFS_DATADIR -> DATADIR * libgnomevfs/gnome-vfs-module-shared.c: Remove the _BSD_SOURCE and _LARGEFILE64_SOURCE defines, not that they are handled on the command line. * libgnomevfs/gnome-vfs-module-shared.h: Add a check so that we fail to compile if there are incompatibilities in the definition of the stat structure. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_icon_path_from_filename): GNOME_VFS_PREFIX -> PREFIX * modules/file-method.c: Remove the _LARGEFILE64_SOURCE define, now that it's handled on the command line. 2002-02-05 Havoc Pennington * configure.in (HAVE_OPENSSL): don't AC_SUBST OPENSSL_CFLAGS OPENSSL_LIBS; don't put -L/usr/lib in the ldflags, only /otherplace/lib. Put OPENSSL_CFLAGS OPENSSL_LIBS in LIBGNOMEVFS_CFLAGS LIBGNOMEVFS_LIBS * libgnomevfs/Makefile.am (INCLUDES, libgnomevfs_2_la_LIBADD): remove OPENSSL_* variables from makefile; instead merge them on configure script level. 2002-02-04 Seth Nickell * NEWS: * configure.in: Release 1.9.6 2002-02-02 Seth Nickell * modules/applications.vfolder-info.in: Start re-arranging categories. Fri Feb 01 16:54:02 2002 George Lebl * modules/vfolder-desktop-method.c: correctly save DontShowIfEmpty 2002-01-31 John Harper * libgnomevfs/Makefile.am: install gnome-vfs-cancellable-ops.h in the module-only header directory 2002-01-31 Jeff Waugh * gnome-vfs-2.0.pc.in: * gnome-vfs-module-2.0.pc.in: Fix specifics in pc.in files for 'non-standard' builds. Permission from Seth to commit. 2002-01-30 Seth Nickell * NEWS: Update news. * configure.in: Bump version number to 1.9.5 2002-01-29 Seth Nickell * libgnomevfs/gnome-vfs-monitor.c: (gnome_vfs_monitor_do_add): * test/test-monitor.c: (main): Fix a bug in the monitor code... wasn't returning the method handle (oops!). * modules/applications.vfolder-info.in: * modules/preferences.vfolder-info.in: * modules/vfolder-desktop-method.c: (invalidate_folder), (do_monitor_add): Add rudimentary monitoring support to the vfolder method. Its currently wildly overzealous (basically notifies everyone anytime anything changes), but the menu structure shouldn't be jumping around that often, and rereading the entire menu structure ain't that costly. Currently doesn't work for deletions. 2002-01-28 Seth Nickell * modules/applications.vfolder-info.in: * modules/preferences.vfolder-info.in: More exciting updates to the vfolders. 2002-01-28 Darin Adler * gnome-vfs.spec.in: Remove man page. 2002-01-28 Darin Adler * libgnomevfs/gnome-vfs-configuration.c: (gnome_vfs_configuration_get_module_path): Patch from Alvaro Lopez Ortega to fix crash instead of warning when configuration is not set up. * modules/nntp-method.c: Misc. cleanup. 2002-01-27 Seth Nickell * modules/applications.vfolder-info.in: * modules/preferences.vfolder-info.in: And Systems folder for XST. 2002-01-27 Seth Nickell * modules/preferences.vfolder-info.in: Add Advanced folder. 2002-01-27 Seth Nickell * modules/applications.vfolder-info.in: Change where we look for capplets. 2002-01-27 Seth Nickell * modules/preferences.vfolder-info.in: Change where we look for capplets. 2002-01-27 Anders Carlsson * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_delete_items): Call count_Items_and_size with move set to FALSE. Fixes #46777. Approved by Seth Nickell. 2002-01-22 jacob berkman * man/: * configure.in (AC_OUTPUT): * Makefile.am (SUBDIRS): remove man page 2002-01-21 Alexander Larsson * modules/file-method.c (monitor_setup): Fix deadlock when fam connection failed twice. 2002-01-21 jacob berkman * modules/Makefile.am (libnntp_la_SOURCES): include nntp-method.h 2002-01-20 Seth Nickell * modules/Makefile.am: * modules/default-modules.conf: * modules/nntp-method.c: (nntp_response_to_vfs_result), (read_response_line), (get_response), (do_control_write), (nntp_connection_reset_buffer), (do_basic_command), (nntp_connection_create), (nntp_connection_destroy), (my_str_hash), (my_str_equal), (nntp_connection_uri_hash), (nntp_connection_uri_equal), (nntp_connection_acquire), (nntp_connection_release), (is_number_or_space), (all_numbers_or_spaces), (remove_numbers_between_dashes), (remove_number_at_end), (trim_nonalpha_chars), (remove_of_expressions), (filter_folder_name), (remove_commas), (is_number), (parse_date_string), (parse_header), (nntp_fragment_new), (nntp_fragment_destroy), (map_slashes), (nntp_file_new), (nntp_file_destroy), (nntp_file_look_up_fragment), (nntp_file_get_total_size), (nntp_file_add_part), (look_up_file), (start_loading_article), (uu_decode_text), (base_64_map), (base_64_decode_text), (line_in_decode_range), (load_from_article), (load_file_fragment), (bytes_in_buffer), (copy_bytes_from_buffer), (nntp_file_read), (free_nntp_file_list), (get_files_from_newsgroup), (strip_slashes), (extract_newsgroup_and_filename), (nntp_file_from_uri), (has_all_fragments), (add_file_fragment), (remove_partial_files), (update_file_sizes), (add_file_to_folder), (remove_file_from_list), (remove_contained_files), (calculate_folder_mod_date), (generate_folder_from_element), (generate_folders), (destroy_element), (destroy_folder_hash), (assemble_folders), (assemble_files_from_overview), (do_is_local), (prepare_to_read_file), (do_open), (do_close), (do_read), (do_get_file_info), (do_get_file_info_from_handle), (do_open_directory), (do_close_directory), (do_read_directory), (do_check_same_fs), (vfs_module_init), (vfs_module_shutdown): * modules/nntp-method.h: Port of Andy's NNTP module from GnomeVFS1. 2002-01-19 Hasbullah Bin Pit * configure.in: Added ms (Malay) at ALL_LINGUAS. * po/ms.po: Added Malay Translation by Mohamad Afifi Omar (App) and me.. Thu Jan 17 16:31:31 2002 George Lebl * modules/vfolder-desktop-method.c: Fix some memory leaks and fix memory corruption when duplicate filenames are found 2002-01-17 Darin Adler * libgnomevfs/gnome-vfs-async-ops.h: Remove unneeded includes. * libgnomevfs/gnome-vfs-init.h: Remove unneeded includes. * libgnomevfs/gnome-vfs-mime-handlers.h: Remove unneeded includes. * libgnomevfs/gnome-vfs-mime-handlers.c: Add includes. 2002-01-17 Darin Adler * libgnomevfs/gnome-vfs-mime.h: Removed all sorts of extra include statements that somehow got in here. * libgnomevfs/gnome-vfs-mime.c: * modules/ftp-method.c: * modules/pipe-method.c: * modules/translate-method.c: * test/test-mime.c: Added includes as necessary to files that were depending on the extra includes. Thu Jan 17 01:55:23 2002 George Lebl * modules/vfolder-desktop-method.c: Fix open_directory with NULL path and treat it just like "/". Also a ref fix in insert_entry (probably just being anal though) 2002-01-17 Anders Carlsson * test/test-mime.c (main): Ugh, don't try to free argv. Fri Jan 11 02:22:26 2002 George Lebl * modules/vfolder-desktop-method.c: define structure fields for monitors, start support for monitoring the desktop_dir's and use .gnome2 and not .gnome for user vfolder storage Thu Jan 10 23:17:41 2002 George Lebl * modules/file-method.c: don't do g_warning on the last 4 fam events, they do come (except for FAMMoved) this was causing everything to spew tons of warnings * modules/default-methods.conf: fix for all-applications: and add all-preferences: Thu Jan 10 11:12:24 2002 Owen Taylor * libgnomevfs/Makefile.am (libgnomevfs_2_la_LIBADD): Reorder to get -ldl in the right place wrt. OPENSSL libs. (Probably irrelevant) * configure.in (HAVE_OPENSSL): Omit -ldl here, since we have it already from gmodule. Tue Jan 08 23:28:27 2002 George Lebl * test/test-shell.c: make things run in a main loop so that we can test things that require it (such as the vfolder monitoring) * modules/vfolder-desktop-method.c: make threadsafe (hopefully), add ctime/mtime for most entries (somewhat fake for directories, but good enough for noticing changes). When we notice a change there is a hack so that we read in stuff about 200ms later (this is a HACK! but it makes it work for now). Fix moving files. 2002-01-04 Havoc Pennington * modules/http-method.c (vfs_module_init): preload the GConfClient cache, since we immediately get all the values from it. 2002-01-03 Darin Adler * libgnomevfs/gnome-vfs-xfer.c: (move_items), (link_items): Update count when moving and linking too. Not 100% sure this makes the count perfect, but it shoudl be better than before. Wed Jan 02 20:45:09 2002 George Lebl * modules/vfolder-desktop-method.c: organize a todo/fixme list at the top of the file. Implement vfolder file rereading. Implement stating of things that we can't monitor otherwise. So that we notice changes on disk. This stuff is now mostly finished, modulo the .directory files. Though this is not well tested yet. Sun Dec 30 01:40:40 2001 George Lebl * modules/vfolder-desktop-method.c: Start working on monitoring. For now it monitors the item directories for added directories plus there is a few more FIXMEs around. There are still many open questions of how to do things without being a slow pig. For example we need to update at least somewhat if there are is no fam around as well. 2001-12-16 Duarte Loreto * configure.in: Added Portuguese locale to ALL_LINGUAS. 2001-12-15 Ross Golder * gnome-vfs.spec.in (Name): was gnome_vfs, now @PACKAGE@. * configure.in: Updated RPM dependency versions 2001-12-12 Michael Meeks * libgnomevfs/gnome-vfs-mime-handlers.c (unref_gconf_engine): kill. (get_user_level): kill atexit handler & use the gconf_client API instead of the gconf_engine one. 2001-12-14 Seth Nickell * modules/applications.vfolder-info.in: Rename Settings folder to Preferences. 2001-12-14 Seth Nickell * modules/preferences.vfolder-info.in: Fix stupid typo that was breaking substitution of @datadir@ 2001-12-14 Seth Nickell * modules/Makefile.am: * modules/default-modules.conf: * modules/desktop-method.c: (vfs_module_init): * modules/preferences.vfolder-info.in: Switch the "preferences:/" URI over to using the vfolder method and create a vfolder for preferences. 2001-12-14 Seth Nickell * modules/Makefile.am: * modules/applications.vfolder-info.in: * modules/default-modules.conf: * modules/programs.vfolder-info.in: Change from "programs:/" to "applications:/" 2001-12-05 ERDI Gergo * libgnomevfs/gnome-vfs-context.h: balance G_END_DECLS with G_BEGIN_DECLS Sun Dec 02 11:55:57 2001 George Lebl * modules/vfolder-desktop-method.c, modules/programs.vfolder-info.in: change the Unallocated query type to an OnlyUnallocated flag on the folder. This way we can have multiple onlyunallocated folders, though that may lead to some operations not being very efficent. Also it fixes some ugly corner cases with that being a query type and cleans up the code somewhat. Also write all 3 folder flags to disk when writing the user vfolder-info file. * test/test-shell.c: when getting file info, always get the mime type. Wed Nov 28 13:16:06 2001 George Lebl * modules/vfolder-desktop-method.c: Fix set_file_info, fix a few leaks, some possible crashes, and add cancellation checks to a bunch of places (not everywhere yet) 2001-11-28 Seth Nickell * modules/vfolder-desktop-method.c: (get_entry), (desktop_uri_to_file_uri), (do_open): Track down a couple bugs that were preventing .directory files from being read... Folders should now have directory info... woo hoo! * modules/programs.vfolder-info.in: Add specs to all folders. 2001-11-28 Seth Nickell * modules/programs.vfolder-info.in: Add specification 2001-11-27 Seth Nickell * modules/programs.vfolder-info.in: And Unallocated query works! :-) Turn it on for the Applications folder. Tue Nov 27 20:06:00 2001 George Lebl * modules/vfolder-desktop-method.c: add the Unallocated query. that is a special query which can only be used once in a vfolder-info file which matches all the elsewhere unallocated items. 2001-11-27 Seth Nickell * modules/vfolder-desktop-method.c: (readitem_entry): Fix incorrect boolean comparison, makes readitem_entry actually work. 2001-11-27 Seth Nickell * modules/vfolder-desktop-method.c: (vfolder_info_read_items_merge): Change "Utility" to "Utilities" looking for vfolders based on current location. 2001-11-27 Seth Nickell * George Lebl Give him a hug. * modules/programs.vfolder-info.in: Use on standard folders except for Settings. If there's nothing in Settings, its an actual problem, and we shouldn't just have the folder disappear. Tue Nov 27 16:55:34 2001 George Lebl * modules/vfolder-desktop-method.c: implement ReadOnly and DontShowIfEmpty flags on folders and a ReadOnly flag on the main info xml tree. 2001-11-27 Seth Nickell * modules/programs.vfolder-info.in: Add/Remove/Rename categories to comply with current HIG spec. Mon Nov 26 21:52:01 2001 George Lebl * modules/vfolder-desktop-method.c: always avoid mime-type checks on real file and just force the right mime types. If a scheme starts with 'all-', then this is just a flat listing of all the .desktops in that scheme. And fix a leak or two. * modules/default-modules.conf: add all-programs: scheme for vfolder-desktop-method 2001-11-26 Seth Nickell * NEWS: Update news... 2001-11-26 Seth Nickell * configure.in: Bump version to 1.9.4, tag, release (rinse repeat). 2001-11-22 Seth Nickell * doc/gnome-vfs-docs.sgml Add reference to section on "installing MIME data" * doc/installing-mime-data.sgml Blurb moved from the HIG. 2001-11-21 Wang Jian * configure.in(ALL_LINGUAS): Added zh_CN for Simplified Chinese. Tue Nov 20 19:32:11 2001 Owen Taylor * configure.in (FAM_LIBS): Add some more quoting that is needed for some autoconf versions. * libgnomevfs/gnome-vfs-mime-monitor.c: Remove gobject/gsignal.h. 2001-11-18 Miles Lane * libgnomevfs/gnome-vfs-mime-monitor.h: replace include of gobject/gobject.h with glib-object.h, due to a change in gobject/gobject.h that forces an #error for all direct includes. This checkin was approved by Havoc. 2001-11-13 Frederic Crozat * configure.in: Fix default detection of OpenSSL libraries 2001-11-08 Maciej Stachowiak * libgnomevfs/gnome-vfs-helpers.c, libgnomevfs/gnome-vfs-helpers.h, libgnomevfs/Makefile.am: Removed because we don't want to lock in this messy API and there is no time for proper cleanup. Some eel functions will probably migrate to gnome-vfs later. 2001-11-06 Maciej Stachowiak * libgnomevfs/Makefile.am: Make gnome-vfs-mime.h a module header again. * libgnomevfs/gnome-vfs-mime-utils.h: New public header. * libgnomevfs/gnome-vfs-mime-handlers.h: Include gnome-vfs-mime-utils.h * libgnomevfs/gnome-vfs-mime.h, libgnomevfs/gnome-vfs-mime.c: Rename gnome_vfs_get_mime_type to gnome_vfs_get_mime_type_common. Add new gnome_vfs_get_mime_type function which takes a string URI and uses gnome_vfs_get_file_info under the covers. 2001-11-05 Seth Nickell * doc/tmpl/gnome-vfs-unused.sgml: * libgnomevfs/Makefile.am: Make gnome-vfs-mime-monitor.h a public header. Make gnome-vfs-mime.h a public header, maybe only temporarily but a number of the functions declared here should be public. For now just make sure we aren't breaking Nautilus needlessly. 2001-11-05 Maciej Stachowiak * test/test-shell.c: Add a header now needed due to the below changes. * doc/tmpl/gnome-vfs-unused.sgml: More mystery changes. 2001-11-05 Maciej Stachowiak * libgnomevfs/check-headers.pl: New script to check that module API headers do not include private headers, and public headers do not include private or module API headers. * libgnomevfs/Makefile.am: Run check-headers.pl on `make check'. * libgnomevfs/Makefile.am, libgnomevfs/gnome-vfs-cancellable-ops.c, libgnomevfs/gnome-vfs-context.h, libgnomevfs/gnome-vfs-handle.c, libgnomevfs/gnome-vfs-handle.h, libgnomevfs/gnome-vfs-method.h, libgnomevfs/gnome-vfs-ops.h, libgnomevfs/gnome-vfs-types.h, libgnomevfs/gnome-vfs-uri.c, libgnomevfs/gnome-vfs.h: Fix problems found by check-headers.pl * doc/tmpl/gnome-vfs-unused.sgml: the mystery of gtk-doc strikes again. 2001-11-03 Darin Adler * .cvsignore: Ignore gnome-vfs-module-2.0.pc. 2001-11-02 Maciej Stachowiak * NEWS, configure.in: Updated for 1.9.3. 2001-11-02 Maciej Stachowiak * libgnomevfs/Makefile.am: Fix module header install location. * Makefile.am, configure.in: install gnome-vfs-module-2.0.pc (I think Darin made the same changes, but I forgot to commit, too tired to untangle it now) 2001-11-02 Darin Adler * configure.in: We need to generate gnome-vfs-module-2.0.pc, if we're going to install it. Sorry for the 3 check-ins in a row. 2001-11-02 Darin Adler * Makefile.am: Oops. ".pc" not ".pc.in". 2001-11-02 Darin Adler * Makefile.am: Install gnome-vfs-module-2.0.pc. * libgnomevfs/gnome-vfs.h: One file was out of alphabetical order. 2001-11-02 Maciej Stachowiak * NEWS, configure.in: Updated for 1.9.2. 2001-11-02 Maciej Stachowiak * libgnomevfs/gnome-vfs-uri.h, libgnomevfs/gnome-vfs-uri.c: Remove gnome_vfs_get_basename, fixing bug 40822 Remove a bunch of uses of gnome_vfs_uri_get_basename and replace mostly with extract_short_path_name. All appeared to be buggy as written! * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type_from_uri_internal), (gnome_vfs_get_mime_type): * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_private): * modules/cdda-method.c: (cdda_set_file_info_for_root), (get_track_index_from_uri), (do_open), (is_file_is_on_disc), (do_get_file_info), (do_open_directory), (get_data_size_from_uri): * modules/nfs-method.c: (fhandle_recurse_lookup), (nfs_create), (nfs_export_list), (do_get_file_info), (do_get_file_info_from_handle), (nfs_mkdir), (nfs_rmdir), (nfs_unlink), (nfs_rename): * modules/vfolder-desktop-method.c: (get_basename, do_create, do_move, do_unlink): * doc/tmpl/gnome-vfs-unused.sgml, doc/tmpl/process.sgml, doc/tmpl/uri.sgml: gtk-doc works its magic. 2001-11-02 Maciej Stachowiak * libgnomevfs/Makefile.am: Move a few more headers into the module API. 2001-11-02 Seth Nickell * Makefile.am: Build gnome-vfs-module-2.0.pc * libgnomevfs/Makefile.am: Start splitting header files between private, public and module includes. * gnome-vfs-module-2.0.pc.in: Add a new .pc file for modules. 2001-11-02 Maciej Stachowiak * doc/Makefile.am: Ignore new private headers in libgnomevfs directory. 2001-11-02 Maciej Stachowiak * Makefile.am: * configure.in: * doc/tmpl/gnome-vfs-unused.sgml: * libgnomevfs-pthread/Makefile.am: * libgnomevfs-pthread/gnome-vfs-async-job-map.c: * libgnomevfs-pthread/gnome-vfs-async-job-map.h: * libgnomevfs-pthread/gnome-vfs-async-ops.c: * libgnomevfs-pthread/gnome-vfs-job-queue.c: * libgnomevfs-pthread/gnome-vfs-job-queue.h: * libgnomevfs-pthread/gnome-vfs-job-slave.c: * libgnomevfs-pthread/gnome-vfs-job-slave.h: * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-pthread.c: * libgnomevfs-pthread/gnome-vfs-pthread.h: * libgnomevfs-pthread/gnome-vfs-thread-pool.c: * libgnomevfs-pthread/gnome-vfs-thread-pool.h: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-async-ops.c: * libgnomevfs/gnome-vfs-init.c: * test/test-async-cancel.c: * test/test-queue.c: Move contents of libgnomevfs-pthread into libgnome-vfs. * modules/Makefile.am, modules/default-modules.conf, modules/gconf-method.c, modules/gconf-method.h: Remove gconf method. 2001-11-01 Seth Nickell * data/mime/WHERE_IS_THE_MIME_REGISTRY?: Add file informing the unwashed of the new location of the registry. * check-mime.pl: * data/Makefile.am: * data/mime/ChangeLog: * data/mime/Makefile.am: * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.applications: * data/mime/gnome-vfs.keys.in: * data/mime/gnome-vfs.mime: Remove the mime registry. * Makefile.am: * configure.in: * gnome-vfs.spec.in: Remove references to the mime registry. * doc/tmpl/gnome-vfs-unused.sgml: Apparently gtk-doc had some changes it wanted to make, don't look at me ;-) 2001-10-30 Laszlo Peter * libgnomevfs/gnome-vfs.h: remove duplicated include line 2001-10-29 jacob berkman * libgnomevfs/gnome-vfs-i18n.h (_): use GETTEXT_PACAKGE * configure.in: set GETTEXT_PACKAGE and use AM_GLIB_GNU_GETTEXT * acconfig.h: add GETTEXT_PACAKGE 2001-10-27 jacob berkman * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs-pthread/gnome-vfs-async-ops.c: * libgnomevfs-pthread/gnome-vfs-job-queue.c: rename GNOME_VFS_*_PRIORITY to GNOME_VFS_PRIORITY_* 2001-10-26 Laszlo Peter * modules/vfolder-desktop-method.c: fix undefined symbol. 2001-10-24 Havoc Pennington * modules/file-method.c (get_stat_info): fix memory leak of file_info->symlink_name for multiply-nested symlinks, and avoid infinite loop for symlink cycles. Bug #62494 Mon Oct 22 23:18:38 2001 George Lebl * modules/vfolder-desktop-method.c: fix reading of keywords, preserve implicit keywords on privatize, reread keywords after we changed the file, when keywords may have changed, invalidate the entire directory strucutre. Mon Oct 22 21:47:00 2001 George Lebl * modules/vfolder-desktop-method.c: fix creation of files, fix usage of basenames, fix long moving, don't write vfolder more then once on long move, fix quick moves. Actually this makes moves actually work. Also add some FIXMEs which I didn't think of before. Mon Oct 22 19:01:21 2001 George Lebl * modules/vfolder-desktop-method.c: implement long_move and folder move Mon Oct 22 19:10:57 2001 George Lebl * modules/test-method.c: add includes for sys/time and sys/types Sun Oct 21 16:14:33 2001 George Lebl * modules/vfolder-desktop-method.c: implement saving of the vfolder info, and fix locations for saving per-user files. 2001-10-21 Gregory Leblanc * gnome-vfs.spec.in: Bunch of updates, still not quite right. Asked for some help from the gnome-vfs hackers. Sun Oct 21 02:52:48 2001 George Lebl * modules/vfolder-desktop-method.c: implement create and some fixes to saving vfolder doc (though of course that bit isn't done yet) Fri Oct 19 23:24:06 2001 George Lebl * modules/vfolder-desktop-method.c: implement make/remove_directory, do proper checking of schemes as a way to do "same fs" check Thu Oct 18 20:14:02 2001 George Lebl * modules/vfolder-desktop-method.c: Rewrite the path resolution bits, rewrite the move method to be saner, but still incomplete, implement open for write and sanitized things all over. 2001-10-17 jacob berkman * configure.in: remove gdk dependency * modules/file-method.c (monitor_setup): (fam_callback): use GIOChannels directly rather than through gdk_input calls (removes an unnecessary gdk dependency) Tue Oct 16 00:30:27 2001 George Lebl * modules/vfolder-desktop-method.c: not all systems have the d_type dirent thingie, so don't use it, implement unlink and move (mostly), though changes are not yet written to disk, add a bunch of fixmes and some more code to the writing functions. also remove some debugging output. 2001-10-15 Laszlo Peter Patch for 48545 - add prioritized versions of all async calls * libgnomevfs/gnome-vfs-async-ops.h, libgnomevfs-pthread/gnome-vfs-async-ops.c, libgnomevfs/gnome-vfs-helpers.h, libgnomevfs/gnome-vfs-helpers.c: added a new argument to all async operations, the job priority, which comes just before the callback. Priority is an int, valid range is GNOME_VFS_MIN_PRIORITY (-10) to GNOME_VFS_MAX_PRIORITY (+10). Use GNOME_VFS_DEFAULT_PRIORITY (0) if you don't care. * libgnomevfs-pthread/gnome-vfs-job-queue.h, libgnomevfs-pthread/gnome-vfs-job-queue.c: (new files) Put async jobs in a queue if the number of concurrent jobs exceeds a limit. Start jobs based on the priority. Public functions gnome_vfs_async_{get,set}_job_limit can be used to change the default job limit. * libgnomevfs/gnome-vfs-job-limit.h: (new file) public prototypes of the functions to get/set the job limit. * libgnomevfs-pthread/gnome-vfs-job-slave.c: (gnome_vfs_thread_backend_shutdown): shut down the job queue * libgnomevfs-pthread/gnome-vfs-job.h: added the priority to GnomeVFSJob. * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_new): added the priority argument. (gnome_vfs_job_go): call the job scheduler instead of starting the job immediately. * libgnomevfs-pthread/gnome-vfs-pthread.c: (gnome_vfs_pthread_init): initialize the job queue. * libgnomevfs-pthread/gnome-vfs-thread-pool.c (thread_entry): check the job queue when a job is finished. * modules/test-method.c: (vfs_module_init): take the config file from GNOME_VFS_TEST_CONFIG_FILE env. variable if defined. (start_operation): use select() instead of usleep(). * test/test-async-cancel.c, test/test-async-directory.c, test/test-async.c, test/test-callback.c, test/test-channel.c, test/test-symlinks.c: added 0 priority to all async calls. * test/test-queue.c: (new file): test program for the job queue. * queue-test-config.xml: (new file): config file for the test method. Used by test-queue. * doc/tmpl/async-ops.sgml: added docs on priority and scheduling. * libgnomevfs/Makefile.am, libgnomevfs-pthread/Makefile.am, test/Makefile.am: added the new files. Sun Oct 14 23:25:41 2001 George Lebl * modules/Makefile.am, modules/programs.vfolder-info.in, modules/default-modules.conf: Make the vfolder-desktop-method the default for programs: and install the programs.vfolder-info file which now is basically the same as the current scheme of directories. It needs to be modified to be like nils's proposal which is cooler. * modules/vfolder-desktop-method.c: Change to use .vfolder-info, to make it possible to use it for other schemes then programs:. Read override vfolder-info from users directory if it exists in preparation for writing. Implement SortOrder. Fix reading 'Not' queries. Sun Oct 14 02:31:58 2001 George Lebl * modules/vfolder-desktop-method.c: Implement most of the read-only functionality, the only thing missing is understanding sort order. Still not added to the build, however it now actually works. Sat Oct 13 01:47:44 2001 George Lebl * modules/vfolder-desktop-method.c: A piece of not-yet-working code to do the "programs:" scheme but with vfolders. Aimed to complement the desktop-method, not to replace it for everything. Doesn't even compile, but I'm paranoid so I want to commit things. 2001-10-07 Maciej Stachowiak * modules/nfs-method.c: (rpc_init_tcp): Fix bug 55805 (mistake in gnome-vfs/modules/nfs-method.c), patch from Martin Pool . 2001-10-02 Darin Adler * modules/http-method.c: (build_request), (make_request): * test/test-shell.c: (do_cd): g_string_printfa -> g_string_append_printf 2001-10-02 Darin Adler * .cvsignore: * Makefile.am: * configure.in: Changed from xml-i18n-tools to intltool. * doc/tmpl/gnome-vfs-unused.sgml: Regenerated by gtk-doc. (Do we have a version mismatch?) 2001-09-30 Anders Carlsson * libgnomevfs/gnome-vfs-module-callback.c: (gnome_vfs_module_callback_free_stack_info): Free the stack info structure too. 2001-09-28 Darin Adler * modules/file-method.c: (do_read_directory): Add back MIME type code that we accidentally removed when we removed directory filtering. 2001-09-26 Maciej Stachowiak * configure.in, NEWS: updated for 1.9.1 2001-09-26 Maciej Stachowiak * doc/tmpl/gnome-vfs-unused.sgml: Regenerated by gtk-doc Merged some changes from the stable branch: 2001-09-10 Maciej Stachowiak * libgnomevfs/gnome-vfs-uri.h, libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_resolve_relative): Renamed from gnome_vfs_uri_relative_new; reversed argument order. 2001-09-08 Maciej Stachowiak Fix make distcheck: * libgnomevfs/gnome-vfs-configuration.c: (configuration_load), (install_path_list), (gnome_vfs_configuration_init): * test/Makefile.am: Set environment variables so that `make check' can find the uninstalled modules and configuration. 2001-09-25 Darin Adler * modules/cdda-cddb.c: (CDDBProcessLine): * modules/http-authn.c: (http_authn_glist_find_header), (http_authn_parse_response_header_basic): * modules/nfs-method.c: (server_connection_acquire): Switched to new ascii version of strcasecmp family. 2001-09-25 Darin Adler * configure.in: Require glib 1.3.9. * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_mime_type_from_name_or_default): * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri), (get_method_string): Fix for changed signature of g_ascii_strup/strdown. 2001-09-25 Darin Adler * modules/gzip-method.c: (skip): * modules/translate-method.c: (my_poptParseArgvString), (tr_args_parse): Use g_alloca instead of alloca for better portability. 2001-09-20 Havoc Pennington * modules/file-method.c (find_trash_in_hierarchy): remove the trash search stuff (create_trash_near): ditto * modules/Makefile.am, desktop-method.c, desktop-module.conf: Add desktop method for desktop URIs such as start-here 2001-09-18 Havoc Pennington * libgnomevfs/gnome-vfs-private.h: update modules locations * modules/Makefile.am (modulesdir): put modules in a new directory (modulesconfdir): put modules conf in a new directory * gnome-vfs-2.0.pc.in (Cflags): update * libgnomevfs/Makefile.am (libgnomevfsincludedir): move headers into gnome-vfs-2.0 subdir 2001-09-10 Frank Belew * configure.in: add check for librt for semaphore functions (fixes undefined references on solaris) 2001-09-07 Darin Adler * libgnomevfs-pthread/gnome-vfs-job.c: Remove a stray include. 2001-09-07 Maciej Stachowiak * doc/Makefile.am: Fix stamp creation so the docs get built only when something actually changes, not every single time. 2001-09-06 Darin Adler * modules/ftp-method.c: (do_path_command): Fix leak. (do_transfer_command): Simplify code. (do_path_transfer_command): Fix leak. (ftp_connection_create): Fix leak of uri in many cases and of response_buffer in one case. (my_str_hash): Simplify code. (my_str_equal): Simplify code. (ftp_connection_acquire): Formatting tweak. (do_get_file_info): Fix leak in the ERROR_NOT_FOUND case. (vfs_module_init): Remove gconf initialization since this module doesn't use gconf. 2001-09-07 Maciej Stachowiak Fixed many problems in the in-line and out-of-line docs that were causing doc build warnings (most indicative of problems in the genrated docs). Recategorize things a bit. * doc/Makefile.am: * doc/about.sgml: * doc/gnome-vfs-docs.sgml: * doc/gnome-vfs-sections.txt: * doc/tmpl/backend.sgml: * doc/tmpl/directory.sgml: * doc/tmpl/find-directory.sgml: * doc/tmpl/fnmatch.sgml: * doc/tmpl/gnome-vfs-unused.sgml: * doc/tmpl/init.sgml: * doc/tmpl/mime-info.sgml: * doc/tmpl/module-callback-private.sgml: * doc/tmpl/seekable.sgml: * doc/tmpl/standard-callbacks.sgml: * doc/tmpl/xfer.sgml: * doc/writing-modules.sgml: * libgnomevfs/gnome-vfs-application-registry.c: * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-find-directory.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-info.h: * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-module-callback.c: 2001-09-03 Maciej Stachowiak Simplification of the callback API, in the process fixing bugs 8447 ([API] Authentication callback API is not threadsafe) and 8448 ([API] Authentication callbacks require explicit threading when using async API) and documenting all of it. * libgnomevfs/gnome-vfs-module-callback.h, libgnomevfs/gnome-vfs-module-callback.c: (gnome_vfs_module_callback_set_default, gnome_vfs_module_callback_push, gnome_vfs_module_callback_pop): New callback interface, replacing gnome-vfs-app-context. (gnome_vfs_async_module_callback_set_default, gnome_vfs_async_module_callback_push, gnome_vfs_async_module_callback_pop): Calls for managing async callbacks. (gnome_vfs_module_callback_invoke): Function to be used by modules to invoke a callback. (gnome_vfs_module_callback_get_stack_info, gnome_vfs_module_callback_free_stack_info, gnome_vfs_module_callback_use_stack_info, gnome_vfs_module_callback_clear_stacks, gnome_vfs_module_callback_set_in_async_thread): Private calls used by gnome-vfs-job to make sure async jobs are called with the same set of callbacks as the thread that launches them. (callback_info_new, callback_info_ref, callback_info_unref, async_callback_response, async_callback_invoke, async_callback_destroy, async_callback_info_new, insert_callback_into_table, push_callback_into_stack_table, pop_stack_table, copy_one_callback, copy_one_stack_top, copy_one_callback_to_stack, duplicate_callback_table, copy_callback_stack_tops, copy_callback_table_to_stack_table, callback_info_unref_x, remove_one_stack, remove_one_callback, clear_stack_table, clear_callback_table, stack_table_destroy, stack_keys_alloc, free_default_callbacks, initialize_global_if_needed, initialize_per_thread_if_needed): Helper functions for the above. * libgnomevfs/gnome-vfs-module-callback-module-api.h: Prototypes for module-only calls relating to callbacks. * libgnomevfs/gnome-vfs-module-callback-private.h: Prototypes for internal calls relating to callbacks. * libgnomevfs/gnome-vfs-module-callback-private.c, libgnomevfs/gnome-vfs-module-callback-module-api.c: Files that only include the corresponding headers to make sure they are standalone includable. * libgnomevfs/gnome-vfs-standard-callbacks.h: Changed some names to fit better with the new API. * libgnomevfs/gnome-vfs-app-context.c, libgnomevfs/gnome-vfs-app-context.h, libgnomevfs/gnome-vfs-callbacks.c, libgnomevfs/gnome-vfs-callbacks.h, libgnomevfs/gnome-vfs-context.h, libgnomevfs/gnome-vfs-module-api.c, libgnomevfs/gnome-vfs-module-api.h: Removed. * libgnomevfs/gnome-vfs-private-types.h, libgnomevfs/gnome-vfs-private.h, libgnomevfs/gnome-vfs-types.h, libgnomevfs/gnome-vfs.h: Pull in new headers where appropriate. * libgnomevfs/gnome-vfs-backend-private.h, libgnomevfs/gnome-vfs-backend.c (gnome_vfs_backend_dispatch_module_callback): Adjust for new interface of async module callbacks. * libgnomevfs/gnome-vfs-context.c: (gnome_vfs_context_new, gnome_vfs_context_unref, gnome_vfs_context_check_cancellation_current): Remove app-context code. * libgnomevfs/gnome-vfs-messages.h: Move typedef of GnomeVFSStatusCallback here. * libgnomevfs/Makefile.am: Add new files to build, remove ones that are gone. * libgnomevfs-pthread/gnome-vfs-job.h, libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_set, set_current_job, clear_current_job, gnome_vfs_op_destroy): Copy callback state so async jobs get the same set of callbacks as the calling thread. (gnome_vfs_job_execute, pthread_gnome_vfs_dispatch_module_callback, dispatch_module_callback, dispatch_sync_job_callback): Adjust for new interface of module callbacks. * modules/http-method.c (connect_to_uri, invoke_callback_basic_authn): Adjusted for above API changes. * modules/http-authn.c: (http_authentication_test_flush_credentials): Renamed to authentication from authn. * modules/Makefile.am: Remove a stray trailing slash (caused problems with newer automake). * test/test-callback.c: (authentication_callback, destroy_notify, main): Adjusted for API changes. * configure.in: Don't check gtk-doc version (I have an older version, it seems to work fine) and remove redundant checks. * doc/gnome-vfs-docs.sgml, doc/gnome-vfs-sections.txt: Add new module callback stuff. * doc/tmpl/module-callback-module-api.sgml, doc/tmpl/module-callback-private.sgml, doc/tmpl/module-callback.sgml, doc/tmpl/standard-callbacks.sgml, doc/tmpl/context.sgml: New and updated out-of-line part of the docs for the module callback interface. * doc/tmpl/app-context.sgml, doc/tmpl/constants.sgml, doc/tmpl/module-api.sgml: Removed (corresponding sections are gone). * doc/tmpl/gnome-vfs-unused.sgml, doc/tmpl/list-sort.sgml, doc/tmpl/shellpattern-filter.sgml, doc/tmpl/types.sgml, doc/tmpl/xfer.sgml: Mysteriously changed by gtk-doc. * doc/Makefile.am, doc/about.sgml, doc/gnome-vfs-docs.sgml, doc/gnome-vfs-sections.txt, doc/tmpl/app-context.sgml, doc/tmpl/async-ops.sgml, doc/tmpl/cancellable-ops.sgml, doc/tmpl/constants.sgml, doc/tmpl/context.sgml, doc/tmpl/directory-filter.sgml, doc/tmpl/directory.sgml, doc/tmpl/gnome-vfs-unused.sgml, doc/tmpl/list-sort.sgml, doc/tmpl/regexp-filter.sgml, doc/tmpl/shellpattern-filter.sgml, doc/tmpl/standard-callbacks.sgml, doc/tmpl/types.sgml, doc/tmpl/xfer.sgml: Rescanned, cleaned up assorted doc problems, removed docs for APIs that are gone. 2001-09-04 Darin Adler Remove more of the obsolete back-end machinery. * Makefile.am: Build libgnomevfs-pthread first, so we can link it into libgnomevfs. * libgnomevfs-pthread/Makefile.am: Make a convenience library instead of a shared library. Also put all the headers in SOURCES instead of noinst_HEADERS, as recommended by automake experts. * libgnomevfs-pthread/gnome-vfs-async-ops.c: * libgnomevfs-pthread/gnome-vfs-job.c: Remove pthread_ prefix from all the names of entry points since we now link to these directly. * libgnomevfs/Makefile.am: Link in the new convenience library and remove gnome-vfs-backend.c. * libgnomevfs/gnome-vfs-app-context.c: (gnome_vfs_callback_call_hook), (dispatch_destroy_notify): * libgnomevfs/gnome-vfs-context.c: (gnome_vfs_context_peek_current): * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init), (gnome_vfs_shutdown), (gnome_vfs_loadinit), (gnome_vfs_preinit), (gnome_vfs_postinit): Call functions by their real names in the pthread library, rather than using back-end wrapper names. * libgnomevfs/gnome-vfs-backend.c: Removed. * libgnomevfs/gnome-vfs-backend.h: Removed most of the contents of this file. Later we can delete it completely. * test/Makefile.am: Removed the environment setup that made it so tests could find the back end. * test/test-async-cancel.c: Renamed things to reflect the fact that we count "jobs" not "threads". * libgnomevfs/gnome-vfs-async-ops.h: Get rid of "const GList *". * libgnomevfs-pthread/gnome-vfs-pthread.c: Formatting tweak. 2001-09-04 jacob berkman * modules/*.conf: remove lib prefix and .so suffix from the libraries as g_module_build_path() will add these for us * libgnomevfs/gnome-vfs-method.c (load_module_in_path_list): use g_module_build_path() to correctly get library suffix 2001-09-03 Maciej Stachowiak Put gnome-vfs-backend stuff all in one header and make it private. * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-app-context.c: * libgnomevfs/gnome-vfs-backend-private.h: * libgnomevfs/gnome-vfs-backend.c: * libgnomevfs/gnome-vfs-backend.h: 2001-09-03 Maciej Stachowiak Fix bug 8514 ([API] kill gnome-vfs-seekable) * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-handle.c: (gnome_vfs_handle_new): * libgnomevfs/gnome-vfs-seekable.c: * libgnomevfs/gnome-vfs-seekable.h: 2001-09-02 Maciej Stachowiak * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init): Don't warn on re-init (it's a harmless no-op) * libgnomevfs/gnome-vfs-init.h: Remove gnome_vfs_options declaration, since it's not defined anywhere anyway. 2001-09-01 Darin Adler * idl/.cvsignore: Remove this now that this directory is empty. * libgnomevfs/.cvsignore: No need to ignore metafile-related generated files since those files are gone. * libgnomevfs/Makefile.am: Remove more code that was part of the metafile support. * libgnomevfs/eel-cut-n-paste.c: * libgnomevfs/eel-cut-n-paste.h: * libgnomevfs/stolen-glib-extensions.c: * libgnomevfs/stolen-glib-extensions.h: Removed. 2001-09-01 Maciej Stachowiak * OUTSTANDING_API_ISSUES: Updated. 2001-09-01 Maciej Stachowiak * Makefile.am: * configure.in: * idl/Makefile.am: * idl/gnome-vfs-metafile-server.idl: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-metadata.c: * libgnomevfs/gnome-vfs-metadata.h: * libgnomevfs/gnome-vfs-metafile-backend.c: * libgnomevfs/gnome-vfs-metafile-backend.h: * libgnomevfs/gnome-vfs-metafile-factory.c: * libgnomevfs/gnome-vfs-metafile-factory.h: Remove metadata code from HEAD, with Seth's approval. 2001-08-31 Darin Adler * libgnomevfs/Makefile.am: * libgnomevfs/fnmatch.c: * libgnomevfs/fnmatch.h: Remove this unused code. * libgnomevfs/eel-cut-n-paste.c: * libgnomevfs/gnome-vfs-application-registry.c: (strip_trailing_whitespace): * libgnomevfs/gnome-vfs-configuration.c: (parse_line): * libgnomevfs/gnome-vfs-helpers.c: * libgnomevfs/gnome-vfs-i18n.c: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-magic.c: (read_string_val), (read_num_val), (eat_white_space), (gnome_vfs_mime_magic_parse), (print_escaped_string), (gnome_vfs_sniff_buffer_looks_like_text): * libgnomevfs/gnome-vfs-mime.c: (add_to_key), (mime_fill_from_file): * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-private-utils.c: (check_end): * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/stolen-glib-extensions.c: * modules/cdda-cddb.c: (ChopWhite): * modules/cdda-method.c: * modules/ftp-method.c: (get_response), (do_read_directory): * modules/http-method.c: (parse_status), (header_value_to_number), (unescape_unreserved_chars): * modules/translate-method.c: (my_poptParseArgvString): * test/test-shell.c: Get rid of any use of and replace with the new g_ascii_* calls in glib. 2001-08-31 Darin Adler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_list_parse): Use g_ascii_isspace instead of isspace. This fixes the char subscript problem in an even better way, and makes sure we don't interpret spaces with locale-specific rules. * test/.cvsignore: Ignore this. 2001-08-27 Sander Vesik * libgnomevfs/gnome-vfs-uri.c: cast argument to isspace so -Werror does not cause breakage on solaris - using char as a subscript generates a warning. 2001-08-27 Martin Baulig * modules/file-method.c: Only #include if we HAVE_FAM. 2001-08-26 Maciej Stachowiak * OUTSTANDING_API_ISSUES: Added the rest of the bugs. 2001-08-26 Maciej Stachowiak * OUTSTANDING_API_ISSUES: Added a bunch of entries for bug reports in the gnome-vfs bug database that have API impact, and bug numbers for some things I filed. 2001-08-27 Abel Cheung * configure.in(ALL_LINGUAS): Rename zh_TW.Big5 to zh_TW. 2001-08-25 Ian McKellar * Makefile.am: * acconfig.h: * configure.in: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-monitor-private.h: * libgnomevfs/gnome-vfs-monitor.c: (init_hash_table), (gnome_vfs_monitor_do_add), (destroy_monitor_handle), (gnome_vfs_monitor_do_cancel), (actually_dispatch_callback), (gnome_vfs_monitor_callback): * libgnomevfs/gnome-vfs-monitor.h: * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_monitor_add), (gnome_vfs_monitor_cancel): * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_relative_new): * libgnomevfs/gnome-vfs.h: Added a file/directory monitoring API based off the FAM api. * modules/Makefile.am: * modules/file-method.c: (fam_callback), (monitor_setup), (do_monitor_add), (do_monitor_cancel): Added monitoring support to the file method using FAM. * test/Makefile.am: * test/test-monitor.c: (show_result), (callback), (main): Test program for monitoring support. * test/test-directory.c: (main): Build fix stuff. 2001-08-25 Darin Adler * libgnomevfs/Makefile.am: No such thing as $(builddir), so it makes no sense to pass -I$(builddir). 2001-08-25 Jim Garrison * doc/tmpl/async-ops.sgml: documented most commonly used async-ops Fri Aug 24 22:17:25 2001 George Lebl * libgnomevfs/gnome-vfs-uri.[ch]: Add function gnome_vfs_uri_list_parse, which is like the original gnome function gnome_uri_list_extract_uris. It parses text/uri-list and returns a GList of GnomeVFSURIs. Actually it is not just like that function it is basically exactly that function thanks to CutAndPaste(tm) technology. Thu Aug 23 11:33:48 2001 George Lebl * test/test-channel.c (io_channel_callback): Another s/guint/gsize/ 64bit fix Thu Aug 23 11:12:36 2001 George Lebl * libgnomevfs/gnome-vfs-process.c (wake_up), libgnomevfs-pthread/gnome-vfs-job.c (serve_channel_read) (serve_channel_write): 64bitness issues fixed. GIOChannel functions have size done in 'gsize' (64bit) and not 'guint' (32bit) 2001-08-21 Maciej Stachowiak * OUTSTANDING_API_ISSUES: Removed the filtering item, added one for renaming gnome-vfs-method. All changes below: removed the non-working and undesirable directory filtering feature. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (async_load_directory), (pthread_gnome_vfs_async_load_directory), (pthread_gnome_vfs_async_load_directory_uri): * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_op_destroy), (load_directory_details), (execute_load_directory): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_load_directory_uri), (gnome_vfs_async_load_directory): * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-directory-filter.c: * libgnomevfs/gnome-vfs-directory-filter.h: * libgnomevfs/gnome-vfs-directory.c: (gnome_vfs_directory_handle_new), (open_from_uri), (open), (gnome_vfs_directory_open), (gnome_vfs_directory_open_from_uri), (gnome_vfs_directory_open_from_uri_cancellable), (directory_visit_internal), (gnome_vfs_directory_visit_uri), (gnome_vfs_directory_visit), (gnome_vfs_directory_visit_files_at_uri), (gnome_vfs_directory_visit_files), (gnome_vfs_directory_list_load): * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-regexp-filter.c: * libgnomevfs/gnome-vfs-regexp-filter.h: * libgnomevfs/gnome-vfs-shellpattern-filter.c: * libgnomevfs/gnome-vfs-shellpattern-filter.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-xfer.c: (empty_directory), (non_recursive_empty_directory), (gnome_vfs_visit_list), (directory_add_items_and_size), (create_directory), (copy_directory): * libgnomevfs/gnome-vfs.h: * modules/cdda-method.c: (do_open), (do_open_directory): * modules/extfs-method.c: (do_open_directory), (do_get_file_info): * modules/file-method.c: (directory_handle_new), (do_open_directory), (do_read_directory): * modules/ftp-method.c: (do_get_file_info), (do_open_directory): * modules/gconf-method.c: (directory_handle_new), (do_open_directory), (do_read_directory): * modules/http-method.c: (do_open_directory): * modules/ssh-method.c: (do_open_directory): * modules/test-method.c: (do_open_directory): * modules/translate-method.c: (tr_do_open_directory): * monikers/bonobo-storage-vfs.c: (vfs_list_contents): * test/test-async-cancel.c: (test_load_directory_cancel), (test_load_directory_fail): * test/test-async-directory.c: (main): * test/test-directory-visit.c: (main): * test/test-directory.c: (main): * test/test-shell.c: (do_ls), (validate_path), (get_regexp_name): 2001-08-21 Theo van Klaveren * libgnomevfs/gnome-vfs-inet-connection.c, libgnomevfs/gnome-vfs-mime.h, libgnomevfs/gnome-vfs-ls-parse.c, modules/file-method.c, modules/ftp-method.c, modules/http-method.c: Fix includes on FreeBSD by adding where needed, moving includes to below , moving above and replacing by . 2001-08-20 Maciej Stachowiak * configure.in: Check for bonobo-activation's IDL directory, not libbonobo's. * idl/Makefile.am, idl/gnome-vfs-slave.idl, idl/gnome-vfs-types.idl: Remove obsolete idl files. * idl/gnome-vfs-metafile-server.idl: Include Bonobo_Unknown.idl, not all of Bonobo.idl. 2001-08-19 Sri Ramkrishna * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_private), (gnome_vfs_xfer_uri): Added new API docs to gnome-vfs-xfer. 2001-08-14 Michael Meeks * configure.in (BONOBO_ACTIVATION_REQUIRED): require 0.9.1 2001-08-10 Abel Cheung * configure.in: added zh_TW.Big5 to ALL_LINGUAS. (Please tell me if there is problem, the file is checked against gettext >= 0.10.36, and will produce error if gettext <= 0.10.35 is used) 2001-08-07 Martin Baulig * configure.in: Fix all the PKG_CHECK_MODULES checks. You need to check for all dependencies for any given target in a single PKG_CHECK_MODULES command, otherwise you'll get duplicate -ldl etc. into your *.la files. * */Makefile.am: Use the correct _LIBS and _CFLAGS. 2001-08-06 jacob berkman * modules/ftp-method.c (do_open_directory): do a CWD command so we can correctly return an error code when trying to open a file. 2001-08-06 Frederic Crozat * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_gzip): Fix detection of Koffice files (ie seen as gzipped files) 2001-08-03 Darin Adler * libgnomevfs/gnome-vfs.h: Remove extern "C" guards. The individual files take care of this. 2001-08-03 Darin Adler Made builds noticeably faster by not using catch-all includes like inside gnome-vfs sources. * libgnomevfs/Makefile.am: Add gnome-vfs-i18n.h, add G_DISABLE_DEPRECATED, get rid of unneeded -I directives. * libgnomevfs-pthread/Makefile.am: Add G_DISABLE_DEPRECATED, get rid of unneeded -I directives. * modules/Makefile.am: Add G_DISABLE_DEPRECATED, get rid of unneeded -I directives. Remove cdda-method.h, extfs-method.h, file-method.h, ssh-method.h, test-method.h, ftp-method.h, gconf-method.h, pipe-method.h, efs-method.h. * test/Makefile.am: Add G_DISABLE_DEPRECATED, get rid of unneeded -I directives. * libgnomevfs/gnome-vfs-app-context.c: (inherit_from_current): Don't use obsolete g_hash_table_freeze/thaw. * libgnomevfs/eel-cut-n-paste.c: (stolen_strcasecmp), (stolen_istr_has_prefix): * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_backend_name), (gnome_vfs_backend_loadinit): * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_matches): * libgnomevfs/gnome-vfs-helpers.c: (istr_has_prefix), (is_valid_scheme_character), (gnome_vfs_x_make_uri_canonical): * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type), (sort_application_list): * libgnomevfs/gnome-vfs-mime-info.c: (does_string_contain_caps): * libgnomevfs/gnome-vfs-mime-magic.c: (read_hex_byte), (read_num_val): * libgnomevfs/gnome-vfs-mime.c: (list_find_type), (gnome_vfs_mime_type_from_name_or_default): * libgnomevfs/gnome-vfs-private-utils.c: (gnome_vfs_istr_has_prefix), (gnome_vfs_istr_has_suffix): * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri), (get_method_string): * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): * modules/http-method.c: (check_header), (proxy_should_for_hostname), (connect_to_uri), (build_request), (make_request), (process_propfind_propstat): * modules/test-method.c: (get_operation_settings), (parse_result_text), (load_settings): * modules/translate-method.c: (tr_args_parse): * test/test-mime-handlers-set.c: (str_to_action_type), (str_to_bool): * test/test-shell.c: (simple_regexp), (do_cd), (main): Use new g_ascii calls instead of locale-sensitive ones from the standard library or the old deprecated glib ones. * libgnomevfs/gnome-vfs-process.c: (wake_up): * libgnomevfs-pthread/gnome-vfs-job.c: (serve_channel_read), (serve_channel_write): * test/test-channel.c: (io_channel_callback): Use g_io_channel_write_chars, g_io_channel_shutdown, and g_io_channel_read_chars instead of g_io_channel_write, g_io_channel_close, and g_io_channel_read. * libgnomevfs/gnome-vfs-private.h: Remove everything but the two path defines in here. * libgnomevfs/gnome-vfs-i18n.h: New file, contains i18n funtions that were previously in gnome-vfs-private.h. (They are still private.) * libgnomevfs-pthread/gnome-vfs-job-slave.c: (gnome_vfs_thread_backend_shutdown): Use g_main_context_iteration instead of g_main_iteration. * modules/extfs-method.c: (get_basename): * modules/ftp-method.c: (ls_to_file_info): Use g_path_get_basename instead of g_basename. * libgnomevfs/eel-cut-n-paste.c: * libgnomevfs/gnome-vfs-application-registry.c: * libgnomevfs/gnome-vfs-backend.c: * libgnomevfs/gnome-vfs-cancellable-ops.c: * libgnomevfs/gnome-vfs-cancellation.c: * libgnomevfs/gnome-vfs-configuration.c: * libgnomevfs/gnome-vfs-directory-filter.c: * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-find-directory.c: * libgnomevfs/gnome-vfs-handle.c: * libgnomevfs/gnome-vfs-helpers.c: * libgnomevfs/gnome-vfs-i18n.c: * libgnomevfs/gnome-vfs-inet-connection.c: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs/gnome-vfs-iobuf.c: * libgnomevfs/gnome-vfs-method.c: * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-parse-ls.c: * libgnomevfs/gnome-vfs-process.c: * libgnomevfs/gnome-vfs-regexp-filter.c: * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-seekable.c: * libgnomevfs/gnome-vfs-shellpattern-filter.c: * libgnomevfs/gnome-vfs-ssl.c: * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/gnome-vfs-xfer.c: * libgnomevfs/stolen-glib-extensions.c: * libgnomevfs-pthread/gnome-vfs-async-job-map.c: * libgnomevfs-pthread/gnome-vfs-async-job-map.h: * libgnomevfs-pthread/gnome-vfs-async-ops.c: * libgnomevfs-pthread/gnome-vfs-job-slave.c: * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-thread-pool.c: * modules/bzip2-method.c: * modules/cdda-cddb.c: * modules/cdda-cddb.h: * modules/cdda-method.c: * modules/efs-method.c: * modules/extfs-method.c: * modules/file-method.c: * modules/ftp-method.c: * modules/gconf-method.c: * modules/gzip-method.c: * modules/http-authn.c: * modules/http-cache.c: * modules/http-method.c: * modules/http-method.h: * modules/nfs-method.c: * modules/pipe-method.c: * modules/ssh-method.c: * modules/test-method.c: * modules/translate-method.c: * test/test-async-cancel.c: * test/test-async-directory.c: * test/test-async.c: * test/test-callback.c: * test/test-channel.c: * test/test-directory-visit.c: * test/test-directory.c: * test/test-dirop.c: * test/test-escape.c: * test/test-find-directory.c: * test/test-info.c: * test/test-mime-handlers-set.c: * test/test-mime-handlers.c: * test/test-mime-info.c: * test/test-mime.c: * test/test-module-selftest.c: * test/test-seek.c: * test/test-shell.c: * test/test-ssl.c: * test/test-symlinks.c: * test/test-sync-create.c: * test/test-sync-write.c: * test/test-sync.c: * test/test-unlink.c: * test/test-uri.c: * test/test-xfer.c: Fix includes. * modules/cdda-method.h: Removed. * modules/efs-method.h: Removed. * modules/extfs-method.h: Removed. * modules/file-method.h: Removed. * modules/ftp-method.h: Removed. * modules/gconf-method.h: Removed. * modules/pipe-method.h: Removed. * modules/ssh-method.h: Removed. 2001-08-02 Darin Adler * Makefile.am: Added the test directory back in. Got rid of the cases for GNOME 1, removed vfsConf.sh and gnome-vfs-config. Remove intl directory. * OUTSTANDING_API_ISSUES: Added some new issues. * acconfig.h: Removed HAVE_GCONF. * configure.in: Removed the EAZEL_VERSION macros since we use pkgconfig now. Removed the GNOME platform autodetect. Removed all the GNOME 1 cases. Use PKG_CHECK_MODULES instead of GNOME_PKGCONFIG_CHEC_MODULES. Remove lots of unused CFLAGS and LIBS defines. Remove intl directory. Removed HAVE_GCONF. * gnome-vfs-config.in: Removed. * vfsConf.sh.in: Removed. * libgnomevfs/Makefile.am: Put non-installed headers into SOURCES rather than noinst_HEADERS as recommended by automake documentation. * libgnomevfs-pthread/gnome-vfs-pthread.h: * libgnomevfs/eel-cut-n-paste.h: * libgnomevfs/gnome-vfs-app-context.h: * libgnomevfs/gnome-vfs-application-registry.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.h: * libgnomevfs/gnome-vfs-callbacks.h: * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-cancellation.h: * libgnomevfs/gnome-vfs-configuration.h: * libgnomevfs/gnome-vfs-context.h: * libgnomevfs/gnome-vfs-directory-filter.h: * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-find-directory.h: * libgnomevfs/gnome-vfs-handle.h: * libgnomevfs/gnome-vfs-helpers.h: * libgnomevfs/gnome-vfs-inet-connection.h: * libgnomevfs/gnome-vfs-init.h: * libgnomevfs/gnome-vfs-iobuf.h: * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-info.h: * libgnomevfs/gnome-vfs-mime-magic.h: * libgnomevfs/gnome-vfs-mime-private.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-module-api.h: * libgnomevfs/gnome-vfs-module-shared.h: * libgnomevfs/gnome-vfs-module.h: * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-parse-ls.h: * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-private.h: * libgnomevfs/gnome-vfs-process.h: * libgnomevfs/gnome-vfs-regexp-filter.h: * libgnomevfs/gnome-vfs-result.h: * libgnomevfs/gnome-vfs-seekable.h: * libgnomevfs/gnome-vfs-shellpattern-filter.h: * libgnomevfs/gnome-vfs-socket-buffer.h: * libgnomevfs/gnome-vfs-socket.h: * libgnomevfs/gnome-vfs-ssl-private.h: * libgnomevfs/gnome-vfs-ssl.h: * libgnomevfs/gnome-vfs-standard-callbacks.h: * libgnomevfs/gnome-vfs-transform.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-xfer.h: * libgnomevfs/stolen-glib-extensions.h: Added G_BEGIN_DECLS and G_END_DECLS to all public headers. Removed unnecessary includes. * libgnomevfs/gnome-vfs-app-context.c: * libgnomevfs/gnome-vfs-helpers.c: * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-private-utils.c: * libgnomevfs/gnome-vfs-socket-buffer.c: * libgnomevfs/gnome-vfs-socket.c: * libgnomevfs/stolen-glib-extensions.c: * modules/bzip2-method.c: * modules/cdda-cddb.c: * modules/gzip-method.c: * modules/http-authn.c: * modules/http-authn.h: * modules/http-cache.c: * modules/pipe-method.c: * modules/ssh-method.c: Added includes that are needed now that headers drag fewer of them in. * modules/cdda-cddb.h: * modules/cdda-method.h: Got rid of include of gtk.h. * libgnomevfs/gnome-vfs-mime-handlers.c: (unref_gconf_engine), (get_user_level): * modules/ftp-method.c: (vfs_module_init): Removed HAVE_GCONF. * modules/file-method.c: * modules/http-method.c: * modules/test-method.c: Removed GNOME_PLATFORM_VERSION. * test/Makefile.am: Removed VFS_GNOMEUI_CFLAGS and VFS_GNOMEGNORBA_LIBS. * test/test-async-cancel.c: (wait_for_boolean), (wait_until_vfs_threads_gone), (wait_until_file_descriptors_gone), (my_yield), (main): * test/test-async-directory.c: (directory_load_callback), (main): * test/test-async.c: (close_callback), (read_callback), (open_callback), (main): * test/test-callback.c: (main): * test/test-channel.c: (io_channel_callback), (main): * test/test-directory-visit.c: * test/test-directory.c: (main): * test/test-escape.c: * test/test-info.c: * test/test-mime-handlers-set.c: (main): * test/test-mime-handlers.c: (print_component), (main): * test/test-mime-info.c: * test/test-shell.c: (main): * test/test-symlinks.c: (create_link_callback), (main): * test/test-uri.c: * test/test-xfer.c: (main): Converted tests so they no longer require gtk+ or libgnomeui. 2001-08-02 Maciej Stachowiak * OUTSTANDING_API_ISSUES: Add a fe bug numbers. * doc/outstanding-api-issues.txt: Actually remove this. ==== gnome-vfs 1.1 ==== 2001-08-02 Seth Nickell * OUTSTANDING_API_ISSUES: Add more descriptive text so application developers have a better idea what to avoid using. * modules/cdda-cddb.h: * modules/cdda-method.h: Remove gtk includes. 2001-08-02 Seth Nickell * OUTSTANDING_API_ISSUES: * doc/outstanding-api-issues.txt: Move outstanding-api-issues.txt to the main directory. * README: Contain notice of OUTSTANDING_API_ISSUES. 2001-08-02 Seth Nickell * libgnomevfs/gnome-vfs-metafile-backend.c: (corba_get_list), (corba_set_list), (find_monitor_node), (corba_register_monitor), (corba_unregister_monitor), (gnome_vfs_metafile_notify_metafile_ready), (call_metafile_changed), (file_list_filler_ghfunc), (call_metafile_changed_for_all_files_mentioned_in_metafile), (call_metafile_changed_for_one_file): * libgnomevfs/gnome-vfs-metafile-backend.h: Sigh. Compile happily...(rename to new idl namespace). 2001-08-02 Michael Meeks * doc/Makefile.am (dist-hook): fix directory creation brokenness. * modules/ssh-method.c: kill gtk include. * modules/ftp-method.c: ditto. * modules/cdda-method.c: kill gtk crud. * modules/http-method.c: ditto. * modules/gconf-method.c (vfs_module_init): kill curious gtk type inits - gconf doesn't use gtk anymore. (vfs_module_shutdown): ditto. * libgnomevfs-pthread/gnome-vfs-job-slave.c: kill gtk include (gnome_vfs_thread_backend_shutdown): and gtk cruft. * libgnomevfs/gnome-vfs-metafile-backend.c: basic port to GObject, try and contain the madness a little. * libgnomevfs/gnome-vfs-mime-info.c: don't include gtkmain.h * libgnomevfs/gnome-vfs-mime-monitor.c: remove curious unused parent class setting, port to GObject, clean hard core cruft. * libgnomevfs/gnome-vfs-mime-monitor.h: include a class structure, what was someone smoking here ? * configure.in: don't depend on Gtk+ - that's just broken. * libgnomevfs/Makefile.am (noinst_HEADERS): add eel-cut-n-paste.h, stolen-glib-extensions.h and gnome-vfs-metafile-backend.h (libgnomevfsinclude_HEADERS): install gnome-vfs-metafile.h * Makefile.am (SUBDIRS): add 'intl'. 2001-08-01 Seth Nickell * idl/gnome-vfs-metafile-server.idl: Change from GnomeVFS_ namespace to GNOME_VFS_. * libgnomevfs/gnome-vfs-metadata.c: (get_factory), (gnome_vfs_metafile_load), (gnome_vfs_metafile_unref), (gnome_vfs_metadata_get_string), (gnome_vfs_metadata_get_integer), (gnome_vfs_metadata_get_boolean), (gnome_vfs_metadata_set_string), (gnome_vfs_metadata_set_integer), (gnome_vfs_metadata_set_boolean): * libgnomevfs/gnome-vfs-metadata.h: Add an initial cut at a Metadata API. DO NOT DEPEND ON THIS API, IT IS NOT FROZEN (and won't even work right now, so you won't get very far, headers are not installed and it is not compiled in...checking in so Ian and I can work together better). Known changes will occur in the API. Also, the IDL file will be renamed to better match its module scopes (changes suggested by Michael). 2001-08-02 Michael Meeks * port to bonobo-activation. 2001-08-01 Jonas Borgström * libgnomevfs/gnome-vfs-ssl.c (gnome_vfs_ssl_create): Split the HAVE_OPENSSL #ifdef into two. So the function gnome_vfs_ssl_create_from_fd will exist (but only return GNOME_VFS_ERROR_NOT_SUPPORTED) even if HAVE_OPENSSL isn't defined. Or else we will get unresolved symbols in libhttp.so 2001-07-29 Maciej Stachowiak * doc/outstanding-api-issues.txt: Added a few more issues. 2001-07-29 Maciej Stachowiak * doc/outstanding-api-issues.txt: Add list of outstnading API issues (perhaps not all of these are for GNOME 2). 2001-07-29 Seth Nickell * bonobo-storage-fs.c: * bonobo-storage-vfs.c: * bonobo-stream-fs.c: * bonobo-stream-vfs.c: Make it actually compile ;-) Still had includes to parts of libgnome. 2001-07-29 Seth Nickell * libgnomevfs/Makefile.am: Remove link and include variables that were no longer in use. 2001-07-29 Seth Nickell * doc/about.sgml: Change some of the text a little, add a few programming examples. 2001-07-29 Michael Meeks * Makefile.am (SUBDIRS_GNOME): add monikers. * configure.in: add monikers/ 2001-07-27 Darin Adler Get things compiling again. * idl/gnome-vfs-metafile-server.idl: Don't use a typedef for URI, just use "string" directly. The IDL compiler doesn't handle the typedef case properly. * libgnomevfs/.cvsignore: Ignore the new generated files. * libgnomevfs/eel-cut-n-paste.c: Add missing include. * libgnomevfs/gnome-vfs-metafile-backend.h: Change xml includes to use , not . * libgnomevfs/gnome-vfs-metafile-backend.c: Add missing include. Change xml includes to use , not . (destroy), (gnome_vfs_metafile_get), (corba_get_list), (corba_copy), (metadata_value_new_list), (metadata_value_destroy), (metadata_value_equal), (get_metadata_list_from_table), (can_use_public_metafile), (metafile_read_check_for_directory_callback), (metafile_read_restart), (metafile_read_start), (directory_request_write_metafile): Put code that's not ready yet inside "#ifdef METAFILE_CODE_READY". * configure.in: Turn -Werror back on and get rid of lame old $(WERROR) hack. * libgnomevfs-pthread/Makefile.am: * libgnomevfs/Makefile.am: * modules/Makefile.am: * test/Makefile.am: Get rid of the lame old $(WERROR) hack. 2001-07-26 Seth Nickell * configure.in: Add Bonobo dependency. Comment out -Werror because ORBit2 or libidl is generating stubs with a few warnings. Should be the only warnings though, so watch carefully when you compile!. * doc/tmpl/gnome-vfs-unused.sgml: * doc/tmpl/shellpattern-filter.sgml: * doc/tmpl/xfer.sgml: Ask the documentation system! * idl/Makefile.am: Add gnome-vfs-metafile-server.idl * idl/gnome-vfs-metafile-server.idl: err. Add gnome-vfs-metafile-server.idl * libgnomevfs/Makefile.am: Add the eel cut-n-paste code, and the new metafile stuff, as well as actually using the idl file. * libgnomevfs/gnome-vfs-metafile-backend.c: (gnome_vfs_metafile_class_init), (gnome_vfs_metafile_init), (destroy), (construct_private_metafile_vfs_uri), (gnome_vfs_metafile_set_directory_uri), (gnome_vfs_metafile_new), (gnome_vfs_metafile_make_uri_canonical), (gnome_vfs_metafile_get), (schedule_next_read), (async_read_start), (async_read_done), (async_read_cancel), (corba_is_read), (corba_get), (corba_get_list), (corba_set), (corba_set_list), (corba_copy), (corba_remove), (corba_rename), (corba_rename_directory), (find_monitor_node), (corba_register_monitor), (corba_unregister_monitor), (gnome_vfs_metafile_notify_metafile_ready), (call_metafile_changed), (file_list_filler_ghfunc), (call_metafile_changed_for_all_files_mentioned_in_metafile), (call_metafile_changed_for_one_file), (get_metadata_from_node), (get_metadata_list_from_node), (create_metafile_root), (get_file_node), (get_metadata_string_from_metafile), (get_metadata_list_from_metafile), (set_metadata_string_in_metafile), (set_metadata_list_in_metafile), (metadata_value_new), (metadata_value_new_list), (metadata_value_destroy), (metadata_value_equal), (set_metadata_in_metafile), (get_metadata_string_from_table), (get_metadata_list_from_table), (str_or_null_hash), (str_or_null_equal), (set_metadata_eat_value), (free_file_table_entry), (free_directory_table_entry), (destroy_metadata_changes_hash_table), (destroy_xml_string_key), (metafile_free_metadata), (get_file_metadata), (get_file_metadata_list), (set_file_metadata), (set_file_metadata_list), (rename_file_metadata), (apply_one_change), (apply_file_changes), (apply_one_file_changes), (gnome_vfs_metafile_apply_pending_changes), (copy_file_metadata), (remove_file_metadata), (gnome_vfs_metafile_set_metafile_contents), (metafile_read_cancel), (can_use_public_metafile), (metafile_read_mark_done), (metafile_read_done), (metafile_read_try_public_metafile), (metafile_read_check_for_directory_callback), (metafile_read_check_for_directory), (metafile_read_failed), (metafile_read_done_callback), (metafile_read_restart), (metafile_read_start), (metafile_write_done), (metafile_write_failed), (metafile_write_failure_close_callback), (metafile_write_success_close_callback), (metafile_write_callback), (metafile_write_create_callback), (metafile_write_start), (metafile_write), (metafile_write_idle_callback), (directory_request_write_metafile): * libgnomevfs/gnome-vfs-metafile-backend.h: Add the metafile backend from Nautilus and hack it up so it works in GnomeVFS. Interfaces should be the same, and it shouldn't depend on eel (whew, that was a pile of boring work). * libgnomevfs/gnome-vfs-metafile-factory.c: (nautilus_metafile_factory_class_init), (nautilus_metafile_factory_init), (destroy), (nautilus_metafile_factory_new), (free_factory_instance), (nautilus_metafile_factory_get_instance), (corba_open): * libgnomevfs/gnome-vfs-metafile-factory.h: Add the metafile factory from Nautilus and hack it up so it works in GnomeVFS. Interfaces should be the same, and it shouldn't depend on eel (whew, that was a pile of boring work). * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_list_free), (is_uri_partial), (gnome_vfs_uri_make_full_from_relative): * libgnomevfs/gnome-vfs-uri.h: Add some code that was formerly in eel-vfs-extensions but really belongs in GnomeVFSURI. * po/ChangeLog: * libgnomevfs/eel-cut-n-paste.c: (stolen_strcasecmp), (stolen_strcmp_case_breaks_ties), (stolen_strcoll), (stolen_xml_remove_node), (stolen_str_has_prefix), (stolen_istr_has_prefix), (stolen_str_strip_trailing_chr), (stolen_strcmp), (stolen_str_is_empty), (stolen_xml_get_root_children), (stolen_xml_get_children), (stolen_xml_get_property_for_children): * libgnomevfs/eel-cut-n-paste.h: Functions snitched from eel to make the metafile backend compile. * libgnomevfs/gnome-vfs-helpers.c: (stolen_strcmp), (str_is_equal), (str_has_prefix), (istr_has_prefix), (gnome_vfs_x_read_entire_file), (read_file_close_callback), (read_file_close), (read_file_succeeded), (read_file_failed), (read_file_read_callback), (read_file_read_chunk), (read_file_open_callback), (pthread_gnome_vfs_x_read_file_callback_idle_binder), (pthread_gnome_vfs_x_read_file_callback_common), (pthread_gnome_vfs_x_read_file_synchronous_callback), (pthread_gnome_vfs_x_read_file_asynchronous_callback), (pthread_gnome_vfs_x_read_file_thread_entry), (pthread_gnome_vfs_x_read_file_async), (pthread_gnome_vfs_x_read_file_async_cancel), (gnome_vfs_x_read_file_async), (gnome_vfs_x_read_entire_file_async), (gnome_vfs_x_read_file_cancel), (gnome_vfs_x_uri_is_trash), (gnome_vfs_x_uri_is_trash_folder), (gnome_vfs_x_uri_is_in_trash), (gnome_vfs_x_format_uri_for_display), (is_valid_scheme_character), (has_valid_scheme), (gnome_vfs_x_make_uri_from_input), (file_uri_from_local_relative_path), (gnome_vfs_x_make_uri_from_shell_arg), (gnome_vfs_x_uri_get_basename), (gnome_vfs_x_uri_get_scheme), (gnome_vfs_x_uri_is_local_scheme), (gnome_vfs_x_handle_trailing_slashes), (gnome_vfs_x_make_uri_canonical), (gnome_vfs_x_make_uri_canonical_strip_fragment), (gnome_vfs_x_make_uri_from_half_baked_uri), (uris_match), (gnome_vfs_x_uris_match), (gnome_vfs_x_uris_match_ignore_fragments), (gnome_vfs_x_is_remote_uri), (gnome_vfs_x_make_directory_and_parents), (gnome_vfs_x_copy_uri_simple): * libgnomevfs/gnome-vfs-helpers.h: GnomeVFSHelpers used to be eel-vfs-extensions. Now moved into GnomeVFS. It needs to have the checks re-enabled...but I'm working on that. * libgnomevfs/stolen-glib-extensions.c: (stolen_g_list_exactly_one_item), (stolen_g_list_more_than_one_item), (stolen_g_list_equal), (stolen_g_list_copy), (stolen_g_str_list_equal), (stolen_g_str_list_copy), (stolen_g_str_list_alphabetize), (stolen_g_list_free_deep_custom), (stolen_g_list_free_deep), (stolen_g_list_safe_for_each), (stolen_g_list_sort_merge), (stolen_g_list_is_already_sorted), (stolen_g_list_sort_custom), (compare_pointers), (stolen_g_lists_sort_and_check_for_intersection), (stolen_g_list_partition), (print_key_string), (free_hash_tables_at_exit), (stolen_g_hash_table_new_free_at_exit), (flatten_hash_table_element), (stolen_g_hash_table_safe_for_each), (stolen_g_hash_table_remove_deep_custom), (stolen_g_hash_table_remove_deep), (destroy_deep_helper), (stolen_g_hash_table_destroy_deep_custom), (stolen_g_hash_table_destroy_deep): * libgnomevfs/stolen-glib-extensions.h: Snitched some necessary hash table and list glib extensions from eel and made them work without the rest of eel. :-P 2001-07-25 Maciej Stachowiak Fix bug 8296 (News Sidebar crashes when not connected to network), a bunch of other News panel instability, and a bug where Nautilus would totally crash on entering an invalid http URI in the location bar: * modules/http-method.c: (make_request): initialize socket_buffer to NULL; if this is not done it will be left set to garbage if `connect_to_uri' fails so that subsequent attempts to close the destroy the socket buffer will crash. 2001-07-18 Martin Baulig * libgnomevfs/gnome-vfs-module-shared.c: Move the #include "gnome-vfs-module-shared.h" after the #define of _BSD_SOURCE and _LARGEFILE64_SOURCE. * libgnomevfs/gnome-vfs-utils.c: #include before . 2001-07-17 Chema Celorio * configure.in: add a message that displays the target GNOME platform, either 1.x or 2.0 2001-07-16 Darin Adler Finished deprecating gnome-vfs-types.h. * libgnomevfs/fnmatch.c: * libgnomevfs/gnome-vfs-app-context.c: * libgnomevfs/gnome-vfs-app-context.h: * libgnomevfs/gnome-vfs-application-registry.c: * libgnomevfs/gnome-vfs-application-registry.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend-private.h: * libgnomevfs/gnome-vfs-backend.c: * libgnomevfs/gnome-vfs-callbacks.h: * libgnomevfs/gnome-vfs-cancellable-ops.c: * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-cancellation.c: * libgnomevfs/gnome-vfs-context.c: * libgnomevfs/gnome-vfs-directory-filter.c: * libgnomevfs/gnome-vfs-directory-filter.h: * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-file-size.h.in: * libgnomevfs/gnome-vfs-find-directory.c: * libgnomevfs/gnome-vfs-find-directory.h: * libgnomevfs/gnome-vfs-handle.c: * libgnomevfs/gnome-vfs-handle.h: * libgnomevfs/gnome-vfs-inet-connection.c: * libgnomevfs/gnome-vfs-inet-connection.h: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs/gnome-vfs-init.h: * libgnomevfs/gnome-vfs-iobuf.c: * libgnomevfs/gnome-vfs-iobuf.h: * libgnomevfs/gnome-vfs-method-type.h: * libgnomevfs/gnome-vfs-method.c: (load_module): * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-info.h: * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-mime-private.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer-private.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-module-api.h: * libgnomevfs/gnome-vfs-module-shared.c: * libgnomevfs/gnome-vfs-module.h: * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-parse-ls.c: * libgnomevfs/gnome-vfs-parse-ls.h: * libgnomevfs/gnome-vfs-private-utils.c: * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-private.h: * libgnomevfs/gnome-vfs-process.c: * libgnomevfs/gnome-vfs-process.h: * libgnomevfs/gnome-vfs-regexp-filter.c: * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-seekable.c: * libgnomevfs/gnome-vfs-seekable.h: * libgnomevfs/gnome-vfs-shellpattern-filter.c: * libgnomevfs/gnome-vfs-shellpattern-filter.h: * libgnomevfs/gnome-vfs-socket-buffer.c: * libgnomevfs/gnome-vfs-socket.c: * libgnomevfs/gnome-vfs-socket.h: * libgnomevfs/gnome-vfs-ssl.c: * libgnomevfs/gnome-vfs-ssl.h: * libgnomevfs/gnome-vfs-standard-callbacks.h: * libgnomevfs/gnome-vfs-transform.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-xfer.c: * libgnomevfs/gnome-vfs-xfer.h: * libgnomevfs/gnome-vfs.h: * modules/Makefile.am: * modules/bzip2-method.c: * modules/cdda-method.c: * modules/ftp-method.c: * modules/gzip-method.c: * modules/http-authn.h: * modules/http-cache.h: * modules/translate-method.c: * test/test-module-selftest.c: * test/test-uri.c: More changes to includes so that nothing inside gnome-vfs itself ever includes gnome-vfs-types.h. Also make sure that all .c files include the corresponding .h file first, so we know that the files have enough includes to stand alone. Also switched from size_t and ssize_t to gsize and gssize in most places. * libgnomevfs/gnome-vfs-async-ops.c: * libgnomevfs/gnome-vfs-callbacks.c: * libgnomevfs/gnome-vfs-module-api.c: * libgnomevfs/gnome-vfs-module.c: * libgnomevfs/gnome-vfs-private.c: * libgnomevfs/gnome-vfs-transform.c: For testing purposes, made files that just include a particular header for public headers that have no corresponding .c file. This tests that the headers have enough includes to stand alone. * libgnomevfs/gnome-vfs-configuration.c: (configuration_load): Change code to not use alloca any more, and handle a too-big configuration file without resulting in buffer overflow. * libgnomevfs/gnome-vfs-method-type.h: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-socket-private.h: * modules/bzip2-method.h: * modules/gzip-method.h: Removed some unneeded files. * libgnomevfs/Makefile.am: Updated to reflect changes above. 2001-07-16 Darin Adler * modules/gconf-method.c: Fix const bug in code that was not being compiled because HAVE_GCONF was off. 2001-07-16 Darin Adler * modules/Makefile.am: Had to remove HAVE_GCONF from here to make things build again. * AUTHORS: Updated my email address. 2001-07-15 Darin Adler The checks for gconf were always coming out false due to differences in name (gconf vs. gconf-2, etc.). So I re-enabled the dependency on gconf. Since gconf seems to be working for GNOME 2 now I hope this is not a problem. * configure.in: Always require GCONF and define HAVE_GCONF. 2001-07-14 Anders Carlsson * libgnomevfs/gnome-vfs-mime-handlers.c (join_str_list): Remove a duplicate call to g_new. 2001-07-12 Darin Adler * .cvsignore: Ignore sgml directory too. 2001-07-12 Laszlo Peter Fix some portability issues. * libgnomevfs/gnome-vfs-ssl.c: a struct needs to have a member. * libgnomevfs/gnome-vfs-context.c: use G_GNUC_FUNCTION instead of __FUNCTION__. 2001-07-11 Martin Baulig We now require autoconf 2.50b on the GNOME 2 platform. You can get it from either alpha.gnu.org or ftp://master.gnome.org/people/martin/vicious-bootstraps. * acinclude.m4: Make this work with autoconf 2.50b. * configure.in: Require autoconf 2.50b. 2001-07-06 Havoc Pennington * libgnomevfs/gnome-vfs-uri.c (uri_matches_as_parent): handle case where uri->text is NULL 2001-07-09 Ramiro Estrugo * libgnomevfs/gnome-vfs-file-info.h: Include some needed dependencies to fix breakage caused by the last bunch of checkins. 2001-07-07 Seth Nickell * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-types.h: Tweak includes a little more. * modules/pipe-method.c: * modules/ssh-method.c: Make modules include more cleanly. 2001-07-07 Seth Nickell Deprecate (other than a couple structs I didn't find a home for) gnome-vfs-types.h in favour of having types distributed throughout corresponding .h files. The primary motivation for this is to achieve better docs: rather than clustering all the type declarations into a big muddy section called "Types", types are defined in relavent sections. Secondary effects are a more obvious include path and the ability to include more files independently. * doc/tmpl/gnome-vfs-unused.sgml: * doc/tmpl/types.sgml: * doc/tmpl/uri.sgml: * doc/tmpl/utils.sgml: * doc/tmpl/xfer.sgml: gtk-doc has updated the base sgml files to deal with the new locations of declarations. * libgnomevfs/Makefile.am: Add gnome-vfs-callbacks.h, gnome-vfs-transform.h, and gnome-vfs-method-type.h to the include header list. * libgnomevfs/gnome-vfs-app-context.c: * libgnomevfs/gnome-vfs-app-context.h: * libgnomevfs/gnome-vfs-application-registry.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: * libgnomevfs/gnome-vfs-callbacks.h: * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-cancellation.h: * libgnomevfs/gnome-vfs-context.c: * libgnomevfs/gnome-vfs-context.h: * libgnomevfs/gnome-vfs-directory-filter.h: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-find-directory.h: * libgnomevfs/gnome-vfs-handle.h: * libgnomevfs/gnome-vfs-inet-connection.h: * libgnomevfs/gnome-vfs-iobuf.h: * libgnomevfs/gnome-vfs-method-type.h: * libgnomevfs/gnome-vfs-method.c: * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-mime-info.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-module-shared.h: * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-regexp-filter.h: * libgnomevfs/gnome-vfs-result.h: * libgnomevfs/gnome-vfs-shellpattern-filter.h: * libgnomevfs/gnome-vfs-socket.h: * libgnomevfs/gnome-vfs-transform.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-xfer.h: * libgnomevfs/gnome-vfs.h: Shuffling around includes and struct declerations to achieve the cleanest arrangement that also minimizes changes to applications like Nautilus that already heavily depend on GnomeVFS. 2001-07-05 Darin Adler * libgnomevfs/gnome-vfs-ssl.c: Added missing include. 2001-07-04 Ramiro Estrugo * configure.in: Dont use 'glib-config-2.0' when building in the GNOME2 platform. There is no such config script anymore because these are history in the GNOME2 platform. Use pkgconfig technology instead. Continue to use 'glib-config' for the GNOME1 platform. 2001-07-02 Seth Nickell * configure.in: Fix ORBit configuration problem on GNOME1 platform. * po/ChangeLog: Long live stupid gettext. 2001-06-26 Darin Adler * .cvsignore: Ignore ABOUT-NLS, but not obsolete *Conf.sh files. * Makefile.am: Eliminate vfspthreadConf.sh. * vfscorbaConf.sh.in: Remove. * vfspthreadConf.sh.in: Remove. * devel-docs/.cvsignore: Remove since this is now an empty directory. * devel-docs/gnome-vfs/.cvsignore: Remove since this is now an empty directory. * libgnomevfs/gnome-vfs-ops.h: Add include of gnome-vfs-types.h so you can include this header on its own. 2001-06-25 Sri Ramkrishna Rolled changes from HEAD. * libgnomevfs/gnome-vfs-application-registry.c: Added gtkdocs for gnome_vfs_application_registry_* 2001-06-20 Peter Williams * configure.in (autodetected_gnome_2): Fix a syntax error in the test expression. 2001-06-19 Peter Williams * gnome-vfs-2.0.pc.in (prefix): Fix totally broken prefix=/gnome/head/INSTALL. Whoops. 2001-06-15 Havoc Pennington * modules/gconf-method.c (do_get_file_info): fix one mem leak and one use of uninitialized memory. (do_open_directory): compensate for GConf's list-absolute-paths-in-directories braindamage 2001-06-15 Martin Baulig If we ever need to revert this (for instance, when GConf is fixed for GNOME 2), the patch is at http://cip.uni-trier.de/baulig/misc/gnome-vfs.optional-gconf.patch. * configure.in: Made the GConf dependency optional. At least temporarily, we need to make GConf optional in the GNOME 2.0 core libraries as it blocks testing on a GNOME 1.x desktop. (HAVE_GCONF): New automake conditional. * libgnomevfs/gnome-vfs-mime-handlers.c (get_user_level): Always return "novice" if we don't HAVE_GCONF. * modules/Makefile.am: Only compile the gconf and http modules if we HAVE_GCONF. * modules/ftp-method.c (vfs_module_init): Don't initialize GConf if we don't have it. 2001-06-11 Carlos Perelló Marín * modules/cdda-method.c: Fixed to compile with Gtk 2.0 2001-06-10 Ian McKellar * libgnomevfs/gnome-vfs-standard-callbacks.h: Initial work to add a status-message callback. * libgnomevfs/gnome-vfs-uri.c: (is_uri_relative), (remove_internal_relative_components), (make_full_uri_from_relative), (gnome_vfs_uri_relative_new): * libgnomevfs/gnome-vfs-uri.h: Added gnome_vfs_uri_relative_new which does relative URI resolution. * modules/Makefile.am: * modules/default-modules.conf: * modules/ssh-method.c: (ssh_connect), (ssh_destroy), (ssh_read), (ssh_write), (ssh_escape), (ssh_send), (do_open), (do_create), (do_close), (do_read), (do_write), (do_open_directory), (do_close_directory), (do_read_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_is_local), (vfs_module_init), (vfs_module_shutdown): * modules/ssh-method.h: Added ssl-method. Its currently quite primitive and only works if you don't need password authentication (ie: you are running ssh-agent and have your key in the remote machine's authorized keys) * modules/ssl-modules.conf: I forgot to upload this before :( Thanks Robin. * test/test-callback.c: (main): Allow the test URI to be specified. 2001-06-07 Robin * Slomkowski * modules/ssl-modules.conf: created this so the build would work. 2001-06-06 Glynn Foster * libgnomevfs/gnome-vfs-directory.c: gnome_vfs_directory_list_load (..) Add a petty code comment so that people looking at the API's don't have to root around the code trying to figure what is returned in the GList 2001-06-06 Seth Nickell * doc/about.sgml: * doc/tmpl/gnome-vfs-unused.sgml: ... thanks Havoc. 2001-06-03 Maciej Stachowiak * libgnomevfs/gnome-vfs-socket-buffer.h, libgnomevfs/gnome-vfs-socket-buffer.c (buffer_init, gnome_vfs_socket_buffer_new, gnome_vfs_socket_buffer_destroy, refill_input_buffer, gnome_vfs_socket_buffer_read, gnome_vfs_socket_buffer_peekc, flush, gnome_vfs_socket_buffer_write, gnome_vfs_socket_buffer_flush): Completed reverse-engineering. * libgnomevfs/gnome-vfs-socket.h, libgnomevfs/gnome-vfs-socket.c (gnome_vfs_socket_write, (gnome_vfs_socket_read: Related cleanups. * modules/http-method.c (xmit_request, http_handle_close): Style fixes. 2001-06-03 Maciej Stachowiak * libgnomevfs/gnome-vfs-socket.h, libgnomevfs/gnome-vfs-socket.c (gnome_vfs_socket_new, gnome_vfs_socket_write, gnome_vfs_socket_close, gnome_vfs_socket_read): Continued Seth's reverse-engineering of the missing pieces of Ian's SSL code. * libgnomevfs/gnome-vfs-inet-connection.c (gnome_vfs_inet_connection_destroy, gnome_vfs_inet_connection_close): Minor tweaks. * libgnomevfs/gnome-vfs-ssl.c (gnome_vfs_ssl_destroy): Likewise. * ABOUT-NLS: Removed (this is added by autogen). 2001-06-03 Seth Nickell * doc/Makefile.am: * doc/gnome-vfs-docs.sgml: * doc/gnome-vfs-sections.txt: * doc/tmpl/uri.sgml: * doc/writing-modules.sgml: Start writing more "tutorial like" documentation for basic I/O operations. * libgnomevfs/gnome-vfs-socket-buffer.c: (gnome_vfs_socket_buffer_new), (gnome_vfs_socket_buffer_read), (gnome_vfs_socket_buffer_peekc), (gnome_vfs_socket_buffer_write), (gnome_vfs_socket_buffer_flush), (gnome_vfs_socket_buffer_destroy): * libgnomevfs/gnome-vfs-socket-buffer.h: * libgnomevfs/gnome-vfs-socket.c: (gnome_vfs_socket_write), (gnome_vfs_socket_close), (gnome_vfs_socket_read): * libgnomevfs/gnome-vfs-socket.h: Write skeletons for functions to get http-method to compile. ***WARNING*** - http is probably broken at this point!!! 2001-06-02 Seth Nickell * doc/gnome-vfs-docs.sgml: * doc/gnome-vfs-sections.txt: * doc/tmpl/directory.sgml: * doc/tmpl/find-directory.sgml: * doc/tmpl/gnome-vfs-unused.sgml: * doc/tmpl/ssl.sgml: * doc/tmpl/types.sgml: * doc/tmpl/uri.sgml: Add some more descrptions, shuffle functions around between files to reduce the number of sections. * libgnomevfs/gnome-vfs-constants.h: Move the four constants contained in this file to gnome-vfs-uri.h (which is a better home anyway) and remove the file. * libgnomevfs/gnome-vfs-uri.h: Move some constants here from gnome-vfs-constants.h * libgnomevfs/gnome-vfs.h: * libgnomevfs/gnome-vfs-private-utils.c: * libgnomevfs/Makefile.am: Change includes and build to remove gnome-vfs-constants.h. 2001-06-02 Seth Nickell * libgnomevfs/gnome-vfs-socket-buffer.c: * libgnomevfs/gnome-vfs-socket-buffer.h: * libgnomevfs/gnome-vfs-socket-private.h: * libgnomevfs/gnome-vfs-socket.c: (gnome_vfs_socket_new): * libgnomevfs/gnome-vfs-socket.h: I think Ian forgot these in his checkin. WARNING!!! These are not the actual files but skeleton with enough declarations to get GnomeVFS compiling again. Must get the real things checked in :-) 2001-06-01 Seth Nickell * configure.in: Removed cruft directories. 2001-05-31 Ian McKellar * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-inet-connection.c: (gnome_vfs_inet_connection_create), (gnome_vfs_inet_connection_get_iobuf), (gnome_vfs_inet_connection_get_fd), (gnome_vfs_inet_connection_read), (gnome_vfs_inet_connection_write), (gnome_vfs_inet_connection_to_socket): * libgnomevfs/gnome-vfs-inet-connection.h: * libgnomevfs/gnome-vfs-iobuf.c: (gnome_vfs_iobuf_flush): * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-ssl.c: (gnome_vfs_ssl_create), (gnome_vfs_ssl_create_from_fd), (gnome_vfs_ssl_write), (gnome_vfs_ssl_destroy), (gnome_vfs_ssl_to_socket): * libgnomevfs/gnome-vfs-ssl.h: * libgnomevfs/gnome-vfs-types.h: * modules/Makefile.am: * modules/file-method.c: (do_read): * modules/http-method.c: (http_file_handle_new), (get_header), (create_handle), (https_proxy), (connect_to_uri), (xmit_request), (make_request), (http_handle_close), (do_open), (do_read), (propfind_href_to_vfs_uri), (do_open_directory): * test/test-ssl.c: (show_result), (main): Added SSL and HTTPS support. 2001-05-31 Robin * Slomkowski * gnome-vfs.spec.in:removed html/*.txt line as it doesn't seem to get populated. 2001-05-30 Seth Nickell * devel-docs/gnome-vfs/tmpl/libgnome-vfs.sgml: Get a stray file that missed the delet. 2001-05-30 Seth Nickell * devel-docs/Makefile.am: * devel-docs/gnome-vfs/Makefile.am: * devel-docs/gnome-vfs/gnome-vfs-docs.sgml: * devel-docs/gnome-vfs/gnome-vfs-sections.txt: * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime-info.sgml: * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime.sgml: Nix the duplicate api docs since we've been actively working on doc/ instead. 2001-05-30 Seth Nickell * doc/gnome-vfs-docs.sgml: Start organizing higher level documentation structure and preparing sections on the most common parts application developers will have to use. Hopefully at this point somebody could use the docs as an API reference to the POSIX like synchronous calls. * doc/tmpl/application-registry.sgml: * doc/tmpl/async-ops.sgml: * doc/tmpl/directory.sgml: * doc/tmpl/find-directory.sgml: * doc/tmpl/mime-handlers.sgml: * doc/tmpl/mime-magic.sgml: * doc/tmpl/mime-sniff-buffer.sgml: * doc/tmpl/mime.sgml: * doc/tmpl/ops.sgml: * doc/tmpl/result.sgml: * doc/tmpl/types.sgml: * doc/tmpl/uri.sgml: * doc/tmpl/utils.sgml: * doc/tmpl/xfer.sgml: Write descriptions, titles, and short descriptions as well as perform some re-organization of the documentation. 2001-05-28 Seth Nickell * doc/gnome-vfs-docs.sgml: Fix entities so all subcategories are generated, and in alphabetical order. * doc/tmpl/mime-handlers.sgml: Add a better title (yah, whatever). Mon May 28 15:49:55 2001 Jonathan Blandford * doc/gnome-vfs-docs.sgml: fix case problem. 2001-05-27 Seth Nickell * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime-info.sgml: * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime.sgml: * doc/tmpl/gnome-vfs-unused.sgml: * doc/tmpl/list-sort.sgml: * doc/tmpl/mime-handlers.sgml: gtk-doc apparently wants to change these files from its auto-scans (found some new functions). Owen thinks I should just check in the changes. I don't know gtk-doc procedure, so I'm trusting his judgement. * libgnomevfs/gnome-vfs-mime-handlers.c: Documented all public functions. * libgnomevfs/gnome-vfs-mime-handlers.h: Changed some arguments to match their name/usage within the corresponding declarations within gnome-vfs-mime-handlers.c. 2001-05-27 Maciej Stachowiak reviewed by: Seth Nickell * modules/http-method.c (parse_status): Handle technically invalid http replies from ShoutCast and IceCast. 2001-05-25 Seth Nickell * HACKING: Fix typos, bring it up-to-date. * TODO: Started a preliminary GnomeVFS 2.0 TODO list. Removed some crufty TODO items. 2001-05-23 Robin * Slomkowski * data/mime/gnome-vfs.keys.in: changed non-ascii mu to "mu" * po/ChangeLog: * po/az.po: * po/ca.po: * po/da.po: * po/de.po: * po/el.po: * po/es.po: * po/fi.po: * po/fr.po: * po/ga.po: * po/gl.po: * po/hu.po: * po/it.po: * po/ja.po: * po/ko.po: * po/lt.po: * po/nl.po: * po/nn.po: * po/no.po: * po/pl.po: * po/pt_BR.po: * po/ro.po: * po/ru.po: * po/sk.po: * po/sl.po: * po/sv.po: * po/tr.po: * po/uk.po: * po/wa.po: changed non-ascii mu to "mu" in the msgid 2001-05-23 Chema Celorio * autogen.sh (PKG_NAME): typo 2001-05-17 Robin * Slomkowski * libgnomevfs/gnome-vfs-private.h: removed #include for gnome-vfs-list-sort.h 2001-05-17 Robin * Slomkowski * doc/Makefile.am: (dist-hook): checked for the existence of dirs before creating them. (dist-hook-local): commented out this whole section as it broke make dist as there are no TEXT dirs. 2001-05-17 Jonathan Blandford * configure.in: * Makefile.am: * docs/*/*: Initial support for gtk-doc documentation. 2001-05-17 Darin Adler * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-list-sort.c: * libgnomevfs/gnome-vfs-list-sort.h: Removed the unused gnome_vfs_list_sort function. The good news is that glib 2 has this same function (g_list_sort_with_data). * test/.cvsignore: Ignore the new test-ssl test program. 2001-05-14 Ian McKellar * libgnomevfs/Makefile.am: Build fix. 2001-05-14 Ian McKellar * README.SSL: * acconfig.h: * configure.in: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init): * libgnomevfs/gnome-vfs-ssl-private.h: * libgnomevfs/gnome-vfs-ssl.c: (gnome_vfs_ssl_init), (gnome_vfs_ssl_enabled), (gnome_vfs_ssl_new), (gnome_vfs_ssl_new_from_uri), (gnome_vfs_ssl_read), (gnome_vfs_ssl_write), (gnome_vfs_ssl_destroy): * libgnomevfs/gnome-vfs-ssl.h: Added an OpenSSL based SSL abstraction to gnome-vfs. This is so that modules (particularly the http module) will be able to implement SSL support. * test/Makefile.am: * test/test-ssl.c: (show_result), (main): Added a very simple test program for the SSL routines. 2001-05-16 Michael K. Fleming gnome_vfs_app_context_get_current was not addref'ing the context it returned if it had to create a default context. This caused crashes in async operations in apps that do not use the app context mechanism. * libgnomevfs/gnome-vfs-app-context.c: (gnome_vfs_app_context_peek_current_internal), (gnome_vfs_app_context_peek_current), (gnome_vfs_app_context_get_current): 2001-05-16 Darin Adler * libgnomevfs/gnome-vfs-app-context.c: (gnome_vfs_app_context_unref): Fix double-free. 2001-05-15 Maciej Stachowiak * libgnomevfs-pthread/gnome-vfs-async-ops.c, libgnomevfs/gnome-vfs-app-context.c, libgnomevfs/gnome-vfs-app-context.h, libgnomevfs/gnome-vfs-init.c, libgnomevfs/gnome-vfs-module-api.h, modules/http-authn.h, test/test-ssl.c: Add trailing newlines to files that didn't have them, and include headers needed to compile on my system. 2001-05-14 Michael K. Fleming reviewed by: Ian McKellar GnomeVFSAppContext and GnomeVFSCallback implementation. Allows application to register for module-defined synchronous callbacks. * libgnomevfs-pthread/gnome-vfs-async-job-map.c: (gnome_vfs_async_job_add_callback): * libgnomevfs-pthread/gnome-vfs-async-ops.c: * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_callback_callback), (dispatch_sync_job_callback), (gnome_vfs_job_execute), (gnome_vfs_job_module_cancel), (set_current_job), (clear_current_job), (pthread_gnome_vfs_get_current_context), (pthread_gnome_vfs_dispatch_callback): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-app-context.c: * libgnomevfs/gnome-vfs-app-context.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend-private.h: * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_backend_get_current_context), (gnome_vfs_backend_dispatch_callback): * libgnomevfs/gnome-vfs-cancellation.c: (gnome_vfs_cancellation_cancel): * libgnomevfs/gnome-vfs-context.c: (gnome_vfs_context_new), (gnome_vfs_context_ref), (gnome_vfs_context_unref), (gnome_vfs_context_get_cancellation), (gnome_vfs_context_peek_current), (gnome_vfs_context_check_cancellation_current), (gnome_vfs_context_peek_app_context), (gnome_vfs_context_peek_app_context_current): * libgnomevfs/gnome-vfs-context.h: * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init), (gnome_vfs_is_primary_thread): * libgnomevfs/gnome-vfs-messages.c: * libgnomevfs/gnome-vfs-messages.h: * libgnomevfs/gnome-vfs-module-api.h: * libgnomevfs/gnome-vfs-module-shared.h: * libgnomevfs/gnome-vfs-private.h: * libgnomevfs/gnome-vfs-standard-callbacks.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-utils.h: * modules/Makefile.am: * modules/http-authn.c: * modules/http-authn.h: * modules/http-cache.c: * modules/http-cache.h: * modules/http-method.c: * modules/http-method.h: Split http module into 3 files; implemented basic and proxy authentication callbacks and a simple authentication jar. * test/.cvsignore: * test/Makefile.am: * test/test-callback.c: (authn_callback), (app_context_destroy_notify), (open_callback), (close_callback), (stop_after_log), (make_asserts_break), (main): * test/test-module-selftest.c: (stop_after_log), (make_asserts_break), (main): 2001-05-13 Maciej Stachowiak * modules/http-method.c: Cleaned up formatting, minor style issues; fixed a bug in `do_check_same_fs'. 2001-05-12 Maciej Stachowiak * devel-docs/gnome-vfs/Makefile.am: Fix build for people who don't have gtk-doc installed. 2001-05-09 Darin Adler * libgnomevfs-pthread/gnome-vfs-job.h: Added dummy member to avoid having an empty struct. 2001-05-08 Ian McKellar * devel-docs/gnome-vfs/Makefile.am: * devel-docs/gnome-vfs/gnome-vfs-decl.txt: * devel-docs/gnome-vfs/gnome-vfs-docs.sgml: * devel-docs/gnome-vfs/gnome-vfs-sections.txt: Told gtkdoc to pick up (almost) all the header files. * libgnomevfs/gnome-vfs-process.h: Made some changes to make gtkdoc happy. ==== gnome-vfs 1.0.1 ==== 2001-05-07 Darin Adler reviewed by: Ramiro Estrugo * modules/Makefile.am: * po/POTFILES.in: Removed some dead code and fixed build so that CDDA module source files are included in the tarball even if it's made on a system without CDDA installed. 2001-05-07 Darin Adler * libgnomevfs/gnome-vfs-mime-info.c: (write_back_mime_user_file): Remove message that threatens users with death. 2001-05-03 John Sullivan reviewed by: Darin Adler Fixed bug 8240 (Help document viewing is broken) * modules/pipe-method.c: (do_open): Added more characters to the "safe characters" set. 2001-05-02 Ian McKellar reviewed by: Darin Adler * modules/pipe-method.c: (do_open): Only pass known safe characters to popen. 2001-05-02 Ramiro Estrugo * configure.in: Cant use pkgconfig for detecting libxml unless we are sure that the libxml we are using exports libxml.pc. Currently gnome-vfs/nautilus hackers use libxml 1.8.10 which doesnt export libxml.pc. Do the libxml check the "old fashioned" way for now. 2001-05-01 Darin Adler Fixes to make documentation work again after the "pipe" method fix. * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-uri.c: (set_uri_element): Add more methods to the list that are allowed to have ? characters in them. This is required to make help work right now that we don't translate so early. I'm starting to think it should be "file" that's special cased. (gnome_vfs_uri_new): Allow transformation. (gnome_vfs_uri_new_private): Add a flag to control whether transformation can happen. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_make_uri_canonical): Don't do any transformation. * modules/translate-method.c: (tr_handle_exec), (tr_uri_translate): Allow transformation. 2001-05-01 Darin Adler reviewed by: Mike Fleming Plugged the security hole created by the "pipe" method. It's now only allowed indirectly through the translate method. * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): Don't allow unsafe URIs. (gnome_vfs_uri_new_private): Take a parameter which determines if unsafe URIs are allowed, and don't allow any "pipe" URIs unless unsafe ones are explicitly allowed. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_make_uri_canonical): Allow unsafe URIs. * modules/translate-method.c: (tr_handle_exec), (tr_uri_translate): Call gnome_vfs_uri_new_private so that the result of a translate is allowed to be an unsafe URI. * libgnomevfs/gnome-vfs-mime-info.c: (does_string_contain_caps): Renamed from does_string_contains_caps. * test/test-uri.c: (main): Updated tests affected by the fact that gnome_vfs_uri_new won't accept "pipe" URIs any more. * doc/mime-data-specification.txt: Remove trailing keys. 2001-05-01 Seth Nickell * test/mime-test-files/somepage.php: * test/mime-test-files/ Add a directory for placing files for doing checks on how GnomeVFS recognizes their MIME type. Fri Apr 27 13:32:32 2001 Jonathan Blandford * libgnomevfs/gnome-vfs-configuration.c (gnome_vfs_configuration_init): load from GNOME_VFS_MODULE_CFGDIR, and ~/.gnome/vfs/modules. (configuration_load): Change behaviour to not create the configuration anymore, but just load it. (maybe_reload): potentially reload the config files if they change. 2001-04-25 Darin Adler * check-mime.pl: Check that the applications file entries are in alphabetical order. 2001-04-25 Darin Adler reviewed by: Pavel Cisler * modules/file-method.c: (get_stat_info): Fix bug where it would return GNOME_VFS_NOT_FOUND for broken links, even though it went to the trouble of handling them properly. 2001-04-17 Darin Adler * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_local_path_from_uri): Loosen rule so that URLs that say "file:/etc/passwd" will be accepted. * test/test-uri.c: (main): Update test to match. 2001-04-14 Dan Winship * libgnomevfs/gnome-vfs-mime-info.c (get_value_real): Plug a memory leak. * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_short_list_applications): Ditto. 2001-04-14 Maciej Stachowiak * modules/translate-method.c (tr_uri_translate): Be less tricky so that translate patterns that include a hostname, port, user, etc will work properly. 2001-04-13 Darin Adler * gnome-vfs.spec.in: Remove the slave program from the spec file, now that we don't use it any more. 2001-04-13 Darin Adler * configure.in: Missed Makefile list. 2001-04-13 Darin Adler * acconfig.h: * configure.in: Eliminate --disable-libefs, --with-default-backend, and GNOME_VFS_DEFAULT_BACKEND. * libgnomevfs/gnome-vfs-xfer.c: (init_progress): Initialize the file index to 0, since we now increment before each item. (at_end): Helper function. (call_progress_often_internal): Shared code for the two "often" versions of the call_progress function. The only change is to always send out progress once at the end. (call_progress_often), (call_progress_with_uris_often): Use new function to share most of the code. (remove_file): Bump the file index before dealing with the file. (remove_directory): Bump the file index before dealing with the directory. (copy_file): Don't bump the file index, because that's now the caller's responsibility. (copy_directory): Don't bump the file index for the directory itself, because that's now the caller's responsibility, but do bump the file index before calling copy_file, copy_directory, or copy_symlink. (copy_items): Bump the file index before calling copy_file, copy_directory, or copy_symlink. (gnome_vfs_xfer_uri_internal): Reset the file index to 0, since we now increment before each item. * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-mime.c: Removed gnome_uri functions that were in here without gnome_vfs-prefixed names. No one was using these versions. * Makefile.am: * libgnomevfs-corba/.cvsignore: * libgnomevfs-corba/Makefile.am: * libgnomevfs-corba/gnome-vfs-async-ops.c: * libgnomevfs-corba/gnome-vfs-corba.c: * libgnomevfs-corba/gnome-vfs-corba.h: * libgnomevfs-corba/gnome-vfs-slave-launch.c: * libgnomevfs-corba/gnome-vfs-slave-launch.h: * libgnomevfs-corba/gnome-vfs-slave-notify.c: * libgnomevfs-corba/gnome-vfs-slave-notify.h: * libgnomevfs-corba/gnome-vfs-slave-process.c: * libgnomevfs-corba/gnome-vfs-slave-process.h: * libgnomevfs-corba/gnome-vfs-slave.c: Remove CORBA back end. * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_backend_loadinit): Hard-code "pthread" instead of using GNOME_VFS_DEFAULT_BACKEND. Soon we might get rid of the separate backend completely. * test/.cvsignore: * test/Makefile.am: Remove special cases for tests that used to run on both back ends, and make them build in a normal simple way instead. * mime-type-capplet/.cvsignore: * mime-type-capplet/Makefile.am: * mime-type-capplet/file-types-capplet.desktop.in: * mime-type-capplet/libuuid/.cvsignore: * mime-type-capplet/libuuid/Makefile.am: * mime-type-capplet/libuuid/clear.c: * mime-type-capplet/libuuid/compare.c: * mime-type-capplet/libuuid/copy.c: * mime-type-capplet/libuuid/gen_uuid.c: * mime-type-capplet/libuuid/gen_uuid_nt.c: * mime-type-capplet/libuuid/isnull.c: * mime-type-capplet/libuuid/pack.c: * mime-type-capplet/libuuid/parse.c: * mime-type-capplet/libuuid/tst_uuid.c: * mime-type-capplet/libuuid/unpack.c: * mime-type-capplet/libuuid/unparse.c: * mime-type-capplet/libuuid/uuid.h: * mime-type-capplet/libuuid/uuidP.h: * mime-type-capplet/libuuid/uuid_time.c: * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: * mime-type-capplet/nautilus-mime-type-capplet-dialogs.h: * mime-type-capplet/nautilus-mime-type-capplet.c: * mime-type-capplet/nautilus-mime-type-capplet.h: * mime-type-capplet/nautilus-mime-type-icon-entry.c: * mime-type-capplet/nautilus-mime-type-icon-entry.h: Remove this code. It's already been moved to the control center and we don't need to keep two copies of it. * test/gnome-file-selection/.cvsignore: * test/gnome-file-selection/Makefile.am: * test/gnome-file-selection/dir-close.xpm: * test/gnome-file-selection/dir-open.xpm: * test/gnome-file-selection/gicon.c: * test/gnome-file-selection/gicon.h: * test/gnome-file-selection/gnome-file-selection-history.c: * test/gnome-file-selection/gnome-file-selection-history.h: * test/gnome-file-selection/gnome-file-selection.c: * test/gnome-file-selection/gnome-file-selection.h: * test/gnome-file-selection/listing-iconic.xpm: * test/gnome-file-selection/main.c: Remove the file selector (which was not compiled). This is now being developed elsewhere. * po/POTFILES.in: Remove file names from CORBA back end and file selector. * libgnomevfs/gnome-vfs-private-types.h: Fix includes. * libgnomevfs/gnome-vfs-private-utils.c: Fix includes. * libgnomevfs/gnome-vfs-private-utils.h: Fix includes. * libgnomevfs/gnome-vfs-process.c: Fix includes. * NEWS: Remove long-obsolete news. * README: Update. * TODO: Tweak words a bit. * libgnomevfs/Makefile.am: Tweaks. 2001-04-12 Darin Adler * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Fix bug where it file indices start from 1 during the preflight but from 0 during the actual copy. 2001-03-30 Michael K. Fleming reviewed by: Pavel Cisler Portion of bug 4832: Add support for HTTP proxies that require authentication. Note that if an HTTP proxy is set, but the proxy credentials are configured incorrectly, the application will get a GNOME_VFS_ERROR_ACCESS_DENIED, which isn't very descriptive Also expunged some of my bad coding habits (constant-on-left-side-of-compare) * modules/http-method.c: (cache_shutdown), (cache_entry_new), (cache_check_directory), (cache_add_uri_and_children), (sig_gconf_value_changed), (http_proxy_for_host_port), (make_request), (vfs_module_init): 2001-03-29 Darin Adler reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_move_uri_cancellable): Make a move where both the from and to are identical succeed without involving the module. * libgnomevfs/gnome-vfs-xfer.c: (handle_name_conflicts): Don't treat a file that's being moved on top of itself as a conflict. 2001-03-24 Martin Baulig * gnomevfs-2.0.pc.in: Renamed to gnome-vfs-2.0.pc.in. 2001-03-24 Martin Baulig * modules/file-method.c: Only #include and for GNOME 1.x. Define `_' and `N_' to be a noop for GNOME 2.0 [FIXME: need a better solution for this]. * libgnomevfs-corba/*.[ch]: #include for GNOME 1.x and for GNOME 2.0. 2001-03-24 Martin Baulig * autogen.sh: Check whether gnome-autogen.sh is in the PATH and print an error message otherwise. * configure.in: Unconditionally require OAF on both platforms; for GNOME 2.0: check for GTK+, but don't check for ORBit. 2001-03-23 Martin Baulig Added support for the GNOME 2.0 platform. We try to autodetect the GNOME Platform in configure.in, but you may need to use the --enable-platform-gnome-2 or --disable-platform-gnome-2 argument if this fails. * autogen.sh: Use gnome-common. * configure.in: Use pkg-config to check for things; removed the USING_OAF conditional. * Makefile.am: Removed the USING_OAF conditional. * libgnomevfs/gnome-vfs-i18n.c: New file. (gnome_vfs_i18n_get_language_list): Moved the implementation of this function from gnome-libs/libgnome/gnome-i18n.c here. * libgnomevfs/gnome-vfs-private-utils.c (gnome_vfs_i18n_get_language_list): Moved to gnome-vfs-i18n.c. 2001-03-23 Darin Adler * test/test-uri.c: (main): Added some tests to demonstrate behavior when a URI starting with "." or ".." is passed to gnome_vfs_uri_new. 2001-03-22 Pavel Cisler reviewed by: Darin Adler * modules/file-method.c: (get_stat_info): Fix a bug that caused symlink_name to never be read. Add support for retrieving the symlink_name for a multi-level symlink. 2001-03-17 Gene Z. Ragan * modules/Makefile.am: I am clueless. Maybe adding this header file to the list of files in the cdda module listing will fix the build. 2001-03-17 Gene Z. Ragan * modules/Makefile.am: Another attempt to fix tinderbox. 2001-03-16 Gene Z. Ragan * configure.in: Another try to get this right. Check for the presence of the cdparanoia headers instead of the library. The use of an underscore in the library name seems to confuse the AM_CHECK_LIB macro. 2001-03-15 Gene Z. Ragan * configure.in: Fix tinderbox breakage. This is what happens when I pretend to be a build engineer. * modules/cdda-method.c: (do_open), (do_close), (do_get_file_info), (do_close_directory): Removed some debug messages. 2001-03-15 Gene Z. Ragan * modules/cdda-cddb.c: Added a workaround for the strangely defined, but unused, static arrays of chars in cdparanoia headers that causes a compiler error due to our strict error checking. 2001-03-15 Gene Z. Ragan * modules/cdda-module.conf: Add new cdda configuration file to build. 2001-03-15 Gene Z. Ragan * configure.in: * modules/Makefile.am: * modules/cdda-cddb.c: * modules/cdda-method.c: (cdda_context_new): * modules/default-modules.conf: Add cdda module to build using configure conditionals that depend on the presence of libcdparanoia. 2001-03-15 John Sullivan reviewed by: Darin Adler * libgnomevfs/gnome-vfs-types.h: Reverted this part of my eralier checkin after Darin convinced me that the change I made here could actually make things worse. Added a FIXME about how it should be changed later. 2001-03-14 Pavel Cisler Fix 7339: (dragging file inside ftp window causes "replace self" dialog to appear) * libgnomevfs/gnome-vfs-uri.c: (uri_matches_as_parent), (gnome_vfs_uri_is_parent): Fix a problem where ftp://foo.com and ftp://foo.com/ were not both considered the parent of ftp://foo.com/bar * test/test-uri.c: (test_uri_is_parent_common), (test_uri_is_parent_deep), (test_uri_is_parent_shallow), (main): Add tests for the above change. * test/test-find-directory.c: (main): Add some error handling. * libgnomevfs-pthread/gnome-vfs-job.c: (job_notify), (gnome_vfs_job_set), (gnome_vfs_op_destroy): Add some asserts and fix some debugging messages. 2001-03-14 John Sullivan reviewed by: Pavel Cisler Fixed bug 3337 (Sticky bit doesn't display correctly) * libgnomevfs/gnome-vfs-types.h: Set the sticky bit mask to 0 if S_ISVTX isn't defined, so we don't stomp on other unknown uses of this bit. * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_stat_to_file_info): Use GNOME_VFS style constants; #define _BSD_SOURCE so the sticky bit is defined. 2001-03-07 Maciej Stachowiak reviewed by: Robin Slomkowski * gnome-vfs-config.in: Tweak so output is 1.1, not gnome-vfs-1.1 to be consistent with other -config scripts and stop confusing control-center's configure; fixes tinderbox. 2001-03-07 Maciej Stachowiak * gnome-vfs.spec.in: Add gnome-vfs-config to silence tinderbox. 2001-03-07 Darin Adler * gnome-vfs.spec.in: Remove file-types-capplet too. 2001-03-07 Maciej Stachowiak reviewed by: Darin Adler Gene Z. Ragan Part of the fix for bugzilla.eazel.com bug 588 (Remove old "MIME types" capplet from control center) * Makefile.am: Remove mime-type-capplet subdir. * configure.in: Don't create mime-type-capplet Makefiles or check for control-center. * gnome-vfs.spec.in: remove control-center dependency. * mime-type-capplet/*: removed. * po/POTFILES.in: Remove mime-type-capplet files 2001-03-07 Pavel Cisler reviewed by: Darin Adler (reluctantly) Fixed 7495 (Need to test condition after pthread_cond_wait) * libgnomevfs-pthread/gnome-vfs-thread-pool.c: (gnome_vfs_thread_pool_wait_for_work), (thread_entry): Work around what is described as a spurious wakeup of condition variables in the Pthread standard. Added a while loop around pthread_cond_wait checking if an entry_point is lined up. 2001-03-06 Darin Adler * configure.in: Updated version number to 1.1. 2001-03-06 Darin Adler Created the gnome-vfs-1-0 branch, for 1.0 development. HEAD is now for post-1.0. 2001-03-06 Darin Adler Merged all changes back here from the gnome-vfs-1 branch. === start of changes from gnome-vfs-1 branch === 2001-03-04 Dan Winship reviewed by: Maciej Stachowiak * mime-type-capplet/libuuid/Makefile.am (NULL): Remove "SUBDIRS=" line, which causes automake (1.4 at least) to generate a Makefile containing invalid sh script that bash (2.03.0(1) at least) won't parse. 2001-03-04 Ramiro Estrugo reviewed by: Pavel Cisler * data/mime/gnome-vfs-mime-magic: Make Postscript Fonts magic work for all fonts versioned 1.x, not just 1.0. 2001-03-04 Pavel Cisler reviewed by: Darin Adler Fixed 7333: leak in gnome_vfs_mime_get_default_component * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component): Fix a leak by adding a missing gnome_vfs_mime_component_list_free. 2001-02-28 Maciej Stachowiak reviewed by: Darin Adler * Makefile.am, configure.in: Include macros dir in dist tarball for the benefit of those building the module with --enable-maintainer-mode 2001-03-02 Eric Fischer reviewed by: Gregory Leblanc * configure.in: Add version-checking macros from nautilus's configure.in Add check for control-center version number Parameterize checks for glib, oaf, gconf * gnome-vfs.spec.in: Substitute prerequisite version numbers from configure script 2001-03-01 Don Melton reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (get_mp3_frame_length), (get_4_byte_value), (gnome_vfs_sniff_buffer_looks_like_mp3): Re-fixed bug 6612 (Non-music files misidentified as MP3) Fixed bug 7212 (".sys" file misidentified as MP3) Fixed bug 7213 (".ico" file misidentified as MP3) Fixed bug 7214 (".1st" file misidentified as MP3) Rewrote "gnome_vfs_sniff_buffer_looks_like_mp3" to narrow MP3 sniffing to streams containing AT LEAST TWO frames of layer 3 MPEG audio. Note: free format and MPEG version 2.5 MP3s are ignored, Removed the hack to ignore StarOffice and Microsoft Office files which contain seemingly valid (but totally false) MPEG audio headers starting 68 bytes into the file, because the new sniffing code makes this unnecessary. 2001-03-01 Gene Z. Ragan reviewed by: Mike Engber Fixed bug 6964, gtv not associated with video/mpeg * data/mime/gnome-vfs.applications: * data/mime/gnome-vfs.keys.in: Add gtv to the short list of applications for type video/mpeg. 2001-03-01 Rebecca Schulman reviewed by: Robin Slomkowski * gnome-vfs.spec.in: Attempt to fix tinderbox -- install the moved desktop file to the new location in the spec file too. 2001-03-01 Mike Fleming reviewed by: Bug 7192: split_toplevel_uri now allows URI's with a username but no hostname in the authority field. In the future, we should figure out how to avoid having split_toplevel_uri involved with made-up URI schemes like eazel-install: * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): * test/test-uri.c: (main): 2001-03-01 Gene Z. Ragan reviewed by: Pavel Cisler * mime-type-capplet/Makefile.am: The capplet .desktop should be copied to the Documents directory of the control-center .desktop files directory, not the root level. 2001-02-28 Andy Hertzfeld * data/mime/gnome-vfs.keys.in: fixed bug 7179, lots of text files are missing their embedded text; fixed by deleting the icon-filename entry for around a dozen types. 2001-02-28 Eric Fischer reviewed by: Robin * Slomkowski * gnome-vfs.spec.in: (Bug 7166) Add dependency for control-center 1.2.3, because the mime-type capplet will crash without the latest version. I think this can go away once the capplet gets moved into control-center where it belongs, but it's necessary for the moment. 2001-02-28 Darin Adler Moved the ChangeLog entries into data/mime/ChangeLog. 2001-02-27 Pavel Cisler reviewed by: Gene Z. Ragan * modules/file-method.c: (do_find_directory): Fix a bug where calling gnome_vfs_find_directory near a cross-file system symlink would return Trash corresponding to the link target not the link itself, causing an error when trying to delete the link. 2001-02-27 Josh Barrow * AUTHORS: s/helixcode/ximian/ 2001-02-27 Pavel Cisler * AUTHORS: * HACKING: * NEWS: Getting these ready for a release. 2001-02-27 Maciej Stachowiak another unreviewed change to fix tinderox * mime-type-capplet/Makefile.am: Install .desktop file in both the places the .spec file expects it. Not sure if it was removed intentionally or not. 2001-02-27 Maciej Stachowiak unreviewed change to fix tinderox * mime-type-capplet/Makefile.am: Add .desktop.in file to EXTRA_DIST. 2001-02-27 Maciej Stachowiak reviewed by: Kjartan Maraas * po/POTFILES.in: Remove entries spuriously added by xml-i18n-prepare 2001-02-26 Rebecca Schulman Fixed bugzilla.eazel.com bug 7010, that the file types capplet should use .desktop.in xml-i18-tools stuff. reviewed by: Maciej Stachowiak * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-mime.h: Add a FIXME and a comment about functions in this file; no code changes * mime-type-capplet/.cvsignore: Add file-types-capplet.desktop * mime-type-capplet/file-types-capplet.desktop.in: Add this with new nifty xml-18n technology * mime-type-capplet/file-types-capplet.desktop: Remove the old file * mime-type-capplet/Makefile.am: Fix the build to build and install the new desktop file instead of the old one 2001-02-26 Gene Z. Ragan reviewed by: Rebecca Schulman Forgot to add libuuid/Makefile * configure.in: 2001-02-26 Robin * Slomkowski * configure.in: upped version to 0.6.2.0 for development 2001-02-26 Robin * Slomkowski * configure.in: upped version to 0.6.2 for release 2001-02-26 Gene Z. Ragan reviewed by: Pavel Cisler Fixed bug 7039, User-entered application that matches built-in application can't be deleted Fixed bug 7040, User-entered application that matches built-in application doesn't go away when "all user changes" reverted Fixed bug 7064, New mime types added by user using the capplet do not appear when capplet is launched again. * mime-type-capplet/Makefile.am: Add libuuid to build. * mime-type-capplet/libuuid/Makefile.am: * mime-type-capplet/libuuid/clear.c: (uuid_clear): * mime-type-capplet/libuuid/compare.c: (uuid_compare): * mime-type-capplet/libuuid/copy.c: (uuid_copy): * mime-type-capplet/libuuid/gen_uuid.c: (get_random_bytes), (get_node_id), (get_clock), (uuid_generate_time), (uuid_generate_random), (uuid_generate): * mime-type-capplet/libuuid/gen_uuid_nt.c: (Nt5), (uuid_generate): * mime-type-capplet/libuuid/isnull.c: (uuid_is_null): * mime-type-capplet/libuuid/pack.c: (uuid_pack): * mime-type-capplet/libuuid/parse.c: (uuid_parse): * mime-type-capplet/libuuid/tst_uuid.c: (main): * mime-type-capplet/libuuid/unpack.c: (uuid_unpack): * mime-type-capplet/libuuid/unparse.c: (uuid_unparse): * mime-type-capplet/libuuid/uuid.h: * mime-type-capplet/libuuid/uuidP.h: * mime-type-capplet/libuuid/uuid_time.c: (uuid_time), (uuid_type), (uuid_variant), (variant_string), (main): Add libuuid to capplet and link statically. This is sort of sad. It would be nice if gnome had a uuid library, but at this time it does not. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): Call proper API to ensure that new mime type is added to the database. (add_or_update_application), (add_item_to_application_list), (run_edit_or_new_application_dialog): Create and assign a uuid to user defined application so that we never conflict with system defined types that use the application name as the application id. 2001-02-26 Darin Adler reviewed by: Ramiro Estrugo * check-mime.pl: Added more checks, including a check for unexpected keys, check for repeated keys, check for key format in .mime file, check for icon names mentioned against icon files, and code to make it communicate failure to the shell with "exit 1". 2001-02-25 John Sullivan reviewed by: Gene Ragan Fixed bug 6675 (Capplet allows user to add application for non-existent program (or not in path). * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (strdup_to), (is_executable_file), (executable_in_path), (get_executable_name_from_command_string), (gnome_vfs_is_executable_command_string): Moved code that tests for executable commands from -mime-handlers.c to here. Made gnome_vfs_is_executable_command_string public. Added FIXMEs and tweaked full-path handling code to work in more cases. * libgnomevfs/gnome-vfs-mime-handlers.c: (application_known_to_be_nonexistent): Replaced the code testing for executable commands with call to gnome_vfs_is_executable_command_string. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (initialize_edit_applications_dialog): Added FIXME. (handle_invalid_application_input): New function, handles bad name or command string with explanatory error message. (run_edit_or_new_application_dialog): New function, guts of both show_ and edit_new_application_window, which formerly had nearly identical copy/pasted code. Now doesn't close dialog if input is bad and user clicks OK; other minor cleanup. (show_new_application_window), (show_edit_application_window): Each of these now calls run_edit_or_new_application_dialog. * mime-type-capplet/nautilus-mime-type-capplet.c: (add_mime_clicked), (update_mime_list_action), (populate_mime_list): Added tests for missing icon files to avoid zillions of GTK-CRITICALs from gdk_pixbuf if you run the capplet without installing Nautilus firt (discovered during clean rebuild); fixed a couple of leaking strings. 2001-02-24 Marius Andreiana * configure.in: Added ro (Romanian) to ALL_LINGUAS. 2001-02-24 Gene Z. Ragan reviewed by: John Harper Fixed bug 6904, Full paths can't be used when adding applications in capplet (and failure is silent) I fixed the full paths issue. The failure is silent issue is reflected in a soon to be closed bug. * libgnomevfs/gnome-vfs-mime-handlers.c: (application_known_to_be_nonexistent): Check and see if the command string store in the mime database is actually a full path to an executable. 2001-02-23 Pavel Cisler reviewed by: Mike Fleming Fix 6391 nautilus crashes on any \ in the homedir preference * test/test-uri.c: (main): Add a test that broke before the fix. * libgnomevfs/gnome-vfs-private-utils.c: (find_next_slash): Remove the confused '\' unescaping. 2001-02-23 Pavel Cisler reviewed by: Gene Ragan Fixed 5786 the sequence of async open->read->cancel->close can crash. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_close): Before scheduling a close, wait for read/write to complete. If read/write is still executing, wait for a tiny bit. * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_complete), (gnome_vfs_op_destroy), (gnome_vfs_job_execute): * libgnomevfs-pthread/gnome-vfs-job.h: Add a new job op state - GNOME_VFS_OP_READ_WRITE_DONE. Set it when read/write is done so that close can tell it can proceed. 2001-02-23 Don Melton reviewed by: Maciej Stachowiak Fixed bug 6831 (extensions shouldn't take precedence over MP3 files) * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type_internal): Removed call to "gnome_vfs_mime_type_from_name_or_default" after call to "gnome_vfs_sniff_buffer_looks_like_mp3" so filename extensions don't take precendence over actual MPEG audio content. Re-fixed bug 6612 (".doc", ".sdw", etc. are not MP3 files) * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_mp3): Added hack to ignore StarOffice and Microsoft Office files which contain seemingly valid (but totally false) MPEG audio headers starting 68 bytes into the file. Do this here because adding mime magic entry is really, really hard. Re-fixed bug 5477 ("linux-2.4.0.tar.bz2" is not MP3 file) * data/mime/gnome-vfs-mime-magic: Corrected string pattern to detect bzip2 files. Changed "Bzh" to "BZh". 2001-02-22 Mike Fleming * modules/default-modules.conf: Removed nfs from default-modules.conf (see bug 6666) 2001-02-22 John Sullivan reviewed by: Gene Ragan Fixed bug 6524 (No default icons for MIME types) Fixed bug 6525 (capplet will only let you pick icons from a single directory) Fixed bug 6596 ("We need a good explanation here" isn't a good explanation) I didn't fix all the fundamental brokenness about Nautilus themes vs. the MIME database, but I fixed the most obvious problems and added some FIXMEs to help clarify some of the remaining issues. I also did a tiny fraction of the cleanup that could be done in this code. Users can now browse around to choose icons from anywhere, and they will all work in Nautilus (no change required in Nautilus). * mime-type-capplet/files-types-capplet.desktop: Replaced placeholder description string with Vera's. * mime-type-capplet/nautilus-mime-type-capplet.c: Removed bogus but relatively harmless initial slashes from two DEFAULT_REGULAR_ICON and DEFAULT_ACTION_ICON. (really_change_icon): Handle full as well as relative filenames; update displayed info here instead of relying on the icon_entry widget doing it. (icon_chosen_callback): Renamed from gil_icon_selected_cb; hide the dialog here so we can eliminate the almost-identical code in nautilus-mime-type-icon-entry.c that did that one extra thing. (change_icon_clicked_cb_real): use GNOME_OK instead of 0 (change_icon_clicked): Update for name change. (is_full_path): Little bitty helper function that checks for initial slash, mainly separated for clarity. (capplet_get_icon_path): New function used to get a full icon path from a file name, icon name, relative path, or possibly non-existent full path. (nautilus_mime_type_capplet_update_info): Simplify logic, use capplet_get_icon_path. (add_mime_clicked), (update_mime_list_action), (populate_mime_list): Use capplet_get_icon_path; use generic executable icon for app instead of repeating MIME-type icon. (capplet_get_icon_pixbuf): Simplify logic; use capplet_get_icon_path; Add FIXME about future code cleanup * mime-type-capplet/nautilus-mime-type-icon-entry.h: * mime-type-capplet/nautilus-mime-type-icon-entry.c: (nautilus_mime_type_icon_entry_get_full_filename): Renamed from _get_filename for clarity (entry_activated): Made behavior match comment (act like OK button was hit) (icon_selected_cb): Removed this function; this was redundant with code in nautilus-mime-type-capplet.c. (gil_icon_selected_cb): Removed this function; it was redundant with a function in nautilus-mime-type-capplet.c except that this one hid the dialog and that one didn't (now that one does). (nautilus_mime_type_show_icon_selection): Remove commented-out line that implemented the Browse button that let the user choose from different directories; removed redundant signal handlers; added FIXME. (nautilus_mime_type_icon_entry_get_relative_filename): Simplify logic; made it return NULL instead of "" and a g_warning when it can't create a relative path from the full path. * libgnomevfs/gnome-vfs-utils.c: Added FIXME 2001-02-22 Gene Z. Ragan reviewed by: John Sullivan Fixed bug 6568, Closing capplet right away warns about uncommitted changes * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet): Use new winterface that I added to control-center that informs the control center that changes are immediate. The control center now behaves properly. 2001-02-21 Pavel Cisler reviewed by: Darin Adler Fixed 5633: MIME type for gzipped XML formats such as gnumeric are not detected. Fixed 6803: gcc complaining about mktemp and suggesting mkstemp. * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type_internal): Rework to get rid of duplicated logic. Add a new call that covers both the data and suffix based file type recognition, optionally accepting NULL for either of the two. Add a call to the special gzip handler. For now hardcode gnumeric.gz and pdf.gz, we may add more later. * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type), (gnome_vfs_get_file_mime_type), (gnome_vfs_get_mime_type_from_file_data), (gnome_vfs_get_mime_type_for_data): Make it call the new common routine. * libgnomevfs/gnome-vfs-mime-sniff-buffer-private.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_get_type_from_magic_table), (gnome_vfs_get_mime_type_for_buffer), (file_name_ends_with), (gnome_vfs_sniff_buffer_looks_like_gzip): Add a special-case recognizer for gzip files that considers file names before identifying a file as gzip and leaving a hard-coded set of types to fall back on the suffix based type identification. * libgnomevfs/gnome-vfs-mime.c: (get_priority), (list_find_type), (add_to_key), (mime_fill_from_file), (mime_load), (gnome_vfs_mime_type_from_name_or_default), (gnome_vfs_get_mime_type_from_uri_internal), (gnome_vfs_get_mime_type_internal), (gnome_vfs_mime_type_is_supertype), (extract_prefix_add_suffix), (gnome_uri_list_extract_uris), (gnome_uri_list_extract_filenames), (gnome_uri_extract_filename): Tweaks. * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_mp3): Tweaks. * data/mime/gnome-vfs-mime-magic: Remove the magic pattern for gzip. * libgnomevfs/gnome-vfs-private-utils.c: (gnome_vfs_i18n_get_language_list), (gnome_vfs_istr_has_prefix), (gnome_vfs_istr_has_suffix): * libgnomevfs/gnome-vfs-private-utils.h: Copy-paste these from Nautilus. * libgnomevfs-corba/gnome-vfs-slave.c: (setup_and_serve_channel): Switch to using mkstemp. 2001-02-22 Seth Nickell reviewed by: Mathieu Lacage * modules/test-method.c: (load_settings), (vfs_module_init): Fix test module to look in the PREFIX for its configuration file rather than hardcoding. Deal with missing or invalid settings files gracefully, returning a sane error rather than segfaulting :-) 2001-02-22 Seth Nickell reviewed by: Pavel Císler * libgnomevfs/gnome-vfs-application-registry.c: (strip_trailing_whitespace): * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): Add casts to is* functions as necessary when chars are used to fix Solaris warnings. 2001-02-21 Mike Fleming reviewed by: * data/mime/gnome-vfs.applications: * data/mime/gnome-vfs.keys.in: added x-directory/webdav-prefer-directory to gnome-vfs.keys.in I must have edited the wrong file before :) 2001-02-21 Darin Adler reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): Move code to lower-case the host name down so it's always run, even in cases that exit via "goto done". * test/test-uri.c: (main): Fix test cases that were broken by the above bug. 2001-02-21 John Sullivan reviewed by: Pavel Cisler Fixed bug 6654 (after deleting MIME type from database, info about that MIME type still appears in Nautilus) Turns out the support for MIME type deletion was skin deep. The info was stored, but the only place respecting it was the code to return a complete list of MIME types. * libgnomevfs/gnome-vfs-mime-info.c: (is_mime_type_deleted): New function, extracted from get_key_name (get_key_name): Now calls extracted function (get_value_from_hash_table): New function, holds some code that was repeated 4 times in get_value_real (get_value_real): Return NULL if MIME type is deleted (unless we're checking DELETED_KEY itself); use get_value_from_hash_table to save code. 2001-02-21 Gene Z. Ragan reviewed by: John Sullivan Fixed bug 6626, Applications deleted from the short list reappear (unchecked) The original intent of this dialog button was to allow the user to delete their custom added applications. The logic has been added to handle this and update the control properly. There is a larger issue that if the user wants to delete system level applications, the current API makes it impossible to do so. * libgnomevfs/gnome-vfs-application-registry.c: * libgnomevfs/gnome-vfs-application-registry.h: (application_lookup_or_create), (application_lookup), (application_remove), (gnome_vfs_application_registry_init), (gnome_vfs_application_registry_clear), (gnome_vfs_application_registry_shutdown), (gnome_vfs_application_registry_sync), (gnome_vfs_application_registry_save_mime_application): Renamed a potentially confusing global variable. (gnome_vfs_application_is_user_owned_application): New function that returns a value indicating if this is a user owned or system owned application. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (create_application_list_item), (populate_default_applications_list), (initialize_edit_applications_dialog), (show_new_application_window), (delete_selected_application), (add_or_update_application), (add_item_to_application_list): Determine if application data is user owned and act accordingly. (check_button_status): Remove delete button handling in certain cases and use new update_delete_button function instead. (update_delete_button): New function to that sensitizes the delete button based on user ownership of the selected application item. 2001-02-20 Pavel Cisler reviewed by: Mike Fleming (except for build breakage fixes) Fix 5798 Cancelling a slow medusa search locks up nautilus Fix 6309 Stopping Nautilus while navigating to an unreachable http server can block nautilus indefinitely. * libgnomevfs-pthread/gnome-vfs-async-job-map.c: (gnome_vfs_async_job_add_callback), (gnome_vfs_async_job_cancel_job_and_callbacks): * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel): Switch from using the job->access_lock to make setting job->cancelled and cancelling the callbacks in the callback map atomic to using the async_job_callback_map_lock. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel): No need to acquire job->access_lock -- this makes the cancellation not block while the async job is executing. * libgnomevfs-pthread/gnome-vfs-async-job-map.h: * libgnomevfs-pthread/gnome-vfs-job.c: (job_oneway_notify), (job_notify): Use the result of gnome_vfs_async_job_add_callback to handle getting cancelled while scheduling an idle callback. * libgnomevfs-pthread/gnome-vfs-job.c: (job_notify): Fix a mistake where gnome_vfs_async_job_add_callback was being called twice. * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_module_cancel): * libgnomevfs-pthread/gnome-vfs-job.h: Rename to make things clearer. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_read), (execute_xfer): Fix whitespace. * libgnomevfs/gnome-vfs-method.c: * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-module-shared.c: * libgnomevfs/gnome-vfs-module.h: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-types.h: * modules/file-method.c: * modules/ftp-method.c: * modules/gconf-method.c: * modules/pipe-method.c: * modules/translate-method.c: Fix build breakage, part 2. 2001-02-20 Mike Fleming reviewed by: Pavel Cisler Bug 6770 -- URI's with @'s in the path break split_toplevel_uri Fixed and added test cases * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): * test/test-uri.c: (main): 2001-02-20 Pavel Cisler reviewed by: Rebecca Schulman * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-context.h: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-types.h: Fix Medusa build breakage, part 1. 2001-02-20 Darin Adler reviewed by: Mike Fleming * libgnomevfs/gnome-vfs-process.c: (sigchld_handler): Fix uninitialized variable problem (reported by danw I think). * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_local_path_from_uri): Simplify function and make it return NULL with # characters. * test/test-uri.c: (main): Update tests to match the change to gnome_vfs_get_local_path_from_uri. * libgnomevfs-pthread/gnome-vfs-job.c: Improve a variable name. * mime-type-capplet/.cvsignore: Ignore the executable under its new name, not its old name. 2001-02-20 John Sullivan * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet): Changed "Delete this MIME type..." to "Delete This MIME Type" because that follows the capitalization rules, and because there's no dialog involved so the "..." is a lie. 2001-02-20 John Sullivan reviewed by: Seth Nickell Fixed various small capplet bugs while pondering the big scary icon-related ones, including: Fixed bug 4768 (hardcoded icon file name in nautilus-mime-type-capplet.c) Fixed bug 6636 (Text descenders clipped for selected item in mime list) Fixed bug 6641 (Icons clipped in mime list) Fixed bug 6647 ("Change Icon" dialog has silly title) * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): Simplified widgetry, tweaked layout and wording to look halfway decent and be clear. * mime-type-capplet/nautilus-mime-type-capplet.c: Added constants for icon height/width in list. Added FIXME for huge hunks of copy/pasted code. (init_mime_capplet): Removed two set_usize calls; replaced one with a gtk_misc_set_padding call so "Edit List" button isn't too cramped. (add_mime_clicked), (nautilus_mime_type_capplet_update_mime_list_icon_and_description): Use icon size constants instead of magic numbers. (update_mime_list_action), (populate_mime_list): Use icon size constants; use gnome_vfs_icon_path_from_filename to avoid hard-coded path. (mime_list_reset_row_height): New function, sets the row height based on font size and image height. (create_mime_list_and_scroller): Reset row height at the right time. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (nautilus_mime_type_show_icon_selection): Set icon selection window title; add FIXME for (at long last discovered) code that prevents user from choosing icons in arbitrary directories. 2001-02-20 Rebecca Schulman Fix build issues caused by making gnome-vfs-process.h private reviewed by: Darin Adler * libgnomevfs/gnome-vfs.h: Remove gnome-vfs-process.h, which is now private * libgnomevfs/gnome-vfs-private-utils.h: Add gnome-vfs-process.h * test/test-escape.c: Add a signal.h which was needed after remove gnome-vfs-process.h from gnome-vfs.h 2001-02-20 Mike Fleming reviewed by: Bug 5325: Eazel Vault directories default to icon view, but other DAV sites do not. Added "x-directory/webdav-prefer-directory" mime type to allow this to happen. Also added checking of the multistatus "status" value for propstat * data/mime/gnome-vfs.applications: * modules/http-method.c: (process_propfind_propstat), (find_child_node_named), (get_propstat_status), (process_propfind_response), (make_propfind_request), (do_get_file_info): 2001-02-20 Ian McKellar reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (copy_file_data), (move_items), (link_items): Don't add overhead to the transfer total for each file. This fixes bug 6769. * test/test-uri.c: Fix a compile problem with the Debian compiler. 2001-02-20 John Sullivan reviewed by: Darin Adler Finished bug 5777 (Nautilus doesn't pick up MIME database changes right away). It still requires a Refresh or a visit to another directory, but it no longer requires a relaunch. Fixed bug 4798 (Nautilus doesn't update icons right away). This was a special case of bug 5777, but worth verifying separately so not marked duplicate. To fix these two bugs, I made a new set of calls that let a client check whether the mod date of any file from a set has changed "recently". There was code to do this (copy & pasted in two places) but it didn't correctly handle changes in existing files, only new files added/removed. * libgnomevfs/Makefile.am: Moved gnome-vfs-process.h and gnome-vfs-mime-sniff-buffer-private.h to noinst_HEADERS where they belonged (unrelated to bug fixes). * libgnomevfs/gnome-vfs-mime-private.h: Added prototypes for new FileDateTracker operations. * libgnomevfs/gnome-vfs-mime.c: (file_date_record_update_mtime), (file_date_record_new), (file_date_record_free): New functions, keep track of a single file and its last recorded mod date. (gnome_vfs_file_date_tracker_new): New function, returns a new FileDateTracker struct. (release_key_and_value): New function, used when freeing FileDateTracker. (gnome_vfs_file_date_tracker_free): New function. (gnome_vfs_file_date_tracker_start_tracking_file): New function, remembers a file (if not already known) and records its current mod date. (check_and_update_one): New hashtable iterator, checks whether a file's mod date has changed since last recorded. (gnome_vfs_tracked_date_has_changed): New function, checks whether any tracked file's date has changed since last recorded. (mime_fill_from_file): start tracking the mod date of the file we just loaded. (mime_load): start tracking the mod date of the directory we just iterated through. (maybe_reload): replace old date-checking code with call to gnome_vfs_tracked_date_has_changed. (mime_init): create global hash table for mime data date tracker. (gnome_vfs_mime_shutdown): free global hash table. * libgnomevfs/gnome-vfs-application-registry.c: (remove_mime_type_for_application): Fixed crashing bug (part of bug 5777) by reordering code to avoid accessing freed string. (load_application_info_from): start tracking the mod date of the file we just loaded. (application_info_load): start tracking the mod date of the directory we just iterated through. (maybe_reload): replace old date-checking code with call to gnome_vfs_tracked_date_has_changed (gnome_vfs_application_registry_init): create global hash table for registry date tracker. (gnome_vfs_application_registry_shutdown): free global hash table. 2001-02-20 Robin * Slomkowski * gnome-vfs.spec.in: changed nautilus-mime-type-capplet to file-types-capplet 2001-02-16 Michael K. Fleming reviewed by: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_get_parent): * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_local_path_from_uri): * test/test-uri.c: (main): Part of 2057: URI's with fragments behave oddly gnome_vfs_uri_get_parent no longer copies the child's fragment onto the parent (which certainly makes no sense to do) Added a warning for gnome_vfs_unescape_string_for_display, since it can cause bug 6694 gnome_vfs_get_local_path_from_uri now strips fragments from the string it resturns. Added test cases for new behaviour * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: (gnome_vfs_mime_sniff_buffer_new_from_existing_data): * libgnomevfs/gnome-vfs-types.h: Fixed crasher in mime sniff buffer that can happen when gnome_vfs_mime_sniff_buffer_new_from_existing_data is used with a buffer too small for some of the magic number patterns. By setting "read_whole_file" to TRUE, no further attempts will be made to read from the buffer (which doesn't have a read function defined) * modules/Makefile.am: Bug 6666, removed nfs module from build for nautilus v1 2001-02-20 Gene Z. Ragan Fix bug 6384, Nautilus program chooser uses "nautilus-mime-type-capplet" to launch capplet * mime-type-capplet/Makefile.am: * mime-type-capplet/files-types-capplet.desktop: * mime-type-capplet/nautilus-mime-type.desktop: Rename the capplet binary and change the name and contents of the .desktop file to reflect the new name. 2001-02-19 Don Melton reviewed by: Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_get_mime_type_for_buffer): * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type), (gnome_vfs_get_file_mime_type), (gnome_vfs_get_mime_type_from_file_data): Fixed bug 5477 ("linux-2.4.0.tar.bz2" is not MP3 file) Fixed bug 6612 (".doc", ".sdw", etc. are not MP3 files) Now call "gnome_vfs_sniff_buffer_looks_like_mp3" just like its text sniffing counterpart so that it is _not_ called only on failure of "gnome_vfs_mime_try_one_magic_pattern". 2001-02-19 Ian McKellar reviewed by: Eskil Olsen * modules/file-method.c: (do_find_directory): Changed lstat to stat so that the device ID can be correctly determined (fixing bug 4980). 2001-02-16 Gene Z. Ragan reviewed by: Mike Enger Fixed bug 6624, Selected mime type/description displayed below the list is incorrect after reverting to system defaults. Fixed bug 6644, List sorting after using "revert to system defaults" is inconsistent. * mime-type-capplet/nautilus-mime-type-capplet.c: (revert_real_cb): Sort the list using current sort column and select the first item to force an update of the dialog contents. Also freeze and thaw list to avoid annoying flicker while list is being repopulated. 2001-02-16 John Sullivan reviewed by: Gene Z. Ragan Fixed bug 6635 (in MIME capplet, descriptions can't be edited though they look editable) * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-handlers.h: (gnome_vfs_mime_set_description): New function, just like existing _set_icon. * mime-type-capplet/nautilus-mime-type-capplet.h: * mime-type-capplet/nautilus-mime-type-capplet.c: (nautilus_mime_type_capplet_update_mime_list_icon_and_description): Changed name to add the _and_description part. It already handled the description properly but the name was misleading. (really_change_icon): Updated for name change. (update_description_from_input): New function, sets the description in database and UI (list) from what's in the field. (description_entry_changed): Set dirty flag. (description_entry_activate), (description_entry_lost_focus): If dirty flag set, update. (init_mime_capplet): Hook up text field signal handlers, make field editable, remove "No Description" case since putting status text in editable field is wrong. (nautilus_mime_type_capplet_update_info): Clear dirty flag when description is updated due to selection change. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (icon_selected_cb): Updated for name change. 2001-02-16 Gene Z. Ragan reviewed by: John Sullivan Fixed bug 6648, Able to add mime type even if "mime type" and description fields are blank. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (validate_text_and_update_button), (nautilus_mime_type_capplet_show_new_mime_window): Set sensitive state of OK button based on content of text entry item in dialog box. * mime-type-capplet/nautilus-mime-type-capplet.c: (nautilus_mime_type_capplet_add_extension), (init_mime_capplet), (add_mime_clicked): Check for '\0' instead of ' ' to avoid empty strings 2001-02-16 Rebecca Schulman Fixed bugzilla.eazel.com 6220, that incorrect file counts messed up the progress bar during FTP copies. reviewed by: Gene Regan * libgnomevfs/gnome-vfs-directory.c: (lookup_ancestor), (directory_visit_internal): Only rely on valid inodes to determine if a link is circular. Otherwise, use a hard limit for symbolic links of 256, which should be greater than or equal too all systems we'll work with. * libgnomevfs/gnome-vfs-xfer.c: Fix spelling error in a comment * modules/ftp-method.c: (ls_to_file_info): Don't rely on inode and device information being valid. 2001-02-15 John Sullivan reviewed by: No one explicitly, but Darin said this change was worth doing. Addressed part of bug 6666 (Nautilus crashes when you type "nfs://" in the location bar) * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_matches): Added g_return_val_if_fails so it won't crash when fed a NULL file_info, or a file_info with a NULL name. 2001-02-15 John Sullivan reviewed by: Gene Ragan Fixed some problems and cleaned up some code that I ran into while investigating bug 5777 (Nautilus does not pick up MIME preferences right away) * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_short_list_applications): Prune user's short list additions of nonexistent applications (already pruned other lists); removed mysteriously incorrect FIXME; deployed gnome_vfs_mime_type_is_supertype() one more place. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (insert_item), (create_application_list_item): New helper functions used for dialogs showing lists of applications, extracted and simplified from existing code. (populate_default_applications_list): Use helper functions instead of repeating all the code here. (initialize_edit_applications_dialog): Swapped order of two lines for clarity & slight efficiency gain. (add_item_to_application_list): Use helper functions instead of repeating all the code here; select newly-added item. (show_new_application_window): Removed two initialized but never used variables. (show_edit_applications_dialog), (show_edit_components_dialog), (nautilus_mime_type_capplet_show_new_mime_window), (nautilus_mime_type_capplet_show_change_extension_window), (nautilus_mime_type_capplet_show_new_extension_window), (show_new_application_window), (show_edit_application_window): Cleaned up all callers of gnome_dialog_run; some were not handling the close box properly; others were just using more lines of code than needed; none were using GNOME_OK for clarity. * mime-type-capplet/nautilus-mime-type-capplet.c: (revert_mime_clicked): Improved some error message text a little. 2001-02-15 John Sullivan reviewed by: Darin Adler Fixed bug 6660 (list of all apps for text/xml doesn't include text/* handlers) * libgnomevfs/gnome-vfs-mime.h: * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_mime_type_is_supertype): New public function. (extract_prefix_add_suffix): Utility function used by _get_supertype_from_mime_type, moved from another file. (gnome_vfs_get_supertype_from_mime_type): New public function (formerly private in mime-handlers.c under the name "mime_type_from_supertype". * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_get_all_components), (gnome_vfs_mime_component_list_free): Update for renaming; remove mime_type_from_supertype. * libgnomevfs/gnome-vfs-application-registry.c: (gnome_vfs_application_registry_get_applications): Use new functions to fix completely broken code to get supertype's list of apps. (add_application_to_mime_type_table), (remove_application_from_mime_type_table): Use new is_supertype function instead of using strstr. 2001-02-14 Gene Z. Ragan Fixed bug 6629, Default action icon disappears when switching from application->viewer->application Fixed bug 6630, Default action icon not drawn when changing the default application * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet), (update_mime_list_action): Call handy utility function to get custom or default action icon based on mime tpye and type of action. (column_clicked): Remove some debugging cruft. 2001-02-14 Gene Z. Ragan Fixed bug 6570, Initial tab order in "Add application" dialog is broken. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window), (add_extension_clicked), (nautilus_mime_type_capplet_show_new_extension_window), (show_new_application_window), (show_edit_application_window): Set focus to proper widget in all of these functions. 2001-02-13 Gene Z. Ragan Fixed bug 6579, Clicking on a column for sorting performs descending sort first. * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet): Create a global array that tracks the initial first time click state of the columns. (column_clicked): Check click state of column and decide initial sort mode based on value. 2001-02-13 Gene Z. Ragan Fixed bug 6577, New mime type isn't highlighted after creation. * mime-type-capplet/nautilus-mime-type-capplet.c: (find_row_for_mime_type): Return index of row if mime type is found in list or -1 if it is not. (init_mime_capplet): Call find_row_for_mime_type() (nautilus_mime_type_capplet_update_info), (add_mime_clicked): Sort, select and scroll to new mime type. 2001-02-13 Ian McKellar * modules/http-method.c: (do_close): Added mime-sniffing to PUT to resolve bug 4102. 2001-02-12 Don Melton reviewed by: Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_mp3): Fixed bug 5570 (bmp file sometimes appears as an mp3 file) Basically I re-wrote the entire function to be much smarter about detecting an MPEG audio header and it now also checks for the existence of an ID3 version 2 tag. 2001-02-12 Gene Z. Ragan Fixed bug 6447, "Change file extensions" erases all extensions * mime-type-capplet/nautilus-mime-type-capplet.c: * mime-type-capplet/nautilus-mime-type-capplet-dialogs.h: (nautilus_mime_type_capplet_show_change_extension_window): Add a variable to function that tells if returned list is to be used to replace existing extension mapping for mime type. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (add_extension_clicked), (change_file_extensions_clicked): Do some sanity checking for empty or NULL new extensions 2001-02-12 Gene Z. Ragan Fixed bug 6471, wrong text in "add extension" dialog * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_extension_window): Update text using new language from Vera. 2001-02-12 John Sullivan reviewed by: Gene Z. Ragan (under protest, since Gene hates the use of "MIME") Changed all uses of "Mime" or "mime" in the UI to be "MIME". Also improved the wording for the "revert" dialog, though it still could use Verafication. Also, using "MIME" in the UI at all rather sucks. It would be nice if we could avoid this nerd terminology someday. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (initialize_edit_applications_dialog), (initialize_edit_components_dialog), (nautilus_mime_type_capplet_show_new_mime_window): * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet), (revert_mime_clicked), (create_mime_list_and_scroller): 2001-02-08 Gene Z. Ragan Fixed bug 6329, Typing gconf: and pressing ENTER in the navigation bar crashes Nautilus. * modules/gconf-method.c: (make_absolute): Replace dangerous macro with a function that error checks. (get_value_size), (set_stat_info_value), (do_open_directory), (do_read_directory), (do_get_file_info), (vfs_module_shutdown): Do error checking. 2001-02-08 Robey Pointer * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): Fix build bustage (declare 'ret'). 2001-02-08 Michael K. Fleming Bug 6451: Copying file into folder with space in it fails with "out of space" error. gnome_vfs_get_volume_free_space was calling statfs() with escaped paths and returning the wrong error code. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): 2001-02-08 Ian McKellar reviewed by: Robey Pointer * libgnomevfs/gnome-vfs-parse-ls.c: (gnome_vfs_parse_ls_lga): Fixing bug 6214 - the ls parser now correctly handles filenames with spaces in them. === end of changes from gnome-vfs-1 branch === 2001-02-28 Gene Z. Ragan reviewed by: Pavel Cisler Fixed bug 7148, Flash files identified as mp3 * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys.in: * data/mime/gnome-vfs.mime: Add application/x-shockwave-flash information. 2001-02-24 Marius Andreiana * configure.in: Added ro (Romanian) to ALL_LINGUAS. 2001-02-16 Seth Nickell * modules/test-method.c: (translate_uri): Make test-method.c not bite ass on "test://" 2001-02-13 Dan Winship * libgnomevfs/gnome-vfs-process.c (sigchld_handler): Initialize found to FALSE. 2001-02-07 Robin * Slomkowski * configure.in: Changed version to 2.0 FIRST COMMIT AFTER BRANCHING gnome-vfs-1 2001-02-06 Pavel Cisler reviewed by: Mike Fleming Fix 3451 (Loading a directory with a circular symbolic link causes the load to be interrupted) Fix 6221 (Nautilus shows only 6 of the 56 items in my home directory) * libgnomevfs/gnome-vfs-types.h: * modules/file-method.c: (get_stat_info), (get_stat_info_from_handle), (read_directory), (do_get_file_info), (do_get_file_info_from_handle): Make erors while obtaining stat info and mime type not interrupt directory loading. Make do_get_file_info not give up as easily when dealing with recursive links. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_empty_directories): Fix a problem where an error in directory emptying preflight or emptying itself would cause the operation to stop rather than continue with deleting the remaining items. 2001-02-06 Gene Z. Ragan Fixed bug 6258, Determine initial capplet sort column * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet): Sort based on first column in list. 2001-02-06 Maciej Stachowiak * Makefile.am, .cvsignore: Updated for new xml-i18n-tools. 2001-02-05 Pavel Cisler reviewed by: Seth Nickell Fix 5930 (Copy dialog often shows "1" as total number of fields in operation) Fix a ton of problems with the progress calculation. * libgnomevfs/gnome-vfs-xfer.c: (remove_file), (remove_directory), (count_each_file_size_one), (gnome_vfs_xfer_empty_directories), (gnome_vfs_xfer_delete_items), (gnome_vfs_xfer_uri_internal), (gnome_vfs_xfer_private): When removing during a copy conflict, do not update the progress. Store and retireve the preflight results when doing a conflict handling during copy. Properly calculate removed file size -- use a nominal per-file overhead rather than the file size. Properly calculate progress for files with zero or near-zero size. Fix numerous wrong uses of total_bytes_copied and bytes_total. * configure.in: Bump GnomeVFS version. 2001-02-05 Gene Z. Ragan Work done to improve the mime tpye capplet. Enable the capplet to be launched with a mime type. If a mime type is an argument, have the capplet scroll to that item in the list before the user begins interaction. * mime-type-capplet/nautilus-mime-type-capplet.c: (main), (list_move_vertical), (list_moveto), (list_reveal_row), (init_mime_capplet), (populate_mime_list): 2001-02-05 Rebecca Schulman Fix problem that the mozilla view was the default for webdav directories (should be icon view) and that the music view was always first on the short list. The problem was that the default component for the supertype to the short list was first on the short list, instead of being after all of the regular mime type's short list components. We now only use the supertype's default if it is explicitly set by the user. reviewed by: Mike Fleming * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component): Only use the supertype's default if it is explicitly added by the user. Otherwise add the supertype shortlist components to the end of the short list. 2001-02-05 Rebecca Schulman reviewed by: Maciej Stachowiak * data/mime/gnome-vfs-mime-magic: Add bzip as a magic pattern * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_get_short_list_components): Return short list components in order of their appearance on the short list rather than in alphabetical order 2001-02-05 Michael K. Fleming * modules/http-method.c: (vfs_module_init): Bug 6303: GError was potentially being re-used after being free'd 2001-02-03 Michael K. Fleming reviewed by: Bug 6299: gnome_vfs_get_volume_free_space has never worked= But it works now, as cheesy as it is. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): 2001-02-03 Pavel Cisler reviewed by: * modules/http-method.c: (cache_check_directory), (vfs_module_init), (vfs_module_shutdown): Use an explicit mutex initializer instead of a static initializer to make things more portable. 2001-02-03 Rolf Grossmann reviewed by: Pavel Cisler Make it build on FreeBSD. * modules/ftp-method.c: Add includes. * modules/nfs-method.c: (nfs_clnt_call): #ifdef an unsupported define 2001-02-03 Pavel Cisler reviewed by: Mike Fleming Fix 3075 (gnome-vfs dumps core on FreeBSD 4.1-STABLE when you start Nautilus) * libgnomevfs-pthread/gnome-vfs-async-job-map.c: (gnome_vfs_async_job_map_init): * libgnomevfs-pthread/gnome-vfs-async-job-map.h: * libgnomevfs-pthread/gnome-vfs-pthread.c: (gnome_vfs_pthread_init), (gnome_vfs_pthread_recursive_mutex_init): * libgnomevfs-pthread/gnome-vfs-pthread.h: * libgnomevfs-pthread/gnome-vfs-thread-pool.c: (gnome_vfs_thread_pool_init): * libgnomevfs-pthread/gnome-vfs-thread-pool.h: Get rid of recursive mutex static initialization. Add an initializer call that is called during backend init. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel): * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): * libgnomevfs-pthread/gnome-vfs-job.c: (job_notify), (gnome_vfs_job_set), (gnome_vfs_job_new), (gnome_vfs_job_destroy), (gnome_vfs_job_go): * libgnomevfs-pthread/gnome-vfs-job.h: Get rid of using "fast" pthread_mutex as a semaphore, use a real semaphore instead. * libgnomevfs/gnome-vfs-xfer.c: (copy_file_data): Fix a bug with not respecting "Retry" properly. 2001-02-02 Rebecca Schulman Fix bugs 6241 and 6171, that the default viewer was wrong for various types of files reviewed by: Gene Regan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_short_list_components): Use the new oaf query that will preserve iid list order in the short list. Also remove a fixme for bug 1142 that has now been fixed. 2001-02-02 Darin Adler reviewed by: Mike Fleming * libgnomevfs/gnome-vfs-result.h: Add include so you can include this file alone. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): Change "file" check to check for scheme == "file" instead of any scheme that starts with file. Also got rid of the case-sensitive version of "str_has_prefix" since the one case that was using it could use the case-insensitive one instead. 2001-02-01 Ramiro Estrugo reviewed by: Maciej Stachowiak * data/mime/gnome-vfs.keys.in: * doc/mime-data-specification.txt: * libgnomevfs/gnome-vfs-mime-handlers.c: (get_user_level): * test/test-mime-info.c: (main): Change 'hacker' to 'advanced' for the advanced user level so that the names used for storage match those used for display. 2001-02-01 Ian McKellar reviewed by: Eskil Olsen * modules/ftp-method.c: (do_path_command), (do_path_transfer_command): Decode path before doing operations. (do_open_directory): Removed debugging output. * test/test-remote: * test/test-sync-create.c: (main): Fixed bugs in test code. 2001-01-31 Maciej Stachowiak reviewed by: Rebecca Schulman * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_component): Remove FIXME 1142 (OAF queries don't precisely match those used in Nautilus), upon further review I decided this was OK. 2001-01-31 Pavel Cisler reviewed by: Gene Z. Ragan Fix 5324 (Should get rid of stack-based GnomeVFSFileInfo) * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_set_file_info): * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_set_file_info_callback), (gnome_vfs_job_destroy_notify_result), (gnome_vfs_op_destroy), (execute_set_file_info): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_ref), (gnome_vfs_file_info_unref), (gnome_vfs_file_info_clear): * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_uri_exists): * libgnomevfs/gnome-vfs-xfer.c: (empty_directory), (non_recursive_empty_directory), (gnome_vfs_visit_list), (handle_name_conflicts), (copy_directory), (copy_items), (gnome_vfs_xfer_delete_items_common): * test/test-info.c: (main): Get rid of gnome_vfs_file_info_init. Replace all instances of stack-based GnomeVFSFileInfo structures, replace all calls to gnome_vfs_file_info_init with gnome_vfs_file_info_new. Replace most calls to gnome_vfs_file_info_clear with gnome_vfs_file_info_unref. * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_ref), (gnome_vfs_file_info_unref): Get rid of FILE_INFO_REFCOUNT_STACK. 2001-01-30 John Sullivan reviewed by: Darin Adler Fixed bug 5842 ("file://home" converted to "home") Now "file://home" is left as "file://home". There's a related bug where "file://home" isn't recognized as an invalid URI, which I'll write up and fix separately. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_local_path_from_uri): Only strip "file://" if uri starts with "file:///" * modules/file-method.c: (get_path_from_uri): Take out evil code that was prepending a "/" to file: URIs that were missing the initial "/". 2001-01-30 Darin Adler reviewed by: John Sullivan * data/mime/gnome-vfs-mime-magic: Change magic so it recognizes Nautilus links with lower-case XML tags instead of upper-case. 2001-01-30 Rebecca Schulman Removed all instances of "default_application_id" and "default_component_id" from the system gnome-vfs keys file, and fixed short list ordering where the current order would incorrectly determine the correct default application. Added documentation to the mime data specification about how exactly user and system configuration .keys files are used. We need to record this information about other mime data files as well. * data/mime/gnome-vfs.keys.in: * doc/mime-data-specification.txt: 2001-01-29 Mike Fleming reviewed by: Bug 5011: New versionable GnomeVFS module interface The GnomeVFSMethod now has a "method_table_size" as its first member, which should be set to sizeof (GnomeVFSMethod) so that GnomeVFS knows what version of the interface the method is using. Old modules will get compile-time warnings and will more than likely be not loaded at runtime. (If they do manage to load, they will break) Also: fixed cdda module to use new gconf HTTP proxy format * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_open_uri_cancellable), (gnome_vfs_create_uri_cancellable), (gnome_vfs_get_file_info_uri_cancellable), (gnome_vfs_truncate_uri_cancellable), (gnome_vfs_make_directory_for_uri_cancellable), (gnome_vfs_find_directory_cancellable), (gnome_vfs_remove_directory_from_uri_cancellable), (gnome_vfs_unlink_from_uri_cancellable), (gnome_vfs_create_symbolic_link_cancellable), (gnome_vfs_move_uri_cancellable), (gnome_vfs_check_same_fs_uris_cancellable), (gnome_vfs_set_file_info_cancellable): * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-handle.c: (gnome_vfs_handle_new): * libgnomevfs/gnome-vfs-method.c: (load_module): * libgnomevfs/gnome-vfs-module.h: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-seekable.c: (gnome_vfs_seek_emulate): * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_is_local): * modules/bzip2-method.c: * modules/cdda-method.c: (cdda_context_new): * modules/efs-method.c: * modules/extfs-method.c: * modules/file-method.c: * modules/ftp-method.c: * modules/gconf-method.c: * modules/gzip-method.c: * modules/http-method.c: * modules/nfs-method.c: * modules/pipe-method.c: * modules/test-method.c: * modules/translate-method.c: (vfs_module_init), (vfs_module_shutdown): 2001-01-17 Mike Fleming * modules/http-method.c: (sig_gconf_value_changed), (vfs_module_init): Changed gconf http proxy format Old: /system/gnome-vfs/use-http-proxy (bool) /system/gnome-vfs/http-proxy (string; host:port) New: /system/gnome-vfs/use-http-proxy (bool) /system/gnome-vfs/http-proxy-host (string) /system/gnome-vfs/http-proxy-port (int) 2001-01-29 Pavel Cisler reviewed by: Gene Z. Ragan Fixed 5781 (results of load_directory must be passed in chunks instead of the entire list) Fixed 1438 (use plain GList instead of GnomeVFSDirectoryList) * libgnomevfs/Makefile.am: Got rid of gnome-vfs-directory-list.c and gnome-vfs-directory-list.h * idl/gnome-vfs-slave.idl: * libgnomevfs-corba/gnome-vfs-async-ops.c: (corba_gnome_vfs_async_load_directory), (corba_gnome_vfs_async_load_directory_uri): * libgnomevfs-corba/gnome-vfs-slave-notify.c: (impl_Notify_load_directory): * libgnomevfs-corba/gnome-vfs-slave-process.h: * libgnomevfs-corba/gnome-vfs-slave.c: (load_directory), (impl_Request_load_directory): * libgnomevfs-pthread/gnome-vfs-async-ops.c: (async_load_directory), (pthread_gnome_vfs_async_load_directory), (pthread_gnome_vfs_async_load_directory_uri): * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_load_directory_callback), (gnome_vfs_job_destroy_notify_result), (gnome_vfs_op_destroy), (load_directory_details), (execute_load_directory): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_load_directory_uri), (gnome_vfs_async_load_directory): * libgnomevfs/gnome-vfs-directory-list.c: * libgnomevfs/gnome-vfs-directory-list.h: * libgnomevfs/gnome-vfs-directory.c: (load_from_handle), (gnome_vfs_directory_list_load): * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs.h: * test/gnome-file-selection/gnome-file-selection.c: (populate_callback), (start_populating): * test/test-async-cancel.c: (directory_load_callback), (directory_load_failed_callback), (test_load_directory_cancel), (test_load_directory_fail): * test/test-async-directory.c: (directory_load_callback), (main): * test/test-directory.c: (print_list), (main): * test/test-shell.c: (do_ls), (validate_path), (get_regexp_name): Switched all the users of GnomeVFSDirectoryList to use a GList instead. Got rid of gnome_vfs_load_directory_sorted. Got rif of sorting rules. Move gnome_vfs_directory_list_load to gnome-vfs-directory.c and change it to use a GList. 2001-01-29 Rebecca Schulman Change the value of the "expects_uris" attribute of applications to have 3 possible values: "yes", "no", and "non-file". This change will allow applications to understand how to launch programs that expect local paths for local files, but uris for non-file locations. reviewed by: Darin Adler * data/mime/gnome-vfs.applications: Change expects_uris to "non-file" where appropriate (for now mpg123), and added supported_uri_schemes in places where "expects_uris" was "yes" but no supported uri schemes were listed. This information is not yet complete. * doc/mime-data-specification.txt: Remove the "[to be implemented]" tag from fields that are now fully implemented (supported_uri_schemes and expects_uris) * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-application-registry.h: * libgnomevfs/gnome-vfs-application-registry.c: (application_new), (value_looks_true), (get_bool_value), (application_add_key), (gnome_vfs_application_registry_get_mime_application), (gnome_vfs_application_registry_save_mime_application): Parse, set and get the new "expects_uris" attribute, and represent its set of possible values using an enum, rather than a gboolean. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (show_new_application_window), (show_edit_application_window): Add the right bug number to fixmes about updates need in the capplet to reflect the new application attributes * test/test-mime-handlers.c: (format_mime_application_argument_type_for_display), (print_application): Print the "expects_uris" attribute as part of the test program for application information parsing. 2001-01-29 Gene Z. Ragan Fixed bug 5847, MIME type capplet alphabetical order case sensitive * mime-type-capplet/nautilus-mime-type-capplet.c: (sort_case_insensitive), (column_clicked), (create_mime_list_and_scroller): Create a sort routine that is not case sensitive. 2001-01-29 Rebecca Schulman * test/test-mime-handlers.c: (print_application): Remove changes that won't work until the new type GnomeVFSMimeApplicationArgumentType is added. 2001-01-29 Rebecca Schulman Add new test output, first to debug the mime info test, that fails, and second to add a descrption test to the mime handlers test. The mime info test needs to be updated so that it works independent of locale. * test/test-mime-info.c: (main): * test/test-mime-handlers.c: (format_mime_application_argument_type_for_display), (print_application), (main): 2001-01-29 Robin * Slomkowski * configure.in: upped version to 0.5.0 2001-01-27 Robin * Slomkowski * Makefile.am: added xml-i18n files to EXTRA_DISTS 2001-01-26 Rebecca Schulman Add support for the "supported_uri_schemes" attributes in the mime applications file, and changed can_open_uris to "expects_uris" because this attribute is more about the way arguments should be specified than about its capabilities of understanding locations. The supported uri schemes attributes is optional, and if it is not included, the value is assumed to be file. reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-application-registry.h: Add the new function gnome_vfs_application_registry_supports_uri_scheme to the public api * libgnomevfs/gnome-vfs-application-registry.c: (application_new), (add_application_to_mime_type_table), (add_mime_type_to_application), (add_supported_uri_scheme_to_application), (remove_application_from_mime_type_table), (remove_mime_type_for_application), (supported_uri_scheme_list_copy), (gnome_vfs_application_registry_supports_uri_scheme), (gnome_vfs_application_registry_supports_mime_type), (gnome_vfs_application_registry_add_mime_type), (gnome_vfs_application_registry_remove_mime_type), Add supported uri schemes functions to complement the current mime type functions and refactor the mime_type functions to share code with the new supported_uri_schemes functions where appropriate (application_clear_mime_types), (application_add_key), Add ability to parse the supported_uri_schemes attribute (gnome_vfs_application_registry_get_mime_application), (gnome_vfs_application_registry_save_mime_application): Add supported_uri_schemes to these functions * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_application_copy), (gnome_vfs_mime_application_free), (copy_str_list): Add supported_uri_schemes to the MimeApplication structure * data/mime/gnome-vfs.applications: Add some new "supported_uri_schemes". What I have added is not complete. * doc/mime-data-specification.txt: Add information about how user files can augment, but not replace information about applications' accepted mime types and supported uri schemes. Add FIXMEs about how this isn't clearly correct. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (add_or_update_application), (show_new_application_window), (show_edit_application_window): Change can_open_uris to "Expects URIs" * test/test-mime-handlers-set.c: (main): * test/test-mime-handlers.c: (append_comma_and_scheme), (format_supported_uri_schemes_for_display), (print_application): Update tests, by adding new attribute 2001-01-26 Seth Nickell reviewed by: Gene Z. Ragan * modules/efs-method.h: * modules/file-method.h: Fix messed up header guards. 2001-01-25 Pavel Cisler reviewed by: Gene Z. Ragan * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_private): Make new folder operation call GNOME_VFS_XFER_PHASE_COMPLETED like the other file operations to make it easier for callers to clean up their state. Simplify a bit. 2001-01-25 Darin Adler * test/test-uri.c: (main): Added some tests to help demonstrate aspects of bug 6022. 2001-01-24 Rebecca Schulman * doc/mime-data-specification.txt: Add documentation about new features we plan to add for 1.0. Most of them were already in the document, but I've also cleaned it up and added a new possible feature addition for the future that takes care of a few of our design concerns: the "handled_uri_schemes" attribute that will list uri schemes that an application can handle regardless of mime types. This will allow applications to accept uris that are not necessarily understood by gnome-vfs 2001-01-22 Darin Adler * check-mime.pl: Added lots of white space checks. 2001-01-22 Darin Adler * check-mime.pl: Added check for i-regular. 2001-01-22 Rebecca Schulman Fixed bugzilla.eazel.com bug 5498 about symbolic links across file systems caused copies instead of drags in nautilus. This change makes the order uris are passed to check_same_fs important. The first uri is now the "source uri," and the second is the "target uri." reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-ops.h: Change the argument names of check_same_fs to reflect the new argument names * modules/file-method.c: (do_check_same_fs): Do a stat on the "target uri" but an lstat on the "source uri" * doc/mime-data-specification.txt: Added bug number references to the problems that we list in the specification 2001-01-20 Pavel Cisler reviewed by: Rebecca Schulman Work on making Search cancellable. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel), (gnome_vfs_job_cancel): Move the job cancellation outside the job->access_lock to avoid having to have the load_directory call completely finish before cancellation takes effect. Move the setting of the cancelled flag outside gnome_vfs_job_cancel and into the access_lock so that cancellation of the job and cancellation of the callbacks is atomic. * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-directory.c: (gnome_vfs_directory_open_from_uri_cancellable), (gnome_vfs_directory_read_next_cancellable): Add new cancellable versions of gnome_vfs_directory_open and gnome_vfs_directory_read_next. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_load_directory_not_sorted), Use the new cancellable open and read_next calls in execute_load_directory_not_sorted. Pass in the cancellation context. 2001-01-19 Darin Adler * check-mime.pl: Update so it works with the new keys.in file. 2001-01-19 Pavel Cisler reviewed by: Michael Engber Fix 1200: count_items_and_size needs to deal with errors. Fix 4577: File copying that fills a partition will cause an unescapable loop of error dialogs. Fix 5518: Nautilus hits assert in build_error_string during some large copy operation. * libgnomevfs/gnome-vfs-xfer.c: (handle_name_conflicts), (copy_file_data), (gnome_vfs_xfer_delete_items), (gnome_vfs_xfer_uri_internal): Make copy loop in copy_file_data properly bail when an error happens and retry is not requested. Make count_item_and_size ignore any errors except for cancellations of the copy -- we will deal with all the errors nicely either in the other parts of the preflight or during the copy itself. Pass in the target directory uri to the error handling code that reports that we have no space on the destination. HACKING: Add some more comments. 2001-01-19 Darin Adler reviewed by: John Sullivan Fix bug 5816 (Clicking "Refresh" in View as Image crashes Nautilus) by getting rid of a "free non-malloc'd memory" problem. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_all_applications): Fixed problem where the prune function was freeing application IDs that we don't own. (prune_ids_for_nonexistent_applications): Used g_list_free_1 for clarity. The old code used g_list_free, which will also work, since the removed node is a list of length 1. 2001-01-19 Darin Adler reviewed by: John Sullivan * .cvsignore: Ignore the xml-i18n-tools files. * libgnomevfs-pthread/gnome-vfs-async-job-map.c: (callback_map_cancel_one), (gnome_vfs_async_job_cancel_callbacks): Use %u instead of %d to format unsigned ints. * libgnomevfs/gnome-vfs-process.c: (gnome_vfs_process_init): Take advantage of defaults for the hash and key comparison functions. * test/gnome-file-selection/gicon.c: (gicon_init): Take advantage of defaults for the hash and key comparison functions. 2001-01-19 Pavel Cisler reviewed by: Ramiro Estrugo Fix 5430: Duplicate a link -> Nautilus won't display without refresh. * libgnomevfs/gnome-vfs-xfer.c: (copy_symlink), (copy_directory), (copy_items): Replaced a call to gnome_vfs_create_link to a new copy_symlink call that properly updates progress and sends notifications about the link being created. 2001-01-18 Kenneth Christiansen * configure.in: Added AM_PROG_XML_I18N_TOOLS to support my changes to the i18n system. Requires cvs release of xml-i18n-tools. 2001-01-18 John Sullivan * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_expand_initial_tilde): Made this new function never return NULL, after discussing with Darin. Now it just returns (a copy of) the original path if it can't expand ~some_user_name/xxx. 2001-01-18 Pavel Cisler * libgnomevfs/gnome-vfs-directory-list.c: (gnome_vfs_directory_list_new): Get rid of an unused field. 2001-01-18 Pavel Cisler Part of fix to 4221 (Pressing Cancel button does not cancel) * libgnomevfs-pthread/gnome-vfs-job.c: (job_notify), (dispatch_xfer_callback), (dispatch_sync_job_callback): Make the xfer job notify callback return the same result when it gets cancelled by gnome_vfs_async_cancel as if the callback requested a cancellation. * libgnomevfs/gnome-vfs-xfer.c: (call_progress), (call_progress_with_current_names), (call_progress_uri), (call_progress_with_uris_often), (remove_file), (empty_directory), (remove_directory): Fixed a lot of white space. 2001-01-18 Mike Fleming reviewed by: Ramiro Estrugo * modules/http-method.c: (sig_gconf_value_changed), (vfs_module_init): Proxy preferences are now split into host and port rather than using one string. 2001-01-17 Pavel Cisler * test/test-async-cancel.c: (test_load_directory_cancel), (test_find_directory_callback), (test_find_directory), (main): Add more async tests. 2001-01-17 Pavel Cisler reviewed by: Rebecca Schulman Fix 5732 (Cancelling a File Copy dialog crashes Nautilus) * libgnomevfs-pthread/gnome-vfs-job.c: (job_notify): Fix a deadlock and a crash when xfer notify callback gets called repeatedly after the copy operation was cancelled (a separate bug). * libgnomevfs-pthread/gnome-vfs-async-job-map.c: (gnome_vfs_async_job_cancel_callbacks): Fix a debug build problem. * libgnomevfs-pthread/gnome-vfs-job.h: Removed an unused field. 2001-01-17 John Sullivan reviewed by: Rebecca Schulman Fixed problems that were part of bug 5581 (Can't make StarOffice the default application for file types). There were three problems, of which two are now fixed: (1) Installing StarOffice (at least using Sun's installer) doesn't add its directory to $PATH, and it isn't installed in a directory already in $PATH. This is not fixed. (2) Applications not in $PATH were not stripped from the complete list, but should be since they can't be used (the same reason they are stripped from the short list and default). This is fixed. (3) The code that checked whether applications were in $PATH didn't handle paths starting with ~. This is fixed. * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_expand_initial_tilde): Function moved here and renamed from expand_tilde in nautilus-file-utilities.c. Next I'll make Nautilus use this function. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_all_applications): Prune nonexistent applications (including ones not in the path) from here also, since they can't be used by Nautilus. (executable_in_path): Handle parts of $PATH that start with ~ 2001-01-17 Ian McKellar * test/test-dirop.c: (main): Allow the initial permissions for a directory to be specified on the test tool command line. 2001-01-17 Pavel Cisler reviewed by: Darin Adler * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel): Fix a typo (g_mutex_lock->g_mutex_unlock) that caused a race condition where async callbacks could have been scheduled after a cancellation. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_load_directory_not_sorted): Whitespace tweak. 2001-01-16 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_load_directory_callback), (gnome_vfs_shared_directory_list_unref), (execute_load_directory_not_sorted): Fix several crashes when load directory hits an error and ends up with an empty directory list. * test/test-async-cancel.c: (directory_load_failed_callback), (test_load_directory_fail), (main): Add a test to the test rig that catches the bug I fixed. 2001-01-16 Seth Nickell reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-application-registry.c: (get_keys_foreach), (gnome_vfs_application_registry_get_applications): * libgnomevfs/gnome-vfs-mime-info.c: (mime_list_sort): Add casts to strcmp's performed on gpointers so they will not generate warnings. 2001-01-16 Pavel Cisler reviewed by: Darin Adler Fix 5399: Callbacks need a better way to find out if they are still needed. Fix 5401: Decouple async jobs and callbacks. Fix 5402: DGnomeVFSAsyncJob cleanup needs to be simplified. Fix 5677: File copy operation crashes Nautilus. Fix 1129: Storage leak while cancelling an async operation. * libgnomevfs-pthread/Makefile.am: * libgnomevfs-pthread/gnome-vfs-async-job-map.c: (gnome_vfs_async_job_map_get_job), (gnome_vfs_async_job_map_add_job), (gnome_vfs_async_job_map_remove_job), (gnome_vfs_async_job_map_destroy), (gnome_vfs_async_job_completed), (gnome_vfs_async_job_map_shutdown), (gnome_vfs_async_job_map_lock), (gnome_vfs_async_job_map_unlock), (gnome_vfs_async_job_map_assert_locked), (gnome_vfs_async_job_callback_valid), (gnome_vfs_async_job_add_callback), (gnome_vfs_async_job_remove_callback), (callback_map_cancel_one), (gnome_vfs_async_job_cancel_callbacks), (async_job_callback_map_destroy): * libgnomevfs-pthread/gnome-vfs-async-job-map.h: * libgnomevfs-pthread/gnome-vfs-async-ops.c: Move gnome_vfs_async_job_map calls to their new file. Add a async job callback map. Switch to using a static recursive mutext for locking the job map. Add support for cancelling callbacks. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel): Handle cancelling of both the job and it's callbacks. (async_open), (async_open_as_channel), (async_create), (pthread_gnome_vfs_async_create_as_channel), (pthread_gnome_vfs_async_close), (pthread_gnome_vfs_async_read), (pthread_gnome_vfs_async_write), (pthread_gnome_vfs_async_create_symbolic_link), (pthread_gnome_vfs_async_get_file_info), (pthread_gnome_vfs_async_set_file_info), (pthread_gnome_vfs_async_find_directory), (copy_sort_rules), (async_load_directory), (pthread_gnome_vfs_async_xfer), (pthread_gnome_vfs_async_add_status_callback), (pthread_gnome_vfs_async_remove_status_callback): gnome_vfs_job_new now gets called with parameters for the op. Cache the job handle before starting the job to avoid accessing the job structure after it has been unlocked and possibly deleted. Get rid of gnome_vfs_async_job_expired, use gnome_vfs_async_job_completed instead. * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine), (gnome_vfs_job_create_slave): Redo the way jobs are destroyed after they complete. Pass the job handle instead of the job structure itself to the thread_routine and check for the job being invalid by the time the thread_routine runs. * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_complete), (job_oneway_notify), (job_notify), (dispatch_open_callback), (dispatch_create_callback), (dispatch_open_as_channel_callback), (dispatch_create_as_channel_callback), (dispatch_close_callback), (dispatch_read_callback), (dispatch_write_callback), (dispatch_load_directory_callback), (dispatch_get_file_info_callback), (dispatch_find_directory_callback), (dispatch_set_file_info_callback), (dispatch_xfer_callback), (empty_close_callback), (handle_cancelled_open), (free_get_file_info_notify_result), (free_find_directory_notify_result), (gnome_vfs_job_destroy_notify_result), (dispatch_sync_job_callback), (dispatch_job_callback), (gnome_vfs_job_set), (gnome_vfs_job_new), (gnome_vfs_job_destroy), (gnome_vfs_op_destroy), (gnome_vfs_job_go), (serve_channel_read), (execute_open), (execute_open_as_channel), (execute_create), (execute_create_symbolic_link), (execute_create_as_channel), (execute_close), (execute_read), (execute_write), (execute_load_directory_not_sorted), (execute_load_directory_sorted), (execute_get_file_info), (execute_set_file_info), (execute_find_directory), (execute_load_directory), (xfer_callback), (execute_xfer), (gnome_vfs_job_execute), (gnome_vfs_job_cancel): Remove most of the synchronization between the async thread and the callbacks, now that the two share no state. Add a mechanism to figure out if a job is to expire after completing the current op or not. Switch to using g_idle_add for scheduling calbacks instead of g_io_channel. Get rid of tons of casts in the notify callback routines. dispatch_job_callback now deals with notify_results that belong to operations that have been canceled while the notification was being dispatched. Handle job cancellation in execute_xfer. * test/test-async-cancel.c: (make_asserts_break), (directory_load_callback), (test_open_read_close), (test_open_close), (my_yield), (test_load_directory_cancel), (main): Add more tests. * libgnomevfs-pthread/gnome-vfs-thread-pool.c: (gnome_vfs_thread_pool_wait_for_work): Augument profiler results a bit. * libgnomevfs/gnome-vfs-directory-list.c: Some small tweaks. 2001-01-15 Michael K. Fleming reviewed by: * libgnomevfs/gnome-vfs-xfer.c: (move_items), (gnome_vfs_xfer_uri_internal): More fun with bug 5250. Same-filesystem moves that failed from an error during a move would be deleted even if the user "skipped" them. move_items no longer gives progress callback GNOME_VFS_XFER_PHASE_MOVING for URI's that are skipped (prevents faulty copying of metadata) gnome_vfs_xfer_uri_internal returns an error if both move and link conditions are indicated (obvious contradiction) GNOME_VFS_XFER_PHASE_CLEANUP and associated item deletion no longer occurs for move or link case. I confirmed that this didn't mess up the Nautilus sync_transfer_callback metadata copying and update mechanism. 2001-01-12 Gene Z. Ragan Fixed bug 3229, Clean up appearance of File Types and Programs capplet * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet): Adjust positions of widgets for better look and feel. 2001-01-12 Gene Z. Ragan Fix bug 4797, user can choose an icon anywhere on his filesystem to associate it to a given mime type but the icon will not be used. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (entry_changed), (ientry_destroy), (browse_clicked), (nautilus_mime_type_show_icon_selection), (nautilus_mime_type_icon_entry_init), (nautilus_mime_type_icon_entry_set_pixmap_subdir): Remove ability to navigate to directories outside of the shared pixmap path. 2001-01-09 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.h: Oops, turn off spew that I enabled and checked in by accident. 2001-01-09 Pavel Cisler reviewed by: Darin Adler Fixed 5398 (Async callbacks need to be passed over ownership of data) * libgnomevfs-pthread/gnome-vfs-async-ops.c: (async_open), (async_open_as_channel), (async_create), (pthread_gnome_vfs_async_create_as_channel), (pthread_gnome_vfs_async_read), (pthread_gnome_vfs_async_write), (pthread_gnome_vfs_async_create_symbolic_link), (pthread_gnome_vfs_async_get_file_info), (pthread_gnome_vfs_async_set_file_info), (pthread_gnome_vfs_async_find_directory), (async_load_directory), (pthread_gnome_vfs_async_xfer): * libgnomevfs-pthread/gnome-vfs-job.c: (wakeup), (job_oneway_notify), (job_notify), (job_oneway_notify_and_close), (job_notify_and_close), (dispatch_open_callback), (dispatch_create_callback), (dispatch_open_as_channel_callback), (dispatch_create_as_channel_callback), (dispatch_close_callback), (dispatch_read_callback), (dispatch_write_callback), (dispatch_load_directory_callback), (free_get_file_info_notify_result), (dispatch_get_file_info_callback), (free_find_directory_notify_result), (dispatch_find_directory_callback), (dispatch_set_file_info_callback), (dispatch_xfer_callback), (gnome_vfs_job_destroy_notify_result), (dispatch_job_callback), (gnome_vfs_job_destroy), (gnome_vfs_op_destroy), (serve_channel_read), (serve_channel_write), (execute_open), (execute_open_as_channel), (execute_create), (execute_create_symbolic_link), (execute_create_as_channel), (execute_close), (execute_read), (execute_write), (execute_load_directory_not_sorted), (execute_load_directory_sorted), (execute_get_file_info), (execute_set_file_info), (execute_find_directory), (execute_load_directory), (xfer_callback), (execute_xfer): * libgnomevfs-pthread/gnome-vfs-job.h: Allocate a new struct for notification results for all async callbacks except for xfer. Pass the notification results as data when waking up the notification callback. Delete the notification results once the callback is done. Remove notification result fields from the different op structures. 2001-01-09 Aaron Brick * added MIME description guidelines in doc/mime-descriptions-guidelines.txt, superceding old rules in data/mime/gnome-vfs.keys. * referred to the new file twice in mime-data-specification.txt and in the comments of data/mime/gnome-vfs.keys. 2001-01-08 Ian McKellar reviewed by: mfleming@eazel.com * modules/ftp-method.h: * modules/ftp-method.c: (ftp_response_to_vfs_result), (get_response), (do_basic_command), (do_path_command_completely), (ftp_connection_release), (do_open), (do_make_directory), (do_remove_directory), (do_move), (do_unlink): The meaning of an FTP 550 response depends on what call was made. The GnomeVFSError to be returned for a 550 may now be specified at a higher level. (ftp_connection_create), (ftp_connection_destroy), (internal_get_file_info), (do_open_directory): Store the response of SYST (operating system) for each connection. Don't request server-side symlink expansion for MacOS servers, because they get confused. (do_read_directory): Unset the permissions bit of file info valid fields. 2001-01-08 Gene Z. Ragan Fixed bug 3041, "Action" column text is confusing * mime-type-capplet/nautilus-mime-type-capplet.c: (add_mime_clicked), (update_mime_list_action), (populate_mime_list), (create_mime_list_and_scroller): Made changes according to input from John and Arlo. Changed "Action" column to "Default Action." Changed action text when a viewer is specified to "View as" preprended to the action type. 2001-01-08 Mike Fleming reviewed by: pavel@eazel.com * libgnomevfs/gnome-vfs-xfer.c: (xfer_create_target), (copy_file), (copy_directory), (copy_items), (gnome_vfs_xfer_uri_internal): Bug 5250 (Hitting "skip" during a move operation across filesystems causes skipped file not to be copied but still to be deleted). The new behaviour builds a list of successfully copied URI's. It is these files that are deleted, not all of the original source URI's. Also: fix bug where files and directories copied from HTTP DAV server to local filesystem would have permissions of 000 set. Now, files and directories are left with permissions set according to the user's umask 2001-01-05 John Sullivan reviewed by: Darin Adler Fixed bug 5337 (MIME code hits disk every few seconds to check for changed data) I tried a gconf-based approach but was thwarted (see bug 5460). So I just removed the polling code that hits the disk. This leaves behind fairly minor bug 5459. Oh well. * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_init), (reload_if_needed_idle_function): Removed the polling mechanism for checking whether data on disk has changed. (gnome_vfs_mime_info_reload): Added numbered FIXME comment about bugs 5459 and 5460. * libgnomevfs/gnome-vfs-mime-monitor.c: (gnome_vfs_mime_monitor_emit_data_changed): Removed debugging spam accidentally left in earlier. * modules/http-method.c: (vfs_module_init): Removed FIXME comment for bug that I fixed recently. 2001-01-05 Rebecca Schulman reviewed by: Pavel Cisler * doc/mime-data-specification.txt: Add attribution to Darin Adler for his work on the document. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (gnome_vfs_async_job_map_shutdown): Remove a bogus assert that crashed when exiting if no async calls had been made. 2001-01-03 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): Fix a problem in my previous change -- in a certain sequence the job would expire and never call the last callback which in turn would cause the job spawner to try to cancel it or otherwise misbehave. 2001-01-03 Pavel Cisler reviewed by: Darin Adler Fix bug 5397 (use unique job IDs instead of GnomeVFSAsyncHandles) * libgnomevfs-pthread/gnome-vfs-async-ops.c: * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_open_callback), (dispatch_create_callback), (dispatch_open_as_channel_callback), (dispatch_create_as_channel_callback), (dispatch_close_callback), (dispatch_read_callback), (dispatch_write_callback), (dispatch_load_directory_callback), (dispatch_get_file_info_callback), (dispatch_find_directory_callback), (dispatch_set_file_info_callback), (dispatch_xfer_callback), (gnome_vfs_job_new): (gnome_vfs_async_job_map_add_job), (gnome_vfs_async_job_map_destroy), (async_job_map_remove_job), (gnome_vfs_async_job_expired), (async_job_map_get_job), (gnome_vfs_async_job_map_shutdown), (pthread_gnome_vfs_async_cancel), (async_open), (async_open_as_channel), (async_create), (pthread_gnome_vfs_async_create_as_channel), (pthread_gnome_vfs_async_close), (pthread_gnome_vfs_async_read), (pthread_gnome_vfs_async_write), (pthread_gnome_vfs_async_create_symbolic_link), (pthread_gnome_vfs_async_get_file_info), (pthread_gnome_vfs_async_set_file_info), (pthread_gnome_vfs_async_find_directory), (copy_sort_rules), (async_load_directory), (pthread_gnome_vfs_async_load_directory), (pthread_gnome_vfs_async_xfer), (pthread_gnome_vfs_async_add_status_callback), (pthread_gnome_vfs_async_remove_status_callback): assign jobs unique id's. Use a map to map job ids to job structs. * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine), (gnome_vfs_job_create_slave): Add new jobs to the job id map as they get created. Remove them when a thread expires. * libgnomevfs-pthread/gnome-vfs-job-slave.c: (gnome_vfs_thread_backend_shutdown): Get rid of the job id map when we quit. * libgnomevfs-pthread/gnome-vfs-thread-pool.c: Make some debugging code better. * libgnomevfs-pthread/gnome-vfs-job-slave.c: (gnome_vfs_job_create_slave): Remove some code that was ifdefd out now that new thread pool code seems to be working fine. 2001-01-02 John Sullivan reviewed by: Darin Adler Fixed bug 5339 (http proxy value reset when any Nautilus preference changes). This is a low-priority bug but I was working on another related bug and couldn't help fixing this. * libgnomevfs/gnome-vfs-mime-monitor.c: Fixed a copy/paste error in a comment. * modules/http-method.c: (sig_gconf_value_changed): Ignore keys other than the ones we care about. 2001-01-03 Rebecca Schulman reviewed by: * doc/mime-data-specification.txt: 2000-12-29 Darin Adler reviewed by: Pavel Cisler Fixed bug 3117 (Certain files incorrectly get the core file icon in icon-view mode). * data/mime/gnome-vfs.mime: Changed the regular expression for core files to match only files named "core", not all files with "core" in their names. Added some FIXMEs. 2000-12-28 Darin Adler reviewed by: Maciej Stachowiak * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_format_file_size_for_display): Changed format from "1.1M" to "1.1 MB". For kilobytes, I decided to do the same thing we did for the Macintosh Finder, and use "123 K" instead of the correct but obscure "123 kB". These strings are marked for translation as before, so it can be changed for different countries. One reason these have to be changed is that they are currently inconsistent with the hard-drive size numbers displayed in the Nautilus hardware view (so one or the other had to change). 2000-12-22 John Sullivan * modules/http-method.c: (vfs_module_init): Added a FIXME with bug number for a bug I noticed here. 2000-12-22 John Sullivan * libgnomevfs/gnome-vfs-mime-info.c: (reload_if_needed_idle_function): Saved the terminal by removing a debug g_message. gno2000-12-22 Pavel Cisler * libgnomevfs/gnome-vfs-mime-monitor.c: (gnome_vfs_mime_monitor_emit_data_changed): Save the world by adding a newline to the end of file. New gcc 2.96 is picky about that. 2000-12-22 John Sullivan reviewed by: Pavel Cisler GNOME_VFS part of fix for bug 4798 (icon changes in MIME type capplet aren't reflected automatically in Nautilus) I invented an object that emits signals when the MIME data changes. Clients can connect to the signal to do their evil deeds. Unfortunately, the granularity of the signal is just "some MIME data changed", but we can live with that for now. * libgnomevfs/gnome-vfs-mime-monitor.h: * libgnomevfs/gnome-vfs-mime-monitor.c: (gnome_vfs_mime_monitor_get_type), (gnome_vfs_mime_monitor_get), (gnome_vfs_mime_monitor_initialize), (gnome_vfs_mime_monitor_initialize_class), (gnome_vfs_mime_monitor_emit_data_changed): New files that define new class GnomeVFSMIMEMonitor. Its only purpose is to emit signals, and its only public function is gnome_vfs_mime_monitor_get (), which returns the one global GnomeVFSMIMEMonitor object so you can connect to its signals. The only signal it emits is "data_changed". * libgnomevfs/gnome-vfs-mime-private.h: Added prototype for gnome_vfs_mime_monitor_emit_data_changed so it can be called by other gnome-vfs-mime code. * libgnomevfs/Makefile.am: Add new .c & .h files to build. * libgnomevfs/gnome-vfs-mime-info.c: (reload_if_needed_idle_function), (gnome_vfs_mime_init): Poll every 5 seconds to reload if any data on disk has changed. It was already checking every time someone asked for data, but this lets clients be notified without them having to ask. (gnome_vfs_mime_info_reload): Call gnome_vfs_mime_monitor_emit_data_changed 2000-12-21 Pavel Cisler reviewed by: Gene Z. Ragan * libgnomevfs-pthread/Makefile.am: * libgnomevfs-pthread/gnome-vfs-job-slave.c: (gnome_vfs_job_create_slave), (gnome_vfs_thread_backend_shutdown): * libgnomevfs-pthread/gnome-vfs-thread-pool.c: (new_thread_state), (destroy_thread_state), (make_thread_available), (thread_entry), (gnome_vfs_thread_create), (gnome_vfs_thread_pool_shutdown): * libgnomevfs-pthread/gnome-vfs-thread-pool.h: Add a simple thread pool to avoid the overhead of creating new threads. Use the new thread pool calls when creating threads in gnome-vfs-job-slave. Left the old, non-thread pool thread creation in disabled by an #ifdef for now. I'll take it out later when we know everyting is OK about the new code. 2000-12-21 Maciej Stachowiak reviewed by: Pavel Cisler * data/mime/gnome-vfs.keys: Update IID for the nautilus text component. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_format_file_size_for_display): Fix some bugs Darin pointed out long ago (forgot to check this in somehow). 2000-12-21 Pavel Cisler * configure.in: Turn -Werror back on. * HACKING: Tell contributors not to turn -Werror off. * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_type_is_known): * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (display_upper_case_dialog): * modules/ftp-method.c: Fix all the warnings that crept in while -Werror was off. 2000-12-20 Lutz Müller * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_set_host_name), (gnome_vfs_uri_set_user_name), (gnome_vfs_uri_set_password): Fix two copy-paste bugs. 2000-12-19 Darin Adler reviewed by: John Sullivan Quick rewrite of pieces of the test module. * modules/test-method.c: (get_operation_settings): Changed name and design of the function. Also fixed backwards logic that had this returning results for the last setting that does not match a function name, rather than for the setting that does match. (start_operation), (finish_operation): Moved most of the work of the macros into these functions. (parse_result_text): Separated out the "name not found" result from the error code result. (load_settings): Rewrote the parsing code to be simpler. (do_open), (do_close), (do_read), (do_write), (do_seek), (do_tell), (do_open_directory), (do_close_directory), (do_read_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_make_directory), (do_remove_directory) (do_unlink), (do_set_file_info), (do_truncate), (do_truncate_handle), (do_find_directory), (do_create_symbolic_link): Use new simpler macros. Also got rid of "do_" prefix on names of calls. (do_create), (do_is_local), (do_move), (do_check_same_fs): Update FIXME, since these are still not implemented correctly. (vfs_module_init): Minor style change. (vfs_module_shutdown): Free storage on shutdown. 2000-12-18 Andy Hertzfeld * data/mime/gnome-vfs.keys: added explicit i-regular icons to text-oriented mime-types, so you can see embedded text even when the standard gnome icons are present. 2000-12-18 John Sullivan reviewed by: Rebecca Schulman Fixed gnome-vfs half of bug 2109 (Images (and any other files) with "execute" bit set will try to be executed instead of viewed when activated). The change here is support for querying whether it makes sense to execute a file of a given MIME type. I'll check in the Nautilus code that calls this shortly. * libgnomevfs/gnome-vfs-mime-info.h: * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_type_is_known): New function, returns TRUE if a given MIME type has an entry in any of the hashtables. * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_can_be_executable): New function, returns whether or not a file of a given MIME type could sensibly be executable. Default is TRUE for unknown types (so we don't prevent new types from executing), but FALSE for known types (since the vast majority of MIME types cannot be directly executed). (gnome_vfs_mime_set_can_be_executable): New function, setter for this new feature. * data/mime/gnome-vfs-mime-magic: Changed "application/x-executable-file" to "application/x-executable-binary" since there are other types of executable files. * data/mime/gnome-vfs.keys: Made can-be-executable TRUE for the following MIME types: application/octet-stream application/x-csh application/x-executable-binary application/x-perl text/plain text/x-csh text/x-ksh text/x-perl Also changed "icon-filename" to "icon_filename" and "vfs-method" to "vfs_method" so we consistently use underscores in MIME data keys. Also improved the instructions at the top of the file a little. * test/gnome-file-selection/gicon.c: (get_icon_from_metadata), (gicon_get_icon_for_file_2), * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_icon), (gnome_vfs_mime_set_icon): Updated for underscore name change. 2000-12-18 Darin Adler * modules/bzip2-method.c: (do_open), (do_get_file_info): Applied the same 3 fixes that John Sullivan made to the gzip method to the bzip2 method, since it is just a copy. An example of the evils of copy and paste code. 2000-12-18 Darin Adler reviewed by: Pavel Cisler Fixed bug 5217 (Nautilus crashes if you type cdda: in the navigation bar.) * libgnomevfs/gnome-vfs-method.c: (load_module): Fixed bug where it was freeing the result of g_module_error. * modules/default-modules.conf: Disable both the cdda and the efs modules since compiling them is currently disabled. It's important to keep this file in sync. with the libraries it points to. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_new_directory_with_unique_name): A new directory that we are creating now qualifies as a top-level item. This makes logical sense, and helps the code in Nautilus handle metadata properly. This is a piece of my fix for bug 2199 -- the rest was checked into Nautilus the other day. 2000-12-18 John Sullivan Fixed bug 5216 (typing "deb:" in the uri text field crashes Nautilus) * modules/extfs-method.c: (do_get_file_info): Another place in a different module that needed to return GNOME_VFS_ERROR_INVALID_URI when the parent URI is NULL. 2000-12-15 John Sullivan reviewed by: Mike Fleming Fixed bug 4810 (typing "gzip:" in the uri text field crashes Nautilus) * modules/gzip-method.c: changed VALID_URI to check uri->parent, since all the code that uses it assumes the parent is good. (do_open), (do_get_file_info): return GNOME_VFS_ERROR_INVALID_URI instead of GNOME_VFS_ERROR_NOT_FOUND, to match other modules' behavior. 2000-12-14 Rebecca Schulman * doc/mime-data-specification.txt: Added initial draft of the mime data specification to the documentation directory. 2000-12-11 Mike Fleming * libgnomevfs/gnome-vfs-mime-info.c: (hack_getc): Changed to return int instead of char so it won't bust\ on systems that default to unsigned chars 2000-12-11 Mike Fleming * modules/http-method.c: (create_handle), (make_propfind_request), (resolve_409): Changed all protocol-related error returns to GNOME_VFS_ERROR_GENERIC (they were CORRUPTED_DATA which was clearly wrong) Fixed bug in resolve_409 that didn't handle URI's that have no parents. Got rid of a FIXME that had been fixed. 2000-12-11 Mike Fleming * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-types.h: * modules/http-method.c: (do_make_directory), (do_move): bugzilla.eazel.com 3942 -- renaming file to illegal name produces confusing response. do_move now returns GNOME_VFS_ERROR_BAD_PARAMETERS when the destination filename contains invalid characters. This is really an unfortunate mapping, but it mirrors what Linux's FAT drivers seem to do (they return EINVAL). 2000-12-11 Darin Adler reviewed by: John Sullivan * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-gen-mimedb.c: Removed the source and build rules for the obsolete gen-mime-db tool. We have parsed the MIME text files on when the library first needs the DB instead of saving a preparsed memory image for some time now. 2000-12-08 Pavel Cisler * modules/ftp-method.c: (do_read_directory): Oops. Fix the build. 2000-12-08 Pavel Cisler reviewed by: Gene Z. Ragan * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_mime_type_from_name), (gnome_vfs_get_mime_type), (gnome_vfs_get_file_mime_type), (gnome_vfs_get_mime_type_from_uri), (gnome_vfs_get_mime_type_from_file_data): * libgnomevfs/gnome-vfs-mime.h: * modules/ftp-method.c: (ls_to_file_info): * modules/gconf-method.c: (set_mime_type_value): * modules/pipe-method.c: (mime_from_uri): * modules/translate-method.c: (tr_apply_default_mime_type): Replace all cases of "application/octet-stream" with a new symbolic name, GNOME_VFS_MIME_TYPE_UNKNOWN. 2000-12-08 Gene Z. Ragan * modules/ftp-method.c: (do_read_directory): Removed fixme for bug 3925. This was fixed in Nautilus. Resolving sym links during a directory read in the ftp module is resource intensive and probably not desired. 2000-12-08 Gene Z. Ragan reviewed by: Pavel Cisler Fixed bug 4660, Descrption lost when adding mime types Bug was caused by a failure to write out a mime type with caps in the string. I now convert all caps to lower case and inform the user what has happened. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (find_message_label_callback), (find_message_label), (show_message_box), (display_upper_case_dialog): New routines to display a nice dialog taken from Nautilus. (nautilus_mime_type_capplet_show_new_mime_window): Convert mime string to lower case if caps are present. 2000-12-08 Andy Hertzfeld * data/mime/gnome-vfs.keys: replaced all references to the old bonobo-text-plain component with the newer nautilus-text-view component 2000-12-07 Mike Fleming * modules/http-method.c: (process_propfind_propstat), (vfs_module_init): bugzilla.eazel.com 4317, 2795 : Implemented ctime/mtime file attributes for DAV 2000-12-06 Mike Fleming * modules/ftp-method.c: (ftp_response_to_vfs_result), (do_make_directory): Added FIXME. Translated error returned from do_make_directory to compensate for bad error mapping deeper in the module. 2000-12-06 Pavel Cisler reviewed by: Fixed 4736: Nautilus doesn't respect umask when creating a new folder. * libgnomevfs/gnome-vfs-xfer.c: (create_directory), Easy fix, we already do respect umask, just need to create new folders with 0777 instead of just 0700. Fixed 4324: modification date doesn't get preserved during copy: * libgnomevfs/gnome-vfs-xfer.c: (copy_file), (copy_directory), (copy_items): Added a gnome_vfs_file_info_set_type to the end of copy_file and copy_items, copying over the mod date, permissions and owner. 2000-12-06 Mike Fleming reviewed by: pavel@eazel.com * modules/ftp-method.c: (do_move): bugzilla.eazel.com 4224: ftp rename always overwrites -- ignores "force" parameter Just a drop in the bucket. 2000-12-05 Pavel Cisler reviewed by: Gene Ragan * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-xfer.c: (progress_set_source_target), (remove_file), (empty_directory), (non_recursive_empty_directory), (gnome_vfs_visit_list), (count_each_file_size_one), (handle_name_conflicts), (gnome_vfs_xfer_delete_items_common), (copy_directory), (copy_items) (gnome_vfs_xfer_uri_internal): Part of fix 4894 "Dragging /proc from the tree view to /home causes a file not found". Part of fix to 3232 "Error message when copying rwx file from r-x folder to rwx folder". Part of fix to 3237 "No error occurs if move file to folder w/o write access". Part of fix to 3748 "misleading file operation error dialog" Made each of these properly set up the name of the copied item to fix all the cases where we got "Error moving (NULL) ..." messages that I came across while fixing the other bugs. Added a new phase, GNOME_VFS_XFER_CHECKING_DESTINATION and used it in gnome_vfs_xfer_uri_internal so I can distinguish between failures on read and failures on write. * libgnomevfs/gnome-vfs-xfer.c: (copy_directory), (copy_items): Fixed 4895 Copying /dev into my home directory crashes Nautilus. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_empty_trash), (gnome_vfs_xfer_delete_items), (gnome_vfs_xfer_uri_internal), (gnome_vfs_xfer_private), (gnome_vfs_xfer_uri_list), (gnome_vfs_xfer_delete_list): Moved calls to initial and last call_progress to the calling routine. 2000-12-05 Rebecca Schulman reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_magic_parse): Remove this change: what we fixed this morning avoided the huge leak, but did not fix the real problem. This change isn't compatible with the real fix (see Darin's change below), and in fact it was amazing that it worked at all. 2000-12-04 Darin Adler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_get_magic_table): Added missing NULL check that made gnome_vfs very slow since it kept reading the MIME database over and over again! My apologies. 2000-12-04 Rebecca Schulman reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_magic_parse): Fix a large leak in gnome-vfs mime, that resulted from not freeing a g_array segment during mime lookups 2000-12-03 Maciej Stachowiak reviewed by: Pavel Cisler * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_format_file_size_for_display): Changed factor for kilobytes to 1024 from 1000, megabytes to 1024*1024 from 1,000,000 and gigabytes to 1024*1024*1024 from 1,000,000,000. 2000-11-29 Darin Adler reviewed by: Mike Fleming * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_get_magic_table), (gnome_vfs_mime_clear_magic_table): Eliminate the unused "mmap" optimization. We haven't been generating the binary file for a while, and we've determined there's no real speed issue. * data/mime/gnome-vfs.applications: Use tabs consistently instead of some tabs and some spaces. Get rid of some extra whitespace on some lines. Fix some "can_open_uris" lines that said "can_open_urls" instead. * data/mime/gnome-vfs.keys: Use tabs consistently instead of some tabs and some spaces. 2000-11-29 Pavel Cisler * test/test-mime.c: (main): Oops, make it build. 2000-11-29 Rebecca Schulman reviewed by: Pavel Cisler * test/test-mime.c: (main): Added a --help argument that lists available arguments, and made the script understand both paths and uris, and report the case where a uri or path is not valid. 2000-11-29 Rebecca Schulman * modules/file-method.c: (rename_helper): Fixed bug 1185, that removing a directory always returns NOT_EMPTY on an error. 2000-11-22 Michael K. Fleming * modules/http-method.c: (sig_gconf_value_changed): Fixed bug where setting "/system/gnome-vfs/use-http-proxy" wouldn't cause the new http proxy to be used 2000-11-21 Mike Fleming reviewed by: pavel@eazel.com * modules/http-method.c: (cache_add_no_strdup), (cache_add), (cache_add_uri_and_children), (cache_add_uri), (make_propfind_request), (do_open_directory), (do_get_file_info): Now caches non-DAV get_file_info's. Mostly improves the situation by allowing a subsequent do_open_directory to return an error based on the file info in cache. Also added more "is_dav" bit to the cache records 2000-11-20 Mathieu Lacage reviewed by: Fix bug 4812. Also, make the capplet work by fixing random bugs here and there. It was the first time I could test it for true so, of course, got a bunch of small-border-effect bugs. * libgnomevfs/gnome-vfs-mime-info.c: (hack_getc): the most evil function I ever wrote. It recursively gets rid of the comment lines before the parsers ever get them. (iunstead of fixing thew parsers....) (load_mime_type_info_from): make it use nerw hack_gets function instead of getc_unlocked. (load_mime_list_info_from): idem. (gnome_vfs_mime_get_extensions_list): avoid returning the extensions of the system settings if the user has set the user extensions. (get_key_name): make it remove duplicates for true. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): fix bug 4812 by replacing "char *text[3]" by "char *text[4]". (nautilus_mime_type_capplet_show_change_extension_window): spaces. * mime-type-capplet/nautilus-mime-type-capplet.c: (update_extensions_list): fix border-effect bugs. (ie: when you have no extension for a mime type for example...) (add_mime_clicked): idem. 2000-11-20 Mike Fleming reviewed by: pavel@eazel.com * modules/http-method.c: (unhex_char), (unescape_unreserved_chars), (process_propfind_response): Fix HTTP attribute caching to work correctly with inconsistantly escaped URI strings. (note that the unescape_unreserved_chars function is ifdef'd out and not used) 2000-11-20 Matt Bissiri * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_icon_path_from_filename): Do not free the return value of g_getenv. (fixes a segfault that occurs if GNOME_PATH is set) 2000-11-19 Michael K. Fleming * modules/http-method.c: oops. fixed debug macro that didn't have a disabled version 2000-11-19 Mathieu Lacage Fix bug 4811 * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_set_extensions_list): add new function. Ultimately, I wished we could get rid of the direct access to the internal hastables but this is at least a first step. * libgnomevfs/gnome-vfs-mime-info.h: add prototype. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (add_extension_clicked): implement (remove_extension_clicked): implement (extension_list_selected): grey/ungrey delete button when selecting/unselecting (extension_list_deselected): idem (get_extensions_from_gtk_list): helper function. (nautilus_mime_type_capplet_show_change_extension_window): implement. (nautilus_mime_type_capplet_show_new_extension_window): fix a number of segfaults. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.h: change prototypes. * mime-type-capplet/nautilus-mime-type-capplet.c: (get_selected_row_number),helper function. (get_selected_mime_type), helper function (refactoring :) (really_change_icon): fix segfault. (update_extensions_list): update extensions when you change them. (change_file_extensions_clicked): create dialog. (init_mime_capplet): spaces. (nautilus_mime_type_capplet_update_info): make it use get_selected_mime_type. 2000-11-17 Mike Fleming * modules/http-method.c: (my_debug_printf), (get_header), (create_handle), (make_request), (http_handle_close), (do_open), (do_create), (do_close), (do_write), (do_read), (make_propfind_request), (do_open_directory), (do_close_directory), (do_read_directory), (do_get_file_info), (do_make_directory), (do_remove_directory), (do_move), (do_unlink): * test/http-postanalyze.pl: Added timing debug code. 2000-11-17 Mathieu Lacage reviewed by: Sullivan fix Bug 4768. Reported 3 bugs about separate issues: 4796, 4797, 4798. * data/mime/gnome-vfs.keys: change icon filenames to relative paths. * libgnomevfs/Makefile.am: add GNOME_VFS_PREFIX * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_info_reload): add initialition code if the mime stuff is not initalized when doing a reload. This avoids a segfault. * libgnomevfs/gnome-vfs-utils.c: (hack_file_exists): new function copied from gnome-libs: prviously named g_file_exists. (gnome_vfs_icon_path_from_filename): new API function. It looks in GNOME_PATH to find the icons and defaults to the gnome-vfs prefix one. It accepts only relative paths and returns an absolute path. * libgnomevfs/gnome-vfs-utils.h: add prototype. * mime-type-capplet/nautilus-mime-type-capplet.c: (really_change_icon), changes the icon used by a mime type. (gil_icon_selected_cb): changes the icon when you double-click. (change_icon_clicked_cb_real): changes the icon when you click on ok. (change_icon_clicked): connect to the clicked and select_icon signals to know when the user has made up his mind about hte new icon. (nautilus_mime_type_capplet_update_info), spaces. (add_mime_clicked): spaces. (nautilus_mime_type_capplet_update_mime_list_icon): spaces. (capplet_get_icon_pixbuf): spaces. (populate_mime_list): spaces. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (icon_selected_cb): spaces. (nautilus_mime_type_show_icon_selection): spaces. (nautilus_mime_type_icon_entry_get_relative_filename): new function. returns a relative filename instead of an abosulte one. * mime-type-capplet/nautilus-mime-type-icon-entry.h: add relative function prototype 2000-11-17 Gene Z. Ragan Fixed bug 2966, Fix cancellation support in FTP * modules/ftp-method.c: (do_path_command_completely), (do_transfer_command), (do_path_transfer_command), (host_port_from_string), (ftp_connection_create), (ftp_connection_acquire), (do_open), (internal_get_file_info), (do_get_file_info), (do_open_directory), (do_make_directory), (do_remove_directory), (do_move), (do_unlink), (vfs_module_init): Modified several functions to allow context to be passed in. We can then check the context for cancellation. * modules/http-method.c: (make_request): Code cleanup. 2000-11-16 Rebecca Schulman * modules/ftp-method.c: Change the formatting of some fixmes so that check-fixme will keep track of them 2000-11-16 Mathieu Lacage fix bug 4769 * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): tweak to look slightly better. fix a potential segfault too. * mime-type-capplet/nautilus-mime-type-capplet.c: (revert_real_cb), (revert_mime_clicked), (add_mime_clicked): add dialog hook. 2000-11-16 Gene Z. Ragan Fixed bug 4528, http method does not listen for 'use-http-proxy' preference. * modules/http-method.c: (vfs_module_init): Listen to changes in 'use-http-proxy' settings. (sig_gconf_value_changed), Check for status of 'use-http-proxy' system setting before setting proxy to new modified value. This allows a user to edit the text of the proxy without actually resetting the proxy to this value if the "Use Proxy" checkbox is unset. 2000-11-16 Mathieu Lacage Fix bugs 2767 and 3228 * mime-type-capplet/nautilus-mime-type-capplet.c: (nautilus_stop_in_debugger), (nautilus_stop_after_default_log_handler), (nautilus_set_stop_after_default_log_handler), (nautilus_make_warnings_and_criticals_stop_in_debugger), add debugging functions. They are disabled by default. (main), add call to debuggin funcitons if they are enabled. (change_icon_clicked), implement. (init_mime_capplet), tweaks, cleanups (nautilus_mime_type_capplet_update_info), update icon. (revert_mime_clicked), implement correctly. (delete_mime_clicked), implement correctly. (add_mime_clicked), cleanups (capplet_get_icon_pixbuf), new function to get the pixbuf for a given mime type (populate_mime_list): use the new function above, refactor. (update_mime_list_action): idem. 2000-11-15 Mathieu Lacage * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet), make it look like what Arlo wanted. (revert_mime_clicked): new callback to reset user settings. 2000-11-15 Pavel Cisler * test/test-uri.c: (main): Tweak a test to verify that bug 3401 is fixed. No reviewer, sorry. 2000-11-15 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-info.c: (context_new), cleanups. (load_mime_type_info_from), cleanups (load_mime_list_info_from), cleanups (reload_if_needed), rename from maybe_reload (set_value_real), new function. (gnome_vfs_mime_set_value), make it use funiton above. (get_value_real), new function (gnome_vfs_mime_get_value), make it use funciton above (gnome_vfs_mime_get_key_list), cleanups (gnome_vfs_mime_get_extensions_list), cleanups (gnome_vfs_mime_get_extensions_pretty_string), cleanups (gnome_vfs_get_registered_mime_types), cleanups (gnome_vfs_mime_set_registered_type_key), make it use set_value_real. (gnome_vfs_mime_get_registered_mime_type_key): make it use get_value_real. 2000-11-15 Mathieu Lacage Buddy: pavel * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type): fix a compilation warning. remove a unused variable. * libgnomevfs/gnome-vfs-mime-info.c: (load_mime_list_info_from), spaces... (get_key_name), add checks not to return deleted mime types and not to return comments as mime types. (gnome_vfs_mime_reset), new API function: resets to system defaults. (gnome_vfs_mime_registered_mime_type_delete), new API fution: deletes a mime type. (gnome_vfs_mime_get_registered_mime_type_key), new non-exported function. (write_back_mime_user_file_context_callback): spaces... * libgnomevfs/gnome-vfs-mime-info.h: new prototypes. * test/test-mime-info.c: (main): add testing code for teh new API. 2000-11-15 Mathieu Lacage Buddy: pavel Fix bug 2650. remove *_without_fallback code. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type), (gnome_vfs_mime_get_default_action), (gnome_vfs_mime_get_default_application), (gnome_vfs_mime_get_icon), (gnome_vfs_mime_get_default_component): remove code trying to test for the supertype of a mime type because the first lookup always checks for the supertype anyway so the code was useless. * libgnomevfs/gnome-vfs-mime-handlers.h: remove *_without_fallback functions. 2000-11-14 Pavel Cisler Reviewed by: Mathieu Lacage * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): Fix 820, treating case-insensitive parts of URIs as such. * test/test-uri.c: (test_uri_match), (main): Add test suites for the case-insensitive handling. * data/mime/gnome-vfs-mime-magic: Removed an obsolete comment. * README: Add some instructions. 2000-11-14 Maciej Stachowiak reviewed by: Rebecca Schulman * data/mime/gnome-vfs.applications: Remove trailing whitespace from `abiword' and `galeon'. * libgnomevfs/gnome-vfs-application-registry.c (load_application_info_from): strip trailing whitespace from application IDs. (strip_trailing_whitespace): helper function 2000-11-13 Rebecca Schulman Reviewed by: Maciej Stachowiak * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-types.h: Add a new gnome vfs error, about the problem of the search index being out of date enough that no results could possibly come back, called GNOME_VFS_ERROR_SERVICE_OBSOLETE 2000-11-13 Darin Adler * gnome-vfs.spec.in: Turn "make check" off again. It doesn't work because the front end can't find the back end when it's not installed. 2000-11-13 Gene Z. Ragan Some more capplet work. The mime list now updates to reflect changes made to the default action button and menu item list. * mime-type-capplet/nautilus-mime-type-capplet.c: (application_button_toggled), (viewer_button_toggled), (application_menu_activated), (component_menu_activated), (add_mime_clicked), (nautilus_mime_type_capplet_update_mime_list_icon), (update_mime_list_action), (populate_mime_list): * mime-type-capplet/nautilus-mime-type-icon-entry.c: (entry_changed): Fixed a case where a NULL widget would cause an assertion. 2000-11-13 Gene Z. Ragan Fixed bug 3107, Setting na icon for a mime type does not work. * mime-type-capplet/nautilus-mime-type-capplet.c: * mime-type-capplet/nautilus-mime-type-capplet.h: (nautilus_mime_type_capplet_update_mime_list_icon): New function that sets/updates the icon in the mime list. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (icon_selected_cb), (nautilus_mime_type_show_icon_selection): Add call to new nautilus_mime_type_capplet_update_mime_list_icon function. 2000-11-13 Martin Baulig * modules/file-method.c (read_saved_cached_trash_entries): Use g_free() to free the `trash_path' and `mount_path'. 2000-11-11 Kjartan Maraas * mime-type-capplet/nautilus-mime-type.desktop: Added norwegian translation. * mime-type-capplet/nautilus-mime-type-capplet.c: Marked all strings for translation. 2000-11-11 Maciej Stachowiak Part of the fix to 4051. * data/mime/gnome-vfs.applications: Uncomment vi and lynx * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_application_copy): Copy the requires_terminal_flag. Unrelated bug fix: * modules/test-method.c: Use usleep(3), not usleep(1). 2000-11-11 Ali Abdin * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: * data/mime/gnome-vfs.applications: * data/mime/gnome-vfs.mime: Change audio/x-ogg to application/x-ogg 2000-11-09 Darin Adler * gnome-vfs.spec.in: Turn on "make check" for RPM builds. This is especially good for the Tinderbox. * modules/http-method.c: (process_propfind_propstat), (process_propfind_response), (make_propfind_request), (vfs_module_init): * modules/test-method.c: (load_config_file), (vfs_module_init): Use LIBXML_TEST_VERSION and the new macros to make gnome-vfs ready for gnome-xml 2.X or gnome-xml 1.X, as DV suggests. * modules/Makefile.am: * libgnomevfs/gnome-vfs-application-registry.c: * libgnomevfs/gnome-vfs-mime-handlers.c: Formatting tweaks. 2000-11-08 Gene Z. Ragan Fixed an error where access count was not reset during a close_directory call. * modules/cdda-method.c: (do_open), (do_get_file_info), (do_open_directory), (do_close_directory), (do_read_directory): 2000-11-08 John Sullivan * libgnomevfs-pthread/gnome-vfs-job.c: (execute_find_directory): Changed a g_new to g_new0 to fix problem where result_item->uri was sometimes uninitialized. Darin somehow found this bug when I couldn't figure out why make check in Nautilus was crashing. Hooray! 2000-11-08 Ramiro Estrugo * data/mime/gnome-vfs.applications: XMMS can open uris. 2000-11-06 Robin * Slomkowski * configure.in: upped development version to 0.4.2.0 2000-11-06 Robin * Slomkowski * configure.in: upped version to 0.4.2 2000-11-06 Robin * Slomkowski * configure.in: upped version 0.4.1.1 for internal incrimental release 2000-11-06 Darin Adler Fix bug 4490 (web sites with bad last modified dates (like www.centerbeam.com) result in "not found"). * modules/http-method.c: (create_handle): Change code so that headers that can't be parsed don't result in NOT_FOUND. They are instead ignored. * test/test-shell.c: (list_commands), (main): Fix some small problems in the test shell that I encountered while dealing with the bug. 2000-11-06 Maciej Stachowiak * data/mime/gnome-vfs.applications: Commented out entries for vi and lynx. This is the fix for 4468. 2000-11-06 Maciej Stachowiak * data/mime/gnome-vfs.applications, data/mime/gnome-vfs.keys: Some minor changes. Added Electric Eyes and made it the most preferred image viewer. Added ggv and made it more preferred than gv or ghostview for PDF viewing. Added proper entry for ogg123. Made mpg123 not require a terminal. Made mpg123 and xmms kmow that they handle secondary versions of various mime types. Made Acrobat the most preferred PDF viewer (if you've gone to the trouble of installing it, it's proably what you want). Changed editor preference order around a bit. 2000-11-05 Yukihiro Nakai * configure.in: Add sk(Slovak) to ALL_LINGUAS. 2000-11-03 Aaron Brick * gnome-vfs.applications: adobe acrobat can open multiple files. 2000-11-03 Mike Fleming * libgnomevfs/gnome-vfs-uri.c: (set_uri_element): Do it right this time 2000-11-03 Mike Fleming * libgnomevfs/gnome-vfs-uri.c: (set_uri_element): * test/test-uri.c: (main): "eazel-services:" needs to be treated like "http:" in Pavel's evil escaping fix. 2000-11-03 Robin * Slomkowski * configure.in: upped development version to 0.4.1.0 2000-11-03 Robin * Slomkowski * configure.in: upped version to 0.4.1 for release 2000-11-03 Darin Adler * modules/http-method.c: (do_get_file_info): Improved comments in here. 2000-11-03 Maciej Stachowiak Fix bugs 4445 and 2756. * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_application): Make `gnome_vfs_mime_get-default_application' fall back to the short list if the default application is not found in the path. * data/mime/gnome-vfs.keys: Set StarOffice as the default for "application/msword" and "application/vnd.ms-excel"; set the short list preference order to StarOffice, then Applix, then AbiWord and Gnumeric respectively (on the assumption that if you have the proprietary apps installed, you probably wnat to use them). 2000-11-02 Mike Fleming * libgnomevfs/gnome-vfs-uri.c: * modules/http-method.c: (http_status_to_vfs_result), (do_move): bugzilla.eazel.com bug 4225, http-method now correctly obeys force_replace (being FALSE) in do_move. Users can't accidentally delete files by naming them the same. 2000-11-02 Andy Hertzfeld * data/mime/gnome-vfs.keys: removed web browsers from the short list for webdav directories, since we don't want the buttons for launching web browsers to show up when looking at directories. 2000-11-02 Robin * Slomkowski * gnome-vfs.spec.in: updated summary and added junk fields for vendor and distribution 2000-11-02 Pavel Cisler * gnome-vfs.spec.in: Fill out the description fields. 2000-11-02 Robin * Slomkowski * configure.in: gnome-vfs 0.4 has been tagged as GNOME-VFS_0_4 and the version of cvs has been upped to 0.4.0 2000-11-02 Robin * Slomkowski configure.in: upped version number for release 2000-11-02 Aaron Brick * gnome-vfs.[ak]*s added support for adobe acrobat removed staroffice as default for MS files (pending bug 4372) 2000-11-02 Gene Z. Ragan Some more capplet cleanup. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (check_button_status), (initialize_edit_applications_dialog), (initialize_edit_components_dialog): Have the Add, Edit and Delete buttons in the Edit Applications dialog be enabled/disabled properly based on the contents of the application list. Remove Cancel button from the Edit Component and Edit Application dialog, as we currently do not have a way to roll back the changed made. 2000-11-02 Andy Hertzfeld * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_short_list_applications): made it only include applications from the supertype on the short list if there were no applications assigned to the specific type. * data/mime/gnome-vfs.keys: removed "lynx" from the text/html short list for novice and intermediate users. 2000-11-02 Darin Adler Fix bug 4377 (Crash in the http method as a result of a redirect). * modules/http-method.c: (do_get_file_info): Add missing check for NULL. 2000-11-02 Rebecca Schulman Fixed bug 4121, that the vault will ... * libgnomevfs/gnome-vfs-xfer.c: (copy_file): handle errors on closing, which is when the http module actually does the write back to the server * modules/http-method.c: (create_handle), (make_request): Check for the case when a put fails with eof, and assume it's because there was insufficient space; the xythos server isn't correctly reporting 507 (http protocol insufficient space) yet. 2000-11-02 Gene Z. Ragan Fixed bug 4319, Edit and Delete actions in Application List do not function * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (populate_default_applications_list), (initialize_edit_applications_dialog), (nautilus_mime_type_capplet_show_new_mime_window), (add_or_update_application), (add_item_to_application_list), (show_new_application_window), (show_edit_application_window), (delete_selected_application): Bunches of code to handle adding, editing and deletion of application/mime type mapping. * mime-type-capplet/nautilus-mime-type-capplet.c: (nautilus_mime_type_capplet_get_selected_item_mime_type): 2000-11-01 Aaron Brick * data/mime/gnome-vfs.[ak]*: added support for applixware changed default for .doc/.xls to staroffice added a handler (xanim) for video/[x-]msvideo 2000-11-01 Darin Adler Fix bug 4287 (Zope Studio-authored sites default to Icon View). * modules/http-method.c: (process_propfind_propstat), (process_propfind_response), (make_propfind_request): At Gene's request, rolled out his change. (do_get_file_info): New version of hack: don't do a propstat at all for root directories. 2000-11-02 Mathieu Lacage Fix bug 4299 hopefully. Need to test on my desktop machine first. * modules/http-method.c: (cache_check_directory), (do_get_file_info): make it always return text/html if we did a GET and there was a redirect. * test/test-shell.c: (do_info): add ability to display mime type. 2000-11-01 Gene Z. Ragan * modules/http-method.c: (process_propfind_propstat), (process_propfind_response), (make_propfind_request): Add hack variable to detect if x-directory/webdav has been returned for a root directory URL. If this is the case, return a value that causes HEAD to be called. 2000-11-01 Mathieu Lacage * configure.in: tweak efs configure. 2000-11-01 Aaron Brick * data/mime/gnome-vfs.keys: added handling for application/postscript 2000-11-01 Pavel Cisler Work on handling '?' in URIs properly, helping Darin with a broken URI query bug he is working on. * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-uri.c: (set_uri_element), (gnome_vfs_uri_new), (gnome_vfs_uri_new_private): Add a private version of gnome_vfs_uri_new that can optionally accept unknown uri schemes (methods). Added a very simple and hacky scheme-dependent URI escaping code. For now just made it escape reserved characters such as "?&=+", etc. get escaped for every scheme but "http", in which they are used as query separators, etc. Will need to redo this, having the individual modules handle the specifics at some point. For now this should help with our friendly website bugs. Added a call to the new routine that removes escaping from characters that don't need it. This will make uri matching, hashing, etc. work better for URIs that we originally receive in different escaped modes. * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_escape_set), (unescape_character), (gnome_vfs_unescape_string), (gnome_vfs_remove_optional_escapes), (gnome_vfs_make_uri_canonical), (gnome_vfs_make_path_name_canonical): Add new escaping call. Share existing escaping code with other routines. Simplify the existing gnome_vfs_unescape_string call a bit. Add a call that can be used by the URI "make canonical" machinery to un-escape characters that do not need to be escaped. Add a new gnome_vfs_make_uri_canonical call. remanmed gnome_vfs_make_canonical_pathname to gnome_vfs_make_path_name_canonical. * test/test-uri.c: (test_make_canonical_path), (test_make_canonical), (main): Add new tests for the features that I added. 2000-11-01 Gene Z. Ragan * modules/cdda-method.c: (do_check_same_fs): Return TRUE always. 2000-10-31 Mathieu Lacage * modules/http-method.c: (do_get_file_info): remove support for HEAD. We now do only a PROPFIND and a GET to get the information on a file. 2000-10-31 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (remove_file), (remove_directory), (copy_file), (move_items), (link_items): Fix 848 - Failed copy operations still cause an icon to appear. Made xfer callbacks only get called when items were successfully moved, created and removed. 2000-10-31 Gene Z. Ragan Fixed offset glitch. Now files are extracted properly. Disabled paranoia to improve speed. Only basic ripping is done with no error checking. * modules/cdda-method.c: (do_open), (do_read), (get_data_size): 2000-10-31 Pavel Cisler * AUTHORS: * NEWS: Updates for the upcoming release. * libgnomevfs/gnome-vfs-uri.c: Take out an old FIXME that has been fixed. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Set up the target uri so that an alert about a target not being writable can actually display the name. * test/test-shell.c: (main): Make the test-shell not cause GConf to display the super-annoying "Failed to respond to the SaveYourself ..." dialogs. 2000-10-31 Gene Z. Ragan * modules/cdda-method.c: (cdda_context_new), (get_track_index_from_uri), (do_open), (is_file_is_on_disc), (do_get_file_info), (do_open_directory): Unescape basenames when performing comparison operations on cached cddb data. 2000-10-31 Darin Adler * gnome-vfs.spec.in: Got rid of vendor again. Checking this in is a bad idea. See discussion in bug 3461 for details. 2000-10-31 Ali Abdin * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: * data/mime/gnome-vfs.mime: Temporary support for "audio/x-ogg" (until the mime issue is cleared up with the Ogg Vorbis crew) 2000-10-31 Darin Adler * gnome-vfs.spec.in: Add vendor. 2000-10-31 Gene Z. Ragan * modules/cdda-cddb.c: * modules/cdda-method.c: (cdda_context_new): Get proxy info using gconf. We are using the system keys that are shared by nautilus and ammonite. The only UI to change these values is in Nautolis right now. (do_is_local): Return TRUE (put_num), (write_wav_header): More cleanup. 2000-11-01 Ian McKellar * libgnomevfs/gnome-vfs-method.c: (load_module): Provide more verbose information when a module fails to load. * modules/http-method.c: (do_get_file_info): Fall back to using GET when PROPFIND and HEAD fail to return useful file info. See bug 4310. 2000-10-31 Gene Z. Ragan Made copying work. There is still an issue with more data being copied than requested. Will research problem more. * modules/cdda-method.c: (get_track_index_from_uri): Return index of uri in cdda table. (write_wav_header): Write wav format header data into a memory buffer. (do_open), (do_read): Call new routines above. * modules/Makefile.am: Remove module from official build 2000-10-30 Gene Z. Ragan * modules/Makefile.am: * modules/cdda-method.c: (do_open), (do_read), (get_data_size), (do_check_same_fs), (do_is_local), (put_num), (write_wav_header): * modules/default-modules.conf: More work in progress on cdda module. 2000-10-30 Darin Adler Fixed bug 4169 (Visiting "Services" several times causes future navigation to hang). * libgnomevfs/gnome-vfs-async-ops.h: Got rid of the error code result from gnome_vfs_async_cancel. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel): Got rid of the error code result from gnome_vfs_async_cancel. (async_open), (pthread_gnome_vfs_async_open_uri), (pthread_gnome_vfs_async_open), (async_open_as_channel), (pthread_gnome_vfs_async_open_uri_as_channel), (pthread_gnome_vfs_async_open_as_channel), (async_create), (pthread_gnome_vfs_async_create_uri), (pthread_gnome_vfs_async_create), (pthread_gnome_vfs_async_create_as_channel), (pthread_gnome_vfs_async_close), (pthread_gnome_vfs_async_read), (pthread_gnome_vfs_async_write), (pthread_gnome_vfs_async_create_symbolic_link), (pthread_gnome_vfs_async_get_file_info), (pthread_gnome_vfs_async_set_file_info), (pthread_gnome_vfs_async_find_directory), (async_load_directory), (pthread_gnome_vfs_async_load_directory), (pthread_gnome_vfs_async_load_directory_uri): Changed all the ops to not return error codes right away, and do all error reporting through callbacks. * libgnomevfs-pthread/gnome-vfs-job.h: Got rid of the error code result from gnome_vfs_async_cancel. * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_op_destroy), (execute_open), (execute_open_as_channel), (execute_create), (execute_create_symbolic_link), (execute_create_as_channel), (execute_load_directory_not_sorted), (execute_load_directory_sorted): For all the operations that now might have NULL for the URI, report an GNOME_VFS_ERROR_INVALID_URI. (gnome_vfs_job_cancel): Got rid of the error code result from gnome_vfs_async_cancel. * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_open), (gnome_vfs_async_open_uri), (gnome_vfs_async_open_as_channel), (gnome_vfs_async_create), (gnome_vfs_async_create_as_channel), (gnome_vfs_async_create_uri), (gnome_vfs_async_create_symbolic_link), (gnome_vfs_async_close), (gnome_vfs_async_read), (gnome_vfs_async_write), (gnome_vfs_async_get_file_info), (gnome_vfs_async_find_directory), (gnome_vfs_async_set_file_info), (gnome_vfs_async_load_directory_uri), (gnome_vfs_async_load_directory), (gnome_vfs_async_cancel), (gnome_vfs_async_remove_status_callback): Don't expect a result from the back end for most functions. Get rid of error checking and the fake idle-based callbacks for the errors noticed before entering the back end. * modules/http-method.c: (get_utime), (cache_init), (cache_shutdown), (cache_entry_new), (cache_trim), (defaults_file_info_new): Use (void) instead of () for functions with no parameters. * test/test-find-directory.c: Add missing #include . 2000-10-30 Gene Z. Ragan Added cdda module files to CVS. They are not currently built by default. The module is not yet complete. If you want to build it and see it break, you need to have libcdparanoia installed. You can download this at www.xiph.org. I have not yet done the debugging work to try and build against different install locations of the lib. I would reccomend not hacking on this until I clean up the rough edges. * modules/Makefile.am: Added comented out entries for cdda module * modules/default-modules.conf: Added comented out entry for cdda module * modules/cdda-cddb.c: * modules/cdda-cddb.h: (CDDBSum), (CDDBDiscid), (CDDBGenre), (CDDBGenreValue): * modules/cdda-cdrom-extensions.h: * modules/cdda-method.c: * modules/cdda-method.h: (cdda_context_new), (cdda_context_free), (cdda_set_file_info_for_root), (read_handle_new), (read_handle_destroy), (do_is_local), (do_open), (do_create), (do_close), (paranoia_callback), (do_read), (do_write), (display_toc), (open_cdda_device), (is_file_is_on_disc), (get_file_info_for_basename), (do_get_file_info), (do_open_directory), (do_close_directory), (get_data_size), (get_data_size_from_uri), (do_read_directory), (do_check_same_fs), (do_make_directory), (do_remove_directory), (do_move), (do_unlink), (vfs_module_init), (vfs_module_shutdown), (PutNum), (write_wav_header): 2000-10-29 Dan Winship * libgnomevfs/gnome-vfs-mime-sniff-buffer.c (gnome_vfs_mime_sniff_buffer_new_from_memory): Set read_whole_file to TRUE so it doesn't try to call the (non-existent) read callback. 2000-10-30 Pavel Cisler * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_unescape_string_for_display), (gnome_vfs_make_canonical_pathname): * libgnomevfs/gnome-vfs-utils.h: Add a public "make canonical path" call for callers that do their own uri disection. 2000-10-29 Pavel Cisler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_to_string): Make gnome_vfs_uri_to_string not interpret uris in the form foo:bar as foo://bar. This fixes a bug Mathieu is working on and fixes 2802. Get rid of an extra comma. * modules/file-method.c: (do_read): Tiny tweak. * test/test-uri.c: (test_uri_to_path), (main): Add some tests and tweak others to match the proper // handling. 2000-10-29 Eskil Heyn Olsen * gnome-vfs.spec.in: if $prefix/lib not in /etc/ld.so.conf, add it. 2000-10-28 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (progress_set_source_target_uris): Fix 4059 - Duplicated fiels don't appear in WebDAV until refres. This happened on any uris that required a name/password pair. It was a stupid bug where the notification callbacks were passed the name without a password. This was because the uri was used in the progress dialog display. It's no longer displayed in a raw form so fixing this is a simple matter of passing back the entire uri. 2000-10-28 Pavel Cisler * modules/http-method.c: (sig_gconf_value_changed), (http_proxy_for_host_port), (process_propfind_propstat), (propfind_href_to_vfs_uri), (null_handling_strcmp), (match_unescaped_uri_text), (process_propfind_response), (make_propfind_request), (do_open_directory), (do_read_directory), (do_get_file_info), (do_is_local), (do_make_directory), (do_remove_directory), (is_same_fs), (do_move), (do_unlink), (do_check_same_fs), (vfs_module_init), (vfs_module_shutdown): Fix 4110 - document icon instead of folder icon for subfolder... I found a fix to this one while working on 4059. The problem was that the webdav server was overzealous about escaping and was returning urls that had '(' escaped. This is not needed according to the RFC. A uri text compare was failing because of this. Changed the test to unescape before the comparison. I also took a stab at cleaning up the three or so formatting styles throught the code into the required style in at least a part of the file. 2000-10-27 Darin Adler Fixed bugs in set_file_info enough to make it suitable for use renaming files in Nautilus. Also fixed problems in the MIME data so Aaron has a clean starting point to add things and check them with the check-mime.pl script. * data/mime/gnome-vfs-mime-magic: Fix an entry that had a stray plus sign at the beginning of the line. * data/mime/gnome-vfs.applications: Fixed misspelled MIME types (I think Andy just introduced these). * data/mime/gnome-vfs.keys: The type must be text/htmlh, even if people think of it as text/htmlH, because we use all lower-case in the MIME files and MIME types are not case sensitive. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_set_file_info): Allow FOLLOW_LINKS option. There was no good reason to disallow it and we need it now in Nautilus. * libgnomevfs-pthread/gnome-vfs-job.c: (serve_channel_write): Get rid of gratuitous use of alloca. (execute_set_file_info): Use the correct URI to get info if the set info call renamed the file. Before, it would try to use the old URI even though the file had been renamed. * modules/ftp-method.c: (do_path_command): Add FIXME about bad handling of paths with escape sequences. (do_get_file_info_from_handle): Implemented this. (do_move): Add FIXME about ignoring force_replace. (do_set_file_info): Implement. * modules/http-method.c: (do_move): Add FIXME about ignoring force_replace. (do_set_file_info): Implement. * libgnomevfs/gnome-vfs-xfer.c: (call_progress_with_current_names): Make the action default to abort if you don't pass a callback instead of defaulting to retry. This caused an infinite loop when failing to rename a file. Also remove gratuitous include of alloca.h. * modules/file-method.c: (do_set_file_info): Add FIXME about file names with "/" in them. * modules/bzip2-method.c: Fix list of function pointers to include set_file_info (was out of sync.). * modules/gconf-method.c: Fix list of function pointers to include set_file_info (was out of sync.). * modules/gzip-method.c: Fix list of function pointers to include set_file_info (was out of sync.). * modules/pipe-method.c: Fix list of function pointers to include set_file_info (was out of sync.). * libgnomevfs/gnome-vfs-uri.c: Remove gratuitous include of alloca.h. * modules/ftp-method.h: Tweak. * libgnomevfs/gnome-vfs-private.h: Whitespace. * test/test-uri.c: Fixed a comment. 2000-10-26 Andy Hertzfeld * data/mime/gnome-vfs.keys: at Bart's request, made star office the default application for star office documents. * data/mime/gnome-vfs.applications: changed the path for invoking star office from "office52/soffice" to "soffice" so it works with a broader range of versions 2000-10-26 John Sullivan * test/test-uri.c: (main): Added test case and two FIXME bugs for test cases with odd results. 2000-10-26 John Sullivan * modules/http-method.c: (make_propfind_request): More cleanup of *handle_return handling. This stuff was revealed when I temporarily #defined DAV_NO_CACHE to investigate another bug. 2000-10-26 John Sullivan Crashed while fiddling around in WebDAV looking at some other bug. Found cause of crash, and cleaned up various callers of offending routine (make_request). Maybe this will improve general stability for WebDAV. * modules/http-method.c: (make_request): Fixed case where failure in gnome_vfs_inet_connection_create would cause this routine to leave *handle_return uninitialized (now it sets it to NULL); rearranged code a little to fix leaks. (do_create): Rearranged code slightly for clarity. (do_close): Fixed leak of handle. (make_propfind_request): combined handle and handle_return into single variable for clarity and to avoid leaks. (do_get_file_info): added assert, removed unnecessary handle = NULL line. (do_make_directory): clarified use of handle 2000-10-26 Darin Adler * libgnomevfs-corba/Makefile.am: * libgnomevfs-pthread/Makefile.am: * libgnomevfs/Makefile.am: * modules/Makefile.am: Use INCLUDES instead of CPPFLAGS like the automake documentation says. 2000-10-25 Rebecca Schulman * modules/http-method.c: (do_create): Fixed bugzilla bug 3865, that you couldn't duplicate vault files. The problem was that the do_create method was ignoring the "exclusive" flag, and so a copy would create a file and the create method would silently be ok and overwrite the file, as per http protocol defaults. We now check for existence first, by doing a "HEAD" request. 2000-10-25 Darin Adler * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: (gnome_vfs_mime_sniff_buffer_get): More fixes to this function. Made it no longer do the "no op" seeks. Got rid of the problem where it would only read one chunk if the buffer's seek pointer was NULL. Make the check at the end of the function be based on the actual size requested, rather than on the amount of data we decided to read (which could be more than the request). 2000-10-25 Mathieu Lacage * configure.in: fix LIBEFS check. add gtkdoc check. * devel-docs/gnome-vfs/gnome-vfs-decl.txt: * devel-docs/gnome-vfs/gnome-vfs-docs.sgml: avoid an obvious error when compiling. * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime-info.sgml: * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime.sgml: * devel-docs/gnome-vfs/tmpl/libgnome-vfs.sgml: regenerate templates... 2000-10-25 Darin Adler * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: (gnome_vfs_mime_sniff_buffer_get): Oops, got it wrong. This fixes another case that I missed. 2000-10-25 Darin Adler * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: (gnome_vfs_mime_sniff_buffer_get): Fixed error with the handling of a case where the file is smaller than the requested sniff buffer. The check was broken, and it also didn't set an error code to let the caller know there's insufficient data. * configure.in: Fixed check of gcc command-line switches to work properly even with -O. 2000-10-24 John Sullivan * data/mime/gnome-vfs.mime: Added extension-based MIME type entries for Word and Excel, since we want them to play nice with StarOffice at least. 2000-10-24 Rebecca Schulman Fixed a bug in the gnome vfs mime magic that we weren't actually seeking and reading the right chunks of files. Fixing this exposed a large performance problem related to mime types with magic numbers far into the file, so with Pavel's agreement, I remooved the microsoft mime types that are a 2x performance issue for the mime code. apparently, we never noticed they were working in the first place, but this really isn't an appropriate thing to do in the future. Also fixed a bug that the mime stuff was trying to reread after the end of the file again and again, but I don't think this helped performance as much as we first hoped. * data/mime/gnome-vfs-mime-magic: removed the microsoft mime types * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_magic_parse), redid this to detect the end of file case, (try_one_pattern_on_buffer), (gnome_vfs_mime_try_one_magic_pattern), (gnome_vfs_mime_get_magic_table), (gnome_vfs_sniff_buffer_looks_like_text): fixed indenting * libgnomevfs/gnome-vfs-mime-sniff-buffer-private.h: added the "read_whole_file" entry to the sniff buffer struct * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: (gnome_vfs_mime_sniff_buffer_get): don't read if we've already read the whole file * libgnomevfs/gnome-vfs-mime.c: (file_seek_binder): Fix mistake where we'd swapped two arguments of fseek. Amazingly, it worked anyways, that way. :) 2000-10-24 John Sullivan * modules/ftp-method.c: (do_read_directory): added FIXME about not following symlinks 2000-10-24 John Sullivan * data/mime/gnome-vfs.keys: Added entry for audio/x-mpeg, which is returned by some web servers instead of the audio/x-mp3 that gnome-vfs knew about. 2000-10-23 Pavel Cisler More work on 2989, this should conclude the GnomeVFS portion of the work. * libgnomevfs/gnome-vfs-find-directory.c: Add comments about the meaning of the parameters. * modules/file-method.c: (find_trash_in_hierarchy), (try_creating_trash_in), (save_trash_entry_cache), (update_one_cached_trash_entry), (add_local_cached_trash_entry), (read_saved_cached_trash_entries), (create_trash_near), (find_locally_cached_trash_entry_for_device_id), (find_or_create_trash_near), (find_trash_directory), (do_find_directory): Add a logic where the create_if needed flag can be specified without the find_if_needed to signify that we want to just create the Trash in the right place without first searching for an existing one. Fix a bug where a newly created Trash item would not get cached. Fix a leak in read_saved_cached_trash_entries. Fix a bug in create_trash_near that would cause the call to try create in one directory above the disk we asked to create it. Added some debugging code. Tons of cleanup and comments. 2000-10-24 Grahame Bowland * AUTHORS: * modules/Makefile.am: * modules/default-modules.conf: * modules/nfs-method.c: * modules/nfs-method.h: * modules/nfs-method_mount.h: * modules/nfs-method_mount_xdr.c: * modules/nfs-method_nfs_prot.h: * modules/nfs-method_nfs_prot_xdr.c: Added initial NFS support to gnome-vfs. Read-only support reasonably stable; write support is not. Symlinks are one notable problem that will be fixed in the near future. 2000-10-23 Mike Fleming * modules/http-method.c: Turn off debugging spew, add myself to the "Authors" comment 2000-10-22 Mike Fleming * modules/http-method.c: (cache_add_uri_and_children), (process_propfind_response), (make_propfind_request): Caching and processing propfind requests now actually works with filenames containing escape characters (bugzilla.eazel.com bug 3875) 2000-10-22 Kjartan Maraas * data/mime/gnome-vfs.keys: Started adding Norwegian translations to this. 2000-10-20 Pavel Cisler * modules/file-method.c: (mkdir_recursive), (update_one_cached_trash_entry), (add_local_cached_trash_entry), (read_saved_cached_trash_entries): Fix mkdir_recursive to not bail before creating the last directory level. Fix find_directory trash entry caching to update an existing cache entry when new Trash gets created instead of just adding a new entry. Fix a test that checked if a trash directory existed and was backwards. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_extract_short_name): Small unescaping tweak. 2000-10-20 Pavel Cisler * modules/file-method.c: (mkdir_recursive): Fix an "extra increment" bug and a memory leak. Tweak the path for saving the trach entry cache file. * modules/file-method.c: (read_saved_cached_trash_entries): Removed a confused g_warning for a case that is legal. 2000-10-20 Pavel Cisler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): Fix a memory trasher Mathieu found. 2000-10-20 Michael Engber * libgnomevfs/gnome-vfs-xfer.c: (copy_directory): progress callbacks used to get called in situations when they shouldn't (error or skip cases). 2000-10-20 John Sullivan * data/mime/gnome-vfs.keys: * data/mime/gnome-vfs.mime: Changed staroffice types from "x-soffice-*" to "x-staroffice-*" after user reported such a MIME type. 2000-10-20 John Sullivan * data/mime/gnome-vfs.keys: Added text/htmlH, which is used by the help system; also moved application/mime-type-test to alphabetical order so check-mime.pl doesn't gripe about it. 2000-10-20 John Sullivan * libgnomevfs/gnome-vfs-async-ops.h: Added missing include that was making this not standalone. This was uncovered by a Nautilus extra-includes-removing pass that caused build breakage. 2000-10-20 Pavel Cisler Work on bug 2989, not done yet. * modules/file-method.c: (mkdir_recursive), (match_trash_item_by_device_id), (find_disk_top_directory), (save_trash_entry_cache), (add_local_cached_trash_entry), (add_cached_trash_entry), (destroy_cached_trash_entry), (read_saved_cached_trash_entries), (create_trash_near), (cached_trash_entry_exists), (find_locally_cached_trash_entry_for_device_id), (find_cached_trash_entry_for_device), (find_trash_near), (find_trash_directory), (do_find_directory): Add a two level caching scheme for remembering trash folder locations. This will help us only do the long search for a Trash directory do the first time Nautilus ever runs or if a Trash directory gets moved manually by the user to a different place. In addition to caching the locations in a list in memory we now also save them into a file in the user home settings directory. Disks that have not had a Trash directory created on them are marked as such and next time Nautilus is run, they are not searched unless the user specifically requests a Trash directory to get created (by throwing something from the respective directory to the Trash). I still need to test/fix bugs in this. * test/test-find-directory.c: (main): Tweak test code to help debug the new code. 2000-10-19 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (empty_directory): Fix bugs 3861 and 3882 - emptying the Trash containing items with fancy names. Neither was PR2 but I noticed the bug and it was trivial to fix. 2000-10-18 Mike Fleming * modules/http-method.c: (make_propfind_request): See John, I told you that EOF change would break stuff :) (minor case of internal use of do_read not expecting the EOF error) 2000-10-18 Mike Fleming * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): Return GNOME_VFS_ERROR_NOT_SUPPORTED instead of ERROR_GENERIC when this call is attempted on a non-local filesystem. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Ignore errors from gnome_vfs_get_volume_free_space, which doesn't work on non-local filesystems * modules/http-method.c: (http_status_to_vfs_result), (make_propfind_request), (do_make_directory), (do_remove_directory): Enhance HTTP error to GNOME VFS error mapping Make MKCOL return correct code when directory already exists (was preventing Nautilus Duplicate from working) This should fix bugzilla.eazel.com 3735 2000-10-18 John Sullivan * modules/http-method.c: (do_read): Made http module return GNOME_VFS_ERROR_EOF when it reads 0 bytes. It was confusing clients by returning GNOME_VFS_OK in this state. 2000-10-17 Pavel Cisler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_extract_short_name): Fix 1087 - gnome_vfs_uri_extract_short_name should probably unescape. It already was but it was using the wrong unescape funciton. 2000-10-18 Pavel Cisler Fix 2763 - "the uri code does not handle ../ and ./ like the RFC says it should" * libgnomevfs/gnome-vfs-private-utils.c: (find_next_slash), (find_slash_before_offset), (collapse_slash_runs), (gnome_vfs_canonicalize_pathname): Redo the routine that converts paths to a canonical form, fix all the bugs I found. * test/test-uri.c: (test_canonicalize), (main): Add a test suite for converting paths to canonical form and converting uris to canonical form. * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri), (set_uri_element): Get rid of unused macros, testing code that is no longer needed and some incorrect commented out code. 2000-10-17 Darin Adler * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_new): * modules/http-method.c: (make_propfind_request), (do_get_file_info): * modules/test-method.c: (load_config_file), (do_move), (do_check_same_fs), (vfs_module_init): * test/test-uri.c: (main): Marked FIXMEs with bug numbers. 2000-10-17 Pavel Cisler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): Fix bug 2840 - URI parsing works wrong for URIs with # characters. The substring after '#' was being improperly parsed. * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_append_string), (gnome_vfs_uri_append_path): * libgnomevfs/gnome-vfs-xfer.c: (empty_directory), (PrependOneURIToList), (copy_items), (move_items), (link_items), (gnome_vfs_new_directory_with_unique_name): Made gnome_vfs_uri_append_path escape the supplied path for convenience. New gnome_vfs_uri_append_string now replaces the original behavior that expects the supplied uri part to be properly escaped. Hopefully this will be somewhat less confusing and easier to use. Used gnome_vfs_uri_append_string as needed in code that relied on old gnome_vfs_uri_append_path behavior. * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new), (destroy_element), (gnome_vfs_uri_dup), (gnome_vfs_uri_to_string), (gnome_vfs_uri_get_fragment_identifier): Added proper support for uri fragment identifiers, this seemed like a necessary addition to fixing bug 2840 properly. Fragment identifiers are now stored in a special field of GnomeVFSURI and they no longer get returned as a part or the uri path or stripped. They can be optionally excluded by gnome_vfs_uri_to_string using the new GNOME_VFS_URI_HIDE_FRAGMENT_IDENTIFIER flag. * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): Fix a bug where host_return was incorrectly checked causing "/" to always get appened to the resulting uri text. * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri_old), (uri_strspn_to), (split_toplevel_uri), (parse_uri_substring), (gnome_vfs_uri_new), (gnome_vfs_uri_dup), (gnome_vfs_uri_append_string), (gnome_vfs_uri_append_path), (gnome_vfs_uri_append_file_name), (gnome_vfs_uri_to_string), (string_match), (compare_elements), (gnome_vfs_uri_equal), (gnome_vfs_uri_is_parent), (gnome_vfs_uri_get_path), (gnome_vfs_uri_get_basename), (gnome_vfs_uri_extract_dirname), (gnome_vfs_uri_extract_short_name), (gnome_vfs_uri_extract_short_path_name) Ton of cleanups. * test/test-uri.c: (test_file_path_to_uri_string), (test_uri_has_fragment_id), (main): Add tests for new fragment identifier support. Fix up/extend tests for extended uri support. Add test for path escaping/unescaping. Eliminate FIXMEs that were fixed by this. 2000-10-17 Jarkko Ranta * configure.in: added fi to all_linguas 2000-10-16 Ramiro Estrugo * gnome-vfs.spec.in: Add gnome-vfs.applications. This fixes the problem where users using snapshot rpms where not getting sidebar buttons or "Open With" menu items. Thanks for Jurgen for pointing this out. 2000-10-16 Gene Z. Ragan Fixed bug 3042, Adding new mime type doesn't work. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): * mime-type-capplet/nautilus-mime-type-capplet.c: (add_mime_clicked): Write proper description key. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_add_extension): Work in progress on adding user defined extensions 2000-10-16 Gene Z. Ragan Fixed bug 3040, Action column has wrong contents Corrected an instance where text was not getting freed and reset. Also fixed a few leaks in the list population code. * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_application_menu), (populate_viewer_menu), (add_mime_clicked), (populate_mime_list): 2000-10-16 Ramiro Estrugo * modules/file-method.c: Include to get the prototype for rename(). 2000-10-14 Ian McKellar * modules/ftp-method.c: (dircache_setup), (dircache_expire): Initial caching support. Currently disabled. (do_path_transfer_command): Fix for empty paths. (ftp_connection_create), (ftp_connection_destroy), (ftp_connection_aquire), (ftp_connection_release): Count connections for debugging purposes. (ls_to_file_info), (do_get_file_info), (do_open_directory), (do_read_directory): * modules/ftp-method.h: Initial symlink expansion support * test/test-directory.c: (print_list): Better symlink debugging output. 2000-10-12 Mike Fleming * modules/http-method.c: Added define from GMan to make it compile under Solaris (hopefully) 2000-10-12 Martin Baulig * libgnomevfs-corba/gnome-vfs-slave.c (impl_Request_get_file_info): Call CORBA_string_dup() on p->name, p->symlink_name and p->mime_type. 2000-10-12 Grahame Bowland * libgnomevfs/gnome-vfs-result.c: (gnome_vfs_result_from_errno_code), (gnome_vfs_result_from_errno): * libgnomevfs/gnome-vfs-result.h: Added a gnome_vfs_result_from_errno_code convenience call. 2000-10-11 Mike Fleming * modules/http-method.c: Oops. I left the debug messages on 2000-10-11 Mike Fleming * modules/http-method.c: (propfind_href_to_vfs_uri): Forgoet a NULL on g_strconcat, as I'm prone to. 2000-10-11 Darin Adler Fixed broken remnants of support for building without GConf. * libgnomevfs/gnome-vfs-mime-handlers.c: (unref_gconf_engine), (get_user_level): Fixed code to work with new GConf. It was still using the pre-0.9 GConf API, but it was inside HAVE_GCONF conditionals which were always false. * Makefile.am: Removed HAVE_GCONF conditionals.. * configure.in: Removed broken code to set up HAVE_GCONF and GCONF_CONFIG. * modules/Makefile.am: Removed HAVE_GCONF conditionals. 2000-10-10 Mike Fleming * modules/http-method.c: (propfind_href_to_vfs_uri), (process_propfind_response): ugly hack: Eazel Vault returns "https" URI's in propfind requests, which was causing DAV to choke. 2000-10-09 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (PrependOneURIToList), (non_recursive_empty_directory), (remove_directory), (gnome_vfs_xfer_empty_trash): work on 825 - Inability to empty Trash after trashing a deeply nested directory. Added a fallback call that builds a uri list first without keeping directory file descriptors opened. 2000-10-09 Glynn Foster * configure.in: * libgnomevfs/gnome-vfs-utils.c: (istr_has_prefix), (gnome_vfs_get_volume_free_space): Added Solaris-specific changes to needed for getting the free volume space. 2000-10-09 Robin * Slomkowski * configure.in: upped the version to 0.3.1.0 as 0.3.1 has already been released many moons ago 2000-10-05 Mike Fleming * modules/http-method.c: (http_proxy_for_host_port), (vfs_module_init): When HTTP proxy is enabled, proxy is explicitly bypassed for "localhost" and "127.x.x.x.". We'd like to have a general configuration mechanism for non-proxy URL's in the future. This was causing bugzilla.eazel.com 3492 Also fixed some debug messages to work with the new gconf 2000-10-05 Ramiro Estrugo * modules/http-method.c: (vfs_module_init): Workaround a bug in gconf by not preloading a directory that is monitored. 2000-10-04 Pavel Cisler * libgnomevfs/gnome-vfs-utils.c: Move includes around to unbreak the build on Linux. 2000-09-21 Chris Toshok * configure.in: add checks for sys/vfs.h and sys/mount.h * libgnomevfs/gnome-vfs-utils.c: sys/vfs.h doesn't exist on some systems, so wrap #if HAVE_SYS_VFS_H. if there's no sys/vfs.h, try sys/mount.h. also, include sys/param.h if it's available (since including sys/mount.h on freebsd without first including sys/param.h breaks, at least in some versions of 4.x.) 2000-10-04 Ramiro Estrugo * acconfig.h: * configure.in: Add profiling support via --enable-profiler. 2000-10-03 Mike Fleming * data/mime/gnome-vfs.keys: bugzilla.eazel.com 2854 Icon view is now the default Nautilus view for viewing DAV-enabled HTTP directories 2000-10-03 Ramiro Estrugo * configure.in: * gnome-vfs.spec.in: * modules/gconf-method.c: (read_directory): * modules/http-method.c: (sig_gconf_value_changed), (vfs_module_init): Update for GConf HEAD (0.9) 2000-10-03 Christophe Merlet * data/mime/gnome-vfs.keys: Added french strings. 2000-10-02 Mike Fleming More file info caching stuff. Now caches the contents of directories (for a fairly short time). This still doesn't squeeze out as much performance as I had hoped, mostly because of Nautilus's habit of hitting ".nautilus-metafile.xml"'s . Negative caching and updating of the cache following method invocation (rather than just invalidating) could improve performance greatly. * modules/http-method.c: (cache_init), (cache_shutdown), (cache_entry_free), (cache_uri_to_string), (cache_check_directory), (cache_check_directory_uri), (cache_add_no_strdup), (cache_add), (cache_add_uri_and_children), (cache_invalidate_entry_and_children), (cache_invalidate_uri_and_children), (cache_invalidate_uri_parent), (make_request), (do_create), (do_close), (make_propfind_request), (do_open_directory), (do_make_directory), (do_remove_directory), (do_move): 2000-10-02 Mike Fleming * modules/http-method.c: (do_open_directory): Fix foolish crasher 2000-10-02 Mike Fleming * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_clear), (gnome_vfs_file_info_ref), (gnome_vfs_file_info_unref), (gnome_vfs_file_info_copy): Made the GnomeVFSFileInfo ref count mechanism thread-safe (increments and decrements are not guarenteed to be atomic) * modules/http-method.c: (my_debug_printf), (get_utime), (cache_init), (cache_shutdown), (cache_entry_new), (cache_entry_free), (cache_trim), (cache_check), (cache_uri_to_string), (cache_check_uri), (cache_check_directory), (cache_add_no_strdup), (cache_add), (cache_add_uri_and_children), (cache_add_uri), (cache_invalidate), (cache_invalidate_uri), (cache_invalidate_entry_and_children), (check_header), (parse_header), (get_header), (create_handle), (make_request), (process_propfind_propstat), (process_propfind_response), (make_propfind_request), (do_open_directory), (do_read_directory), (do_get_file_info), (do_move), (vfs_module_init), (vfs_module_shutdown): Add the first phase of file info caching for DAV. (These code paths are not executing for non-DAV sites). Caching is on by default now. 2000-10-02 Kjartan Maraas * gnome-vfs.spec.in: Really fix installation of the man page with rpm-4.0. The newer version compresses the man pages by default. Used *.5* instead of *.5.gz 2000-09-30 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_text): Fix a MIME sniffing bug that Bud was seeing where 0-byte files would show up as text/plain. * libgnomevfs/gnome-vfs-xfer.c: (remove_directory): Part I of fix to 1314 - Move to Trash faild if name conflict in trash. * libgnomevfs/gnome-vfs-xfer.c: (empty_directory): Handle errors during emptying directories properly. * libgnomevfs/gnome-vfs-xfer.c: (xfer_create_target), (move_items), (link_items): Cleanups. Rework the duplicate handling code. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_destination_is_writable), (gnome_vfs_xfer_uri_internal): Cleanups. Make the non-writable destination error and out of space on disk error get reported. Make the non-writable destination check only check on local file systems. Make the non-writable destination check clean up after a botched previous check that left behind a temporary file. 2000-09-29 Darin Adler * gnome-vfs.spec.in: Turn off "make check" again. For some reason it still fails on the Tinderbox, even with the LD_LIBRARY_PATH problem fixed. 2000-09-29 Eskil Heyn Olsen * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_list), (gnome_vfs_xfer_uri), (gnome_vfs_xfer_delete_list): Fixed the g_return_val_if_fails. 2000-09-29 John Sullivan Fixed bug I ran into where I would crash at Nautilus startup due to the presence of a NautilusDirectory for "file://.Trash-sullivan" * modules/file-method.c: (append_trash_path): Special-case "/" to avoid creating non-canonical "//.Trash" uris. (do_find_directory): convert path to uri before calling gnome_vfs_uri_new. 2000-09-29 Darin Adler * test/test-uri.c: (main): Added a test to demonstrate how badly gnome_vfs_uri_new handles paths that start with "//". 2000-09-29 Darin Adler * gnome-vfs.spec.in: Turn "make check" back on. * test/Makefile.am: Fix tests so they work even before gnome-vfs is installed for the first time. This has a nice side effect of making the test actually test the compiled code, not a previously installed version. 2000-09-29 J Shane Culpepper * test/gnome-file-selection/gnome-file-selection-history.c: * test/test-dirop.c: * test/test-escape.c: * test/test-mime-handlers-set.c: * test/test-mime-handlers.c: * test/test-mime-info.c: * test/test-mime.c: * test/test-sync-create.c: * test/test-sync-write.c: * test/test-sync.c: * test/test-unlink.c: * test/test-uri.c: Fixing heaps of inlined function errors. The new redhat compilers do not recognize functions like exit, strcmp, etc without the correct header anymore. gnome-vfs now builds happily on RedHat 7.0. 2000-09-29 J Shane Culpepper * libgnomevfs/gnome-vfs-directory-filter.c: Adding include so that above file builds right on newer compilers. 2000-09-29 Darin Adler * gnome-vfs.spec.in: Turn off "make check" since it doesn't work until the library is installed because of the back end. * test/test-uri.c: (main): Add some test cases. 2000-09-29 Darin Adler * gnome-vfs.spec.in: Make RPM builds do "make check" and also make them compile with warnings on. This make the Tinderbox more strict. Also use "make -k" so we get more errors at once on the Tinderbox. Errors are still errors, we just see more of them. * libgnomevfs/gnome-vfs-xfer.c: (system_time), (init_progress): Fix code to not use LL explicitly since that's not as portable as gint64 is. (init_progress): Got rid of code initializing the same fields to NULL twice. (empty_directory), (copy_items), (move_items), (link_items), (gnome_vfs_new_directory_with_unique_name): Change code to use file names in URI encoded form throughout. No unescaping in here. This was all done by changing which GnomeVFSURI calls we use. 2000-09-28 Ramiro Estrugo * configure.in: Switch the order of assignment of warnings to CFLAGS so that they can be overridden by the user at configure time. 2000-09-28 Mike Fleming Fixed file_info refcounting issues associated with _clear and _copy. (_clear retains the refcount; _copy leaves the refcount of the destination alone). Changed _init, _ref, and _unref to clarify that ref-counting a file_info that was allocated on the stack is illegal. Added _dup function. * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_init), (gnome_vfs_file_info_clear), (gnome_vfs_file_info_ref), (gnome_vfs_file_info_unref), (gnome_vfs_file_info_copy), (gnome_vfs_file_info_dup): * libgnomevfs/gnome-vfs-file-info.h: 2000-09-28 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_delete_items), (gnome_vfs_xfer_uri_list), (gnome_vfs_xfer_uri), (gnome_vfs_xfer_delete_list): * libgnomevfs/gnome-vfs-xfer.h: Add a gnome_vfs_xfer_delete_list call to match the feature that already exists in gnome_vfs_xfer_async. Andy needed this code for theme deleting. 2000-09-28 Mike Fleming * libgnomevfs/gnome-vfs-iobuf.c: (gnome_vfs_iobuf_read): * modules/http-method.c: (http_file_handle_new), (get_header): I decided that the previous fix wasn't that great of an idea and fixed the caller of gnome_vfs_iobuf-read. 2000-09-28 Mike Fleming * libgnomevfs/gnome-vfs-iobuf.c: (gnome_vfs_iobuf_read): gnome_vfs_iobuf_read was returning GNOME_VFS_OK if a read was attempted at the end of file. It now correctly returhns GNOME_VFS_ERROR_EOF. 2000-09-29 Ian McKellar * modules/ftp-method.c: (ls_to_file_info), (do_read_directory): Fixed a bug where NULL was being returned for the mime-type for files whose type was unknown. Fixed a bug where a reading a directory would busy-loop forever on an empty string. 2000-07-28 Christophe Merlet * mime-type-capplet/nautilus-mime-type.desktop: Added the French strings. 2000-09-27 Mike Fleming get_file_info now makes a PROPFIND before a HEAD request, and does not make HEAD requests if the PROPFIND succeeds. This cuts down the number of HTTP requests made when working against a DAV server. Did some additional cleanup while I was at it. * modules/http-method.c: (defaults_file_info_new), (http_file_handle_new), (http_file_handle_destroy), (set_content_length), (set_content_type), (set_last_modified), (set_access_time), (create_handle), (make_request), (http_handle_close), (do_open), (do_create), (do_close), (do_write), (do_read), (process_propfind_response), (make_propfind_request), (do_open_directory), (do_close_directory), (do_read_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_is_local), (do_make_directory), (do_remove_directory), (do_move), (do_unlink): 2000-09-27 Darin Adler * libgnomevfs-pthread/gnome-vfs-job.c: (execute_xfer): Fix a double-destroy I introduced with my change to gnome_vfs_op_destroy yesterday. 2000-09-27 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (try_one_pattern_on_buffer), (gnome_vfs_mime_try_one_magic_pattern): * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: Some micro optimizations for calls that get executed a lot and show up high in profiles. 2000-09-26 Darin Adler More storage leak fixes. * libgnomevfs-pthread/gnome-vfs-job.c: (free_get_file_info_data): Free the URI list. (free_find_directory_data): Free the URI list. (gnome_vfs_op_destroy): Free the reference string in the create_symbolic_link case, the sort rules and pattern in the load_directory case, and the source and target URI lists in the xfer case. (execute_load_directory): Don't free the sort rules and pattern here any more since it's now done in the common cleanup (for both successful and cancelled operations). * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_create_symbolic_link): Whitespace. 2000-09-26 Darin Adler Fixed some quit time deallocation stuff to be better for leak checking purposes. * libgnomevfs-pthread/gnome-vfs-job-slave.h: * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): (gnome_vfs_job_create_slave), (gnome_vfs_thread_backend_shutdown): Got rid of the thread count and the related mutex, since we use a job count instead. Since the job count is manipulated only on the main thread, we don't need volatiles or mutexes. * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_new): Increment the job count. (gnome_vfs_job_finish_destroy): Decrement the job count. (gnome_vfs_job_get_count): Return the job count. * libgnomevfs/gnome-vfs-backend.h: * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_backend_get_job_count): Add a way to get the job count from the back end to replace the old way of getting a thread count from the back end. * test/test-async-cancel.c: (wait_until_vfs_threads_gone), (wait_until_vfs_threads_gone_no_main), (main): Use the job count instead of the thread count. 2000-09-25 John Sullivan * modules/http-method.c: (make_request): This routine was assuming there was a valid hostname, but for cases like "http://foo:" there was not. Now checks for NULL hostname and returns GNOME_VFS_ERROR_INVALID_URI. 2000-09-25 Pavel Cisler * test/test-async-directory.c: (test_read_file_close_callback), (test_read_file_succeeded), (test_read_file_failed), (test_read_file_read_callback), (test_read_file_read_chunk), (test_read_file_open_callback), (test_read_file_async), (directory_load_callback), (main): Add optional file read testing to the directory async test for performance measurement. 2000-09-25 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_job_callback), (gnome_vfs_job_new): Remove some unnecessary thread startup synchronization to speed up job creation. * libgnomevfs/gnome-vfs-mime-magic.c: (try_one_pattern_on_buffer): Tweak a routine that gets called a lot to gain a bit of performance. * test/test-async-directory.c: (directory_load_callback), (main): Some small tweaks. 2000-09-23 Mike Fleming * modules/translate-method.c: (tr_uri_translate): Removed dead FIXME (bugzilla.eazel.com 2798) 2000-09-23 Mike Fleming * modules/translate-method.c: (tr_exec_open_child), (tr_exec_do_retain), (tr_handle_exec): Make vfs-translate's -exec -retain more robust. Leaking processes is less likely; processes are restarted if they die 2000-09-22 Mike Fleming * modules/http-method.c: (http_handle_close): A NULL iobuf was being destroyed, which caused an assertion to be raised. 2000-09-22 Darin Adler * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_open_callback), (dispatch_create_callback), (dispatch_open_as_channel_callback), (dispatch_create_as_channel_callback), (dispatch_load_directory_callback), (dispatch_get_file_info_callback), (free_get_file_info_data), (dispatch_find_directory_callback), (free_find_directory_data), (dispatch_set_file_info_callback), (dispatch_job_callback), (gnome_vfs_op_destroy), (execute_get_file_info), (execute_set_file_info): Fixed tons of storage leaks that happened when an operation was cancelled by freeing things stored in the GnomeVFSOp when the GnomeVFSOp is deleted instead of at callback time. Fixes bug 2746 (leak in cancelled gnome_vfs_xfer call). (execute_load_directory_not_sorted): Fixed a storage leak caused by allocating an info before checking for cancellation and then exiting without freeing it. * libgnomevfs/gnome-vfs-method.c: (gnome_vfs_add_module_to_hash_table), (gnome_vfs_method_get), (gnome_vfs_transform_get): Changed the name of "fill_hash_table" to "gnome_vfs_add_module_to_hash_table" to make the it easier for the leak checker (currently in the Nautilus source module, but useful for any program) to recognize this as an exception to the normal rules about what leaks are. A bit of a hack; alternatives include adding code to free things at exit time. 2000-09-22 Mike Fleming * modules/http-method.c: (http_file_handle_new), (http_file_handle_destroy), (do_close): Fixed lack-of-URI-refcounting problem and deleted a misplaced iobuf_write call. Markedly increases stability of DAV under vfs-translate. 2000-09-21 Andy Hertzfeld * data/mime/gnome-vfs.keys: dropped the prefix on the newly added icons names for music and spreadsheet, so it can choose the right icon to use 2000-09-22 Ian McKellar * modules/http-method.c: (make_propfind_request): Fixed bug 2655: Only request the WebDAV properties we're interested in. 2000-09-21 Andy Hertzfeld * data/mime/gnome-vfs.keys: tweaked the mime-types to use Susan's new icons for music and spreadsheet files. 2000-09-21 Mathieu Lacage * libgnomevfs/gnome-vfs-private-utils.c: (gnome_vfs_canonicalize_pathname): make it not transform 'method://foo' to 'method://foo.' * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri): make it differentiate 'method://foo/' from 'method://foo' * modules/ftp-method.c: (do_path_command), (do_path_transfer_command), (ftp_connection_create), (ls_to_file_info), (do_open_directory): fix to handle the fact the gnome_vfs_uri_get_path can return a string of length zero. * modules/http-method.c: (make_request): handle the same special case as above. * test/test-uri.c: (main): add tests to test my new stuff. 2000-09-21 Darin Adler Fixed code that was creating a separate "job slave" object that was never really used. Fixes a storage leak. * libgnomevfs-pthread/gnome-vfs-job-slave.h: * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): Changed to take a GnomeVFSJob pointer instead of GnomeVFSJobSlave. (gnome_vfs_job_create_slave): Replaced the old gnome_vfs_job_slave_new with this simpler function. Also removed a lot of unused functions. * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_new): Use the new gnome_vfs_job_create_slave instead of gnome_vfs_job_slave_new and don't even try to keep a slave pointer around. 2000-09-21 Rebecca Schulman * libgnomevfs/gnome-vfs-directory-filter.c: (common_filter): * libgnomevfs/gnome-vfs-types.h: Added the filter type no dot files 2000-09-21 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (copy_file_data): Properly handle GNOME_VFS_ERROR_EOF. Fixes bugzilla 3225. 2000-09-21 Mike Fleming * gnome-vfs.spec.in: * configure.in: Added dependency to gconf-gtk; Moved GConf dependency to 0.8.0 * modules/Makefile.am: * modules/http-method.c: (sig_gconf_value_changed), (host_port_from_string), (http_proxy_for_host_port), (make_request), (make_propfind_request), (vfs_module_init), (vfs_module_shutdown): HTTP module now supports HTTP proxies. HTTP proxy is gotten from GConf key /system/gnome-vfs/http-proxy. This makes the HTTP module dependent on GConf. 2000-09-21 John Sullivan * mime-type-capplet/nautilus-mime-type-capplet.c: (mime_list_selected_row_callback): Removed an outdated FIXME. 2000-09-20 Gene Z. Ragan Found a case where a URI was used unitialized. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): 2000-09-20 Gene Z. Ragan Fixed a bug where transferring symbolic links from an ftp site would crash nautilus. Links are now properly identified. * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_stat_to_file_info): Handle symbolic links. * libgnomevfs/gnome-vfs-xfer.c: (copy_directory), (copy_items): Replace some plain asserts with assert_unreachable * modules/ftp-method.c: (get_response), (do_control_write), (ftp_connection_aquire), (ftp_connection_release), (ls_to_file_info), (do_get_file_info): 2000-09-20 Darin Adler * data/mime/gnome-vfs.applications: Both EOG and The Gimp had entries that claim they can handle URIs, but the versions of these programs that I have can't. * libgnomevfs/gnome-vfs-configuration.c: (parse_line): * libgnomevfs/gnome-vfs-mime-info.c: (does_string_contains_caps): On IRC, gmorten pointed out that we must cast to unsigned char before calling functions like isspace and isupper. There are probably other cases of this mistake here and in Nautilus, but here are some fixes. * libgnomevfs/gnome-vfs-gen-mimedb.c: Removed an unnecessary include of . * test/test-uri.c: (main): Fixed some typos and enabled some tests. We like to put the "wrong" results in here with a FIXME instead of commenting out the tests altogether. 2000-09-20 Gene Z. Ragan Renabled and cleaned up read only volume check. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): 2000-09-20 Gene Z. Ragan Fixed bug 1214, check if copy destination has enough room. This only works for local file systems. * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_get_volume_free_space): New function that gets free space on volume * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Call gnome_vfs_get_volume_free_space () before copy. 2000-09-20 Maciej Stachowiak * modules/file-method.c (do_read): Report EOF on EOF. 2000-09-20 Ian McKellar * modules/Makefile.am: * modules/test-method.c: (load_config_file): Little fixes for test-method. * modules/ftp-method.c: (do_path_command_completely), (do_transfer_command), (end_transfer), (do_create), (do_write): * test/test-remote: Fixing FTP issues raised by test-remote. 2000-09-19 Gene Z. Ragan Backing out previous change until current work on free space calculation is done as well. Work in progress on verifying free space on target copy location. * libgnomevfs/gnome-vfs-utils.c: (str_has_prefix), * libgnomevfs/gnome-vfs-utils.h: (gnome_vfs_get_volume_free_space): New function to return free space on destination volume. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Commented out checks until code is complete. 2000-09-19 Gene Z. Ragan Fixed bug 1213, add a check to figure out if destination is writable. Call gnome_vfs_open_uri () on destination and return error if one is returned. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): 2000-09-18 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-info.c: (context_new), (load_mime_list_info_from): fix on fixup on fix on my previous commit. This parser code is truly evil but it now works both for me and dan. Remove the ":" at the end of old .mime file format when reading. 2000-09-18 Maciej Stachowiak Rename "foobar" module to "test". * modules/Makefile.am: * modules/default-modules.conf: * modules/foobar-method.c: * modules/test-method.c: (translate_uri), (get_operation_configuration), (parse_results_text), (load_config_file), (vfs_module_init): 2000-09-18 Dan Winship * libgnomevfs/gnome-vfs-mime-info.c (context_new): Fix up previous fix. It wasn't the ":"s, it was the "*"s. 2000-09-18 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-info.c: (context_new): fix bug which made us unable to read old mime database format. the ":" was taken into account when reading the old database. 2000-09-18 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-info.c: (ensure_user_directory_exist): add new function to create the user's home directory ~/gnome/mime-info if it does not exists (write_back_mime_user_file), (write_back_keys_user_file): use this new function here. 2000-09-16 Gene Z. Ragan Fixed bug 3042, Adding new mime type doesn't work * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): Return the new mime type if one was created * mime-type-capplet/nautilus-mime-type-capplet-dialogs.h: * mime-type-capplet/nautilus-mime-type-capplet.c: (nautilus_mime_type_capplet_update_info), (add_mime_clicked): Add info to main list. 2000-09-15 Gene Z. Ragan * data/mime/gnome-vfs.keys: Replaced EOG image component with the NautilusImageView 2000-09-15 Darin Adler * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_backend_shutdown): Fixed a typo that crept in here a while back. It was preventing the shutdown code from running. 2000-09-15 Andy Hertzfeld * data/mime/gnome-vfs.keys: fixed bug 1870, images files don't have the right icons when thumbnailing is turned off. Fixed by defining icons in gnome-vfs.keys for all of the common image types. I also defined icons for the common audio types while I was at it. 2000-09-15 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-info.c: (get_key_name), (gnome_vfs_get_registered_mime_types): fix bug 2759. no duplicates are returned anymore. 2000-09-15 Ali Abdin * modules/pipe-method.c, * modules/translate-method.c: Added a comment at the top saying it is licensed under the LGPL and Copyright to Red Hat Inc. (I checked with Sopwith first) * AUTHORS: "help" method is in Nautilus, not gnome-vfs so we shouldn't mention it here. 2000-09-14 Mathieu Lacage Fix bug 2758. remove a bunch of unused functions * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_description): move there. * libgnomevfs/gnome-vfs-mime-handlers.h: move get_description there. * libgnomevfs/gnome-vfs-mime-info.c: remove old functions. * libgnomevfs/gnome-vfs-mime-info.h: remove prototypes. * test/test-mime-info.c: (main): fix the test for these changes. 2000-09-13 John Sullivan Added StarOffice information to the MIME data. It's not well tested, because (A) I don't have StarOffice installed, and (B) the File Types & Programs capplet seems horribly broken in numerous unreported ways. * data/mime/gnome-vfs.applications: * data/mime/gnome-vfs.keys: * data/mime/gnome-vfs.mime: 2000-09-13 Pavel Cisler * modules/file-method.c: (do_create_symbolic_link): Make it handle invalid URI with a returned error value rather than with an assert. 2000-09-13 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (copy_items), (move_items), (link_items): Fix a problem where file names would get escaped twice in the copy engine and caused files to get moved/copied with an escaped path. * modules/file-method.c: (get_path_from_uri): Tweak some white space. 2000-09-12 Darin Adler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_get_magic_table): Add the missing call to actually parse the text file. We never noticed it was missing, because we were getting the binary form of that table until recently. 2000-09-12 Seth Nickell * modules/Makefile.am: add building of foobar-method.c * modules/default-modules.conf: register foobar-method.c to handle "foobar:" * modules/foobar-method.c: (translate_uri), (get_operation_configuration), (parse_results_text), (load_config_file), (do_open), (do_create), (do_close), (do_read), (do_write), (do_seek), (do_tell), (do_open_directory), (do_close_directory), (do_read_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_is_local), (do_make_directory), (do_remove_directory), (do_move), (do_unlink), (do_check_same_fs), (do_set_file_info), (do_truncate), (do_truncate_handle), (do_find_directory), (do_create_symbolic_link), (vfs_module_init), (vfs_module_shutdown): Foobar is a gnome-vfs debug module that allows you to redirect calls to another underlying method, and intercept and manipulate the calls, adding delays or returning errors to the client. 2000-09-11 Mathieu Lacage * test/test-uri.c: (main): remove the tests from compilation folowing pavel and Darin advices. 2000-09-11 Mathieu Lacage * test/test-uri.c: (main): add 2 new tests which fail and should be fixed somehow. I dunno how to fix them but they cause crashes in nautilus. /tmp/#test# is not taken into account by gnome_vfs_uri_new. 2000-09-10 Maciej Stachowiak Build fixes for latest Gtk+ * configure.in: Add AM_PATH_GTK check * libgnomevfs-pthread/Makefile.am: Use $(GTK_CFLAGS) in compiler flags * mime-type-capplet/Makefile.am: likewise * modules/Makefile.am: likewise * test/Makefile.am: likewise * test/gnome-file-selection/Makefile.am: likewise 2000-09-10 Maciej Stachowiak * gnome-vfs.spec.in: Revert kmaraas's last change, because it breaks rpm building for me (and for tinderbox). I wonder why man pages are apparently installed gzipped on Kjartan's system but not mine. 2000-09-09 Kjartan Maraas * gnome-vfs.spec.in: Fixed installation of man page. 2000-09-09 Gene Z. Ragan * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-mime-handlers.c: (sort_application_list), (gnome_vfs_mime_get_short_list_applications), (sort_component_list), (gnome_vfs_mime_get_short_list_components): Sort application and component lists alphabetically before returning them. 2000-09-08 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_new): Performance improvement Darin and I found: Change the priority of callbacks to G_PRIORITY_DEFAULT from G_PRIORITY_LOW to prevent serious performance drain where callbacks do not get scheduled early enough. This speeds up Nautilus directory update by 30% or so. 2000-09-08 Gene Z. Ragan * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_mime_list): Fixed a couple of leaks and instances where gdk_pixbuf_new_from_file was being passed a NULL char *. 2000-09-08 Gene Z. Ragan Fixed bug 2839, setting icons for mime type is not remembered * mime-type-capplet/nautilus-mime-type-capplet.c: (main), (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (populate_mime_list), (nautilus_mime_type_capplet_get_selected_item_mime_type): Removed icon setting code callback from Change Icon button. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (icon_selected_cb), (cancel_pressed), (gil_icon_selected_cb), (nautilus_mime_type_show_icon_selection): Added gnome-vfs icon setting code to OK button callback. 2000-09-08 Maciej Stachowiak * data/mime/Makefile.am: Don't attempt to build binary version of mime database. * gnome-vfs.spec.in: Don't include gnome-vfs-genmimedb or the binary version of the mime database that it generates. 2000-09-08 Gene Z. Ragan Fixed bug 2766, viewer menu code is not finished. Enjoy your Content Loser. * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_viewer_menu): Made function work. 2000-09-08 Gene Z. Ragan Fixed bug 2789, Need to cancel non-file drags in icon entry field. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (drag_data_get): 2000-09-07 Dan Winship * data/mime/gnome-vfs.keys: lowercasify the handful of descriptions that started with a capital letter that wasn't part of a proper name. Rewrite a few descriptions to be more correct or more user-friendly. Add comments pointing out duplicated entries (like image/png and image/x-png) that need to be kept in sync. 2000-09-08 Ian McKellar * modules/http-method.c: (make_request): Implemented custom user-agent headers - specified by the GNOME_VFS_HTTP_USER_AGENT environment variable. 2000-09-06 Pavel Cisler * configure.in: Get rid of -Wno-uninitialized. This way we will get uninitialized variable warnings when we do a release build (with optimizations -O1 or higher). 2000-09-06 Darin Adler * test/test-uri.c: (main): Added tests for URIs with "#" characters in them. Not sure what "correct" is, so they are marked with FIXME. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): Removed extraneous g_print. 2000-09-05 Robin * Slomkowski * libgnomevfs/Makefile.am: made gnome-vfs-mimedb statically link on Pavel's suggestion. This solves the make install problem in a chrooted environment. 2000-09-05 Mathieu Lacage * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_viewer_menu): initialize found_match to TRUE to avoid a segfault in certain non-obvious cases. this is a temporary hack waiting for bug 2766. 2000-09-05 John Sullivan Wrote bugs for the last (for now) 18 unbugged FIXMEs. * mime-type-capplet/nautilus-mime-type-icon-entry.c: (drag_data_get): * modules/bzip2-method.c: (do_get_file_info): * modules/extfs-method.c: * modules/file-method.c: (do_create_symbolic_link): * modules/ftp-method.c: (internal_get_file_info): * modules/gconf-method.c: * modules/gzip-method.c: (do_get_file_info): * modules/http-method.c: (process_propfind_propstat): * modules/translate-method.c: (tr_apply_default_mime_type), (tr_handle_exec), (tr_uri_translate): * test/test-shell.c: (do_info): * test/test-uri.c: (main): 2000-09-05 Martin Baulig * Makefile.am (SUBDIRS): Remove unconditional listing of the mime-type-capplet, it is already contained in $(SUBDIRS_GNOME) for the GNOME 1.x platform. 2000-09-05 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-magic.c: Fixed spelling in a FIXME. * modules/ftp-method.c: (ls_to_file_info): Fixed another minor formatting problem. 2000-09-04 Mathieu Lacage Add bugs to bugzilla.eazel.com for FIXMEs... * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type), (gnome_vfs_mime_get_default_application), (get_executable_name_from_command_string): * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_get_value), (gnome_vfs_get_registered_mime_types): * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-uri.c: * mime-type-capplet/nautilus-mime-type-capplet.c: (mime_list_selected_row_callback), (init_mime_capplet), (populate_viewer_menu), (delete_mime_clicked), (pixmap_file): 2000-09-03 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-info.c: (write_back_keys_user_file): fix evil bug. forgot to fclose the file opened for user.keys file. All bugs are evil. I hate bugs. I HATE THEM. 2000-09-03 Mathieu Lacage * test/test-mime-info.c: (main): change directory to folder as in gnome-vfs.keys. bad boy who did not updated the tests and changed the data. 2000-09-03 Maciej Stachowiak * modules/ftp-method.c: Reformat to match gnome-vfs coding style. 2000-09-03 Maciej Stachowiak * libgnomevfs-pthread/gnome-vfs-job.c: (execute_set_file_info): * modules/file-method.c: (find_trash_directory): Added bug numbers to FIXMEs. 2000-09-03 Pavel Cisler * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-xfer.c: (init_progress), (copy_directory), (copy_items), (move_items), (link_items): Add a flag to the xfer progress indicating a top-level item to allow triggering metadata copies. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_create_symbolic_link): * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_set_value): * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_viewer_menu): * modules/translate-method.c: (tr_uri_translate): * test/test-uri.c: (test_uri_host_port): Fix a bunch of uninitialized variables that Michael Meeks found. 2000-09-02 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_do_short_list_processing), (gnome_vfs_mime_get_short_list_components): fix small typo but evil bug. 2000-09-01 Mathieu Lacage * mime-type-capplet/nautilus-mime-type-capplet.c: (main), (init_mime_capplet), (populate_mime_list), (create_mime_list_and_scroller): remove debugging output. fix many run-time warnings. Now, can go into fixing real bugs. 2000-09-01 Mathieu Lacage * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init): * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_without_fallback), (gnome_vfs_mime_get_default_component), (join_str_list), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_get_all_components), (gnome_vfs_mime_id_in_component_list), (gnome_vfs_mime_id_list_from_component_list), (gnome_vfs_mime_remove_component_from_list), (gnome_vfs_mime_action_free), (gnome_vfs_mime_component_list_free), (OAF_ServerInfoList_to_ServerInfo_g_list): * libgnomevfs/gnome-vfs-mime-handlers.h: * test/test-mime-handlers-set.c: (main): * test/test-mime-handlers.c: (print_component), (print_action), (print_component_list), (main): remove test on OAF compile. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_application): fix bug: we were passing a NULL to some subroutine. * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (populate_mime_list), (create_mime_list_and_scroller): fix misc warning at runtime. add debugging output. will remove soon. * test/.cvsignore: chuuut. 2000-09-01 Christopher James Lahey * libgnomevfs/gnome-vfs-mime-handlers.h: Removed #ifdef USING_OAF. 2000-09-01 Ian McKellar * test/.cvsignore: Added new binaries to .cvsignore. 2000-09-01 Ian McKellar * libgnomevfs/gnome-vfs-context.c: (gnome_vfs_context_emit_message): The fallback error message that is sent if context==NULL is now sent to stderr rather than stdout. It was confusing test programs before. * modules/http-method.c: (create_handle): Don't emit message if context==NULL * test/Makefile.am: Added some test programs... * test/test-dirop.c: New test to test make_directory and remove_directory. * test/test-unlink.c: New test to test unlink. * test/test-info.c: (main): Now returns a result so get_file_info's success can be tested from shell scripts. * test/test-sync-create.c: (main): * test/test-sync-write.c: (main): Removed superflous debugging info. * test/test-sync.c: (main): Cleaned up code a bit so this is 8 bit clean. * test/test-remote: A shell script that calls many of the test programs to check that a filesystem behaves in a sensible fasion. Its geared towards testing remote filesystems such as FTP and WebDAV. 2000-09-01 Pavel Cisler Bugzilla task 2186 -- Move/Copy/Link from multiple directories fails. Reworked the copy engine to use lists of URIs instead of pairs of directory URIs and file name lists. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_visit_list), (count_items_and_size), (directory_add_items_and_size), (handle_name_conflicts), (copy_file_data), (xfer_open_source), (xfer_create_target), (copy_file), (copy_directory), (copy_items), (move_items), (link_items), (gnome_vfs_xfer_empty_trash), (gnome_vfs_xfer_delete_items_common), (gnome_vfs_xfer_delete_items), (gnome_vfs_new_directory_with_unique_name), (gnome_vfs_xfer_uri_internal), (gnome_vfs_xfer_private), (gnome_vfs_xfer_uri_list), (gnome_vfs_xfer_uri): Completely reworked to support the new URI list APIs * libgnomevfs/gnome-vfs-xfer.h: * libgnomevfs/gnome-vfs-xfer.c: Renamed xfer calls to represent new APIs better. * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_xfer): * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-uri.c: Update to support new APIs. Got rid of copy_string_list that is no longer needed. * idl/gnome-vfs-slave.idl: * libgnomevfs-corba/gnome-vfs-async-ops.c: (corba_gnome_vfs_async_xfer): * libgnomevfs-corba/gnome-vfs-slave.c: (file_list_to_uri_g_list), (impl_Request_xfer): Update corba backend for new xfer APIs. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_xfer): * libgnomevfs-pthread/gnome-vfs-job.c: (execute_load_directory), (execute_xfer): * libgnomevfs-pthread/gnome-vfs-job.h: Updated pthread backend to support new xfer APIs. Fixed some leaks. * test/test-xfer.c: (main): Update tests to use new APIs. * libgnomevfs/gnome-vfs-xfer.c: Fixed FIXME 1193. * libgnomevfs/gnome-vfs-xfer.c: (g_string_list_deep_copy): No longer needed. * libgnomevfs/gnome-vfs-ops.c: * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_uri_exists): Added a new convenience call. Fixes FIXME 1201. * libgnomevfs/gnome-vfs-utils.h: Fixed some spelling. 2000-09-01 Maciej Stachowiak * po/Makefile.in.in: removed since gettextize auto-generates it. * configure.in: Turn off libefs more thoroughly. 2000-08-31 Robey Pointer * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_initialized): * libgnomevfs/gnome-vfs-init.h: Add gnome_vfs_initialized so you can check if gnome-vfs has been initialized already, without it whining. 2000-08-31 Gene Z. Ragan * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_backend_loadinit), (gnome_vfs_backend_shutdown), (func_lookup): * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init): Checking on some Pavel code cleanup. 2000-08-31 John Sullivan Work towards bug 1037 (use "folder" rather than "directory" consistently) * data/mime/gnome-vfs.keys: Change "directory" to "folder" and "web directory" to "web folder" 2000-08-31 Gene Z. Ragan * Makefile.am: Added capplet to sub-directories to fix tinderbox build. 2000-08-31 Ramiro Estrugo * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_info_shutdown): Fix two typos. The same 2 hash tables were being freed twice. Also make the hash tables NULL after freeing them. 2000-08-31 Martin Baulig * modules/Makefile.am (INCLUDES): Added $(GLIB_CFLAGS). * libgnomevfs-pthread/Makefile.am (INCLUDES): Likewise. * libgnomevfs-corba/Makefile.am (INCLUDES): Likewise. * configure.in: Don't modify CFLAGS but set VFS_CLFAGS instead. Otherwise CFLAGS gets longer every time config.status is run. * */Makefile.am (INCLUDES): Add $(VFS_CFLAGS). * configure.in: Don't put -Werror into CFLAGS but into WERROR and AC_SUBST it. Some configure checks don't work with -Werror. * */Makefile.am (INCLUDES): Add $(WERROR). * test/.cvsignore: Added test-mime-info. 2000-08-31 Martin Baulig * libgnomevfs-pthread/gnome-vfs-job-slave.c (gnome_vfs_thread_backend_shutdown): Use g_main_iteration() instead of gtk_main_iteration_do() if `GNOME_PLATFORM_VERSION >= 1095000' (as preprocessor conditional). * libgnomevfs/gnome-vfs-private-utils.c (gnome_vfs_i18n_get_language_list): New function. This calls gnome_i18n_get_language_list() if `GNOME_PLATFORM_VERSION < 1095000' and g_i18n_get_language_list() otherwise. * libgnomevfs/gnome-vfs-mime-info.c: Remove the includes which were previously required for gnome_i18n_get_language_list. (gnome_vfs_mime_init): Use gnome_vfs_i18n_get_language_list() instead of gnome_i18n_get_language_list(). * libgnomevfs/gnome-vfs-application-registry.c: Remove the includes which were previously required for gnome_i18n_get_language_list. (gnome_vfs_application_registry_init): Use gnome_vfs_i18n_get_language_list() instead of gnome_i18n_get_language_list(). 2000-08-31 Martin Baulig * configure.in: Only check for GNOME if we're on the GNOME 1.2 platform. (VFS_GNOME_CFLAGS, VFS_GNOMEUI_CFLAGS, VFS_CAPPLET_CFLAGS): Added. (VFS_GNOME_LIBS, VFS_GNOMEUI_LIBS, VFS_CAPPLET_LIBS): Added. For the GNOME 1.2 platform, they contain the appropriate GNOME cflags and libs (set with `gnome-config --cflags/--libs'); for the GNOME 2 platform they only contain the appropriate GLIB cflags and libs (set with `glib-config-2.0 --cflags/--libs'). (VFS_GLIB_CONFIG): Added. This is either `glib-config' for the GNOME 1.2 platform or `glib-config-2.0' for the GNOME 2 platform. * gnome-vfs-config.in: New file. Template for gnome-vfs-config. We can't use gnome-config for the GNOME 2 platform since gnome-vfs doesn't depend on gnome-libs on it; this gnome-vfs-config script works for both platforms, however using gnome-config may be saner for the GNOME 1.2 one. * Makefile.am: Create a gnome-vfs-config script. * .cvsignore: Added gnome-vfs-config. 2000-08-31 Martin Baulig * acconfig.h (GNOME_PLATFORM_VERSION): #define this in config.h to be a number constant which is currently 1002000 for the GNOME 1.2.x platform. When compiling for the GNOME 2 platform, we patch configure.in to set this to 1095000. * configure.in (PLATFORM_GNOME_2): New automake conditional; true if `GNOME_PLATFORM_VERSION >= 1095000' (you need to patch configure.in to make this happen, ie. when compiling for gnome-libs HEAD). * acinclude.m4: New file. (AM_GNOME_SIZE_T, AM_GNOME_OFF_T): New autoconf macros which provide better checks for `size_t' and `off_t'; they also work when they're typedef'ed in and not #defined. * configure.in: Use AM_GNOME_SIZE_T and AM_GNOME_OFF_T. * Makefile.am: Disable the mime-type-capplet and test subdirectories if we're compiling for the GNOME 2 platform. 2000-08-31 Mathieu Lacage fixes bugs 1119 and 1839 * data/mime/gnome-vfs.keys: add a mime type for testing. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type), (gnome_vfs_mime_edit_user_file_full), (gnome_vfs_mime_add_extension), (gnome_vfs_mime_remove_extension): update to API changes below. move saving code to gnome-vfs-mime-info.c * libgnomevfs/gnome-vfs-mime-info.c: (does_string_contains_caps), (context_new), (context_destroy_and_unlink), (language_level), (context_add_key), (load_mime_type_info_from), (load_mime_list_info_from), (mime_info_load), (mime_list_load), (load_mime_type_info), (gnome_vfs_mime_init), (gnome_vfs_mime_info_clear), (gnome_vfs_mime_info_shutdown), (gnome_vfs_mime_freeze), (gnome_vfs_mime_thaw), (gnome_vfs_mime_set_value), (gnome_vfs_mime_get_value), (gnome_vfs_mime_keys_list_free), (gnome_vfs_mime_get_key_list), (gnome_vfs_mime_get_program), (gnome_vfs_mime_get_program_name), (gnome_vfs_mime_get_description), (str_cmp_callback), (gnome_vfs_mime_get_extensions_list), (gnome_vfs_mime_get_extensions_string), (gnome_vfs_mime_get_extensions_pretty_string), (gnome_vfs_mime_extensions_list_free), (gnome_vfs_mime_get_test), (gnome_vfs_mime_get_composetyped), (gnome_vfs_mime_get_copiousoutput), (gnome_vfs_mime_get_needsterminal), (get_key_name), (gnome_vfs_get_registered_mime_types), (gnome_vfs_mime_registered_mime_type_list_free), (gnome_vfs_mime_set_registered_type_key), (write_back_mime_user_file_context_callback), (write_back_mime_user_file_callback), (write_back_mime_user_file), (write_back_keys_user_file_context_callback), (write_back_keys_user_file_callback), (write_back_keys_user_file): Basically, make it work. update copyright. * libgnomevfs/gnome-vfs-mime-info.h: change some API. * mime-type-capplet/nautilus-mime-type-capplet.c: update to new API. (nautilus_mime_type_capplet_update_info), (populate_mime_list): * test/Makefile.am: add tests. * test/test-mime-info.c: (main): actual tests. Wed Aug 30 22:51:47 2000 George Lebl * libgnomevfs/gnome-vfs-handle.c, libgnomevfs/gnome-vfs-mime-handlers.c, libgnomevfs/gnome-vfs-mime.c: Remove the includes as they are not used and they mess with compilation with gnome-libs2 (this change is completely neutral otherwise) 2000-08-30 Darin Adler * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_escape_slashes): Moved this function in here from Nautilus. Two advantages: 1) It can be used by other programs. 2) It can share code with all the other escaping functions. * test/.cvsignore: Ignore the test-sync-create file. 2000-08-29 Ian McKellar * modules/http-method.c: (make_request), (do_create): The create method now attempts to create a zero-length file as part of the opening process. This will allow errors to be detected. Create creates a zero-length file with the standard unix semantics anyway. * test/Makefile.am: * test/test-sync-create.c: (show_result), (main): Added a test-sync-create to allow testing of the create method. 2000-08-29 Ian McKellar * modules/http-method.c: (process_propfind_response): Fixed bug 2525 - host and port are now ignored in href comparisons in the WebDAV PROPFIND code. 2000-08-29 Ian McKellar * modules/http-method.c: (http_handle_close), (do_read): Fixed bug 2524 - extra debugging output removed. 2000-08-28 Gene Z. Ragan * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): Pavel here. Refactored a bit making it more beautiful. 2000-08-28 Robin * Slomkowski * gnome-vfs.spec.in: fixed config file globs 2000-08-28 John Sullivan * data/mime/gnome-vfs.keys: Added application/x-palm-database, reported by a Nautilus user. 2000-08-27 Alastair McKinstry * ga.po: Added Irish translation. 2000-08-25 John Sullivan Fixed bug 1388 (some MIME types have no description) * data/mime/gnome-vfs.mime: * data/mime/gnome-vfs.keys: Added descriptions for all un-descriptioned MIME types from gnome-vfs.mime and mime-magic. The check-mime script now finds no problems. Also added a couple of missing MIME types that were reported by Nautilus users. 2000-08-25 Robin * Slomkowski * modules/Makefile.am: added efs-method.c efs-method.h forgotten files for make dist 2000-08-25 John Sullivan Fixed bug 2311 (sort by date should put most recent dates first). Also made the same change for size. Also fixed some bugs in trash-directory locating, and added testing code for this. * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_compare_for_sort): Added comment clarifying that the sort order should be the natural order for each type, not necessarily strict "small to large". Then changed size and date orderings to go the opposite way. * modules/file-method.c: (find_trash_directory): Fixed a couple of problems Darin and I discovered that involved trying to find Trash on "/". * test/test-shell.c: (do_findtrash), (main): Added findtrash command to test shell, and made it put the prompt on a new line instead of appending it to the most recent output. Fri Aug 25 09:15:15 2000 Dietmar Maurer * modules/efs-method.c: minor changes for new libefs code. 2000-08-24 Ali Abdin * modules/pipe-method.c: (do_close): Removed a FIXME because Darin says (in a prior cvs-commit) that we should destroy the handle even if it doesn't return GNOME_VFS_OK. Besides - this functions always returns GNOME_VFS_OK (if file_handle is allocated) 2000-08-24 Darin Adler * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_find_directory_callback): Fixed NULL-unref problem. * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (istr_has_prefix), (gnome_vfs_get_local_path_from_uri), (gnome_vfs_get_uri_from_local_path): Added the local path functions that are so widely used in Nautilus so they can be used in medusa too, for example. * modules/file-method.c: (find_trash_directory): Fixed storage leak, added FIXME about poor error handling. 2000-08-24 Maciej Stachowiak * modules/Makefile.am: Disable efs module since it doesn't compile any more with the latest changes to libefs. 2000-08-23 Darin Adler * check-mime.pl: Added a check of the .applications file. * data/mime/gnome-vfs.applications: Fixed a lingering use of the old x-special/directory-webdav, which was superceded by x-directory/webdav. 2000-08-23 Darin Adler * data/mime/gnome-vfs.keys: Added a description for ksh scripts. 2000-08-23 Darin Adler * libgnomevfs/gnome-vfs-handle.c: (gnome_vfs_handle_do_close): * modules/bzip2-method.c: (do_close): * modules/gzip-method.c: (do_close): Removed FIXMEs about close behavior. It's now clear that the correct behavior on close is to always get rid of the handle, even if the close returns a non-GNOME_VFS_OK result, which indicates a failure of I/O, not necessarily of the close as a while. * check-mime.pl: Fixed a typo in a message. 2000-08-22 John Sullivan * check-mime.pl: Fixed small bug that was reporting a false out-of-order error for the first MIME type in gnome-vfs.mime. * data/mime/gnome-vfs.keys, * data/mime/gnome-vfs.mime: Fixed many of the problems found by check-mime.pl. I didn't add descriptions for all of the undescribed types yet because that will take a couple of hours of research that I'd rather spend later. 2000-08-21 Darin Adler * check-mime.pl: Added script to check if the MIME files have certain desirable properties. There are 69 errors reported now, and I bet John will fix them now that they are easy to spot. 2000-08-21 John Sullivan More tweaks to match MIME identification problems users have run into. * data/mime/gnome-vfs-mime-magic: changed audio/midi to audio/x-midi to match .keys file (and usage rules) * data/mime/gnome-vfs.keys: Added descriptions for application/x-smil, audio/x-it, and text/x-credits. Also moved one entry that was out of order. 2000-08-17 John Sullivan * data/mime/gnome-vfs.keys: Another missing description, for image/x-ico 2000-08-17 John Sullivan Fixed bug 1724 (some MIME types without descriptions) * data/mime/gnome-vfs.keys: Added descriptions for the following MIME types that users had run into: application/x-php application/x-toutdoux audio/x-mp3-playlist image/vnd.dwg text/abiword 2000-08-14 Pavel Cisler * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_find_directory): Fix a crasher in the new gnome_vfs_async_find_directory. 2000-08-13 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_find_directory): * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_get_file_info_callback), (dispatch_find_directory_callback), (dispatch_job_callback), (execute_find_directory), (gnome_vfs_job_execute): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: (report_failure_get_file_info_callback), (report_failure_get_file_info), (gnome_vfs_async_get_file_info), (report_faliure_find_directory_callback), (report_failure_find_directory), (gnome_vfs_async_find_directory): * libgnomevfs/gnome-vfs-types.h: Add async version of gnome_vfs_find_directory. pthread backend only for now. 2000-08-12 Robin * Slomkowski * configure.in: just bumped the version on HEAD 2000-08-12 Ali Abdin * modules/Makefile.am: * libgnomevfs-corba/Makefile.am: Actually remove the linking to gnome-libs from the Makefile's now * libgnomevfs-pthread/gnome-vfs-job-slave.c: Replaced include of to 2000-08-11 Ettore Perazzoli * configure.in: Generate `devel-docs' first. 2000-08-11 Dan Winship * data/mime/gnome-vfs.applications: gnumeric can open Excel files. * data/mime/gnome-vfs.keys: Excel files can be opened by gnumeric. 2000-08-11 Ali Abdin * libgnomevfs/gnome-vfs-mime-snif-buffer.h: * libgnomevfs/gnome-vfs-application-registry.h: Remove unneeded #include (libgnome dependency) 2000-08-10 Darin Adler * data/mime/gnome-vfs.keys: Fix the default for directories. It was supposed to be the icon view, but had "ntl" instead of "nautilus". * test/.cvsignore: Ignore the new file generated (the test Pavel added). 2000-08-10 Maciej Stachowiak * libgnomevfs-corba/gnome-vfs-corba.c (gnome_vfs_corba_init): removed gratuitous call to gnome_init_with_popt_table * modules/efs-method.c: Removed gratuitous include of , replaced with 2000-08-10 Darin Adler * libgnomevfs/gnome-vfs-gen-mimedb.c: (main): * modules/file-method.c: (do_find_directory): Fixed backwards use of access. Access's result has the opposite sense of g_file_exists. 2000-08-10 Ali Abdin * libgnomevfs/gnome-vfs-gen-mimedb.c: (main): Replace gnomelib_init with gnome_vfs_init and replace Replace g_file_exists with access(,F_OK) Remove #include of gnome-libs file * modules/file-method.c: (do_find_directory): Replace g_file_exists with access(,F_OK) (do_set_file_info): Remove usage of g_concat_dir_and_file (to avoid gnome-libs dependency). Also #include * libgnomevfs-corba.c: #include 2000-08-10 Maciej Stachowiak * libgnomevfs/gnome-vfs-uri.c (parse_uri_substring, gnome_vfs_uri_new): Tolerate fragment identifiers by just ignoring them; differentiate them from the gnome-vfs method chaning syntax by checking for a colon past the pound sign. Wed Aug 09 23:26:17 2000 George Lebl * libgnomevfs/gnome-vfs-application-registry.[ch] (application_info_load) (gnome_vfs_application_registry_init) (gnome_vfs_application_registry_sync) libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_edit_user_file_full) libgnomevfs/gnome-vfs-mime-info.[ch] (mime_info_load) (mime_list_load) (gnome_vfs_mime_init) (write_registered_mime_data) libgnomevfs/gnome-vfs-mime-magic.h libgnomevfs/gnome-vfs-mime-private.h libgnomevfs/gnome-vfs-mime.[ch] (mime_load) (mime_init) libgnomevfs/gnome-vfs.h, libgnomevfs/gnome-vfs-private.h: Remove all the simple gnome dependencies. All the gnome-utils dependencies which can be replaced by about the same amount of non-gnome code. Also replace all BEGIN/END_GNOME_DECLS with the standard extern "C" foo. * libgnomevfs/gnome-vfs-private.h: Add NLS defines N_ and _ because those are handled by gnome normally. Also this uses the "private" defines from gnome-i18nP.h which is apparently the way to do this inside the library. 2000-08-09 Robin * Slomkowski * gnome-vfs.spec.in: should work again 2000-08-09 Pavel Cisler * modules/file-method.c: (find_trash_in_one_hierarchy_level), (find_trash_in_hierarchy), (try_creating_trash_in), (find_trash_directory), (do_find_directory): Add checks for cancellation at every level of trash lookup. Make it so that we start looking a good place for a new directory right in the top disk level rather than on level deeper. Check if entries returned from the cached Trash list still exist when find_if_needed is on. If they no longer do, flush them from the list. 2000-08-09 Ali Abdin * modules/extfs-method.c: * modules/pipe-method.c: Remove gratuitous gnome-libs dependency * modules/pipe-method.c: #include 2000-08-09 Ali Abdin * libgnomevfs-corba/gnome-vfs-slave.c: Remove gratiutous gnome-libs dependency. 2000-08-09 Ali Abdin * libgnomevfs/gnome-vfs-modules-shared.c, * libgnomevfs/gnome-vfs-mime-magic.c: Remove gratiutous gnome-libs dependency. 2000-08-09 Pavel Cisler * modules/file-method.c: (append_trash_path), (find_trash_in_one_hierarchy_level), (find_trash_in_hierarchy), (try_creating_trash_in), (find_trash_directory), (do_find_directory): Fix a ton of bugs in the new find directory calls. * test/Makefile.am: * test/test-find-directory.c: Mini test tool for the gnome_vfs_find_directory call. 2000-08-09 Pavel Cisler * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_find_directory_cancellable): * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-find-directory.c: (gnome_vfs_find_directory): * libgnomevfs/gnome-vfs-find-directory.h: * libgnomevfs/gnome-vfs-private-types.h: * modules/efs-method.c: (do_find_directory): * modules/extfs-method.c: (do_find_directory): * modules/translate-method.c: (tr_do_find_directory): Add a find_if_needed parameter to find_directory calls. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_list_deep_free): * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Add a new utility call, moving it from gnome-vfs-xfer.c so I can share it with others. * modules/file-method.c: (GET_PATH_MAX), (get_path_from_uri), (get_base_from_uri), (append_to_path), (append_trash_path), (find_trash_in_one_hierarchy_level), (find_trash_in_hierarchy), (match_trash_item_by_device_id), (try_creating_trash_in), (find_trash_directory), (do_find_directory), (do_set_file_info): Work in progress on finding/creating Trash on non-home volumes. Tue Aug 08 23:18:49 2000 George Lebl * libgnomevfs/Makefile.am, libgnomevfs/gnome-vfs-application-registry.[ch]: A new application registry. The parsing is based upon mime-info. The interface completely hides any structures and is based entierly on querying string keys. Handles user settings as a delta against the system settings. Also adds mime_types list support to the registry instead of this being read from the keys file. * libgnomevfs/gnome-vfs-mime-handlers.[ch] (gnome_vfs_mime_get_default_application) (gnome_vfs_mime_get_short_list_applications) (gnome_vfs_mime_get_all_applications) (gnome_vfs_mime_extend_all_applications) (gnome_vfs_mime_remove_from_all_applications) (gnome_vfs_mime_application_new_from_id) (application_known_to_be_nonexistent): Use the application registry API internally. Remove the gnome_vfs_mime_define_application call as it doesn't make any sesnse any more and is replaced by an application registry call. The all_applications calls now use the registry api for all their work. * libgnomevfs/gnome-vfs-mime-info.c (load_mime_type_info_from): Fix a bug where comments would only be ignored on the first line which would add nonsense mime types if comments were elsewhere in the file. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c (add_new_application) test/test-mime-handlers-set.c (main): Use the application registry for adding new applications * data/mime/Makefile.am, data/mime/gnome-vfs.keys, data/mime/gnome-vfs.applications, data/mime/application-registry-hack.keys: Remove the registry hack stuff, remove all_applications stuff from gnome-vfs.keys and add the applications from the registry hack to gnome-vfs.applications including the mime types they read. 2000-08-08 Maciej Stachowiak * mime-type-capplet/nautilus-mime-type-capplet.c: Move include of sys/types.h above include of regex.h to fix building on FreeBSD. Fix from Bill Huey . 2000-08-08 Maciej Stachowiak * acconfig.h: * configure.in: * modules/bzip2-method.c (bzip2_method_handle_init_for_decompress), (bzip2_method_handle_init_for_compress), (flush_write), (do_read), (do_write): Handle both bzip2 1.0, which adds BZ2_ to the front of all function names, and the older version. Problem reported by Bill Huey . 2000-08-08 Maciej Stachowiak * libgnomevfs/gnome-vfs-parse-ls.c (gnome_vfs_parse_ls_lga): Avoid a warning and potential bug on systems (such as FreeBSD) where the st_nlink field of struct stat is unsigned. Problem reported by Bill Huey . 2000-08-08 Robin * Slomkowski * mime-type-capplet/Makefile.am: added nautilus-mime-type-icon-entry.h as it was forgotten 2000-08-09 Ian McKellar * modules/http-method.c: (make_propfind_request): Fixed another WebDAV directory listing bug. If the current URI contained escaped characters (%20 for example) it would not be culled. Now it is. 2000-08-09 Ian McKellar * modules/http-method.c: (process_propfind_response): Fixed a bug where the current directory could show up in WebDAV directory listings. 2000-08-08 John Sullivan * data/mime/gnome-vfs.keys: Added description for application/x-java-byte-code; changed "search results virtual directory" to "search results". 2000-08-07 Maciej Stachowiak * data/mime/gnome-vfs.keys: * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_file_mime_type): * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_mime_type_from_mode), (gnome_vfs_get_special_mime_type): * modules/extfs-method.c: (do_get_file_info): * modules/ftp-method.c: (do_get_file_info): * modules/gconf-method.c: (set_mime_type_dir): * modules/http-method.c: (process_propfind_propstat): Renamedirectory mime types: x-special/directory => x-directory/normal x-special/webdav-directory => x-directory/webdav x-special/virtual-directory => x-directory/search 2000-08-07 Maciej Stachowiak * CVSVERSION: New file, used to detect whether we are configuring a cvs version or a release tarball. * configure.in: Default -Werror to off when configuring a release tarball, and to on when configuring a cvs version. 2000-08-07 Maciej Stachowiak * test/test-escape.c (main): Fix to match new escaping logic for paths. 2000-08-07 Darin Adler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_has_parent): Fixed so it matches the _get_parent function by just calling _get_parent. It would be hard to get the corresponding result otherwise. Someone performance-obsessed could move the common code out into a separate function if they like. * test/test-uri.c: (test_uri_has_parent), (main): Added a test of gnome_vfs_uri_has_parent to this tool. * modules/http-method.c: (make_propfind_request): Changed a g_warning to a g_message. Maybe yakk will change it back or something, but it happens too often to be a drop-into- the-debugger warning. 2000-08-07 Rebecca Schulman * libgnomevfs/gnome-vfs-result.c: * libgnomevfs/gnome-vfs-types.h: added a new error code GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE 2000-08-07 Maciej Stachowiak * libgnomevfs/gnome-vfs-utils.c: Do not escape `?', `&', or `=' in paths, to avoid messing up http queries. 2000-08-08 Ian McKellar * modules/http-method.c: (process_propfind_propstat), (process_propfind_response): Fixed a memory leak in WebDAV PROPFIND response parsing. Sun Aug 06 15:10:01 2000 George Lebl * libgnomevfs/gnome-vfs-mime-info.c (load_mime_type_info_from) (load_mime_list_info_from) (gnome_vfs_mime_init): Be more correct in function prototypes (gnome_vfs_mime_init): gnome_i18n_get_language_list returns a "constant" list. So make a copy before inverting it. * bzip2-method.c, gzip-method.c: #include to make it compile on alpha 2000-08-07 Ian McKellar * modules/http-method.c: (process_propfind_propstat), (do_get_file_info): Fixed a bug that affected Xythos interoperability. 2000-08-06 Ian McKellar * modules/ftp-method.c: (do_get_file_info): Changed the do_get_file_info behaviour to be more portable. I believe this resolves bug #1981. 2000-08-05 Michael K. Fleming * libgnomevfs/gnome-vfs-uri.c: (split_toplevel_uri), (split_toplevel_uri_old), (uri_strspn_to), (split_toplevel_uri): * test/test-uri.c: (test_uri_part), (test_uri_host_port), (main): Re-implemented split_toplevel_uri to fix some parsing bugs in the old one. (Most signficantly, 'http://localhost:80' would be parsed as hostname 'localhost:80' rather than hostname 'localhost' port '80') ****Note that the new code is necessarally not bug-for-bug compatible with the original implementation, and therefore may expose bugs in existing applications!**** Added new test cases for URI parsing. The old split_toplevel_uri code is ifdef'd out. If you disable NO_MKF_DEBUG, you can get warnings when a differences between the old version and the new version is encountered. Of course, the code in this block should be removed before the next release. 2000-08-04 John Sullivan * data/mime/gnome-vfs-mime-magic: changed text/rtf to application/rtf to match both the .keys file and reality. * data/mime/gnome-vfs.keys: added description for audio/x-riff. 2000-08-04 Robey Pointer * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_escape_string_internal), (gnome_vfs_escape_path_string), (gnome_vfs_escape_host_and_path_string): * libgnomevfs/gnome-vfs-utils.h: Add an _escape_host_and_path_string() call to cope intelligently with uri's that have a host:port section before the path. 2000-08-05 Ian McKellar * modules/http-method.c: (process_propfind_response), (do_open_directory), (do_get_file_info): Make open_directory and do_get_file_info try http://foo/bar/ if http://foo/bar fails with a file not found error. See: http://bugzilla.eazel.com/show_bug.cgi?id=1904 2000-08-04 Darin Adler * libgnomevfs/gnome-vfs-mime.c: (add_to_key): Added a workaround for a bug in Solaris regcomp. 2000-08-03 Seth Nickell * libgnomevfs/gnome-vfs-xfer.c: (count_items_and_size), (link_items), (gnome_vfs_xfer_delete_items), (gnome_vfs_xfer_uri_internal): A rewrite of the code that CVS (or me?) lost for some strange bizarre reason... Adds symbolic link abilities to gnome-vfs-xfer. 2000-08-03 Ramiro Estrugo * data/mime/gnome-vfs.keys: Add the mozilal component as a content handler for x-special/webdav-directory. Also move the gtkhtml web browser up in the food chain. 2000-08-03 John Sullivan * data/mime/gnome-vfs.keys: Added a couple of description-less types that people had run into (image/x-xfig and application/x-compress). Also removed one of the two different descriptions for image/x-xpixmap. Also alphabetized the entries again -- someone changed some MIME type names without re-alphabetizing. 2000-08-03 Mathieu Lacage * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_init): remove FIXMEs for bug 796. * libgnomevfs/gnome-vfs-mime.c: (mime_init): idem. 2000-08-02 Pavel Cisler Seth forgot to check in changes Nautilus relies on and unfortunately they are nowhere to be found on his machine. This change will make Nautilus build again. Seth needs to check in his missing changes to make symlink creation work properly. * libgnomevfs/gnome-vfs-types.h: 2000-08-02 Gene Z. Ragan Fixed bug 1837, The icon in the action list item should represent the item in the list. * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_mime_list): Load icon and display based on action. 2000-08-02 Darin Adler * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_mime_type_from_mode), (gnome_vfs_get_special_mime_type): Removed some old FIXMEs that were left after the bug was fixed. 2000-08-02 Gene Z. Ragan Fixed bug 1836, Description list item icon wrong. * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_mime_list), (gdk_font_get_bold), Set up proper and scaled description column icon. (capplet_gdk_pixbuf_scale_to_fit): New function that scales an gdk-pixbuf to the requested width and height. Copied from libnautilus. 2000-08-01 Darin Adler * data/mime/gnome-vfs.keys: Added description for "x-special/virtual-directory", which will probably be renamed soon. 2000-08-01 Ian McKellar * AUTHORS: Updated ftp method info. * modules/http-method.c: (process_propfind_response), (make_propfind_request), (do_read_directory): Fixed the PROPFIND response parsing to handle Xythos servers better. 2000-07-30 ERDI Gergo * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c (name_from_oaf_server_info): changed oaf_server_info_attr_lookup calls to oaf_server_info_prop_lookup 2000-07-28 Gene Z. Ragan * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet), (pixmap_file), (gtk_widget_make_bold), (gtk_widget_set_font), (gtk_style_set_font), (gdk_font_get_bold): New function to set the font of a widget to bold. These were borrowed from libnautilus-extensions. 2000-07-28 Gene Z. Ragan * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: Added magic and mime type for GMC links. application/x-gmc-link 2000-07-27 Seth Nickell * libgnomevfs/gnome-vfs-file-info.h: Added SYMLINK macros. * libgnomevfs/gnome-vfs-types.h: Added GNOME_VFS_FILE_FLAGS_SYMLINK * modules/file-method.c: (get_stat_info): Changed code around to properly stat and lstat, and use flags. * test/gnome-file-selection/gnome-file-selection.c: (populate_callback): * test/test-async-directory.c: (print_list): * test/test-directory-visit.c: (directory_visit_callback): * test/test-directory.c: (print_list): Changed to use flags properly. 2000-07-26 Gene Z. Ragan * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: Added mime magic and mime type key for application/x-nautilus-link 2000-07-25 Mike Fleming * modules/translate-method.c: (tr_exec_open_child), (tr_exec_pass_uri), (tr_exec_do_retain), (tr_handle_exec), (tr_exec_init), (tr_exec_cleanup), (tr_args_parse), (vfs_module_init), (vfs_module_shutdown): Added -retain option to translate's -exec mode Fixed method-table initialization problem 2000-07-25 Dan Winship * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_action_without_fallback): New function to get the default action for a MIME type without falling back to its supertype if there is nothing available for the full type. 2000-07-25 Darin Adler * modules/pipe-method.c: (mime_from_uri): Handle the case where the URI is NULL (can happen with some bad URIs that can't be unescaped). 2000-07-25 John Sullivan Made async set_file_info pass back newly-retrieved file info, since setting some info changes other info (e.g., setting owner can change permissions). * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_set_file_info): New options parameter to use when getting file info, changed callback type. * libgnomevfs-pthread/gnome-vfs-job.h: Add get_file_info options field to request struct, and file_info & get_file_info_result fields to notify struct. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_set_file_info): Fetch file_info after setting. (dispatch_set_file_info_callback): Pass to caller newly-fetched file_info, or NULL if it couldn't be read. * libgnomevfs/gnome-vfs-async-ops.h: Change signature of gnome_vfs_async_set_file_info to take options for get_file and to use a GnomeVFSAsyncSetFileInfoCallback * libgnomevfs/gnome-vfs-backend.c: (report_failure_set_file_info_callback), (report_failure_set_file_info): New functions that handle the new intricacies of set_file_info failures. (gnome_vfs_async_set_file_info): Updated for parameter changes. * libgnomevfs/gnome-vfs-types.h: Changed GnomeVFSAsyncCloseCallback to just a #define; added new GnomeVFSAsyncSetFileInfoCallback 2000-07-25 Pavel Cisler * modules/file-method.c: (do_find_directory), (do_check_same_fs): Use lstat instead of stat to correctly treat symbolic links. 2000-07-24 Fatih Demir * mime-type-capplet/nautilus-mime-type.desktop: Added the Turkish desktop entries. 2000-07-21 Mathieu Lacage Closes bug 1120, 1118, 1176 from buzilla.eazel.com source incompatible change. Removes metadata support. Basically, it changes the signature of all the functions which had metadata support and removes one parameter. To take this change into account, you basically need to remove one NULL parameter from the calls which have changed. * idl/gnome-vfs-slave.idl: * idl/gnome-vfs-types.idl: * libgnomevfs-corba/gnome-vfs-async-ops.c: (corba_gnome_vfs_async_get_file_info), (corba_gnome_vfs_async_load_directory), (corba_gnome_vfs_async_load_directory_uri): * libgnomevfs-corba/gnome-vfs-slave-notify.c: (impl_Notify_load_directory), (impl_Notify_get_file_info): * libgnomevfs-corba/gnome-vfs-slave.c: (allocate_info_list), (copy_file_info), (load_directory_not_sorted), (load_directory_sorted), (impl_Request_get_file_info), (impl_Request_load_directory): * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_get_file_info), (pthread_gnome_vfs_async_load_directory), (pthread_gnome_vfs_async_load_directory_uri): * libgnomevfs-pthread/gnome-vfs-job.c: (execute_load_directory_not_sorted), (execute_load_directory_sorted), (execute_get_file_info), (execute_load_directory): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_get_file_info), (gnome_vfs_async_load_directory_uri), (gnome_vfs_async_load_directory): * libgnomevfs/gnome-vfs-cancellable-ops.c: (gnome_vfs_get_file_info_uri_cancellable), (gnome_vfs_get_file_info_from_handle_cancellable): * libgnomevfs/gnome-vfs-cancellable-ops.h: * libgnomevfs/gnome-vfs-directory-list.c: (gnome_vfs_directory_list_load), (gnome_vfs_directory_list_load_from_uri): * libgnomevfs/gnome-vfs-directory-list.h: * libgnomevfs/gnome-vfs-directory.c: (gnome_vfs_directory_handle_new), (gnome_vfs_directory_handle_destroy), (open_from_uri), (open), (gnome_vfs_directory_open), (gnome_vfs_directory_open_from_uri), (directory_visit_internal), (gnome_vfs_directory_visit_uri), (gnome_vfs_directory_visit), (gnome_vfs_directory_visit_files_at_uri), (gnome_vfs_directory_visit_files): * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_clear), (gnome_vfs_file_info_copy): * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-handle.c: (gnome_vfs_handle_do_get_file_info): * libgnomevfs/gnome-vfs-handle.h: * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_get_special_mime_type): * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_get_file_info), (gnome_vfs_get_file_info_uri), (gnome_vfs_get_file_info_from_handle): * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-xfer.c: (empty_directory), (gnome_vfs_visit_list), (directory_add_items_and_size), (handle_name_conflicts), (create_directory), (copy_directory), (copy_items), (gnome_vfs_xfer_delete_items_common): * modules/bzip2-method.c: (do_get_file_info): * modules/efs-method.c: (do_open_directory), (do_get_file_info): * modules/extfs-method.c: (do_open_directory), (do_get_file_info), (do_get_file_info_from_handle): * modules/file-method.c: (directory_handle_new), (do_open_directory), (read_directory), (do_get_file_info), (do_get_file_info_from_handle): * modules/ftp-method.c: (internal_get_file_info), (do_get_file_info), (do_open_directory): * modules/gconf-method.c: (directory_handle_new), (set_stat_info_value), (set_stat_info_dir), (do_open_directory), (read_directory), (do_get_file_info), (do_get_file_info_from_handle): * modules/gzip-method.c: (do_get_file_info): * modules/http-method.c: (do_open_directory), (get_file_info_from_http_handle), (do_get_file_info), (do_get_file_info_from_handle): * modules/pipe-method.c: (do_get_file_info), (do_get_file_info_from_handle): * modules/translate-method.c: (tr_do_open_directory), (tr_do_get_file_info), (tr_do_get_file_info_from_handle): * test/gnome-file-selection/gnome-file-selection.c: (start_populating): * test/test-async-cancel.c: (wait_until_vfs_threads_gone), (first_get_file_info), (test_get_file_info), (test_load_directory_cancel): * test/test-async-directory.c: (main): * test/test-directory-visit.c: (main): * test/test-directory.c: (main): * test/test-info.c: (print_file_info), (main): * test/test-shell.c: (do_ls), (validate_path), (get_regexp_name), (do_info): * test/test-symlinks.c: (deal_with_result): 2000-07-19 Ali Abdin * modules/translate-method.c: (tr_apply_default_mime_type): Modified to also apply default mime-type if the mime-type is application/octet-stream 2000-07-19 Darin Adler * libgnomevfs/gnome-vfs-uri.c: (get_method_string): Schemes are not case-sensitive according to the RFC, so make them all lower-case with g_strdown when we parse. (gnome_vfs_uri_get_parent): Change logic so that URIs with no "/" have no parent. * test/test-uri.c: (test_uri_parent): Added a function for testing gnome_vfs_uri_get_parent. (main): Moved "FILE:" test out of the FIXME section since it's fixed. Added lots of parent tests. Corrected the "add // incorrectly" test to match the new version of gnome_vfs_uri_new. * modules/pipe-method.c: Removed some bad casts of function pointers to (gpointer) that were also completely unnecessary. * libgnomevfs/Makefile.am (INCLUDES): Ettore meant "-I$(top_builddir)", since it's a generated file. * test/auto-test: Pass "-a" option to diff so it treats the files as text files. * test/test.output: Updated to match what the program currently writes out. Someone needs to look it over and see if it's correct or if it reflects bugs. 2000-07-19 Ettore Perazzoli * libgnomevfs/Makefile.am (INCLUDES): Add `-I$(top_srcdir)'. Otherwise `#include ' doesn't work. 2000-07-19 Kjartan Maraas * configure.in: Added nl to ALL_LINGUAS. 2000-07-18 Mike Fleming * modules/translate-method.c: (tr_forkexec_cb), (tr_getline), (tr_handle_exec), (tr_uri_translate), (tr_do_open), (tr_do_create), (tr_do_open_directory), (tr_do_get_file_info), (tr_do_truncate), (tr_do_is_local), (tr_do_make_directory), (tr_do_find_directory), (tr_do_remove_directory), (tr_do_move), (tr_do_unlink), (tr_do_check_same_fs), (tr_do_set_file_info), (my_poptParseArgvString), (tr_args_parse), (tr_args_free): Added a -exec option to vfs-translate, which allows a child process to filter URI's. 2000-07-18 Maciej Stachowiak * libgnomevfs/gnome-vfs-private-utils.c (gnome_vfs_string_list_from_string_array): Handle a zero-length non-NULL array properly by turning a gratuitous do ... while loop into a while loop. 2000-07-17 Maciej Stachowiak * modules/search-method.c, modules/search-method.h: Removed (moved to medusa). * libgnomevfs/gnome-vfs-private-ops.c, libgnomevfs/gnome-vfs-private-ops.h: Renamed to gnome-vfs-cancellable-ops.[ch] * libgnomevfs/Makefile.am, libgnomevfs/gnome-vfs-private.h: Deal with the renaming. 2000-07-17 Mathieu Lacage This should fix bug 796. * libgnomevfs/Makefile.am: add -DGNOME_VFS_DATADIR and -DGNOME_VFS_CONFDIR. * libgnomevfs/gnome-vfs-mime.c:(mime_init) look into gnome_vfs prefix instead of gnome-libs one. * libgnomevfs/gnome-vfs-mime-magic.c:(gnome_vfs_mime_get_magic_table) idem. * libgnomevfs/gnome-vfs-gen-mimedb.c:(main) idem. * libgnomevfs/gnome-vfs-mime-info.c:(gnome_vfs_mime_init) idem. 2000-07-17 Seth Nickell * modules/search-method.c: (search_directory_handle_new), (search_directory_handle_destroy), (parse_search_uri), (do_open), (do_create), (do_close), (do_read), (do_write), (do_write), (do_seek), (do_tell), (do_truncate_handle), (do_open_directory), (do_close_directory), (do_read_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_is_local), (do_make_directory), (do_remove_directory), (do_move), (do_unlink), (do_check_same_fs), (do_set_file_info), (do_truncate), (do_find_directory), (do_create_symbolic_link): * modules/search-method.h: Create module for interfacing Gnome-VFS and the medusa search service. Write skeletons, draft basic functionality. 2000-07-17 Jonathan Blandford * modules/bzip2-method.c: #include * libgnomevfs/gnome-vfs-private-ops.c: #include * libgnomevfs/gnome-vfs-xfer.c: #include * libgnomevfs/gnome-vfs-mime-sniff-buffer-private.h: Add newline to the end of the file. * libgnomevfs/gnome-vfs-find-directory.h: Add newline to the end of the file. 2000-07-17 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_delete_items): Added a missing READYTOGO progress that caused asserts to get fired during a delete operation. 2000-07-15 Ali Abdin * modules/pipe-methpd.c: (mime_from_uri), (str_without_suffix), (do_get_file_info), (do_get_file_info_from_handle), (do_open): We are now allowed to specify mime-type over the URI using the pipe method (as in pipe:command;mime-type=text/html) Also - you can now escape strings passed to the pipe method (before they had to be unescaped) This closes bug #1322. (We still need a test-suite for this though). Also - expect a commit for a 'fix' to libvfs-translate.so 2000-07-14 Gene Z. Ragan * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-handlers.h: (gnome_vfs_mime_get_icon), (gnome_vfs_mime_set_icon): New API to get and set icon data. * mime-type-capplet/Makefile.am: Added new file mime-type-capplet/nautilus-mime-type-icon-entry.c * mime-type-capplet/nautilus-mime-type-icon-entry.c: * mime-type-capplet/nautilus-mime-type-icon-entry.h: (nautilus_mime_type_icon_entry_get_type), (nautilus_mime_type_icon_entry_class_init), (entry_changed), (entry_activated), (setup_preview), (ientry_destroy), (browse_clicked), (icon_selected_cb), (cancel_pressed), (gil_icon_selected_cb), (nautilus_mime_type_show_icon_selection), (drag_data_received), (drag_data_get), (nautilus_mime_type_icon_entry_init), (nautilus_mime_type_icon_entry_new), (nautilus_mime_type_icon_entry_gnome_file_entry), (nautilus_mime_type_icon_entry_gnome_entry), (nautilus_mime_type_icon_entry_gtk_entry), (nautilus_mime_type_icon_entry_set_pixmap_subdir), (nautilus_mime_type_icon_entry_set_icon), (nautilus_mime_type_icon_entry_get_filename): New file. This is a new verison of GnomeIconEntry. I am customizing it to look and bahve in a way that is compatible with Arlo's UI reccomendations. * mime-type-capplet/nautilus-mime-type-capplet.c: (mime_list_selected_row_callback), (icon_changed), (change_icon_clicked), (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (populate_mime_list): More UI cleanups. Removed GnomeIconEntry and replaced with new NautilusMimeTypeIconEntry. 2000-07-14 Mathieu Lacage * mime-type-capplet/Makefile.am: add OAF_CFLAGS and OAF_LIBS where it is needed to make it compile with strange prefixes. 2000-07-13 Gene Z. Ragan Fixed bug 1158, GnomeVFSMimeHandlers code needs error handling * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_add_extension), (gnome_vfs_mime_remove_extension): These functions now return a valid GNomeVFSResult. * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-info.h: (gnome_vfs_mime_commit_registered_types), (write_registered_mime_data): These functions now return a valid GNomeVFSResult. 2000-07-13 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs/gnome-vfs-xfer.c: (remove_file), (remove_directory), (count_each_file_size_one), (gnome_vfs_xfer_empty_trash), (gnome_vfs_xfer_delete_items): First part of fix for Bugzilla bug 1549 - Empty Trash progress dialog doesn't work. Made it so that both preflight calculation and the erase loop both weight each erased file/directory as if it were a file copy of a file 1024 bytes large. 2000-07-13 Ian McKellar * libgnomevfs/gnome-vfs-seekable.c: (read_file), (init_seek), (gnome_vfs_seek_emulate), (do_seek): Various fixes related to tmpfile changes and also random bug fixes to make seekable emulation actually work. * modules/http-method.c: (do_open): Fix to http-method so it works with the gnome-vfs-seekable code. 2000-07-12 Ian McKellar * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_to_string): Fixed a bug that added an extra '/'. 2000-07-12 Robin * Slomkowski * gnome-vfs.spec.in: changed *.so.* to *.so* 2000-07-12 Ramiro Estrugo * modules/gconf-method.c: (vfs_module_init): Update for GConf api changes. 2000-07-11 Robin Slomkowski * gnome-vfs.spec.in: removed a '.' 2000-07-11 Darin Adler * test/.cvsignore: * test/test-uri.c: (test_uri_to_string), (main): Added some more tests that demonstrate some more problems with the GnomeVFSURI functions. A lot of FIXMEs in here now about the problems. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_to_string): Added a check for uri->text of NULL so that URIs like "http:" would not cause a core dump. But perhaps they should return NULL instead of creating a legal URI? Also fixed a little of the formatting to fit the gnome-vfs standard. 2000-07-12 Ian McKellar * data/mime/gnome-vfs.keys: Added `vfs-method' keys to a few mime types. This key indicates the name of a GNOME VFS method that can be used to decode a file of this type. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_to_string): Essentially rewrote gnome_vfs_uri_to_string. It was very broken (especially for chained URIs). * modules/bzip2-method.c: (do_open), (do_get_file_info): * modules/gzip-method.c: (do_open), (do_get_file_info): Fiddled with invalid URI detection. * modules/extfs-method.c: (strip_separators), (get_basename), (get_dirname), (do_open), (read_directory_list), (do_open_directory), (do_close_directory), (do_read_directory), (do_get_file_info): Made it work - basically changed the way a bunch of the functions do their stuff. * modules/extfs/Makefile.am: * modules/extfs/tar: Added a `tar' extfs module - it isn't a good long-term solution for tar file access, but it works for now. * test/Makefile.am: * test/test-uri.c: (stop_after_log), (make_asserts_break), (test_failed), (test_uri_to_string), (main): Added a test-uri program. 2000-07-07 Michael Meeks * modules/efs-method.c (do_create): remove serious locking bug. 2000-07-10 Darin Adler Added async. set_file_info. Sadly, I didn't yet write a test for it and I haven't yet added it to the CORBA back end. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_set_file_info): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_set_file_info_callback), (dispatch_job_callback), (execute_get_file_info), (execute_set_file_info), (gnome_vfs_job_execute): Added set_file_info to the thread back end. * libgnomevfs/gnome-vfs-types.h: Made the standard callback that just returns a result code have the name GnomeVFSAsyncCallback since it can be used for any number of simple calls. * libgnomevfs/gnome-vfs-async-ops.h: Added async. set_file_info to the async. ops list. * libgnomevfs/gnome-vfs-backend.c: (report_failure_simple_callback), (report_failure_simple): Make the open-specific callback helper into something that can be shared by multiple calls. (gnome_vfs_async_open), (gnome_vfs_async_open_uri), (gnome_vfs_async_create), (gnome_vfs_async_create_uri), (gnome_vfs_async_create_symbolic_link): Use the callback helper by its new name. (gnome_vfs_async_set_file_info): Add async. set_file_info. * modules/newftp-method.c: [removed] * modules/newftp-method.h: [removed] 2000-07-09 Ian McKellar * libgnomevfs/gnome-vfs-private-types.h: Renamed GnomeVFSMethodCreateSymbolicLink to GnomeVFSMethodCreateSymbolicLinkFunc to match * modules/bzip2-method.c: (do_open), (do_read): Bugfixes. (do_get_file_info): Implemented do_get_file_info - needed by Nautilus * modules/gzip-method.c: (do_open), (do_read): Bugfixes. (do_get_file_info): Implemented do_get_file_info - needed by Nautilus * modules/http-method.c: (base64), (make_request): Implement minimal basic authorization support. (do_get_file_info), (do_close), (do_move): Bugfixes. 2000-07-07 Gene Z. Ragan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_add_extension), (gnome_vfs_mime_remove_extension): Changed code to used renamed gnome_vfs_mime_extensions_list_free * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-info.h: (gnome_vfs_mime_get_extensions_pretty_string): Return a list with period prepended, comma seperated items. (gnome_vfs_mime_extensions_list_free): Changed name form gnome_vfs_mime_extension_list_free * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_extension_list), (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (populate_mime_list), (create_mime_list_and_scroller): More exciting UI layout work and feature completion. 2000-07-07 Seth Nickell * libgnomevfs/gnome-vfs-xfer.c: (copy_directory), (copy_items): Add proper copy support for symlinks. * modules/file-method.c: (get_stat_info): Fix get_stat_info to return symbolic type correctly. * test/test-symlinks.c: (deal_with_result): Add more tests. 2000-07-07 Robin * Slomkowski * gnome-vfs.spec.in: moved *.so* out of devel section 2000-07-06 Gene Z. Ragan * mime-type-capplet/nautilus-mime-type-capplet.c: (column_clicked), (create_mime_list_and_scroller): Added sorting functionality to the column buttons. Enabled columns to respond to a click. Clicking a column header toggles between ascending and descending sort for that column. 2000-07-06 Dan Winship * libgnomevfs/gnome-vfs-mime-sniff-buffer.c (gnome_vfs_mime_sniff_buffer_get): don't try to seek if the sniff buffer has no seek function (eg, because it's memory based). 2000-07-05 Robin * Slomkowski * mime-type-capplet/Makefile.am: fixed libgdk_pixbuf dependency. 2000-07-05 Dan Winship * modules/gconf-method.c: add #ifdef HAVE_ALLOCA_H 2000-07-05 Jeffrey Stedfast * libgnomevfs/gnome-vfs-types.h: Changed '#include ' to '#include ' * libgnomevfs/Makefile.am: Added gnome-vfs-file-size.h to libgnomevfsinclude_HEADERS 2000-07-06 Ian McKellar * libgnomevfs/gnome-vfs-private-utils.c: (gnome_vfs_create_temp): * libgnomevfs/gnome-vfs-seekable.c: (init_seek): Changed to use safe temp file functions. (bugzilla.eazel.com: 1001) * modules/http-method.c: (http_status_to_vfs_result): Updated HTTP result -> GnomeVFSResult mapping. * (do_create): Fixed create method a bit. 2000-07-05 Ian McKellar * modules/extfs-method.c: (get_dirname), (do_open_directory), (match), (find_next): SEGV fixes. (do_get_file_info): Implement a useful get_file_info (based off the existing (open|read|close)_directory code. * modules/http-method.c: (my_strcmp), (do_move): Implement MOVE (using the HTTP/DAV MOVE method) * test/test-info.c: (print_file_info): Only print valid info fields. 2000-07-04 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_new_directory_with_unique_name): Make it possible for the unique name handling callback to detect a file system that supports only short names and supply an 8.3 name. 2000-07-04 Pavel Cisler * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-xfer.c: (copy_file_data), (copy_file), (gnome_vfs_xfer_delete_items_common), (gnome_vfs_xfer_delete_items), (gnome_vfs_xfer_uri_internal): Add support for removing source files during an inter-volume move. Split up deletion code into a common routine for reuse. Introduce a new progress phase to allow us to reset the progress state when done copying and when starting remove source files. Fixed bug 1215. 2000-07-04 Gene Z. Ragan More capplet work in progress. Modifying applet and code to support UI work done by Arlo. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_add_extension), (gnome_vfs_mime_remove_extension): API changes to support new layout. * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-info.h: (gnome_vfs_mime_get_extensions_list), (gnome_vfs_mime_get_extensions_string): API changes to support new layout. * mime-type-capplet/Makefile.am: Added dependency to GdkPixbuf. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (show_edit_components_dialog), (add_new_application), (show_new_application_window), (show_edit_application_window): API changes to support new layout. * mime-type-capplet/nautilus-mime-type-capplet.c: * mime-type-capplet/nautilus-mime-type-capplet.h: (populate_extension_list), (extension_list_deselected), (application_button_toggled), (viewer_button_toggled), (icon_changed), (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (populate_application_menu), (populate_viewer_menu), (edit_default_clicked), (nautilus_mime_type_capplet_update_application_info), (nautilus_mime_type_capplet_update_viewer_info), (insert_mime_vals_into_clist), (create_mime_list_and_scroller), (nautilus_mime_type_capplet_get_selected_item_mime_type), (make_path), (pixmap_file): API changes to support new layout. 2000-07-03 Ettore Perazzoli * libgnomevfs-pthread/Makefile.am (INCLUDES): Add `-I$(top_builddir)/libgnomevfs' so that it works with builddir != srcdir. * libgnomevfs-corba/Makefile.am (INCLUDES): Likewise. * libgnomevfs/Makefile.am (INCLUDES): Likewise. * modules/Makefile.am (INCLUDES): Likewise. 2000-07-03 Pavel Cisler * HACKING: * NEWS: * TODO: More tweaks for the release. 2000-07-03 Eskil Heyn Olsen * libgnomevfs/Makefile.am: * mime-type-capplet/Makefile.am: Making gnome-vfs rpm'able 2000-07-03 Pavel Cisler * AUTHORS: * HACKING: * README: * TODO: Update these for an upcomming release. * libgnomevfs/gnome-vfs-private-ops.c: (gnome_vfs_find_directory_cancellable): Fix a leak. 2000-07-03 Seth Nickell * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_create_uri), (pthread_gnome_vfs_async_create_symbolic_link): * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_job_callback), (execute_create), (execute_create_symbolic_link), (gnome_vfs_job_execute): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_create_symbolic_link): * libgnomevfs/gnome-vfs-file-info.h: Added asynchronous calls for the creation of symbolic links. * libgnomevfs/gnome-vfs-types.h: Rename GNOME_VFS_FILE_TYPE_BROKEN_SYMLINK to GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK, remove GNOME_VFS_FILE_FLAGS_SYMLINK. * test/gnome-file-selection/gnome-file-selection.c: (populate_callback): * test/test-async-directory.c: (type_to_string), (print_list): * test/test-directory-visit.c: (type_to_string), (directory_visit_callback): * test/test-directory.c: (type_to_string), (print_list): * test/test-info.c: (type_to_string): * test/test-shell.c: (do_ls), (do_info): Update pieces of GnomeVFS to reflect the aforementioned change, and check behaviors to reduce breakage regarding the change from a symbolic link as a flag to a type. * modules/file-method.c: (get_mime_type), (get_stat_info): Add handling for GNOME_VFS_INFO_FOLLOW_LINKS. * test/test-symlinks.c: (deal_with_result), (create_link_callback), (make_link), (make_link_async), (check_broken_links), (main): Add tests for link following, broken symbolic link checking, and async. link creation checking to the symbolic link checking program. 2000-06-27 Michael Meeks * modules/efs-method.c (gnome_vfs_file_system_*): Create in-file file system code. Totaly re-write internals to use the new in-file filing system code. * test/test.cmds: Expand regression tests to do new things. 2000-07-03 Ian McKellar * libgnomevfs/gnome-vfs-xfer.c: (call_progress_often), (copy_file_data), (copy_file): Fixes to supply a default IO block size of 4096 for xfers when none is supplied by the module. * modules/extfs-method.c: Segfault fix. * modules/ftp-method.c: (ls_to_file_info), (internal_get_file_info): Fix get_file_info response to not contain a default IO block size. * test/test-xfer.c: (xfer_progress_callback): Update test-xfer to understand a couple more xfer phases. 2000-07-02 Ian McKellar * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_get_path): Added gnome_vfs_uri_get_path function. (gnome_vfs_uri_get_basename): Added FIXME bug id 1472. * modules/ftp-method.h: * modules/ftp-method.c: (FTP_DEBUG), (read_response_line), (do_path_command), (do_path_command_completely), (do_path_transfer_command), (ftp_connection_create), (ftp_connection_destroy), (my_str_hash), (my_str_equal), (ftp_connection_uri_hash), (ftp_connection_uri_equal), (ftp_connection_aquire), (ftp_connection_release), (do_open), (do_read), (do_write), (internal_get_file_info), (do_get_file_info), (do_open_directory), (do_check_same_fs), (do_make_directory), (do_remove_directory), (do_move), (do_unlink): Rewrote the FTP method to use GnomeVFSURIs internally rather than FtpUris. Also defined the semantics and memory management of URIs more clearly (closing bug 1465). Some general sanitisation. * modules/http-method.c: (set_content_type): Ignore encoding. (do_close), (do_read), (do_open_directory), (do_read_directory), (do_get_file_info), (do_make_directory), (do_remove_directory), (do_unlink): Add convenience routines to make adding methods easier. Implement mkdir, rmdir, rm (much of bugs 1480, 1485). (process_propfind_propstat), (process_propfind_response), (make_propfind_request), Fixed URI handling a bit (decode returned filenames, strip trailing '/'s, etc). 2000-06-29 Pavel Cisler Fix a bunch of leaks. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_load_directory_not_sorted): Unref allocated GnomeVFSFileInfo when read fails properly. Delete the list of file info structs when we are done with them properly. * libgnomevfs/gnome-vfs-directory-filter.c: (gnome_vfs_directory_filter_destroy): Free filter object properly. * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: (gnome_vfs_mime_sniff_buffer_new_generic): Set up buffer ownership for generic sniffers properly so the buffer gets freed when it should. 2000-06-27 Pavel Cisler * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: Fix magic rules and mime type for image/x-xpixmap 2000-06-27 Michael Meeks * modules/efs-method.c: Kill redundant fields. (directory_handle_new): kill; redundant. (do_open_directory): implement handle creation. (directory_handle_destroy): remove redundant free. (GET_PATH_MAX): remove; unneeded & ugly. remove old redundant macros. remove redundant includes. 2000-06-27 Michael Meeks * mime-type-capplet/Makefile.am (INCLUDES): add libgnomevfs 2000-06-27 Michael Meeks * vfsConf.sh.in: touch to force script re-build. * test/gnome-file-selection/Makefile.am (INCLUDES): add -I$(top_srcdir)/libgnomevfs * libgnomevfs/Makefile.am (libgnomevfsplatofrmincludedir): make path slightly less gratuitous. * libgnomevfs/gnome-vfs-types.h: rename include to gnome-vfs-file-size.h 2000-06-26 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_magic_parse): Fix patterns with mask to apply the mask on the patterns -- this makes it allows the masked out bits to be anything. * test/test-mime.c: (main): Remove a bogus setting of the suffix_only flag. * data/mime/gnome-vfs-mime-magic: Fixed the mime type for compress files. Remove ambiguous magic rule for application/x-font-tex-tfm that was misfiring on .Xauthority files. Change photoshop rules to use the rule with a mask. * data/mime/gnome-vfs.keys: Change application/x-patch to text/x-patch Mon Jun 26 16:04:48 2000 George Lebl * configure.in: Test the sizes of int, long, and long long to figure out if we have a 64bit type. Then set up some variables and build libgnomevfs/gnome-vfs-file-size.h with this information and a bunch of defines about the types used. Also since this header will be installed into /lib/vfs/include/libgnomevfs, the VFS*_INCLUDEDIR's now add this directory * libgnomevfs/Makefile.am: install gnome-vfs-file-size.h to $(libdir)/vfs/include/libgnomevfs * gnome-vfs-constants.h: Remove the GNOME_VFS_*_FORMAT_STR macros as they are replaced by ones in gnome-vfs-file-size.h * gnome-vfs-types.h: include gnome-vfs-file-size.h and remove the GnomeVFSFileSize and GnomeVFSFileOffset typedefs * gnome-vfs-file-size.h.in: Skeleton file created by configure to typedef GnomeVFSFileSize and GnomeVFSFileOffset, GNOME_VFS_*_FORMAT_STR macros and GNOME_VFS_*_IS_ macros 2000-06-26 Michael Meeks * doc/uri.txt: update. * test/Makefile.am: Add automatic regression testing. * test/test.input: Plaintext to test vs. * test/test.output: Standard good output * test/test.cmds: test-shell commands to execute. * test/test-shell.c (close_file, kill_file_cb, register_file), (close_files): mange named file handles. (get_handle, do_create, do_open, get_int, do_read, do_close): implement. (do_seek): implement. (main): allow comments in the input stream, s/stderr/vfserr/ (main): Setup vfserr to be stdout for regression tests. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): kill redundant check on ref_count. 2000-06-26 Pavel Cisler * data/mime/gnome-vfs-mime-magic: Added a sniff rule for svg files. Got rid of questionable sgml sniff rules. 2000-06-26 Michael Meeks * modules/efs-method.c (do_make_directory): add error handling on efs close. (do_make_directory): commit. (do_close): re-write, adding commit. (do_unlink): add commit. * Makefile.am (SUBDIRS): move SUBDIRS_OAF up the build so it is made in time for the tests. * test/test-shell.c (list_commands): expand help. (syntax_error): kill. (main): update argument handling. 2000-06-26 Pavel Cisler * Makefile.am: Fix broken build - recent changes to Makefile.am put libraries in wrong order. 2000-06-25 Pavel Cisler * configure.in: Turn -Werror back on. * libgnomevfs/gnome-vfs-mime-handlers.c: (join_str_list), (bool_to_str): Fix code that breaks if USING_OAF is undefined. 2000-06-25 Morten Welinder * test/test-mime-handlers.c: conditionalise on USING_OAF and HAVE_GCONF as needed. * libgnomevfs/gnome-vfs-mime-handlers.c: conditionalise on USING_OAF and HAVE_GCONF as needed. (gnome_vfs_mime_action_free): Add a few "break;"s to this piece of untested code. * test/Makefile.am (noinst_PROGRAMS): Only make oaf-depedent tests when we have oaf. * test/gnome-file-selection/Makefile.am (noinst_PROGRAMS): Ditto. * modules/default-modules.conf (ftp): Remove Yakk's newftp hack. * acconfig.h (HAVE_GCONF): Add. * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): Only initialise oaf if we have it. * configure.in (set_more_warnings): Don't add -Wsign-promo and -Wno-sign-compare unless the compiler understands them. Don't add -Werror at all. * test/test-async-cancel.c (my_yield): renamed from yield to avoid name clash. * libgnomevfs/gnome-vfs-mime.c (add_to_key): Fix arguments to isspace (etc.) (mime_fill_from_file): Ditto. * libgnomevfs/gnome-vfs-mime-magic.c (read_string_val): Ditto. (read_num_val): Ditto. (eat_white_space): Ditto. (gnome_vfs_mime_magic_parse): Ditto. * modules/translate-method.c (my_poptParseArgvString): Ditto. * modules/ftp-method.c (get_response): Ditto. (do_read_directory): Ditto. * modules/http-method.c (parse_status): Ditto. (header_value_to_number): Ditto. * libgnomevfs/fnmatch.c (FOLD): Ditto. * libgnomevfs/gnome-vfs-uri.c (get_method_string): Ditto. * libgnomevfs/gnome-vfs-private-utils.c (check_end): Ditto. 2000-06-26 Ian McKellar * modules/ftp-method.c: (ftp_response_to_vfs_result), (do_control_write), (do_basic_command), (do_transfer_command), (ftp_connection_create), (ftp_connection_release), (do_open), (internal_get_file_info), (do_read_directory): Added FIXMEs to bugzilla, removed some fixed FIXMEs and fixed some of the things mentioned in some of the FIXMEs. 2000-06-24 Morten Welinder * libgnomevfs/gnome-vfs-parse-ls.c (vfs_parse_filedate): Actually get the time, don't use an undefined one. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): Avoid double free of method string. * modules/http-method.c (make_request): Feee uri_string in all cases. 2000-06-24 Michael Meeks * modules/efs-method.c (do_make_directory): create if not found. * test/test-shell.c (do_mv, do_rmdir, do_mkdir, do_rm): implement. (main): use g_get_current_dir. 2000-06-24 Michael Meeks * modules/efs-method.c (open_efs_file): split. (do_open, do_create): update. (do_unlink): implement. (do_open_directory,do_get_file_info, do_make_directory): update. Elimiate all uses of MAKE_ABSOLUTE, it leaks badly. (directory_handle_new): clean for no MAKE_ABSOLUTE. (do_open_directory): add param checks on uri. 2000-06-24 Michael Meeks * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): re-order to make (parse_uri_substring): Add parent arg, since set_uri_element will trample on memory unless uri->parent != NULL before call. update. (gnome_vfs_uri_new): update. * modules/efs-method.c (MAKE_ABSOLUTE): add catch for non-existant parents. (do_tell): implement. (do_open_directory): open only for read and use (transfer_dir_to_info): split (do_get_file_info): implement. (do_get_file_info_from_handle): remove, should be a fallback in the vfs anyway. * configure.in: enable libefs by default. * doc/uri.txt: revert a daftness. 2000-06-24 Pavel * modules/file-method.c: (file_handle_new), (do_close), (directory_handle_new), (get_mime_type), (do_get_file_info), (do_get_file_info_from_handle), (do_make_directory), (do_remove_directory), (rename_helper), (do_move), (do_unlink), (do_set_file_info): Fixed 1312 - Need to plug in sniff buffer mime magic API into methods. Fixed 1183 - Made the get_mime_type call correctly handle symlinks. Fixed 1184 - removed an extra stat call. Bunch of renamings and cleanup. * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_text): Fixed a bug where only text files larger than 256 would get recognized properly. Get rid of gnome_vfs_mime_magic_matches_p. Get rid of gnome_vfs_mime_type_from_magic. * libgnomevfs/gnome-vfs-mime-magic.h: Get rid of obsolete comment. * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-mime.h: (gnome_vfs_mime_type_from_name_or_default), (gnome_vfs_mime_type_from_name), (gnome_vfs_get_mime_type_from_uri_internal), (gnome_vfs_get_mime_type), (file_seek_binder), (file_read_binder), (gnome_vfs_get_file_mime_type), (gnome_vfs_get_mime_type_from_uri), (gnome_vfs_get_mime_type_for_data): New call gnome_vfs_get_file_mime_type used to detect mime types by the file method. Renamed a number of routines. * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-xfer.c: (count_items_and_size), * modules/extfs-method.c: (read_directory_list): (directory_add_items_and_size): * modules/file-method.c: (get_stat_info), (read_directory): * modules/gconf-method.c: (set_mime_type_value), (file_info_value), (file_info_dir): Renamed some of GnomeVFSFileInfoOptions. Added new GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE option. Renamed GNOME_VFS_XFER_FOLLOWLINKS to GNOME_VFS_XFER_FOLLOW_LINKS. * modules/ftp-method.c: (get_response), (do_transfer_command), (ls_to_file_info), (internal_get_file_info), (do_get_file_info): Fixed some leaks, got rid of checks for NULL before g_free, switched to use new gnome_vfs_mime_type_from_name_or_default, cleaned up. * modules/gconf-method.c: (set_mime_type_value): Fixed bad mime type. * test/gnome-file-selection/gicon.c: (gicon_get_icon_for_file_2): * test/gnome-file-selection/gnome-file-selection.c: (start_populating): * test/test-async-cancel.c: (test_load_directory_cancel): * test/test-async-directory.c: (main): * test/test-directory-visit.c: (main): * test/test-directory.c: (main): * test/test-info.c: (main): * test/test-mime.c: (main): Changed to match new renamings. * data/mime/gnome-vfs.keys: Added description for application/x-executable-file. 2000-06-24 Fatih Demir * mime-type-capplet: Removed this install-data-local target and made another normal rule to install the .desktop file also to the "Settings" menu-tree. [ PS: Some `install' variants don't support the -D flag, so you'd avoid whereever it's possible. ] 2000-06-23 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_edit_user_file_full): Added code to handle NULL for value and write out an empty string. The old code wrote out "(NULL)" because of the help of glibc, but then I had added checks for NULL. Now we handle it intentionally. (gnome_vfs_mime_edit_user_file_args): Got rid of check for NULL that made it illegal. Fixed a bug that would trash memory where I was doing the wrong list. (gnome_vfs_mime_edit_user_file): Make NULL legal here too. 2000-06-23 Michael Meeks * test/test-shell.c (do_info): implement. (main): hook in. 2000-06-23 Michael Meeks * test/test-shell.c (get_fname): updates. * modules/efs-method.c (do_read_directory): implement. (directory_handle_new): setup new->efs. Begin to loathe efs. * doc/uri.txt: update. * test/Makefile.am (libraries): add LIBEFS_LIBS * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): fix from Rajit, this still looks rather limited to me. * configure.in: Add efs check. * modules/default-modules.conf (efs): add. 2000-06-22 Michael Meeks * configure.in: add --enable-libefs. 2000-06-22 Gene Z. Ragan Fixed bug #581. UI for specifying whether applicaition can open multiple files at once. * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-handlers.h: (gnome_vfs_mime_define_application): Added const char * argument for mime type. Removed placeholder mime type. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (populate_default_applications_list), (populate_default_components_box), (initialize_edit_applications_dialog), (add_new_application), (show_new_application_window), (show_edit_application_window): Modified edit applicaiton list dialog to use a GtkList with embedded check buttons and labels. This allows single list items to be selected so that individual items can be edited or deleted. * test/test-mime-handlers-set.c: (main): Fixed call to gnome_vfs_mime_define_application to use new argument. 2000-06-22 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_edit_user_file_full), (gnome_vfs_mime_edit_user_file_args), (gnome_vfs_mime_edit_user_file_multiple), (gnome_vfs_mime_edit_user_file), (gnome_vfs_mime_set_default_action_type), (gnome_vfs_mime_set_default_application), (gnome_vfs_mime_set_default_component), (gnome_vfs_mime_set_short_list_applications), (gnome_vfs_mime_set_short_list_components), (gnome_vfs_mime_id_in_application_list), (gnome_vfs_mime_id_in_component_list), (gnome_vfs_mime_add_application_to_short_list), (gnome_vfs_mime_remove_application_from_list), (gnome_vfs_mime_remove_application_from_short_list), (gnome_vfs_mime_add_component_to_short_list), (gnome_vfs_mime_remove_component_from_list), (gnome_vfs_mime_remove_component_from_short_list), (gnome_vfs_mime_add_extension), (gnome_vfs_mime_remove_extension), (gnome_vfs_mime_extend_all_applications), (gnome_vfs_mime_remove_from_all_applications), (gnome_vfs_mime_define_application): Added some rudimentary error handling. * test/.cvsignore: Some new files are generated but not yet ignored. 2000-06-22 Gene Z. Ragan * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (show_new_application_window), (show_edit_application_window): Clean up work on layout of capplet dialogs. 2000-06-22 John Sullivan Moved SUID, SGID, and Sticky bits from flags field to permissions field because (1) it's conventional to treat them as permission bits, especially for display purposes, and (2) there was no way to set them before. * libgnomevfs/gnome-vfs-types.h: Added new GNOME_VFS_PERM_xxx constants for these three bits; removed old GNOME_VFS_FILE_FLAGS_xxx constants. * libgnomevfs/gnome-vfs-file-info.h: updated GNOME_VFS_FILE_INFO_xxx macros for these three bits to look in permissions field instead of flags field. * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_stat_to_file_info): Put these bits in permissions field instead of flags field when converting from stat result. Added a few more MIME type descriptions. * data/mime/gnome-vfs.keys: Added descriptions for x-special/device-char and friends. 2000-06-22 Rajit Singh * modules/efs-method.[ch]: Create. 2000-06-22 Michael Meeks * test/test-shell.c (get_fname): use regexps. (ms_ole_dump, do_dump): implement. 2000-06-22 Michael Meeks * test/Makefile.am: Add test-shell setup * test/test-shell.c: Small lightweight gnome-vfs shell for testing. 2000-06-21 Gene Z. Ragan Fixed bug #1434, Fix alignment of widgets in main capplet view. * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet): Replaced use of multiple pack boxes with a table. Things look much better now. 2000-06-21 Seth Nickell Added more complete symlink support to gnome-vfs. * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_create_symbolic_link): * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-private-ops.c: (gnome_vfs_create_symbolic_link_cancellable), * libgnomevfs/gnome-vfs-private-ops.h: * libgnomevfs/gnome-vfs-private-types.h: Added the generic gnome-vfs functions and declarations for gnome_vfs_create_symbolic_link and children that end up calling method specific functions. (gnome_vfs_remove_directory_from_uri_cancellable), (gnome_vfs_unlink_from_uri_cancellable), (check_same_fs_in_uri): Cleaned up formatting in some of the functions. * modules/file-method.c: (do_create_symbolic_link): Implemented symlinking for the file-method, with a place-holder for possible (eventual, post 1.0?) addition of URI links. * modules/bzip2-method.c: * modules/extfs-method.c: * modules/ftp-method.c: * modules/gzip-method.c: * modules/pipe-method.c: * modules/translate-method.c: Added NULL placeholders for other methods that do not implement create_symbolic_link. * test/Makefile.am: * test/test-symlinks.c: (make_link), (main): Wrote test code for the new gnome-vfs symlink support. Verifies by writing data to the new links and checking the target uri. * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_get_scheme): Fixed bug 821 by providing a method for querying a URI's scheme. (as featured in the addition of symlink support) 2000-06-21 Seth Nickell * modules/http-method.c: (http_file_handle_new), (http_file_handle_destroy), (http_handle_close), (do_close): Pavel here. Fixed a number of memory thrashers in http_handle_close. Fixed some white space. 2000-06-21 Gene Z. Ragan Final stage in renaming. * modules/ftp-method.c: * modules/ftp-method.h: Changed internal references form new-ftp-method to new-ftp-method. 2000-06-21 Gene Z. Ragan Added renamed new-ftp module files as ftp modules. * modules/ftp-method.c: (FTP_DEBUG), (ftp_response_to_vfs_result), * modules/ftp-method.h: (read_response_line), (get_response), (do_control_write), (do_basic_command), (do_transfer_command), (end_transfer), (ftp_connection_create), (ftp_connection_uri_hash), (ftp_connection_uri_equal), (ftp_connection_uri_to_string), (ftp_uri_to_string), (ftp_connection_aquire), (ftp_connection_release), (ftp_uri_create), (do_is_local), (do_open), (do_close), (do_read), (do_write), (ls_to_file_info), (internal_get_file_info), (do_get_file_info), (do_get_file_info_from_handle), (do_open_directory), (do_close_directory), (do_read_directory), (do_check_same_fs), (do_make_directory), (do_remove_directory), (do_move), (do_unlink), (vfs_module_init), (vfs_module_shutdown): 2000-06-21 Gene Z. Ragan Part of renaming and replacing of old ftp module with new ftp module. * modules/Makefile.am: * modules/ftp-method.c: * modules/ftp-method.h: Removed references to new-ftp. 2000-06-21 Rebecka Schulman * test/test-async-directory.c: (type_to_string): Fixed constant errors that were uncaught in previous name changes 2000-06-21 Darin Adler Improved the API of the utils (bug 1210). * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_format_file_size_for_display): Changed name from gnome_vfs_file_size_as_string. (gnome_vfs_escape_string_internal), (gnome_vfs_escape_string), (gnome_vfs_escape_path_string): Replaced the old parameterized escape_string function with 2 parameter-free versions for paths and for other strings respectively. (gnome_vfs_unescape_string_for_display): Added string to the name to make it more like the other names. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_append_file_name), (gnome_vfs_uri_extract_short_name): * modules/http-method.c: (create_handle), (do_read): * test/test-async-cancel.c: (test_load_directory_cancel): * test/test-escape.c: (test_escape), (test_escape_path), (test_unescape_display), (main): Updated callers to use calls by their new names. 2000-06-21 Gene Z. Ragan Fixed bug #583 * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (initialize_edit_applications_dialog), (show_new_application_window), (show_edit_application_window): New dialog and items to indicate and allow user to set application behavior concerning multiple launch and URI handling. * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet): Removed old UI code and migrated to dialog. 2000-06-21 Gene Z. Ragan Follow up to bug #1162. GnomeVFSFilePermissions had some items to be renamed as well. * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_get_special_mime_type), (gnome_vfs_stat_to_file_info): * libgnomevfs/gnome-vfs-types.h: * modules/file-method.c: (set_mime_type), (get_stat_info): * modules/ftp-method.c: (_ftpfs_read_directory), (fill_file_info): * test/test-directory-visit.c: (type_to_string): * test/test-directory.c: (type_to_string): * test/test-info.c: (type_to_string): 2000-06-21 Gene Z. Ragan Fixed bug #1162. Changed naming of gnome-vfs errors to seperate words with underscore and replace abbreviations with full words. * libgnomevfs-corba/gnome-vfs-async-ops.c: (corba_gnome_vfs_async_open), (corba_gnome_vfs_async_open_as_channel), (corba_gnome_vfs_async_create), (corba_gnome_vfs_async_create_as_channel), (corba_gnome_vfs_async_close), (corba_gnome_vfs_async_read), (corba_gnome_vfs_async_write), (corba_gnome_vfs_async_get_file_info), (corba_gnome_vfs_async_load_directory), (corba_gnome_vfs_async_xfer), (corba_gnome_vfs_async_cancel): * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel), (pthread_gnome_vfs_async_open_uri), (pthread_gnome_vfs_async_open), (pthread_gnome_vfs_async_open_uri_as_channel), (pthread_gnome_vfs_async_open_as_channel), (pthread_gnome_vfs_async_create_uri), (pthread_gnome_vfs_async_create), (pthread_gnome_vfs_async_create_as_channel), (pthread_gnome_vfs_async_close), (pthread_gnome_vfs_async_read), (pthread_gnome_vfs_async_write), (pthread_gnome_vfs_async_get_file_info), (pthread_gnome_vfs_async_load_directory), (pthread_gnome_vfs_async_load_directory_uri), (pthread_gnome_vfs_async_xfer): * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_cancel): * libgnomevfs/gnome-vfs-directory.c: (open), (gnome_vfs_directory_open), (gnome_vfs_directory_open_from_uri), (directory_visit_internal), (gnome_vfs_directory_visit_uri), (gnome_vfs_directory_visit), (gnome_vfs_directory_visit_files_at_uri): * libgnomevfs/gnome-vfs-handle.c: * libgnomevfs/gnome-vfs-inet-connection.c: (gnome_vfs_inet_connection_create): * libgnomevfs/gnome-vfs-iobuf.c: (gnome_vfs_iobuf_read), (gnome_vfs_iobuf_peekc), (gnome_vfs_iobuf_write), (gnome_vfs_iobuf_flush): * libgnomevfs/gnome-vfs-method.h: * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_open), (gnome_vfs_create), (gnome_vfs_tell), (gnome_vfs_get_file_info), (gnome_vfs_truncate), (gnome_vfs_make_directory), (gnome_vfs_remove_directory), (gnome_vfs_unlink), (gnome_vfs_move), (gnome_vfs_check_same_fs), (gnome_vfs_set_file_info): * libgnomevfs/gnome-vfs-private-ops.c: (gnome_vfs_open_uri_cancellable), (gnome_vfs_create_uri_cancellable), (gnome_vfs_close_cancellable), (gnome_vfs_read_cancellable), (gnome_vfs_write_cancellable), (gnome_vfs_seek_cancellable), (gnome_vfs_get_file_info_uri_cancellable), (gnome_vfs_get_file_info_from_handle_cancellable), (gnome_vfs_truncate_uri_cancellable), (gnome_vfs_truncate_handle_cancellable), (gnome_vfs_make_directory_for_uri_cancellable), (gnome_vfs_find_directory_cancellable), (gnome_vfs_remove_directory_from_uri_cancellable), (gnome_vfs_unlink_from_uri_cancellable), (gnome_vfs_move_uri_cancellable), (gnome_vfs_check_same_fs_uris_cancellable), (gnome_vfs_set_file_info_cancellable): * libgnomevfs/gnome-vfs-private-utils.c: (gnome_vfs_create_temp): * libgnomevfs/gnome-vfs-result.c: (gnome_vfs_result_from_errno), (gnome_vfs_result_from_h_errno): * libgnomevfs/gnome-vfs-seekable.c: (read_file), (write_file), (init_seek), (do_open), (do_create), (do_truncate_handle): * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-xfer.c: (handle_overwrite), (create_directory), (xfer_create_target), (copy_items), (move_items), (gnome_vfs_new_directory_with_unique_name), (gnome_vfs_xfer_uri), (gnome_vfs_xfer_private): * modules/bzip2-method.c: (result_from_bz_result), (do_open), (do_create): * modules/extfs-method.c: (do_open), (do_create), (do_write), (do_truncate_handle), (do_truncate), (do_open_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_make_directory), (do_find_directory), (do_remove_directory), (do_move), (do_unlink), (do_check_same_fs): * modules/file-method.c: (do_open), (do_create), (do_seek), (do_tell), (do_truncate_handle), (do_truncate), (do_open_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_make_directory), (do_remove_directory), (do_find_directory), (rename_helper), (do_move), (do_unlink), (do_set_file_info): * modules/ftp-method.c: (ftpfs_open_socket), (ftpfs_connection_connect), (login_server), (linear_start), (send_ftp_command), (retrieve_file), (get_file_entry), (ftpfs_open), (ftpfs_create), (ftpfs_open_directory), (ftpfs_get_file_info): * modules/gconf-method.c: (do_open), (do_create), (do_close), (do_read), (do_write), (do_get_file_info_from_handle): * modules/gzip-method.c: (result_from_z_result), (skip_string), (skip), (read_guint32), (read_gzip_header), (do_open), (do_create): * modules/http-method.c: (http_status_to_vfs_result), (create_handle), (do_open), (make_propfind_request): * modules/newftp-method.c: (ftp_response_to_vfs_result), (do_transfer_command), (do_open), (do_read), (do_write), (internal_get_file_info), (do_move): * modules/pipe-method.c: (do_open): * test/test-async-cancel.c: (file_open_fail_callback): 2000-06-21 Gene Z. Ragan * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (initialize_edit_applications_dialog), (nautilus_mime_type_capplet_show_new_extension_window), (add_new_application), (show_new_application_window): More work on adding applications and extension. * mime-type-capplet/nautilus-mime-type-capplet.c: (nautilus_mime_type_capplet_add_extension), (remove_extension_clicked), (none_button_toggled), (application_button_toggled), (component_button_toggled), (init_mime_capplet), (nautilus_mime_type_capplet_get_selected_item_mime_type): Changed use of GtkFixed to use layout. Layout is now messy again, but I should be able to get it looking right. 2000-06-20 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_magic_matches_p): Fix a memory thrasher in my new code. * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: Add proper key entries to Photoshop file type. 2000-06-20 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.h: * libgnomevfs/gnome-vfs-mime-magic.c: (is_octal_digit), (is_hex_digit), (read_octal_byte), (read_hex_byte), (read_string_val), (read_hex_pattern), (read_num_val), (eat_white_space), (match_pattern), (gnome_vfs_mime_magic_parse), (endian_swap), (try_one_pattern_on_buffer), (gnome_vfs_mime_magic_matches_p), (gnome_vfs_mime_try_one_magic_pattern), (gnome_vfs_mime_get_magic_table), (gnome_vfs_mime_test_get_magic_table), (print_escaped_string), (print_hex_pattern), (gnome_vfs_mime_dump_magic_table): Rewrote most of the mime rule parser, cleaning it up and fixing a ton of problems. Added support for patterns with masks. Added support for offset ranges. Added support for comments in the magic rule file. Got rid of unused entries in the GnomeMagicEntry struct. Fixed mask support in gnome_vfs_mime_magic_matches_p. Made gnome_vfs_mime_magic_matches_p and gnome_vfs_mime_try_one_magic_pattern share code. Added a way to dump the MIME magic table and to load an arbitrary table for debugging purposes. * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_text): Added support for UTF-8 text. * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_mp3): Added an algorithmic sniffer for audio/x-mp3. * test/test-mime.c: (main): Added a way to load and dump a specific file with magic rules. * data/mime/gnome-vfs-mime-magic: Added comments. Added sniff rule for Photoshop documents using a pattern with a mask. Changed html rules to work on an offset range. Added sniff rules for C and C++ files. Reordered rules placing ones that require a seek deep into the examined file last. 2000-06-20 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type): Another place we need to handle NULL. 2000-06-20 Gene Z. Ragan * mime-type-capplet/nautilus-mime-type-capplet.c: (mime_list_selected_row_callback), (none_button_toggled), (application_button_toggled), (component_button_toggled), (init_mime_capplet), (nautilus_mime_type_capplet_update_info): Added frame and set of radio buttons to indicate and allow the user to change the default action that will occur when a file is clicked/double-clicked in Nautilus. We have three choices that map to the three types of actions we currently support. 2000-06-20 Gene Z. Ragan Fixed bug #1221 * mime-type-capplet/nautilus-mime-type-capplet.c: (application_menu_activated), (populate_application_menu), (component_menu_activated), (populate_component_menu): Add handling of the case where a default application or component is not in the default applicaiton or component list. This involved some UI work and adding the default app to the default list. Hopefully the gnome-vfs-mime-handler API will not allow this to happen, but we handle it just in case. Cleaned up the way the menu items for the default application and component are set and added a signal handler to set the user's choice of application or component to be the default. 2000-06-20 Gene Z. Ragan Fixed bug #1055 * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-handlers.h: (gnome_vfs_mime_add_extension): Renamed function to be more in accordance with other function in file. (gnome_vfs_mime_remove_extension): New function to remove mapped extension from mime type. * libgnomevfs/gnome-vfs-mime-info.c: (load_mime_list_info_from), (gnome_vfs_mime_get_extensions), (mime_list_sort), (get_key_name), (gnome_vfs_mime_commit_registered_types), (write_mime_data_foreach), (write_registered_mime_data): A couple of things done here. One was work on the tokenizer so that it handled a variety of cases when reading in key data form .mime files. Another was work on saving and deleting mapped extensions from the .mime file. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_extension_window): Work on saving and deleting mapped extensions from the .mime file. * mime-type-capplet/nautilus-mime-type-capplet.c: (populate_extension_list), (nautilus_mime_type_capplet_add_extension), (remove_extension_clicked): Work on saving and deleting mapped extensions from the .mime file. 2000-06-20 John Sullivan * data/mime/gnome-vfs.keys: Finished renaming of some types from application/x-foo to text/x-foo. * data/mime/gnome-vfs.mime: Removed mysterious colons at the ends of some mime type names that was causing them not to match the keys. 2000-06-19 Ramiro Estrugo * data/mime/gnome-vfs.keys: Make mozilla the default 2000-06-19 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (mime_type_get_supertype): Made another function tolerant of NULL since we use NULL to mean unknown MIME type all the time. 2000-06-19 Darin Adler * po/POTFILES.in: Removed mime-data.c to fix build. 2000-06-19 Gene Z. Ragan * mime-type-capplet/mime-data.c: * mime-type-capplet/mime-data.h: Removed obsolete files. * mime-type-capplet/Makefile.am: Removed above files from Makefile. * libgnomevfs/gnome-vfs-mime-handlers.c: * libgnomevfs/gnome-vfs-mime-handlers.h: (gnome_vfs_mime_add_extension_to_mime_type): New function. Add extension mapping to named mime type and save to .mime file. * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-info.h: (load_mime_list_info_from), (load_mime_type_info), (gnome_vfs_mime_get_extensions), (gnome_vfs_mime_extension_list_free): New function to deep free the list returned by gnome_vfs_mime_get_extensions() (gnome_vfs_mime_registered_mime_type_list_free), New function to deep free the list returned by gnome_vfs_mime_get_extensions() (gnome_vfs_mime_commit_registered_types): Public function to commit internal hash table of mime data to disk. (gnome_vfs_mime_set_registered_type_key): This functions sets the key data for the registered mime type's hash table. (write_mime_data_foreach), (write_mime_data): New functions to write out mime data from hash table. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window), (nautilus_mime_type_capplet_show_new_extension_window): Clean up work on dialogs. * mime-type-capplet/nautilus-mime-type-capplet.c: (ok_callback), (populate_extension_list), (nautilus_mime_type_capplet_add_extension), (remove_extension_clicked), (init_mime_capplet), (delete_mime_clicked), (create_mime_list_and_scroller), (get_selected_item_mime_type): Clean up work on main capplet view. 2000-06-17 Gene Z. Ragan File Types and Programs capplet work in progress. * mime-type-capplet/mime-info.c: * mime-type-capplet/mime-info.h: Removed obsolete files from capplet. * mime-type-capplet/Makefile.am: Remove above files form makefile. * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs-mime-info.h: (list_context_new), (context_destroy_and_unlink), (load_mime_type_info_from), (load_mime_list_info_from), (mime_list_load), (load_mime_type_info), (gnome_vfs_mime_init), (gnome_vfs_mime_info_clear), (gnome_vfs_mime_info_shutdown), (get_key_name), (gnome_vfs_get_registered_mime_types): Various fixes and modifications. Fixed a bug in the mime key database parser that caused comments to be read in incorrectly. * mime-type-capplet/mime-data.c: (add_to_key), (add_mime_vals_to_clist), (add_new_mime_type), (add_new_mime_type), (write_mime_foreach): Capplet work in progress. * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: (nautilus_mime_type_capplet_show_new_mime_window): Capplet work in progress. * mime-type-capplet/nautilus-mime-type-capplet.c: * mime-type-capplet/nautilus-mime-type-capplet.h: (main), (g_list_free_deep), (try_callback), (revert_callback), (ok_callback), (cancel_callback), (populate_extension_list), (mime_list_selected_row_callback), (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (delete_mime_clicked), (edit_applications_clicked), (edit_components_clicked), (insert_mime_vals_into_clist), (create_mime_list_and_scroller): Capplet work in progress. 2000-06-16 Pavel Cisler * data/mime/gnome-vfs.mime: Fix two incorrect mime types. 2000-06-16 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_text), * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: Fix bug 1168 - add UTF-8 support to the text mime sniffer. * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: (gnome_vfs_get_mime_type_for_buffer), (gnome_vfs_sniff_buffer_looks_like_mp3): Fix bug 960 - add algorithmic sniffer for detecting audi/x-mp3 files. * libgnomevfs/gnome-vfs-private-ops.c: (gnome_vfs_open_uri_cancellable): Fix bug 1189 - removed retry code in open and made it respect the RANDOM flag as set by the caller. 2000-06-16 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_application): Added a FIXME to note that we need to enhance the "default-application" feature. (gnome_vfs_mime_get_default_component): Use the new exported liboaf.h OAF_ServerInfo_duplicate instead of our own, local, flawed function. (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_all_applications), Prune the list to only ones with applications that "exist" by calling the new prune_ids_for_nonexistent_applications function. (strdup_to), (is_executable_file), (executable_in_path), (get_executable_name_from_command_string), (application_known_to_be_nonexistent), (prune_ids_for_nonexistent_applications): Write the functions needed for a clean implementation of prune_ids_for_nonexistent_applications. (OAF_ServerInfoList_to_ServerInfo_g_list): Use the new exported liboaf.h OAF_ServerInfo_duplicate instead of our own, local, flawed function. 2000-06-16 John Sullivan * data/mime/gnome-vfs.keys, * data/mime/gnome-vfs.mime: Changed illegal audio/midi to legal audio/x-midi, and fixed up some font keys that didn't get updated in synch earlier. Fri Jun 16 12:11:32 2000 George Lebl * libgnomevfs/gnome-vfs-constants.h: When the long is actually 64bit, use "ld" and "lu" for the format. * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: Include to fix warnings * modules/gconf-method.c: Include and to fix warnings * test/test-async-directory.c (print_list): test/test-async.c (read_callback): Use the GNOME_VFS_SIZE_FORMAT_STR format constant to print out sizes 2000-06-16 Darin Adler * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_get_value), (gnome_vfs_mime_get_keys): Change to support MIME types of NULL which will make code simpler since NULL is commonly used to mean "unknown MIME type". 2000-06-15 Pavel Cisler * data/mime/gnome-vfs-mime-magic: Add mime magic for shell scripts. 2000-06-15 Pavel Cisler * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_mime_type_from_mode), (gnome_vfs_get_special_mime_type): * modules/gconf-method.c: (set_mime_type_dir): * modules/http-method.c: (process_propfind_propstat): Convert illegal "special/..." mime types to legal ones. * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: * data/mime/gnome-vfs.mime: * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_type_from_magic): Fix all illegal mime types. Reformat the magic table a bit and reorder it to put ambiguous rules last. * modules/http-method.c: (process_propfind_propstat): Change a TODO: to a FIXME: Get rid of an extra if before a g_free. 2000-06-15 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type): Fix bug where we would not fall back to the supertype action if the action type string was NULL. (gnome_vfs_mime_get_default_component): Fix bug where we would free an uninitialized variable. 2000-06-15 Gene Z. Ragan Work in progress on the FIle Types and Programs Capplet * mime-type-capplet/Makefile.am: Removed obsolete files form build. * mime-type-capplet/edit-window.c: * mime-type-capplet/edit-window.h: Obsolete. Removed. * mime-type-capplet/new-mime-window.c: * mime-type-capplet/new-mime-window.h: Obsolete. Removed. * mime-type-capplet/mime-data.c: (add_mime_vals_to_clist), (selected_row_callback): * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: * mime-type-capplet/nautilus-mime-type-capplet-dialogs.h: (edit_applications_dialog_destroy), (application_is_in_list), (application_button_toggled_callback), (populate_default_applications_box), (populate_default_components_box), (initialize_edit_applications_dialog), (show_edit_applications_dialog), (show_edit_components_dialog), (nautilus_mime_type_capplet_show_new_mime_window), (nautilus_mime_type_capplet_show_new_extension_window): * mime-type-capplet/nautilus-mime-type-capplet.c: * mime-type-capplet/nautilus-mime-type-capplet.h: (revert_callback), (populate_extension_list), (nautilus_mime_type_capplet_add_extension), (add_extension_clicked), (remove_extension), (extension_list_selected), (extension_list_deselected), (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (add_mime_clicked), (edit_components_clicked), (nautilus_mime_type_capplet_update_application_info), (nautilus_mime_type_capplet_update_component_info): 2000-06-15 Darin Adler * libgnomevfs/gnome-vfs-gen-mimedb.c: (main): * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_init): * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_get_magic_table): * libgnomevfs/gnome-vfs-mime.c: (mime_init): * mime-type-capplet/mime-data.c: (init_mime_type): Added FIXMEs to places that get MIME info from the gnome-libs prefix since we install this stuff in the gnome-vfs prefix. We already had a bug report about this. 2000-06-15 John Sullivan * data/mime/gnome-vfs.mime, * data/mime/gnome-vfs.keys: Added description for .lha, and extension + description for .lhz. 2000-06-14 Gene Z. Ragan * mime-type-capplet/nautilus-mime-type-capplet-dialogs.c: * mime-type-capplet/nautilus-mime-type-capplet-dialogs.h: New files. Trying to clean up current capplet source and organize it in a sensible way. (edit_application_dialog_destroy), (edit_component_dialog_destroy), (populate_default_applications_list), (populate_preferred_applications_list), (component_is_in_list), (component_button_toggled_callback), (populate_default_components_box), (populate_preferred_components_list), (initialize_edit_applications_dialog), (initialize_edit_components_dialog), (show_edit_applications_dialog), (show_edit_components_dialog), Brand new functions. * mime-type-capplet/Makefile.am: Added new source file listed above. * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet), (populate_application_menu), (populate_component_menu), (edit_applications_clicked), (edit_components_clicked): Work on setting up info view. 2000-06-14 Maciej Stachowiak Part of task 1057: Terminal-based programs should open into a new terminal window * data/mime/application-registry-hack.keys: Set requires_terminal setting for everything. * libgnomevfs/gnome-vfs-mime-handlers.h, libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_application_new_from_id): Add requires_terminal field to the GnomeVFSMimeApplication structure and initialize it appropriately. * test/test-mime-handlers.c (print_application): Print the require_terminal setting. 2000-06-14 John Sullivan * data/mime/gnome-vfs.keys: Maciej meant to change application/x-sh to text/x-sh, but didn't quite finish the job; also removed application/x-sh and application/x-tcl. 2000-06-14 Pavel Cisler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_list_free), (gnome_vfs_mime_component_list_free): Fix two leaks John and I found. 2000-06-13 Gene Z. Ragan More work in progress and added a new file to the capplet build. * mime-type-capplet/nautilus-mime-type-capplet.c: (main), (init_mime_capplet), (edit_applications_clicked), (edit_components_clicked), (edit_application_dialog_destroy), (initialize_edit_application_dialog), (show_edit_applications_dialog), (show_edit_components_dialog): * mime-type-capplet/nautilus-mime-type-capplet.h: New file 2000-06-13 Gene Z. Ragan Work in progress on the File Types and Program capplet * mime-type-capplet/edit-window.c: (initialize_main_win): * mime-type-capplet/mime-data.c: (get_priority), (add_to_key), (mime_fill_from_file), (add_mime_vals_to_clist), (selected_row_callback), (create_mime_clist), (add_new_mime_type): * mime-type-capplet/mime-data.h: * mime-type-capplet/nautilus-mime-type-capplet.c: (init_mime_capplet), (nautilus_mime_type_capplet_update_info), (populate_application_menu), (populate_component_menu), (free_mime_info), (delete_mime_clicked), (add_mime_clicked), (edit_applications_clicked), (edit_components_clicked): 2000-06-13 Maciej Stachowiak * data/mime/gnome-vfs.keys, data/mime/gnome-vfs.mime: Update file manager view IIDs, and use text/x-foo as the preferred mime type for more things that used to be application/x-foo. * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_component): Fix type inserted when adding sort conditions. * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_component):FIx part of FIXME 1145; prefer a component of the short list as a fallback default if no explicit default. (gnome_vfs_mime_get_short_list_components): Fix a bug in the query. 2000-06-13 Maciej Stachowiak Bugzilla task #1074 * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_action_type, gnome_vfs_mime_get_default_application, gnome_vfs_mime_get_default_component, gnome_vfs_mime_get_short_list_applications, gnome_vfs_mime_get_short_list_components, gnome_vfs_mime_get_all_applications): Added support for trying the supertype. (gnome_vfs_mime_str_list_merge, gnome_vfs_mime_str_list_apply_delta, gnome_vfs_mime_do_short_list_processing): New or modified helper functions. (process_app_list): Changed to take a GList of IDs instead of a comma-separated string. * data/mime/gnome-vfs.keys: Added text/* entry. 2000-06-13 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_all_components): Fix broken query. 2000-06-13 Maciej Stachowiak * data/mime/gnome-vfs.keys, data/mime/gnome-vfs.mime: Made canonical mime types for shell and c-shell scripts text/x-sh and text/x-csh, not application/x-sh and application/x-csh. 2000-06-12 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_set_default_application), (gnome_vfs_mime_set_default_component): Set the default action type if it had no previous value. 2000-06-12 Ramiro Estrugo * libgnomevfs/Makefile.am: Make the private header really private by not installing it. 2000-06-12 Eskil Heyn Olsen * gnome-vfs.spec.in: Changed the Requires to what the configure.in is actually checking for. * libgnomevfs/Makefile.am: Added gnome-vfs-mime-sniff-buffer-private.h to HEADERS. * mime-type-capplet/Makefile.am: added a -D to install of the .desktop file. Ensures that the dir is there during rpm -ta. Can now build a gnome-vfs rpm. 2000-06-09 John Sullivan Fixed bug 1302: can't undo mmap with g_free. Nautilus was sometimes crashing on exit due to this bug. * libgnomevfs/gnome-vfs-mime-magic.c: Added global variables to keep track of mmap size and whether mmap was used. (gnome_vfs_mime_get_magic_table): #ifdef declarations of variables only used in _POSIX_MAPPED_FILES case; use new globals to keep track of mmap size and whether mmap was used; check for MAP_FAILED case. (gnome_vfs_mime_clear_magic_table): Call munmap and not g_free if mmap was used. 2000-06-10 Sung-Hyun Nam * configure.in (ALL_LINGUAS): added ko 2000-06-08 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_component, gnome_vfs_mime_get_short_list_components, gnome_vfs_mime_get_all_components): Fix the queries 2000-06-08 Darin Adler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_get_basename), (gnome_vfs_uri_extract_short_path_name): * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_escape_string), (gnome_vfs_unescape_string), (gnome_vfs_unescape_for_display): Added code to handle NULL for the text of a URI. The old code would overreact and segfault. 2000-06-08 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_short_list_components, gnome_vfs_mime_get_all_components): Expand the queries to be closer to giving a superset of what Nautilus does. 2000-06-08 Darin Adler More leak fixes. * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-mime-private.h: Added a private header for some new calls. Made it really private, meaning it's not installed into the prefix include directory, unlike the old "private" files which are installed. * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_info_shutdown): Added this new function which calls gnome_vfs_mime_info_clear and then does the rest of the cleanup which can only be done at shutdown time. * libgnomevfs/gnome-vfs-mime-info.h: gnome_vfs_mime_info_clear is now a private call. * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_get_magic_table): Put the mmap call inside an ifdef _POSIX_MAPPED_FILES for better portability. (gnome_vfs_mime_clear_magic_table): Added a FIXME because we can't undo an mmap call with a g_free call! * libgnomevfs/gnome-vfs-mime.c: (remove_one_mime_hash_entry): Fixed leak by freeing the items in the list, not just the list. (gnome_vfs_mime_shutdown): Fixed leak by destroying the hash tables and the directory names. (gnome_vfs_mime_type_or_default): Simplified logic for freeing the upext. * libgnomevfs/gnome-vfs-mime-handlers.h: Some formatting and cleanup. 2000-06-08 Maciej Stachowiak * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_shutdown): * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_info_clear), (gnome_vfs_mime_info_reload): * libgnomevfs/gnome-vfs-mime-info.h: * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_clear_magic_table): * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime.c: (mime_extensions_empty), (maybe_reload), (gnome_vfs_mime_shutdown): * libgnomevfs/gnome-vfs-mime.h: Add calls that clear the different mime type tables and call them from gnome_vfs_shutdown. * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_mime_type_or_default): Fix a leak. 2000-06-07 Darin Adler * libgnomevfs/gnome-vfs-backend.c: (func_lookup): Fixed a storage leak. * test/test-async-cancel.c: (file_open_fail_callback), (test_open_fail), (main): Added a test. 2000-06-06 Pavel Cisler * libgnomevfs/gnome-vfs-directory-list.c: (gnome_vfs_directory_list_load), (gnome_vfs_directory_list_load_from_uri): Fix a storage and file descriptor leak. * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_mime_type_or_default): Fix a leak. 2000-06-06 Ramiro Estrugo * libgnomevfs/gnome-vfs-mime-handlers.c: (get_user_level): Use "/apps/nautilus" instead of "/nautilus" to conform to the gconf "standard" Thanks to andersca@gnu.org for pointing this out. 2000-06-06 Ramiro Estrugo * configure.in: Require only "gconf" not "gconf-gtk" 2000-06-06 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-info.h, libgnomevfs/gnome-vfs-mime-info.c (gnome_vfs_mime_info_reload): New call to force reloading of the MIME database. (maybe_reload): Use gnome_vfs_mime_info_reload if we decide to reload. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_set_default_action_type), (gnome_vfs_mime_set_default_application), (gnome_vfs_mime_set_default_component), (gnome_vfs_mime_set_short_list_applications), (gnome_vfs_mime_set_short_list_components), (gnome_vfs_mime_extend_all_applications), (gnome_vfs_mime_remove_from_all_applications), (gnome_vfs_mime_define_application): call gnome_vfs_mime_info_reload when done reloading. (gnome_vfs_mime_set_short_list_applications): Rewritten for correct memory management and improved clarity. 2000-06-06 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_remove_component_from_short_list): Fixed an application -> component typo. 2000-06-06 Pavel * libgnomevfs-corba/gnome-vfs-slave.c: (copy_metadata): * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_all_applications): * libgnomevfs/gnome-vfs-module-shared.c: * modules/extfs-method.c: (do_open_directory): Renumber some FIXMEs after marking them as duplicates. Fix a wrong FIXME number. 2000-06-06 Pavel * devel-docs/gnome-vfs-tutorial/gnome-vfs-tutorial.sgml: * doc/writing-modules.sgml: * modules/extfs-method.c: (do_open): Added more bug numbers to FIXMEs. Changed some mentions of FIXMEs to FixMes to make them not trigger the FIXME tool. 2000-06-05 Seth Nickell * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_extract_short_name): Modified to call gnome_vfs_unescape_string on the "short_name" before returning. * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_unescape_string): Added a g_assert to make sure length of returned string is correct (gnome_vfs_unescape_for_display): * libgnomevfs/gnome-vfs-utils.h: New function similar to unescape_string except that it returns the string formatted better for display - i.e. with "invalid" escape sequences and ASCII 0 still escaped * test/test-escape.c: (test_unescape), (test_unescape_display), (main): Added more test cases for escape code, improve output, added test code for gnome_vfs_unescape_for_display 2000-06-05 Pavel Cisler * libgnomevfs-corba/gnome-vfs-slave.c: (serve_channel_read), (serve_channel_write): * libgnomevfs-pthread/gnome-vfs-job-slave.c: * mime-type-capplet/edit-window.c: (populate_application_menu): * mime-type-capplet/mime-data.c: (add_to_key): * modules/extfs-method.c: (do_open), (read_directory_list), (do_open_directory), (match): * modules/extfs/cpio.in: * modules/extfs/lha.in: * modules/file-method.c: (read_directory): * modules/gconf-method.c: (directory_handle_destroy): Added more bug numbers to FIXMEs. Fixed one misspelled FIXME that made it show up in the check-FIXME.pl tool. 2000-06-05 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (call_progress), (count_items_and_size), (handle_name_conflicts), (copy_file), (copy_directory), (copy_items), (gnome_vfs_xfer_uri_internal), (gnome_vfs_xfer_private): Added more bug numbers to FIXMEs. 2000-06-05 Darin Adler * libgnomevfs-corba/gnome-vfs-async-ops.c: * libgnomevfs-corba/gnome-vfs-corba.c: (gnome_vfs_corba_init): * libgnomevfs-corba/gnome-vfs-slave-notify.c: (impl_Notify_load_directory): * libgnomevfs-corba/gnome-vfs-slave-process.c: (gnome_vfs_slave_process_reset), (gnome_vfs_slave_process_destroy): * libgnomevfs/gnome-vfs-directory-list.c: * libgnomevfs/gnome-vfs-handle.c: (gnome_vfs_handle_do_close): * libgnomevfs/gnome-vfs-parse-ls.c: * libgnomevfs/gnome-vfs-private-ops.c: (gnome_vfs_open_uri_cancellable): * libgnomevfs/gnome-vfs-private-utils.c: * libgnomevfs/gnome-vfs-result.c: (gnome_vfs_result_from_errno), (gnome_vfs_result_from_h_errno): * libgnomevfs/gnome-vfs-seekable.c: (do_open), (do_create), (do_truncate_handle): * libgnomevfs/gnome-vfs-shellpattern-filter.c: (gnome_vfs_shellpattern_filter_new): * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-uri.c: (get_method_string), (parse_uri_substring), (gnome_vfs_uri_append_path), (gnome_vfs_uri_to_string), (gnome_vfs_uri_is_local): * libgnomevfs/gnome-vfs-utils.h: Added more bug numbers to FIXMEs. 2000-06-05 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_set_default_application): Tiny reformatting. 2000-06-05 John Sullivan Refactored and made some helper functions public so clients that modify the program lists don't need to replicate a bunch of code. * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_id_in_application_list), (gnome_vfs_mime_id_in_component_list): Made these functions public. (gnome_vfs_mime_id_list_from_application_list), (gnome_vfs_mime_id_list_from_component_list): Gave these existing functions more public-sounding names and made them public. (gnome_vfs_mime_remove_application_from_list), (gnome_vfs_mime_remove_component_from_list): New public helper functions, extracted from the _short_list versions. (gnome_vfs_mime_add_application_to_short_list), (gnome_vfs_mime_add_component_to_short_list), (gnome_vfs_mime_remove_application_from_short_list), (gnome_vfs_mime_remove_component_from_short_list): Modified to call the new helper functions and reflect the renamings. 2000-06-05 Darin Adler * modules/bzip2-method.c: (bzip2_method_handle_init_for_decompress), (bzip2_method_handle_init_for_compress), (do_close), (do_read): * modules/file-method.c: (do_close), (set_mime_type), (do_find_directory), (rename_helper): * modules/ftp-method.c: * modules/gconf-method.c: (directory_handle_destroy), (get_value_size): * modules/gzip-method.c: (gzip_method_handle_init_for_deflate), (result_from_z_result), (do_open), (do_create), (do_close), (do_read): * modules/http-method.c: (http_file_handle_new), (http_status_to_vfs_result), (create_handle), (do_create): Added more bug numbers to FIXMEs. 2000-06-05 Pavel Cisler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_action_free): * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_magic_matches_p), (gnome_vfs_sniff_buffer_looks_like_text): * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_mime_type_from_mode), (gnome_vfs_get_special_mime_type): * libgnomevfs/gnome-vfs-parse-ls.c: Added more bug numbers to FIXMEs. 2000-06-05 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_get_all_components), (gnome_vfs_mime_set_default_action_type), (gnome_vfs_mime_set_default_application), (gnome_vfs_mime_set_default_component), (gnome_vfs_mime_set_short_list_applications), (gnome_vfs_mime_set_short_list_components), (gnome_vfs_mime_extend_all_applications), (gnome_vfs_mime_remove_from_all_applications), (gnome_vfs_mime_define_application), (get_user_level): * modules/extfs-method.c: (do_open_directory): Added bug numbers to FIXMEs. * libgnomevfs-corba/gnome-vfs-async-ops.c: (corba_gnome_vfs_async_xfer): Fixed the formatting of a FIXME bug. 2000-06-05 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_copy), (gnome_vfs_mime_application_free): Made these two routines accept NULL parameters. 2000-06-05 Pavel Cisler * libgnomevfs-corba/gnome-vfs-async-ops.c: (corba_gnome_vfs_async_xfer): * libgnomevfs-corba/gnome-vfs-slave-notify.c: (impl_Notify_reset): * libgnomevfs-corba/gnome-vfs-slave-process.c: * libgnomevfs-corba/gnome-vfs-slave-process.h: * libgnomevfs-corba/gnome-vfs-slave.c: (copy_metadata): * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel): * libgnomevfs-pthread/gnome-vfs-job-slave.c: (gnome_vfs_job_slave_new): * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs/gnome-vfs-configuration.c: * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-messages.h: * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_get_all_applications), (gnome_vfs_mime_get_all_components), (gnome_vfs_mime_extend_all_applications), (gnome_vfs_mime_remove_from_all_applications), (join_str_list), (get_user_level): Added bug numbers to FIXMEs. 2000-06-05 Mathieu Lacage * libgnomevfs/Makefile.am: add OAF_CFLAGS to include so that oaf.h is picked up when oaf is not in GNOME prefix. * test/Makefile.am : idem. 2000-06-05 Darin Adler * modules/http-method.c: * modules/newftp-method.c: (do_open_directory), (do_make_directory): * modules/pipe-method.c: (do_close): * test/gnome-file-selection/gicon.c: (get_stock_icon), (get_stock_overlay), (get_default_icon), (gicon_get_icon_for_file_2): * test/gnome-file-selection/gnome-file-selection-history.c: * test/gnome-file-selection/gnome-file-selection.c: (update_directory_combo_list), (setup_directory_combo_and_toolbar), (destroy), (class_init), (init): * test/test-info.c: Added bug numbers to FIXMEs. * mime-type-capplet/edit-window.c: (destruction_handler), (initialize_main_win), (launch_edit_window), (populate_application_menu): Got rid of the fixed-length mime_string field. * modules/file-method.c: (read_link), (get_stat_info): Some minor tweaks on the code Rebecca just checked in. There was a little problem with unsigned integers. 2000-06-05 Rebecca Schulman * modules/file-method.c Fixed lack of error handling for readlink call in read_link. 2000-06-05 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_default_component), (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_get_all_applications), (gnome_vfs_mime_get_all_components), (gnome_vfs_mime_set_default_action_type), (gnome_vfs_mime_set_default_application), (gnome_vfs_mime_set_default_component), (gnome_vfs_mime_set_short_list_applications), (gnome_vfs_mime_set_short_list_components), (id_list_from_component_list), (gnome_vfs_mime_add_application_to_short_list), (gnome_vfs_mime_remove_application_from_short_list), (gnome_vfs_mime_add_component_to_short_list), (gnome_vfs_mime_remove_component_from_short_list), (gnome_vfs_mime_extend_all_applications), (gnome_vfs_mime_remove_from_all_applications), (gnome_vfs_mime_define_application), (gnome_vfs_mime_action_free), (gnome_vfs_mime_application_list_free), (gnome_vfs_mime_component_list_free), (str_to_bool), (bool_to_str), (join_str_list): Added free calls to get rid of many storage leaks. Added more FIXMEs. Replaced lots of use of \' with just plain '. Replaced retval with variable names that are words in many places. Other reformatting and tweaking. 2000-06-05 Ramiro Estrugo * data/mime/gnome-vfs.keys: 2000-06-04 Ian McKellar * modules/newftp-method.c: (read_response_line), (ftp_connection_aquire), (do_open), (internal_get_file_info), (do_open_directory), (do_make_directory), (do_remove_directory), (do_move), (do_unlink): Fixed this lots. It should now fail gracefully if it can't connect or log into a server, and it should reconnect if a connection times out. 2000-06-02 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_add_application_to_short_list), (gnome_vfs_mime_remove_application_from_short_list), (gnome_vfs_mime_add_component_to_short_list), (gnome_vfs_mime_remove_component_from_short_list): Added implementations for these formerly empty functions. (gnome_vfs_mime_application_has_id), (gnome_vfs_mime_id_matches_application), (gnome_vfs_mime_id_matches_component), (gnome_vfs_mime_application_matches_id), (gnome_vfs_mime_component_matches_id), (gnome_vfs_mime_id_in_application_list), (gnome_vfs_mime_id_in_component_list), (id_list_from_application_list), (id_list_from_component_list), (g_list_free_deep): New helper functions used in the implementations of the add/remove functions. Most of these are replicated in nautilus_mime_action.c. I will make another pass to share code later. (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components): Fixed mistakes where the wrong list items were compared against, and added clarifying parentheses. There is still a bug that I couldn't find where these routines do not correctly include user additions to the lists. I'm writing this up. 2000-06-02 Darin Adler * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_new_directory_with_unique_name): Fixed a URI leak. * libgnomevfs/gnome-vfs-mime-handlers.c: (get_user_level): Tweaked gconf_init and some formatting. 2000-06-02 Gene Z. Ragan * mime-type-capplet/edit-window.c: (populate_application_menu): More work on handling the logic of populating the menu and handling special cases where short list, default application and applicaiton list may be NULL or empty. 2000-06-02 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.h, * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_add_application_to_short_list), (gnome_vfs_mime_remove_application_from_short_list), (gnome_vfs_mime_add_component_to_short_list), (gnome_vfs_mime_remove_component_from_short_list): Added prototypes and empty bodies for these new convenience functions. Implementations coming soon. 2000-06-02 Gene Z. Ragan More work in progress on the capplet. Still incomplete. * mime-type-capplet/edit-window.c: (initialize_main_win), (populate_application_menu): The Application window now displays the shortlist and selected the default application if it is present in the short list. (add_application): All of the mchinery is hooked up, but the API does not seem to be registering the new choice. 2000-06-02 Gene Z. Ragan More work in progress on the capplet. Still incomplete. * mime-type-capplet/edit-window.c: (initialize_main_win_vals), (show_edit_window), (populate_application_menu), (populate_component_menu), (application_menu_activate), (add_application), (show_file_selector): Work in progress. * mime-type-capplet/mime-data.c: (add_to_key): Work in progress. 2000-06-02 John Sullivan * data/mime/gnome-vfs.keys: * data/mime/gnome-vfs.mime: Added application/x-gnumeric at andersca's suggestion. 2000-06-02 Darin Adler * libgnomevfs/gnome-vfs-utils.c: * libgnomevfs/gnome-vfs-utils.h: * test/test-escape.c: (main): Updated escape and test to not escape "+" except if explicitly asked. This makes the path escape function more useful for the real case of converting a path to a URI. * test/.cvsignore: Ignore test-mime-handlers-set. 2000-06-02 Ramiro Estrugo * libgnomevfs/gnome-vfs-mime-handlers.c: (get_user_level): Use a GConfEngine directly to avoid depending on the Gtk object system. 2000-06-01 Maciej Stachowiak * data/mime/gnome-vfs.keys: Define short-list components for text/plain First half of task 370 (write APIs for mime handler stuff) * libgnomevfs/gnome-vfs-mime-handlers.h, libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_set_default_action_type, gnome_vfs_mime_set_default_application, gnome_vfs_mime_set_default_component, gnome_vfs_mime_set_short_list_applications, gnome_vfs_mime_set_short_list_components, gnome_vfs_mime_extend_all_applications, gnome_vfs_mime_remove_from_all_applications): Implemented (w/ some slight interface changes relative to old headers/stubs. (gnome_vfs_mime_define_application): New function. (bool_to_str, gnome_vfs_strsplit_to_list, gnome_vfs_strjoin_from_list, comma_separated_str_to_str_list, str_list_to_comma_separated_str, str_list_difference): More helper functions. * test/test-mime-handlers-set.c: Test for mime handler setter APIs. * test/Makefile.am: Build it. * mime-type-capplet/edit-window.c (add_application): Remove now-invalid call to gnome_vfs_mime_set_default_application w/ comment on how to do it better. 2000-06-01 Darin Adler * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_escape_string), (hex_to_int), (gnome_vfs_unescape_string): Fixed escape string to handle characters in a way that matches the URI RFC instead of being "conservative" and escaping everything. Also fixed to escape some characters it wasn't escaping and did code cleanup. Changed the API to gnome_vfs_unescape_string and made it handle cases where there are bad escape sequences or bad characters by returning NULL. * modules/file-method.c: (get_path_from_uri), (get_base_from_uri), (do_open), (do_create), (do_close), (do_read), (do_write), (do_truncate), (directory_handle_new), (do_open_directory), (do_get_file_info), (do_get_file_info_from_handle), (do_make_directory), (do_remove_directory), (do_find_directory), (rename_helper), (do_move), (do_unlink), (do_check_same_fs), (do_set_file_info): Handled URI escaping in every call. This involved unescaping URIs and handling the cases where there are bad characters. * test/test-escape.c: (test_escape), (test_unescape), (main): Added code to test both the escape and unescape functions. It's a lot easier to get it right if it's tested :-) This test gets run as part of make check. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_append_file_name), (gnome_vfs_uri_extract_short_name): Update for the new name of the parameter to gnome_vfs_escape_string. 2000-06-01 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_copy): Oops, this wasn't updated to copy the new id field, wreaking havoc on my Nautilus code. 2000-06-01 John Sullivan * data/mime/gnome-vfs.keys: Fixed the application short lists for text/plain, text/html, and special/webdav-directory. 2000-06-01 Darin Adler * libgnomevfs/gnome-vfs-mime-handlers.c: (get_user_level): Added fake parameters to the gconf_init call. It just won't put up with 0/NULL as argc/argv. * test/test-escape.c: (test_escape), (main): More test code (work in progress). 2000-06-01 John Sullivan * data/mime/application-registry-hack.keys: added entry for eog. * data/mime/gnome-vfs.keys: added a couple of text applications to the complete list for text/html, so we can test full-list-longer-than-short-list. 2000-06-01 Darin Adler * data/mime/gnome-vfs.keys: Checked in a full version. I accidentally truncated this with my last check-in. Also forgot to mention in my last check-in that I had changed the name from componet to component for xpdf (which I also updated). * test/Makefile.am: * test/.cvsignore: * test/test-escape.c: (stop_after_log), (make_asserts_break), (test_failed), (main): Started a new test for the escape/unescape functions. 2000-06-01 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.c (OAF_ServerInfo__copy): Implement copying of the attribute list properly by jumping through all the CORBA hoops. 2000-06-01 Darin Adler A set of changes to make the short lists be based on the user level. I'm not wild about adding the GConf dependency nor about the 3 identical lists for every MIME type, but for now this is what we designed. * configure.in: Changed to always require GConf, not just conditionally. * data/mime/gnome-vfs.keys: Updated the short list keys to have a separate list for each user level. * libgnomevfs/Makefile.am: Added GConf to what's linked with the gnome-vfs library. * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components), (get_user_level): Added code to get the user level and include the user level name in the attribute name that's sought ought in the MIME data. * modules/gconf-method.c: Fixed build warnings. 2000-06-01 Maciej Stachowiak * data/mime/gnome-vfs.keys: Added short list and default components to all appropriate types. Expanded application info for some types. 2000-06-01 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_application_new_from_id): Get "can_open_multiple_files" and "can_open_uris" from the right properties. 2000-06-01 JP Rosevear * mime-type-capplet/Makefile.am: Make the capplet build if gnomevfs isn't already installed. * libgnomevfs-corba/gnome-vfs-corba.c: Use only the oaf stuff * libgnomevfs-corba/gnome-vfs-slave.c: ditto * libgnomevfs/Makefile.am: Remove oaf conditionals since we require oaf now * libgnomevfs-corba/Makefile.am: * configure.in: Check for oaf >= 0.3.0 and make it mandatory 2000-06-01 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.h: Added `id' field to GnomeVFSMimeApplication struct. * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_application_new_from_id): Set the id field. * libgnomevfs/gnome-vfs-mime-handlers.h, libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_action_type): New function which only determines and returns the default action type. Needed for _for_uri versions of stuff in nautilus. (gnome_vfs_mime_get_default_action): Use it. * data/mime/gnome-vfs.keys: Populated with a bit more data. 2000-05-31 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.h, libgnomevfs/gnome-vfs-mime-handlers.c: Removed the _for_uri versions of these calls; they've been moved to Nautilus for now since they will require reading metadata. 2000-05-31 Darin Adler * libgnomevfs/gnome-vfs-directory.c: (directory_visit_internal), (gnome_vfs_directory_visit_files_at_uri): * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_append_file_name): * libgnomevfs/gnome-vfs-xfer.c: (empty_directory), (gnome_vfs_visit_list), (handle_name_conflicts), (copy_directory), (copy_items), (move_items), (gnome_vfs_xfer_delete_items), (gnome_vfs_new_directory_with_unique_name): A quick fix to Seth's check-in. He also forgot a ChangeLog. The change was to adda new append_file_name call that handles escaping correctly for combining a file name with a URI. * test/.cvsignore: Ignore some new test programs. 2000-05-31 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components), (gnome_vfs_mime_get_all_applications), (gnome_vfs_mime_get_all_components): Made these routines bail out immediately when passed NULL as the mime type. Maciej can flog me and change them back if he wants. (This prevents lots of spam when dealing with files that don't have any MIME type.) 2000-05-31 John Sullivan * libgnomevfs/gnome-vfs-mime-handlers.c: (get_mime_type_from_uri_hack), (gnome_vfs_mime_get_short_list_applications_for_uri), (gnome_vfs_mime_get_short_list_components_for_uri), (gnome_vfs_mime_get_all_applications_for_uri), (gnome_vfs_mime_get_all_components_for_uri): Added some temporary hacks so the _for_uri calls "work" by calling through to the mime-type-based ones. 2000-05-31 John Sullivan Couldn't wait for Maciej for a few bits here. * libgnomevfs/gnome-vfs-mime-handlers.h: * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_application_copy): New function (gnome_vfs_mime_application_free): Supplied implementation. (gnome_vfs_mime_application_list_free), (gnome_vfs_mime_component_list_free): New functions. 2000-05-31 Gene Z. Ragan Work in progress for the modified Files and Programs capplet that is relacing the old mime types capplet in the Gnome Control Center. * mime-type-capplet/Makefile.am: Added link dependeny to libgnomevfs. * mime-type-capplet/edit-window.c: (add_extension), (remove_extension): Rename functions to be more coherent. (initialize_main_win), (initialize_main_win_vals): Modified functions to remove dialog items that are obsolete in our new designs. Added new items such as the application and component menus. (populate_application_menu), (populate_component_menu), (application_menu_activate): Application menu functions that list the short list of applications for a mime type and allow a user to add applications to the short list. (add_application), (show_file_selector): Menu callback and function to display GtkFileSelection to allow user to locate an application to be associated with mime type. * mime-type-capplet/mime-data.c: (add_new_mime_type): Modified functions for new mime APIs. * mime-type-capplet/new-mime-window.c: (launch_new_mime_window): Modified functions for new mime APIs. * modules/file-method.c: (file_handle_new): Modified functions for new mime APIs. 2000-05-31 Dan Winship * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.keys: application/postscript doesn't have an x-, the registered type for Word is application/msword, and word processing formats in general are application/*, not text/* (because text/ means you can read it raw if you have to). Also, make some descriptions more consistent, and sync some types between the files where they differed. 2000-05-31 Pablo Saratxaga * data/mime/gnome-vfs-mime-magic: * data/mime/gnome-vfs.mime: * data/mime/gnome-vfs.keys: add new mime types. 2000-05-31 Ramiro Estrugo * Makefile.am: * configure.in: Now hook up the documentation generation up. 2000-05-31 Ramiro Estrugo * devel-docs/.cvsignore: * devel-docs/Makefile.am: * devel-docs/gnome-vfs-mime-type-handling.txt: * devel-docs/gnome-vfs-tutorial/.cvsignore: * devel-docs/gnome-vfs-tutorial/Makefile.am: * devel-docs/gnome-vfs-tutorial/gnome-vfs-tutorial.sgml: * devel-docs/gnome-vfs/.cvsignore: * devel-docs/gnome-vfs/Makefile.am: * devel-docs/gnome-vfs/gnome-vfs-decl.txt: * devel-docs/gnome-vfs/gnome-vfs-docs.sgml: * devel-docs/gnome-vfs/gnome-vfs-sections.txt: * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime-info.sgml: * devel-docs/gnome-vfs/tmpl/gnome-vfs-mime.sgml: * devel-docs/gnome-vfs/tmpl/libgnome-vfs.sgml: * man/.cvsignore: * man/Makefile.am: * man/gnome-vfs-mime.5.in: Import gnome mime documentation from gnome-libs so that it can be properly updated over here in gnome-vfs. 2000-05-31 Maciej Stachowiak * libgnomevfs/Makefile.am: Conditionally compile in oaf-based stuff. Complete bugzilla task #586 in a functional albeit somewhat hackish way that is in need of much code cleanup and some internals redesign. * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_short_list_applications, gnome_vfs_mime_get_short_list_components): Implemented. (gnome_vfs_mime_get_default_application, gnome_vfs_mime_get_all_applications): Updated to expect mime records to only point to app IDs, which point to app info in an external registry. (str_to_bool, join_str_list, strv_contains_str, extract_prefix_add_suffix, mime_type_get_supertype, strsplit_handle_null, gnome_vfs_mime_application_new_from_id, OAF_ServerInfo__copy, OAF_ServerInfoList_to_ServerInfo_g_list, process_app_list): New and modified helper functions. * test/test-mime-handlers.c (main): Add tests for short_list functions. * data/mime/gnome-vfs.keys: More test data; fix for new data representation. * data/mime/application-registry-hack.keys: Total hack using bogus mime types to create an application registry. Need a better solution than this long-term. * data/mime/Makefile.am: Install `application-registry-hack.keys'. 2000-05-30 Pavel Cisler * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_private): Removed some obsolete xfer options. Added new ones to make new copy engine functions not depend so much on subtle values of input source/target lists of items. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_new_directory_with_unique_name): Darin and mjs hated the old name. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_delete_items): New call to support a fallback delete for files that cannot be moved to Trash. 2000-05-30 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.c: (gnome_vfs_mime_get_all_applications, gnome_vfs_mime_get_all_components): Implemented (gnome_vfs_mime_get_short_list_applications), (gnome_vfs_mime_get_short_list_components), (parse_app_lists, OAF_ServerInfoList_to_ServerInfo_g_list): New helper functions. * test/test-mime-handlers.c: Expanded to test the all_applications and all_components calls. * libgnomevfs/gnome-vfs-init.c: (gnome_vfs_init): Fix oaf initialization to use a better dummy argv. * data/mime/gnome-vfs.keys: Added more test data. 2000-05-30 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_new_folder), (gnome_vfs_xfer_private): Add yet another flavor to the copy engine to allow creating new directories. * libgnomevfs-corba/gnome-vfs-async-ops.c: (corba_gnome_vfs_async_xfer): * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_xfer): Get rid of an assert that no longer applies. 2000-05-30 Maciej Stachowiak * libgnomevfs/Makefile.am: Add OAF_CLAGS. * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): oaf_init if it hasn't been done already. * libgnomevfs/gnome-vfs-mime-handlers.c (gnome_vfs_mime_get_default_action, gnome_vfs_mime_get_default_application, gnome_vfs_mime_get_default_component): Implemented more or less correctly (I hope). (extract_prefix_add_suffix, mime_type_get_supertype, OAF_ServerInfo__copy) : Helper functions cut & pasted from elsewhere. * test/test-mime-handlers.c: Test for gnome-vfs-mime-handlers API. * test/Makefile.am: Add the above to the build. * data/mime/gnome-vfs.keys: Put in some default ation/application/component data for testing purposes. 2000-05-27 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job-slave.c: (gnome_vfs_job_slave_new), (gnome_vfs_thread_backend_shutdown), (gnome_vfs_debug_get_thread_count): Made gnome_vfs_thread_backend_shutdown work properly by adding the right call to yield to the gtk idle task that is needed to allow all the task callbacks to finish. This simplifies the application quit. Tweaked some debugging messages. * libgnomevfs-pthread/gnome-vfs-job.c: (job_signal_ack_condition), (job_ack_notify), (job_notify), (gnome_vfs_job_finish_destroy), (gnome_vfs_job_prepare), (execute_load_directory_not_sorted), (execute_load_directory_sorted), (gnome_vfs_job_execute), (gnome_vfs_job_cancel): Added a cancel check to job_notify to make sure someone is still expecting a notification before we start notifying. Add checks to the return value of job_notify, bailing from all the calls during cancel. Added the same check to execute_load_directory_not_sorted to make it bail out earlier during a cancel. When cancelling, signal to the possibly waiting job_ack_notify to make it give up waiting. Added a lot more debugging code to help me chase down the problems. * test/test-async-cancel.c: (stop_after_log), (make_asserts_break), (directory_load_callback), (yield), (test_load_directory_cancel), (main): Made the test stop in the debugger during an assert. Added tests for load_directory cancellations. 2000-05-27 Dan Winship * libgnomevfs-corba/gnome-vfs-slave-notify.c (impl_Notify_open_as_channel): cast "struct sockaddr_un *" argument to connect to "struct sockaddr *". * libgnomevfs/gnome-vfs-private.h: Fix the getdelim prototype. 2000-05-26 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.h, libgnomevfs/gnome-vfs-mime-handlers.c: Add stub implementations for all functions. Add `gnome_vfs_mime_application_free' function. * libgnomevfs/Makefile.am: Add `libgnomevfs/gnome-vfs-mime-handlers.c' to the build. * libgnomevfs/gnome-vfs-mime-handlers.h: Add a "name" field to the GnomeVFSMimeApplication struct, as John and I discussed. * libgnomevfs/gnome-vfs-types.h: include , not jsut (glibconfig is really supposed to be an internal header anyway). 2000-05-26 Gene Z. Ragan All of the below is work in progress on the Files and Programs capplet. I am currently retro-fitting jrb's capplet to use our modified capplet layout and new gnome-vfs mime API. This capplet does not currently work properly, but does build and causes no harm if run. * mime-type-capplet/edit-window.c: (ext_remove), (apply_changes), (initialize_main_win), (initialize_main_win_vals), (launch_edit_window), (hide_edit_window), (show_edit_window), (populate_application_menu), (populate_component_menu): * mime-type-capplet/mime-data.c: (selected_row_callback), (edit_clicked): * mime-type-capplet/nautilus-mime-type.desktop: Changed entries so capplet would register itself as "Files and Programs" 2000-05-26 John Sullivan * data/mime/gnome-vfs.keys: Added one more description. This had been sitting around on my disk for awhile but I forgot. 2000-05-26 Maciej Stachowiak * libgnomevfs/gnome-vfs-mime-handlers.h: Header for upcoming mime handler API. * libgnomevfs/Makefile.am: Install the new header. 2000-05-24 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_sniff_buffer_looks_like_text): * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type): Implement a simple version of the call. Rename to a better name. * libgnomevfs/gnome-vfs-mime.c: (gnome_vfs_get_mime_type_from_file_data): Add detecting text files. 2000-05-24 Pavel Cisler * data/mime/gnome-vfs-mime-magic: Add a magic rule for rpm files. * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_matches): Fix a bug that would make the routine fail most of the times. * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: * libgnomevfs/gnome-vfs-mime-sniff-buffer-private.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime.c: (handle_seek_glue), (handle_read_glue), (gnome_vfs_mime_sniff_buffer_new_from_handle), (gnome_vfs_mime_sniff_buffer_new_generic), (gnome_vfs_mime_sniff_buffer_get): Add callback vectors to mime shiff buffer to allow providing any seek and read calls to make it work on anything, not just GnomeVFSHandles. Reworked gnome_vfs_mime_sniff_buffer_get to use the callback vectors. Rewrite gnome_vfs_mime_sniff_buffer_new_from_handle to use the callback vectors. * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-module-shared.c: (gnome_vfs_mime_type_from_mode), (gnome_vfs_get_special_mime_type), (libgnomevfs/gnome-vfs-module-shared.h): Move the routine close to an existing call that has similar logic. * modules/file-method.c: (read_directory): Tweak a comment. 2000-05-24 Ramiro Estrugo * mime-type-capplet/.cvsignore, mime-type-capplet/Makefile.am mime-type-capplet/mime-type-capplet.c mime-type-capplet/mime-type.desktop mime-type-capplet/nautilus-mime-type-capplet.c mime-type-capplet/nautilus-mime-type.desktop: Rename the 'mime-type' capplet to 'nautilus-mime-capplet' to avoid clobbering the control-center's one. 2000-05-23 Maciej Stachowiak * libgnomevfs/gnome-vfs-uri.c (get_method_string): Allow digits, `+', `-' and `.' in the uri scheme name. 2000-05-23 Pavel Cisler * libgnomevfs/gnome-vfs-mime-magic.c: * libgnomevfs/gnome-vfs-mime-magic.h: * libgnomevfs/gnome-vfs-mime.c: * libgnomevfs/gnome-vfs-mime.h: (gnome_vfs_mime_try_one_magic_pattern), (gnome_vfs_get_mime_type_for_buffer), (gnome_vfs_mime_magic_db_load), (gnome_vfs_mime_get_magic_table), (gnome_vfs_mime_type_from_magic), (gnome_vfs_get_special_mime_type), (gnome_vfs_get_mime_type_from_name_internal), (gnome_vfs_get_mime_type_from_name), (gnome_vfs_get_mime_type), (gnome_vfs_get_mime_type_from_file_data), (gnome_vfs_get_mime_type_for_data), (gnome_vfs_get_sniff_buffer_looks_like_text): Add new magic MIME sniffing APIs that can work on a URI as well as on an in-memory buffer. Fix the broken use of mask. Fix a bug where octal numbers were not parsed properly -- pretty much half the rules that used octal numbers never worked. Make the loading of the MIME-magic entry database thread-safe. Change the MIME-type lookup sequence for the default call. * libgnomevfs/Makefile.am: * libgnomevfs/gnome-vfs-mime-sniff-buffer.h: * libgnomevfs/gnome-vfs-mime-sniff-buffer.c: Lazy-reading buffer that can wrap either a file or a memory buffer and that is passed to the new magic MIME type sniffing calls. * libgnomevfs/gnome-vfs-mime-magic.c: (read_hex_str): Fix a bug Darin helped me find where uppercase hex numbers weren't converted properly. * libgnomevfs/gnome-vfs-mime-magic.c: (read_string_val): Fix a bug where octal numbers were not parsed properly -- pretty much half the rules that used octal numbers never worked. * data/mime/gnome-vfs-mime-magic: Re-did the whole file. We'll add more entries in the future, for now start with a good set of magic rules that are correct and that are for file types you are actually likely see on your machine. Ordered the rules such that the more-ambiguous ones are at the end of the file to minimize the chance of getting false positive. Fixed a number of incorrect rules in some of the entries I kept from the old file. * test/Makefile.am: * test/test-mime.c: New testing tool to test the new MIME-magic sniffing routines. In addition to testing the main gnome_vfs_get_mime_type allows testing magic-only MIME sniffing (good for verifying that a new magic entry is correct) and suffix-only MIME sniffing. 2000-05-23 Ramiro Estrugo * configure.in: Removed -lgnomevfs from CAPPLET_LIBS. 2000-05-23 Ramiro Estrugo * Makefile.am: * configure.in: * mime-type-capplet/.cvsignore: * mime-type-capplet/Makefile.am: * mime-type-capplet/edit-window.c, * mime-type-capplet/edit-window.h, * mime-type-capplet/mime-data.c, * mime-type-capplet/mime-data.h, * mime-type-capplet/mime-info.c, * mime-type-capplet/mime-info.h, * mime-type-capplet/mime-type-capplet.c, * mime-type-capplet/mime-type.desktop, * mime-type-capplet/new-mime-window.c, * mime-type-capplet/new-mime-window.h: Copy mime-type capplet from the control-center so that it can be improved and made to use gnome-vfs. This has the unfortunate side-effect of introducing a dependency on libcapplet. This is temporary until the capplet can move back to the control-center. At that time, the control-center will depend on gnome-vfs and eveyone will live happily ever after. 2000-05-19 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs-pthread/gnome-vfs-job.h: (dispatch_job_callback), (serve_channel_write), (gnome_vfs_job_new): Fixed up the rest of the g_io_channel_read calls to prevent them from returning without reading any input when a thread is signalled. Added more debugging code. 2000-05-19 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_job_callback): Handle a bug where g_io_channel_read would sometimes return with an error and without any characters read, failing to synchronize with the slave thread. I need to figure out why this is happening (probably a race condition in the g_io_channel setup code) for now added code that forces the read to be repeated. Fixes a problem Ettore and Andy were running into. * libgnomevfs-pthread/gnome-vfs-job-slave.c: * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs-pthread/gnome-vfs-job.h: Clean up debugging code a ton. 2000-05-19 Darin Adler * modules/file-method.c: (set_mime_type): Fixed to get the fast type if the slow type returns NULL. * modules/pipe-method.c: Got rid of commented out copy of set_mime_type, since it will just get out of sync. with the real copy. 2000-05-19 Darin Adler * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): There was a bug in the change to free method_string. This should fix it. * libgnomevfs/gnome-vfs.h: Fixed a FIXME. * test/gnome-file-selection/Makefile.am: Fixed a FIXME. 2000-05-19 Maciej Stachowiak * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): Actually, now it looks like Rebecca's change had nothing to do with the problem I'm seeing, so I'm reverting my change. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_new): Commented out Rebecca's memory leak fix for now; it looks correct to me but it must be triggering some other bug because it makes Nautilus do strange things for me and others. 2000-05-18 Rebecca Schulman * libgnomevfs/gnome-vfs-uri.c Fixed a memory leak in gnome_vfs_uri_new. (method_string sometime was never freed) 2000-05-18 Maciej Stachowiak * data/mime/gnome-vfs-mime-magic: Replaced mime type of "X pixmap image text" to "image/x-xpm". 2000-05-17 Pavel Cisler * libgnomevfs/gnome-vfs-uri.c: * libgnomevfs/gnome-vfs-uri.h: (gnome_vfs_uri_is_parent): Added a new utility call. * libgnomevfs/gnome-vfs-uri.c: (my_streq): Fixed it up to treat NULL and "" the same and cleaning it up. This fixes a bug in gnome_vfs_uri_equal making it fail on URIs that should have been evaluated as equal. * libgnomevfs/gnome-vfs-xfer.c: (move_items): Fix a bug where in some cases the error callback would get called without the names of the files it failed on. 2000-05-17 John Sullivan * data/mime/gnome-vfs.keys: Added application/x-asp 2000-05-16 Gene Z. Ragan * libgnomevfs/gnome-vfs-uri.c: Reverted due to accidental check-in during last commit. 2000-05-16 Gene Z. Ragan * test/gnome-file-selection/main.c: #include "libgnomevfs/gnome-vfs.h", not "gnome-vfs.h". 2000-05-16 Ettore Perazzoli * test/gnome-file-selection/gnome-file-selection.c: #include "libgnomevfs/gnome-vfs.h", not "gnome-vfs.h". * test/gnome-file-selection/Makefile.am (INCLUDES): Replace `-I$(top_srcdir)/libgnomevfs' with `-I$(top_srcdir)'. 2000-05-16 Ettore Perazzoli * libgnomevfs/gnome-vfs-mime-info.c (language_level): Correctly cast the `void *' pointer before passing to `strcmp()'. Also, made const-safe and re-indented a bit. 2000-05-16 Ian McKellar * modules/newftp-method.c: Fixed warning. 2000-05-16 Ian McKellar * modules/Makefile.am: * modules/default-modules.conf: * modules/newftp-method.c: * modules/newftp-method.h: New FTP method. It doesn't currently work with Netpresenz servers, but it is thread safe. Play with it, break it, mail me the addresses of FTP servers that don't work. This is a complete reimplementation, so I've left the old ftp-method in cvs as a reference. * test/test-info.c: (main): Accept multiple URIs on the command line. 2000-05-11 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_uri_internal): Fix bug 435: gnome_vfs_async_xfer does not report errors that Darin was running into. 2000-05-11 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job-slave.c: Add debugging code to help me fix deadlocks caused by gnome vfs not shutting down properly. * libgnomevfs-pthread/gnome-vfs-job.c: Make the JOB_DEBUG debugging print atomic. * libgnomevfs/gnome-vfs-backend.h: * libgnomevfs/gnome-vfs-backend.c: * libgnomevfs/gnome-vfs-init.h: * libgnomevfs/gnome-vfs-init.c: * libgnomevfs-pthread/gnome-vfs-job-slave.c: * libgnomevfs-pthread/gnome-vfs-job-slave.h: (gnome_vfs_thread_backend_shutdown), (gnome_vfs_debug_get_thread_count): Add a call that will allow apps to synchronize with the slave threads that are finishing up. 2000-05-10 Dan Winship * data/mime/gnome-vfs.keys: Add message/* and multipart/* mime types. They aren't useful for identifying files, but they may be useful for mail programs, and it would be dumb to have a separate MIME type database for that. Also fix up some descriptions, add some more types, and remove text/vnd.latex-z, because it's not what you think (and not useful). * data/mime/gnome-vfs.mime: Sync. 2000-05-09 Pavel Cisler * libgnomevfs/gnome-vfs-gen-mimedb: Removed from CVS. Oops, checked this in by accident. 2000-05-09 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: (execute_xfer): Add a missing job_close that was triggering an assert for various file system operations. 2000-05-09 Pavel Cisler * libgnomevfs-pthread/gnome-vfs-job.c: (job_oneway_notify): Handle the case where job_oneway_notify gets called from gnome_vfs_job_destroy properly - the current_op is NULL but we may still have a pending notify_op. * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_cancel): Fix a crash during cancellation - the call was dereferencing a null job when cancelling. 2000-05-08 Darin Adler A fix for canceling. Cancels can still be done until the caller is notified, even if the work is done. * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_cancel): Allow the caller to cancel a task even if we are done with it. * test/test-async-cancel.c: (test_get_file_info): Tweak message. 2000-05-08 Darin Adler Another cut at fixing the pthread back end for GNOME VFS. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_cancel), (pthread_gnome_vfs_async_open_uri), (pthread_gnome_vfs_async_open), (pthread_gnome_vfs_async_open_uri_as_channel), (pthread_gnome_vfs_async_open_as_channel), (pthread_gnome_vfs_async_create_uri), (pthread_gnome_vfs_async_create), (pthread_gnome_vfs_async_create_as_channel), (pthread_gnome_vfs_async_close), (pthread_gnome_vfs_async_read), (pthread_gnome_vfs_async_write), (pthread_gnome_vfs_async_get_file_info), (pthread_gnome_vfs_async_load_directory), (pthread_gnome_vfs_async_load_directory_uri), (pthread_gnome_vfs_async_xfer), (pthread_gnome_vfs_async_add_status_callback), (pthread_gnome_vfs_async_remove_status_callback): Changed to use the separate op structure so we can support starting a new operation before we have notified about the last one. * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): Re-enabled destroying the GnomeVFSJob objects, although the actual destroying takes place on the main thread after a subsequent notify. (gnome_vfs_job_slave_new), (gnome_vfs_job_slave_destroy), (pthread_gnome_vfs_debug_get_thread_count): Added thread count interface for testing and debugging. * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-job.c: (job_oneway_notify), (job_notify), (dispatch_open_callback), (dispatch_create_callback), (dispatch_open_as_channel_callback), (dispatch_create_as_channel_callback), (dispatch_close_callback), (dispatch_read_callback), (dispatch_write_callback), (dispatch_load_directory_callback), (dispatch_get_file_info_callback), (dispatch_xfer_callback), (close_callback), (handle_cancelled_open), (dispatch_job_callback), (gnome_vfs_job_new), (gnome_vfs_job_destroy), (gnome_vfs_job_finish_destroy), (gnome_vfs_op_destroy), (gnome_vfs_job_release_current_op), (gnome_vfs_job_release_notify_op), (gnome_vfs_job_prepare), (serve_channel_read), (execute_open), (execute_open_as_channel), (execute_create), (execute_create_as_channel), (execute_close), (execute_read), (execute_write), (execute_load_directory_not_sorted), (execute_load_directory_sorted), (execute_get_file_info), (execute_load_directory), (xfer_callback), (execute_xfer), (gnome_vfs_job_execute), (gnome_vfs_job_cancel): Changed to use the separate op structure so we can support starting a new operation before we have notified about the last one. Also added code to handle the case of an open that's cancelled after the file is opened, but before the callback has been called. * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_debug_get_thread_count): Added thread count interface for testing and debugging. * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: (gnome_vfs_file_size_to_string), (gnome_vfs_escape_string), (gnome_vfs_ascii_hex_to_char), (gnome_vfs_unescape_string): Remove the "_ht" and HT from the names. * test/.cvsignore: * test/Makefile.am: * test/test-async-cancel.c: (get_free_file_descriptor_count), (get_used_file_descriptor_count), (wait_for_boolean), (wait_until_vfs_threads_gone), (wait_until_vfs_threads_gone_no_main), (wait_until_file_descriptors_gone), (test_failed), (get_file_info_callback), (first_get_file_info), (test_get_file_info), (file_open_callback), (file_close_callback), (file_read_callback), (test_open_read_cancel_close), (test_open_cancel), (main): Added a new test, test-async-cancel. This one is run as part of make check and it checks for all the problems I was trying to fix. * configure.in: Turned on -Werror for all directories. Also turned on extra warnings like in Nautilus. * libgnomevfs/gnome-vfs-parse-ls.c: (finduid), (findgid): Fixed warnings. * test/gnome-file-selection/gnome-file-selection.c: Fixed a warning. * libgnomevfs-corba/Makefile.am: * libgnomevfs-pthread/Makefile.am: * libgnomevfs/Makefile.am: * modules/Makefile.am: Took out now-unnecessary $(WERROR) lines. 2000-05-08 Ettore Perazzoli * libgnomevfs-corba/Makefile.am: Don't use `GNOME_CFLAGS'. 2000-05-08 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (system_time): Fix it to return a correct value. 2000-05-07 Maciej Stachowiak * libgnomevfs/gnome-vfs-backend.c (report_failure_get_file_info_callback), libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_empty_trash): Fixed some uninitialized variable warnings. 2000-05-07 Maciej Stachowiak * data/mime/gnome-vfs-mime: Fixed some of the broken mime types. 2000-05-07 Pavel Cisler * gnome-vfs/configure.in: * libgnomevfs/Makefile.am: * libgnomevfs-corba/Makefile.am: * libgnomevfs-pthread/Makefile.am: * modules/Makefile.am: * test/Makefile.am: Turn on a flag to treat warnings as errors. This would have caught the two bugs I fixed in my previous checkin. * libgnomevfs/gnome-vfs-mime-info.c: * libgnomevfs/gnome-vfs.h: * modules/extfs-method.c: * test/test-async-directory.c: Fix all warnings in gnome-vfs. 2000-05-07 Pavel Cisler * modules/translate-method.c: (tr_args_parse): Fixed the translate module that got broken recently. (b_strcasecmp->g_strcasecmp). This broke viewing man pages, etc. in Nautilus. * modules/translate-method.c: (tr_do_find_directory): Fixed an obvious bug in parameter passing that was triggering a warning. 2000-05-06 Darin Adler * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): Turned off the call to gnome_vfs_destroy, reintroducing the leak. Hopefully this makes things work again, but the leak is back until I get a real fix. * libgnomevfs/gnome-vfs-context.h: Fixed a typo in the macro that made it work only on variables named "context". 2000-05-05 Darin Adler * libgnomevfs-pthread/gnome-vfs-job.c: (gnome_vfs_job_destroy): Oops. One loose end. Gotta avoid a little race condition. 2000-05-05 Darin Adler Fixed the leak of a ton of objects and 4 file descriptors for every async. call. * libgnomevfs-pthread/gnome-vfs-job-slave.c: (thread_routine): Destroy jobs when we are done with them. * libgnomevfs-pthread/gnome-vfs-job.c: (dispatch_close_callback): Took out the bogus call to destroy the job in here. (dispatch_job_callback): Added logic to get rid of the callback when we are done with it. Since there's no remove call, we need to send an additional notify just to get the call to remove itself. (gnome_vfs_job_new): Initialize want_notify_ack which had a random value in the old code. Also initialize the new "done" flag which is used to kill the above callback. (gnome_vfs_job_destroy): Got rid of bogus code in here that acquired the access lock, since this is only called from code that already has it. Added a call to job_notify so the callback can release itself. Removed the call to cancel the slave since the job is destroyed by the slave. Uncommented the code to free the execution condition, since that was an artifact of the old bad way the code was structured. * libgnomevfs-pthread/gnome-vfs-job.h: Added the "done" field. * libgnomevfs/.cvsignore: Ignore gnome-vfs-gen-mimedb. 2000-05-05 John Sullivan * libgnomevfs/gnome-vfs-gen-mimedb: Removed from CVS. This is a generated file and I shouldn't have checked it in earlier. * libgnomevfs/gnome-vfs-mime-info.h, * libgnomevfs/gnome-vfs-mime-info.c: (gnome_vfs_mime_program_list), (gnome_vfs_mime_program_name_list), (gnome_vfs_mime_program_name_list_free): Removed these list-based functions with Miguel's blessing. They shouldn't have gotten into the old gnome-mime.c, and they're not needed for Nautilus or apparently anything else. * libgnomevfs/gnome-vfs-mime.h, * libgnomevfs/gnome-vfs-mime.c: Added #include to shut up warning. (gnome_vfs_mime_type_list), (gnome_vfs_mime_type_list_or_default), (gnome_vfs_mime_type_list_of_file), (gnome_vfs_mime_type_list_or_default_of_file): Removed these list-based functions with Miguel's blessing. They shouldn't have gotten into the old gnome-mime.c, and they're not needed for Nautilus or apparently anything else. 2000-05-03 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c (remove_file), (remove_directory), (gnome_vfs_xfer_empty_trash), (gnome_vfs_xfer_uri_internal): Make emptying Trash update the progress_info structure properly to allow the progress dialog to display the right numbers. * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_uri_internal): Call progress with GNOME_VFS_XFER_PHASE_READYTOGO when emptying the Trash properly. * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_private): Fix broken const. 2000-05-03 Dave Camp * modules/gconf-method.c (do_open): (do_create): (do_close): (do_open_directory): (do_close_directory): (do_read_directory): (do_get_file_info): Fixed prototypes to match the current gnome-vfs api. (MAKE_ABSOLUTE): Make sure there is no trailing '/', as gconf doesn't like them. (directory_handle_new): Create a mutex for accessing the pairs. (directory_handle_destroy): Free the pair mutex. (set_mime_type_value): Change the mime-types. (set_stat_info_dir): (set_stat_info_value): Reflect changes in gnome-vfs api. (do_get_file_info): (do_open_directory): Perform locking for gconf accesses, and reflect gconf api changes. (read_directory): Perform locking when accessing the pairs, and correctly free the gconf pairs. (vfs_module_init): Reflect gconf api changes, and initialize a mutex for locking gconf. (vfs_module_shutdown): Free the gconf mutex. 2000-05-03 Michael Meeks * libgnomevfs/gnome-vfs-file-info.c: s/strcasecmp/g_strcasecmp/ * modules/translate-method.c: s/strcasecmp/g_strcasecmp/, indent. 2000-05-02 John Sullivan * data/mime/gnome-vfs.mime: Added a bunch of MIME types that were in the 1.0 branch of gnome-libs but not in HEAD. * data/mime/gnome-vfs.keys: Added a few missing keys that people had run into, and put the icon for core files here so it doesn't need to be special-cased in Nautilus. 2000-05-02 John Sullivan * data/mime/gnome-vfs.keys: Added description for image/svg. 2000-05-02 Dave Camp * libgnomevfs/gnome-vfs-ops.h (gnome_vfs_move_uri): * libgnomevfs/gnome-vfs-ops.h (gnome_vfs_move): * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_move_uri): * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_move): Renamed parameters, as the 'new' parameter was causing problems with C++ compilers. 2000-05-02 John Sullivan * data/mime/gnome-vfs.mime: Alphabetized the mime types, and removed the duplicate entry for video/x-msvideo (avi) 2000-05-02 John Sullivan Another step towards getting all the MIME handling code into gnome-vfs and out of gnome-libs. This step gets the data files and mime-magic stuff into gnome-vfs. * data/mime/gnome-vfs-mime-magic, * data/mime/gnome-vfs.mime, * data/mime/gnome-vfs.keys: New data files, cloned from "mime-magic", "gnome.mime", and "nautilus.keys", which these ones obviate. * Makefile.am, * configure.in, * data/.cvsignore:, * data/Makefile.am, * data/mime/.cvsignore, * data/mime/Makefile.am: New files -- build system fu to get the new data files installed in the right places * gnome-vfs.spec.in: Added new data files to RPM. Not sure I got this part right, will ask Ramiro about it. * libgnomevfs/gnome-vfs-gen-mimedb, * libgnomevfs/gnome-vfs-gen-mimedb.c: New files, copied over from gnome-libs. These are used so a tool can be called to compile the mime-magic data into a database form. * libgnomevfs/Makefile.am: Build system fu to handle gnome-vfs-gen-mimedb. * libgnomevfs/gnome-vfs-mime-info.c (mime_info_load): Use gnome-vfs.keys and skip gnome.keys if found. * libgnomevfs/gnome-vfs-mime-magic.c: (gnome_vfs_mime_magic_db_load): Use gnome-vfs-mime-magic.dat instead of mime-magic.dat. (gnome_vfs_mime_type_from_magic): Use gnome-vfs-mime-magic instead of mime-magic. * libgnomevfs/gnome-vfs-mime.c (mime_load): Use gnome-vfs.mime and skip gnome.mime if found. 2000-05-01 John Sullivan First steps at the grand move-MIME-handling-code-to- gnome-vfs plan. * libgnomevfs/gnome-vfs-mime-info.c, * libgnomevfs/gnome-vfs-mime-info.h, * libgnomevfs/gnome-vfs-mime-magic.c, * libgnomevfs/gnome-vfs-mime-magic.h, * libgnomevfs/gnome-vfs-mime.c, * libgnomevfs/gnome-vfs-mime.h: New files, cloned from similarly-named ones in gnome-libs. I started with the HEAD versions of these files, which include some mime-list API that I'm not sure yet if we actually need (but is currently sitting there uncalled, so no biggie for now). All code should now start using these instead of the code in gnome-libs, which will eventually be obsoleted. * libgnomevfs/Makefile.am: Put these new files into the build. * modules/extfs-method.c (read_directory_list): * modules/file-method.c (set_mime_type): * modules/ftp-method.c (_ftpfs_read_directory), (fill_file_info): * modules/pipe-method.c (set_mime_type): * test/gnome-file-selection/gicon.c (gicon_get_icon_for_file_2): Update all callers in gnome-vfs to use the new gnome-vfs mime calls. 2000-05-01 Ian McKellar * modules/ftp-method.c: (ftpfs_chdir_internal): Assume path=="" is equivalent to path=="/". (ftpfs_open_directory): Check return value of retrieve_dir. FTP URIs should now work. Miguel says that ftp-method needs to be made thread-safe, but I'm not sure how to do this. 2000-04-26 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_empty_trash): Set up progress phase properly. This fixes a problem with the progress dialog getting instantiated twice. * libgnomevfs/gnome-vfs-xfer.c: (remove_directory): Properly initialize and return result. 2000-04-26 Darin Adler * gnome-vfs-private-ops.c: (gnome_vfs_open_uri_cancellable), (gnome_vfs_create_uri_cancellable), (gnome_vfs_close_cancellable), (gnome_vfs_read_cancellable), (gnome_vfs_write_cancellable), (gnome_vfs_seek_cancellable), (gnome_vfs_get_file_info_uri_cancellable), (gnome_vfs_get_file_info_from_handle_cancellable), (gnome_vfs_truncate_uri_cancellable), (gnome_vfs_truncate_handle_cancellable), (gnome_vfs_make_directory_for_uri_cancellable), (gnome_vfs_find_directory_cancellable), (gnome_vfs_remove_directory_from_uri_cancellable), (gnome_vfs_unlink_from_uri_cancellable), (gnome_vfs_move_uri_cancellable), (gnome_vfs_check_same_fs_uris_cancellable), (gnome_vfs_set_file_info_cancellable): Changed these all so they will handle the case where the are cancelled before they even begin. 2000-04-26 Darin Adler * libgnomevfs/gnome-vfs-job.c: (execute_get_file_info): Fixed bug that would result in a thread that never dies. 2000-04-26 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c Fix a crash caused by using the wrong call to free a uri_list. 2000-04-26 Pavel Cisler Added gnome_vfs_find_directory to return well known directories. For now only returns Trash. * libgnomevfs/gnome-vfs-find-directory.c: * libgnomevfs/gnome-vfs-find-directory.h: * libgnomevfs/gnome-vfs-private-ops.c: * libgnomevfs/gnome-vfs-private-ops.h: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/Makefile.am: (gnome_vfs_find_directory_cancellable), (gnome_vfs_find_directory): Added gnome_vfs_find_directory to return well known directories. For now only returns Trash. * modules/file-method.c: * modules/translate-method.c: (do_find_directory), (tr_do_find_directory): Add support for find_directory. * modules/bzip2-method.c: * modules/extfs-method.c: * modules/ftp-method.c: * modules/gconf-method.c: * modules/gzip-method.c: * modules/http-method.c: * modules/pipe-method.c: Add empty support for find_directory to the remaining methods. * libgnomevfs/gnome-vfs-xfer.c: (remove_directory), (empty_directory), (remove_file), (directory_add_items_and_size), (calc_items_and_size), (gnome_vfs_xfer_empty_trash), (gnome_vfs_xfer_uri_internal), (libgnomevfs-corba/gnome-vfs-async-ops.c), (libgnomevfs-pthread/gnome-vfs-async-ops.c): Add support for emptying Trash (or any other list of directories). 2000-04-26 Ian McKellar Fixed bug #489 (http://bugzilla.eazel.com/show_bug.cgi?id=489) * modules/http-method.c: checked for handle==NULL in http_file_handle_destroy and http_handle_close. 2000-04-25 Darin Adler Changed the async. get_file_info to do multiple files at a time. We don't even have a single-file version any more. We can always re-add it if it turns out to be useful. * idl/gnome-vfs-slave.idl: * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c (report_failure_get_file_info_callback), (report_failure_get_file_info), (gnome_vfs_async_get_file_info): * libgnomevfs/gnome-vfs-types.h: * libgnomevfs-corba/gnome-vfs-async-ops.c (gnome_vfs_uri_list_to_corba_uri_list), (corba_gnome_vfs_async_get_file_info): * libgnomevfs-corba/gnome-vfs-slave-notify.c (strdup_or_null), (impl_Notify_get_file_info): * libgnomevfs-corba/gnome-vfs-slave.c (impl_Request_get_file_info): * libgnomevfs-pthread/gnome-vfs-async-ops.c (pthread_gnome_vfs_async_get_file_info): * libgnomevfs-pthread/gnome-vfs-job.h: * libgnomevfs-pthread/gnome-vfs-job.c (dispatch_get_file_info_callback), (execute_get_file_info): Changed get_file_info to work for multiple files. * libgnomevfs/gnome-vfs-file-info.h: Removed gnome_vfs_file_info_destroy macro. * libgnomevfs/gnome-vfs-file-info.c: (gnome_vfs_file_info_list_ref), (gnome_vfs_file_info_list_unref), (gnome_vfs_file_info_list_copy), (gnome_vfs_file_info_list_free): Added utility functions for manipulating a GList that contains GnomeVFSFileInfo pointers in it. * libgnomevfs/gnome-vfs-uri.h: * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_list_ref), (gnome_vfs_uri_list_unref), (gnome_vfs_uri_list_copy), (gnome_vfs_uri_list_free): Added utility functions for manipulating a GList that contains GnomeVFSURI pointers in it. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_unescape_string): Fixed a warning. * libgnomevfs-corba/gnome-vfs-corba.c (gnome_vfs_corba_init): Fixed a warning. * libgnomevfs-corba/gnome-vfs-slave.c (init_corba): Fixed a warning (bad OAF init call). * modules/http-method.c (do_write): Fixed a warning. * libgnomevfs-corba/gnome-vfs-slave.c (xfer_progress_callback): Fixed a warning. * modules/extfs-method.c (free_directory_entries): Replaced a lingering gnome_vfs_file_info_destroy with a call to gnome_vfs_file_info_unref. (do_open_directory): Got rid of #warning which was redundant with a FIXME. (We'll be making all FIXME into bug reports.) * modules/ftp-method.c (ftpfs_open_socket), (retrieve_file), (ftpfs_open), (ftpfs_create): Turned #warning into FIXME. (We'll be making all FIXME into bug reports.) (_ftpfs_read_directory): Fixed a bad bug where the mime type was filled in without g_strdup. Potential memory trasher. * libgnomevfs-corba/gnome-vfs-slave.c (load_directory_not_sorted): Replaced a lingering gnome_vfs_file_info_destroy with a call to gnome_vfs_file_info_unref. * libgnomevfs/gnome-vfs-backend.c (gnome_vfs_async_load_directory): * libgnomevfs/gnome-vfs-directory-list.c: * libgnomevfs/gnome-vfs-directory-list.h: (gnome_vfs_directory_list_load), (gnome_vfs_directory_list_load_from_uri): * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-directory.c (open_from_uri), (open), (gnome_vfs_directory_open), (gnome_vfs_directory_open_from_uri) (directory_visit_internal), (gnome_vfs_directory_visit_uri), (gnome_vfs_directory_visit), (gnome_vfs_directory_visit_files_at_uri), (gnome_vfs_directory_visit_files): * libgnomevfs/gnome-vfs-ops.h: * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_get_file_info), (gnome_vfs_get_file_info_uri), (gnome_vfs_get_file_info_from_handle): * libgnomevfs/gnome-vfs-private-ops.h: * libgnomevfs/gnome-vfs-private-ops.c: (gnome_vfs_get_file_info_uri_cancellable): (gnome_vfs_get_file_info_from_handle_cancellable): * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-private-utils.c (gnome_vfs_string_list_from_string_array) (gnome_vfs_forkexec), (gnome_vfs_process_run_cancellable): * libgnomevfs/gnome-vfs-process.h: * libgnomevfs/gnome-vfs-process.c (gnome_vfs_process_new): * libgnomevfs-corba/gnome-vfs-async-ops.c (corba_gnome_vfs_async_load_directory), (corba_gnome_vfs_async_load_directory_uri): * libgnomevfs-corba/gnome-vfs-slave-launch.c (gnome_vfs_slave_launch): * modules/extfs-method.c (do_open): * libgnomevfs-pthread/gnome-vfs-async-ops.c (copy_meta_keys), (pthread_gnome_vfs_async_get_file_info): Added const as needed. * libgnomevfs/gnome-vfs-cancellation.c: * libgnomevfs/gnome-vfs-context.c: * libgnomevfs/gnome-vfs-directory-filter.c: * libgnomevfs/gnome-vfs-directory-list.c: * libgnomevfs/gnome-vfs-directory.c: * libgnomevfs/gnome-vfs-directory.h: * libgnomevfs/gnome-vfs-file-info.h: * libgnomevfs/gnome-vfs-handle.c: * libgnomevfs/gnome-vfs-handle.h: * libgnomevfs/gnome-vfs-inet-connection.c: * libgnomevfs/gnome-vfs-iobuf.c: * libgnomevfs/gnome-vfs-messages.c: * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-private.h: * libgnomevfs/gnome-vfs-regexp-filter.c: * libgnomevfs/gnome-vfs-shellpattern-filter.c: * libgnomevfs/gnome-vfs-types.h: * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs-pthread/gnome-vfs-job.h: Got rid of leading underscores in many places where they were unnecessary and violate the ANSI C standard. There are still more. 2000-04-25 Ettore Perazzoli * libgnomevfs-corba/Makefile.am: Use `OAF_CFLAGS' too to make sure we get the right `CFLAGS'. 2000-04-20 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (move_items): Move the call_progress call after where the file was moved, that way the file is in guaranteed to be in it's final destination when the callback kicks in for it. 2000-04-19 Pavel Cisler * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-file-info.h: (gnome_vfs_file_info_matches): Added a new call. * libgnomevfs/gnome-vfs-xfer.c: Added a bunch of call_progress calls to ensure we can follow all the file system changes during a copy. 2000-04-19 Pablo Saratxaga * configure.in (ALL_LINGUAS): added Catalan 2000-04-18 Pavel Cisler Fixed two bugs Darin ran into. * libgnomevfs/gnome-vfs-xfer.c: (call_progress_with_current_names), (handle_error), (handle_overwrite): Made error/overwrite dialogs properly show the file that was being copied while an error ocurred. * libgnomevfs/gnome-vfs-xfer.c: (handle_name_conflicts): Add a way for the progress callback to find out if a single or multiple items ended up conflicting. That way the progress callback can determine if to add a Replace All option or not. * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_private): Added a workaround for a bug that happens when the caller of the routine tries to handle a returned error by calling the progress callback -- the problem is that that at that point the progress could have already cleaned up after itself knwong that the copy operation is over and could have deleted it's user data. * libgnomevfs/gnome-vfs-xfer.c: * test/test-xfer.c: Fixed warnings. 2000-04-18 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (handle_error): Made the error return value get set to GNOME_VFS_OK after Skip is selected -- This caused gnome_vfs_xfer_private to return an unexpected error that execute_xfer didn't know how to deal with. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_xfer): Properly set up the dummy progress_info and progress_state structs used for reporting unexpexted error results returned by gnome_vfs_xfer_private. 2000-04-18 Pavel Cisler Fixed a bug in error reporting that I introduced in my previous checkin. * libgnomevfs/gnome-vfs-xfer.c: (handle_error): Set the progress_info->status value to the correct error value. (move_items): Fix a bug in a retry case - the result value needs to get reset to GNOME_VFS_OK after Retry is selected. 2000-04-17 Maciej Stachowiak Work with either OAF or GOAD: * libgnomevfs-corba/gnome-vfs-corba.c, libgnomevfs-corba/gnome-vfs-salve.c: initialize appropriately for GOAD or OAF. * libgnomevfs-corba/gnome-vfs-async-ops.c, libgnomevfs-corba/gnome-vfs-slave-notify.c, libgnomevfs-corba/gnome-vfs-slave-process.c: Remove gratuitous include of * libgnomevfs-corba/Makefile.am: Link against the appropriate choice of OAF or GNORBA. * configure.in, acconfig.h: Add --enable-oaf option and if used, check for OAF. 2000-04-17 Pavel Cisler Made it possible for the gnome-vfs async copy engine to have two kinds of progress callbacks - one that gets called every hundred milliseconds or when user response is required and one that gets called for every single copy operation primitive. The latter is not called in the context of the master process and is much lighterweight to invoke. Nautilus will be using this callback mechanism to queue up notification records during a copy. * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: * libgnomevfs-corba/gnome-vfs-async-ops.c: * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs-pthread/gnome-vfs-job.h: (gnome_vfs_xfer_async), (corba_gnome_vfs_async_xfer), (pthread_gnome_vfs_async_xfer): Add optional sync callback and parameters. Pass the new parameters around. * libgnomevfs/gnome-vfs-private-ops.h: * libgnomevfs/gnome-vfs-xfer.c: (gnome_vfs_xfer_private): Add new private common copy engine entry point. * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-xfer.c: Add new GnomeVFSProgressCallbackState that contains the two callback, their user data, the timing logic for calling the update callback often. (handle_error), (remove_file), (remove_directory), (copy_file_data), (xfer_open_source), (xfer_create_target), (gnome_vfs_xfer_uri_internal), (gnome_vfs_xfer_uri), (gnome_vfs_xfer), (gnome_vfs_xfer_private) Rework xfer calls to pass around the new GnomeVFSProgressCallbackState structure. * libgnomevfs/gnome-vfs-private-types.h: * libgnomevfs/gnome-vfs-xfer.c: (call_progress), (progress_set_source_target_uris), (progress_set_source_target_names), (init_progress), (call_progress_uri), (call_progress_often), (call_progress_with_uris_often): Reworked progress calls to use GnomeVFSProgressCallbackState. * libgnomevfs/gnome-vfs-types.h * libgnomevfs-corba/gnome-vfs-slave-notify.c: * libgnomevfs-corba/gnome-vfs-slave.c: * libgnomevfs-pthread/gnome-vfs-async-ops.c: * test/test-xfer.c: Add new enum values so that progress callbacks can detect whether a copy, move or remove operations is being performed. Got rid of the GNOME_VFS_XFER_PHASE_XFERRING enum value. * gnome-vfs/libgnomevfs/gnome-vfs-xfer.h Got rid of an obsolete comment. 2000-04-13 Darin Adler * libgnomevfs/gnome-vfs-async-ops.h: * libgnomevfs/gnome-vfs-backend.c: Changed the async. operations so they report their errors through the callbacks all the time instead of sometimes returning an error code immediately. This is more convenient for callers, although it's a bit more complex to implement. * libgnomevfs-pthread/gnome-vfs-async-ops.c (pthread_gnome_vfs_async_load_directory): * test/test-async-directory.c (main): * test/test-async.c (main): * test/test-channel.c (main): Fix callers so they no longer expect a result code. * .cvsignore: Another generated file to ignore. 2000-04-12 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c.c: (gnome_vfs_xfer_uri_internal), (count_items_and_size): Make the move operation properly preflight by only adding up the items to move nonrecursively. 2000-04-11 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c.c: (gnome_vfs_xfer_uri), (gnome_vfs_xfer_uri_internal), (handle_name_conflicts): Fixed problems with using "Skip" during a move/copy conflict. The first problem was that a skip flag wasn't being checked properly. The second, bigger problem, was that the handle_name_conflicts had no good way of telling the rest of the copy engine that a given file was skipped. Now it gets a copy of the source/ targe item lists and optionally removes the items the user chose to skip. 2000-04-11 John Sullivan * modules/file-method.c: (do_get_file_info): statbuf was passed to set_mime_type uninitialized. Fixed by passing &statbuf to get_stat_info, which was obviously the original intention. 2000-04-11 Darin Adler * libgnomevfs/gnome-vfs-backend.c (gnome_vfs_async_create_uri): Added another missing async. cover routine. 2000-04-06 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: * libgnomevfs/gnome-vfs-types.h: Fixed up the copy engine. Added an option to create duplicate items with the help of the progress_callback. Worked around a problem where calling progress_callback in async mode was causing context switches each time and degreaded performance. For now made it only call the callback every 200 ms for cases where response is not important. This will get reworked eventually. (progress_set_source_target_names), (progress_set_source_target_uris), (call_progress), (call_progress_uri), (call_progress_often), (call_progress_with_uris_often): Added a bunch of convenience calls for calling the progress callback. (gnome_vfs_visit_list): Convenience call to iterate a base uri and a list of name, similar to the visit directory calls. (count_items_and_size): New preflight call - calculates the sum and total size of copied files. Made all preflight operations call progress_info and be interruptible. (handle_name_conflicts): New preflight call - finds out if there are conflicts in the target destination and optionally prompts the user to remove them. (create_directory), (copy_directory), (gnome_vfs_xfer_uri): Reworked the copy engine to use a recursive directory copy instead one that first creates a flat list. This way the copy will be able to deal with directories being moved from under the copy operation properly. (remove_file), (remove_directory): Call progress callback to make them interruptible, make remove_directory optionally recursive. * libgnomevfs-pthread/gnome-vfs-job.c: (xfer_callback):Fixed a bug where notify.progress_info was not being initialized. * libgnomevfs-pthread/gnome-vfs-job.c: * libgnomevfs-corba/gnome-vfs-slave.c: Renamed the GNOME_VFS_XFER_PHASE_UNKNOWN to GNOME_VFS_XFER_PHASE_INITIAL (the phase is always known and an initial phase was needed). 2000-04-06 Ian McKellar * modules/http-method.c: Added code to recognise stupid web servers that return an invalid reply to PROPFIND requests. 2000-04-05 Darin Adler * libgnomevfs/gnome-vfs-xfer.c (fast_move): Fixed an infinite loop. (It even had a comment that said it was an infinite loop.) * libgnomevfs/gnome-vfs-seekable.c (init_seek): Got rid of \n in a g_warning. 2000-04-05 Ian McKellar * modules/http-method.c: Added a create method, and fixed the write/close method so that Nautilus can successfully store metafiles, and so writing to WebDAV repositories will work in the future. 2000-04-04 Andy Hertzfeld * libgnomevfs/gnome-vfs-uri.c: fixed critical assertion that Nautilus was encountering using non-filesystem uris by making sure the uri was reference before calling unref. 2000-04-04 Ian McKellar * modules/http-method.c: Fixed WebDAV directory code to remove leading "/" from filenames. 2000-03-29 Darin Adler * libgnomevfs/gnome-vfs-directory.c (open_from_uri): Use CHECK_IF_SUPPORTED macro to be consistent with the rest of the file. * libgnomevfs/gnome-vfs-private-ops.c: (gnome_vfs_open_uri_cancellable), (gnome_vfs_create_uri_cancellable), (gnome_vfs_set_file_info_cancellable): Added missing checks for NULL in the module. The rest of the operations had checks for NULL. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_is_local): Check for a NULL is_local pointer. Unlike the other operations, for this one it's illegal to be NULL since there is no way to return the NOTSUPPORTED error code. * test/.cvsignore: Missing file. 2000-03-28 Pavel Cisler * libgnomevfs/gnome-vfs-xfer.c: (move_file): initialize "skip" properly. * libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_get_parent): strip trailing slashes. Handle multiple slashes properly. * libgnomevfs-pthread/gnome-vfs-job.c: (execute_xfer): pass the proper job structure. * libgnomevfs-pthread/gnome-vfs-async-ops.c: (pthread_gnome_vfs_async_xfer): pass the proper job type selector. 2000-03-28 John Sullivan * gnome-vfs-uri.c: (gnome_vfs_uri_extract_short_name): Check for empty-string host name as well as NULL. 2000-03-28 John Sullivan * gnome-vfs-uri.h, * gnome-vfs-uri.c: (gnome_vfs_uri_extract_short_name): Made this function return the host name (if any) when there's no path. Formerly it just returned "/" in that case. (gnome_vfs_uri_extract_short_path_name): New function, really a renaming of the old gnome_vfs_uri_extract_short_name. There are those who argue that this should be renamed extract_basename and the current get_basename (which doesn't handle trailing path separators according to XPG spec) should be abolished. 2000-03-25 Yukihiro Nakai * configure.in: Added Japanese translation from Akira Tagoh. 2000-03-20 Pablo Saratxaga * configure.in,po/lt.po: Added Lithuanian language file 2000-03-13 Elliot Lee * modules/Makefile.am: Finish the help-method move. Move module-shared stuff to libgnomevfs. * libgnomevfs/Makefile.am: Install our "private" headers for use by modules. * modules/http-method.c: #if 0 debug messages. * libgnomevfs/gnome-vfs-uri.c: Fix split_toplevel_uri for URIs with a hostname but no path. * modules/Makefile.am: Move help-method over to nautilus. 2000-03-10 Ian McKellar * modules/http-method.c Added made do_get_file_info* understand WebDAV servers. Also, made WebDAV collections return the mime-type special/webdav-directory. 2000-03-10 Pavel Machek * TODO: added pointers to other similar projects 2000-03-09 Jonathan Blandford * libgnomevfs/gnome-vfs-types.h: Add a urn field to GnomeVFSToplevelURI. This will let us add VFS modules that simply change a totally virtual name to a actual URL. * modules/help-method.c: New module to allow for "help:*" URL's. * modules/help-method.h: * modules/Makefile.am: added help module. * libgnomevfs/gnome-vfs-method.c (gnome_vfs_transform_get): Allow Transformations. Clean up the code a little. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): changed to allow for translations. Also, code cleaned up a lot. 2000-03-09 Ian McKellar * modules/http-method.c Added (open|read|close)_directory support for WebDAV servers. * configure.in, modules/Makefile.am Added checks for gnome-xml as are required for the WebDAV directory code. 2000-03-07 Ian McKellar * modules/http-method.c Added PUT support (i.e. WebDAV or HTTP/1.1 file upload). * test/test-sync-write.c Added a test program which writes from stdin to a URI. * test/test-sync.c Patched test-sync.c to handle larger files. 2000-03-06 Ettore Perazzoli * libgnomevfs/gnome-vfs-private-ops.c (gnome_vfs_get_file_info_uri_cancellable): If the `get_file_info' method is not implemented, return `GNOME_VFS_ERROR_NOTSUPPORTED' instead of crashing. * configure.in: Generate `gnome-vfs.spec' from `gnome-vfs.spec.in'. * gnome-vfs.spec.in: New file. From Ross Golder . 2000-03-03 Maciej Stachowiak * libgnomevfs/gnome-vfs-utils.c, libgnomevfs/gnome-vfs-utils.h (gnome_vfs_escape_string, gnome_vfs_unescape_string): New functions to escape and unescape URI strings; patch from Gene Z. Ragan . 2000-03-02 Maciej Stachowiak * modules/http-method.c (get_file_info_from_http_handle): Don't pretend we know the file size when we don't. 2000-02-24 Ettore Perazzoli * test/test-directory.c (print_list): Deal with a NULL MIME type. Patch from Marcus Nilsson : * modules/file-method.c (struct _DirectoryHandle): Made `current_entry' a pointer to a `struct dirent *' instead of just a `struct dirent'. (read_directory): Updated accordingly. (directory_handle_new): Allocate `current_entry' with `g_malloc()', allocating extra space as required by `readdir_r()'. (directory_handle_destroy): Free `current_entry'. 2000-02-22 Ettore Perazzoli * Version 0.1 is released. 2000-02-21 Ettore Perazzoli * libgnomevfs/gnome-vfs-cancellation.c (gnome_vfs_cancellation_check): If the cancellation is NULL, just return FALSE. (gnome_vfs_cancellation_ack): If the cancellation is NULL, just return. * test/test-xfer.c (xfer_progress_callback): Use `GNOME_VFS_SIZE_FORMAT_STR' to match the types. * test/test-async-directory.c (main) [!WITH_CORBA]: Do not define `ev', so that we don't get annoying compiler warnings. * test/test-xfer.c (xfer_progress_callback): Add casts. * test/test-directory-visit.c (directory_visit_callback): Add cast. * test/test-directory.c (print_list): Add cast. * test/test-async-directory.c (main): Removed unused variable. * modules/translate-method.c (tr_do_read_directory): Added cast to placate the compiler. * modules/file-method.c (do_get_file_info_from_handle): s/gnome_vfs_extract_short_name/gnome_vfs_uri_extract_short_name/. `gnome_vfs_extract_short_name' does not even exist! * modules/extfs-method.c: Add missing NULL pointer in initialization of `method'. * libgnomevfs-corba/gnome-vfs-slave.c (serve_channel_read): Use `GNOMEVFSFileSize' instead of `gulong'. (serve_channel_write): Likewise. * modules/Makefile.am (libhttp_la_LIBADD): Do not link the HTTP module with `-lghttp' (we don't actually use it). 2000-02-21 Jonathan Blandford * libgnomevfs/gnome-vfs-cancellation.c (gnome_vfs_cancellation_check): change g_return_if_fail to be a g_return_val_if_fail. I don't know if the g_ function is right here, but until that gets straightened out, make it compile. 2000-02-21 Elliot Lee * libgnomevfs/gnome-vfs-configuration.c: "Home made check" is supposed to be there. g_return_if_fail inappropriate, change reverted. 2000-02-20 Mathieu Lacage * libgnomevfs/gnome-vfs-configuration.c: plug memory leak in module_path_element_free intorduced by someone who forgot the arg element. Change a home-made check in g_return_if_fail. * libgnomevfs/gnome-vfs-cancelation.c: Change home-made check in g_return_if_fail. 2000-02-18 Maciej Stachowiak * modules/file-method.c (do_get_file_info, do_get_file_info_from_handle): Use gnome_vfs_extract_short_name on the URI rather than g_basename on the filename to get the basename. g_basename is broken. 2000-02-17 Jonathan Blandford * modules/default-modules.conf (ghelp): add ghelp to the list of known domains. 2000-02-16 Elliot Lee * test/test-async.c: Exit after receiving read(), no matter what result is received. * modules/pipe-method.c: Check fread() result for being > 0, not !EOF * libgnomevfs/gnome-vfs-uri.c: Don't add leading / * libgnomevfs/gnome-vfs-backend.c: Add assert to ensure initialization. * modules/default-methods.conf: Pass filename to gnome-man2html2 instead of redirecting it as input. 2000-02-15 John Sullivan * libgnomevfs/gnome-vfs-configuration.c: (gnome_vfs_configuration_get_module_path): Just clarified an error message. 2000-02-14 Maciej Stachowiak * libgnomevfs/gnome-vfs-types.h: Added a GnomeVFSFIleInfoFields enumeration, and added a field of this type (valid_fields) to GnomeVFSFileInfo, so that cases where get_file_info returns incomplete information can be handled gracefully. * modules/extfs-method.c, modules/file-method.c, modules/ftp-method.c, modules/http-method.c, modules/module-shared.c, modules/pipe-method.c, modules/translate-method.c: Set the valid_fields 2000-02-09 Elliot Lee * libgnomevfs/gnome-vfs-messages.c, libgnomevfs/gnome-vfs-method.c, libgnomevfs/gnome-vfs-process.c, libgnomevfs-corba/gnome-vfs-async-ops.c, libgnomevfs-corba/gnome-vfs-slave-launch.c, libgnomevfs-corba/gnome-vfs-slave-notify.c, libgnomevfs-corba/gnome-vfs-slave-process.c, modules/ftp-method.c: Remove excess debugging output. * libgnomevfs/gnome-vfs-handle.c, libgnomevfs/gnome-vfs-handle.h, libgnomevfs/gnome-vfs-ops.c, libgnomevfs/gnome-vfs-ops.h, libgnomevfs/gnome-vfs-private-ops.c, libgnomevfs/gnome-vfs-private-ops.h, libgnomevfs/gnome-vfs-private-types.h, libgnomevfs/gnome-vfs-seekable.c: Add gnome_vfs_truncate and gnome_vfs_truncate_handle. * modules/bzip2-method.c, modules/extfs-method.c, modules/file-method.c, modules/ftp-method.c, modules/gconf-method.c, modules/gzip-method.c, modules/http-method.c, modules/pipe-method.c, modules/translate-method.c: Implement truncate (or don't). * libgnomevfs-corba/gnome-vfs-corba.c: putenv("GNOME_DISABLE_CRASH_DIALOG=1") so we don't get stupid crash dialogs. * libgnomevfs-pthread/gnome-vfs-async-ops.c: Fix obvious get_file_info bug. 2000-02-07 Elliot Lee * libgnomevfs-corba/gnome-vfs-slave-notify.c: When memcpy'ing over a new GnomeVFSFileInfo, reset the refcount to 1 so that we can unref it later. * libgnomevfs-corba/gnome-vfs-slave.c: Fix stupid cut & paste bug that was using the wrong loop variable. Also unref the file_info instead of destroying it. 2000-02-02 Elliot Lee * idl/gnome-vfs-slave.idl, libgnomevfs/gnome-vfs-async-ops.h, libgnomevfs/gnome-vfs-backend.c, libgnomevfs/gnome-vfs-types.h, libgnomevfs-corba/*.[ch], libgnomevfs-pthread/*.[ch]: Implement asynchronous get_file_info operation. Compiles but is untested. * libgnomevfs/gnome-vfs-method.c: Pass method_name and config options to the module. * libgnomevfs/gnome-vfs-private-types.h: Pass GnomeVFSMethod pointer as first arg to all method implementation routines. * libgnomevfs/*.c, modules/*.c: Reflect above changes. * libgnomevfs/gnome-vfs-configuration.[ch]: Parse and return module arguments from config file. Fix miscellaneous bugs. * modules/translate-method.c, modules/Makefile.am: Implement a 'URI translation' module that just translates URIs according to configuration options, then passes them on to the real module. 2000-02-01 Darin Adler * libgnomevfs-corba/gnome-vfs-slave-notify.c: Make more-easily-understood g_warning messages for cases where the wrong operation is in progress. * libgnomevfs/gnome-vfs-uri.c: Use defines instead of hard-coded '/' characters consistently. 2000-01-28 Elliot Lee * libgnomevfs/gnome-vfs-configuration.c: Support reading multiple configuration files from multiple directories. * libgnomevfs/gnome-vfs-{configuration,private}.h: Move #defines from gnome-vfs-configuration.h to gnome-vfs-private.h * libgnomevfs/Makefile.am: Add defines of sysconfdir and libdir to cflags, remove prefix define. * modules/Makefile.am: Rename modules.conf to default-modules.conf, and install into $(sysconfdir)/vfs/modules instead. 2000-01-27 Elliot Lee * modules/pipe-method.[ch]: Implement a stupid one-cent trick pipe method - produces output of a pipe. 2000-01-27 John Sullivan Moved, renamed, and made public GnomeVFSFileInfo-comparing routines. * libgnomevfs/gnome-vfs-file-info.c: * libgnomevfs/gnome-vfs-file-info.h: (gnome_vfs_file_info_compare_for_sort), (gnome_vfs_file_info_compare_for_sort_reversed): New functions, moved & renamed from static functions in gnome-vfs-directory-list.c. Changed third parameter from constgpointer to const GnomeVFSDirectorySortRule * for clarity. * libgnomevfs/gnome-vfs-directory-list.c: (compare_for_sort), (compare_for_sort_reversed): Removed. (gnome_vfs_directory_list_sort): Updated to reflect name change. 2000-01-18 Ettore Perazzoli * libgnomevfs/gnome-vfs-directory.c (directory_visit_internal): Unref instead of destroying the file info. (directory_visit_internal): Likewise. (directory_visit_internal): Likewise. (directory_visit_internal): Likewise. (gnome_vfs_directory_visit_files_at_uri): Likewise. * libgnomevfs/gnome-vfs-directory-list.c (remove_entry): Unref instead of destroying the file info. (gnome_vfs_directory_list_destroy): Likewise. (load_from_handle): Likewise. 2000-01-18 John Sullivan * libgnomevfs/gnome-vfs-directory-list.c: (compare_for_sort): Made sorting by mime type handle NULL mime types (e.g. directories). 2000-01-18 Federico Mena Quintero * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_destroy): Removed. It does not make sense to have this function, as we have proper reference counting of URIs. (gnome_vfs_uri_new): Use gnome_vfs_uri_unref() instead of destroy() for the new_uri. (gnome_vfs_uri_unref): Added a sanity check for the reference count. 2000-01-18 Elliot Lee * configure.in: We want ORBit, not gnorba. 2000-01-16 John Sullivan Split utils into public and private, and moved file-size-as-string method into new public utils. * libgnomevfs/gnome-vfs-private-utils.h: * libgnomevfs/gnome-vfs-private-utils.c: New files, containing most of what was in gnome-vfs-utils.h/c. * libgnomevfs/gnome-vfs-utils.h: * libgnomevfs/gnome-vfs-utils.c: Moved everything from here to gnome-vfs-private-utils.h/c, except... (gnome_vfs_size_as_string): Renamed to gnome_vfs_file_size_as_string, changed parameter from ulong to GnomeVFSFileSize, replaced implementation with similar but slightly cleaner code written by Havoc in nautilus/src/file-manager/fm-directory-view.c * Makefile.am: Moved gnome-vfs-utils.h to public headers, added gnome-vfs-private-utils.h/.c to the build. * modules/http-method.c: (create_handle), (do_read): Updated all callers of gnome_vfs_size_as_string to reflect new name. 2000-01-16 Federico Mena Quintero * libgnomevfs-pthread/Makefile.am: Do not put $(VFS_LIBS) in the library LDADD. 2000-01-14 Darin Adler * libgnomevfs/gnome-vfs-uri.h: libgnomevfs/gnome-vfs-uri.c: (gnome_vfs_uri_extract_short_name): Added a new function to get the short form of a uri. This is the same as the XPG version of basename, and the basename tool, but g_basename, gnome_vfs_uri_get_basename, and gnome_vfs_uri_extract_dirname use a different definition, where the basename of a uri that points to a directory with a trailing '/' is NULL. The short_name variant is useful when you want to know the name of a directory even though the uri might end in '/'. 2000-01-11 Darin Adler * libgnomevfs-corba/gnome-vfs-slave-notify: (impl_Notify_dying): Changed the messages to use g_message instead of g_warning, since they are normal. 2000-01-11 Ettore Perazzoli * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_get_basename): Do not strdup. 2000-01-06 Darin Adler * libgnomevfs/gnome-vfs-backend.c: (gnome_vfs_async_open_uri): Implemented this missing routine. 2000-01-04 John Sullivan * libgnomevfs/gnome-vfs-uri.c: (gnome-vfs-uri-new): Removed g_return_val_if_fail() for empty string case, since rest of routine handles empty string identically to any other bogus string. * libgnomevfs/gnome-vfs-ops.c: (gnome_vfs_get_file_info): Avoid calling gnome_vfs_uri_unref on NULL uri, to avoid g_return_if_fail. 2000-01-02 Tomasz K³oczko * configure.in, po/pl.po: added Polish translation (based on GNOME PL translation resources). 1999-12-30 Miguel de Icaza * libgnomevfs-corba/gnome-vfs-async-ops.c (corba_gnome_vfs_async_cancel): Removed C++ comment. 1999-12-29 Elliot Lee * acconfig.h, libgnomevfs/gnome-vfs-backend.[ch], libgnomevfs/gnome-vfs-init.[ch], libgnomevfs-{pthread,corba}/*: Load the corba & pthread backends via gmodule instead of linking them in. * modules/*-method.c: Fix warnings. 1999-12-29 Jesus Bravo Alvarez * configure.in: (ALL_LINGUAS) Added Galician (gl). 1999-12-28 Martin Norbäck * configure.in: Added sv to ALL_LINGUAS. 1999-12-28 Yuri Syrota * configure.in: Added "uk" to ALL_LINGUAS. 1999-12-27 Matthias Warkus * configure.in: Added de to ALL_LINGUAS. 1999-12-21 Elliot Lee * modules/ftp-method.c: Fix get_file_info so MIME type gets filled in. * modules/http-method.c: Don't pass the full URL, since this violates the HTTP spec. * libgnomevfs/gnome-vfs-uri.c: Properly implement handling of all the hide_options. * modules/http-method.c: Don't treat redirections as an error. This is not quite the "right" solution, since redirections are similar to symlinks, and this change doesn't check for the GNOME_VFS_FILE_INFO_FOLLOW_SYMLINKS flag. It's also possible that the MIME type returned from a redirection is different than the MIME type of the target. 1999-12-18 Havoc Pennington * libgnomevfs/gnome-vfs-file-info.c (gnome_vfs_file_info_new): init refcount (gnome_vfs_file_info_init): init refcount (gnome_vfs_file_info_destroy): remove in favor of unref(), with compatibility #define (gnome_vfs_file_info_unref): new function (gnome_vfs_file_info_ref): new function * libgnomevfs/gnome-vfs-types.h: Add refcount to GnomeVFSFileInfo. The refcount won't be used if the object is on the stack of course. 1999-12-16 Maciej Stachowiak * libgnomevfs-corba/gnome-vfs-async-ops.c, libgnomevfs-corba/gnome-vfs-slave-process.c : Avoid leaving around gnome-vfs-slave processes. * libgnomevfs/gnome-vfs-method.c (gnome_vfs_method_get): Avoid reinitializing the method table (nautilus was causing this to happen). 1999-12-16 Ettore Perazzoli * libgnomevfs-corba/gnome-vfs-slave-notify.c (impl_Notify_load_directory): Actually set the list in the `GnomeVFSAsyncDirectoryOpInfo' struct when creating it from scratch. 1999-12-15 Elliot Lee * libgnomevfs*/*.c: Fix warnings. * configure.in: Add --with-default-backend=... 1999-12-15 Darin Adler * libgnomevfs/gnome-vfs-method.c: (load_module): Changed "Loading module" message to a g_message, since we want to ignore it, and we don't want to ignore g_warnings. * libgnomevfs/gnome-vfs-process.c: (wake_up): Changed "Process died" message to a g_message, since we want to ignore it, and we don't want to ignore g_warnings. (gnome_vfs_process_new): Changed "Process died" message to a g_message, since we want to ignore it, and we don't want to ignore g_warnings. 1999-12-15 Elliot Lee * libgnomevfs/gnome-vfs-ops.c: Sanity check for an invalid URI. * libgnomevfs/gnome-vfs-ops.[ch]: Use char instead of gchar. * libgnomevfs-corba/gnome-vfs-slave-process.c: Use g_message instead of the incorrect g_warning. 1999-12-15 Darin Adler * libgnomevfs/gnome-vfs-async-ops.h * libgnomevfs/gnome-vfs-context.c * libgnomevfs/gnome-vfs-directory-list.c * libgnomevfs/gnome-vfs-directory-list.h * libgnomevfs/gnome-vfs-directory.c * libgnomevfs/gnome-vfs-directory.h * libgnomevfs/gnome-vfs-messages.c * libgnomevfs/gnome-vfs-ops.c * libgnomevfs/gnome-vfs-ops.h * libgnomevfs/gnome-vfs-private-ops.c * libgnomevfs/gnome-vfs-private-ops.h * libgnomevfs/gnome-vfs-utils.c * libgnomevfs/gnome-vfs-utils.h * libgnomevfs-corba/gnome-vfs-async-ops.c * libgnomevfs-corba/gnome-vfs-slave-notify.c * libgnomevfs-pthread/gnome-vfs-async-ops.c * test/test-seek.c Made meta_keys[] take const char* instead of char*. Fixed some warnings. 1999-12-14 Darin Adler * .cvsignore: Ignore more generated files. * libgnomevfs-corba/.cvsignore: Ignore more generated files. * modules/extfs/.cvsignore: Ignore more generated files. * test/.cvsignore: Ignore more generated files. 1999-12-14 Elliot Lee * libgnomevfs-corba/gnome-vfs-async-ops.c: Implement gnome_vfs_async_load_directory_uri in terms of gnome_vfs_async_load_directory by converting the GnomeVFSURI to a string. Also, fill in the 'op_info' in gnome_vfs_async_load_directory. 1999-12-09 Havoc Pennington * modules/gconf-method.c (vfs_module_init): Some updates, the GConf stuff is updated but it still doesn't match the latest virtual table that modules are expected to have. * modules/Makefile.am (libgconf_la_LIBADD): add GTK_LIBS (INCLUDES): add GCONF_CFLAGS * configure.in (VFS_LIBS): use the located $GCONF_CONFIG instead of just "gconf-config", look for GTK to use the GConfClient GtkObject. 1999-12-08 Ramiro Estrugo * modules/extfs/Makefile.am take out non existance extfs.ini from EXTRA_DIST to unbreak 'make dist' 1999-12-07 Havoc Pennington * libgnomevfs-pthread/gnome-vfs-job.c (serve_channel_read): handle cancellation during the read, and then check for it before we write, and after each write. * libgnomevfs/gnome-vfs-iobuf.c (gnome_vfs_iobuf_read): Return immediately if the number of bytes to read is 0. * libgnomevfs-pthread/gnome-vfs-job.c (serve_channel_read): Rewrite this to use nonblocking writes; allows us to keep reading while the main thread is blocked. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_size_to_string): fix operator precedence problem * libgnomevfs-pthread/gnome-vfs-job.c (serve_channel_write): Take a context argument, and then use gnome_vfs_write_cancellable() so status messages can trickle up. The messages are coming from the slave thread; so the status message callback setup is supposed to be thread safe. The one in Explorer is indeed. (serve_channel_read): Parallel change, add the context object. 1999-12-06 Havoc Pennington * libgnomevfs-corba/gnome-vfs-slave-process.c (gnome_vfs_slave_process_new): Creates a context object. * libgnomevfs/gnome-vfs-async-ops.h (gnome_vfs_async_remove_status_callback): declare status callback add/remove functions. * libgnomevfs-pthread/gnome-vfs-async-ops.c (gnome_vfs_async_add_status_callback): implement status callback ops * libgnomevfs-corba/gnome-vfs-async-ops.c (gnome_vfs_async_remove_status_callback): implement status callback ops * libgnomevfs/gnome-vfs-messages.c: Add ID numbers for callback removal * modules/http-method.c (create_handle): Emit message about # of bytes to retrieve. (do_close): emit message saying "closing" (do_read): emit message about bytes read. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_size_to_string): New function, returns a string representing a size in bytes * libgnomevfs-pthread/gnome-vfs-job.h: replace cancellation with context * modules/gzip-method.c: replace cancellation with context * modules/bzip2-method.c: replace cancellation with context * modules/ftp-method.c: replace cancellation with context * modules/http-method.c: replace cancellation with context * modules/file-method.c: replace cancellation with context * modules/extfs-method.c: replace cancellation with context 1999-12-03 Havoc Pennington * libgnomevfs/gnome-vfs-private-ops.h: replace cancellation with context * libgnomevfs/gnome-vfs-handle.h: replace cancellation with context * libgnomevfs/gnome-vfs-private-ops.c: replace cancellation with context * libgnomevfs/gnome-vfs-seekable.c: replace cancellation with context * libgnomevfs/gnome-vfs-directory.c: Replace cancellation with context * libgnomevfs/gnome-vfs-private.h: add gnome-vfs-context.h, include too * libgnomevfs/gnome-vfs.h: add gnome-vfs-messages.h * libgnomevfs/gnome-vfs-private-types.h: typedef the GnomeVFSContext type; change GnomeVFSCancellation to GnomeVFSContext for all functions in the GnomeVFSMethod vtable * libgnomevfs/gnome-vfs-context.c, libgnomevfs/gnome-vfs-context.h: Proposed API for a context object to be passed to VFS module functions. 1999-12-04 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-async-ops.c (gnome_vfs_async_cancel): Added comment about the need for freeing the handle. 1999-12-02 Havoc Pennington * libgnomevfs/gnome-vfs-messages.c: all my filter predicates were backward 1999-12-02 Havoc Pennington * libgnomevfs/gnome-vfs-messages.h, libgnomevfs/gnome-vfs-messages.c: New file, a simple data type to manage status-message callback lists. Untested, not in the build. 1999-11-29 Elliot Lee * libgnomevfs-corba/*.c: Don't __alloc() buffers for temporary usage only. * libgnomevfs/gnome-vfs-cancellation.c (gnome_vfs_cancellation_cancel): Now guaranteed signal-safe. * libgnomevfs/gnome-vfs-method.c: If init_path_list() has already been called, return TRUE to indicate success. * libgnomevfs/gnome-vfs-result.c: I declare the errno->GnomeVFSResult translation function "complete enough". 1999-11-24 Elliot Lee * modules/Makefile.am: Try using $(GLIB_LIBS) to pick up the -L thingie for -lghttp * Makefile.am: Remove 'intl' dir from build. 1999-11-19 Kjartan Maraas * configure.in: Added "no" to ALL_LINGUAS. 1999-11-18 Ettore Perazzoli * modules/file-method.c: Removed the static function prototypes and moved the method struct to the end of the file so that they are not needed anymore. (rename_helper): New helper function, cut & paste from `do_move()'. (do_move): Use it. (do_set_file_info): New function, implementing the `set_file_info' method. (do_make_directory): Use `MAKE_ABSOLUTE' to make sure the path we use is absolute. (do_move): Likewise. (do_unlink): Likewise. (do_check_same_fs): Likewise. (directory_handle_new): Likewise. (do_get_file_info): Likewise. (do_create): Likewise (forgot to use `file_name' instead of `uri->text' here). * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_check_same_fs): Check that `same_fs_return' is not NULL. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_set_file_info_uri): New function. (gnome_vfs_set_file_info): New function. * libgnomevfs/gnome-vfs-ops.h: Prototypes here. * libgnomevfs/gnome-vfs-private-ops.c (gnome_vfs_set_file_info_cancellable): New function. * libgnomevfs/gnome-vfs-private-ops.h: Prototype here. * libgnomevfs/gnome-vfs-private-types.h: New function typedef `GnomeVFSMethodSetFileInfo'. New member `set_file_info' in `GnomeVFSMethod'. * libgnomevfs/gnome-vfs-types.h: New enum `GnomeVFSSetFileInfoMask'. * libgnomevfs/gnome-vfs-types.h: Renamed `GNOME_VFS_FILE_INFO_NOOPTION' to `GNOME_VFS_FILE_INFO_DEFAULT'. * libgnomevfs/gnome-vfs-xfer.c (create_xfer_file_list): Updated accordingly. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_extract_dirname): New function. 1999-11-12 Ettore Perazzoli * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_append_path): Make sure `uri_string' is always freed. * libgnomevfs/gnome-vfs-configuration.c (parse_file): Free the line buffer on exit. 1999-11-08 Ettore Perazzoli * libgnomevfs/gnome-vfs-xfer.c (xfer_create_target): Set `retry' to `FALSE' at the start of the `while' loop. (xfer_open_source): Likewise. (xfer_file): Likewise. (copy_directory): Likewise. (move_file): Likewise. 1999-10-29 Elliot Lee * test/test-somethingorother.c: Make it use the file info flags instead of ->is_symlink. * libgnomevfs/Makefile.am: Put our build tree on the include path before installed stuff. 1999-10-23 Ettore Perazzoli * libgnomevfs/gnome-vfs-directory-filter.c (gnome_vfs_directory_filter_apply): If `filter' is NULL, just return `TRUE'. * libgnomevfs/gnome-vfs-iobuf.c (gnome_vfs_iobuf_read): Only read as much bytes as the stream gives us; not more. * modules/ftp-method.c (_ftpfs_read_directory): Set the "local" flag in the info to `FALSE'. (fill_file_info): Likewise. * modules/file-method.c (get_stat_info): Set the "local" flag to `TRUE'. (get_stat_info_from_handle): Likewise. * modules/extfs-method.c (read_directory_list): Set the "local" flag in the info object to FALSE. * modules/module-shared.c (gnome_vfs_stat_to_file_info): Do not set the "local" flag anymore. * modules/ftp-method.c (print_vfs_message): Made static. (insert_dots): Use `gnome_vfs_parse_ls_lga()' instead of `vfs_parse_ls_lga()', which does not exist anymore. (retrieve_dir): Likewise. * libgnomevfs/gnome-vfs-directory.c (directory_visit_internal): Updated to match the `GnomeVFSFileInfo' changes. * modules/module-shared.c (gnome_vfs_stat_to_file_info): Likewise. * modules/file-method.c (get_stat_info): Likewise. * modules/http-method.c (get_file_info_from_http_handle): Likewise. * modules/ftp-method.c (fill_file_info): Likewise. (_ftpfs_read_directory): Likewise. * test/gnome-file-selection/gnome-file-selection.c (populate_callback): Likewise. * test/test-directory.c (print_list): Likewise. * test/test-directory-visit.c (directory_visit_callback): Likewise. * test/test-info.c (print_file_info): Likewise. * libgnomevfs/gnome-vfs-file-info.h (GNOME_VFS_FILE_INFO_SYMLINK): New macro. (GNOME_VFS_FILE_INFO_LOCAL): New macro. (GNOME_VFS_FILE_INFO_SUID): New macro. (GNOME_VFS_FILE_INFO_SGID): New macro. (GNOME_VFS_FILE_INFO_STICKY): New macro. (GNOME_VFS_FILE_INFO_SET_SYMLINK): New macro. (GNOME_VFS_FILE_INFO_SET_LOCAL): New macro. (GNOME_VFS_FILE_INFO_SET_SUID): New macro. (GNOME_VFS_FILE_INFO_SET_SGID): New macro. (GNOME_VFS_FILE_INFO_SET_STICKY): New macro. * libgnomevfs/gnome-vfs-types.h: New enum `GnomeVFSFileFlags'. (struct _GnomeVFSFileInfo): Replaced the various gboolean 1-bit flags with a single `GnomeVFSFileFlags' member called `flags'. * test/test-info.c (main): Follow links. * modules/file-method.c (read_link): Zero-terminate the returned string. * modules/module-shared.c (gnome_vfs_stat_to_file_info): Unconditionally set the type to `GNOME_VFS_FILE_TYPE_UNKNOWN' if all else fails, even if `file_info' refers to a symlink. * modules/ftp-method.c: #include , "gnome-vfs.h" and "gnome-vfs-private.h". * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_get_file_info): If the `get_file_info' function is not implemented, return `GNOME_VFS_ERROR_NOTSUPPORTED'. * test/test-info.c: New program for testing the `gnome_vfs_get_file_info()' API call. * libgnomevfs/gnome-vfs-iobuf.c (gnome_vfs_iobuf_read): Argh. Don't put more than `bytes' bytes in `buffer'! 1999-10-22 Ettore Perazzoli * libgnomevfs/gnome-vfs-iobuf.c (gnome_vfs_iobuf_read): Do not use `bytes_read' if NULL. (gnome_vfs_iobuf_write): Likewise with `bytes_written'. (flush): Flush output, not input. :-P (refill_input_buffer): Changed to return a `GnomeVFSResult'. Return `GNOME_VFS_ERROR_EOF' at EOF. (gnome_vfs_iobuf_read): Updated accordingly. * libgnomevfs/gnome-vfs-method.c (load_module): Don't check for the `create' function anymore. * libgnomevfs/gnome-vfs-private.h: #include "gnome-vfs-inet-connection.h". * libgnomevfs/gnome-vfs-inet-connection.c: New file implementing Internet connections. * libgnomevfs/gnome-vfs-inet-connection.h: Corresponding header file. * libgnomevfs/gnome-vfs-private-types.h: New opaque typedef `GnomeVFSInetConnection'. * modules/Makefile.am: Compile the HTTP method again. * modules/http-method.c: New re-implementation from scratch, with great help from the GNU Wget sources. * modules/http-method.h: Corresponding header file. * libgnomevfs/gnome-vfs-utils.c: #include . (gnome_vfs_atotm): New function, from GNU Wget. * libgnomevfs/gnome-vfs-utils.h (gnome_vfs_atotm): Prototype here. 1999-10-21 Ettore Perazzoli * libgnomevfs/gnome-vfs-iobuf.c (refill_input_buffer): New helper function. (gnome_vfs_iobuf_read): Changed to use it. (gnome_vfs_iobuf_peekc): New function. * libgnomevfs/gnome-vfs-private-types.h: New opaque `GnomeVFSIOBuf' typedef for the struct defined in `gnome-vfs-iobuf.c'. * libgnomevfs/gnome-vfs-private.h: #include "gnome-vfs-iobuf.h". * libgnomevfs/gnome-vfs-iobuf.h: New header file for `gnome-vfs-iobuf.c'. * libgnomevfs/gnome-vfs-iobuf.c: New file implementing buffered I/O on top of low-level Unix file descriptors. 1999-10-20 Ettore Perazzoli * modules/extfs-method.c (match): Apply filter. (vfs_module_shutdown): Close all the handles. (do_close): Remove the handle from the handle list. * README: Added some info about the `vfs-run' wrapper. * configure.in: Subst `@TOP_BUILDDIR@' with the path to the top building directory. Build `$(top_builddir)/test/vfs-run' from `$(top_srcdir)/test/vfs-run.in'. * test/vfs-run.in (GNOME_VFS_MODULE_PATH): New file. * libgnomevfs/gnome-vfs-method.c (gnome_vfs_method_get): Set the effective UID/GID to the real UID/GID when loading the module, and restore them afterwards. This should prevent exploits to setuid/setgid applications by using `GNOME_VFS_MODULE_PATH'. (module_get_sane_handle): Renamed to `load_module'. Added debugging message displaying the complete name of the module that is being loaded. * libgnomevfs/gnome-vfs-method.c: New variable `module_path_list'. (init_hash_table): New helper function. (gnome_vfs_method_init): Use it. (init_path_list): New helper function to initialize `module_path_list' through the `GNOME_VFS_MODULE_PATH' environment variable. (install_path_list): New helper function used by `init_path_list'. (gnome_vfs_method_init): Use it. (load_module_in_path_list): New function to search for a module in the path list. (gnome_vfs_method_get): Use it. (module_get_sane_handle): Made const-safe. 1999-10-19 Ettore Perazzoli * modules/extfs-method.c (read_directory_list): New parameter `info_options'. If the `GNOME_VFS_FILE_INFO_GETMIMETYPE' bit is set, set the MIME type in the file information struct according to the file name. (do_open_directory): Updated accordingly. * modules/ftp-method.c: Do not #include "parse.h" anymore. * libgnomevfs/gnome-vfs-cancellation.c [HAVE_CONFIG_H]: #include . * modules/Makefile.am (CPPFLAGS): #define `_GNU_SOURCE'. * libgnomevfs-pthread/Makefile.am (CPPFLAGS): Likewise. * libgnomevfs-corba/Makefile.am (CPPFLAGS): Likewise. * libgnomevfs/Makefile.am (CPPFLAGS): Likewise. * modules/extfs-method.c: Implemented directory reading. * modules/extfs-method.c (get_script_path): New helper function. (do_open): Use it. (ERROR_IF_NOT_LOCAL): New macro. (do_open): Use it. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_hequal): New function. (gnome_vfs_uri_hash): New function. * libgnomevfs/gnome-vfs-uri.h (gnome_vfs_uri_hash): Prototypes here. * modules/ftp-method.c (resolve_symlink_with_ls_options): Use `gnome_vfs_parse_ls_lga()' instead of `vfs_parse_ls_lga()', which does not exist anymore. * modules/parse.c: Removed. * modules/parse.h: Removed. * libgnomevfs/gnome-vfs-parse-ls.c: Removed global variables `columns', `column_ptr'. (vfs_split_text): New parameters `columns', `column_ptr'. (gnome_vfs_vfs_parse_ls_lga): Updated accordingly. (is_num): Get a string as the single parameter. (gnome_vfs_vfs_parse_ls_lga): Updated accordingly. (vfs_parse_filedate): New parameter `columns'. (gnome_vfs_vfs_parse_ls_lga): Updated accordingly. * configure.in: Check for `getdelim' and use our version if not available. * libgnomevfs/Makefile.am: Added `getdelim' to `EXTRA_DIST'. * libgnomevfs/gnome-vfs-private.h [! HAVE_GETDELIM]: Declare prototype for `getdelim()'. * libgnomevfs/getdelim.c: New file, implementing `getdelim()' for non-GNU systems. 1999-10-18 Ettore Perazzoli * libgnomevfs/gnome-vfs-parse-ls.c: New file, derived from former `modules/parse.c'. Reindented; made all the helper functions static; glibified a bit. * libgnomevfs/gnome-vfs-parse-ls.h: Corresponding header file. 1999-10-17 Ettore Perazzoli * modules/extfs-method.c (do_open): If the return value from the script is nonzero, return `GNOME_VFS_ERROR_NOTFOUND'. Check that the parent URI is accessed through the `file' method. Completed parameters passed to the extfs script. * modules/modules.conf: Added entries for `extfs'. * modules/extfs/README: New file. * modules/extfs/a: New file. * modules/extfs/deb.in: New file. * modules/extfs/hp48: New file. * modules/extfs/mailfs: New file. * modules/extfs/patchfs: New file. * modules/extfs/rpm: New file. * modules/extfs/rpms: New file. * modules/extfs/trpm: New file. * modules/extfs/ar.in: New file. * modules/extfs/arj: New file. * modules/extfs/cpio.in: New file. * modules/extfs/lha.in: New file. * modules/extfs/rar.in: New file. * modules/extfs/zip.in: New file. * modules/extfs/zoo.in: New file. * configure.in: Generate scripts from the `.in' files. * configure.in: Check for `awk' using `AC_PROG_AWK'. * modules/extfs: New subdirectory. * modules/extfs/Makefile.am: New file. * modules/Makefile.am: Updated accordingly. * modules/extfs-method.c: Replaced member `fd' in `ExtfsHandle' with `vfs_handle' (i.e. we use a VFS handle instead of a UNIX file descriptor). #include . (VFS_HANDLE): New helper macro. (extfs_handle_close): Updated accordingly. Return value changed from `void' to `GnomeVFSResult', so that we can return the result of the `close' operation. Also, remove `local_path'. (do_open): Updated accordingly. Also updated for the new version of `gnome_vfs_create_temp()'. (do_close): Implementated (`close' operation). (do_read): Implemented (`read' operation). (do_tell): Implemented (`tell') operation. (do_write): Return `GNOME_VFS_ERROR_READONLYFS' instead of `GNOME_VFS_ERROR_NOTSUPPORTED'. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_create_temp): Changed so that it returns a GnomeVFSHandle instead of a plain Unix file descriptor. Abort if creating the file fails with something different from a "file exists" error. 1999-10-15 Ettore Perazzoli * modules/Makefile.am (CPPFLAGS): #define `PREFIX'. * libgnomevfs/gnome-vfs-process.c (gnome_vfs_process_new): Use `gnome_fs_forkexec()'. * libgnomevfs/gnome-vfs-process.c (get_max_fds): Removed. (shut_down_file_descriptors): Removed. * libgnomevfs/gnome-vfs-utils.c: Moved here. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_process_run_cancellable): New function. (gnome_vfs_forkexec): New function, cut & paste from `gnome_vfs_process_new()'. (gnome_vfs_create_temp): New function. * libgnomevfs/gnome-vfs-utils.h: Prototypes here. * libgnomevfs/gnome-vfs-process.c: #include "gnome-vfs.h" and "gnome-vfs-private.h", instead of just "gnome-vfs-process.h". * libgnomevfs/gnome-vfs-process.h (gnome_vfs_process_run_cancellable): Prototype. * libgnomevfs/gnome-vfs-process.h: New enum `GnomeVFSProcessRunResult'. 1999-10-14 Ettore Perazzoli * modules/extfs-method.c: New file, implementing MC-style extfs. * modules/extfs-method.h: Corresponding header. * modules/Makefile.am: Compile it in `libextfs.so'. * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_uri): Report progress for the operation of deleting the source directories. Free progress info at each iteration. * libgnomevfs/gnome-vfs-types.h: New GnomeVFSXferPhase value `GNOME_VFS_XFER_PHASE_DELETESOURCE'. * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_uri): Report `GNOME_VFS_XFER_PHASE_FILECOMPLETED' for the last file too. (remove_directory): New helper function. (gnome_vfs_xfer_uri): Use it. * libgnomevfs/gnome-vfs-xfer.c (fast_move): New function, implementing fast moving through `gnome_vfs_move()'. (gnome_vfs_xfer_uri): Use it if we are transferring files between two directories on the same file system and we are requested to remove the sources. 1999-10-13 Ettore Perazzoli * libgnomevfs/gnome-vfs-xfer.c (init_progress): New helper function. (gnome_vfs_xfer_uri): Use it. Leak fix: free progress info if the progress callback returns `FALSE' in the `READYTOGO' or `XFERRING' phases. * modules/Makefile.am: Add `modules.conf' to `EXTRA_DIST'. * libgnomevfs/gnome-vfs-cancellation.c (gnome_vfs_cancellation_check): Do not complain if `cancellation' is NULL. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_move_uri): New function. (gnome_vfs_move): New function. (gnome_vfs_check_same_fs_uris): New function. (gnome_vfs_check_same_fs): New function. * libgnomevfs/gnome-vfs-ops.h (gnome_vfs_move): Prototypes here. * libgnomevfs/gnome-vfs-private-ops.c (gnome_vfs_move_uri_cancellable): New function. (gnome_vfs_check_same_fs_uris_cancellable): New function. * libgnomevfs/gnome-vfs-private-ops.h (gnome_vfs_move_uri_cancellable): Prototypes here. * modules/file-method.c (do_check_same_fs): New function, installed as the `check_same_fs' op implementation. * libgnomevfs/gnome-vfs-private-types.h: New type `GnomeVFSCheckSameFSFunc'. New member `check_same_fs' in `GnomeVFSMethod'. * modules/file-method.c (do_move): New function, implementing the `move' operation. * libgnomevfs/gnome-vfs-private-types.h: `GnomeVFSMethodRenameFunc' removed; replaced by `GnomeVFSMethodMoveFunc' with different parameters. `rename' member in `struct _GnomeVFSMethod' removed; replaced by `move'. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_get_basename): New function. * libgnomevfs/gnome-vfs-uri.h: Prototype here. * test/test-xfer.c: New file, implementing a test for the xfer functionality. * test/Makefile.am: Compile it as `test-xfer'. * test/test-copy.c: Removed. * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_uri): Honour `GNOME_VFS_XFER_REMOVESOURCE'. This needs to be optimized for the "files are in the same file system" case of course. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_open): Doc'ed. (gnome_vfs_open_uri): Doc'ed. (gnome_vfs_create): Doc'ed. (gnome_vfs_create_uri): Doc'ed. (gnome_vfs_close): Doc'ed. (gnome_vfs_read): Doc'ed. (gnome_vfs_write): Doc'ed. (gnome_vfs_seek): Doc'ed. (gnome_vfs_tell): Doc'ed. (gnome_vfs_get_file_info): Doc'ed. (gnome_vfs_get_file_info_uri): Doc'ed. (gnome_vfs_get_file_info_from_handle): Doc'ed. (gnome_vfs_make_directory_for_uri): Doc'ed. (gnome_vfs_make_directory): Doc'ed. (gnome_vfs_remove_directory_from_uri): Doc'ed. (gnome_vfs_remove_directory): Doc'ed. (gnome_vfs_unlink_from_uri): Doc'ed. (gnome_vfs_unlink): Doc'ed. * test/test-directory.c (main): Local variable `args' made const. * test/test-directory.c (filter_list): `#if 0'ed out just to make the compiler happy. * libgnomevfs/gnome-vfs-result.c (gnome_vfs_result_from_errno): Re-indented to make sorting easier. Convert `EBUSY', `ENOTEMPTY', `EROFS', `EMLINK', `EXDEV', `EFAULT', `ELOOP', as well, using the new GnomeVFSResult values. * libgnomevfs/gnome-vfs-types.h: New errors `GNOME_VFS_ERROR_DIRECTORYBUSY', `GNOME_VFS_ERROR_DIRECTORYNOTEMPTY', `GNOME_VFS_ERROR_TOOMANYLINKS', `GNOME_VFS_ERROR_READONLYFS', `GNOME_VFS_ERROR_NOTSAMEFS', `GNOME_VFS_ERROR_NAMETOOLONG'. * libgnomevfs/gnome-vfs-result.c: Added corresponding string descriptions. 1999-10-12 Ettore Perazzoli * modules/file-method.c (do_open): When getting `EINTR', do not restart the operation if a cancellation is pending. (do_create): Likewise. (do_close): Likewise. (do_read): Likewise. * libgnomevfs-pthread/gnome-vfs-job.c (dispatch_job_callback): Slightly made cleaner. * TODO: Updated. * libgnomevfs-pthread/gnome-vfs-job.c (execute_open): Use cancellable version of the primitive. (execute_open_as_channel): Likewise. (execute_create): Likewise. (execute_create_as_channel): Likewise. (execute_close): Likewise (execute_read): Likewise. * libgnomevfs/gnome-vfs-configuration.c [HAVE_CONFIG_H]: #include . * libgnomevfs/gnome-vfs-private.h: #include "gnome-vfs-private-ops.h". * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_open_uri): Made a simple wrapper for the cancellable version in `gnome-vfs-private-ops.c'. (gnome_vfs_create_uri): Likewise. (gnome_vfs_close): Likewise. (gnome_vfs_read): Likewise. (gnome_vfs_write): Likewise. (gnome_vfs_seek): Likewise. (gnome_vfs_get_file_info_uri): Likewise. (gnome_vfs_get_file_info_from_handle): Likewise. (gnome_vfs_make_directory_for_uri): Likewise. (gnome_vfs_remove_directory_from_uri): Likewise. (gnome_vfs_unlink_from_uri): Likewise. * libgnomevfs/gnome-vfs-private-ops.h: New file. * libgnomevfs/gnome-vfs-private-ops.c: New file. * libgnomevfs/gnome-vfs-result.c: New error description for `GNOME_VFS_ERROR_CANCELLED'. * libgnomevfs/gnome-vfs-types.h: New error `GNOME_VFS_ERROR_CANCELLED'. * libgnomevfs-pthread/gnome-vfs-job.c (gnome_vfs_job_cancel): Use the new `cancellation' member instead of `cancelled'. (dispatch_job_callback): Likewise. (gnome_vfs_job_new): Initialize `cancellation'. (gnome_vfs_job_destroy): Destroy it. (execute_open): Do not check `cancelled' anymore. (execute_create): Likewise. (execute_load_directory_not_sorted): Likewise. (execute_load_directory_sorted): Likewise. (xfer_callback): Likewise. * libgnomevfs-pthread/gnome-vfs-job.h (struct _GnomeVFSJob): Removed member `cancelled'. Replaced by new member `cancellation', of type `GnomeVFSCancellation'. * modules/bzip2-method.c: Updated all the method implementation functions to accept the `cancellation' parameter. It is not honoured yet though. * modules/file-method.c: Likewise. * modules/gzip-method.c: Likewise. * modules/http-method.c: Likewise. * libgnomevfs/gnome-vfs-seekable.c: Updated to accept the `cancellation' parameter. It does not honour it yet though. (read_file): Pass `NULL' as the `cancellation' parameter for `read'. (write_file): Likewise for `write'. (do_close): Likewise for `close'. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_open_uri): Pass `NULL' as the `cancellation' parameter to the `open' implementation. (gnome_vfs_open_uri): Likewise. (gnome_vfs_create_uri): Pass `NULL' as the `cancellation' parameter to the `create' implementation. (gnome_vfs_close): Pass `NULL' as the `cancellation' parameter to `gnome_vfs_handle_do_close()'. (gnome_vfs_read): Likewise with `gnome_vfs_handle_do_read()'. (gnome_vfs_write): Likewise with `gnome_vfs_handle_do_write()'. (gnome_vfs_seek): Likewise with `gnome_vfs_handle_do_seek()'. (gnome_vfs_get_file_info): Likewise with the `get_file_info' implementation. (gnome_vfs_get_file_info_uri): Likewise. (gnome_vfs_get_file_info_from_handle): Likewise with `gnome_vfs_handle_do_get_file_info()'. (gnome_vfs_make_directory_for_uri): Likewise with the `make_directory' implementation. (gnome_vfs_make_directory): Likewise. (gnome_vfs_remove_directory_from_uri): Likewise with the `remove_directory'implementation. (gnome_vfs_unlink_from_uri): Likewise for `unlink'. * libgnomevfs/gnome-vfs-handle.c (gnome_vfs_handle_do_close): New parameter `cancellation'. (gnome_vfs_handle_do_read): Likewise. (gnome_vfs_handle_do_write): Likewise. (gnome_vfs_handle_do_seek): Likewise. (gnome_vfs_handle_do_get_file_info): Likewise. * libgnomevfs/gnome-vfs-handle.h: Updated prototypes accordingly. * libgnomevfs/gnome-vfs-directory.c (open): New parameter `cancellation'. (open_from_uri): Likewise. Pass it to the `open_directory' implementation. (gnome_vfs_directory_open): Updated accordingly. (gnome_vfs_directory_open_from_uri): Update accordingly. (gnome_vfs_directory_read_next): Pass `NULL' as the `cancellation' parameter in the call to the `read_directory' implementation. (gnome_vfs_directory_close): Pass `NULL' as the `cancellation' parameter in the call to the `close_directory' implementation. * libgnomevfs/gnome-vfs-private-types.h: New opaque typedef `GnomeVFSCancellation'. Added new `cancellation' parameter to all the method implementation typedefs. * libgnomevfs/gnome-vfs-private.h: #include "gnome-vfs-cancellation.h". * libgnomevfs/gnome-vfs-cancellation.c: New file, implementing cancellation for the VFS method implementations. * libgnomevfs/gnome-vfs-cancellation.h: New file. * modules/modules.conf: Added `ugzip' for compatibility with the Midnight Commander's VFS. * libgnomevfs/gnome-vfs-configuration.c (parse_line): Set `method_start' again after saving a method name. 1999-10-11 Ettore Perazzoli * test/test-sync.c (main): Abort reporting an error if `gnome_vfs_uri_new()' returns NULL. * modules/modules.conf: New file: configuration for the current VFS modules. * modules/Makefile.am: Install it in the `modulesdir'. * libgnomevfs/gnome-vfs-method.c (gnome_vfs_method_get): Use `gnome_vfs_configuration_get_module_path()' to retrieve the module name. This also fixes a memory leak introduced by Michael's commit of 1999-08-31. * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): Initialize the configuration system by calling `gnome_vfs_configuration_init()'. * libgnomevfs/gnome-vfs-constants.h: New constant `GNOME_VFS_MODULE_CFGFILE', `GNOME_VFS_MODULE_DIR'. * libgnomevfs/gnome-vfs-private.h: #include "gnome-vfs-configuration.h". * libgnomevfs/gnome-vfs-configuration.c: New file. * libgnomevfs/gnome-vfs-configuration.h: New file. 1999-10-10 Ettore Perazzoli * libgnomevfs/gnome-vfs-file-info.c: Doc'ed. * libgnomevfs/gnome-vfs-directory.c: Doc'ed. * libgnomevfs/gnome-vfs-directory-list.c: Doc'ed. * libgnomevfs/gnome-vfs-directory-filter.c: Doc'ed. * doc/writing-modules.sgml: New file. 1999-10-08 Ettore Perazzoli * modules/Makefile.am (CPPFLAGS): #define `_POSIX_PTHREAD_SEMANTICS'. * libgnomevfs/Makefile.am (CPPFLAGS): Likewise. * libgnomevfs-corba/gnome-vfs-slave-notify.c: #define `SUN_LEN()' if not already #defined. * libgnomevfs-corba/gnome-vfs-slave.c (setup_and_serve_channel): Change `socklen_t' into `int'. (setup_and_serve_channel): Use `[AP]F_UNIX' instead of `[AP]F_LOCAL' if the latter are not available. * libgnomevfs-corba/gnome-vfs-slave-process.c: #include first, afterwards as pointed out by Michael. * libgnomevfs-corba/gnome-vfs-slave-notify.c: Likewise. 1999-10-07 Ettore Perazzoli * libgnomevfs/gnome-vfs-process.c: If the `GNOME_VFS_PROCESS_SETSID' option is set, call `setsid()' after forking and calling the user-specified function. * libgnomevfs/gnome-vfs-private.h: Do not #include "gnome-vfs-process.h". * libgnomevfs/gnome-vfs.h: #include "gnome-vfs-process.h". This makes the GnomeVFSProcess stuff public, thus making my work on the file manager slightly easier. It should not be public in the final version though; instead, I would like to have something like this in glib or gnome-libs. * libgnomevfs/Makefile.am: Install `gnome-vfs-process.h'. * libgnomevfs/gnome-vfs-process.h (gnome_vfs_process_new): Update prototype. * libgnomevfs/gnome-vfs-process.c (gnome_vfs_process_new): New parameter `options' instead of `use_search_path' and `close_file_descriptors'. * libgnomevfs-corba/gnome-vfs-slave-launch.c (gnome_vfs_slave_launch): Updated accordingly. * libgnomevfs/gnome-vfs-process.h: New enum `GnomeVFSProcessOptions'. * libgnomevfs/gnome-vfs-types.h: New value `GNOME_VFS_URI_HIDE_TOPLEVEL_METHOD' in `GnomeVFSURIHideOptions'. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_to_string): Honour it. 1999-10-07 Miguel de Icaza * modules/ftp-method.c (linear_read): Close first to comply to RFC959. 1999-10-04 Ettore Perazzoli * modules/module-shared.c (gnome_vfs_set_meta_for_list): Use `gnome_vfs_set_meta()' instead of `set_meta()'. * libgnomevfs/gnome-vfs-seekable.c (init_seek): Removed local variable `txt_uri'. * libgnomevfs-corba/gnome-vfs-slave.c (load_directory_sorted): Updated to use `gnome_vfs_directory_list_load()' instead of `gnome_vfs_directory_load()'. * libgnomevfs-pthread/gnome-vfs-job.c (execute_load_directory_sorted): Likewise. * test/test-directory.c (main): Likewise. * libgnomevfs/gnome-vfs-directory-list.c (gnome_vfs_directory_list_load): New version of `gnome_vfs_directory_load', for consistency. (gnome_vfs_directory_list_load_from_uri): Likewise for `gnome_vfs_directory_load_from_uri'. * libgnomevfs/gnome-vfs-directory.c (gnome_vfs_directory_load): Removed. (gnome_vfs_directory_load_from_uri): Removed. (gnome_vfs_uri_append_path): If the original URI is empty, return the URI from the new path. 1999-09-30 Ettore Perazzoli * libgnomevfs/gnome-vfs-uri.c (my_streq): New function. (compare_elements): Use it instead of `strcmp' so that it works even with NULL fields. (gnome_vfs_uri_equal): Likewise. 1999-09-29 Rodrigo Stulzer Lopes * configure.in: add pt_BR to ALL_LINGUAS 1999-09-29 Ettore Perazzoli * modules/ftp-method.c (MUTEX_LOCK): New macro to lock a mutex. Defined to empty if `G_THREADS_ENABLED' is not defined. (MUTEX_UNLOCK): New macro to unlock a mutex. Defined to empty if `G_THREADS_ENABLED' is not defined. (ftpfs_connection_new) [G_THREADS_ENABLED]: Initialize `access_mutex'. (ftpfs_connection_unref): Perform locking. Free the lock if refcounting is zero. * modules/ftp-method.h [G_THREADS_ENABLED]: New member `access_lock' in `ftpfs_connection_t'. * modules/ftp-method.c: Define a static lock for `connections_hash'. (ftpfs_connection_destroy): Removed. (ftpfs_connection_unref): Perform locking on `connections_hash'. (lookup_conn): Likewise. (ftpfs_connection_new): Likewise. * modules/ftp-method.c (ftpfs_open_directory): Use the raw URI path, without using `g_dirname()'. 1999-09-28 Ettore Perazzoli * modules/bzip2-method.c: Re-indented in GNOME style. * configure.in: Added `--enable-gconf' option to explicitly enable the GConf module backend; if not specified, GConf support is not compiled even if GConf is available. For now, the GConf API is too much of a moving target to rely on it by default. * modules/ftp-method.c (ftpfs_get_file_info): `#if 0'ed completely to get it to compile. Always return `GNOME_VFS_ERROR_NOTSUPPORTED'. 1999-09-27 Miguel de Icaza * modules/module-shared.c (gnome_vfs_set_meta_for_list, gnome_vfs_set_meta, gnome_vfs_stat_to_file_info, gnome_vfs_mime_type_from_mode): moved here some code from the file backend that can be reused by the ftp backend. * modules/ftp-method.c: directory listings work. Still some work is required. 1999-09-27 Cody Russell * modules/bzip2-method.c: At Ettore's request, reformatted the code to look more like the rest of the code. Function return values are now on the preceeding line of the function name. 1999-09-27 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-job.c (dispatch_open_callback): Unref before calling the callback, not after that. (dispatch_create_callback): Likewise. (dispatch_open_as_channel_callback): Likewise. * modules/bzip2-method.c (do_open): Removed unused variables. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_equal): New function. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_open_from_uri): Renamed to `gnome_vfs_open_uri'. (gnome_vfs_create_for_uri): Renamed to `gnome_vfs_create_uri'. (gnome_vfs_get_file_info_from_uri): Renamed to `gnome_vfs_get_file_info_uri'. * libgnomevfs-pthread/gnome-vfs-job.c (execute_open_as_channel): Close and unref channels. (execute_create_as_channel): Likewise. (gnome_vfs_job_destroy): Use `g_io_channel_close()' instead of `close()'. (execute_open_as_channel): Wait for ack from the notification. (execute_create_as_channel): Likewise. * libgnomevfs/gnome-vfs-init.c (gnome_vfs_init): Ignore SIGPIPE. 1999-09-26 Dave Camp * modules/gconf-method.c (do_get_file_info_from_handle): New method. (vfs_module_init): Don't pass the "application" parameter to g_conf_init(). 11999-09-25 Cody Russell * modules/bzip2-method.c: Removed MAKE_ABSOLUTE(). 1999-09-25 Ettore Perazzoli * libgnomevfs/gnome-vfs-constants.h (GNOME_VFS_OFFSET_FORMAT_STR) [!HAVE_GINT64]: Change "L" to "l". * modules/bzip2-method.c (struct _Bzip2MethodHandle): Removed `modification_time' member. (bzip2_method_handle_new): Removed `modification_time' parameter. (do_open): Do not pass it as an uninitialized value nor zero anymore. Open the file using the parent URI correctly. (bzip2_read_open): Removed bogus static prototype. (do_open): Write mode `#if 0'ed out as it wouldn't work anyway. * modules/Makefile.am: Enable compilation of the bzip2 module. 1999-09-25 Kjartan Maraas * configure.in: Added da to ALL_LINGUAS. 1999-09-18 Cody Russell * modules/bzip2-method.[ch]: Added. Note that this method is not currently finished, and so I've disabled building of it for now. * modules/Makefile.am: Added Bzip2, but it's currently commented out. * configure.in: Fixed a typo. "gconf will not be build" s/build/built. 1999-09-18 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-job.c (gnome_vfs_job_new): Initialize the `cancelled' member to `FALSE'. (gnome_vfs_job_cancel): Set `cancelled' to `TRUE'. (dispatch_job_callback): If the job was cancelled, do not dispatch the callback. (execute_open): If the job was cancelled, return FALSE so that the thread dies. (execute_create): Likewise. (execute_load_directory_not_sorted): Interrupt if job is cancelled. Also, close the directory handle on exit. (execute_load_directory_sorted): Likewise. (xfer_callback): If the job is cancelled, return FALSE. * libgnomevfs-pthread/gnome-vfs-job.h (struct _GnomeVFSJob): New member `cancelled'. 1999-09-18 Michael Meeks * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_has_parent): remove unused 'p' * modules/ftp-method.c, gzip-method.c, gconf-method.c: pad method structure. * modules/http-method.c: Add comment explaining the coding stall. * modules/file-method.c (do_unlink): implement. * libgnomevfs/gnome-vfs-seekable.c (do_close, init_seek): do unlink of tmp file. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_unlink), (gnome_vfs_unlink_for_uri): Added. * libgnomevfs/gnome-vfs-ops.h: add unlinks. * libgnomevfs/gnome-vfs-private-types.h: Add unlink, update truncate. 1999-09-17 Ettore Perazzoli * libgnomevfs/gnome-vfs-constants.h: #include "gnome-vfs-types.h" and . #define `GNOME_VFS_SIZE_FORMAT_STR' and `GNOME_VFS_OFFSET_FORMAT_STR' according to the size of `GnomeVFSFileSize' and `GnomeVFSFileOffset' (i.e. according to whether gint64 exists or not). * libgnomevfs/gnome-vfs-types.h: #include . 1999-09-16 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-job.c (execute_load_directory_sorted): If the directory is empty, notify one single EOF. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_has_parent): New function. (gnome_vfs_uri_get_parent): New function. (set_uri_element): Make sure there is a slash at the beginning of the string. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_to_string): Do not try to copy `toplevel_info' if it is NULL. (gnome_vfs_uri_dup): If `uri' is NULL, do not spit out a warning. * libgnomevfs-pthread/gnome-vfs-job.c (dispatch_load_directory_callback): Do not unref the URI here unless we are reporting an error! (execute_open): Return FALSE if the operation failed, so that the thread is killed. (execute_create): Likewise. (execute_open_as_channel): Return FALSE on any error, and after closing the file. (execute_create_as_channel): Likewise. * libgnomevfs/gnome-vfs-directory.c (directory_visit_internal): Use new `gnome_vfs_uri_append_path()' instead of old `gnome_vfs_uri_append_text()'. (gnome_vfs_directory_visit_files_at_uri): Likewise. (CHECK_IF_SUPPORTED): Removed bogus `vfs' parameter. All occurrences updated. * libgnomevfs/gnome-vfs-xfer.c (create_xfer_file_list): Use new `gnome_vfs_uri_append_path()' instead of old `gnome_vfs_uri_append_text()'. (gnome_vfs_xfer_uri): Likewise. * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_dup): Handle the toplevel URI element correctly. (gnome_vfs_uri_append_text): Removed. (gnome_vfs_uri_append_path): New function. 1999-09-15 Ettore Perazzoli * test/Makefile.am (EXTRA_DIST): Add all the `.c' files. * libgnomevfs-corba/Makefile.am (gnome_vfs_slave_SOURCES): List built sources on top. (libgnomevfs_corba_la_SOURCES): Likewise. * libgnomevfs/Makefile.am (noinst_HEADERS): Add `gnome-vfs-module.h'. 1999-09-14 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-job.c (dispatch_open_callback): Unref the URI. (dispatch_create_callback): Likewise. (dispatch_open_as_channel_callback): Likewise. (dispatch_create_as_channel_callback): Likewise. (dispatch_load_directory_callback): Likewise. * libgnomevfs-pthread/gnome-vfs-async-ops.c (gnome_vfs_async_open_uri): New function. (gnome_vfs_async_open_uri_as_channel): New function. (gnome_vfs_async_create_uri): New function. (gnome_vfs_async_load_directory_uri): New function. (gnome_vfs_async_open): Updated to work with the GnomeVFSJob changes using the GnomeVFSURI-based counterpart. (gnome_vfs_async_open_as_channel): Likewise. (gnome_vfs_async_create): Likewise. (gnome_vfs_async_create_as_channel): Likewise. (gnome_vfs_async_load_directory): Likewise. * libgnomevfs-pthread/gnome-vfs-job.c (execute_open): Updated to work with the GnomeVFSJob changes. (execute_open_as_channel): Likewise. (execute_create): Likewise. (execute_create_as_channel): Likewise. (execute_load_directory_not_sorted): Likewise. (execute_load_directory_sorted): Likewise. * libgnomevfs-pthread/gnome-vfs-job.h: Use a `GnomeVFSURI' instead of a string for all the jobs, except for the xfer one. * libgnomevfs/gnome-vfs-async-ops.h (gnome_vfs_async_open_uri): New function prototype. (gnome_vfs_async_open_uri_as_channel): New function prototype. (gnome_vfs_async_create_uri): New function prototype. (gnome_vfs_async_create_uri_as_channel): New function prototype. (gnome_vfs_async_load_directory_uri): New function prototype. * libgnomevfs/gnome-vfs-directory-list.c (gnome_vfs_directory_list_sort): Re-assign `entries' to sort the list, and set the current position to "none". (gnome_vfs_directory_list_set_position): Allow setting a NULL position. * libgnomevfs/gnome-vfs-directory-filter.c (gnome_vfs_directory_filter_new): Do not return NULL if type is "none", but some option is specified. * libgnomevfs/gnome-vfs-types.h: New GnomeVFSDirectoryFilterOption `GNOME_VFS_DIRECTORY_FILTER_NOSELFDIR' to skip `.' and `GNOME_VFS_DIRECTORY_FILTER_NOPARENTDIR' to skip `..'. * libgnomevfs/gnome-vfs-directory-filter.c (common_filter): Honour them. * test/test-directory.c (sort_list): Measure sorting speed if `--measure-speed' is specified. (main): Sort the list even if `--measure-speed' is specified. Removed bogus filtering (it did not fit with the popt argument parsing). * test/test-async-directory.c: New option `--sort' (`-s'). (main): Do not sort the directory unless it is specified. * test/test-async-directory.c: Changed alias for `--measure-speed' from `-s' to `-m'. * test/test-directory.c: Likewise. * idl/gnome-vfs-slave.idl (GNOME::VFS:Slave::Notify::load_directory): The problem with `oneway' notifications was an ORBit bug, and has now been fixed: make this method `oneway' again. * libgnomevfs/gnome-vfs-directory-list.c (gnome_vfs_directory_list_get): New function. * libgnomevfs/gnome-vfs-directory-list.h: Prototype here. 1999-09-13 Ettore Perazzoli * idl/gnome-vfs-slave.idl: Made all the Notify methods non-oneway. [No matter what Sopwith says, ORBit does seem to discard oneway calls. Too bad, this could give us up to 20% more speed in `load_directory'.] 1999-09-12 Ettore Perazzoli * libgnomevfs-corba/gnome-vfs-async-ops.c (gnome_vfs_async_cancel): New function. Just a stub for now. * libgnomevfs-pthread/gnome-vfs-job.c (gnome_vfs_job_cancel): New function. Just a stub for now. * libgnomevfs-pthread/gnome-vfs-job.h (gnome_vfs_job_cancel): New prototype. * libgnomevfs-pthread/gnome-vfs-async-ops.c (gnome_vfs_async_cancel): New function. * libgnomevfs/gnome-vfs-async-ops.h (gnome_vfs_async_cancel): New prototype. * libgnomevfs-pthread/gnome-vfs-job.c (execute_close): Notify with ack and return `FALSE' so that the thread is killed. (execute_load_directory_not_sorted): Always return FALSE. (execute_load_directory_sorted): Likewise. (gnome_vfs_job_new): Start the slave only when the `GnomeVFSJob' structure has all the members filled. * libgnomevfs-corba/gnome-vfs-slave.c: Do not #define `SLAVE_DEBUG'. (DPRINTF): Flush stdout. * test/test-directory.c: Added speed measurement options. (main): Honour them. * libgnomevfs/gnome-vfs-directory-list.h (gnome_vfs_directory_list_get_num_entries): New Prototype. * libgnomevfs/gnome-vfs-directory-list.c (struct _GnomeVFSDirectoryList): New member `num_entries'. (remove_entry): Decrement it. (gnome_vfs_directory_list_new): Initialize it. (gnome_vfs_directory_list_prepend): Increment it. (gnome_vfs_directory_list_append): Increment it. (gnome_vfs_directory_list_get_num_entries): New function, returning `num_entries'. * libgnomevfs/gnome-vfs-utils.c: #include . 1999-09-11 Ettore Perazzoli * test/test-async-directory.c (print_list): Flush stdout after each line. * libgnomevfs-pthread/gnome-vfs-job.c (execute_load_directory_sorted): Set result to `GNOME_VFS_ERROR_EOF' for the last notification. * test/test-async-directory.c: Added command-line options to control the number of items per notification and measure speed. (main): Set them up and honour them. (directory_load_callback): Do not print anything if measuring speed. * test/test-async-directory.c (main): Initialize the libraries correctly according to the version we are compiling (CORBA or pthread). (print_list): New parameter `num_entries'. Only print out the first `num_entries' elements. (directory_load_callback): Pass the number of entries. * test/Makefile.am: Compile `test-async-directory' in two versions: a CORBA and a pthread one. * libgnomevfs-pthread/gnome-vfs-job.c (JOB_DEBUG): Debugging macro, normally disabled. (job_notify): Set `want_notify_ack' before calling `wakeup'. (job_ack_notify): Debugging messages. (wakeup): Likewise. (job_oneway_notify): Likewise. (job_notify): Likewise. (job_close): Likewise. * test/gnome-file-selection/Makefile.am: Compile the pthread version of `gnome-file-selection-test' as well. * test/gnome-file-selection/gnome-file-selection.c (struct _GnomeFileSelectionPrivate): Removed `GnomeVFSAsyncContext' member, replaced by a `GnomeVFSAsyncHandle' member. (destroy): Don't free the context as it does not exist anymore. (init): Do not initialize the context. Instead, set the handle to NULL. (start_populating): Load the directory with the new API. (populate_callback): Updated for the new API (get a GnomeVFSAsyncHandle, not a GnomeVFSAsyncContext). * test/Makefile.am (SUBDIRS): Compile `gnome-file-selection' again. * modules/ftp-method.c: Do not #include "util-url.h" anymore. * modules/util-url.c: Removed. * modules/util-url.h: Removed. * modules/ftp-method.c (ftpfs_chdir_internal): Ooops. Use `TRUE' instead of `WAIT_REPLY'. (ftpfs_get_current_directory): Use `FALSE' instead of `NONE'. 1999-09-10 Ettore Perazzoli * modules/ftp-method.c: Removed `reply_str' global. Removed `NONE', `WAIT_REPLY', `WANT_STRING' #defines. (command): New parameters `reply_string' and `reply_string_len': copy the response in there instead of using the silly global. (login_server): Pass `TRUE' instead of `WAIT_REPLY' to `command()' for the `wait_reply' parameter. Pass NULL, 0 as `reply_string', `reply_string_len'. (ftpfs_chdir_internal): Likewise. (open_data_connection): Likewise. (changetype): Likewise. (initconn): Likewise. (abort_transfer): Pass `FALSE' instead of `NONE' to `command()' for the `wait_reply' parameter. Pass NULL, 0 as `reply_string', `reply_string_len'. (ftpfs_get_current_directory): Likewise. (setup_passive): Allocate the reply in a local buffer, update the call to `command()'. * modules/ftp-method.c: Removed variable `force_expiration', it does not seem to be have meaningful use. #define `logfile' to `stdout' so that we get some useful debugging messages. Removed `code' global (this was *evil*). Removed `got_sigpipe' global. (retrieve_dir): Do not reference it anymore. (get_reply): Return the code without dividing it by 100. (command): Return 421 for a transient error. Return `COMPLETE * 100' instead of `COMPLETE'. (login_server): Divide return values from `get_reply' and `command' by 100 before comparing with the `ftp.h' constants. (abort_transfer): Compare `get_reply()' return value with 426 instead of comparing it with 4 and checking the global `code' with 426. (store_file): Divide return value from `get_reply()' by 100. (linear_read): Likewise. (ftpfs_get_current_directory): Likewise. (retrieve_dir): Likewise. (abort_transfer): Divide return value from `command()' by 100. (login_server): Likewise. (setup_passive): Likewise. (ftpfs_get_current_directory): Likewise. (ftpfs_chdir_internal): Likewise. (open_data_connection): Likewise. (changetype): Likewise. (initconn): Likewise. (is_connection_closed): Removed unused function. (sig_pipe): Do not set `got_sigpipe' anymore. (net_init): Likewise. (command): Likewise. * modules/ftp-method.c (ftpfs_connection_new): New parameter `result_return' used to return the VFS error code for a failure. (ftpfs_uri_new): Likewise. (ftpfs_open_socket): Return a GnomeVFSResult, and set the connection on `conn' directly. Return `GNOME_VFS_ERROR_INVALIDHOSTNAME' if the host name is not valid. If `gethostbyname()' fails, translate `h_errno' using `gnome_vfs_result_from_h_errno()'. If any of the other Unix functions fails, return a sensible error code using `gnome_vfs_result_from_errno()'. (login_server): Return value changed to `GnomeVFSResult'. Return `GNOME_VFS_ERROR_LOGINFAILED' on error. Use login "anonymous" if user name is NULL. (ftpfs_open): Use the new result parameter in `ftpfs_uri_new()'. (ftpfs_create): Likewise. (command): Adapted to the new `ftpfs_connection_connect()'. (ftpfs_connection_connect): Return type changed to `GnomeVFSResult'. Return an appropriate result value. (hash_conn): Deal with NULL host/user names gracefully. (get_file_entry): Return `GNOME_VFS_ERROR_NOTFOUND' if the file is not found, instead of `GNOME_VFS_ERROR_GENERIC'. * libgnomevfs/gnome-vfs-result.c: #include and declare `h_errno' as extern (gnome_vfs_result_from_h_errno): New function. * libgnomevfs/gnome-vfs-result.h (gnome_vfs_result_from_h_errno): Prototype here. * libgnomevfs/gnome-vfs-types.h: New errors `GNOME_VFS_ERROR_HOSTNOTFOUND', `GNOME_VFS_ERROR_INVALIDHOSTNAME', `GNOME_VFS_ERROR_HOSTHASNOADDRESS', `GNOME_VFS_ERROR_LOGINFAILED'. * libgnomevfs/gnome-vfs-result.c: Added the corresponding description strings. * modules/ftp-method.c (resolve_symlink_without_ls_options): Use `gnome_vfs_canonicalize_pathname()' instead of `canonicalize_pathname' from `util-url.c'. (ftpfs_open): Return `GNOME_VFS_ERROR_INVALIDURI' instead of `GNOME_VFS_ERROR_WRONGFORMAT'. (ftpfs_create): Likewise. (ftpfs_connection_new): Get const string parameters, and g_strdup() all of them when filling the connection struct. (ftpfs_parse_uri): Renamed to `ftpfs_uri_new'. Use the new members in `GnomeVFSToplevelURI' instead of parsing the string. (ftpfs_connection_new): Removed unused parameter `path'; callers updated. (lookup_conn): If the specified port is zero, use the default FTP port. (ftpfs_connection_new): Likewise. * test/test-sync.c (main): Do things through a GnomeVFSURI and use `gnome_vfs_uri_to_string()', so that we can debug the new stuff. * libgnomevfs/gnome-vfs-xfer.c (gnome_vfs_xfer_uri): Hide password when setting source/target URIs in the progress info. * libgnomevfs/gnome-vfs-uri.c (set_uri_element): New helper function. It sets the URI element canonicalizing it as well. (gnome_vfs_uri_new): Changed to use `set_uri_element' and allocate the special toplevel URI element. (gnome_vfs_uri_to_string): New parameter `hide_options'. Add host/user information to the string, hiding the information specified in `hide_options'. * libgnomevfs/gnome-vfs-types.h: New enum `GnomeVFSURIHideOptions'. * libgnomevfs/gnome-vfs-utils.c (gnome_vfs_canonicalize_pathname): New function, stolen from `util-url.c'. Slightly changed so that it does not remove trailing slashes anymore (we do want them!). * libgnomevfs/gnome-vfs-uri.c: Use the constants defined in `gnome-vfs-constants.h'. * libgnomevfs/gnome-vfs.h: #include `gnome-vfs-constants.h'. * libgnomevfs/gnome-vfs-constants.h: New file defining VFS constants. 1999-09-09 Ettore Perazzoli * libgnomevfs/gnome-vfs-uri.c (gnome_vfs_uri_new): Allocate the toplevel URI as a `GnomeVFSToplevelURI'. (gnome_vfs_uri_get_toplevel): New function. (gnome_vfs_uri_get_host_name): New function. (gnome_vfs_uri_get_host_port): New function. (gnome_vfs_uri_get_user_name): New function. (gnome_vfs_uri_get_password): New function. (gnome_vfs_uri_set_host_name): New function. (gnome_vfs_uri_set_host_port): New function. (gnome_vfs_uri_set_user_name): New function. (gnome_vfs_uri_set_password): New function. (destroy_element): If it's a toplevel URI, free its extra strings as well. (string_head): New helper function. (split_toplevel_uri): New function, derived from the Midnight Commander code in `util-url.c'. Changed semantics and parameters, optimized and prettified a little bit. * libgnomevfs/gnome-vfs-types.h: New type `GnomeVFSToplevelURI'. 1999-09-08 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-job.c (execute_open): Do not set `handle' on the notification. (execute_create): Likewise. (execute_close): Likewise. * libgnomevfs-pthread/gnome-vfs-async-ops.c (gnome_vfs_async_close): Do not set `handle' on the request. (gnome_vfs_async_read): Likewise. (gnome_vfs_async_write): Likewise. * libgnomevfs-pthread/gnome-vfs-job.c (gnome_vfs_job_new): Initialize the `handle' member to NULL. (execute_open): Set `handle'. (execute_create): Likewise. (execute_close): Use `job->handle' instead of the (now gone) request-specific member. (execute_read): Likewise. (execute_write): Likewise. (execute_close): Set `handle' to NULL. * libgnomevfs-pthread/gnome-vfs-job.h: Removed `handle' members from all the `*Job' structs. (struct _GnomeVFSJob): New member `handle'. * libgnomevfs-pthread/gnome-vfs-job.c (execute_xfer): Return FALSE. (execute_load_directory): Return FALSE; * libgnomevfs-pthread/gnome-vfs-async-ops.c (gnome_vfs_async_context_new): Removed. (gnome_vfs_async_context_destroy): Removed. (struct _GnomeVFSAsyncContext): Removed. (struct _GnomeVFSAsyncHandle): Removed. (gnome_vfs_async_open): Updated for the new API. Create a new job for this file and return it as the handle. (gnome_vfs_async_open_as_channel): Likewise. (gnome_vfs_async_create): Likewise. (gnome_vfs_async_create_as_channel): Likewise. (gnome_vfs_async_close): Updated for the new API. (gnome_vfs_async_read): Updated for the new API. (gnome_vfs_async_write): Updated for the new API. (gnome_vfs_async_load_directory): Updated for the new API. Create a new job for this file and return it as the handle. (gnome_vfs_async_xfer): Likewise. * libgnomevfs-pthread/gnome-vfs-job.c (gnome_vfs_job_new): Removed parameter `context'. (dispatch_open_callback): Updated to match the new number of parameters of callback functions. Pass the job as the `GnomeVFSAsyncHandle' parameter. (dispatch_create_callback): Likewise. (dispatch_open_as_channel_callback): Likewise. (dispatch_create_as_channel_callback): Likewise. (dispatch_read_callback): Likewise. (dispatch_write_callback): Likewise. (dispatch_xfer_callback): Likewise. (dispatch_close_callback): Likewise. Destroy the job on return. (dispatch_load_directory_callback): Likewise. * libgnomevfs-pthread/gnome-vfs-job.h (struct _GnomeVFSJob): Removed member `context'. * libgnomevfs-pthread/gnome-vfs-job.c (gnome_vfs_job_new): Create new slave first. If this fails, return NULL. * test/test-channel.c (io_channel_callback): Handle combined conditions. * libgnomevfs/gnome-vfs-types.h: Removed `GnomeVFSAsyncContext' definition. * libgnomevfs-corba/gnome-vfs-slave-notify.c (impl_Notify_open): Duplicate the file handle object. (impl_Notify_close): Relese the file handle object. * test/test-async.c: Adapted to the new API. * test/test-async-channel.c: Likewise. * test/test-channel.c: Likewise. * test/Makefile.am: Do not compile the pthread versions of the tests anymore. Do not compile the gnome-file-selection test for now. * libgnomevfs-corba/gnome-vfs-async-ops.c: Updated all the functions to handle the new parameters and use the new modules. (gnome_vfs_async_context_destroy): Removed. (gnome_vfs_async_context_reset): Removed. (gnome_vfs_async_context_new): Removed. (create_notify_object): Removed. (context_from_servant): Removed. * libgnomevfs-corba/gnome-vfs-slave-notify.c: New file, implementing the `GNOME::VFS::Slave::Notify' interface. * libgnomevfs-corba/gnome-vfs-slave-notify.h: Header for it. * libgnomevfs-corba/gnome-vfs-slave-process.c: New file, replacing GnomeVFSAsyncContext handling. * libgnomevfs-corba/gnome-vfs-slave-process.h: Header for it. * libgnomevfs/gnome-vfs-types.h: Removed `GnomeVFSAsyncContextResetCallback' typedef. * libgnomevfs/gnome-vfs-types.h: The callbacks no longer take a `GnomeVFSAsyncContext *' parameter. Instead, they now take a `GnomeVFSAsyncHandle *' parameter. * libgnomevfs/gnome-vfs-async-ops.h: Removed prototypes for (gnome_vfs_async_context_new): Removed prototype. (gnome_vfs_async_context_reset): Removed prototype. (gnome_vfs_async_context_destroy): Remove prototype. (gnome_vfs_async_open): Removed parameter `context'; new parameter `handle_return'. (gnome_vfs_async_open_as_channel): Likewise. (gnome_vfs_async_create): Likewise. (gnome_vfs_async_create_as_channel): Likewise. (gnome_vfs_async_load_directory): Likewise. (gnome_vfs_async_xfer): Likewise. 1999-09-08 Michael Meeks * libgnomevfs/gnome-vfs-seekable.c (init_seek): Split out file read (read_file): to here & added (write_file): to put back the cache. (do_close): write file back. (init_seek): Add dirty bit. NB. dirt bit could cause problems with 0 length created files. 1999-09-07 Michael Meeks * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_open_from_uri): Added new improved re-open for non-random capable file methods. * doc/writing-modules.txt: Updated. * libgnomevfs/gnome-vfs-seekable.c: Actualy does something now. * modules/file-method.c (do_create): Fixed unix_mode on created file to allow reading from a created file. 1999-09-06 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-job.c (gnome_vfs_job_new): Initialize `wakeup_channel_lock'. (gnome_vfs_job_destroy): Free it. (wakeup): New helper function. (job_oneway_notify): Use it. Lock the channel mutex before doing the notification. (job_notify): Likewise. (job_ack_notify): Unlock the channel mutex. * libgnomevfs-pthread/gnome-vfs-job.h: New member `wakeup_channel_lock' in `GnomeVFSJob'. * libgnomevfs-pthread/gnome-vfs-job.c (job_notify): Set `want_notify_ack' to TRUE before waiting for the acknowledgment condition. (job_ack_notify): Signal the acknowledgment condition only if `want_notify_ack' is TRUE. * libgnomevfs-pthread/gnome-vfs-job.h: New member `want_notify_ack' in `GnomeVFSJob'. 1999-09-06 Michael Meeks * libgnomevfs/gnome-vfs-private.h: Add include gnome-vfs-seekable.h * libgnomevfs/gnome-vfs-seekable.[ch]: Created. * libgnomevfs/Makefile.am: Include them. * libgnomevfs/gnome-vfs-handle.c (gnome_vfs_handle_new): Added OPEN_RANDOM hook here. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_open_from_uri): and removed hook from here. * test/test-seek.c: Implemented fully. * modules/file-method.c (do_tell, do_seek): correct order to offset then whence. * test/gnome-file-selection/gicon.c (gicon_get_icon_for_file): Add precondition. 1999-09-06 Ettore Perazzoli * libgnomevfs-corba/gnome-vfs-async-ops.c (impl_Notify_open_as_channel): If the operation fails, the context is not busy anymore. * libgnomevfs/gnome-vfs-method.c: New type `MethodElement'. (gnome_vfs_method_get): Put `MethodElement's in the hash table instead of `GnomeVFSMethod's. (module_get_sane_handle): Do not check for get_file_info. * modules/file-method.c (do_open): Removed wrong directory test. (do_create): Removed stupid stat check. (do_seek): Call LSEEK() correctly. (do_tell): Likewise. 1999-09-05 Michael Meeks * test/Makefile.am (noinst_PROGRAMS): Added test_seek. * libgnomevfs/gnome-vfs-method.c (module_get_sane_handle): Add check for 'seek' and no 'tell'. 1999-09-05 Ettore Perazzoli * modules/file-method.c (do_open): Fstat the file; if it's a directory, return `GNOME_VFS_ERROR_ISDIRECTORY'. (do_create): Likewise. 1999-09-04 Ettore Perazzoli * modules/file-method.c (stat_to_file_info): New helper function. (get_stat_info_from_handle): New function to get GnomeVFSFileInfo from an existing handle. (do_get_file_info_from_handle): New function, implementing the `get_file_info_from_handle' method. * modules/ftp-method.c: Likewise. * modules/gconf-method.c: Likewise. * modules/http-method.c: Likewise. * modules/gzip-method.c: Set the `get_file_info_from_handle' method to NULL. * libgnomevfs/gnome-vfs-private-types.h: New member `get_file_info_from_handle' in `GnomeVFSMethod'. * libgnomevfs/gnome-vfs-handle.c (gnome_vfs_handle_do_get_file_info): New function. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_get_file_info_from_handle): New function. * libgnomevfs/gnome-vfs-private-types.h: New typedef. `GnomeVFSMethodGetFileInfoFromHandleFunc'. * modules/file-method.c (do_create): Renamed `file_method' to `file_handle'. 1999-09-02 Ettore Perazzoli * libgnomevfs/gnome-vfs-process.c: Improved SIGCHLD handling. (sigchld_handler): Instead of waking the GLIB loop up once for every dead child, wake it up only for registered children. (foreach_pid_func): Helper function for `sigchld_handler'. It sends a pointer to the process struct and the exit status to the wake up GIOChannel. (wake_up): Handle the information as sent by `foreach_pid_func'. 1999-09-01 Dave Camp * modules/gconf-method.c: Explicitly set the `remove_directory' method to NULL. 1999-09-01 Ettore Perazzoli * modules/http-method.c: Explicitly set the `remove_directory' method to NULL. * modules/ftp-method.c (ftpfs_remove_directory): New function, for future implementation of the `remove_directory' method. * modules/gzip-method.c: Explicitly set the `remove_directory' and `rename' methods to NULL. * modules/file-method.c (do_remove_directory): New function, implementing the `remove_directory' method. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_remove_directory_from_uri): New function. (gnome_vfs_remove_directory): New function. * libgnomevfs/gnome-vfs-private-types.h: New typedef `GnomeVFSMethodRemoveDirectoryFunc'. Added member `remove_directory' to `GnomeVFSMethod'. * libgnomevfs/gnome-vfs-ops.c (gnome_vfs_tell): Removed parameter `whence'. * libgnomevfs/gnome-vfs-handle.c (gnome_vfs_handle_do_tell): Removed parameter `whence'. * libgnomevfs/gnome-vfs-private-types.h: Removed parameter `whence' from the `GnomeVFSMethodTellFunc' function typedef. * modules/file-method.c: Updated accordingly. * modules/ftp-method.c: Updated accordingly. * modules/http-method.c: Updated accordingly. 1999-09-01 Dave Camp * modules/gconf-method.c (set_mime_type_value): Return a GnomeVFSResult, check return value of calls. (set_mime_type_dir): Ditto. (set_stat_info_dir): Ditto. (file_info_value): Ditto. (file_info_dir): Ditto. (read_directory): Ditto. 1999-09-01 Dave Camp * configure.in: Check for GConf. * modules/Makefile.am: Build libgconf.la if HAVE_GCONF is set. * modules/gconf-method.c: New file. 1999-09-01 Ettore Perazzoli * test/test-async-directory.c (directory_load_callback): Added cast for printf. * modules/file-method.c: Removed `init()' prototype. * modules/gzip-method.c: Likewise. * libgnomevfs-pthread/gnome-vfs-job.c (serve_channel_read): Use `GnomeVFSFileSize' appropriately. (serve_channel_write): Likewise. * test/test-async-directory.c (print_list): Fix format string to handle long longs. * test/test-async.c (read_callback): Likewise. * test/test-copy.c (xfer_progress_callback): Likewise. * test/test-directory.c (print_list): Likewise. * test/test-directory-visit.c (directory_visit_callback): Likewise. * modules/file-method.c: #define `_LARGEFILE64_SOURCE' before including anything. #define `OPEN' to `open64' if available, to `open' otherwise. #define `LSEEK' to `lseek64' if available, to `lseek' otherwise. Likewise, #define `OFF_T' to either `off_t' or `off64_t', accordingly. (do_open): Use the `OPEN' macro instead of `open()'. (do_create): Likewise. (do_seek): Use the `LSEEK' macro instead of `lseek()'. (do_tell): Likewise. (do_tell): Use the `OFF_T' instead of `off_t'. * libgnomevfs/gnome-vfs-types.h: Define `GnomeVFSFileSize' as `guint64' and `GnomeVFSFileOffset' to `gint64' if we have gint64 support * configure.in: Check for `open64' and `lseek64'. * libgnomevfs/gnome-vfs-types.h: Added comment with instructions for modifying the GnomeVFSResult properly. * libgnomevfs/gnome-vfs-result.c: Added status strings for `GNOME_VFS_ERROR_INTERRUPTED' and `GNOME_VFS_ERROR_FILEEXISTS'. 1999-08-31 Michael Meeks * modules/file-method.c: Rename module init and add shutdown & include. * modules/ftp-method.c: ditto. * modules/gzip-method.c: ditto. * modules/http-method.c: ditto. * libgnomevfs/gnome-vfs-module.h: Create. * libgnomevfs/gnome-vfs-method.c (module_get_sane_handle): Add & use new function name macros. (gnome_vfs_method_get): move some stuff & call get_sane_handle. 1999-08-31 Miguel de Icaza * modules/ftp-method.c: new global: got_sigpipe. (ftpfs_connection_connect): Init sigpipe handler; Only connect if connection is invalid. (get_file_entry): Apply IS_LINEAR on proper flags. (ftpfs_open): Use the linear state as computed in get_file_entry. (ftpfs_read): Implemented. (ftpfs_close): Implemented. (ftpfs_create): Implemented. (ftpfs_seek): Implemented. (ftpfs_tell): Implemented. 1999-08-30 Miguel de Icaza * modules/ftp-method.c (ftpfs_dir_unref): New method. 1999-08-29 Miguel de Icaza * libgnomevfs/gnome-vfs-types.h: New error types. * libgnomevfs/gnome-vfs-result.c: Return nice results for it. 1999-08-30 Miguel de Icaza * modules/ftp-method.c (IS_LINEAR): Define macro. GNOME_VFS_OPEN_RANDOM means we need seek support, otherwise we are a linear transfer. Cool. 1999-08-28 Ettore Perazzoli * libgnomevfs-corba/gnome-vfs-async-ops.c (impl_Notify_load_directory): Copy `name' and allocate it dynamically. * libgnomevfs-corba/gnome-vfs-slave.c (allocate_info_list): Initialize `name' to NULL. (copy_file_info): Copy `name' into the CORBA `FileInfo' struct using `set_corba_string'. * idl/gnome-vfs-slave.idl: Added member `name' to `FileInfo'. * modules/file-method.c (read_directory): Allocate the name in the `GnomeVFSFileInfo' struct dynamically. (do_get_file_info): Set `name' in the info using `g_basename'. * libgnomevfs/gnome-vfs-file-info.c (gnome_vfs_file_info_clear): Free `name'. (gnome_vfs_file_info_copy): Realloc `name' in the destination `GnomeVFSFileInfo'. * libgnomevfs/gnome-vfs-types.h: Removed #definition of `GNOME_VFS_FILE_NAME_LEN'. Member `name' of `GnomeVFSFileInfo' changed from `char []' to `char *'. 1999-08-27 Miguel de Icaza * modules/util-url.c, modules/ftp-method.c: New files for the implementation of the FTP backend. 1999-08-26 Miguel de Icaza * test/gnome-file-selection/gnome-file-selection.c (setup_directory_clist): Also push the colormap and pop the colormap. 1999-08-27 Ettore Perazzoli * test/gnome-file-selection/gicon.c: Do not #define `ICONDIR' manually anymore. * test/gnome-file-selection/Makefile.am (INCLUDES): Added quick & dirty `-DICONDIR' definition. 1999-08-26 Ettore Perazzoli * libgnomevfs-pthread/gnome-vfs-job.h: Changed `is_empty' member of `GnomeVFSJob' from 1-bit wide gboolean to plain gboolean. * modules/Makefile.am (modules_LTLIBRARIES): Removed previously commented HTTP module. * test/Makefile.am: Minor cleanup. (noinst_PROGRAMS): Replace `test-async-pthread' with `test-async_pthread' and `test-async-corba' with `test-async_corba'. Added `test-channel_corba' and `test-channel_pthread'. (test-channel_corba): New target, compiling `test-channel.c' with the CORBA-based VFS. (test-channel_pthread): New target, compiling `test-channel.c' with the PThread-based VFS. * libgnomevfs-pthread/gnome-vfs-job.c (serve_channel_write): New function. (serve_channel_read): New function. (execute_open_as_channel): New function. (execute_create_as_channel): New function. (gnome_vfs_job_execute): Call `execute_open_as_channel()' and `execute_create_as_channel()' for jobs `GNOME_VFS_JOB_OPEN_AS_CHANNEL' and `GNOME_VFS_JOB_CREATE_AS_CHANNEL', respectively. (dispatch_open_or_create_as_channel_callback): New function. (dispatch_job_callback): Handle `GNOME_VFS_JOB_OPEN_AS_CHANNEL' and `GNOME_VFS_JOB_CREATE_AS_CHANNEL' through it. * libgnomevfs-pthread/gnome-vfs-async-ops.c (gnome_vfs_async_open_as_channel): New function. (gnome_vfs_async_create_as_channel): New function. * libgnomevfs-pthread/gnome-vfs-job.h: New structs `GnomeVFSOpenAsChannelJob', `GnomeVFSCreateAsChannelJob'; added corresponding members to `GnomeVFSJob'. New values `GNOME_VFS_JOB_OPEN_AS_CHANNEL' and `GNOME_VFS_JOB_CREATE_AS_CHANNEL' in `GnomeVFSJobType'. * test/test-async-directory.c: Removed translation marks. * test/test-async.c: Likewise. * test/test-directory-visit.c: Likewise. * test/test-directory.c: Likewise. * libgnomevfs/gnome-vfs-result.c (gnome_vfs_result_from_errno): Translate `EPERM' with `GNOME_VFS_ERROR_NOTPERMITTED'. * libgnomevfs/gnome-vfs-types.h: Added value `GNOME_VFS_ERROR_NOTPERMITTED' to GnomeVFSError. * test/test-channel.c: New test program. * libgnomevfs-corba/gnome-vfs-slave.h (setup_and_serve_channel): New function. (serve_channel_read): New function. (serve_channel_write): New function. (impl_Request_open_as_channel): New function. (impl_Request_create_as_channel): New function. (init_Request): Install `impl_Request_open_as_channel' and `impl_Request_create_as_channel' as the implementations for `Request::open_as_channel' and `Request::create_as_channel', respectively. * libgnomevfs-corba/gnome-vfs-async-ops.c: New values `GNOME_VFS_ASYNC_OP_OPEN_AS_CHANNEL', `GNOME_VFS_ASYNC_OP_CREATE_AS_CHANNEL' `GNOME_VFS_ASYNC_OP_CHANNEL' in enum `GnomeVFSAsyncOperation'. Sorted values in alphabetical order. (gnome_vfs_async_open_as_channel): New function. (gnome_vfs_async_create_as_channel): New function. (impl_Notify_open_as_channel): New function. (create_notify_object): Install it as the implementation of `Notify::open_as_channel'. * idl/gnome-vfs-slave.idl (Request::open_as_channel): New method. (Request::create_as_channel): New method. (Notify::open_as_channel): New method. * libgnomevfs/gnome-vfs-async-ops.h (gnome_vfs_async_open_as_channel): Declare new function. (gnome_vfs_async_create_as_channel): Declare new function. * libgnomevfs/gnome-vfs-types.h: New typedefs `GnomeVFSAsyncOpenAsChannelCallback', `GnomeVFSAsyncCreateAsChannelCallback'. * libgnomevfs-corba/gnome-vfs-async-ops.c (gnome_vfs_async_create): Added precondition that file must be open for writing. (impl_Notify_reset): Oops. Removed typo (`*' before parameter `servant'). 1999-08-26 Michael Meeks * test/gnome-file-selection/gnome-file-selection.c (clean_file_list): Added. (change_dir): Clean list. (populate_callback): Add only files. 1999-08-26 Michael Meeks * test/gnome-file-selection/gnome-file-selection.c (destroy): Destroy file_list. (GnomeFileSelectionPrivate): Changed file_list to GList. (select_icon_callback): use this list, add lots of preconditions. 1999-08-26 Michael Meeks * libgnomevfs/gnome-vfs-types.h: Add GnomeVFSFileSize, and GnomeVFSFileOffset ( unsigned, signed ). and push through the whole API - How will CORBA deal with this ? 1999-08-25 Michael Meeks * doc/writing-modules.txt: Started. 1999-08-25 Michael Meeks * http-method.[ch]: First pass at implementing. * modules/file-method.c: Add NULL RenameFunc to methods, and remove const from do_make_directory's GnomeVFSURI. * modules/Makefile.am: Add libhttp.la, commented out. 1999-08-25 Ettore Perazzoli * modules/file-method.c: Preconditions return `GNOME_VFS_INTERNAL' instead of `GNOME_VFS_BAD_POINTER'. * libgnomevfs/gnome-vfs-types.h: Removed value `GNOME_VFS_BAD_POINTER' from the `GnomeVFSResult' enum. 1999-08-25 Michael Meeks * modules/file-method.c: Update all preconditions to return BAD_POINTER as their GnomeVFSResult instead of FALSE. * libgnomevfs/gnome-vfs-types.h: Added GNOME_VFS_ERROR_BAD_POINTER. * modules/gzip-method.h: Rename conditional include from _FILE_H to _GZIP_H 1999-08-25 Ettore Perazzoli * configure.in: Add gnomeui libs to `VFSCORBA_LIBS'. > * libgnomevfs/gnome-vfs-types.h: Add GnomeVFSFileSize, and GnomeVFSFileOffset ( unsigned, signed ). and push through the whole API - How will CORBA deal with this ? 1999-08-25 Michael Meeks * doc/writing-modules.txt: Started. 1999-08-25 Michael Meeks * http-method.[ch]: First pass at implementing. * modules/file-method.c: Add NULL RenameFunc to methods, and remove const from do_make_directory's GnomeVFSURI. * modules/Makefile.am: Add libhttp.la, commented out. 1999-08-25 Ettore Perazzoli * modules/file-method.c: Preconditions return `GNOME_VFS_INTERNAL' instead of `GNOME_VFS_BAD_POINTER'. * libgnomevfs/gnome-vfs-types.h: Removed value `GNOME_VFS_BAD_POINTER' from the `GnomeVFSResult' enum. 1999-08-25 Michael Meeks * modules/file-method.c: Update all preconditions to return BAD_POINTER as their GnomeVFSResult instead of FALSE. * libgnomevfs/gnome-vfs-types.h: Added GNOME_VFS_ERROR_BAD_POINTER. * modules/gzip-method.h: Rename conditional include from _FILE_H to _GZIP_H 1999-08-25 Ettore Perazzoli * configure.in: Add gnomeui libs to `VFSCORBA_LIBS'. gnome-vfs-2.24.4/autogen.sh0000755000175000001440000000107411334251016012420 00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` test -z "$srcdir" && srcdir=. PKG_NAME="GNOME VFS" REQUIRED_AUTOMAKE_VERSION=1.6 (test -f $srcdir/configure.in \ && test -f $srcdir/HACKING \ && test -d $srcdir/libgnomevfs) || { echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" echo " top-level $PKG_NAME directory" exit 1 } which gnome-autogen.sh || { echo "You need to install gnome-common from the GNOME CVS" exit 1 } REQUIRED_AUTOMAKE_VERSION=1.8 USE_GNOME2_MACROS=1 . gnome-autogen.sh gnome-vfs-2.24.4/NEWS0000644000175000001440000010204411450333315011117 00000000000000gnome-vfs 2.24.4 * Fix for non-writable home directory * Fix a crash on Solaris * Updated translations gnome-vfs 2.24.3 * Don't crash if we get a NULL symlink * Updated translations gnome-vfs 2.24.2 * Add some new filesystem names * Update to new shared mime info format gnome-vfs 2.24.1 * Fix memory leaks * Use single GLib includes * Updated translations. gnome-vfs 2.24.0 * Fixes for Windows * Avoid excessive warning spew if dbus is not availible gnome-vfs 2.23.0 * Sync xdgmime with GIO gnome-vfs 2.22.0 * Fix http seek handling so http is consistent with the other backends gnome-vfs 2.21.90 * Fix memory leaks * Don't use deprecated glib APIs * Handle non-utf8 locales better in gnome_vfs_make_uri_from_input * ftp: Handle links with spaces in them * actually use the mmap cache * webdav: Handle filenames with reserved char * use only system inotify headers * win32 fixes gnome-vfs 2.20.1 * Fix dns-sd crash gnome-vfs 2.20.0 * Translation updates gnome-vfs 2.19.91 * Fix build with recent glibc * Handle non-ascii workgroup names better gnome-vfs 2.19.3 * Export modules directory in pkg-config files * Fix crash in gnome_vfs_xfer * Add GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR flag * Don't resolve non-mdns hosts when resolving mDNS service names * Workaround issue with mDNS and link-local ipv6 addresses gnome-vfs 2.19.2 * Handle avahi shutdown better * ftp: Handle filenames that look like years better * performance fix for some filesystems * Some inotify fixes gnome-vfs 2.18.0.1 * Revert the "better handling of filenames with : in it" change since that broke GnomeVFSUri for apps that use non-gnomevfs known uris (i.e. yelp) gnome-vfs 2.18.0 * Build on win32 again * Handle filenames with : in them better in gnome_vfs_make_uri_from_input gnome-vfs 2.17.91 * Support ENOTSUP errno * Handle dbus disconnects better * Fix namespace clashes with gtk+ in xdgmime * http: Add 30 sec timeout when connecting * Portability and build fixes gnome-vfs 2.17.90 * sftp: Allow changing username when authenticating * sftp: Don't use remote uid/gid to handle access rights * sftp: Fix keyring password saving * Handle desktop files with empty path keys * Various portability fixes * Workaround for http servers that don't send size on get_info gnome-vfs 2.17.2 * Fix daemon crash on authentication on 64bit machines * Use slow sniffing on smb gnome-vfs 2.17.1 * Fix daemon crash on apple gnome-vfs 2.16.3 * http: Fix crash on HTTP redirects * Support Path key in desktop files * Don't use deprecated dbus functions * Fix possible crash on shutdown gnome-vfs 2.16.2 * Add a "--replace" commandline argument to gnome-vfs-daemon to replace the current daemon. (Mostly for debugging use) * Make translations work in gnome-vfs-daemon * Handle IPv6 addresses when creating dav uris (DNS-SD) * Don't crash if there is no session dbus * Support sun ssh server * Don't fail getting selinux context * Allow operations on file handles that were created in another DaemonConnection. (This fixes e.g. smb browsing) * Fixes to gnome_vfs_xfer and monitoring gnome-vfs 2.16.1 * Fix some leaks * Upgrade to latest xdgmime version * Fix crash on shutdown in http module * Fix sftp crash gnome-vfs 2.16.0 * http: Fix crash on some redirects * http: Ignore fragment identifiers in URIs * support --disable-selinux * Fix gnome_vfs_mime_type_is_equal * inotify monitoring fixes gnome-vfs 2.15.92 * Remove old unused code * Better sniffing of text files * Tweak xfer callbacks for better performance gnome-vfs 2.15.91 * Avoid slow I/O looking for trash on remote shares * Inotify updates to avoid polling as much. * Build fix gnome-vfs 2.15.90 * Don't use deprectated dbus calls * Always dispatch monitor events * Add gnome_vfs_drive_needs_eject function. * Add support for compile time version checking. * Add GNOME_VFS_ERROR_INVALID_FILENAME error * Handle ENAMETOOLONG when converting from errno * Initialize SSL lazily * Fix error reporting in dns resolver code * Robustness fixes * Clean up code and fix warnings * dav fixes * ftp: fixes for IIS virtual directories * sftp: Support setting symlinks gnome-vfs 2.15.3 'Kill the monkeys' Note: The moniker code was moved to a seperate module called gnome-vfs-monikers. We need to keep that in the platform to be API/ABI compatible. Also note that bonobo mime related functions have been moved to libbonobo. This relase is free of Bonobos :) * Replace bonobo by DBus as IPC mechanism between clients and the daemon: Remove all references and dependencies on bonobo. (Initial work done by Richard Hult and Mikael Hallendal from Imendio) * Massive API documentation update. * INotify: fixes for remote (i.e. NFS) filesystems * INotify: Updates to the timers used (see ChangeLog) * Convert all use of pop to GOption * Fix non ACL file method build * OSX fix for GnomeVFSAddress * Handle %% escaping % in desktop files. (#343632) * Check for later version of libselinux. (#344349) gnome-vfs 2.15.2 * win32 fixes * Don't hide smb shares that end with $ * ACL support * Support for reading selinux context * Fix bug in gnome_vfs_uri_hash gnome-vfs 2.15.1 * Fix sftp symlink support * Fix smb connecting many times to the server * Add authentication to command line utils * Escape "?" in paths, as this is a special char in uris * Fix up symlink resolving in some cases * Portability fixes for the cdda method * Fix up locking around the xdg mime code where missing * Better handling of existing files in create/makedir for ftp * Shut down vfs backends on shutdown * Handle ftp anon login failure better * Handle more % expansions in Exec lines in desktop files * Make GnomeVFSDrive user_visible only if it supports media check * Fix ftp handling of large files gnome-vfs 2.14.1 * Some performance fixes for sftp * Mark CD volumes as readonly (HAL) * Portability and build fixes gnome-vfs 2.14.0 * Fix circular dependency on gnome-mount * Fix some details in gnome_vfs_xfer callbacks * Avoid crash with symlinks that has ':' in them * Update hal volume manager policies * Fix leaks * Better smb authentication code * Fix permission reading bug introduced in 2.13.92 gnome-vfs 2.13.92 * Build fixes * Fix memory leaks * Some optimizations * New readdir option GNOME_VFS_FILE_INFO_NAME_ONLY that only returns filenames (not stat info). * use pmount in /media if not using gnome-mount or hal-mount * Fixes for encrypted drives/volumes in hal backend * Mime detection fix for multiple magic matches of same prio * HAL volume operation fixes * More robust gnome_vfs_make_uri_from_input_internal * Fix Avahi resolving of non-local hostnames gnome-vfs 2.13.91 * Eject fixes for volume manager * Windows 2000 portability fixes * Revert overwrite error dialog change that caused problems * ssh fixes for newer BSD and OSX releases gnome-vfs 2.13.4 * Add support for gnome-mount * Re-add thread prioritizing * Add gnome_vfs_get_mime_type_for_name_and_data () and gnome_vfs_get_mime_type_for_name () * Deprecate gnome_vfs_mime_type_from_name () * Skip attempts to overwrite a file onto itself in gnome_vfs_xfer and friends. * Retrun GNOME_VFS_ERROR_INTERRUPTED when aborting transfers * inotify: Fix various crashers and bugs * ftp-method: Basic support for proxies * http-method: Fix SSL support * http-mehtod: Fix bugs introduced during the neon upgrade * Various hal related volume fixes * Hide some more private functions * Some documentation updates * Translation updates gnome-vfs 2.13.3 * load modules with BIND_LOCAL * inotify fix gnome-vfs 2.13.2 * Support Avahi 0.6 * Support passwords in mount * Inotify support * Update neon import to 0.25 * Leak fixes * Win32 fixes * Add GNOME_VFS_FILE_INFO_FIELDS_IDS to see if uid/gid are valid * Update to lates xdgmime * Use the glib GThreadPool code instead of our own threadpool gnome-vfs 2.13.1 * Support for recent samba * Fix bug when resolving nested symlinks * Sync to upstream xdg-mime code * Various fixes to gnomevfs-* apps * New functions gnome_vfs_exists, gnome_vfs_get_slow_mime * Better ls parsing for ftp * Return GNOME_VFS_ERROR_CANCELLED when authentication is cancelled * Add avahi support * Fix problem when mounting cd multiple times * Hide private symbols * Better docs * Fix metadata removal issue with deletion in Nautilus gnome-vfs 2.12.1 * Fix gnome_vfs_uri_resolve_all_symlinks in some cases * win32 fixes * add gobject-2.0 dependency to .pc file gnome-vfs 2.12 * Fix problem with trash dissapearing on some volumes when using HAL. * Fix locking issue with xdg-mime code that could cause crashes. * Fix wrong filenames sometimes displayed when copying files. * Don't duplicate volumes both in HAL and fstab gnome-vfs 2.11.91 * Honour hal's storage.eject_required flag. * Make gnome-vfs neon macros not confict with gobally installed ones * Handle the drives that HAL doesn't detect media for (e.g. IDE Zip drives, legacy x86 floppies) * Don't link neon to libgnomevfs gnome-vfs 2.11.90 Note: The cdda method has been disabled. We don't recommend shipping or using of it. * Avoid displaying "(null)" for non combo CD-ROM drives * Howl (dns-sd): Pass text parameter in callback. * Handle escaped chars in username and password for GnomeVFSURI * Fix trash handling for reiserfs 4 * file-method: Add unkown and autofs as local filesystems * sftp-method: Fix error handling * htt-neon-method: Fix infinit loop in auth code * cdda-method: gcc4 compile fixes * Various translation updates gnome-vfs 2.11.4 * handle symlinks to mountpoints when finding trash dirs * optionally don't preserve permissions when copying * fixes to the HAL integration * show default app in gnomevfs-info program gnome-vfs 2.11.3 * Improvements to the hal-based volume/drive handling. * Common Internet File System now supports a trash volume. * xdgmime fixes (threading issues). gnome-vfs 2.11.2 * smb authentication fix * use the gconf specified workgroup by default in the smb backend * mark deprecated functions in the documentation * Make the gnomevfs-* programs nicer to use * only use extensions over sniffing for textfiles if the mimetype of the extension is a subclass of text/plain * ftp method updates gnome-vfs 2.11.1 * Features: + Win32 support! + Subclassing support for the MIME system. + Implement gnome_vfs_async_create_uri_as_channel. (Note that the _as_channel function family is marked as obsolete for now though) + Register GnomeVFSFindDirectoryResult and GnomeVFSGetFileInfoResult as a boxed types in the GType system. + Added module support for gnome_vfs_get_volume_free_space. + Synched with xdgmime HEAD. + Support for hal 0.5 API. + gnome_vfs_forget_cache is now public API. + Detect empty files as "text/plain" so we can use them with nautilus. + gnome_vfs_make_uri_from_input_with_trailing_ws: new function. * Bugs fixed: + Fix gnome_vfs_get_special_mime_type to properly use GnomeVFSFileInfo. + Minor string fixes. + Properly expand "%s" occuring in arguments for gnome_vfs_url_show. + Restore preservation of atime, mtime and permissions for the xfer family. + Build fixes for GNU/k*BSD and DragonFly. + Cleanly build with gcc 4.0. + Use gmodule-no-export-2.0 instead of gmodule-2.0 to avoid using --export-dynamic. + Fix borken logic in gnomevfs-copy. + Initialize gnu crypto library/gnutls to use gthread locking. + Remove gnome-vfs-i18n.[hc] and use gi18n-lib.h. This fixes some some translation problems. + smb-method: Fix problems with prompting for authentication twice. + smb-method: Fix caching problems with invalid logins. + http-neon-method: Plug various leaks. + Fix http proxy netmaks support. + Various doc fixes. + Plugged various small leaks. * Translation updates. gnome-vfs 2.10.0 * Translation updates Note: The handling of dav:// and http:// changed with this release. If you use http:// the http-method will be in http-only mode and won't try to retrive file information through webdav. Be sure to use dav:// and davs:// for webdav resources! gnome-vfs 2.9.93 * Bugs fixed: + smb-method: fix browsing of (non-domain) workgroups and browsing of Windows machines not on a domain gnome-vfs 2.9.92 * Bugs fixed: + Fix some tests + smb-method: Fix crashes when user specified in uri + smb-method: Some authentication fixes + sftp-method: fix memory leaks + Make GnomeVFSSocket handle cancellation earlier + ftp-method: Fix access rights + Return OK on read/writes of 0 bytes, even at eof + Make gnome_vfs_read_entire_file nul-terminate the string to fix some apps that depended on this + Get right mime description for folders. gnome-vfs 2.9.91 Note: The handling of dav:// and http:// changed with this release. If you use http:// the http-mehtod will be in http-only mode and won't try to retrive file information through webdav. Be sure to use dav:// and davs:// for webdav resources! * Features: + Browse for the new sftp-ssh service * Bugs fixed: + fix gnomevfs-copy to have cp semantics so it won't override directories + fix copying data to FAT 16 file systems + sftp-method: clear up closed ssh connections and processes + sftp-method: increased timeout for initiating connections + http-method: work around broken icecast server + http-method: update to neon version 0.24.7 + http-method: fix a possible crasher and plug a few leaks + ftp-method: fix directory listings for windows ftp servers + smb-method: fix connection cache lookups + fix gnome_vfs_uri_extract_short_name to never return NULL + better default folder handler mechanism + fix bad grammar in http-proxy schema file + various doc and translation updates + build fixes gnome-vfs 2.9.90 * Features: + support for joliet cdrom labels + allow eject of unmounted volumes + use posix_fadvice when doing large copies to avoid bad cache behaviour + Better smb authentication behaviour, now uses the same password on all the shares on a server. + Update to the API for no auto login that was commited to samba + Support setgid directories in gnome-vfs-xfer * Bugs fixed: + sftp: fix crash + fix deadlock in gnome-vfs daemon with hal enabled gnome-vfs 2.9.3 * Features: + gnomevfs-mv program added + Added GNOME_VFS_OPEN_TRUNCATE open flag * Bugs fixed: + smb: New mechanism for handling authentication NOTE: This should work a lot better then before, but unless you first apply the samba patch from https://bugzilla.samba.org/show_bug.cgi?id=2092 there can be problems with logging in as a user on shares that support anonymous logins. + sftp: Honour force_replace flag in move + use right icon name field in mime files + fix mimetype detection for names with a dot in + build fixes on IA64 gnome-vfs 2.9.2 * Features: + Deprecate parts of GnomeVFSMimeApplication structure + AIX support + Better mime detection + New HAL support for volumes/drives * Bugs fixed: + Fix memory leak + Detect mime data changed in mime monitor + Fix EOF problem in sftp method gnome-vfs 2.9.1 * Features: + removed the vfolder and cdemenu methods + Updated the mime handler APIs, deprecated some old APIs * Bugs fixed: + Fixed bogus gcc warnings + gnome-vfs 2.8.3 * Bugs fixed: + Fix ftp upload corruptor + Handle several changes in mtab/fstab in the same second + Never set uri->text to NULL + Fix dvd+/-rw name unicode encoding + Some updates to desktop parser + Make duplication of symlinks work + Handle defaults.list files that have lists of desktop files + Handle new forms of filename encoding definitions + build fixes gnome-vfs 2.8.2 * Bugs fixed: + performance increase in gnome-vfs-volume-monitor + Update to latest eggdesktopentries.c, fixing leaks + Fix problem with http leak fix in last version + Fix leaks + Make folders open with components, to make run-dialog work for folders + Add support for additional headers to http backend + API docs updates + Default to the workgroup specified in smb.conf for network:// + Fix queue handling for monitoring events + Add --disable-howl flag + Ignore smb files with empty names when enumerating gnome-vfs 2.8.1 * Bugs fixed: + ftp-method: Don't ask for password if hostname wrong + fix detection of and build with kerberos + allow unref of the volume monitor after shutdown + Fix http issues with gtik + Fix leaks + Fix default application handling. Now user defaults override system defaults. + Don't keep re-reading /etc/fstab + Read the right fstab file on solaris + sftp-method: use password if in uri + http-method: fix seek to end of file + http-method: various webdav fixes + Handle empty but non-null http proxy hostname. gnome-vfs 2.8.0 * Bugs fixed: + Fixed GnuTLS support + Recognize fstab names written by HAL + Fix crashers in webdav caused by redirect + Various build fixes + Fixed leak in eggdesktopentries + Don't use short list when selecting component for mimetype + Prioritize exact matches when generating component shortlist for mimetype + Fix crashers in defaults.list parsing + Fix symlink support in ftp method + Set right type for smb share directories + Added workaround for IceCast/ShoutCast in neon http method + Fix crasher when using proxy in the neon http method + Implement gnome_vfs_mime_type_is_known and gnome_vfs_mime_get_value + Re-fixed unique names for moving and linking files in gnome_vfs_xfer + Added hack to make descriptions for folders right + distribute both http methods in tarball gnome-vfs 2.7.92 Note: The HAL support (which is disabled by default) has some known issues where it doesn't detecte volumes for all mounted filesystems. This is known to cause some problems with for instance trash handling. * Bugs fixed: + mime data change is emitted in an idle, fixing some hangs + fixes to mime desktop parser + update HAL code to work with dbus 0.22 + Added a workaround for --bind mounts in mtab + Fix some issues in the detection of unix mounts + Fix windows domain name parsing from smb uris + Don't check cdrom disk status if there is no disk in + Fix hang with dav directories with redirects + Fix scheme handling for default app selection + Prefer extensions to sniffing for xml files + Add back GnuTLS support + Try to get rid of unused items in thrash cache + code cleanups gnome-vfs 2.7.91 * Bugs fixed: + Various build fixes and leak fixes + really add support for ssh.com ssh servers + fix deadlock in sftp support + update howl usage to the API in howl 0.9.6 + fix mime type inheritance usage when listing all applications for a mimetype + change type of default application list you need to upgrade eel to handle this change + Remove extfs module. It had security issues and never worked well. + docs cleanup + added missing libgobject dependency to link line gnome-vfs 2.7.90 * Bugs fixed: + Support for ssh.com ssh servers (William Jon McCann) + Properly reinitialize DNS resolver when needed (Christian Kellner) + Renamed gnome_vfs_next_address to gnome_vfs_resolve_next_address (Christian Kellner) + Various compilation fixes for gcc 3.4, Solaris, x86-64 (Christophe Fergeau) * Translation updates: + sq (Laurent Dhima), lt (Žygimantas BeruÄka), bg (Alexander Shopov), da (Martin Willemoes Hansen), no (Kjartan Maraas), eu (Iñaki Larrañaga), en_CA (Adam Weinberger), es (Francisco Javier F. Serrador) gnome-vfs 2.7.5 * Bugs fixed: + Put back symbols inadvertantly removed. + desktop file parser cleanups. + http method cleanups + search vfs methods case insensitively gnome-vfs 2.7.4 * Bugs fixed: + Make move/copy merge directories instead of overwriting them when doing an xfer. + register GnomeVFSFileInfo in the glib GType system + 64 bit fixes from Josselin Mouette + misc doc fixes + misc bug fixes in backends, including: - fix crasher in tar:/// method - crasher in sftp method - smb fixes * Features + Use HAL for volumes, if enabled. + Implement kerberos/gssapi support for the ftp and smb methods. + Introduce davs for ssl dav. + Move daemon-only code over to a helper library for the daemon. + Implemented a simple resolver API. + entirely new http backend that uses neon + implement new MIME spec. This involves a total rewrite of the MIME backend, and involves desktop file parsers being installed. gnome-vfs 2.7.3 * Bugs fixed: + FreeBSD portability fixes + DragonFly portability fixes + translate strings in daemon + made ngettext translations work * Features + New function to list dns-sd browse domains + authentication in ftp backend + better performance in ftp backend gnome-vfs 2.7.2 * Bugs fixed: + solaris umount fixes + bonobo-storage fix + computer method volume name handling crash fixed + fix problem with buffer_write that caused ftp problems * Features + DNS-SD api + mDNS and DNS-SD support in network:// gnome-vfs 2.7.1 * Bugs fixed: + fixed some mime issues (sync w/ upstream) + keyring support for sftp: + deprecate ssh: and alias it to sftp: + handle cdrom/floppy mountpoints outside /mnt + fix multiple file copies with ftp: + fix some sftp bugs + freebsd build fix + new ask callback, used to implement ssh host key questions + Work on making sockets cancellable gnome-vfs 2.6.0 * Bugs fixed: + Some doc fixes + Fixed potential buffer in ftp readdir + Fix up needs_terminal usage in schema for url handlers gnome-vfs 2.5.91 * Bugs fixed: + build fixes + enable ssl if using gnu tls + handle host key changed in sftp method gnome-vfs 2.5.90 * Bugs fixed: + fix some sftp bugs + fix ssl support (wasn't working at all) + better webdav support on some servers (including apache) + fix crash when monitoring invalid uris + handle fam crashing without using 100% cpu + fix nautilus crasher + better emission of pre_unmount when unmounting volumes + fixed some mime sniffing issues (need new shared-mime-info) + portability fixes + fix memleaks + some header changes needed for c++ binding gnome-vfs 2.5.8 * Bugs fixed: + Text mimetype sniffing + portability fixes * Features + Added gtk file chooser backend (experimental) Note that this introduces a circular build dependency. This will have to be fixed later, but isn't a huge problem atm since nothing is using the backend. gnome-vfs 2.5.7 * Bugs fixed: + proxy mask parsing bug fixed + Eject code on freebsd + Fixed leaks + DESTDIR install fixes gnome-vfs 2.5.6 * Features + mime sniffing default method changed * Bugs fixed: + Portability fixes + Force volume reload after mount/unmount + handle 32bit linux device numbers + fix various mime detection bugs + don't confuse user_xattr mount option with user + move vfs daemon to libexec gnome-vfs 2.5.5 * Features + Allow rename to case-different name on case-insensitive filesystems (FAT) + Add smb support (requires samba 3.0) + Add sftp support + Use the xdg mime systems (requires shared-mime-data) + Initial network:// support * Bugs fixed: + Fix drive/volume casting macros + Added GPL headers to daemon gnome-vfs 2.5.4 * Features + performance tweaking of copy block size + correct units for kilobytes according to HIG + some cleanups of the schemas texts * Bugs fixed: + fixed up daemon failure handling + cd name reading + g_object_new crasher + removed debug spew gnome-vfs 2.5.3 * Features + New authentication callbacks, allowing more control and gnome-keyring integration + New callback support for http backend + moved url handler schemas here + real gtypes for gnome-vfs enumerations (Murray Cumming) * Bugs fixed: + Solaris fixes of the volume handling (Niall Powed, Padraig O'Brian) gnome-vfs 2.5.2 * Features + use ngettext * Bugs fixed: + no more vfs-daemon zombies + fixed gnomevfs-ls escape bug + fixed some leaks + fixed some http issues gnome-vfs 2.5.1 * Features + volume monitor + computer location gnome-vfs 2.5.0 * Features + asynchronous seek implementation (Manuel Clos) + seek and tell support in the FTP method (Manuel Clos) * Featurelets: + make the ssh method work with newer ssh (Mitch) gnome-vfs 2.4.0 * Featurelets: Updated translations gnome-vfs 2.3.90 * Bugs fixed: + Just emit one mime db changed signal per change gnome-vfs 2.3.8 * Bugs fixed: + CDE menu fixes + IPV6 build fixes for non-linux + removed usage of ngettext (for now) + fix fam crash * Featurelets: + add dav schema for webdav usage + Make gnome_vfs_make_uri_from_input be smarter about when to make http: uris gnome-vfs 2.3.7 * Bugs fixed: + Test fixes + translation fixes * Featurelets: + ignore_hosts gconf key for proxies gnome-vfs 2.3.6 * Bugs fixed: + Fixes in CDE menu handling + Shrink default gnome-vfs stack size + Small API doc updates + Properly read .mime and .keys file not ending with \n + Compilation fixes when using gcc 3.3 + Compilation fixes for Solaris + Leak fixes in URI and mime-type handling + When an unknown app is added to a mime-type short list, also add it to this mime-type global list * Featurelets: + Added an Accessibility submenu in the Applications menu + Improve parsing of URIs (wrongly) containing UTF-8 chars + Translation updates gnome-vfs 2.3.5: * Features: + added a startup notification application registry key * Bugs fixed: + Fix memory handling in mime handlers. + Make job_private static in gnome-vfs-job.c + Fixed CDE menu crash gnome-vfs 2.3.4: * Bugs fixed: + Get Names of vfolder directories right gnome-vfs 2.3.3: * Bugs fixed: + Fix potential crashes for uris with %2F in them + solaris libnsl/libsocket build fixes + Fix fam threadsafe issue + Handle fam connection going away better + Fixed doc building gnome-vfs 2.3.2 * Features: + ipv6 uris supported + add some command line applications for gnome-vfs * Bugs fixed: + mp3 mimetype is audio/mpeg, not audio/x-mp3 + build issues fixed + fix ncpfs filesystem gnome-vfs 2.3.1 * Features: + New API gnome_vfs_url_show() and related calls + New function gnome_vfs_make_uri_from_input_with_dirs + Cygwin port + IPV6 support * Bugs fixed: + Some mime fixes + Correctly handle symlinks to symlinks + hpux fixes + CDE menu translation fixes + Webdav PROPFIND details + Fixed locale aliases handling + call bindtextlocale to get translation working + Fixes to mtab handling gnome-vfs 2.2.4 * Bugs fixed: + Remove spew in destroy_notify (Dave Camp) + Throttle FAM change even rate to avoid applications using 100% cpu when a file is written + Don't silently fail whole operation when symlink copy fails + Fix for crash when canceling in bug-buddy + Fix bug in sample program (Murray Cumming) + Fix gnome_vfs_get_volume_free_space to work on NFS mounts + Fix start directory on some ftp servers (Christophe Fergeau) + Look for user-installed modules in ~/.gnome2/vfs/modules instead of ~/.gnome/vfs/modules * Featurelets + Some translation updates. gnome-vfs 2.2.3 * Bugs fixed: + Fix Strange smb: crash with module callbacks + Fix for systems without readdir_r + Fix race in monitor code + Handle ogg files with id3 data in mp3 sniffer + Use cached data data for get_info_from_handle in the http method + Various ssh-method fixes (Bastien Nocera) + Fix memleak (Frederic Crozat) * Featurelets + Try pkg-config to detect openssl if installed + add --enable-gnutls switch to allow you to enable the new gnutls code gnome-vfs 2.2.2 * Bugs fixed: + fixed memleak in monitors + fixed some ssh method problems + fixed some vfs moniker bugs gnome-vfs 2.2.1 * Bugs fixed: + Fixed deadlock wrt fam while adding many monitors + fixed memleak gnome-vfs 2.2.0 * Bugs fixed: + races and bugs in the GIOChannel support (Josh Parsons) * Featurelets + Added (disabled for now) gnutls ssl lib (Andrew McDonald) This will be enabled later when its been tested more. gnome-vfs 2.1.91 * Bugs fixed: + gzip header creation time + gnome_vfs_uri_extract_dirname crash + gnome_vfs_socket_buffer_peekc corrected gnome-vfs 2.1.6 * Bugs fixed: + fixed -lpthreads build failure (Owen Taylor) + Handle directory moves overwriting themselves (Alex Larsson) + Correct libdir handling (Frederic Crozat) * Featurelets + Deprecated gnome_vfs_mime_shutdown, gnome_vfs_loadinit, gnome_vfs_preinit and gnome_vfs_postinit. (Alex Larsson) + Lots of docs updates (Diego Gonzalez) + _ prefix internal functions. (Tim Janik) gnome-vfs 2.1.5 * Featurelets + Added GNOME_VFS_ERROR_NO_MASTER_BROWSER to GnomeVFSResult gnome-vfs 2.1.4 * Featurelets + gnome_vfs_open_fd() replaced console: method (Giovanni Corriga) * Bugs fixed: + Avoid polling when user mime dir doesn't exist (Frederic Crozat) + Fix memleak in mime data directory handling (Frederic Crozat) gnome-vfs 2.1.2,3 * Featurelets + vfolder re-write (Alex Graveley) + add access check API (Christophe Fergeau) + funky network: scheme (Bastien Nocera) + symlink following cp -R (Colin Walters) + async performance improvements (Brian Cameron) + favorites updates (Seth Nickell) + eel vfs utils merged (James Willcox) + 'uses_gnomevfs' in .application (Christophe Fergeau) + update docs (Ian McKellar) * Bugs fixed + URI canonicalization (Frederic Crozat) + config source fix (Ian McKellar) + vfolder misc, lots. (Alex, Damon Chaplin) + turn off vfolder debug (Mark McLouglin) + CDE integration fixes (Stephen Browne, Arvind Samptur, HideToshi Tajima) + remove hard-coding (Seth) + ssh quoting fixes (Christophe) + several ERROR_EOF fixes (Christophe) + buffer overflow fix (Christophe) + http fd leak (Ghee Teo) + OP_XFER leak fix (Jody Goldberg) + fix trash locking, and IO (Michael Meeks) + g_memory management fix (Dave Camp) + newer findutils fixes (Federico Mena) + build fixes (Michael, Yanko Kaneti, Jacob Berkman) gnome-vfs 2.0.2 * Bugs fixed + gcc 3.1 build (Frederic Crozat) + don't leak async pipes (Frederic) + kill 5 second bug (Jody Goldberg, Michael Meeks) + major locking re-hash (Jacob Berkman, Michael) + cancellation efficiency (Michael) + init threads earlier (Michael) + URI canonicalization (Frederic) + more trash security (Rohit R, Laavanya KR) + 40% MIME parsing speedup (Michael) + O_TRUNC fixage, UMR fix (Alex Larsson) + CDE desktop method updates (Stephen Browne) + async job map locking fixes (Damon Chaplin) + MIME file monitoring tracking (Jody) + configure cleans (Michael) + async job / dirinfo on cancel leaks (Michael) * Featurelets + more / fixed auto-regression tests (Michael) + doc update (Dave Camp) gnome-vfs 2.0.1 * Bugs fixed + monitor failure mode fix (Damon Chaplin) + i18n fix (Alex Graveley) + module link fixage (James Henstridge) + ~/.gnome init fixes (Alex) + Trash security fix (Damon) * Featurelets + ABI padding (Seth) gnome-vfs 2.0.0 --------------- What's New: * NNTP method for browsing network news * "vfolder" method for handling the panel's virtual menu structure * TAR method can read into tarballs * Control Center now based on preferences module * Support for file monitoring through FAM * Support for Portuguese and Malay locales * FreeBSD support What's Changed: * Ported to the GNOME 2 platform * API cleanups and consistency fixes * Split header files between module APIs and public APIs * Better API coverage in documentation * 64-bit clean * Better Solaris support * Don't leak memory! * Trash doesn't cause performance problems on NFS * Performance and memory improvements to the file & ftp modules * Dramatic performance improvements to the ssh module * Removed GDK dependency * Split MIME data into a seperate module (gnome-mime-data) * Various bug fixes to the MIME database including loading much faster * Authentication prompts less, caches better * XFer more accurately reports progress throughout operations gnome-vfs-2.24.4/po/0000755000175000001440000000000011450333533011117 500000000000000gnome-vfs-2.24.4/po/ja.po0000644000175000001440000014240211450220305011764 00000000000000# gnome-vfs ja.po. # Copyright (C) 2000-2007,2010 Free Software Foundation, Inc. # Akira TAGOH , 2000. # Takeshi AIHANA , 2003-2007. # KAMAGASAKO Masatoshi , 2003. # Takayuki KUSANO , 2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-09-20 09:22+0000\n" "PO-Revision-Date: 2009-10-21 00:03+0900\n" "Last-Translator: Takayuki KUSANO \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO-9660 ボリューム" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u ã«ãƒŒãƒ«æ–‡å­—ãŒã‚りã¾ã™" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ã«ãƒ¡ã‚½ãƒƒãƒ‰åãŒã‚りã¾ã›ã‚“" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ã«ã‚ªãƒ—ションã®ã‚¨ãƒ³ãƒ‰ãƒžãƒ¼ã‚«ãŒã‚りã¾ã›ã‚“" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ã«ä¸æ˜Žãªã‚ªãƒ—ション %s ãŒã‚りã¾ã™" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ã«ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«åãŒã‚りã¾ã›ã‚“" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "設定ファイル '%s' ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d è§£æžã‚’中止ã—ã¾ã—ãŸ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ãƒœãƒªãƒ¥ãƒ¼ãƒ " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "自動検出ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Linux (Btrfs) ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM ドライブ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD ディジタル・オーディオ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒ»ãƒ‡ãƒã‚¤ã‚¹ãƒ»ãƒœãƒªãƒ¥ãƒ¼ãƒ " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Linux (Ext2) ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Linux (Ext3) ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Linux (Ext4) ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MS-DOS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CD-ROM ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "HSFS CD-ROM ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "システム・ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "メモリ・ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "MINIX ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ãƒœãƒªãƒ¥ãƒ¼ãƒ " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Linux (NILFS) ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Linux (Reiser4 ) ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Linux (ReiserFS) ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows 共有ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "UDFS Solaris ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "PCFS Solaris ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "作業用ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "æ‹¡å¼µ DOS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS ボリューム" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "䏿˜Ž" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ボリューム" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "フロッピー・ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "コンパクト・フラッシュ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "メモリ・スティック" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "スマート・メディア" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s 楽曲プレイヤ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s デジタル・カメラ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "外付㑠%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM ドライブ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "空㮠CD-R ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "空㮠CD-RW ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "空㮠DVD-RAM ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "空㮠DVD-R ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "空㮠DVD-RW ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "空㮠DVD+R ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "空㮠DVD+R ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "オーディオ・ディスク" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s リムーãƒãƒ–ル・ボリューム" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ボリューム" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "オペレーションã®ç¨®é¡ž %u ãŒä¸æ˜Žã§ã™" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "GIOChannel ã‚’é–‹ããŸã‚ã®ãƒ‘イプを作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "ジョブã®ç¨®é¡ž %u ãŒä¸æ˜Žã§ã™" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "æ“ä½œã‚’åœæ­¢ã—ã¾ã—ãŸ" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "廃止予定ã®é–¢æ•°ã§ã™ã€‚MIME 型データベースã®å¤‰æ›´ã¯ã‚‚ã†ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "è§£æžã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ã“れ以上ã®è§£æžã‚¨ãƒ©ãƒ¼ã¯ç„¡è¦–ã•れã¾ã™ã€‚" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "エラーã¯ã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ファイルãŒã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "一般的ãªã‚¨ãƒ©ãƒ¼ã§ã™" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "内部エラーã§ã™" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "無効ãªãƒ‘ラメータã§ã™" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "サãƒãƒ¼ãƒˆå¤–ã®å‹•作ã§ã™" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "入出力エラーã§ã™" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "データãŒå£Šã‚Œã¦ã„ã¾ã™" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "フォーマットãŒç„¡åйã§ã™" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ãŠã‹ã—ãªãƒ•ァイル・ãƒãƒ³ãƒ‰ãƒ«ã§ã™" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ファイルãŒå¤§ãã™ãŽã¾ã™" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "デãƒã‚¤ã‚¹ã«ç©ºããŒã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "読ã¿å–り専用ã®ãƒ•ァイル・システムã§ã™" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "無効㪠URI ã§ã™" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ファイルãŒé–‹ã‘ã¾ã›ã‚“" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "オープンモードã¯ç„¡åйã§ã™" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ã‚¢ã‚¯ã‚»ã‚¹ãŒæ‹’å¦ã•れã¾ã—ãŸ" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "é–‹ã„ã¦ã„るファイルãŒå¤šã™ãŽã¾ã™" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ファイルã®çµ‚端 (EOF) ã§ã™" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "フォルダã§ã¯ã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "æ“作ãŒé€²è¡Œä¸­ã§ã™" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "æ“作を中断ã—ã¾ã—ãŸ" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ファイルã¯å­˜åœ¨ã—ã¦ã„ã¾ã™" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ループã—ã¦ã„るリンクã«é­é‡ã—ã¾ã—ãŸ" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "許å¯ã•れã¦ã„ãªã„æ“作ã§ã™" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ã“れã¯ãƒ•ォルダ" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "メモリãŒè¶³ã‚Šã¾ã›ã‚“" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ホストãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ホストåãŒç„¡åйã§ã™" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ホストã¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’æŒã£ã¦ã„ã¾ã›ã‚“" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ログインã«å¤±æ•—ã—ã¾ã—ãŸ" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "æ“作ã¯ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã•れã¾ã—ãŸ" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "フォルダã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "フォルダã¯ç©ºã§ã¯ã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "リンクãŒå¤šã™ãŽã¾ã™" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "読ã¿å–り専用ã®ãƒ•ァイル・システムã§ã™" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "åŒä¸€ã®ãƒ•ァイルシステムã§ã¯ã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "åå‰ãŒé•·ã™ãŽã¾ã™" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "サービスãŒã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "廃止ã•れãŸã‚µãƒ¼ãƒ“スã®ãƒ‡ãƒ¼ã‚¿ã‚’è¦æ±‚ã—ã¾ã—ãŸ" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "プロトコルã®ã‚¨ãƒ©ãƒ¼ã§ã™" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "マスター・ブラウザãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "関連ã™ã‚‹ãƒ‡ãƒ•ォルトã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã§ã¯ã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL スキーマã«å¯¾ã™ã‚‹ãƒãƒ³ãƒ‰ãƒ©ã§ã¯ã‚りã¾ã›ã‚“" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "コマンド・ラインを解æžã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "コマンドを起動ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "タイムアウトã§ã™" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "ãƒãƒ¼ãƒ ã‚µãƒ¼ãƒã®ã‚¨ãƒ©ãƒ¼ã§ã™" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "リソースãŒãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã™" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "廃止予定ã®é–¢æ•°å‘¼ã³å‡ºã—ã§ã™" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "無効ãªãƒ•ァイルåã§ã™" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "シンボリックリンクã§ã¯ã‚りã¾ã›ã‚“" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "䏿˜Žãªã‚¨ãƒ©ãƒ¼ã§ã™" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%uãƒã‚¤ãƒˆ" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1fKãƒã‚¤ãƒˆ" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1fMãƒã‚¤ãƒˆ" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1fGãƒã‚¤ãƒˆ" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode ãŒæ­£ã—ãã‚りã¾ã›ã‚“)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "フロッピー" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ディスク" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ドライブ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ドライブ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "メモリ・スティック" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "スマート・メディア" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "カメラ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root ボリューム" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "オーディオ CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "䏿˜Žãªãƒœãƒªãƒ¥ãƒ¼ãƒ " #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚µãƒ¼ãƒ" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "フロッピー・ドライブをマウントã§ãã¾ã›ã‚“。ãŠãらãフロッピーãŒãƒ‰ãƒ©ã‚¤ãƒ–ã«æŒ¿å…¥" "ã•れã¦ã„ãªã„よã†ã§ã™ã€‚" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "ボリュームをマウントã§ãã¾ã›ã‚“。ãŠãらãデãƒã‚¤ã‚¹ã®ä¸­ã«ãƒ¡ãƒ‡ã‚£ã‚¢ãŒãªã„よã†ã§" "ã™ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "フロッピー・ドライブをマウントã§ãã¾ã›ã‚“。フォーマットã•れã¦ã„ãªã„フロッピー" "ã¯ãƒžã‚¦ãƒ³ãƒˆã§ãã¾ã›ã‚“。" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ボリュームをマウントã§ãã¾ã›ã‚“。暗å·åŒ–ã•れãŸãƒ‰ãƒ©ã‚¤ãƒ–ãªã‚‰ã°ã€ãƒ‘スワードãŒé–“" "é•ã£ã¦ã„ã‚‹ã‹éµãŒå¿…è¦ã§ã™ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "é¸æŠžã—ãŸãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’マウントã§ãã¾ã›ã‚“。フォーマットã•れã¦ã„ãªã„ボリュームã¯" "マウントã§ãã¾ã›ã‚“。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "é¸æŠžã—ãŸãƒ•ロッピー・ドライブをマウントã§ãã¾ã›ã‚“。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "é¸æŠžã—ãŸãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’マウントã§ãã¾ã›ã‚“。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "é¸æŠžã—ãŸãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’マウントã§ãã¾ã›ã‚“。一個以上ã®ãƒ—ログラムãŒãã®ãƒœãƒªãƒ¥ãƒ¼ãƒ " "を使用ã—ã¦ã„ã¾ã™" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "é¸æŠžã—ãŸãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’アンマウントã§ãã¾ã›ã‚“。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "å­ãƒ—ロセス %d (%s) ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ãŠä½¿ã„ã® PTY ã§ãƒžã‚¦ãƒ³ãƒˆãƒ»ãƒ—ロセスを起動ã§ãã¾ã›ã‚“ã§ã—ãŸ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "å­ãƒ—ロセス (%s) ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã‚€éš›ã« select(2) ã§åŽŸå› ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—" "ã¾ã—ãŸ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "パスワードをマウント・プロセスã«é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid(2) (%s) ã—ã¦ã„ã‚‹éš›ã«åŽŸå› ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "コマンドã®èµ·å‹•ã«å¤±æ•—ã—ã¾ã—ãŸ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "メディアをå–り出ã›ã¾ã›ã‚“ã§ã—ãŸ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "接続済ã®ã‚µãƒ¼ãƒã‚’アンマウントã§ãã¾ã›ã‚“" #: ../modules/computer-method.c:543 msgid "Network" msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ホーム" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ファイルシステム" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "䏿˜Žãª GnomeVFSSeekPosition %d ã§ã™" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "リモート・コンピュータ (%s) を識別ã§ãã¾ã›ã‚“" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ã“れã¯ã€ã‚³ãƒ³ãƒ”ュータã¸åˆã‚ã¦ãƒ­ã‚°ã‚¤ãƒ³ã—ãŸéš›ã«ç™ºç”Ÿã—ã¾ã™ã€‚\n" "\n" "リモート・コンピュータã‹ã‚‰é€ã‚‰ã‚ŒãŸè­˜åˆ¥å­ã¯ %s ã§ã™ã€‚ãã®è­˜åˆ¥å­ãŒçµ¶å¯¾ç¢ºå®Ÿã ã¨" "æ€ã†å ´åˆã¯ã€ã‚·ã‚¹ãƒ†ãƒ ç®¡ç†è€…ã«å•ã„åˆã‚ã›ã¦ãã ã•ã„。" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "ã¨ã«ã‹ãログイン" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "キャンセル" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s ã«é©åˆ‡ãªè¨­å®šãƒ•ァイルãŒã‚りã¾ã›ã‚“\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "別ã®å ´æ‰€ã‚’示ã™ç’°å¢ƒå¤‰æ•° %s を使用ã—ã¦ãã ã•ã„。\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "ãŠä½¿ã„ã® HTTP プロキシã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„。\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„。\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "æš—å·åŒ–ã•れãšã«ãƒ‘スワードãŒè»¢é€ã•れるã“ã¨ã«ãªã‚Šã¾ã™ã€‚" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "æš—å·åŒ–ã•れãŸãƒ‘スワードãŒè»¢é€ã•れるã“ã¨ã«ãªã‚Šã¾ã™ã€‚" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s (ドメイン㯠%s) ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ãŸã‚ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "デフォルトã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãƒ»ãƒ“ューア・アプリケーション" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "デフォルトã®ç«¯æœ«ã‚¢ãƒ—リケーション" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "デフォルトã®ç«¯æœ«ã§ä½¿ç”¨ã™ã‚‹ Exec 用引数" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "コンãƒãƒ¼ãƒãƒ³ãƒˆãŒå¿…è¦ã¨ãªã‚‹ãƒ•ァイルを閲覧ã™ã‚‹ãŸã‚ã®ã‚¢ãƒ—リケーションã§ã™ã€‚%s ã¯" "ファイル㮠URI ã§ã€ãƒ‘ラメータ %c ã¯ã‚³ãƒãƒ¼ãƒãƒ³ãƒˆã® IID ã§ãれãžã‚Œç½®ãæ›ãˆã‚‰ã‚Œ" "ã¾ã™ã€‚" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "端末を必è¦ã¨ã™ã‚‹ã‚¢ãƒ—リケーションã§ä½¿ç”¨ã™ã‚‹ãƒ‡ãƒ•ォルトã®ç«¯æœ«ã‚¢ãƒ—リケーションã§" "ã™ã€‚" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "デフォルトã®ç«¯æœ«ã‚¢ãƒ—ケーションã§ä½¿ç”¨ã™ã‚‹ãƒ—ログラムを実行ã™ã‚‹æ™‚ã®å¼•æ•°ã§ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "URL \"aim\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "URL \"callto\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "URL \"ghelp\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" ã® URL ã®å‡¦ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "URL \"http\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "URL \"https\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "URL \"info\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "URL \"mailto\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "URL \"man\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "URL \"trash\" 㮠処ç†" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "URL \"aim\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾" "ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "URL \"callto\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«" "ã—ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "URL \"ghelp\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—" "ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "\"h323\" ã® URL を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«" "ã—ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "URL \"http\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—" "ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "URL \"https\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—" "ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "URL \"info\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—" "ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "URL \"mailto\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«" "ã—ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "URL \"man\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾" "ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "URL \"trash\" を処ç†ã™ã‚‹ã‚­ãƒ¼ \"command\" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—" "ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"aim\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"callto\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"ghelp\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ \"h323\" ã® URL を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"http\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"https\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"info\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"mailto\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"man\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL \"trash\" を処ç†ã™ã‚‹ã‹ã©ã†ã‹" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "コンマ (,) ã§åŒºåˆ‡ã£ãŸ DNS-SD ã®ãƒªã‚¹ãƒˆã§ã€\"network:///\" ã®ä¸­ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD ã‚µãƒ¼ãƒ“ã‚¹ã§æ¤œç´¢ã™ã‚‹è¿½åŠ ãƒ‰ãƒ¡ã‚¤ãƒ³" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "ローカル㮠DNS-SD サービスã®è¡¨ç¤ºæ–¹æ³•" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "設定å¯èƒ½ãªå€¤: \"merged\"ã€\"separate\"ã€\"disabled\"" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "èªè¨¼ãƒ—ロキシ・サーãƒã¸ã®æŽ¥ç¶š" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "自動プロキシ設定㮠URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "インターãƒãƒƒãƒˆã¸ HTTP アクセスã™ã‚‹ã¨ãã«ãƒ—ロキシã®è¨­å®šã‚’有効ã«ã—ã¾ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP プロキシã®ãƒ›ã‚¹ãƒˆå" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP プロキシã®ãƒãƒ¼ãƒˆç•ªå·" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP プロキシã®ãƒ›ã‚¹ãƒˆå" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP プロキシã®ãƒ‘スワード" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP プロキシã®ãƒãƒ¼ãƒˆç•ªå·" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP プロキシã®ãƒ¦ãƒ¼ã‚¶å" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "TRUE ã®å ´åˆã€ãƒ—ロキシ・サーãƒã¸ã®æŽ¥ç¶šã§èªè¨¼ãŒè¦æ±‚ã•れã¾ã™ã€‚ユーザå/パスワー" "ドã®çµ„ã¿åˆã‚ã›ã¯ \"/system/http_proxy/authentication_user\" 㨠\"/system/" "http_proxy/authentication_password\" ã§å®šç¾©ã•れã¾ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "プロキシã§ã¯ãªã„ホストå" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP プロキシを利用ã™ã‚‹ã¨ãã«èªè¨¼ã¨ã—ã¦å¼•ãæ¸¡ã™ãƒ‘スワードã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "プロキシ設定モード" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS プロキシã®ãƒ›ã‚¹ãƒˆå" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS プロキシã®ãƒãƒ¼ãƒˆç•ªå·" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "セキュア HTTP プロキシã®ãƒ›ã‚¹ãƒˆå" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "セキュア HTTP プロキシã®ãƒãƒ¼ãƒˆç•ªå·" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "ãƒ—ãƒ­ã‚­ã‚·è¨­å®šãƒ¢ãƒ¼ãƒ‰ã‚’é¸æŠžã—ã¾ã™ (利用å¯èƒ½ãªå€¤: \"none\", \"manual\", \"auto" "\")。" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP ã®ãƒ—ロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "セキュア HTTP ã®ãƒ—ロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "SOCKS プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€\"/system/http_proxy/host\" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®ãƒãƒ¼" "ト番å·ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€\"/system/proxy/ftp_host\" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®ãƒãƒ¼ãƒˆ" "番å·ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€\"/system/proxy/secure_host\" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®" "ãƒãƒ¼ãƒˆç•ªå·ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€\"/system/proxy/socks_host\" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®ãƒãƒ¼" "ト番å·ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ã“ã®ã‚­ãƒ¼ã«ã¯ã€(アクティブãªå ´åˆã¯) プロキシ経由ã§ã¯ãªã直接接続ã•れる多ãã®ãƒ›" "ストãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ホストåã€ãƒ‰ãƒ¡ã‚¤ãƒ³ (*.foo.com ã®ã‚ˆã†ã«å…ˆé ­ã«ãƒ¯ã‚¤ãƒ«ãƒ‰ãƒ»" "カードãŒä½¿ã‚れã¾ã™)ã€IP ホスト・アドレス (IPv4 㨠IPv6 ã®ä¸¡æ–¹)ã€ãƒãƒƒãƒˆãƒ»ãƒžã‚¹" "クãŒä½µè¨˜ã•れãŸãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¢ãƒ‰ãƒ¬ã‚¹ (192.168.0.0/24ã®ã‚ˆã†ãªå€¤) ã¨ã„ã£ãŸå€¤ã«" "ãªã‚Šã¾ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "プロキシã®è¨­å®šå€¤ã‚’æä¾›ã™ã‚‹ URL ã§ã™ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP プロキシã®ä½¿ç”¨" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP プロキシを利用ã™ã‚‹ã¨ãã«èªè¨¼ã¨ã—ã¦å¼•ãæ¸¡ã™ãƒ¦ãƒ¼ã‚¶åã§ã™ã€‚" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ワークグループ" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "ãƒ¦ãƒ¼ã‚¶ãŒæ‰€å±žã™ã‚‹ Windows ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã¾ãŸã¯ãƒ‰ãƒ¡ã‚¤ãƒ³ã§ã™ã€‚æ–°ã—ã„ワー" "クグループをèªè­˜ã™ã‚‹ã«ã¯ã€ãƒ¦ãƒ¼ã‚¶ãŒãã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã™ã‚‹å¿…" "è¦ãŒã‚りã¾ã™ã€‚" gnome-vfs-2.24.4/po/it.po0000644000175000001440000013540711354402652012027 00000000000000# Italian translation for gnome-vfs # # This file is distributed under the same license as gnome-vfs package # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # Christopher R. Gabriel , 2000, 2001, 2002. # Luca Ferretti , 2003, 2004, 2005, 2006, 2007, 2008, 2009. msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.25.x\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-12-23 05:55+0000\n" "PO-Revision-Date: 2009-12-29 13:35+0100\n" "Last-Translator: Luca Ferretti \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volume ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contiene caratteri NULL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u non contiene alcun nome di metodo." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u non ha marcatore finale di opzioni." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ha l'opzione sconosciuta %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u non contiene alcun nome di modulo." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Il file di configurazione «%s» non è stato trovato: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d analisi interrotta." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volume AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volume di rete AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volume rilevato automaticamente" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volume Linux btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Unità CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD audio digitale" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volume dispositivo hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volume EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volume eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volume Linux ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volume Linux ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volume Linux ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volume MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volume BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volume FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volume MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volume CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volume CDROM hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volume JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volume Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volume di sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volume di memoria" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volume Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volume di rete NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volume Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volume Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volume Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volume Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volume Windows condiviso" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volume SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volume DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volume Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volume Solaris udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volume Solaris pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volume Sun SAM-QFS" # O è nome proprio ?? .Luca #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volume temporaneo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volume DOS avanzato" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volume Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volume Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volume Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volume XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volume CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Sconosciuto" # %s è size_str #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volume da %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" # %s/%s è tipo CD-ROM/DVD-RW (e combinazioni varie) #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Unità %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Unità %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Unità floppy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Unità Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Unità Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Unità Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Unità SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Unità Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Unità Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pendrive" # %s %s --> vendor model #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Lettore musicale %s %s" # %s %s --> vendor model #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Fotocamera digitale %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unità" # %s è 'Drive' #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s esterna" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disco CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disco CD-R vuoto" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disco CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disco CD-RW vuoto" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disco CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disco DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disco DVD-RAM vuoto" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disco DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disco DVD-R vuoto" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disco DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disco DVD-RW vuoto" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disco DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disco DVD+R vuoto" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disco DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disco DVD+RW vuoto" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disco DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disco audio" # %s è size_str (es. 128 MB) #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volume rimovibile da %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tipo di operazione %u sconosciuto" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Impossibile creare una pipe per aprire il GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tipo di job %u sconosciuto" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operazione fermata" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Funzione deprecata. Le modifiche da parte dell'utente al database dei tipi " "MIME non sono più supportate." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Impossibile analizzare: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Ulteriori errori di analisi sono ignorati." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nessun errore" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "File non trovato" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Errore generico" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Errore interno" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parametri non validi" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operazione non supportata" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Errore di Input/Output" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Dati corrotti" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formato non valido" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Gestore file non corretto" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "File troppo grande" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Spazio insufficiente sul dispositivo" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "File system in sola lettura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI non valido" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "File non aperto" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Modalità di apertura non valida" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Accesso negato" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Troppi file aperti" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fine del file" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Non è una directory" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operazione in corso" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operazione interrotta" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Il file esiste" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Trovati collegamenti in loop" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operazione non permessa" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "È una directory" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Memoria non sufficiente" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Host non trovato" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Nome dell'host non valido" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "L'host non ha un indirizzo" # lasciato login, credo sia riferito # a cose tipo login ftp # e poi c'è già un errore con Accesso #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Login non riuscito" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operazione annullata" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directory occupata" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Directory non vuota" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Troppi collegamenti" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "File system in sola lettura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Non si trova sullo stesso file system" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nome troppo lungo" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Servizio non disponibile" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Richiesta dati obsoleti di servizio" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Errore di protocollo" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Impossibile trovare il master browser" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nessuna azione predefinita associata" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Nessun gestore per lo schema URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Errore nell'analizzare la riga di comando" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Errore nel lanciare il comando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Timeout scaduto" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Errore del nameserver" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "La risorsa è bloccata" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Chiamata a funzione deprecata" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nome file non valido" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Non è un collegamento simbolico" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Errore sconosciuto" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u byte" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f kB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode non valido)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Floppy" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disco" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Unità USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Unità IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Stick di memoria" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Fotocamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volume root" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volume sconosciuto" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Server di rete" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Impossibile montare l'unità floppy. È probabile che nell'unità non ci sia " "alcun supporto." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Impossibile montare il volume. È probabile che nel dispositivo non ci sia " "alcun supporto." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Impossibile montare l'unità floppy. È probabile che il supporto sia in un " "formato che non può essere montato." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Impossibile montare il volume. Se si tratta di una unità cifrata, allora è " "stata usata una password o chiave errata." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Impossibile montare il volume selezionato. È probabile che il supporto sia " "in un formato che non può essere montato." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Impossibile montare l'unità floppy selezionata." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Impossibile montare il volume selezionato." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Impossibile smontare il volume selezionato. Il volume è in uso da parte di " "uno o più programmi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Impossibile smontare il volume selezionato." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Lettura dei dati dal processo figlio %d (%s) non riuscita" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Impossibile eseguire il processo di mount in un pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Errore inatteso in select() nel leggere i dati da un processo figlio (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Impossibile inviare la password al processo di mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Errore inatteso in waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Avvio del comando non riuscito" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Impossibile espellere il supporto" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Impossibile smontare il server connesso" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rete" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Home" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "File system" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d sconosciuta" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rete Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "L'identità del computer remoto (%s) è sconosciuta." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ciò si verifica quando si esegue l'accesso a un computer per la prima " "volta.\n" "\n" "L'identità inviata dal computer remoto è «%s». Per essere assolutamente certi " "che è sicuro continuare, contattare l'amministratore di sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Accedere comunque" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Annulla accesso" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Impossibile trovare un file di impostazioni valido presso %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Usare la variabile d'ambiente %s per specificare una posizione diversa.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Il proxy HTTP in uso richiede di effettuare il login.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "È necessario effettuare il login per accedere a «%s».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "La propria password verrà trasmessa non cifrata." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "La propria password verrà trasmessa cifrata." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "È necessario effettuare il login per accedere a %s, dominio %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "È necessario effettuare il login per accedere a %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Applicazione di visualizzatore componente predefinita" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Applicazione di terminale predefinita" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argomento exec per il terminale predefinito" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "L'applicazione da usare per visualizzare i file che richiedono un componente " "per essere visualizzati. Il parametro %s viene sostituito con l'URI del " "file, il parametro %c viene sostituito con l'IID del componente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Applicazione di terminale predefinita da usare per applicazioni che " "richiedono un terminale." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "L'argomento exec da usare per l'applicazione di terminale predefinita." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Eseguire il comando in un terminale" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"aim\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"callto\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"ghelp\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"h323\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"http\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"https\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"info\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"mailto\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"man\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Il comando usato per gestire gli URL \"trash\", se abilitati." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Gestore di URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Gestore di URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Gestore di URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Gestore di URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Gestore di URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Gestore di URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Gestore di URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Gestore di URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Gestore di URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Gestore di URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"command\" " "gestisca gli URL \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Impostare a VERO affinché il programma specificato nella chiave \"trash/" "command\" gestisca gli URL \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Impostare a VERO se il programma che gestisce questo tipo di URL deve essere " "eseguito in un terminale." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Indica se il comando specificato deve gestire gli URL \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Elenco separato da virgole di domini DNS-SD che dovrebbero essere visibili " "nella posizione \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domini aggiuntivi da interrogare per servizi DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Visualizzazione del servizio DNS-SD locale" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Valori ammessi sono \"merged\", \"separate\" e \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autenticazione connessioni al server proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL di configurazione automatica del proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Abilita le impostazioni del proxy per gli accessi HTTP su Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nome dell'host proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Porta proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nome dell'host proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Password per proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Porta proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nome utente per proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Se impostata a vero, le connessioni al server proxy richiedono " "l'autenticazione. La combinazione nome utente/password è definita nelle " "chiavi \"/system/http_proxy/authentication_user\" e \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Host non sottoposti a proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Password da fornire come autenticazione nell'effettuare proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Modalità di configurazione proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nome dell'host proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Porta del proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nome dell'host proxy HTTP sicuro" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Porta del proxy HTTP sicuro" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Selezionare la modalità di configurazione del proxy. Valori ammessi sono " "\"none\", \"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Il nome della macchina attraverso la quale effettuare il proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Il nome della macchina attraverso la quale effettuare il proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" "Il nome della macchina attraverso la quale effettuare il proxy HTTP sicuro." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Il nome della macchina attraverso la quale effettuare il proxy SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "La porta sulla macchina definita in \"/system/http_proxy/host\" attraverso " "la quale effettuare il proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "La porta sulla macchina definita in \"/system/proxy/ftp_host\" attraverso la " "quale effettuare il proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "La porta sulla macchina definita in \"/system/proxy/secure_host\" attraverso " "la quale effettuare il proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "La porta sulla macchina definita in \"/system/proxy/socks_host\" attraverso " "la quale effettuare il proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Questa chiave contiene una lista di host a cui connettersi direttamente, " "invece che attraverso il proxy (qualora sia attivo). Valori ammessi sono " "nomi degli host, domini (usando un metacarattere iniziale come *.foo.com), " "indirizzi IP degli host (sia IPv4 che IPv6) ed indirizzi di rete con una " "maschera di rete (qualcosa come 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL che fornisce i valori di configurazione del proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Usare proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Nome utente da fornire come autenticazione nell'effettuare proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Workgroup SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Il workgroup o dominio della rete tipo Windows di cui l'utente fa parte. È " "necessario terminare la sessione e riavviarla per poter operare pienamente " "dopo aver inserito un nuovo workgroup." #~ msgid "Could not initialize Bonobo" #~ msgstr "Impossibile inizializzare Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Impossibile inizializzare GNOME VFS" #~ msgid "Standard Moniker factory" #~ msgstr "Fabbrica Moniker standard" #~ msgid "file MonikerExtender" #~ msgstr "file MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "moniker GNOME VFS generico" #~ msgid "generic file moniker" #~ msgstr "moniker file generico" gnome-vfs-2.24.4/po/ko.po0000644000175000001440000013434011354402652012017 00000000000000# gnome-vfs ko.po # This file is distributed under the same license as the gnome-vfs package. # # Young-Ho Cha , 2000. # Changwoo Ryu , 2002-2007, 2009, 2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2010-02-17 01:47+0900\n" "PO-Revision-Date: 2010-02-17 01:50+0900\n" "Last-Translator: Changwoo Ryu \n" "Language-Team: GNOME Korea \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 볼륨" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%uì— NUL 문ìžê°€ 들어 있습니다." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%uì— ë©”ì„œë“œ ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%uì— ì˜µì…˜ ë 표시가 없습니다." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%uì— ì•Œ 수 없는 옵션 %sì´(ê°€) 있습니다." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%uì— ëª¨ë“ˆ ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "설정 íŒŒì¼ `%s'ì´(ê°€) 없습니다: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d ë¶„ì„ ì‹¤íŒ¨." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS ë„¤íŠ¸ì›Œí¬ ë³¼ë¥¨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "ìžë™ ê°ì§€ 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "BRTFS 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD 디지털 오디오" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "하드웨어 장치 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "EXT2 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "EXT3 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "EXT4 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSë„스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "ë§¥OS 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "HSFS CDROM 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "윈ë„우즈 NT 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "시스템 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "메모리 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS ë„¤íŠ¸ì›Œí¬ ë³¼ë¥¨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "네트웨어 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "윈ë„우즈 공유 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "UDFS Solaris 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "PCFS Solaris 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "임시 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "확장 ë„스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "윈ë„우즈 VFAT 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS 리눅스 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS 볼륨" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "알 수 ì—†ìŒ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s 볼륨" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "플로피 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "컴팩트 플래시 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "메모리 스틱 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "스마트 미디어 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s ìŒì•… 플레ì´ì–´" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s 디지털 ì¹´ë©”ë¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "외장 %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "빈 CD-R 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "빈 CD-RW 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "빈 DVD-RAM 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "빈 DVD-R 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "빈 DVD-RW 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "빈 DVD+R 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "빈 DVD+RW 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "오디오 디스í¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s ì´ë™ì‹ 볼륨" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "볼륨" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "알 수 없는 ìž‘ë™ ë°©ì‹ %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "GIOChannelì„ ì—´ê¸°ìœ„í•œ 파ì´í”„ 만들기 실패: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "알 수 없는 작업 종류 %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ìž‘ë™ ì¤‘ì§€" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ì§€ì›í•˜ì§€ 않는 함수. 사용ìžê°€ MIME ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 수정하는 ê±´ ë” ì´ìƒ ì§€ì›í•˜" "ì§€ 않습니다." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "ë¶„ì„í•  수 없습니다: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "다ìŒë¶€í„° ë¶„ì„ ì• ëŸ¬ëŠ” 무시ë©ë‹ˆë‹¤." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "오류 ì—†ìŒ" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "파ì¼ì´ 없습니다" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ì¼ë°˜ 오류" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ë‚´ë¶€ 오류" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ìž˜ëª»ëœ ì¸ìž" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ì§€ì›ë˜ì§€ 않는 ìž‘ë™" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "입출력 오류" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "ì†ìƒëœ ìžë£Œ" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "형ì‹ì´ 잘못ë˜ì–´ 있습니다" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ìž˜ëª»ëœ íŒŒì¼ í•¸ë“¤" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "파ì¼ì´ 너무 í¼" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ìž¥ì¹˜ì— ë‚¨ì€ ê³µê°„ 없습니다" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ì½ê¸° ì „ìš© íŒŒì¼ ì‹œìŠ¤í…œ" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ìž˜ëª»ëœ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "파ì¼ì„ ì—´ 수 없습니다" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "열기 모드가 잘못ë˜ì–´ 있습니다" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ì ‘ê·¼ ê±°ë¶€" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "너무 ë§Žì€ íŒŒì¼ì´ 열었습니다" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "파ì¼ì˜ ë" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "디렉터리가 아닙니다" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ìž‘ë™ì´ 진행중" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ìž‘ë™ì´ 중단ë©ë‹ˆë‹¤" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "파ì¼ì´ 있습니다" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "루핑ë˜ëŠ” ë§í¬ 만남" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ìž‘ë™ì´ 허가ë˜ì§€ 않ìŒ" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "디렉터리입니다" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "메모리가 부족" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "호스트가 없습니다" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "호스트 ì´ë¦„ì´ ìž˜ëª»ë˜ì—ˆìŠµë‹ˆë‹¤" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "í˜¸ìŠ¤íŠ¸ì˜ ì£¼ì†Œê°€ 없습니다" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ë¡œê·¸ì¸ ì‹¤íŒ¨" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ìž‘ë™ ì·¨ì†Œë˜ì—ˆìŠµë‹ˆë‹¤" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "디렉터리가 사용 중입니다" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "빈 디렉터리가 아닙니다" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "ë§í¬ê°€ 너무 많습니다" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ì½ê¸° ì „ìš© íŒŒì¼ ì‹œìŠ¤í…œ" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ê°™ì€ íŒŒì¼ì‹œìŠ¤í…œì´ ì•„ë‹™ë‹ˆë‹¤" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "ì´ë¦„ì´ ë„ˆë¬´ ê¹ë‹ˆë‹¤" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "서비스가 가능하지 않습니다" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "ì“°ì´ì§€ 않는 ì„œë¹„ìŠ¤ì˜ ìžë£Œ 요청" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "프로토콜 오류" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "주요 브ë¼ìš°ì €ë¥¼ ì°¾ì„ ìˆ˜ê°€ 없습니다" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "기본 ì•¡ì…˜ì´ ì§€ì •ë˜ì–´ 있지 않습니다" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL ìŠ¤í‚´ì— ëŒ€í•´ 처리기가 지정ë˜ì–´ 있지 않습니다" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "명령 í–‰ì„ ë¶„ì„하는 ë° ì• ëŸ¬ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "ëª…ë ¹ì„ ì‹¤í–‰í•˜ëŠ” ë° ì• ëŸ¬ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ì œí•œì‹œê°„ì´ ë„˜ì—ˆìŠµë‹ˆë‹¤" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "네임서버 오류" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "ìžì›ì´ 잠겨 있습니다" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "함수를 ì§€ì›í•˜ì§€ 않습니다" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ìž˜ëª»ëœ íŒŒì¼ ì´ë¦„" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "심볼릭 ë§í¬ê°€ 아닙니다" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "알 수 없는 애러가 ë°œìƒí–ˆìŠµë‹ˆë‹¤" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%uë°”ì´íЏ" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ìž˜ëª»ëœ ìœ ë‹ˆì½”ë“œ)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "플로피" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "디스í¬" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 드ë¼ì´ë¸Œ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "메모리 스틱" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "스마트 미디어" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "ì¹´ë©”ë¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "루트 볼륨" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "ìŒì•… CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "알 수 없는 볼륨" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "ë„¤íŠ¸ì›Œí¬ ì„œë²„" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "플로피 드ë¼ì´ë¸Œë¥¼ 마운트할 수 없습니다. 드ë¼ì´ë¸Œì— 플로피가 ì—†ì„ ê²ƒìž…ë‹ˆë‹¤." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "해당 ë³¼ë¥¨ì„ ë§ˆìš´íŠ¸í•  수 없습니다. 해당 ìž¥ì¹˜ì— ë¯¸ë””ì–´ê°€ ì—†ì„ ê²ƒìž…ë‹ˆë‹¤." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "플로피 드ë¼ì´ë¸Œë¥¼ 마운트할 수 없습니다. 플로피가 마운트할 수 없는 형ì‹ì¼ 것입" "니다." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ë³¼ë¥¨ì„ ë§ˆìš´íŠ¸í•  수 없습니다. ì•”í˜¸í™”ëœ ë“œë¼ì´ë¸Œì¸ 경우, ìž˜ëª»ëœ ì—´ì‡ ê¸€ì´ë‚˜ 키" "를 사용한 경우입니다." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "ì„ íƒí•œ ë³¼ë¥¨ì„ ë§ˆìš´íŠ¸í•  수 없습니다. 해당 ë³¼ë¥¨ì´ ë§ˆìš´íŠ¸í•  수 없는 형ì‹ì¼ 것입" "니다." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "ì„ íƒí•œ 플로피 드ë¼ì´ë¸Œë¥¼ 마운트할 수 없습니다." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "ì„ íƒí•œ ë³¼ë¥¨ì„ ë§ˆìš´íŠ¸í•  수 없습니다." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "ì„ íƒí•œ ë³¼ë¥¨ì„ ë§ˆìš´íŠ¸ 해제할 수 없습니다. 다른 프로세스가 해당 ë³¼ë¥¨ì„ ì‚¬ìš©ì¤‘ìž…" "니다." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "ì„ íƒí•œ ë³¼ë¥¨ì„ ë§ˆìš´íŠ¸ 해제할 수 없습니다." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "하위 %d번 프로세스ì—서 ë°ì´í„°ë¥¼ ì½ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "PTYì—서 마운트 프로세스를 실행할 수 없습니다" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "하위 프로세스ì—서 (%s) ë°ì´í„°ë¥¼ ì½ëŠ” ë° select()ì—서 예ìƒì¹˜ 못한 오류가 ë°œìƒ" "했습니다" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "마운트 í”„ë¡œì„¸ìŠ¤ì— ì•”í˜¸ë¥¼ 보낼 수 없습니다." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid()ì—서 예ìƒì¹˜ 못한 오류 (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "명령어를 시작하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "미디어를 꺼낼 수 없습니다" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "연결한 서버ì—서 마운트를 해제할 수 없습니다" #: ../modules/computer-method.c:543 msgid "Network" msgstr "네트워í¬" #: ../modules/computer-method.c:561 msgid "Home" msgstr "홈" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "íŒŒì¼ ì‹œìŠ¤í…œ" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "알 수 없는 GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "윈ë„우즈 네트워í¬" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ì›ê²© 컴퓨터(%s)ì˜ ì‹ ì›ì„ 알 수 없습니다." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ì´ í˜„ìƒì€ 첫 번째로 ì»´í“¨í„°ì— ë¡œê·¸ì¸í•  때 ë°œìƒí•©ë‹ˆë‹¤.\n" "\n" "ì›ê²© 컴퓨터가 보낸 ì‹ ì›ì€ %s입니다. 계ì†í•´ë„ 안전한지 철저하게 확ì¸í•˜ë ¤ë©´, 시" "스템 관리ìžì—게 물어보십시오." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "ê·¸ëž˜ë„ ë¡œê·¸ì¸" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ë¡œê·¸ì¸ ì·¨ì†Œ" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%sì—서 올바른 설정 파ì¼ì„ ì°¾ì„ ìˆ˜ 없습니다\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "다른 위치를 지정하려면 %s 환경 변수를 사용하십시오.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "사용하고 있는 HTTP 프ë¡ì‹œëŠ” 로그ì¸ì„ 해야 합니다.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\"ì— ì ‘ê·¼í•˜ë ¤ë©´ 로그ì¸í•´ì•¼ 합니다.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "ì—´ì‡ ê¸€ì„ ì•”í˜¸í™”í•˜ì§€ ì•Šì€ ìƒíƒœë¡œ 전달하게 ë©ë‹ˆë‹¤." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "ì—´ì‡ ê¸€ì„ ì•”í˜¸í™”í•œ ì•Šì€ ìƒíƒœë¡œ 전달하게 ë©ë‹ˆë‹¤." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%sì˜ ë„ë©”ì¸ %sì— ì ‘ê·¼í•˜ë ¤ë©´ 로그ì¸í•´ì•¼ 합니다\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%sì— ì ‘ê·¼í•˜ë ¤ë©´ 로그ì¸í•´ì•¼ 합니다\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "기본 ì»´í¬ë„ŒíЏ 보기 프로그램" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "기본 í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "기본 터미ë„ì„ ì‹¤í–‰í•  때 줄 ì¸ìž" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "볼려면 ì»´í¬ë„ŒíŠ¸ê°€ 필요한 파ì¼ì„ ë³¼ 때 사용할 프로그램. ì¸ìž %sì€(는) 파ì¼ì˜ " "URIì´ê³ , ì¸ìž %cì€(는) ì»´í¬ë„ŒíЏ IID입니다." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "터미ë„ì´ í•„ìš”í•œ í”„ë¡œê·¸ëž¨ì— ì‚¬ìš©í•  기본 í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "기본 í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰í•  때 사용할 ì¸ìž." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" URLì„ ì²˜ë¦¬í•  경우 사용할 명령." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLì— ëŒ€í•œ 핸들러" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"aim\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"callto\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"ghelp\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"h323\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"http\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"https\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"info\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"mailto\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"man\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "ì°¸ì´ë©´ \"command\" í‚¤ì— ì§€ì •í•œ 명령어로 \"trash\" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "지정한 명령어로 \"aim\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "지정한 명령어로 \"callto\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "지정한 명령어로 \"ghelp\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "지정한 명령어로 \"h323\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "지정한 명령어로 \"http\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "지정한 명령어로 \"https\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "지정한 명령어로 \"info\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "지정한 명령어로 \"mailto\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "지정한 명령어로 \"man\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "지정한 명령어로 \"trash\" URLì„ ì²˜ë¦¬í•  ì§€ 여부" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "\"network:///\" 위치ì—서 보여야 하는 DNS-SD ë„ë©”ì¸ë“¤ì˜ 쉼표로 구분한 목ë¡." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD 서비스를 찾아볼 추가 ë„ë©”ì¸" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "로컬 DNS-SD 서비스를 표시하는 법" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "쓸 수 있는 ê°’ì€ \"merged\", \"separated\" ë° \"disabled\"입니다." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "프ë¡ì‹œ 서버 ì—°ê²°ì— ì¸ì¦" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ìžë™ 프ë¡ì‹œ 설정 URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ì¸í„°ë„·ì„ HTTP로 접근할 때 프ë¡ì‹œë¥¼ 사용합니다." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP 프ë¡ì‹œ 호스트 ì´ë¦„" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP 프ë¡ì‹œ í¬íЏ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP 프ë¡ì‹œ 호스트 ì´ë¦„" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP 프ë¡ì‹œ 암호" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP 프ë¡ì‹œ í¬íЏ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP 프ë¡ì‹œ ì‚¬ìš©ìž ì´ë¦„" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "ì°¸ì´ë©´, 프ë¡ì‹œ ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë° ì¸ì¦ì´ 필요합니다. ì‚¬ìš©ìž ì´ë¦„ê³¼ 암호는 \"/" "system/http_proxy/authentication_user\" ë° \"/system/http_proxy/" "authentication_password\"ì—서 지정합니다." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "프ë¡ì‹œ ì“°ì§€ ì•Šì„ í˜¸ìŠ¤íŠ¸" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP 프ë¡ì‹œë¥¼ 쓸 때 ì¸ì¦í•˜ë©´ì„œ 넘기는 암호." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "프ë¡ì‹œ 설정 모드" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS 프ë¡ì‹œ 호스트 ì´ë¦„" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS 프ë¡ì‹œ í¬íЏ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "보안 HTTP 프ë¡ì‹œ 호스트 ì´ë¦„" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "보안 HTTP 프ë¡ì‹œ í¬íЏ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "프ë¡ì‹œ 설정 모드를 ì„ íƒí•©ë‹ˆë‹¤. ì§€ì›í•˜ëŠ” ê°’ì€ \"none\", \"manual\", \"auto\"ìž…" "니다." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "보안 HTTP 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "SOCKS 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "프ë¡ì‹œì— 사용할 í¬íЏ (\"/system/http_proxy/host\"ì—서 지정한 기계ì—서)." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "프ë¡ì‹œì— 사용할 í¬íЏ (\"/system/proxy/ftp_host\"ì—서 지정한 기계ì—서)." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "프ë¡ì‹œì— 사용할 í¬íЏ (\"/system/proxy/secure_host\"ì—서 지정한 기계ì—서)." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "프ë¡ì‹œì— 사용할 í¬íЏ (\"/system/proxy/socks_host\"ì—서 지정한 기계ì—서)." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ì´ í‚¤ì—는 (프ë¡ì‹œê°€ 사용 가능할 경우ì—ë„) 프ë¡ì‹œë¥¼ 통하지 않고 ì§ì ‘ ì—°ê²°í•  호" "ìŠ¤íŠ¸ì˜ ëª©ë¡ì´ 들어갑니다. ê° ê°’ë“¤ì€ í˜¸ìŠ¤íŠ¸ ì´ë¦„, ë„ë©”ì¸ ì´ë¦„(*.foo.comê³¼ ê°™" "ì€ ì™€ì¼ë“œ 카드 사용), IP 호스트 주소(IPv4와 IPv6 ëª¨ë‘ ê°€ëŠ¥), 네트마스í¬ë¥¼ 사" "용한 ë„¤íŠ¸ì›Œí¬ ì£¼ì†Œ(192.168.0.0/24와 ê°™ì´)를 쓸 수 있습니다." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "프ë¡ì‹œ 설정 ê°’ì„ ì œê³µí•´ 주는 URL." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP 프ë¡ì‹œ 사용" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP 프ë¡ì‹œë¥¼ 쓸 때 ì¸ì¦í•˜ë©´ì„œ 넘기는 ì‚¬ìš©ìž ì´ë¦„." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB 작업 그룹" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "사용ìžê°€ ì†í•´ 있는 윈ë„ìš° ë„¤íŠ¸ì›Œí¬ ì›Œí¬ê·¸ë£¹ í˜¹ì€ ë„ë©”ì¸. 새 워í¬ê·¸ë£¹ì´ 완전" "히 ë™ìž‘하려면 사용ìžê°€ 로그아웃했다가 다시 로그ì¸í•´ì•¼ í•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤." gnome-vfs-2.24.4/po/bn_IN.po0000644000175000001440000017152611413132751012376 00000000000000# translation of bn_IN.po to Bengali INDIA # Bengali India Translation of GNOME-vfs # Copyright (C) 1999, 2000, 01, 02, 2006, 2008, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the GNOME-vfs package. # # Sayamindu Dasgupta , 2003. # Mahay Alam Khan , 2005. # Samia Niamatullah , 2005. # Runa Bhattacharjee , 2008, 2010. msgid "" msgstr "" "Project-Id-Version: bn_IN\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-03-31 18:02+0000\n" "PO-Revision-Date: 2010-04-05 20:05+0530\n" "Last-Translator: Runa Bhattacharjee \n" "Language-Team: Bengali INDIA \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 ভলিউম" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u'র মধà§à¦¯à§‡ NUL অকà§à¦·à¦° উপসà§à¦¥à¦¿à¦¤à¥¤" # msgstr "%s:%dতে নঞ-অকà§à¦·à¦° আছে" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u'র মধà§à¦¯à§‡ কোনো মেথডের নাম উপসà§à¦¥à¦¿à¦¤ নেই।" # msgstr "%s:%dতে নঞ-অকà§à¦·à¦° আছে" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u'র মধà§à¦¯à§‡ বিকলà§à¦ªà§‡à¦° সমাপà§à¦¤à¦¿à¦šà¦¿à¦¹à§à¦¨ (endmarker) নেই।" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u'র মধà§à¦¯à§‡ অজানা বিকলà§à¦ª %s উপসà§à¦¥à¦¿à¦¤ রয়েছে।" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u'র মধà§à¦¯à§‡ কোনো মডিউলের নাম নেই।" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "`%s' নামক কনফিগারেশন ফাইল পাওয়া যায়নি: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d পারà§à¦¸ করà§à¦® অসà§à¦¬à¦¾à¦­à¦¾à¦¬à¦¿à¦•রূপ বনà§à¦§à¥¤" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS নেটওয়ারà§à¦• ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে সনাকà§à¦¤ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD ডিজিটাল অডিও" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "হারà§à¦¡à¦“à§Ÿà§à¦¯à¦¾à¦° ডিভাইস ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "সিসà§à¦Ÿà§‡à¦® ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "মেমরি ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS নেটওয়ারà§à¦• ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows Shared ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "অসà§à¦¥à¦¾à§Ÿà§€ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "অজানা" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ভলিউম" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "কমপà§à¦¯à¦¾à¦•à§à¦Ÿ ফà§à¦²à§à¦¯à¦¾à¦¶ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "মেমরি সà§à¦Ÿà¦¿à¦•‌ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "জিপ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "পেন ডà§à¦°à¦¾à¦‡à¦­" # the commonwords.po file says খেলোয়াড়, but in regard of music বাদক is more suitable - mak #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s সঙà§à¦—ীত বাদক" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ডিজিটাল কà§à¦¯à¦¾à¦®à§‡à¦°à¦¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "বহিসà§à¦¥à¦¿à¦¤ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ফাà¦à¦•া CD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ফাà¦à¦•া CD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ফাà¦à¦•া DVD-RAM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ফাà¦à¦•া DVD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ফাà¦à¦•া DVD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ফাà¦à¦•া DVD+R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ফাà¦à¦•া DVD+RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "অডিও ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s অপসারণযোগà§à¦¯ ভলিউম" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ভলিউম" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "অজানা ধরনের করà§à¦® %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "খোলা GIOChannel'র কà§à¦·à§‡à¦¤à§à¦°à§‡ পাইপ নিরà§à¦®à¦¾à¦£ করতে বà§à¦¯à¦°à§à¦¥: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "অজানা ধরনের করà§à¦® %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "করà§à¦® বনà§à¦§ করা হয়েছে" # পরিবরà§à¦§à¦¨ might be more apropriate, isn't it - mak #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "অবচিত করà§à¦®à¥¤ MIME ডাটাবেসে বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীদের দà§à¦¬à¦¾à¦°à¦¾ পরিবরà§à¦¤à¦¨ বরà§à¦¤à¦®à¦¾à¦¨à§‡ সমরà§à¦¥à¦¿à¦¤ নয়।" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "পারà§à¦¸ করতে বà§à¦¯à¦°à§à¦¥: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "পারà§à¦¸ করà§à¦®à¦œà§œà¦¿à¦¤ তà§à¦°à§à¦Ÿà¦¿ অতিরিকà§à¦¤ তà§à¦°à§à¦Ÿà¦¿ অগà§à¦°à¦¾à¦¹à§à¦¯ করা হবে।" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "তà§à¦°à§à¦Ÿà¦¿à¦¬à¦¿à¦¹à§€à¦¨" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ফাইল পাওয়া যায়নি" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "সাধারণ তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "অভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "অবৈধ পরামিতি" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "অসমরà§à¦¥à¦¿à¦¤ করà§à¦®" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O-জড়িত তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤ তথà§à¦¯" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "বিনà§à¦¯à¦¾à¦¸ বৈধ নয়" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "তà§à¦°à§à¦Ÿà¦¿à¦ªà§‚রà§à¦£ ফাইল-হà§à¦¯à¦¾à¦¨à§à¦¡à¦²" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ফাইলের মাপ অতà§à¦¯à¦¾à¦§à¦¿à¦• বড়" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ডিভাইসে অবশিষà§à¦Ÿ ফাà¦à¦•া সà§à¦¥à¦¾à¦¨ নেই" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠযোগà§à¦¯ ফাইল-সিসà§à¦Ÿà§‡à¦®" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "অবৈধ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ফাইল খোলা নয়" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "খোলা অবসà§à¦¥à¦¾ বৈধ নয়" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° অধিকার পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• ফাইল খোলা অবসà§à¦¥à¦¾à§Ÿ রয়েছে" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ফাইলের সমাপà§à¦¤à¦¿" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ নয়" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "করà§à¦® চলমান" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "করà§à¦®à§‡ বà§à¦¯à¦¾à¦˜à¦¾à¦¤" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ফাইল বরà§à¦¤à¦®à¦¾à¦¨à§‡ উপসà§à¦¥à¦¿à¦¤" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "লà§à¦ª লিঙà§à¦• সনাকà§à¦¤ করা হয়েছে" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "করà§à¦® সঞà§à¦šà¦¾à¦²à¦¨à§‡à¦° অনà§à¦®à¦¤à¦¿ নেই" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "à¦à¦•টি ডিরেকà§à¦Ÿà¦°à¦¿" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "পরà§à¦¯à¦¾à¦ªà§à¦¤ মেমরি উপসà§à¦¥à¦¿à¦¤ নেই" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "হোসà§à¦Ÿ পাওয়া যায়নি" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "হোসà§à¦Ÿ-নেম বৈধ নয়" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "হোসà§à¦Ÿà§‡à¦° ঠিকানা অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "লগ-ইন বà§à¦¯à¦°à§à¦¥" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "করà§à¦® বাতিল" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ বà§à¦¯à¦¸à§à¦¤" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ ফাà¦à¦•া নয়" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• লিঙà§à¦•" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠযোগà§à¦¯ ফাইল-সিসà§à¦Ÿà§‡à¦®" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "à¦à¦• ফাইল-সিসà§à¦Ÿà§‡à¦® উপসà§à¦¥à¦¿à¦¤ নয়" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "নাম অতà§à¦¯à¦¾à¦§à¦¿à¦• লমà§à¦¬à¦¾" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "পরিসেবা উপলবà§à¦§ নয়" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "অনà§à¦°à§‹à¦§à§‡à¦° ফলে পরিসেবার তথà§à¦¯ অবচিত হবে" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "পà§à¦°à¦Ÿà§‹à¦•ল সংকà§à¦°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "পà§à¦°à¦§à¦¾à¦¨ বà§à¦°à¦¾à¦‰à¦œà¦¾à¦° পাওয়া যায়নি" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ডিফলà§à¦Ÿ করà§à¦® সংযà§à¦•à§à¦¤ নয়" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL সà§à¦•িমের জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "কমানà§à¦¡-লাইন পারà§à¦¸ করতে বà§à¦¯à¦°à§à¦¥" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "কমানà§à¦¡ আরমà§à¦­ করতে বà§à¦¯à¦°à§à¦¥" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "সময়সীমা অতিকà§à¦°à¦¾à¦¨à§à¦¤" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "নেম-সারà§à¦­à¦¾à¦° সংকà§à¦°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "রিসোরà§à¦¸ লক করা অবসà§à¦¥à¦¾à§Ÿ" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ফাংশান কল অবচিত" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "অবৈধ ফাইলের নাম" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "সিমà§à¦¬à¦²à¦¿à¦• লিঙà§à¦• নয়" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "অজানা তà§à¦°à§à¦Ÿà¦¿" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u বাইট" msgstr[1] "%u বাইট" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f কিলোবাইট" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f মেগাবাইট" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f গিগাবাইট" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (অবৈধ Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ফà§à¦²à¦ªà¦¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "মেমরি সà§à¦Ÿà¦¿à¦•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "কà§à¦¯à¦¾à¦®à§‡à¦°à¦¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root ভলিউম" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "অডিও CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "অজানা ভলিউম" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "নেটওয়ারà§à¦• সারà§à¦­à¦¾à¦°" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤ সমà§à¦­à¦¬à¦¤ ডà§à¦°à¦¾à¦‡à¦­à§‡à¦° মধà§à¦¯à§‡ ফà§à¦²à¦ªà¦¿ অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤à¥¤" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ভলিউম মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤ সমà§à¦­à¦¬à¦¤ ডিভাইসের মধà§à¦¯à§‡ কোনো মিডিয়া উপসà§à¦¥à¦¿à¦¤ নেই।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤ সমà§à¦­à¦¬à¦¤ ফà§à¦²à¦ªà¦¿à¦° বিনà§à¦¯à¦¾à¦¸ মাউনà§à¦Ÿ করার উপযà§à¦•à§à¦¤ নয়।" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ভলিউম মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤ à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ করা ডà§à¦°à¦¾à¦‡à¦­à§‡à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ সমà§à¦­à¦¬à¦¤ ভà§à¦² পাসওয়ারà§à¦¡ অথবা কি " "পà§à¦°à§Ÿà§‹à¦— করা হয়েছে।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤ সমà§à¦­à¦¬à¦¤ ভলিউমের বিনà§à¦¯à¦¾à¦¸ মাউনà§à¦Ÿ করার উপযà§à¦•à§à¦¤ নয়।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম আন-মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤ à¦à¦• অথবা অধিক পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ à¦à¦‡ ভলিউমটি " "বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হচà§à¦›à§‡à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম আন-মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "চাইলà§à¦¡ পà§à¦°à¦¸à§‡à¦¸ %d থেকে তথà§à¦¯ পড়তে বà§à¦¯à¦°à§à¦¥ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty'র মধà§à¦¯à§‡ মাউনà§à¦Ÿ করà§à¦® সঞà§à¦šà¦¾à¦²à¦¨à§‡ বà§à¦¯à¦°à§à¦¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "চাইলà§à¦¡ পà§à¦°à¦¸à§‡à¦¸ থেকে select() দà§à¦¬à¦¾à¦°à¦¾ তথà§à¦¯ পড়তে অপà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ সমসà§à¦¯à¦¾ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "মাউনà§à¦Ÿ করà§à¦®à§‡à¦° জনà§à¦¯ পাসওয়ারà§à¦¡ পà§à¦°à§‡à¦°à¦£ করতে বà§à¦¯à¦°à§à¦¥à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid()'র কà§à¦·à§‡à¦¤à§à¦°à§‡ অপà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ সমসà§à¦¯à¦¾ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "কমানà§à¦¡ আরমà§à¦­ করতে বà§à¦¯à¦°à§à¦¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "মিডিয়া বের করতে বà§à¦¯à¦°à§à¦¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "সংযà§à¦•à§à¦¤ সারà§à¦­à¦¾à¦° আন-মাউনà§à¦Ÿ করতে বà§à¦¯à¦°à§à¦¥" #: ../modules/computer-method.c:543 msgid "Network" msgstr "নেটওয়ারà§à¦•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত ফোলà§à¦¡à¦¾à¦°" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ফাইল-সিসà§à¦Ÿà§‡à¦®" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "অজানা GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows নেটওয়ারà§à¦•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "দূরবরà§à¦¤à§€ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡à¦° (%s) পরিচিতি অজà§à¦žà¦¾à¦¤à¥¤" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "পà§à¦°à¦¥à¦®à¦¬à¦¾à¦° কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ লগ-ইন করার সময় à¦à¦‡ রকম হয়ে থাকে।\n" "\n" "দূরবরà§à¦¤à§€ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦° দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à§‡à¦°à¦¿à¦¤ পরিচিতি হল %s। à¦à¦—িয়ে চলার পূরà§à¦¬à§‡ সমà§à¦ªà§‚রà§à¦£à¦°à§‚পে নিশà§à¦šà¦¿à¦¤ " "হতে সিসà§à¦Ÿà§‡à¦® অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨à¦¿à¦¸à§à¦Ÿà§à¦°à§‡à¦Ÿà¦°à§‡à¦° সাথে যোগাযোগ করà§à¦¨à¥¤" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "তথাপি লগ-ইন করা হবে" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "লগ-ইন বাতিল" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s'ঠবৈধ বৈশিষà§à¦Ÿà§à¦¯à¦¸à¦¹ ফাইল পাওয়া যায়নি\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "%s à¦à¦¨à¦­à¦¾à§Ÿà¦°à¦¨à¦®à§‡à¦¨à§à¦Ÿ ভেরিয়েবল দà§à¦¬à¦¾à¦°à¦¾ à¦à¦•টি ভিনà§à¦¨ অবসà§à¦¥à¦¾à¦¨ নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨à¥¤\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "আপনার বà§à¦¯à¦¬à¦¹à§ƒà¦¤ HTTP Proxy'র কà§à¦·à§‡à¦¤à§à¦°à§‡ লগ-ইন করা আবশà§à¦¯à¦•।\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ লগ-ইন করা আবশà§à¦¯à¦•।\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "আপনার পাসওয়ারà§à¦¡ বিনা à¦à¦¨à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨à§‡ পà§à¦°à§‡à¦°à¦¿à¦¤ হবে।" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "আপনার পাসওয়ারà§à¦¡ à¦à¦¨à¦•à§à¦°à¦¿à¦ªà¦¶à¦¨à¦¸à¦¹ পà§à¦°à§‡à¦°à¦¿à¦¤ হবে।" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s ডোমেইন %s বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ লগ-ইন করা আবশà§à¦¯à¦•\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ লগ-ইন করা আবশà§à¦¯à¦•\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° ডিফলà§à¦Ÿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡à¦° জনà§à¦¯ exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "আবশà§à¦¯à¦•রূপে কোনো কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ সহযোগে পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ ফাইল পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° জনà§à¦¯ " "বà§à¦¯à¦¬à¦¹à§ƒà¦¤ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন। %s পরামিতির দà§à¦¬à¦¾à¦°à¦¾ ফাইলের URI উলà§à¦²à¦¿à¦–িত হবে ও পরামিতি %c " "দà§à¦¬à¦¾à¦°à¦¾ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿà§‡à¦° IID নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করা হবে।" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "আবশà§à¦¯à¦•রূপে টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² পà§à¦°à§Ÿà§‹à¦—কারী অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনগà§à¦²à¦¿à¦° দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à¥¤" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"http\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "সকà§à¦°à¦¿à§Ÿ করা হলে, \"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"http\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "\"command\" কি'র দà§à¦¬à¦¾à¦°à¦¾ \"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" # my guess it would be: উলà§à¦²à§‡à¦–িত কমানà§à¦¡ \"trash\" ইউআরà¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦² করবে কিনা। - mak #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ \"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "\"network:///\" location'র মধà§à¦¯à§‡ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à¦¯à§‹à¦—à§à¦¯ DNS-SD'র তালিকা, কমা চিহà§à¦¨ দà§à¦¬à¦¾à¦°à¦¾ " "বিভাজিত" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD পরিসেবার জনà§à¦¯ অতিরিকà§à¦¤ ডোমেইন অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করা হবে" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿ DNS-SD পরিসেবা পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° পà§à¦°à¦£à¦¾à¦²à§€" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "সমà§à¦­à¦¬ মান \"merged\", \"separate\" ও \"disabled\"।" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦°à§‡à¦° সংযোগ অনà§à¦®à§‹à¦¦à¦¨ করা হবে" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশনের URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿà§‡à¦° মাধà§à¦¯à¦®à§‡ HTTP বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° সময় পà§à¦°à¦•à§à¦¸à¦¿ সংকà§à¦°à¦¾à¦¨à§à¦¤ বৈশিষà§à¦Ÿà§à¦¯ সকà§à¦°à¦¿à§Ÿ করা হবে" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP পà§à¦°à¦•à§à¦¸à¦¿à¦° হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ পাসওয়ারà§à¦¡" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "মান true (সতà§à¦¯) হলে পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦°à§‡à¦° সাথে সংযোগের জনà§à¦¯ অনà§à¦®à§‹à¦¦à¦¨ আবশà§à¦¯à¦•। বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর " "নাম/পাসওয়ারà§à¦¡ জà§à¦Ÿà¦¿ \"/system/http_proxy/authentication_user\" ও \"/system/" "http_proxy/authentication_password\" দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়।" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "পà§à¦°à¦•à§à¦¸à¦¿-বিহীন হোসà§à¦Ÿ" # C # :-) "C" for what - mak #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° জনà§à¦¯ পà§à¦°à¦¯à§‹à¦œà§à¦¯ পাসওয়ারà§à¦¡" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤ সমরà§à¦¥à¦¿à¦¤ মান হল \"none\", \"manual\", \"auto" "\"।" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম।" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম।" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম।" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "socks পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম।" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ \"/system/http_proxy/host\" দà§à¦¬à¦¾à¦°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়।" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ \"/system/proxy/ftp_host\" দà§à¦¬à¦¾à¦°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়।" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ \"/system/proxy/secure_host\" দà§à¦¬à¦¾à¦°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়।" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ \"/system/proxy/socks_host\" দà§à¦¬à¦¾à¦°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়।" # OMG, it's huge.......guess its correct. - mak #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "পà§à¦°à¦•à§à¦¸à¦¿à¦° (যদি সকà§à¦°à¦¿à§Ÿ) পরিবরà§à¦¤à§‡ সরাসরি সংযোগকারী হোসà§à¦Ÿà§‡à¦° তালিকা à¦à¦‡ কি দà§à¦¬à¦¾à¦°à¦¾ " "উলà§à¦²à¦¿à¦–িত হয়েছে। হোসà§à¦Ÿ-নেম, ডোমেইন (পà§à¦°à¦¾à¦°à¦®à§à¦­à¦¿à¦• ওয়াইলà§à¦¡à¦•ারà§à¦¡à¦¸à¦¹ যেমন *.foo.com), IP " "হোসà§à¦Ÿ ঠিকানা (IPv4 ও IPv6) ও নেটমাসà§à¦•সহ নেটওয়ারà§à¦• ঠিকানার (যেমন 192.168.0.0/24) " "মান à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦°à§‡ অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤ করা যাবে।" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "পà§à¦°à¦•à§à¦¸à¦¿ কনফিগার করার জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মান পà§à¦°à¦¸à§à¦¤à§à¦¤à¦•ারী URL।" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° জনà§à¦¯ পà§à¦°à¦¯à§‹à¦œà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম।" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ওয়ারà§à¦•-গà§à¦°à§à¦ª" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী যে Windows নেটওয়ারà§à¦•িং ওয়ারà§à¦•গà§à¦°à§à¦ª অথবা ডোমেইনের অংশ। নতà§à¦¨ ওয়ারà§à¦•গà§à¦°à§à¦ª " "সমà§à¦ªà§‚রà§à¦£à¦°à§‚পে সকà§à¦°à¦¿à§Ÿ করার জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীকে সমà§à¦­à¦¬à¦¤ লগ-আউট করে পà§à¦¨à¦°à¦¾à§Ÿ লগ-ইন করতে হবে।" #~ msgid "Default media application" #~ msgstr "ডিফলà§à¦Ÿ মিডিয়া অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #~ msgid "Exec argument for default media application" #~ msgstr "ডিফলà§à¦Ÿ মিডিয়া অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ" #~ msgid "The default media application to use when media buttons are pressed." #~ msgstr "মিডিয়ার বাটনগà§à¦²à¦¿ টেপা হলে বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ ডিফলà§à¦Ÿ মিডিয়া অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন।" #~ msgid "The exec argument to use for the default media application." #~ msgstr "ডিফলà§à¦Ÿ মিডিয়া অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿà¥¤" #~ msgid "Handle about URLs" #~ msgstr "URL সংকà§à¦°à¦¾à¦¨à§à¦¤ হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²" #~ msgid "Run program in terminal" #~ msgstr "টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡à¦° মধà§à¦¯à§‡ পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® চালানো হবে" #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle about URLs." #~ msgstr "" #~ "URL সংকà§à¦°à¦¾à¦¨à§à¦¤ \"command\" হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® চিহà§à¦¨à¦¿à¦¤ করতে মান true " #~ "নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨" #~ msgid "True if the program to handle this URL should be run in a terminal." #~ msgstr "" #~ "à¦à¦‡ ধরনের URL পরিচালনকারী পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡à¦° মধà§à¦¯à§‡ সঞà§à¦šà¦¾à¦²à¦¨à¦¾à¦° জনà§à¦¯ মান True " #~ "ধারà§à¦¯ করà§à¦¨à¥¤" #~ msgid "about URL handler" #~ msgstr "URL হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° পরিচিতি" gnome-vfs-2.24.4/po/vi.po0000644000175000001440000013733611354402652012034 00000000000000# Vietnamese translation for Gnome-VFS. # Copyright © 2010 Gnome i18n Project for Vietnamese. # Nguyá»…n Thái Ngá»c Duy , 2002. # Clytie Siddall , 2005-2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.24.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2009-12-14 21:54+0000\n" "PO-Revision-Date: 2010-03-22 21:51+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Khối tin ISO-9960" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u chứa ký tá»± NUL (rá»—ng)." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u không chứa tên phương pháp." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u không chứa dấu kết thúc tùy chá»n." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u có tùy chá»n không rõ %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u không chứa tên mô-Ä‘un." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Không tìm thấy tập tin cấu hình « %s »: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d đã há»§y bá» phân tách." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Khối tin AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Khối tin mạng AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Khối tin đã dò tìm tá»± động" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "Khối tin Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "á»” đĩa CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Âm thanh số CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Khối tin thiết bị phần cứng" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Khối tin EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "Khối tin eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Khối tin Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Khối tin Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "Khối tin Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Khối tin MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Khối tin BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Khối tin FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Khối tin MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Khối tin CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Khối tin CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Khối tin JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Khối tin Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Khối tin hệ thống" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Khối tin bá»™ nhá»›" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Khối tin Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Khối tin mạng NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "Khối tin Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Khối tin Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Khối tin Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Khối tin Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Khối tin chia sẻ Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Khối tin SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Khối tin DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Khối tin Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Khối tin Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Khối tin Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Khối tin SAM-QFS Sun" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Khối tin tạm thá»i" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Khối tin DOS tăng cưá»ng" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Khối tin VFAT Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Khối tin Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Khối tin Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Khối tin XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Khối tin CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Không rõ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Khối tin %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "á»” đĩa %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "á»” đĩa %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "á»” đĩa má»m" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "ÄÄ©a cá»±c nhanh gá»n (CF)" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "á»” thanh bá»™ nhá»›" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "á»” vật chứa thông minh" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "á»” thẻ SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "á»” đĩa Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "á»” đĩa Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "á»” bút" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Bá»™ phát nhạc %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Máy ảnh số %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "á»”" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s lắp ngoài" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "ÄÄ©a CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ÄÄ©a CD-R trắng" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "ÄÄ©a CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ÄÄ©a CD-RW trắng" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "ÄÄ©a CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "ÄÄ©a DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ÄÄ©a DVD-RAM trắng" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "ÄÄ©a DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ÄÄ©a DVD-R trắng" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "ÄÄ©a DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ÄÄ©a DVD-RW trắng" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "ÄÄ©a DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ÄÄ©a DVD+R trắng" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "ÄÄ©a DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ÄÄ©a DVD+RW trắng" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "ÄÄ©a DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ÄÄ©a âm thanh" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Khối tin rá»i %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Khối tin" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Kiểu thao tác không rõ %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 #: ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Không thể tạo ống dẫn cho kênh GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Kiểu công việc không rõ %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Thao tác đã dừng" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "Chức năng bị phản đối. Không còn há»— trợ lại ngưá»i dùng sá»­a đổi cÆ¡ sở dữ liệu MIME." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Không thể phân tách: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Lá»—i phân tách nữa sẽ bị bá» qua." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Không có lá»—i" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Không tìm thấy tập tin" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Lá»—i chung" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Lá»—i ná»™i bá»™" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Tham số không hợp lệ" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Thao tác không được há»— trợ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Lá»—i I/O (nhập/xuất)" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Dữ liệu bị há»ng" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Dạng thức không hợp lệ" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Bá»™ xá»­ lý tập tin sai" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Tập tin quá lá»›n" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Không còn có chá»— rảnh trên thiết bị" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Hệ thống tập tin chỉ Ä‘á»c" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI không hợp lệ" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Tập tin không mở" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Chế độ mở không hợp lệ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Truy cấp bị từ chối" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Quá nhiá»u tập tin được mở" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Hết tập tin" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Không phải là má»™t thư mục" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Thao tác Ä‘ang thá»±c hiện" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Thao tác bị ngắt" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Tập tin đã có" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Phát hiện liên kết vòng lặp" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Thao tác không được phép" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Là má»™t thư mục" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Không đủ bá»™ nhá»›" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Không tìm thấy máy" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Tên máy không hợp lệ" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Máy không có địa chỉ" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Lá»—i đăng nhập" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Thao tác bị thôi" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Thư mục Ä‘ang bận" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Thư mục không rá»—ng" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Quá nhiá»u liên kết" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Hệ thống tập tin chỉ Ä‘á»c" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Không nằm trên cùng má»™t hệ thống tập tin" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Tên quá dài" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Dịch vụ không sẵn sàng" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Yêu cầu làm cho dữ liệu cá»§a dịch vụ quá thá»i" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Lá»—i giao thức" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Không tìm thấy bá»™ duyệt chính" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Không có hành động mặc định được kết hợp" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Không có bá»™ xá»­ lý cho lược đồ URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Gặp lá»—i khi phân tách dòng lệnh" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Gặp lá»—i khi khởi chạy lệnh" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Tá»›i thá»i hạn" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Lá»—i máy phục vụ tên" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Tài nguyên bị khóa" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Cuá»™c gá»i chức năng bị phản đối" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Tên tập tin không hợp lệ" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Không phải là má»™t liên kết tượng trưng" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Lá»—i không rõ" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode không hợp lệ)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ÄÄ©a má»m" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ÄÄ©a" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "á»” USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "á»” IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Thanh bá»™ nhá»›" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Vật chứa thông minh" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Máy ảnh" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Khối tin gốc" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD âm thanh" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Khối tin không rõ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Máy phục vụ mạng" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Không thể gắn kết ổ đĩa má»m. Rất có thể là không có đĩa má»m trong ổ." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Không thể gắn kết khối tin. Rất có thể là không có vật chứa trong thiết bị." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "Unable to mount the floppy drive. The floppy is probably in a format that cannot be mounted." msgstr "Không thể gắn kết đĩa má»m. Rất có thể là đĩa dùng định dạng không thể gắn kết." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "Unable to mount the volume. If this is an encrypted drive, then the wrong password or key was used." msgstr "Không thể gắn kết khối tin. Nếu đĩa này có mật mã thì mật khẩu hay khóa sai đã được nhập." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "Unable to mount the selected volume. The volume is probably in a format that cannot be mounted." msgstr "Không thể gắn kết khối đã chá»n. Rất có thể là khối dùng định dạng không thể gắn kết." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Không thể gắn kết ổ đĩa má»m đã chá»n." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Không thể gắn kết khối tin đã chá»n." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "Unable to unmount the selected volume. The volume is in use by one or more programs." msgstr "Không thể gắn kết khối tin đã chá»n. Rất có thể là khối tin Ä‘ang được dùng bởi má»™t hay nhiá»u chương trình." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Không thể tháo gắn kết khối tin đã chá»n." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Lá»—i Ä‘á»c dữ liệu từ tiến trình con %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Không thể chạy tiến trình gắn kết trong má»™t pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Gặp lá»—i bất ngá» trong « select() » (chá»n) khi Ä‘á»c dữ liệu từ tiến trình con (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Không thể gởi mật khẩu cho tiến trình gắn kết." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Gặp lá»—i bất ngá» trong « waitpid() » (đợi số hiệu tiến trình) (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Lá»—i khởi chạy lệnh" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Không thể đẩy vật chứa ra" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Không thể tháo gắn kết máy phục vụ đã kết nối" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Mạng" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Nhà" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Hệ tập tin" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Không biết GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Mạng Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Không nhận diện máy tính ở xa (%s)." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely sure it is safe to continue, contact the system administrator." msgstr "" "Äiá»u này xảy ra khi bạn đăng nhập vào máy tính lần đầu tiên.\n" "\n" "Máy tính ở xa đã gởi thông tin nhận diện là %s. Nếu bạn muốn đảm bảo là toàn an để tiếp tục, hãy liên lạc vá»›i nhà quản trị hệ thống." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Vẫn đăng nhập" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Thôi đăng nhập" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Không tìm thấy tập tin thiết lập hợp lệ tại %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Hãy dùng biến môi trưá»ng %s để xác định má»™t vị trí khác.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Ủy nhiệm HTTP cá»§a bạn cần thiết bạn đăng nhập.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Bạn phải đăng nhập để truy cập « %s ».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Mật khẩu cá»§a bạn sẽ được truyá»n không mật mã." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Mật khẩu cá»§a bạn sẽ được truyá»n mật mã." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Bạn phải đăng nhập để truy cập %s miá»n %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Bạn phải đăng nhập để truy cập %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Ứng dụng xem thành phần mặc định" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Ứng dụng thiết bị cuối mặc định" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Äối số thức hiện cho thiết bị cuối mặc định" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." msgstr "Ứng dụng cần dùng để xem tập tin cần thiết thành phần để xem nó. Tham số %s sẽ được thay thế bằng các URI cá»§a tập tin đó, tham số %c sẽ được thay thế bằng IID cá»§a thành phần." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "The default terminal application to use for applications that require a terminal." msgstr "Ứng dụng thiết bị cuối mặc định cần dùng cho các ứng dụng cần thiết thiết bị cuối." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Äối số thá»±c hiện cần dùng cho ứng dụng thiết bị cuối mặc định" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Chạy lệnh trong thiết bị cuối" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các URL kiểu « aim », nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các URL kiểu « callto » (gá»i đến), nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các URL kiểu « ghelp » (trợ giúp g), nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « h323 », nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « http », nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « https », nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « info » (thông tin), nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các URL kiểu « mailto » (gởi thư cho), nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các URL kiểu « man » (trang hướng dẫn), nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Lệnh được dùng để xá»­ lý các URL kiểu « trash » (rác), nếu bật." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Bá»™ xá»­ lý cho URL « aim »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Bá»™ xá»­ lý cho URL « callto » (gợi đến)" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Bá»™ xá»­ lý cho URL « ghelp » (trợ giúp g)" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Bá»™ xá»­ lý cho URL « h323 »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Bá»™ xá»­ lý cho URL « http »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Bá»™ xá»­ lý cho URL « https »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Bá»™ xá»­ lý cho URL « info » (thông tin)" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Bá»™ xá»­ lý cho URL « mailto » (gởi thư cho)" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Bá»™ xá»­ lý cho URL « man » (trang hướng dẫn)" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Bá»™ xá»­ lý cho URL « trash » (rác)" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « aim »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "True if the command specified in the \"command\" key should handle \"callto\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « callto » (gợi đến)." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « ghelp » (trợ giúp g)." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "True if the command specified in the \"command\" key should handle \"h323\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « h323 »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "True if the command specified in the \"command\" key should handle \"http\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « http »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "True if the command specified in the \"command\" key should handle \"https\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « https »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "True if the command specified in the \"command\" key should handle \"info\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « info » (thông tin)." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "True if the command specified in the \"command\" key should handle \"mailto\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « mailto » (gởi thư cho)." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "True if the command specified in the \"command\" key should handle \"man\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « man » (trang hướng dẫn)." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "True if the command specified in the \"command\" key should handle \"trash\" URLs." msgstr "Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « trash » (rác)." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « aim » hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « callto » (gợi đến) hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « ghelp » (trợ giúp g) hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « h323 » hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « http » hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « https » hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « info » (thông tin) hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « mailto » (gởi thư cho) hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « man » (trang hướng dẫn) hay không" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Lệnh được xác định có nên xá»­ lý URL « trash » (rác) hay không" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "Comma separated list of DNS-SD domains that should be visible in the \"network:///\" location." msgstr "Danh sách các miá»n DNS-SD, định giá»›i bằng dấu phẩy, nên được hiển thị trong địa Ä‘iểm « network:// »." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Những miá»n thêm nÆ¡i cần tìm dịch vụ DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Cách hiển thị dịch vụ DNS-SD cục bá»™" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Giá trị có thể là:\n" " • merged — đã phối hợp.\n" " • separate — riêng,\n" " • disabled — đã tắt." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Xác thá»±c sá»± kết nối đến máy phục vụ á»§y nhiệm" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL cấu hình tá»± động á»§y nhiệm" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Bật chạy thiết lập á»§y nhiệm khi truy cập HTTP qua Mạng." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Tên máy á»§y nhiệm FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Cổng á»§y nhiệm FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Tên máy á»§y nhiệm HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Mật khẩu á»§y nhiệm HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Cổng á»§y nhiệm HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Tên ngưá»i dùng á»§y nhiệm HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "If true, then connections to the proxy server require authentication. The username/password combo is defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "Nếu đúng, má»i sá»± kết nối đến máy phục vụ á»§y nhiệm cần thiết xác thá»±c. Tổ hợp tên ngưá»i dùng và mật khẩu được định nghÄ©a bằng « /system/http_proxy/authentication_user » và « /system/http_proxy/authentication_password »." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Máy khác á»§y nhiệm" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Mật khẩu để gởi qua là xác thá»±c khi dùng á»§y nhiệm HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Chế độ cấu hình á»§y nhiệm" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Tên máy á»§y nhiệm SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Cổng á»§y nhiệm SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Tên máy á»§y nhiệm HTTP bảo mật" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Cổng á»§y nhiệm HTTP bảo mật" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." msgstr "" "Hãy chá»n chế độ cấu hình á»§y nhiệm. Giá trị được há»— trợ là:\n" " • none — không có,\n" " • manual — tá»± làm,\n" " • auto — tá»± động." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Tên cá»§a máy qua đó cần chạy á»§y nhiệm FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Tên cá»§a máy qua đó cần chạy á»§y nhiệm HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Tên cá»§a máy qua đó cần chạy á»§y nhiệm HTTP bảo mật." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Tên cá»§a máy qua đó cần chạy á»§y nhiệm SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." msgstr "Cổng trên máy được định nghÄ©a bởi « /system/http_proxy/host » qua đó cần chạy á»§y nhiệm." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." msgstr "Cổng trên máy được định nghÄ©a bởi « /system/ftp_proxy/host » qua đó cần chạy á»§y nhiệm." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." msgstr "Cổng trên máy được định nghÄ©a bởi « /system/proxy/secure_host » qua đó cần chạy á»§y nhiệm." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." msgstr "Cổng trên máy được định nghÄ©a bởi « /system/proxy/socks_host » qua đó cần chạy á»§y nhiệm." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "Khóa này chứa danh sách các máy được kết nối trá»±c tiếp, hÆ¡n là qua á»§y nhiệm (nếu nó hoạt động). Giá trị có thể là tên máy, miá»n (dùng ký tá»± đại diện ban đầu như « *.phu.com »), địa chỉ IP cá»§a máy (cả IPv4 lẫn IPv6) và địa chỉ mạng có mặt nạ mạng (như « 192.168.0.0/24 »)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL cung cấp giá trị cấu hình á»§y nhiệm." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Dùng á»§y nhiệm HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Tên ngưá»i dùng để gởi qua là xác thá»±c khi dùng á»§y nhiệm HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Nhóm làm việc SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in." msgstr "Nhóm làm việc chạy mạng Windows hay miá»n chứa ngưá»i dùng này. Ngưá»i dùng có lẽ cần phải đăng xuất rồi đăng nhập lại để dùng má»™t nhóm làm việc má»›i." gnome-vfs-2.24.4/po/pt_BR.po0000644000175000001440000015223511354402652012417 00000000000000# Brazilian Portuguese translation of gnome-vfs. # Copyright (C) 1999-2007 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # Alexandre Hautequest , 1999. # Gustavo Maciel Dias Vieira , 2000-2001. # David Barzilay , 2003. # Everson Santos Araujo , 2004. # Raphael Higino , 2004-2005, 2007. # Evandro Fernandes Giovanini , 2006. # Leonardo Ferreira Fontenelle , 2006, 2009. # André Gondim , 2009. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-30 20:49-0200\n" "PO-Revision-Date: 2009-09-29 00:07-0300\n" "Last-Translator: André Gondim \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volume ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u possui caracteres NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u não possui nome de método." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u não possui marca de fim de opções." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u possui opções desconhecidas %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u não possui nome de módulo." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Não foi localizado o arquivo de configuração '%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d análise abortada." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volume AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volume AFS de rede" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volume auto-detectado" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volume Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Unidade de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD de áudio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volume de dispositivo de hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volume EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volume eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volume Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volume Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volume Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volume MS-DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volume BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volume FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volume MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volume CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volume CD-ROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volume JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volume Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volume de sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volume de memória" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volume Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volume NFS de rede" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volume Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volume Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volume Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volume Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volume Windows compartilhado" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volume SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volume de DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volume Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volume Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volume Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volume Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volume Temporário" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volume DOS atualizado" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volume Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volume Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volume Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volume XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volume CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Desconhecido" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volume %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Unidade %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Unidade %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Unidade de Disquete" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Unidade Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Unidade Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Unidade Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Unidade SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Unidade Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Unidade Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pendrive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Reprodutor de música %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Câmera Digital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unidade" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s Externo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disco CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disco CD-R virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disco CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disco CD-RW virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disco CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disco DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disco DVD-RAM virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disco DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disco DVD-R virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disco DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disco DVD-RW virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disco DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disco DVD+R virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disco DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disco DVD+RW virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disco DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "CD de Ãudio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volume Removível %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tipo de operação %u desconhecida" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Não é possível criar pipe para abrir GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tipo de trabalho %u desconhecido" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operação paralizada" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Função obsoleta. Não existe mais suporte para que o usuário modifique o " "banco de dados MIME." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Não foi possível analisar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Mais erros de análise serão ignorados." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nenhum erro" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Arquivo não localizado" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Erro genérico" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Erro interno" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parâmetros inválidos" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operação não suportada" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Erro de E/S" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Dados corrompidos" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formato inválido" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Identificador inválido de arquivo" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Arquivo muito grande" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Sem espaço no dispositivo" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistema de arquivos somente-leitura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI inválido" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Arquivo não aberto" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Modo de abertura inválido" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Acesso negado" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Excesso de arquivos abertos" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fim de arquivo" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Não é um diretório" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operação em andamento" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operação interrompida" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "O arquivo existe" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Vínculos circulares localizados" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operação não permitida" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "É um diretório" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Memória insuficiente" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Máquina não localizada" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Máquina com nome inválido" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Máquina sem endereço" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Falha no login" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operação cancelada" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Diretório ocupado" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Diretório não vazio" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Excesso de vínculos" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Sistema de arquivos somente-leitura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Não no mesmo sistema de arquivos" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nome muito extenso" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Serviço não disponível" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Solicitação torna obsoletos os dados do serviço" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Erro de protocolo" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Não foi possível localizar o servidor de domínio" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nenhuma ação padrão associada" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Não há manipulador para o esquema de URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Erro ao analisar a linha de comando" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Erro ao lançar o comando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Tempo limite atingido" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Erro no servidor de nomes" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "O recurso está bloqueado" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Chamada de função obsoleta" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nome de arquivo inválido" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Não é um vínculo simbólico" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Erro desconhecido" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode inválido)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquete" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disco" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Unidade USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Unidade IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Câmera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volume Raiz" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD de áudio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volume desconhecido" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Servidor de rede" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Não foi possível montar a unidade de disquete. Provavelmente não há disquete " "no unidade." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Não foi possível montar o volume. Provavelmente não há mídia no dispositivo." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Não foi possível montar a unidade de disquete. Provavelmente o disquete está " "formatado de uma forma tal que não pode ser montado." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Não foi possível montar o volume. Se a unidade for criptografada, então foi " "usada uma senha ou chave incorreta." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Não foi possível montar o volume selecionado. Provavelmente o volume está " "formatado de uma forma tal que não pode ser montado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Não foi possível montar a unidade de disquete selecionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Não foi possível montar o volume selecionado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Não foi possível desmontar o volume selecionado. Provavelmente o volume está " "em uso por um ou mais programas." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Não foi possível desmontar o volume selecionado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Falha ao ler dados do processo filho %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Não foi possível montar em um pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Erro não esperado em select() ao ler dados de um processo filho (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Não foi possível enviar senha para o processo de montagem." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Erro não esperado em waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Falha ao iniciar o comando" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Não foi possível ejetar a mídia" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Não foi possível desmontar do servidor" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rede" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Início" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistema de Arquivos" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d desconhecido" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rede Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "A identidade do computador remoto (%s) é desconhecida." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Isso acontece quando você se realiza o login em um computador pela primeira " "vez.\n" "\n" "A identidade enviada pelo computador remoto é %s. Se você quer ter certeza " "absoluta de que é seguro continuar, entre em contato com o administrador do " "sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Efetuar login mesmo assim" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancelar Login" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Não foi localizado arquivo de configurações válido em %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Use a variável de ambiente %s para especificar uma localização diferente.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Seu proxy de HTTP requer que você efetue login.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Você deve efetuar login para acessar \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Sua senha será transmitida sem criptografia." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Sua senha será transmitida criptografada." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Você deve efetuar login para acessar %s domínio %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Você deve efetuar login para acessar %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplicativo padrão para visualização de componentes" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplicativo padrão de terminal" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argumento exec para terminal padrão" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "O aplicativo para ser usado na visualização de arquivos que requerem um " "componente para serem visualizados. O parâmetro %s será substituído pelos " "URIs dos arquivos e o parâmetro %c será substituído pelo IID do componente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "O terminal padrão para ser utilizado por aplicativos que requerem um " "terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "O argumento exec para o aplicativo padrão de terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Executar o comando em um terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"aim\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"callto\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"ghelp\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"h323\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"http\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"https\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"info\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"mailto\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"man\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "O comando usado para manipular URLs \"trash\", se habilitado." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "O manipulador para URLs \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "O manipulador para URLs \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "O manipulador para URLs \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "O manipulador para URLs \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "O manipulador para URLs \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "O manipulador para URLs \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "O manipulador para URLs \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "O manipulador para URLs \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "O manipulador para URLs \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "O manipulador para URLs \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" (comando) deve " "manipular URLs \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Verdadeiro se o comando usado para manipular esse tipo de URL deve ser " "executado em um terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Se o comando especificado deve manipular URLs \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Se o comando especificado deve manipular URLs \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Se o comando especificado deve manipular URLs \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Se o comando especificado deve manipular URLs \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Se o comando especificado deve manipular URLs \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Se o comando especificado deve manipular URLs \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Se o comando especificado deve manipular URLs \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Se o comando especificado deve manipular URLs \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Se o comando especificado deve manipular URLs \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Se o comando especificado deve manipular URLs \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Lista separada por vírgulas de domínios DNS-SD que devem ser visíveis na " "localização \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domínios extras para procurar por serviços DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Como exibir o serviço DNS-SD local" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Valores possíveis são \"merged\" (junto), \"separate\" (à parte) e \"disabled" "\" (desabilitado)." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Conexões de proxy autenticadas" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuração automática de proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Ativa configurações de proxy ao acessar HTTP na Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nome de máquina do proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Porta do proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nome de máquina do proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Senha do proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Porta do proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Usuário do proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Se verdadeiro, as conexões ao servidor proxy requerem autenticação. A " "combinação usuário/senha é definida por \"/system/http_proxy/" "authentication_user\" e \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Servidores não-proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Senha para ser enviada na autenticação ao realizar proxy de HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Modo de configuração do proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nome de máquina do proxy de SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Porta do proxy de SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nome de máquina para proxy de HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Porta para proxy de HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Selecione o modo de configuração do proxy. Valores aceitos são \"none" "\" (nenhum), \"manual\" (manual), \"auto\" (automático)." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "O nome da máquina para acessar o proxy de FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "O nome da máquina para acessar o proxy de HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "O nome da máquina para acessar o proxy de HTTP seguro." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "O nome da máquina para acessar o proxy de SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "A porta na máquina definida por \"/system/http_proxy/host\" que você " "acessará o proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "A porta na máquina definida por \"/system/http_proxy/ftp_host\" que você " "acessará o proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "A porta na máquina definida por \"/system/http_proxy/secure_host\" que você " "acessará o proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "A porta na máquina definida por \"/system/http_proxy/socks_host\" que você " "acessará o proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Esse campo contém a lista de máquinas que são conectadas diretamente, em vez " "de via proxy (se estiver ativo). Os valores podem ser nomes de máquina, " "domínios (usando um coringa inicial como *.foo.com.br), endereços IP (tanto " "IPv4 quanto IPv6) e endereços com uma máscara de rede (algo como " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL que fornece os valores de configuração do proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Usar proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Nome de usuário para ser enviado na autenticação ao realizar proxy de HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grupo de trabalho SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "O grupo de trabalho de rede Windows ou domínio do qual o usuário faz parte. " "Para que um grupo de trabalho tenha total efeito, o usuário pode precisar " "logar novamente." #~ msgid "Could not initialize Bonobo" #~ msgstr "Não foi possível iniciar o Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Não foi possível iniciar gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "Fábrica padrão de Monikers" #~ msgid "file MonikerExtender" #~ msgstr "arquivo MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "moniker genérico do Gnome VFS" #~ msgid "generic file moniker" #~ msgstr "moniker genérico de arquivo" #~ msgid "Display SCSI drives" #~ msgstr "Exibir unidades SCSI" #~ msgid "Display SCSI optical drives" #~ msgstr "Exibir unidades ópticas SCSI" #~ msgid "Display drives with removable media" #~ msgstr "Exibir unidades com mídia removível" #~ msgid "Display external drives" #~ msgstr "Exibir unidades externas" #~ msgid "Display internal hard drives" #~ msgstr "Exibir discos rígidos internos" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Se devem ser exibidas unidades ópticas SCSI mesmo se /system/storage/" #~ "display_scsi_drives estiver definido como FALSE." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "" #~ "Se devem ser exibidas unidades e volumes montáveis de unidades SCSI." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Se devem ser exibidas unidades e volumes montáveis de unidades com mídia " #~ "removível (p. ex.: unidades em que a mídia pode ser inserida ou removida)." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Se devem ser exibidas unidades ou volumes montáveis de discos rígidos " #~ "externos (p. ex.: unidades hotplug; p. ex. unidades que podem ser " #~ "conectadas e desconectadas enquanto o sistema está ligado)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Se devem ser exibidas unidades ou volumes montáveis de discos rígidos " #~ "internos (unidades ópticas não SCSI são sempre exibidas)." #~ msgid "The window workgroup the user is part of" #~ msgstr "O grupo de trabalho Windows que o usuário participa" #~ msgid "Optical Disc" #~ msgstr "Disco óptico" #~ msgid "Memory Stick Media" #~ msgstr "Mídia cartão de memória" #~ msgid "Smart Media Media" #~ msgstr "Mídia Smart Media" #~ msgid "Mac OS disk" #~ msgstr "Disco Mac OS" #~ msgid "Mac OS X disk" #~ msgstr "Disco Mac OS X" #~ msgid "Windows Disk" #~ msgstr "Disco Windows" #~ msgid "Linux Disk" #~ msgstr "Disco Linux" #~ msgid "File could not be opened: %s" #~ msgstr "O arquivo não pôde ser aberto: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "Falha ao abrir o arquivo '%s': %s" #~ msgid "File is empty" #~ msgstr "O arquivo está vazio" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "As entradas do .desktop contêm a linha '%s' que não é uma entrada, grupo " #~ "ou comentário" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "O arquivo .desktop não começa com um grupo inicial válido" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "As entradas do .desktop contêm a linha '%s' que não está em UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "As entradas do .desktop contêm uma codificação desconhecida '%s'" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "As entradas do .desktop não têm um grupo '%s'" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "As entradas do .desktop não têm uma chave '%s'" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "As entradas do .desktop contêm a chave '%s' que tem um valor que não pode " #~ "ser interpretado." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "As entradas do .desktop não contêm valores traduzidos para a chave '%s' " #~ "com o local '%s'." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "" #~ "As entradas do .desktop contêm uma seqüência de escape '%s' inválida" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "" #~ "As entradas do .desktop contêm o caractere de escape no fim da linha" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "O valor '%s' não pode ser interpretado como um número." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "O valor '%s' não pode ser interpretado como um booleano." #~ msgid "Applications" #~ msgstr "Aplicativos" #~ msgid "Cards" #~ msgstr "Placas" #~ msgid "Files" #~ msgstr "Arquivos" #~ msgid "Folders" #~ msgstr "Pastas" #~ msgid "Help" #~ msgstr "Ajuda" #~ msgid "Hosts" #~ msgstr "Máquinas" #~ msgid "Links" #~ msgstr "Ligações" #~ msgid "Mail" #~ msgstr "Correspondência" #~ msgid "Tools" #~ msgstr "Ferramentas" #~ msgid "Windows" #~ msgstr "Janelas" #~ msgid "CD Disc" #~ msgstr "Disco CD" #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "O comando usado para manipular URLs HTTP, se habilitado." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "O comando usado para manipular URLs HTTPS, se habilitado." #~ msgid "The handler for HTTP URLs" #~ msgstr "O manipulador para URLs HTTP" #~ msgid "The handler for HTTPS URLs" #~ msgstr "O manipulador para URLs HTTPS" #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Verdadeiro se o comando especificado na chave \"command\" deve manipular " #~ "URLs HTTP." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Verdadeiro se o comando especificado na chave \"command\" deve manipular " #~ "URLs HTTPS." #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "Se o comando especificado deve manipular URLs HTTP" #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "Se o comando especificado deve manipular URLs HTTPS" #~ msgid "H323 URL handler" #~ msgstr "Manipulador de URL H323" #~ msgid "HTTP URL handler" #~ msgstr "Manipulador de URL HTTP" #~ msgid "HTTPS URL handler" #~ msgstr "Manipulador de URL HTTPS" #~ msgid "aim URL handler" #~ msgstr "Manipulador de URL aim" #~ msgid "callto URL handler" #~ msgstr "Manipulador de URL callto" #~ msgid "ghelp URL handler" #~ msgstr "Manipulador de URL ghelp" #~ msgid "info URL handler" #~ msgstr "Manipulador de URL info" #~ msgid "mailto URL handler" #~ msgstr "Manipulador de URL mailto" #~ msgid "man URL handler" #~ msgstr "Manipulador de URL man" #~ msgid "trash URL handler" #~ msgstr "Manipulador de URL trash" gnome-vfs-2.24.4/po/sr@ije.po0000644000175000001440000013341711334251016012620 00000000000000# Serbian translation of gnome-vfs # Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004. # # This file is distributed under the same license as the gnome-vfs package. # # Maintainer: Душан Живојнов # Reviewed on 2004-02-03 by: Данило Шеган # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-02-25 14:34+0100\n" "Last-Translator: Bojan Suzic \n" "Language-Team: Serbian (sr) \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" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "Ðе могу да покренем Бонобо" # Гномов Виртуелни СиÑтем Датотека — ВСД? Или Гномово „опонашање ÑиÑтема датотека“ — ОСД? #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "Ðе могу да покренем Гномов VFS" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "ИСО 9660 диÑк" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d Ñадржи NUL знакове." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d не Ñадржи име метода." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d не Ñадржи ознаку краја опција." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%d кориÑти непознате опције %s." #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d не Ñадржи име модула." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Датотека Ñа подешавањима „%s“ није нађена: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "AFFS диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "Мрежни AFS диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "Самопрепознати диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "ЦД уређај" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "Дигитални звучни ЦД" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "ДиÑк хардверÑког уређаја" # bug: does it differentiate between Hurd Ext2 and Linux Ext2? #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Ð›Ð¸Ð½ÑƒÐºÑ Ext2 диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Ð›Ð¸Ð½ÑƒÐºÑ Ext3 диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "МСДОС диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "МекОС диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "ЦД" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Hsfs ЦД" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "ЈФС диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Виндоуз ÐТ диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "СиÑтемÑки диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "МеморијÑки диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "ÐœÐ¸Ð½Ð¸ÐºÑ Ð´Ð¸Ñк" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "Мрежни ÐФС диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Ðетвер диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "Ð›Ð¸Ð½ÑƒÐºÑ Ð Ð°Ñ˜Ð·ÐµÑ€Ð¤Ð¡ диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "Дељени Виндоуз диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "СуперМонтирани диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "ДВД диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "СолариÑ/БСД диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Ð¡Ð¾Ð»Ð°Ñ€Ð¸Ñ Udfs диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Ð¡Ð¾Ð»Ð°Ñ€Ð¸Ñ Pcfs диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 #, fuzzy msgid "Sun SAM-QFS Volume" msgstr "AFFS диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "Унапређени DOS диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Windows VFAT диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Xenix диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "Ð›Ð¸Ð½ÑƒÐºÑ XFS диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "XIAFS диÑк" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Ðепознат" # bug: "op" should be "operation" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Ðепознат тип операције %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ðе могу направити цијевку за отворени GIOChannel: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Ðепозната врÑта поÑла %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "Операција зауÑтављена" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Ðе могу обрадити: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "ОÑтале грешке у обради ће бити занемарене." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Ðема грешке" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Датотека није нађена" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Општа грешка" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Унутрашња грешка" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "ÐеиÑправни параметри" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "Операција није подржана" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "У/И грешка" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Подаци оштећени" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Облик није иÑправан" # bug: is file handle the same as file descriptor? #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Лоша ручка датотеке" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Датотека је превелика" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Ðије оÑтало Ñлободног проÑтора на уређају" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "СиÑтем датотека Ñамо за читање" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "ÐеиÑправна адреÑа" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Датотека није отворена" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Ðачин отварања није иÑправан" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "ПриÑтип одбијен" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "Превише отворених датотека" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Крај датотеке" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Ðије директоријум" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Операција у току" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "Операција прекинута" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Датотека поÑтоји" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Пронађене кружне везе" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Операција није дозвољена" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "ЈеÑте директоријум" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Ðема довољно меморије" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Домаћин није нађен" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Име домаћина није иÑправно" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "Домаћин нема адреÑу" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Пријава није уÑпјела" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "Операција обуÑтављена" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Заузет директоријум" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Директоријум није празан" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Превише веза" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "СиÑтем датотека Ñамо за читање" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Ðије на иÑтом ÑиÑтему датотека" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Име је предугачко" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "УÑлуга није доÑтупна" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Захтјев заÑтарјева податке уÑлуге" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Грешка у протоколу" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Ðе могу пронаћи главни разгледач" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Ðије додјељена уобичајена акција" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "Ðема руковаоца за врÑту адреÑе (URL-а)" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Грешка при обради наредбе" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Грешка при покретању наредбе" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "Општа грешка" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Ðепозната грешка" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u бајт" msgstr[1] "%u бајта" msgstr[2] "%u бајтова" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "%.1f КБ" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f МБ" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f ГБ" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (неиÑправан Уникод)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "ДиÑкета" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 #, fuzzy msgid "CD-R" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 #, fuzzy msgid "CD-RW" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 #, fuzzy msgid "DVD-ROM" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 #, fuzzy msgid "DVD-RAM" msgstr "ЦД уређај" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 #, fuzzy msgid "CD-ROM/DVD-ROM" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 #, fuzzy msgid "CD-ROM/DVD-RAM" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 #, fuzzy msgid "CD-ROM/DVD-R" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 #, fuzzy msgid "CD-ROM/DVD-RW" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #, fuzzy msgid "CD-R/DVD-ROM" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 #, fuzzy msgid "CD-RW/DVD-ROM" msgstr "ЦД читач" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 #, fuzzy msgid "USB Drive" msgstr "Зип диÑк" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" # Чаробни штапић? :) #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "МеморијÑки штапић" # Чаробни штапић? :) #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 #, fuzzy msgid "Smart Media" msgstr "МеморијÑки штапић" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "Зип диÑк" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Фотоапарат" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "ОÑновни диÑк" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "Звучни ЦД" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "Ðепознати диÑк" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "Мрежни Ñервер" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ðе могу да прикључим диÑкету. Вјероватно диÑкета није у уређају. " #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ðе могу да прикључим диÑк. Вјероватно нема медија у уређају. " #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ðе могу да прикључим диÑкету. Вјероватно је диÑкета у запиÑу који Ñе не може " "читати." #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ðе могу да прикључим изабрани диÑк. Вјероватно је диÑк у запиÑу који Ñе не " "може читати." #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "Ðе могу да прикључим изабрану диÑкету." #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "Ðе могу да прикључим изабрани диÑк." #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "Ðе могу да иÑкључим изабрани диÑк." #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "ÐеуÑпјешно покретање наредбе" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "Ðе могу да избацим медиј" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "Ðе могу да иÑкључим везу Ñа Ñервером" #: modules/computer-method.c:545 msgid "Network" msgstr "Мрежа" #: modules/computer-method.c:563 msgid "Home" msgstr "Лични" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "СиÑтем датотека" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ðепознато GnomeVFSSeekPosition %d" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Виндоуз мрежа" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "ÐиÑам нашао иÑправну датотеку Ñа подешавањима у %s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "КориÑтите промјенљиву окружења %s да назначите другу путању.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Производња обичног надимка" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "датотека MonikerExtender" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "обичан Гном VFS надимак" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "обичан надимак датотеке" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Подразумјевани програм за преглед дијелова" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Подразумјевани терминалÑки програм" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Ðргумент извршавања за подразумјевани терминал" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Програм који Ñе кориÑти за прегледање датотека које захтјевају компоненту за " "преглед. Параметар %s ће бити замјењен адреÑом датотеке, а параметар %c ће " "бити замјењен IID-ом компоненте." #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Подразумјевани терминалÑки програм који Ñе кориÑти за програме којима је " "неопходан терминал." #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Ðргумент извршавања за подразумјевани терминалÑки програм." #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 #, fuzzy msgid "Run the command in a terminal" msgstr "Покрени програм у терминалу" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 #, fuzzy msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Укључите ако желите да програм наведен у „command“ барата terminal адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 #, fuzzy msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Укључите ако желите да програм наведен у „command“ барата terminal адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 #, fuzzy msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Укључите ако желите да програм наведен у „command“ барата terminal адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 #, fuzzy msgid "The handler for \"aim\" URLs" msgstr "Баратај man адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 #, fuzzy msgid "The handler for \"callto\" URLs" msgstr "Баратај callto адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 #, fuzzy msgid "The handler for \"ghelp\" URLs" msgstr "Баратај ghelp адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 #, fuzzy msgid "The handler for \"h323\" URLs" msgstr "Баратај H323 адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 #, fuzzy msgid "The handler for \"http\" URLs" msgstr "Баратај ghelp адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 #, fuzzy msgid "The handler for \"https\" URLs" msgstr "Баратај ghelp адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 #, fuzzy msgid "The handler for \"info\" URLs" msgstr "Баратај info адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 #, fuzzy msgid "The handler for \"mailto\" URLs" msgstr "Баратај mailto адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 #, fuzzy msgid "The handler for \"man\" URLs" msgstr "Баратај man адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 #, fuzzy msgid "The handler for \"trash\" URLs" msgstr "Баратај trash адреÑама" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата man адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата callto адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата ghelp адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата H323 адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата ghelp адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата ghelp адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата info адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата mailto адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата man адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Укључите ако желите да програм наведен у „command“ барата trash адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 #, fuzzy msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Укључите ако желите да програм наведен у „command“ барата terminal адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 #, fuzzy msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата man адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 #, fuzzy msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата callto адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 #, fuzzy msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата ghelp адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 #, fuzzy msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата H323 адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 #, fuzzy msgid "Whether the specified command should handle \"http\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата ghelp адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 #, fuzzy msgid "Whether the specified command should handle \"https\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата trash адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 #, fuzzy msgid "Whether the specified command should handle \"info\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата info адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 #, fuzzy msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата mailto адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 #, fuzzy msgid "Whether the specified command should handle \"man\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата man адреÑама." #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 #, fuzzy msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" "Укључите ако желите да програм наведен у „command“ барата trash адреÑама." #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Идентификуј везе Ñа поÑредничким Ñервером" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ÐдреÑа за Ñамоподешавање поÑредника" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Укључује подешавања поÑредника при приÑтупу вебу преко Интернета." #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Име FTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Порт FTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Име HTTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Лозинка HTTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Порт HTTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "КориÑник HTTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Уколико је поÑтављено, везе Ñа поÑредничким Ñервером Ñе идентификују. Пар " "кориÑник/лозинка Ñе узима из „/system/http_proxy/authentication_user“ и „/" "system/http_proxy/authentication_password“." #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "БеÑпоÑредничке адреÑе" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Лозинка која Ñе кориÑти за идентификацију код веб поÑредника." #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Режим подешавања поÑредника" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Име SOCKS поÑредника" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Порт SOCKS поÑредника" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Име безбједног HTTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Порт безбједног HTTP поÑредника" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Изаберите режим подешавања поÑредника. Допуштене вриједноÑти Ñу „none“, " "„manual“ и „auto“." #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Име рачунара FTP поÑредника." #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Име рачунара за веб (HTTP) поÑредовање." #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Име рачунара за безбедно веб (HTTPS) поÑредовање." #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Име рачунара SOCKS поÑредника." #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Порт машине одређене помоћу „/system/http_proxy/host“ која је поÑредник." #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Порт машине одређене помоћу „/system/proxy/ftp_proxy“ која је поÑредник." #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Порт машине одређене помоћу „/system/proxy/secure_proxy“ која је поÑредник." #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Порт машине одређене помоћу „/system/proxy/socks_proxy“ која је поÑредник." #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Овај кључ Ñадржи ÑпиÑак рачунара који Ñу непоÑредно повезани, умјеÑто путем " "поÑредника (уколико је у дејÑтву). Ове вриједноÑти могу бити имена рачунара, " "домени (помоћу почетних навода као што је *.нешто.ију), ИП адреÑе рачунара " "(било ИПв4 било ИПв6) и адреÑе мрежа уз мрежну маÑку (нешто као што је " "192.168.0.0/24)." #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "ÐдреÑа која обезбеђује вриједноÑти за подешавање поÑредника." #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "КориÑти веб поÑредника" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "КориÑничко име које Ñе шаље при идентификацији код веб поÑредника." #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "СМБ радна група" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "Виндоуз радна група које је кориÑник члан" #, fuzzy #~ msgid "CD-ROM Disc" #~ msgstr "ЦД уређај" #, fuzzy #~ msgid "CD-R Disc" #~ msgstr "ЦД уређај" #, fuzzy #~ msgid "CD-RW Disc" #~ msgstr "ЦД уређај" #, fuzzy #~ msgid "DVD-ROM Disc" #~ msgstr "ЦД уређај" #, fuzzy #~ msgid "Audio Disc" #~ msgstr "Звучни ЦД" # Чаробни штапић? :) #, fuzzy #~ msgid "Memory Stick Media" #~ msgstr "МеморијÑки штапић" #, fuzzy #~ msgid "Floppy Disk" #~ msgstr "ДиÑкета" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "Прозори" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "Ðе могу обрадити: %s" # bug: inconsistent wording with above "Bookmark saving failed" [eg. "Failed to save a bookmark" would be one way to solve it] #~ msgid "Failed to open file '%s': %s" #~ msgstr "ÐеуÑпjешно отварање датотеке „%s“: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "Датотека поÑтоји" # bug: inconsistent wording with above "Bookmark saving failed" [eg. "Failed to save a bookmark" would be one way to solve it] #, fuzzy #~ msgid "Failed to read from file '%s': %s" #~ msgstr "ÐеуÑпjешно отварање датотеке „%s“: %s" #~ msgid "Applications" #~ msgstr "Програми" #~ msgid "Cards" #~ msgstr "Карте" #~ msgid "Files" #~ msgstr "Датотеке" #~ msgid "Folders" #~ msgstr "Директоријуми" #~ msgid "Help" #~ msgstr "Помоћ" #~ msgid "Hosts" #~ msgstr "Рачунари" #~ msgid "Links" #~ msgstr "Везе" #~ msgid "Mail" #~ msgstr "Пошта" #~ msgid "Tools" #~ msgstr "Ðлати" #~ msgid "Windows" #~ msgstr "Прозори" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "Баратај HTTP адреÑама" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "Баратај HTTPS адреÑама" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Укључите ако желите да програм наведен у „command“ барата HTTP адреÑама." #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Укључите ако желите да програм наведен у „command“ барата HTTPS адреÑама." #, fuzzy #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "" #~ "Укључите ако желите да програм наведен у „command“ барата HTTP адреÑама." #, fuzzy #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "" #~ "Укључите ако желите да програм наведен у „command“ барата HTTPS адреÑама." #~ msgid "H323 URL handler" #~ msgstr "Руковалац H323 адреÑама" #~ msgid "HTTP URL handler" #~ msgstr "Руковалац HTTP адреÑама" #~ msgid "HTTPS URL handler" #~ msgstr "Руковалац HTTPS адреÑама" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "Руковалац man адреÑама" #~ msgid "callto URL handler" #~ msgstr "Руковалац callto адреÑама" #~ msgid "ghelp URL handler" #~ msgstr "Руковалац ghelp адреÑама" #~ msgid "info URL handler" #~ msgstr "Руковалац info адреÑама" #~ msgid "mailto URL handler" #~ msgstr "Руковалац mailto адреÑама" #~ msgid "man URL handler" #~ msgstr "Руковалац man адреÑама" #~ msgid "trash URL handler" #~ msgstr "Руковалац trash адреÑама" #~ msgid "Bookmark saving failed (%s)" #~ msgstr "ÐеуÑпjешно чување обележивача (%s)" #~ msgid "Could not get information for file '%s': %s" #~ msgstr "Ðе могу да Ñазнам податке о датотеци „%s“: %s" # bug: as above [inconsistent wording] #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "ÐеуÑпjешно учитавање Ñлике „%s“: разлог непознат, вjероватно оштећена " #~ "датотека Ñлике" gnome-vfs-2.24.4/po/id.po0000644000175000001440000013232711450220305011773 00000000000000# Indonesia translation of gnome-vfs. # Copyright (C) 2005 THE gnome-vfs'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-vfs package. # # Mohammad DAMT , 2005. # Ahmad Riza H Nst , 2006. # Andika Triwidada , 2009. # Dirgita , 2010. msgid "" msgstr "" "Project-Id-Version: gnome-vfs HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-07-27 12:33+0000\n" "PO-Revision-Date: 2010-08-29 10:57+0700\n" "Last-Translator: Dirgita \n" "Language-Team: GNOME Indonesian Translation Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Lokalize 1.1\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volume ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u mengandung karakter NUL (kosong)" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u tidak memiliki nama metode." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u tidak memiliki penanda akhir opsi." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u memiliki opsi tak dikenal %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u tidak memiliki nama modul." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Berkas konfigurasi `%s' tidak ditemukan: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d membatalkan penguraian." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volume AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volume Jaringan AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volume Deteksi Otomatis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volume Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Kandar CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Audio Digital" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volume Perangkat Keras" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volume EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volume eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volume Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volume Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volume Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volume MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volume BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volume FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volume MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volume CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volume Hsfs CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volume JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volume Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volume Sistem" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volume Memori" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volume Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volume Jaringan NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volume Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volume Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volume Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volume Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volume Berbagi Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volume SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volume DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volume Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volume Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volume Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volume SAM-QFS Sun" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volume Temporer" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volume DOS Ditingkatkan" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volume Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volume Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volume Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volume XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volume CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Tak Dikenal" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volume %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Kandar %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Kandar %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disket" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Kandar Flash Kompak" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Kandar Stik Memori" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Kandar Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Kandar SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Kandar Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Kandar Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Kandar Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Pemutar Musik %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Kamera Digital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Kandar" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s Eksternal" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Diska CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Diska CD-R Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Diska CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Diska CD-RW Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Diska CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Diska DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Diska DVD-RAM Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Diska DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Diska DVD-R Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Diska DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Diska DVD-RW Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Diska DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Diska DVD+R Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Diska DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Diska DVD+RW Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Diska DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Diska Audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Volume Dapat Dilepas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Jenis operasi %u tak dikenal" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Tidak bisa membuat pipa untuk membuka GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Jenis tugas %u tak dikenal" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operasi dihentikan" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Fungsi deprekasi. Modifikasi pengguna pada basis data MIME tidak lagi " "didukung." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Tidak dapat diurai: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Galat penguraian yang lain akan diabaikan." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Tidak ada galat" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Berkas tidak ditemukan" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Galat umum" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Galat internal" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parameter tidak sah" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operasi tidak didukung" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Galat I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Data rusak" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format tidak sah" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Penanganan berkas yang buruk" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Berkas terlalu besar" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Tidak ada ruang yang tersisa pada perangkat" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistem berkas hanya-baca" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI Salah" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Berkas tidak terbuka" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Mode pembukaan tidak sah" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Akses ditolak" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Terlalu banyak beras yang dibuka" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Akhir berkas" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Bukan direktori" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operasi sedang berlangsung" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operasi diinterupsi" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Berkas sudah ada" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Menghadapi taut yang berputar" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operasi tidak diperbolehkan" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Adalah direktori" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Tidak cukup memori" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Host tidak ditemukan" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Nama host tidak sah" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Host tidak memiliki alamat" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Log masuk gagal" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operasi dibatalkan" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Direktori sedang sibuk" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Direktori tidak kosong" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Terlalu banyak taut" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Sistem berkas hanya-baca" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Tidak pada sistem berkas yang sama" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nama terlalu panjang" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Layanan tidak tersedia" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Meminta data layanan yang tidak terpakai (usang)" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Galat protokol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Tidak menemukan peramban induk" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Tidak ada aksi utama yang diasosiasikan" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Tidak ada penangan untuk skema URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Galat ketika menguraikan baris perintah" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Galat ketika melaksanakan perintah" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Kehabisan waktu" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Galat pada server nama (nameserver)" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Sumber daya terkunci" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Memanggil fungsi deprekasi" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nama berkas tidak sah" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Bukan taut simbolik" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Galat tak dikenal" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bita" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unikode tidak sah)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disket" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Diska" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Kandar USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Kandar IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Stik Memori" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volume Root" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD Audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volume tak dikenal" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Server jaringan" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Tidak dapat mengaitkan disket. Mungkin tidak ada disket di dalam kandar." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Tidak dapat mengaitkan volume. Mungkin tidak ada media di dalam perangkat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Tidak dapat mengaitkan disket. Disket mungkin memiliki format yang tidak " "bisa dikaitkan." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Tidak dapat mengaitkan volume. Jika ini adalah kandar yang dienkripsi, sandi " "yang digunakan mungkin salah." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Tidak dapat mengaitkan volume. Volume mungkin memiliki format yang tidak " "bisa dikaitkan." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Tidak dapat mengaitkan disket." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Tidak dapat mengaitkan volume yang dipilih" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "Tidak dapat melepas kaitan volume. Volume sedang dipakai program lain." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Tidak dapat melepas kaitan volume yang dipilih." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Gagal membaca data dari anak proses %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Tidak dapat menjalankan proses kait pada pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Terjadi galat pada fungsi select() ketika membaca data dari anak proses (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Tidak dapat mengirim sandi pada proses kait." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Terjadi galat pada fungsi waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Gagal menjalankan perintah" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Tidak dapat mengeluarkan media" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Tidak dapat melepas kaitan server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Jaringan" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Rumah" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistem Berkas" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d Tidak Dikenal" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Jaringan Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identitas komputer jauh (%s) tidak dikenal" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ini terjadi ketika Anda memasuki komputer untuk pertama kalinya.\n" "\n" "Identitas yang dikirim oleh komputer jauh adalah %s. Apabila ingin lebih " "yakin bahwa telah aman untuk dilanjutkan, hubungilah administrator sistem." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Tetap Masuk" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Tidak Jadi Masuk" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Tidak menjumpai berkas pengaturan yang sah pada %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Memakai variabel lingkungan %s untuk menentukan lokasi yang berbeda.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Proksi HTTP Anda meminta untuk log masuk.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Anda harus masuk untuk mengakses \"%s\"\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Sandi milik Anda akan dikirim tanpa dienkripsi." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Sandi milik Anda akan dikirim dengan enkripsi." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Anda harus masuk untuk mengakses %s domain %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Anda harus masuk untuk mengakses %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplikasi utama untuk menampilkan komponen" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplikasi terminal baku" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argumen eksekusi untuk terminal utama" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Aplikasi untuk menampilkan berkas yang memerlukan komponen untuk melihatnya. " "Parameter %s akan diganti oleh URI berkas, parameter %c diganti oleh IID " "komponen." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "Aplikasi terminal utama untuk aplikasi yang memerlukan terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argumen eksekusi untuk aplikasi terminal utama." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Menjalankan perintah pada terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"aim\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"callto\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"ghelp\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"h323\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"http\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"https\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"info\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"mailto\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"main\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Perintah untuk menangani URL \"trash\", jika diaktifkan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Penangan untuk URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Penangan untuk URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Penangan untuk URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Penangan untuk URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Penangan untuk URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Penangan untuk URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Penangan untuk URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Penangan untuk URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Penangan untuk URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Penangan untuk URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Isikan nilai benar (true) apabila perintah pada kunci \"command\" dipakai " "untuk menangani URL \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini " "harus dijalankan dalam terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Apakah perintah yang diberikan dipakai untuk menangani URL \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Daftar domain DNS-SD (dipisahkan koma) yang akan ditampilkan pada lokasi " "\"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domain ekstra untuk mencari layanan DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Cara menampilkan layanan DNS-SD lokal" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Nilai yang mungkin adalah \"merged\", \"separated\", dan \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Otentikasi koneksi server proksi" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URl konfigurasi otomatis proksi" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Mengaktifkan pengaturan proksi saat mengakses HTTP melalui Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nama host proksi FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port proksi FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nama host proksi HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Sandi proksi HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port proksi HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nama pengguna proksi HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Jika bernilai benar (true), maka hubungan menuju server proksi harus " "diotentikasi. Pasangan nama pengguna/sandi ditentukan oleh \"/system/" "http_proxy/authentication_user\" dan \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Host nonproksi" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Sandi untuk menerapkan proksi terhadap HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mode konfigurasi proksi" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nama host proksi SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port proksi SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nama host proksi HTTP teracak" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port proksi HTTP teracak" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Memilih mode konfigurasi proksi. Nilai yang didukung antaranya \"none\", " "\"manual\", dan \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Nama mesin untuk melakukan proksi terhadap FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Nama mesin untuk melakukan proksi terhadap HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Nama mesin untuk melakukan proksi terhadap HTTP teracak." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Nama mesin untuk melakukan proksi terhadap socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port pada mesin yang ditentukan oleh \"/system/http_proxy/host\" yang Anda " "proksikan." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port pada mesin yang ditentukan oleh \"/system/proxy/ftp_host\" yang Anda " "proksikan." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port pada mesin yang ditentukan oleh \"/system/proxy/secure_host\" yang Anda " "proksikan." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port pada mesin yang ditentukan oleh \"/system/proxy/socks_host\" yang Anda " "proksikan." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Kunci ini mengandung daftar host yang terhubung secara langsung, ketimbang " "melalui proksi (jika aktif). Nilainya bisa nama host, domain (memakai wilkar " "seperti *.foo.com), alamat IP host (baik IPv4 maupun IPv6), serta alamat " "jaringan dengan netmask (seperti 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL yang menyediakan nilai konfigurasi proksi." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Menggunakan proksi HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Nama pengguna untuk menerapkan proksi terhadap HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Kelompok kerja (workgroup) SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Kelompok jaringan atau domain Windows di mana pengguna menjadi bagian di " "dalamnya. Untuk menjamin kelompok kerja yang baru dapat dioperasikan dengan " "benar, pengguna mungkin harus log keluar dan masuk kembali." gnome-vfs-2.24.4/po/en_GB.po0000644000175000001440000013152611354402652012363 00000000000000# English (British) translation. # Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-vfs package. # Gareth Owen 2004 # David Lodge 2004 # Bruce Cowan , 2010. msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-24 17:01+0000\n" "PO-Revision-Date: 2010-01-31 00:06+0100\n" "Last-Translator: Bruce Cowan \n" "Language-Team: British English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.5.1\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 Volume" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contains NUL characters." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u contains no method name." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u has no options endmarker." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u has unknown options %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u contains no module name." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Configuration file `%s' was not found: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d aborted parsing." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS Network Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Auto-detected Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM Drive" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Digital Audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Hardware Device Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "System Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Memory Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS Network Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows Shared Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Temporary Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Unknown" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s Volume" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Floppy Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s Music Player" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Digital Camera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "External %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Blank CD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Blank CD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Blank DVD-RAM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Blank DVD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Blank DVD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Blank DVD+R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Blank DVD+RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Removable Volume" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Unknown operation type %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Cannot create pipe for open GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Unknown job kind %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operation stopped" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Deprecated function. User modifications to the MIME database are no longer " "supported." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Could not parse: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "More parsing errors will be ignored." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "No error" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "File not found" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Generic error" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Internal error" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Invalid parameters" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Unsupported operation" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O error" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Data corrupted" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format not valid" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Bad file handle" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "File too big" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "No space left on device" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Read-only file system" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Invalid URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "File not open" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Open mode not valid" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Access denied" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Too many open files" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "End of file" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Not a directory" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operation in progress" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operation interrupted" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "File exists" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Looping links encountered" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operation not permitted" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Is a directory" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Not enough memory" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Host not found" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Host name not valid" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Host has no address" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Login failed" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operation cancelled" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directory busy" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Directory not empty" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Too many links" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Read only file system" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Not on the same file system" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Name too long" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Service not available" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Request obsoletes service's data" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protocol error" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Could not find master browser" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "No default action associated" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "No handler for URL scheme" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Error parsing command line" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Error launching command" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Timeout reached" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Nameserver error" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "The resource is locked" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Function call deprecated" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Invalid filename" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Not a symbolic link" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Unknown error" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (invalid Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Floppy" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB Drive" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 Drive" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Camera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root Volume" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Unknown volume" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Network server" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Unable to mount the floppy drive. There is probably no floppy in the drive." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Unable to mount the volume. There is probably no media in the device." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Unable to mount the selected floppy drive." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Unable to mount the selected volume." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Unable to unmount the selected volume." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Failed to read data from child process %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Couldn't run mount process in a pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Unexpected error in select() reading data from a child process (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Couldn't send password to mount process." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Unexpected error in waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Failed to start command" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Unable to eject media" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Unable to unmount connected server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Network" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Home" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Filesystem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Unknown GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows Network" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "The identity of the remote computer (%s) is unknown." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Log In Anyway" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancel Login" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Didn't find a valid settings file at %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Use the %s environment variable to specify a different location.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Your HTTP Proxy requires you to log in.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "You must log in to access \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Your password will be transmitted unencrypted." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Your password will be transmitted encrypted." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "You must log in to access %s domain %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "You must log in to access %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Default component viewer application" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Default terminal application" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec argument for default terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "The default terminal application to use for applications that require a " "terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "The exec argument to use for the default terminal application." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Run the command in a terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "The command used to handle \"aim\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "The command used to handle \"callto\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "The command used to handle \"ghelp\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "The command used to handle \"h323\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "The command used to handle \"http\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "The command used to handle \"https\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "The command used to handle \"info\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "The command used to handle \"mailto\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "The command used to handle \"man\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "The command used to handle \"trash\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "The handler for \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "The handler for \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "The handler for \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "The handler for \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "The handler for \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "The handler for \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "The handler for \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "The handler for \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "The handler for \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "The handler for \"trash\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "True if the command used to handle this type of URL should be run in a " "terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Whether the specified command should handle \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Whether the specified command should handle \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Whether the specified command should handle \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Whether the specified command should handle \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Whether the specified command should handle \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Whether the specified command should handle \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Whether the specified command should handle \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Whether the specified command should handle \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Whether the specified command should handle \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Whether the specified command should handle \"trash\" URLs" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Extra domains to look for DNS-SD services in" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "How to display local DNS-SD service" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Possible values are \"merged\", \"separate\" and \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Authenticate proxy server connections" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automatic proxy configuration URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Enables the proxy settings when accessing HTTP over the Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP proxy password" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP proxy username" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Non-proxy hosts" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Password to pass as authentication when doing HTTP proxying." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxy configuration mode" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS proxy port" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Secure HTTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Secure HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "The machine name to proxy FTP through." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "The machine name to proxy HTTP through." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "The machine name to proxy secure HTTP through." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "The machine name to proxy socks through." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL that provides proxy configuration values." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Use HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "User name to pass as authentication when doing HTTP proxying." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB workgroup" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." #~ msgid "Could not initialize Bonobo" #~ msgstr "Could not initialise Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Could not initialise gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "Standard Moniker factory" #~ msgid "file MonikerExtender" #~ msgstr "file MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "generic Gnome VFS moniker" #~ msgid "generic file moniker" #~ msgstr "generic file moniker" #~ msgid "The window workgroup the user is part of" #~ msgstr "The window workgroup the user is part of" gnome-vfs-2.24.4/po/fr.po0000644000175000001440000013573211354402652012023 00000000000000# French translation of gnome-vfs. # Copyright (C) 1999-2009 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # # Vincent Renardias , 1999-2000. # Sun G11n , 2002. # Christophe Merlet , 2000-2005. # Baptiste Mille-Mathias (crevette) , 2003-2004. # Benoît Dejean , 2006. # Stéphane Raimbault , 2007. # Robert-André Mauchin , 2007. # Nicolas Repentin , 2009. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.13.92\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-09-28 20:52+0000\n" "PO-Revision-Date: 2009-09-29 16:44+0100\n" "Last-Translator: Nicolas Repentin \n" "Language-Team: GNOME French Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n>1;\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volume ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contient des caractères NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ne contient aucun nom de méthode." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u n'a pas de marqueur de fin d'options." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u a des options inconnues %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ne contient pas de nom de module." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Le fichier de configuration « %s » n'a pas été trouvé : %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d : analyse abandonnée." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volume AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volume réseau AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volume auto-détecté" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volume Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Lecteur CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD audio numérique" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volume périphérique matériel" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volume EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volume eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volume Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volume Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volume Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volume MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volume BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volume FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volume MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volume CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volume CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volume JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volume Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volume système" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volume mémoire" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volume Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volume réseau NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volume Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volume Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volume Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volume Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volume partagé Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volume SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volume DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volume Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volume Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volume Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volume Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volume temporaire" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volume DOS étendu" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volume Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volume Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volume Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volume XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volume CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Inconnu" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volume %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Lecteur %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Lecteur %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Lecteur de disquettes" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Lecteur Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Lecteur Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Lecteur Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Lecteur SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Lecteur Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Lecteur Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Lecteur Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Lecteur de musique %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Appareil photo %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Lecteur" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s externe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disque CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disque CD-R vierge" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disque CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disque CD-RW vierge" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disque CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disque DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disque DVD-RAM vierge" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disque DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disque DVD-R vierge" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disque DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disque DVD-RW vierge" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disque DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disque DVD+R vierge" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disque DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disque DVD+RW vierge" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disque DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disque audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volume amovible %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Type d'opération %u inconnu" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Impossible de créer un tube pour ouvrir GIOChannel : %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Type de tâche inconnu %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Opération arrêtée" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Fonction déconseillée. Les modifications d'utilisateur sur la base MIME ne " "sont plus prises en charge." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Impossible d'analyser : %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Les erreurs d'analyse suivantes seront ignorées." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Aucune erreur" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fichier non trouvé" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Erreur générique" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Erreur interne" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Paramètres non valides" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Opération non prise en charge" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Erreur d'E/S" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Données corrompues" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format non valide" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Descripteur de fichier incorrect" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fichier trop gros" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Espace insuffisant sur le périphérique" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Système de fichiers en lecture seule" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI non valide" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fichier non ouvert" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Mode d'ouverture non valide" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Accès refusé" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Trop de fichiers ouverts" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fin de fichier" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "N'est pas un répertoire" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Opération en cours" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Opération interrompue" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Le fichier existe" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Boucle de liens rencontrée" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Opération non permise" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Est un répertoire" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Mémoire saturée" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Hôte non trouvé" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Nom d'hôte non valide" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "L'hôte n'a pas d'adresse" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "L'authentification a échoué" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Opération annulée" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Répertoire occupé" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Répertoire non vide" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Trop de liens" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Système de fichiers en lecture seule" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Pas sur le même système de fichiers" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nom trop long" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Service non disponible" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Demande de données de services déconseillés" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Erreur de protocole" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Impossible de trouver le navigateur maître" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Aucune action par défaut associée" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Aucun gestionnaire pour ce type d'URLs" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Erreur lors de l'analyse de la ligne de commande" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Erreur lors du lancement de la commande" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Délai d'expiration atteint" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Erreur du serveur de nom" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "La ressource est verrouillée" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Appel à une fonction déconseillée" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nom de fichier non valide" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Pas un lien symbolique" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Erreur inconnue" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u octet" msgstr[1] "%u octets" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f Kio" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f Mio" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Gio" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode non valide)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquette" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disque" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Lecteur USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Lecteur IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CompactFlash" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "Secure Digital/MultiMediaCard" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Appareil photo" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volume racine" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volume inconnu" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Serveur réseau" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Impossible de monter le lecteur de disquettes. Il n'y a probablement pas de " "disquette dans le lecteur." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Impossible de monter le volume. Il n'y a probablement pas de média dans le " "périphérique." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Impossible de monter le lecteur de disquettes. La disquette est probablement " "dans un format qui ne peut être monté." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Impossible de monter le volume. S'il s'agit d'un disque chiffré, un mauvais " "mot de passe ou clef a été utilisé." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Impossible de monter le volume sélectionné. Le volume est probablement dans " "un format qui ne peut être monté." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Impossible de monter le lecteur de disquettes sélectionné." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Impossible de monter le volume sélectionné." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Impossible de démonter le volume sélectionné. Le volume est utilisé par un " "ou plusieurs programmes." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Impossible de démonter le volume sélectionné." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "La lecture des données provenant du processus fils %d a échoué (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Impossible d'exécuter le processus de montage dans un pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Erreur inattendue dans select() lors de la lecture de données provenant du " "processus fils (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Impossible d'envoyer le mot de passe au processus de montage." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Erreur inattendue dans waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Le lancement de la commande a échoué" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Impossible d'éjecter le média" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Impossible de démonter de serveur connecté" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Réseau" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Dossier personnel" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Système de fichiers" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d inconnue" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Réseau Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "L'identité de l'ordinateur distant (%s) est inconnu." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Cela arrive lorsque vous vous authentifiez sur un ordinateur pour la " "première fois.\n" "\n" "L'identité envoyée par l'ordinateur distant est %s. Si vous voulez être " "certain qu'il est sûr de poursuivre, contactez l'administrateur système." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "S'authentifier tout de même" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Annuler l'authentification" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Impossible de trouver un fichier de paramètres valide à %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Utilisez la variable d'environnement %s pour indiquer un emplacement " "différent.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Votre serveur mandataire HTTP nécessite que vous vous identifiez.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Vous devez vous identifier pour accéder à « %s ».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Votre mot de passe sera transmis de manière non-chiffrée." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Votre mot de passe sera transmis de manière chiffrée." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Vous devez vous identifier pour accéder à %s du domaine %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Vous devez vous identifier pour accéder à %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Visionneur de composants par défaut" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Terminal par défaut" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Paramètre d'exécution pour le terminal par défaut" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "L'application à utiliser pour visualiser les fichiers qui nécessitent un " "composant pour les voir. Le paramètre %s sera remplacé par l'URI du fichier, " "le paramètre %c sera remplacé par le composant IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "L'application terminal par défaut à utiliser pour les applications qui " "nécessite un terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "L'argument d'exécution à utiliser pour l'application de terminal par défaut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Lancer le programme dans un terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « aim »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « callto »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « ghelp »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « h323 »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « http »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « https »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « info »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « mailto »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « man »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Si vrai, le programme qui gère les URLs « trash »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Le gestionnaire d'URLs « aim »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Le gestionnaire d'URLs « callto »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Le gestionnaire d'URLs « ghelp »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Le gestionnaire d'URLs « h323 »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Le gestionnaire d'URLs « http »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Le gestionnaire d'URLs « https »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Le gestionnaire d'URLs « info »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Le gestionnaire d'URLs « mailto »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Le gestionnaire d'URLs « man »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Le gestionnaire d'URLs « trash »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « aim »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « callto »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « ghelp »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « h323 »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « http »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « https »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « info »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « mailto »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « man »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Indique si le programme indiqué à la clé « command » gère les URLs « trash »." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Vrai si le programme qui gère cette URL doit être lancée dans un terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « aim »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « callto »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « ghelp »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « h323 »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « http »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « https »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « info »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « mailto »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « man »" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Indique si la commande indiquée doit gérer les URL « trash »" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Liste des domaines DNS-SD séparés par une virgule qui doivent être visible " "dans l'emplacement « network:/// »." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domaines supplémentaire dans lesquels chercher des services DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "La manière d'afficher le service DNS-SD local" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Les valeurs possibles sont « merged » (fusionné), « separate » (séparé) et " "« disabled » (désactivé)." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Authentifier les connexions au serveur mandataire" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuration automatique du serveur mandataire" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Active les paramètres du serveur mandataire lors de l'accès HTTP sur " "Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nom d'hôte du serveur mandataire FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port du serveur mandataire FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nom d'hôte du serveur mandataire HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Mot de passe du serveur mandataire HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port du serveur mandataire HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nom d'utilisateur du serveur mandataire HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Si vrai, alors les connexions au serveur mandataire nécessitent une " "authentification. Le couple nom d'utilisateur/mot de passe est défini dans « /" "system/http_proxy/authentication_user » and « /system/http_proxy/" "authentication_password »." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Hôtes ne nécessitant pas de serveur mandataire" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Mot de passe à fournir comme authentification lors de l'utilisation du " "serveur mandataire HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mode de configuration du serveur mandataire" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nom d'hôte du serveur mandataire SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port du serveur mandataire SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nom d'hôte du serveur mandataire HTTP sécurisé" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port du serveur mandataire HTTP sécurisé" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Sélectionnez le mode de configuration du serveur mandataire. Les valeurs " "prises en charge sont « none » (aucun), « manual » (manuel), " "« auto » (automatique)." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Le nom de la machine qui sert de serveur mandataire FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Le nom de la machine qui sert de serveur mandataire HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Le nom de la machine qui sert de serveur mandataire HTTP sécurisé." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Le nom de machine qui sert de serveur mandataire socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Le port de la machine définie dans « /system/http_proxy/host » utilisée comme " "serveur mandataire." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Le port de la machine définie dans « /system/proxy/ftp_host » utilisée comme " "serveur mandataire." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Le port de la machine définie dans « /system/proxy/secure_host » utilisée " "comme serveur mandataire." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Le port de la machine définie dans « /system/proxy/socks_host » utilisée " "comme serveur mandataire." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Cette clé contient une liste d'hôtes qui peuvent être contactés directement," "plutôt que par un serveur mandataire (s'il est actif). Les valeurs peuvent " "être des noms d'hôtes, des domaines (en utilisant un caractère joker comme *." "toto.fr), des adresses IP d'hôte (IPv4 et IPv6) et des adresses réseau avec " "un masque (comme 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "L'URL qui fournit les valeurs de configuration du serveur mandataire." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Utiliser un serveur mandataire HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Nom d'utilisateur à fournir comme authentification lors de l'utilisation du " "serveur mandataire HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Groupe de travail SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Le groupe de travail ou le domaine Windows auquel appartient l'utilisateur. " "Afin qu'un nouveau groupe de travail soit pleinement opérationnel, " "l'utilisateur doit se déconnecter et se reconnecter." gnome-vfs-2.24.4/po/ka.po0000644000175000001440000016367511334251016012010 00000000000000# translation of ka.po to Georgian # Georgian translation of gnome-vfs. # Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Giasher , 2006. # Vladimer Sichinava ვლáƒáƒ“იმერ სიჭინáƒáƒ•რ, 2007. # msgid "" msgstr "" "Project-Id-Version: ka\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-09-14 12:16+0200\n" "PO-Revision-Date: 2007-09-14 12:20+0200\n" "Last-Translator: Vladimer Sichinava ვლáƒáƒ“იმერ სიჭინáƒáƒ•რ\n" "Language-Team: Georgian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u შეიცáƒáƒ•ს NUL სიმბáƒáƒšáƒáƒ¡." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u áƒáƒ  შეიცáƒáƒ•ს მეთáƒáƒ“ის სáƒáƒ®áƒ”ლს." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u áƒáƒ  შეიცáƒáƒ•ს პáƒáƒ áƒáƒ›áƒ”ტრის დáƒáƒ‘áƒáƒšáƒáƒ”ბის ნიშნულს." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u შეიცáƒáƒ•ს უცნáƒáƒ‘ პáƒáƒ áƒáƒ›áƒ”ტრებს - %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u áƒáƒ  შეიცáƒáƒ•ს მáƒáƒ“ულის სáƒáƒ®áƒ”ლს." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ˜ `%s' ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d დáƒáƒ›áƒ£áƒ¨áƒáƒ•ებრშეწყდáƒ." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS ქსელის ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "თვითáƒáƒ›áƒáƒªáƒœáƒáƒ‘áƒáƒ“ი ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD ციფრული áƒáƒ£áƒ“იáƒ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "áƒáƒžáƒáƒ áƒáƒ¢áƒ£áƒšáƒ˜ მáƒáƒ¬áƒ§áƒáƒ‘ილáƒáƒ‘ის ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "სისტემური ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "მეხსიერების ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS ქსელის ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows სáƒáƒ–იáƒáƒ áƒ ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "დრáƒáƒ”ბითი მეხსიერების ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბული DOS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "უცნáƒáƒ‘ი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ფლáƒáƒžáƒ˜áƒ¡ წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "კáƒáƒ›áƒžáƒáƒ¥áƒ¢áƒ£áƒ áƒ˜ ფლეშის წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "კáƒáƒ›áƒžáƒáƒ¥áƒ¢áƒ£áƒ áƒ˜ მეხსიერების წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "სხáƒáƒ áƒ¢áƒ˜ მედირწáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ცáƒáƒ áƒ˜áƒ”ლი " #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip ცáƒáƒ áƒ˜áƒ”ლი " #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ცáƒáƒ áƒ˜áƒ”ლი " #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen ცáƒáƒ áƒ˜áƒ”ლი " #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s მუსიკის დáƒáƒ›áƒ™áƒ•რელი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ციფრული კáƒáƒ›áƒ”რáƒ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "გáƒáƒ áƒ” %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ცáƒáƒ áƒ˜áƒ”ლი CD-R დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ცáƒáƒ áƒ˜áƒ”ლი CD-RW დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ცáƒáƒ áƒ˜áƒ”ლი DVD-RAM დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ცáƒáƒ áƒ˜áƒ”ლი DVD-R დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ცáƒáƒ áƒ˜áƒ”ლი DVD-RW დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ცáƒáƒ áƒ˜áƒ”ლი DVD+R დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ცáƒáƒ áƒ˜áƒ”ლი DVD+RW დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW დისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "áƒáƒ£áƒ“ირდისკი" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s áƒáƒ›áƒáƒ¦áƒ”ბáƒáƒ“ი ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ˜áƒ¡ უცნáƒáƒ‘ი ტიპი %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ვერ ხერხდებრáƒáƒ áƒ®áƒ˜áƒ¡ შექმნრღირGIOChannel-ისთვის: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "დáƒáƒ•áƒáƒšáƒ”ბის უცნáƒáƒ‘ი ტიპი %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ შეჩერდáƒ" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ფუნქცირმáƒáƒ«áƒ•ელებულიáƒ. მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის მიერ MIME მáƒáƒœáƒáƒªáƒ”მთრბáƒáƒ–ის ცვლილებები " "áƒáƒ¦áƒáƒ  მიიღებáƒ." #: ../libgnomevfs/gnome-vfs-parse-ls.c:720 #, c-format msgid "Could not parse: %s" msgstr "ვერ მუშáƒáƒ•დებáƒ: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:722 msgid "More parsing errors will be ignored." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების სხვრშეცდáƒáƒ›áƒ”ბი გáƒáƒ›áƒáƒ˜áƒ¢áƒáƒ•ებáƒ." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "შეცდáƒáƒ›áƒ˜áƒ¡ გáƒáƒ áƒ”შე" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ფáƒáƒ˜áƒšáƒ˜ ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "სáƒáƒ–áƒáƒ’áƒáƒ“რშეცდáƒáƒ›áƒ" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "შიდრშეცდáƒáƒ›áƒ" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "მცდáƒáƒ áƒ˜ პáƒáƒ áƒáƒ›áƒ”ტრები" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ მხáƒáƒ áƒ“áƒáƒ­áƒ”რის გáƒáƒ áƒ”შე" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O შეცდáƒáƒ›áƒ" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "მáƒáƒœáƒáƒªáƒ”მები დáƒáƒ–იáƒáƒœáƒ”ბულიáƒ" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ მცდáƒáƒ áƒ˜áƒ" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი მცდáƒáƒ áƒ˜áƒ" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ფáƒáƒ˜áƒšáƒ˜ მეტისმეტáƒáƒ“ დიდიáƒ" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "მáƒáƒ¬áƒ§áƒáƒ‘ილáƒáƒ‘áƒáƒ–ე áƒáƒ“გილი áƒáƒ¦áƒáƒ áƒáƒ" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "მხáƒáƒšáƒáƒ“ კითხვáƒáƒ“ი ფáƒáƒ˜áƒšáƒ£áƒ áƒ˜ სისტემáƒ" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "მცდáƒáƒ áƒ˜ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ფáƒáƒ˜áƒšáƒ˜ áƒáƒ  გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "გáƒáƒ®áƒ¡áƒœáƒ˜áƒ¡ რეჟიმი მცდáƒáƒ áƒ˜áƒ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "წვდáƒáƒ›áƒ áƒáƒ™áƒ áƒ«áƒáƒšáƒ£áƒšáƒ˜áƒ" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "მეტისმეტი გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ˜" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ ბáƒáƒšáƒ" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "დáƒáƒ¡áƒ¢áƒ áƒáƒ áƒáƒ" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ მიმდინáƒáƒ áƒ”áƒáƒ‘ს" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "შეწყვეტილი áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ფáƒáƒ˜áƒšáƒ˜ áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "დáƒáƒ˜áƒ›áƒ–ირებრბმების ციკლი" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ დáƒáƒ£áƒ¨áƒ•ებელიáƒ" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "დáƒáƒ¡áƒ¢áƒáƒ" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "მეხსიერების უკმáƒáƒ áƒ˜áƒ¡áƒáƒ‘áƒ" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ჰáƒáƒ¡áƒ¢áƒ˜ ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი მცდáƒáƒ áƒ˜áƒ" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ჰáƒáƒ¡áƒ¢áƒ¡ მისáƒáƒ›áƒáƒ áƒ—ი áƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "შესვლრáƒáƒ  შედგáƒ" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ გáƒáƒ£áƒ¥áƒ›áƒ“áƒ" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "დáƒáƒ¡áƒ¢áƒ დáƒáƒ™áƒáƒ•ებულიáƒ" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "დáƒáƒ¡áƒ¢áƒ ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ áƒáƒ" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "მეტისმეტი ბმები" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "მხáƒáƒšáƒáƒ“ კითხვáƒáƒ“ი ფáƒáƒ˜áƒšáƒ£áƒ áƒ˜ სისტემáƒ" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "áƒáƒ áƒáƒ იგივე ფáƒáƒ˜áƒšáƒ£áƒ  სისტემáƒáƒ¨áƒ˜" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "სáƒáƒ®áƒ”ლი მეტისმეტáƒáƒ“ გრძელიáƒ" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბრმიუწვდáƒáƒ›áƒ”ლიáƒ" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "მáƒáƒ—ხáƒáƒ•ნრáƒáƒ£áƒ¥áƒ›áƒ”ბს სერვისის მáƒáƒœáƒáƒªáƒ”მებს" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "áƒáƒ¥áƒ›áƒ˜áƒ¡ შეცდáƒáƒ›áƒ" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ძირითáƒáƒ“ი გზáƒáƒ›áƒ™áƒ•ლევი ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ნáƒáƒ’ულისხმები ქმედებრáƒáƒ  უკáƒáƒ•შირდებáƒ" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL სქემის დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი áƒáƒ áƒáƒ" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "ბრძáƒáƒœáƒ”ბის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების შეცდáƒáƒ›áƒ" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "ბრძáƒáƒœáƒ”ბის შესრულების შეცდáƒáƒ›áƒ" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ვáƒáƒ“ის გáƒáƒ•იდáƒ" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "სáƒáƒ®áƒ”ლთრსერვერის შეცდáƒáƒ›áƒ" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "რესურსი დáƒáƒ‘ლáƒáƒ™áƒ˜áƒšáƒ˜áƒ" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ფუნქცირმáƒáƒ«áƒ•ელებულიáƒ" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "მცდáƒáƒ áƒ˜ ფáƒáƒ˜áƒšáƒ¡áƒáƒ®áƒ”ლი" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "áƒáƒ áƒáƒ სიმბáƒáƒšáƒ£áƒ áƒ˜ ბმáƒ" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "უცნáƒáƒ‘ი შეცდáƒáƒ›áƒ" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ბáƒáƒ˜áƒ¢áƒ˜" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f კბ" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f მბ" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f გბ" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (მიუღებელი უნიკáƒáƒ“ი)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ფლáƒáƒžáƒ˜" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "დისკი" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "კáƒáƒ›áƒžáƒáƒ¥áƒ¢áƒ£áƒ áƒ˜ მეხსიერებáƒ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "სხáƒáƒ áƒ¢áƒ˜ მედიáƒ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "კáƒáƒ›áƒ”რáƒ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "ძირეული ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "áƒáƒ£áƒ“ირCD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "უცნáƒáƒ‘ი ნáƒáƒ¬áƒ˜áƒšáƒ˜" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "ქსელის სერვერი" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ვერ ხერხდებრფლáƒáƒžáƒ˜áƒ¡ წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜áƒ¡ ჩáƒáƒ“გმáƒ. რáƒáƒ’áƒáƒ áƒª ჩáƒáƒœáƒ¡ წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ¨áƒ˜ ფლáƒáƒžáƒ˜ áƒáƒ áƒáƒ." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ვერ ხერხდებრნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ“გმáƒ. რáƒáƒ’áƒáƒ áƒª ჩáƒáƒœáƒ¡ მáƒáƒ¬áƒ§áƒáƒ‘ილáƒáƒ‘áƒáƒ¨áƒ˜ მედირáƒáƒ áƒáƒ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "ვერ ხერხდებრფლáƒáƒžáƒ˜áƒ¡ წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜áƒ¡ ჩáƒáƒ“გმáƒ. რáƒáƒ’áƒáƒ áƒª ჩáƒáƒœáƒ¡ ფლáƒáƒžáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ ჩáƒáƒ“გმისთვის " "მიუღებელიáƒ." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ“გმრვერ ხერხდებáƒ. თუ ეს დáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒ˜ წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜áƒ, მáƒáƒ¨áƒ˜áƒœ გáƒáƒ›áƒáƒ§áƒ”ნებულირ" "მცდáƒáƒ áƒ˜ პáƒáƒ áƒáƒšáƒ˜ áƒáƒœ კáƒáƒ“ი." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "შერჩეული ნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ“გმრვერ ხერხდებáƒ. რáƒáƒ’áƒáƒ áƒª ჩáƒáƒœáƒ¡ ნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ " "ჩáƒáƒ“გმისთვის მიუღებელიáƒ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "ვერ ხერხდებრფლáƒáƒžáƒ˜áƒ¡ შერჩეული წáƒáƒ›áƒ§áƒ•áƒáƒœáƒ˜áƒ¡ ჩáƒáƒ“გმáƒ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "ვერ ხერხდებრშერჩეული ნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ“გმáƒ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "შერჩეული ნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ¡ áƒáƒ›áƒáƒ¦áƒ”ბრვერ ხერხდებáƒ. ნáƒáƒ¬áƒ˜áƒšáƒ˜ გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებრერთი áƒáƒœ რáƒáƒ›áƒ“ენიმე " "პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡ მიერ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "შერჩეული ნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ¡ áƒáƒ›áƒáƒ¦áƒ”ბრვერ ხერხდებáƒ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "შეცდáƒáƒ›áƒ მáƒáƒœáƒáƒªáƒ”მთრკითხვისáƒáƒ¡ ქვეპრáƒáƒªáƒ”სიდáƒáƒœ %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ჩáƒáƒ“გმის პრáƒáƒªáƒ”სის შესრულებრფსევდáƒáƒ¢áƒ”რმინáƒáƒšáƒ¨áƒ˜ ვერ ხერხდებáƒ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "გáƒáƒ£áƒ—ვáƒáƒšáƒ˜áƒ¡áƒ¬áƒ˜áƒœáƒ”ბელი შეცდáƒáƒ›áƒ - select() მáƒáƒœáƒáƒªáƒ”მთრკითხვისáƒáƒ¡ ქვეპრáƒáƒªáƒ”სიდáƒáƒœ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "ჩáƒáƒ“გმის პრáƒáƒªáƒ”სისთვის პáƒáƒ áƒáƒšáƒ˜áƒ¡ გáƒáƒ’ზáƒáƒ•ნრვერ ხერხდებáƒ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "მáƒáƒ£áƒšáƒáƒ“ნელი შეცდáƒáƒ›áƒ waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ბრძáƒáƒœáƒ”ბის შესრულების დáƒáƒ¬áƒ§áƒ”ბრვერ შედგáƒ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ვერ ხერხდებრმედიის áƒáƒ›áƒáƒ’დებáƒ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "დáƒáƒ™áƒáƒ•შირებული სერვერის áƒáƒ›áƒáƒ¦áƒ”ბრვერ ხერხდებáƒ." #: ../modules/computer-method.c:543 msgid "Network" msgstr "ქსელი" #: ../modules/computer-method.c:561 msgid "Home" msgstr "სáƒáƒ®áƒšáƒ˜" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ფáƒáƒ˜áƒšáƒ£áƒ áƒ˜ სისტემáƒ" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "უცნáƒáƒ‘ი GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows ქსელი" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "დáƒáƒ¨áƒáƒ áƒ”ბული კáƒáƒ›áƒžáƒ˜áƒ£áƒ¢áƒ”რის (%s) იდენტურáƒáƒ‘რუცნáƒáƒ‘იáƒ." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ეს ხდებრპირველი შესვლისáƒáƒ¡.\n" "\n" "დáƒáƒ¨áƒáƒ áƒ”ბული კáƒáƒ›áƒžáƒ˜áƒ£áƒ¢áƒ”რის გáƒáƒ›áƒáƒ’ზáƒáƒ•ნილი იდენტიფიკáƒáƒªáƒ˜áƒ˜áƒ¡ კáƒáƒ“ირ%s. თუ გსურთ სრულáƒáƒ“ " "დáƒáƒ áƒ¬áƒ›áƒ£áƒœáƒ”ბული იყáƒáƒ— უსáƒáƒ¤áƒ áƒ—ხáƒáƒ”ბáƒáƒ¨áƒ˜, დáƒáƒ£áƒ™áƒáƒ•შირდით áƒáƒ“მინისტრáƒáƒ¢áƒáƒ áƒ¡." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "მáƒáƒ˜áƒœáƒª შესვლáƒ" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "შესვლის გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "მáƒáƒ áƒ—ებული პáƒáƒ áƒáƒ›áƒ”ტრების ფáƒáƒ˜áƒšáƒ˜ ვერ მáƒáƒ˜áƒ«áƒ”ბნრ- %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნეთ %s გáƒáƒ áƒ”მáƒáƒ¡ ცვლáƒáƒ“ი გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•ებული მისáƒáƒ›áƒáƒ áƒ—ის მისáƒáƒ—ითებლáƒáƒ“.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "თქვენი HTTP პრáƒáƒ¥áƒ¡áƒ˜ ითხáƒáƒ•ს შესვლáƒáƒ¡.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "უნდრშეხვიდეთ \"%s\" წვდáƒáƒ›áƒ˜áƒ¡áƒ—ვის.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "თქვენი პáƒáƒ áƒáƒšáƒ˜ დáƒáƒ£áƒ¨áƒ˜áƒ¤áƒ áƒáƒ•áƒáƒ“ გáƒáƒ“áƒáƒ˜áƒªáƒ”მáƒ." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "თქვენი პáƒáƒ áƒáƒšáƒ˜ დáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒáƒ“ გáƒáƒ“áƒáƒ˜áƒªáƒ”მáƒ." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "უნდრშეხვიდეთ \"%s\" დáƒáƒ›áƒ”ინის \"%s\" წვდáƒáƒ›áƒ˜áƒ¡áƒ—ვის\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "უნდრშეხვიდეთ \"%s\" წვდáƒáƒ›áƒ˜áƒ¡áƒ—ვის.\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "კáƒáƒ›áƒžáƒáƒœáƒ”ნტების ჩვენების ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ტერმინáƒáƒšáƒ˜áƒ¡ ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec ნáƒáƒ’ულისხმები áƒáƒ áƒ’უმენტი ტერმინáƒáƒšáƒ˜áƒ¡áƒ—ვის" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "პრáƒáƒ’რáƒáƒ›áƒ áƒáƒ› ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ©áƒ•ენებლáƒáƒ“ სáƒáƒ­áƒ˜áƒ áƒáƒ”ბს დáƒáƒ›áƒáƒ¢áƒ”ბით კáƒáƒ›áƒžáƒáƒœáƒ”ნტს. პáƒáƒ áƒáƒ›áƒ”ტრი %s " "შეიცვლებრფáƒáƒ˜áƒšáƒ˜áƒ¡ URI-თ, პáƒáƒ áƒáƒ›áƒ”ტრი %c შეიცვლებრკáƒáƒ›áƒžáƒáƒœáƒ”ნტის IID-ით." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "ტერმინáƒáƒšáƒ˜áƒ¡ ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ, რáƒáƒ›áƒ”ლიც ტერმინáƒáƒšáƒ˜áƒ¡ სáƒáƒ­áƒ˜áƒ áƒáƒ”ბისთვის " "გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒ." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "exec áƒáƒ áƒ’უმენტი, რáƒáƒ›áƒ”ლიც ტერმინáƒáƒšáƒ˜áƒ¡ ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡áƒ—ვის გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებáƒ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"aim\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"callto\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"ghelp\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"h323\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"http\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"https\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"info\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"mailto\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"man\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ\"trash\" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"aim\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"callto\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"ghelp\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"h323\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"http\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"https\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"info\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"mailto\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"man\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი \"trash\" URL-ებისთვის" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"aim\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"callto\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"ghelp\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"h323\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"http\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"https\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"info\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"mailto\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"man\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ\"command\" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს \"trash\" URL-" "ებს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრ" "შესრულდეს." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"aim\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"callto\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"ghelp\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"h323\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"http\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"https\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"info\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"mailto\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"man\" ტიპის URL-ებს" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ\"trash\" ტიპის URL-ებს" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "მძიმით გáƒáƒ›áƒáƒ§áƒáƒ¤áƒ˜áƒšáƒ˜ DNS-SD დáƒáƒ›áƒ”ნები, რáƒáƒ›áƒšáƒ”ბიც უნდრჩáƒáƒœáƒ“ეს \"network:///\" " "მისáƒáƒ›áƒáƒ áƒ—ზე." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი დáƒáƒ›áƒ”ნები DNS-SD მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბის მáƒáƒ¡áƒáƒ«áƒ”ბნáƒáƒ“" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "რáƒáƒ’áƒáƒ  იქნებრნáƒáƒ©áƒ•ენები ლáƒáƒ™áƒáƒšáƒ£áƒ áƒ˜ DNS-SD მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბáƒ" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "შესáƒáƒ«áƒšáƒ მნიშვნელáƒáƒ‘ებირ\"merged\" (\"შერწყმული\"), \"separate\" (\"დáƒáƒ§áƒáƒ¤áƒ˜áƒšáƒ˜" "\") დრ\"disabled\" (\"áƒáƒ›áƒáƒ áƒ—ული\")." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "პრáƒáƒ¥áƒ¡áƒ˜ სერვერის კáƒáƒ•შირების áƒáƒ£áƒ—ენტიფიკáƒáƒªáƒ˜áƒ" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ თვითკáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრების ჩáƒáƒ áƒ—ვრინტერნეტით HTTP წვდáƒáƒ›áƒ˜áƒ¡áƒáƒ¡." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒáƒšáƒ˜" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "თუ ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ, პრáƒáƒ¥áƒ¡áƒ˜ სერვერთáƒáƒœ კáƒáƒ•შირი áƒáƒ£áƒ—ენტიფიკáƒáƒªáƒ˜áƒáƒ¡ სáƒáƒ­áƒ˜áƒ áƒáƒ”ბს. username/" "password combo მითითებულირ\"/system/http_proxy/authentication_user\" დრ\"/" "system/http_proxy/authentication_password\" სáƒáƒ¨áƒ£áƒáƒšáƒ”ბით." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "áƒáƒ áƒ პრáƒáƒ¥áƒ¡áƒ˜ ჰáƒáƒ¡áƒ¢áƒ”ბი" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "áƒáƒ£áƒ—ენტიფიკáƒáƒªáƒ˜áƒ˜áƒ¡ პáƒáƒ áƒáƒšáƒ˜ HTTP პრáƒáƒ¥áƒ¡áƒ˜ სერვერისთვის." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმი" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "უსáƒáƒ¤áƒ áƒ—ხრHTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "უსáƒáƒ¤áƒ áƒ—ხრHTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმის მითითებáƒ. შესáƒáƒ«áƒšáƒ მნიშვნელáƒáƒ‘ებირ\"none" "\" (\"áƒáƒ áƒ\"), \"manual\" (\"ხელით\"), \"auto\" (\"áƒáƒ•ტáƒáƒ›áƒáƒ¢áƒ£áƒ áƒ˜\")." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "პრáƒáƒ¥áƒ¡áƒ˜ სერვერის მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი FTP-სთვის." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "პრáƒáƒ¥áƒ¡áƒ˜ სერვერის მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი HTTP-სთვის." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "პრáƒáƒ¥áƒ¡áƒ˜ სერვერის მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი უსáƒáƒ¤áƒ áƒ—ხრHTTP-სთვის." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი პრáƒáƒ¥áƒ¡áƒ˜ áƒáƒ áƒ®áƒ˜áƒ¡áƒ—ვის." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "\"/system/http_proxy/host\" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "\"/system/proxy/ftp_host\" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "\"/system/proxy/secure_host\" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "\"/system/proxy/socks_host\" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ეს კáƒáƒ“ი შეიცáƒáƒ•ს ჰáƒáƒ¡áƒ¢áƒ”ბის სიáƒáƒ¡, რáƒáƒ›áƒ”ლიც პირდáƒáƒžáƒ˜áƒ áƒáƒ დáƒáƒ™áƒáƒ•შირებული დრáƒáƒ áƒ " "პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ სáƒáƒ¨áƒ£áƒáƒšáƒ”ბით (თუ áƒáƒ¥áƒ¢áƒ˜áƒ£áƒ áƒ˜áƒ). მნიშვნელáƒáƒ‘ები შესáƒáƒ«áƒšáƒáƒ იყáƒáƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ " "სáƒáƒ®áƒ”ლები, დáƒáƒ›áƒ”ნები (სპეცსიმბáƒáƒšáƒáƒ”ბის გáƒáƒ›áƒáƒ§áƒ”ნებით, მáƒáƒ’., *.foo.com), ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ IP " "მისáƒáƒ›áƒáƒ áƒ—ები (áƒáƒ áƒ˜áƒ•ე, IPv4 დრIPv6) დრქსელური მისáƒáƒ›áƒáƒ áƒ—ები ქსელის თáƒáƒ áƒ’ით " "(მáƒáƒ’áƒáƒšáƒ˜áƒ—áƒáƒ“ 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL რáƒáƒ›áƒ”ლშიც მáƒáƒªáƒ”მულირპრáƒáƒ¥áƒ¡áƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘ები." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ გáƒáƒ›áƒáƒ§áƒ”ნებáƒ" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი HTTP პრáƒáƒ¥áƒ¡áƒ˜ სერვერისთვის." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB სáƒáƒ›áƒ£áƒ¨áƒáƒ ჯგუფი" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows ქსელის სáƒáƒ›áƒ£áƒ¨áƒáƒ ჯგუფი áƒáƒœ დáƒáƒ›áƒ”ნი რáƒáƒ›áƒ”ლშიც მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელირგáƒáƒ”რთიáƒáƒœáƒ”ბული. " "სáƒáƒ›áƒ£áƒ¨áƒáƒ ჯგუფის შეცვლის ძáƒáƒšáƒáƒ¨áƒ˜ შესáƒáƒ¡áƒ•ლელáƒáƒ“ áƒáƒ£áƒªáƒ˜áƒšáƒ”ბელირსისტემიდáƒáƒœ გáƒáƒ›áƒáƒ¡áƒ•ლრდრ" "ხელáƒáƒ®áƒáƒšáƒ˜ შესვლáƒ." gnome-vfs-2.24.4/po/pa.po0000644000175000001440000016532411354402652012014 00000000000000# translation of gnome-vfs.HEAD.po to Punjabi # This file is distributed under the same license as the gnome-vfs. package. # Copyright (C) 2004 THE gnome-vfs.'S COPYRIGHT HOLDER # # # Amanpreet Singh Alam , 2004. # A S Alam , 2004, 2005, 2006, 2007, 2009, 2010. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." "cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2009-12-14 21:54+0000\n" "PO-Revision-Date: 2010-03-19 08:12+0530\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "\n" "\n" "\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO ੯੬੬੦ ਵਾਲੀਅਮ" # libgnomevfs/gnome-vfs-configuration.c:223 #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u ਕੋਲ NUL ਅੱਖਰ ਹੈ।" # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s :%u ਕੋਲ ਕੋਈ ਤਰੀਕਾ ਨਾਂ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ਕੋਲ ਕੋਈ ਤਰੀਕਾ ਨਹੀਂ ਹੈ" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ਕੋਈ ਅਣਜਾਣੀ ਚੋਣ %s ਹੈ।" # libgnomevfs/gnome-vfs-configuration.c:269 #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ਕੋਲ ਕੋਈ ਮੋਡੀਊਲ ਨਾਂ ਨਹੀਂ ਹੈ।" # libgnomevfs/gnome-vfs-configuration.c:322 #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "ਸੰਰਚਨਾ ਫਾਇਲ '%s' ਨਹੀਂ ਲੱਭੀ: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d ਪਾਰਸਿੰਗ ਅਧੂਰੀ ਛੱਡੀ ਗਈ।" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS ਨੈੱਟਵਰਕ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "ਆਟੋ-ਖੋਜਿਆ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "Btrfs ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD ਡਿਜ਼ੀਟਲ ਆਡੀਓ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "ਹਾਰਡਵੇਅਰ ਜੰਤਰ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncF ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "eCryptfs ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext੨ ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Extà©© ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "Ext੪ ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "ਸਿਸਟਮ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "ਮੈਮੋਰੀ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "ਮੀਨੈਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS ਨੈੱਟਵਰਕ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "NILFS ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "ਨੈੱਟਵੇਅਰ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows ਸਾਂà¨à¨¾ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "ਸà©à¨ªà¨°à¨®à¨¾à¨Šà¨Ÿ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "ਆਰਜ਼ੀ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS ਲੀਨਕਸ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS ਵਾਲੀਅਮ" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "ਅਣਜਾਣ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ਫਲਾਪੀ ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "ਕੰਪੈਕਟ ਫਲੈਸ਼ ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "ਮੈਮੋਰੀ ਸਟਿੱਕ ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "ਸਮਾਟ ਮੀਡਿਆ ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ਜ਼ਿਪ ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ਜ਼ੇਜ ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "ਪੈਨ ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s ਸੰਗੀਤ ਪਲੇਅਰ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ਡਿਜ਼ੀਟਲ ਕੈਮਰਾ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "ਬਾਹਰੀ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ਖਾਲੀ CD-R ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ਖਾਲੀ CD-RW ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ਖਾਲੀ DVD-RAM ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ਖਾਲੀ DVD-R ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ਖਾਲੀ DVD-RW ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ਖਾਲੀ DVD+R ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ਖਾਲੀ DVD+RW ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ਆਡੀਓ ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s ਹਟਾਉਣਯੋਗ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ਵਾਲੀਅਮ" # libgnomevfs/gnome-vfs-job.c:714 #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "ਅਣਜਾਣੀ ਕਾਰਵਾਈ ਕਿਸਮ %u" # libgnomevfs/gnome-vfs-job.c:1005 libgnomevfs/gnome-vfs-job.c:1150 #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ਖà©à©±à¨²à©‡ GIO ਚੈਨਲ ਲਈ ਪਾਇਪ ਨਹੀਂ ਬਣ ਸਕਦਾ: %s" # libgnomevfs/gnome-vfs-job.c:1596 #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "ਅਣਜਾਣ ਜਾਬ ਕਿਸਮ %u" # libgnomevfs/gnome-vfs-job.c:1632 #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ਕਾਰਵਾਈ ਰà©à¨•à©€ ਹੈ" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "ਬਰਤਰਫ਼ ਫੰਕਸ਼ਨ, MIME ਡਾਟਾਬੇਸ ਵਿੱਚ ਕੋਈ ਵੀ ਤਬਦੀਲ ਯੂਜ਼ਰ ਰਾਹੀਂ ਸਵੀਕਾਰ ਨਹੀਂ ਹੈ।" # libgnomevfs/gnome-vfs-parse-ls.c:652 #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %s" # libgnomevfs/gnome-vfs-parse-ls.c:654 #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ਹੋਰ ਪਾਰਸਿੰਗ ਗਲਤੀਆਂ ਅਣਡਿੱਠੀਆਂ ਦਿਤੀਆਂ ਜਾਣਗੀਆਂ" # libgnomevfs/gnome-vfs-result.c:35 #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "ਕੋਈ ਗਲਤੀ ਨਹੀਂ" # libgnomevfs/gnome-vfs-result.c:36 #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ਫਾਇਲ ਲੱਭੀ ਨਹੀਂ" # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ਸਧਾਰਨ ਗਲਤੀ" # libgnomevfs/gnome-vfs-result.c:38 #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ" # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ਗਲਤ ਪੈਰਾਮੀਟਰ" # libgnomevfs/gnome-vfs-result.c:40 #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ਗੈਰ-ਸਹਾਇਕ ਓਪਰੇਸ਼ਨ" # "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ परिभाषित नहीं है"; पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करना संभव नहीं; यह पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ नहीं की जा सकती" # libgnomevfs/gnome-vfs-result.c:41 #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O ਗਲਤੀ" # libgnomevfs/gnome-vfs-result.c:42 #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "ਡਾਟਾ ਖਰਾਬ ਹੋ ਗਿਆ ਹੈ" # libgnomevfs/gnome-vfs-result.c:43 #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ਫਾਰਮੈਟ ਠੀਕ ਨਹੀਂ" # libgnomevfs/gnome-vfs-result.c:44 #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ਗਲਤ ਫਾਇਲ ਹੈਂਡਲ" # libgnomevfs/gnome-vfs-result.c:45 #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ਫਾਇਲ ਬਹà©à¨¤à©€ ਵੱਡੀ" # libgnomevfs/gnome-vfs-result.c:46 #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ਜੰਤਰ ਉੱਤੇ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਬਚੀ ਹੈ" # libgnomevfs/gnome-vfs-result.c:47 #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ਫਾਇਲ ਸਿਸਟਮ ਕੇਵਲ ਪੜà©à¨¹à¨¨ ਲਈ" # libgnomevfs/gnome-vfs-result.c:48 #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ਗਲਤ URI" # libgnomevfs/gnome-vfs-result.c:49 #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ਫਾਇਲ ਖà©à©±à¨²à©à¨¹à©€ ਨਹੀਂ" # libgnomevfs/gnome-vfs-result.c:50 #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "ਖà©à©±à¨²à©à¨¹à¨£ ਢੰਗ ਠੀਕ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-result.c:51 #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ਪਹà©à©°à¨š ਪਾਬੰਦੀ ਹੈ" # libgnomevfs/gnome-vfs-result.c:52 #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "ਬਹà©à¨¤ ਫਾਇਲਾਂ ਖà©à©±à¨²à©€à¨†à¨‚ ਹਨ" # libgnomevfs/gnome-vfs-result.c:53 #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ਫਾਇਲ ਦਾ ਅੰਤ" # libgnomevfs/gnome-vfs-result.c:54 #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ" # libgnomevfs/gnome-vfs-result.c:55 #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ਕਾਰਵਾਈ ਜਾਰੀ ਹੈ" # libgnomevfs/gnome-vfs-result.c:56 #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ਕਾਰਵਾਈ ਰੋਕੀ ਗਈ" # libgnomevfs/gnome-vfs-result.c:57 #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ਫਾਇਲ ਮੌਜੂਦ ਹੈ" # libgnomevfs/gnome-vfs-result.c:58 #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ਲੂਪ ਵਾਲੇ ਲਿੰਕ ਆ ਗਠਹਨ" # libgnomevfs/gnome-vfs-result.c:59 #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ਕਾਰਵਾਈ ਦੀ ਇਜ਼ਾਜ਼ਤ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-result.c:60 #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ਡਾਇਰੈਕਟਰੀ ਹੈ" # libgnomevfs/gnome-vfs-result.c:61 #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ਲੋਡ਼ੀਦੀ ਮੈਮੋਰੀ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-result.c:62 #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ਹੋਸਟ ਨਹੀਂ ਲੱਭਿਆ ਹੈ" # libgnomevfs/gnome-vfs-result.c:63 #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ਹੋਸਟ ਦਾ ਨਾਂ ਠੀਕ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-result.c:64 #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ਹੋਸਟ ਦਾ ਕੋਈ à¨à¨¡à¨°à©ˆà¨¸ ਨਹੀਂ" # libgnomevfs/gnome-vfs-result.c:65 #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ਲਾਗਇਨ ਫੇਲà©à¨¹" # libgnomevfs/gnome-vfs-result.c:66 #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ਕਾਰਵਾਈ ਰੱਦ ਕੀਤੀ" # libgnomevfs/gnome-vfs-result.c:67 #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ਡਾਇਰੈਕਟਰੀ ਰà©à©±à¨à©€ ਹੈ" # libgnomevfs/gnome-vfs-result.c:68 #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ਡਾਇਰੈਕਟਰੀ ਖਾਲੀ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-result.c:69 #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "ਬਹà©à¨¤ ਜ਼ਿਆਦਾ ਲਿੰਕ" # libgnomevfs/gnome-vfs-result.c:70 #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ਫਾਇਲ ਸਿਸਟਮ ਕੇਵਲ ਪੜà©à¨¹à¨¨ ਲਈ" # libgnomevfs/gnome-vfs-result.c:71 #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ਉਸੇ ਫਾਇਲ ਸਿਸਟਮ 'ਤੇ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-result.c:72 #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "ਨਾਂ ਬਹà©à¨¤ ਲੰਮਾ ਹੈ" # libgnomevfs/gnome-vfs-result.c:73 #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "ਸਰਵਿਸ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ" # libgnomevfs/gnome-vfs-result.c:74 #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "ਸਰਵਿਸ ਦੇ ਪà©à¨°à¨¾à¨£à©‡ ਡਾਟੇ ਲਈ ਬੇਨਤੀ" # libgnomevfs/gnome-vfs-result.c:75 #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "ਪਰੋਟੋਕਾਲ ਗਲਤੀ" # libgnomevfs/gnome-vfs-parse-ls.c:652 #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ਮਾਸਟਰ ਬਰਾਊਜ਼ਰ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਿਆ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ਕੋਈ ਡਿਫਾਲਟ ਕਾਰਵਾਈ ਸਬੰਧਤ ਨਹੀਂ ਹੈ" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL ਸਕੀਮ ਲਈ ਕੋਈ ਹੈਂਡਲਰ ਨਹੀਂ ਹੈ" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "ਕਮਾਂਡ ਲਾਈਨ ਨੂੰ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਗਲਤੀ" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "ਕਮਾਂਡ ਚਾਲੂ ਕਰਨ ਵਿੱਚ ਗਲਤੀ" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ਸਮਾਂ ਸੀਮਾ ਸਮਾਪਤ" # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "ਨਾਂ-ਸਰਵਰ ਗਲਤੀ" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "ਸਰੋਤ ਲਾਕ ਹੈ" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ਫੰਕਸ਼ਨ ਕਾਲ ਬਰਤਰਫ਼ ਕੀਤੀ ਗਈ" # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ਗਲਤ ਫਾਇਲ ਨਾਂ" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "ਇੱਕ ਸਿੰਬੋਲਿਕ ਲਿੰਕ ਨਹੀਂ" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ਅਣਜਾਣ ਗਲਤੀ" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ਬਾਈਟ" msgstr[1] "%u ਬਾਈਟ" # libgnomevfs/gnome-vfs-utils.c:67 # libgnomevfs/gnome-vfs-utils.c:74 #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" # libgnomevfs/gnome-vfs-utils.c:78 #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" # libgnomevfs/gnome-vfs-utils.c:82 #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ਗਲਤ ਯੂਨੀਕੋਡ)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ਫਲਾਪੀ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ਡਿਸਕ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ਡਰਾਇਵ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "ਮੈਮੋਰੀ ਸਟਿੱਕ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "ਸਮਾਰਟ ਮੀਡਿਆ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "ਕੈਮਰਾ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "ਆਡੀਓ CD" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "ਅਣਜਾਣ ਵਾਲੀਅਮ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "ਨੈੱਟਵਰਕ ਸਰਵਰ" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ਫਲਾਪੀ ਡਰਾਇਵ ਨੂੰ ਮਾਊਟ ਕਰਨ ਵਿੱਚ ਅਸਫ਼ਲ ਹੈ। ਇਹ ਸੰਭਵ ਹੈ ਕਿ ਕੋਈ ਫਲਾਪੀ ਡਰਾਇਵ ਵਿੱਚ ਨਹੀਂ ਹੈ।" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ਵਾਲੀਅਮ ਨੂੰ ਮਾਊਟ ਕਰਨ ਵਿੱਚ ਅਸਫ਼ਲ ਹੈ। ਸੰਭਵ ਹੈ ਕਿ ਜੰਤਰ ਵਿੱਚ ਮਾਧਿਅਮ ਨਹੀਂ ਹੈ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "ਫਲਾਪੀ ਡਰਾਇਵ ਨੂੰ ਚਲਾਉਣ (ਮਾਊਟ) ਵਿੱਚ ਅਸਫ਼ਲ ਹੈ। ਇਹ ਸੰਭਵ ਹੈ ਕਿ ਵਿਚਲੀ ਫਲਾਪੀ ਦਾ ਫਾਰਮੈਟ ਉਹ " "ਹੈ, ਜਿਸ ਨੂੰ ਮਾਊਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ਵਾਲੀਅਮ ਨੂੰ ਮਾਊਟ ਕਰਨ 'ਚ ਅਸਮਰੱਥ ਹੈ। ਜੇਕਰ ਇਹ ਇਨਕà©à¨°à¨¿à¨ªà¨Ÿ ਡਰਾਇਵ ਹੈ ਤਾਂ \n" "ਗਲਤ ਪਾਸਵਰਡ ਜਾਂ ਕà©à©°à¨œà©€ ਗਲਤੀ ਗਈ ਹੈ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "ਚà©à¨£à©‡ ਵਾਲੀਅਮ ਨੂੰ ਚਲਾਉਣ (ਮਾਊਟ) ਵਿੱਚ ਅਸਫ਼ਲ ਹੈ। ਇਹ ਸੰਭਵ ਹੈ ਕਿ ਵਾਲੀਅਮ ਦਾ ਫਾਰਮੈਟ ਉਹ ਹੈ, ਜਿਸ ਨੂੰ " "ਮਾਊਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "ਚà©à¨£à©€ ਫਲਾਪੀ ਡਰਾਇਵ ਨੂੰ ਮਾਊਟ ਕਰਨ ਵਿੱਚ ਅਸਫ਼ਲ ਹੈ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "ਚà©à¨£à©‡ ਵਾਲੀਅਮ ਨੂੰ ਮਾਊਟ ਕਰਨ ਵਿੱਚ ਅਸਫ਼ਲ ਹੈ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "ਚà©à¨£à©‡ ਵਾਲੀਅਮ ਨੂੰ ਅਣ-ਮਾਊਟ ਵਿੱਚ ਅਸਮਰੱਥ ਹੈ। ਇਹ ਸੰਭਵ ਹੈ ਕਿ ਵਾਲੀਅਮ ਇੱਕ ਜਾਂ ਵੱਧ ਪà©à¨°à©‹à¨—ਰਾਮ ਵਲੋਂ ਵਰਤੋਂ " "ਅਧੀਨ ਹੋਵੇ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "ਚà©à¨£à©‡ ਵਾਲੀਅਮ ਨੂੰ ਅਣ-ਮਾਊਟ ਕਰਨ ਵਿੱਚ ਅਸਫ਼ਲ ਹੈ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ਅਧੀਨ ਕਾਰਜ %d (%s) ਤੋਂ ਡਾਟਾ ਪੜà©à¨¹à¨¨ 'ਚ ਫੇਲà©à¨¹" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ਇੱਕ pty ਵਿੱਚ ਮਾਊਟ ਕਾਰਵਾਈ ਚਲਾਈ ਨਹੀਂ ਜਾ ਸਕੀ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "ਇੱਕ ਅਧੀਨ ਕਾਰਜ (%s) ਤੋਂ ਡਾਟਾ ਪੜà©à¨¹à¨¨ ਦੌਰਾਨ select() ਵਿੱਚ ਅਚਾਨਕ ਗਲਤੀ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "ਮਾਊਟ ਕਾਰਵਾਈ ਲਈ ਪਾਸਵਰਡ ਭੇਜਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() (%s) ਵਿੱਚ ਅਚਾਨਕ ਗਲਤੀ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ਕਮਾਂਡ ਚਾਲੂ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ਮੀਡਿਆ ਕੱਢਣ ਵਿੱਚ ਅਸਮਰੱਥ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "ਕà©à¨¨à©ˆà¨•ਟ ਹੋਠਸਰਵਰ ਨੂੰ ਅਣ-ਮਾਊਂਟ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ" #: ../modules/computer-method.c:543 msgid "Network" msgstr "ਨੈੱਟਵਰਕ" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ਘਰ" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ਫਾਇਲ ਸਿਸਟਮ" # modules/file-method.c:381 #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ਅਣਜਾਣ ਗਨੋਮ-VFSSeek ਥਾਂ %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows ਨੈੱਟਵਰਕ" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ਰਿਮੋਟ ਕੰਪਿਊਟਰ (%s) ਦੀ ਪਛਾਣ ਅਣਜਾਣੀ ਹੈ।" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ਇਹ ਤਾਂ ਹੀ ਵਾਪਰਦਾ ਹੈ ਜਦੋਂ ਕਿ ਤà©à¨¸à©€à¨‚ ਪਹਿਲੀ ਵਾਰ ਕੰਪਿਊਟਰ 'ਤੇ ਲਾਗਇਨ ਕਰਦੇ ਹੋ।\n" "\n" "ਇਹ ਪਛਾਣ %s ਰਿਮੋਟ ਕੰਪਿਊਟਰ ਨੇ ਭੇਜੀ ਹੈ, ਜੇਕਰ ਤà©à¨¸à©€à¨‚ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਚਾਹà©à©°à¨¦à©‡ ਹੋ ਕਿ ਇਹ ਸà©à¨°à©±à¨–ਿਅਤ " "ਹੈ ਤਾਂ ਆਪਣੇ ਸਿਸਟਮ ਪਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "ਕਿਵੇਂ ਵੀ ਲਾਗਇਨ" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ਲਾਗਇਨ ਰੱਦ" # modules/test-method.c:590 #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s 'ਤੇ ਠੀਕ ਸੈਟਿੰਗ ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ ਹੈ\n" # modules/test-method.c:592 #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "ਹੋਰ ਟਿਕਾਣਾ ਦੇਣ ਲਈ ਵਾਤਾਵਰਣ %s ਮà©à©±à¨² ਦੀ ਵਰਤੋਂ ਕਰੋ।\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "ਤà©à¨¹à¨¾à¨¡à©‡ HTTP ਪਰਾਕਸੀ ਨੂੰ ਤà©à¨¹à¨¾à¨¡à©‡ ਲਾਗਇਨ ਦੀ ਲੋੜ ਹੈ।\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "ਤà©à¨¹à¨¾à¨¨à©‚à©° \"%s\" ਵਰਤਣ ਵਾਸਤੇ ਲਾਗਇਨ ਕਰਨਾ ਪਵੇਗਾ।\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "ਤà©à¨¹à¨¾à¨¡à¨¾ ਪਾਸਵਰਡ ਬਿਨ-ਇੰਕà©à¨°à¨¿à¨ªà¨¸à¨¼à¨¨ ਦੇ ਹੀ ਭੇਜਿਆ ਜਾਵੇਗਾ।" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "ਤà©à¨¹à¨¾à¨¡à¨¾ ਪਾਸਵਰਡ ਇੰਕà©à¨°à¨¿à¨ªà¨Ÿà¨¿à¨¡ ਹੀ ਭੇਜਿਆ ਜਾਵੇਗਾ।" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "ਤà©à¨¹à¨¾à¨¨à©‚à©° %s ਡੋਮੇਨ %s ਵਰਤਣ ਵਾਸਤੇ ਲਾਗਇਨ ਕਰਨਾ ਪਵੇਗਾ\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s ਵਰਤਣ ਵਾਸਤੇ ਤà©à¨¹à¨¾à¨¨à©‚à©° ਲਾਗਇਨ ਕਰਨਾ ਪਵੇਗਾ\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "ਡਿਫਾਲਟ ਭਾਗ ਦਰਸ਼ਕ à¨à¨ªà¨²à©€à¨•ੇਸ਼ਨ" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ਡਿਫਾਲਟ ਟਰਮੀਨਲ à¨à¨ªà¨²à©€à¨•ੇਸ਼ਨ" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ਡਿਫਾਲਟ ਟਰਮੀਨਲ ਲਈ Exec ਆਰਗੂਮੈਂਟ" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "ਫਾਇਲਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਵਰਤਣ ਵਾਲਾ ਕਾਰਜ, ਜੋ ਕਿ ਹਿੱਸੇ ਵੇਖਣ ਦੇ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। ਪੈਰਾਮੀਟਰ %s ਨੂੰ ਫਾਇਲ ਦੇ " "URI ਨਾਲ ਤਬਦੀਲ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਪੈਰਾਮੀਟਰ %c ਨੂੰ ਹਿੱਸੇ IID ਨਾਲ ਤਬਦੀਲ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "ਡਿਫਾਲਟ ਟਰਮੀਨਲ ਕਾਰਜ, ਜੋ ਕਿ ਕਾਰਜਾਂ ਲਈ ਵਰਤਣਾ ਹੈ, ਜੋ ਕਿ ਟਰਮੀਨਲ ਦੀ ਮੰਗ ਕਰਦੇ ਹਨ।" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ਡਿਫਾਲਟ ਟਰਮੀਨਲ ਕਾਰਜ ਵਿੱਚ ਵਰਤਣ ਲਈ Exec ਆਰਗੂਮੈਂਟ ਹੈ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "ਕਮਾਂਡ ਲਾਈਨ \"aim\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ, ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"callto\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"ghelp\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"h323\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"http\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"https\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"info\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"mailto\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"man\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ \"trash\" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" (ਰੱਦੀ) URL ਲਈ ਹੈਂਡਲਰ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "ਸਹੀ ਕਰ ਦਿੱਤਾ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ,\"aim\" URL ਨੂੰ ਵਰਤ ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"callto\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ|" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"ghelp\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"h323\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"http\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"https\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"info\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"mailto\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"man\" URL ਨੂੰ ਵਰਤ ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ \"command(ਕਮਾਂਡ)\" ਵਿੱਚ ਦਿੱਤਾ, \"trash\" URL ਨੂੰ ਵਰਤ " "ਸਕੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"aim\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"callto\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"ghelp\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"h323\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"http\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"https\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"info\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"mailto\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"man\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ \"trash (ਰੱਦੀ)\" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "DNS-SD ਡੋਮੇਨਾਂ ਦੀ ਕਾਮਿਆਂ ਨਾਲ ਵੱਖ ਕੀਤੀ ਸੂਚੀ, ਜੋ ਕਿ \"network:///\" ਟਿਕਾਣੇ ਉੱਤੇ ਵਿਖਾਈ " "ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ।" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ਇਸ ਵਿੱਚ DNS-SD ਸਰਵਿਸਾਂ ਦੀ ਖੋਜ ਲਈ ਹੋਰ ਡੋਮੇਨਾਂ" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "ਲੋਕਲ DNS-SD ਸਰਵਿਸ ਨੂੰ ਕਿਵੇਂ ਵੇਖਾਉਣਾ ਹੈ" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "ਸੰਭਵ ਮà©à©±à¨² ਹਨ \"merged (ਰਲਵੇਂ)\", \"separate(ਵੱਖਰੇ)\" ਅਤੇ \"disabled(ਆਯੋਗ)\"" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "ਪਰਮਾਣਿਤ ਪਰਾਕਸੀ ਸਰਵਰ ਕà©à¨¨à©ˆà¨•ਸ਼ਨ" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ਆਟੋਮੈਟਿਕ ਪਰਾਕਸੀ ਸੰਰਚਨਾ URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ਪਰਾਕਸੀ ਸੈਟਿੰਗ ਯੋਗ ਕਰੋ, ਜਦੋ ਕਿ ਇੰਟਰਨੈੱਟ 'ਤੇ HTTP ਨੂੰ ਵਰਤਦੇ ਹੋ।" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP ਪਰਾਕਸੀ ਪੋਰਟ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP ਪਰਾਕਸੀ ਪਾਸਵਰਡ" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP ਪਰਾਕਸੀ ਪੋਰਟ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP ਪਰਾਕਸੀ ਯੂਜ਼ਰ ਨਾਂ" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "ਜੇਕਰ ਸਹੀ ਹੈ ਤਾਂ, ਪਰਾਕਸੀ ਸਰਵਰ ਤੇ ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਸਮੇ ਪਰਮਾਣਕਿਤਾ ਲਈ ਦੀ ਲੋਡ਼ ਪਵੇਗੀ। ਯੂਜ਼ਰ ਨਾਂ/ਪਾਸਵਰਡ " "ਡੱਬਾ \"/system/http_proxy/authentication_user\" ਅਤੇ \"/system/http_proxy/" "authentication_password\" ਨੇ ਦਿੱਤਾ ਹੈ।" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ਕੋਈ ਪਰਾਕਸੀ ਹੋਸਟ ਨਹੀਂ" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "ਪਰਮਾਣਿਕਤਾ ਨੂੰ ਦੇਣ ਲਈ ਪਾਸਵਰਡ, ਜਦੋਂ ਕਿ HTTP ਪਰਾਕਸੀ ਦੀ ਕਾਰਵਾਈ ਕੀਤੀ ਜਾ ਰਹੀ ਹੋਵੇ।" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "ਪਰਾਕਸੀ ਸੰਰਚਨਾ ਮੋਡ" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS ਪਰਾਕਸੀ ਪੋਰਟ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "ਸà©à¨°à©±à¨–ਿਅਤ HTTP ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "ਸà©à¨°à©±à¨–ਿਅਤ HTTP ਪਰਾਕਸੀ ਪੋਰਟ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "ਪਰਾਕਸੀ ਸੰਰਚਨਾ ਮੋਡ ਦੀ ਚੋਣ ਸੰਭਵ ਮà©à©±à¨² ਹਨ \"ਕà©à¨ ਨਹੀਂ\", \"ਦਸਤੀ\", \"ਆਟੋ\"।" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "ਪਰਾਕਸੀ FTP ਕਰਨ ਵਾਲੀ ਮਸ਼ੀਨ ਦਾ ਨਾਂ ਹੈ।" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "ਮਸ਼ੀਨ ਦਾ ਨਾਂ, ਜਿਸ ਰਾਹੀ ਪਰਾਕਸੀ HTTP ਕਰਨੀ ਹੈ।" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "ਮਸ਼ੀਨ ਦਾ ਨਾਂ, ਜਿਸ ਰਾਹੀ ਪਰਾਕਸੀ ਸà©à¨°à©±à¨–ਿਅਤ HTTP ਕਰਨੀ ਹੈ।" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "ਪਰਾਕਸੀ ਸਾਕਟ ਲਈ ਮਸ਼ੀਨ ਨਾਂ ਹੈ।" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ \"/system/http_proxy/host\" ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ ਰਹੇ ਹੋ।" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ \"/system/proxy/ftp_host\" ਨੇ ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ ਰਹੇ " "ਹੋ।" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ \"/system/proxy/secure_host\" ਨੇ ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ " "ਰਹੇ ਹੋ।" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ\"/system/proxy/socks_host\" ਨੇ ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ ਰਹੇ " "ਹੋ।" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ਇਹ ਕà©à©°à¨œà©€ ਉਹਨਾਂ ਹੋਸਟਾਂ ਦੀ ਸੂਚੀ ਉਪਲੱਬਧ ਕਰਵਾਉਦੀ ਹੈ, ਜੋ ਸਿੱਧੇ ਜà©à¨¡à¨¼à©‡ ਹਨ, ਨਾ ਕਿ ਪਰਾਕਸੀ (ਜੇ ਸਰਗਰਮ " "ਹੈ)। ਮà©à©±à¨² ਹੋਸਟ ਨਾਂ, ਡੋਮੇਨ (ਸ਼à©à¨°à©‚ਆਤੀ wildcard ਜਿਵੇਂ ਕਿ *.foo.com ਵਰਤ ਕੇ ), IP ਹੋਸਟ à¨à¨¡à¨°à©ˆà¨¸ (ਦੋਵੇਂ " "IPv4 ਅਤੇ IPv6) ਅਤੇ ਨੈਟਵਰਕ ਸਿਰਨਾਵੇਂ ਨਾਲ ਨੈੱਟਮਾਸਕ (ਜਿਵੇਂ ਕਿ 192.168.0.0/24)" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL, ਜੋ ਕਿ ਪਰਾਕਸੀ ਸੰਰਚਨਾ ਮà©à©±à¨² ਉਪਲੱਬਧ ਕਰਵਾਉਦਾ ਹੈ।" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP ਪਰਾਕਸੀ ਵਰਤੋਂ" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "ਯੂਜ਼ਰ ਨਾਂ, ਪਰਮਾਣਕਤਾ ਨੂੰ ਲੰਘਣ ਲਈ, ਜਦੋਂ ਕਿ HTTP ਪਰਾਕਸੀਇੰਗ ਕਰ ਰਹੇ ਹੋ।" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ਵਰਕਗਰà©à©±à¨ª" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows ਨੈੱਟਵਰਕ ਵਰਕਗਰà©à©±à¨ª ਜਾਂ ਡੋਮੇਨ, ਜਿਸ ਦਾ ਯੂਜ਼ਰ ਭਾਗ ਹੈ। ਇੱਕ ਨਵੇਂ ਵਰਕਗਰà©à©±à¨ª ਨੂੰ ਪੂਰੀ ਤਰਾਂ ਸਰਗਰਮ " "ਹੋਣ ਲਈ ਯੂਜ਼ਰ ਲਾਗਆਉਟ ਅਤੇ ਮà©à©œ ਲਾਗਇਨ ਕਰ ਸਕਦਾ ਹੈ।" gnome-vfs-2.24.4/po/sr@latin.po0000644000175000001440000016311111354402652013160 00000000000000# Serbian translation of gnome-vfs # Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005, 2006, 2007. # # This file is distributed under the same license as the gnome-vfs package. # # Maintainer: DuÅ¡an Živojnov # Reviewed on 2004-02-03 by: Danilo Å egan # Reviewed on 2005-07-08 by: Danilo Å egan # Reviewed on 2005-09-22 by: Danilo Å egan # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-12-14 21:54+0000\n" "PO-Revision-Date: 2010-03-09 20:37+0100\n" "Last-Translator: Goran Rakić \n" "Language-Team: Serbian (sr) \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 disk" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u sadrži NUL znakove." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ne sadrži ime metoda." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ne sadrži oznaku kraja opcija." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u koristi nepoznate opcije %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ne sadrži ime modula." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Datoteka sa podeÅ¡avanjima „%s“ nije naÄ‘ena: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d je prekinuo raÅ¡Älanjivanje." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Mrežni AFS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Samoprepoznata particija" # bug: does it differentiate between Hurd Ext2 and Linux Ext2? #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "Linuksova Btrfs particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "MuziÄki disk" # bug(slobo): hm, ne bih rekao #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Disk na hardverskom ureÄ‘aju" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "eCryptfs particija" # bug: does it differentiate between Hurd Ext2 and Linux Ext2? #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Linuksova Ekst2 particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Linuksova Ekst3 particija" # bug: does it differentiate between Hurd Ext2 and Linux Ext2? #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "Linuksova Ekst4 particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MekOS particija" # CeDe disk, a ne „Kompaktni disk disk“ #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CD jedinica" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CD jedinica" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Sistemska particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Memorijska particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Miniksova particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Linuksova NFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "Linoksova NILFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netver particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Linuksova Rajzer4 particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Linuksova RajzerFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Deljenia Windows particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD jedinica" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Solarisova Udfs particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Solarisova Pcfs particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sanova SAM-QFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Privremena particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "UnapreÄ‘ena DOS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Linuksova XFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS particija" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Nepoznata" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s particija" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disketa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Kompaktni-fleÅ¡ disk (CF)" # ÄŒarobni Å¡tapić? :) #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memorijski Å¡tapić" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Mudri nosaÄ (SM)" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC nosaÄ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Džez disk" # :) #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Olovkasti disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s puÅ¡taÄ muzike" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitalni fotoaparat" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "UreÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Spoljni %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "ObiÄan disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Prazan jednom-upisiv disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Jednom-upisiv disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Prazan piÅ¡i-briÅ¡i disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "PiÅ¡i-briÅ¡i disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "ObiÄan DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Prazan - DVD memorijski disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Memorijski - DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Prazan jednom upisivi - DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Jednom upisivi - DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Prazan piÅ¡i-briÅ¡i DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "PiÅ¡i-briÅ¡i DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Prazan jednom upisivi + DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Jednom upisivi + DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Prazan piÅ¡i+briÅ¡i DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "PiÅ¡i+briÅ¡i DVD disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ZvuÄni disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Uklonjivi %s disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Nepoznat tip operacije %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ne mogu napraviti cevku za otvoreni GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Nepoznata vrsta posla %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Radnja je zaustavljena" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "PrevaziÄ‘ena funkcija. Izmene korisnika u MIME bazi viÅ¡e nisu podržane." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ne mogu raÅ¡Älaniti: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Ostale greÅ¡ke u obradi će biti zanemarene." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nema greÅ¡ke" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Datoteka nije naÄ‘ena" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "OpÅ¡ta greÅ¡ka" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "UnutraÅ¡nja greÅ¡ka" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Neispravni parametri" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operacija nije podržana" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "U/I greÅ¡ka" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Podaci oÅ¡tećeni" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Oblik nije ispravan" # bug: is file handle the same as file descriptor? #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "LoÅ¡a ruÄka datoteke" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Datoteka je prevelika" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nema viÅ¡e prostora na ureÄ‘aju" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistem datoteka samo za Äitanje" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Neispravna adresa" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Datoteka nije otvorena" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "NaÄin otvaranja nije ispravan" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Pristip odbijen" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "PreviÅ¡e otvorenih datoteka" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Kraj datoteke" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nije fascikla" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operacija u toku" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operacija prekinuta" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Datoteka postoji" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "PronaÄ‘ene kružne veze" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operacija nije dozvoljena" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Jeste fascikla" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nema dovoljno memorije" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "RaÄunar nije naÄ‘en" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Ime raÄunara nije ispravno" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "RaÄunar nema adresu" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "NeuspeÅ¡na prijava" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Radnja je obustavljena" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Zauzet direktorijum" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Direktorijum nije prazan" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "PreviÅ¡e veza" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Neupisiv sistem datoteka" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nije na istom sistemu datoteka" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Ime je predugaÄko" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Usluga nije dostupna" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Zahtev zastareva podatke usluge" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "GreÅ¡ka u protokolu" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ne mogu pronaći glavni razgledaÄ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nije dodeljeno uobiÄajeno dejstvo" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Nema rukovaoca za vrstu adrese (URL-a)" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "GreÅ¡ka pri Äitanju naredbe" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "GreÅ¡ka pri pokretanju naredbe" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Dostignut rok" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "GreÅ¡ka sa serverom imena" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Resurs je zakljuÄan" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Poziv funkcije je prevaziÄ‘en" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Neispravno ime datoteke" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nije simboliÄka veza" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Nepoznata greÅ¡ka" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajt" msgstr[1] "%u bajta" msgstr[2] "%u bajtova" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (neispravan Unikod)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disketa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RV" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RV" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RV/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RV/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RV/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RV/DVD-RV" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" # ÄŒarobni Å¡tapić? :) #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memorijski Å¡tapić" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Mudri nosaÄ (SM)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Fotoaparat" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Koreni disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "MuziÄki disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Nepoznati disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Mrežni server" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ne mogu da prikljuÄim disketu. Verovatno disketa nije u ureÄ‘aju. " #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ne mogu da prikljuÄim disk. Verovatno nema nosaÄa u ureÄ‘aju. " #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ne mogu da prikljuÄim disketu. Verovatno je disketa u zapisu koji se ne može " "Äitati." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ne mogu da prikljuÄim disk. Ako je on Å¡ifrovan, tada je bila iskorišćena " "pogreÅ¡na lozinka ili kljuÄ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ne mogu da prikljuÄim izabrani disk. Verovatno je disk u zapisu koji se ne " "može Äitati." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ne mogu da prikljuÄim izabranu disketu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ne mogu da prikljuÄim izabrani disk." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ne mogu da odspojim izabrani disk. Njega verovatno koristi neki program ili " "programi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ne mogu da odspojim izabrani disk." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "NeuspeÅ¡no Äitanje datoteke iz naslednog procesa %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ne mogu da pokrenem proces prikljuÄenja u lažnom terminalu" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "NeoÄekivana greÅ¡ka u funkciji select() pri Äitanju podataka u naslednom " "procesu (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Ne mogu da poÅ¡aljem lozinku procesu koji prikljuÄuje" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "NeoÄekivana greÅ¡ka unutar izvrÅ¡enja funkcije waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "NeuspeÅ¡no pokretanje naredbe" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ne mogu da izbacim nosaÄ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ne mogu da odspojim prikljuÄeni server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Mreža" #: ../modules/computer-method.c:561 msgid "Home" msgstr "LiÄni" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistem datoteka" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Nepoznato GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows mreža" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identitet udaljenog raÄunara (%s) nije poznat." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ovo se dogaÄ‘a kada se po prvi put prijavite na raÄunar.\n" "\n" "Identitet koji je poslao udaljeni raÄunar je %s. Ukoliko želite da budete " "potpuno sigurni da je bezbedno da nastavite, stupite u vezu sa " "administratorom sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Ipak se prijavi" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Otkaži prijavu" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nisam naÅ¡ao ispravnu datoteku sa podeÅ¡avanjima u %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Koristite promenljivu okruženja %s da naznaÄite drugu putanju.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "VaÅ¡ HTTP posrednik zahteva prijavu.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Morate se prijaviti kako biste pristupili „%s“.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Lozinka će biti preneta nezaÅ¡tićena." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Lozinka će biti Å¡ifrovana pre prenosa." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Morate se prijaviti kako biste pristupili %s, domen %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Morate se prijaviti kako biste pristupili %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Podrazumevani program za pregled delova" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Podrazumevani terminalski program" # bug: no slang, s/exec/execut.../? #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument izvrÅ¡avanja za podrazumevani terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Program koji se koristi za pregledanje datoteka koje zahtevaju komponentu za " "pregled. Parametar %s će biti zamenjen adresom datoteke, a parametar %c će " "biti zamenjen IID-om komponente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Podrazumevani terminalski program koji se koristi za programe kojima je " "neophodan terminal." # bug: no slang, s/exec/execute.../? #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argument izvrÅ¡avanja za podrazumevani terminalski program." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Pokreni naredbu u terminalu" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „aim“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „callto“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „ghelp“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „h323“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „http“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „https“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „info“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „mailto“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „man“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Naredba korišćena za baratanje „trash“ adresama, ako je ukljuÄeno." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Rukovaoc „aim“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Rukovaoc „callto“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Rukovaoc „ghelp“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Rukovaoc „h323“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Rukovaoc „http“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Rukovaoc „https“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Rukovaoc „info“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Rukovaoc „mailto“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Rukovaoc „man“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Rukovaoc „trash“ adresama" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „aim“ " "adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„callto“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„ghelp“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„h323“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„http“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„https“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„info“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„mailto“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „man“ " "adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " "„trash“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u " "terminalu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Da li navedena naredba treba da se koristi za „aim“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Da li navedena naredba treba da se koristi za „callto“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Da li navedena naredba treba da se koristi za „ghelp“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Da li navedena naredba treba da se koristi za „h323“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Da li navedena naredba treba da se koristi za „http“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Da li navedena naredba treba da se koristi za „https“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Da li navedena naredba treba da se koristi za „info“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Da li navedena naredba treba da se koristi za „mailto“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Da li navedena naredba treba da se koristi za „man“ adrese." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Da li navedena naredba treba da se koristi za „trash“ adrese." #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Zapetom razdvojen spisak DNS-SD domena koji su dostupni na putanji " "„network:///." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dopunski domeni na kojima da traži DNS-SD usluge" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Kako da prikazuje lokalnu DNS-SD uslugu" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "DopuÅ¡tene vrednosti su „merged“ (spojeno), „separate“ (razdvojeno) i " "„disabled“ (iskljuÄeno)." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Identifikuj veze sa posredniÄkim serverom" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Adresa za samopodeÅ¡avanje posrednika" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "UkljuÄuje podeÅ¡avanja posrednika pri pristupu vebu preko Interneta." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Ime FTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port FTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Ime HTTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Lozinka HTTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port HTTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Korisnik HTTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ukoliko je postavljeno, veze sa posredniÄkim serverom se identifikuju. Par " "korisnik/lozinka se uzima iz „/system/http_proxy/authentication_user“ i „/" "system/http_proxy/authentication_password“." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "BesposredniÄke adrese" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Lozinka koja se koristi za identifikaciju kod veb posrednika." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "NaÄin podeÅ¡avanja posrednika" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Ime SOCKS posrednika" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port SOCKS posrednika" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Ime bezbednog HTTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port bezbednog HTTP posrednika" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Izaberite režim podeÅ¡avanja posrednika. DopuÅ¡tene vrednosti su „none“, " "„manual“ i „auto“." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Ime raÄunara za FTP posredovanje." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Ime raÄunara za veb (HTTP) posredovanje." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Ime raÄunara za bezbedno veb (HTTPS) posredovanje." # bug: s/socks/SOCKS/ #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Ime raÄunara za SOCKS posredovanje." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "Port raÄunara datog u „/system/http_proxy/host“ kroz koji posreduje." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "Port raÄunara datog u „/system/proxy/ftp_proxy“ kroz koji posreduje." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port raÄunara datog u „/system/proxy/secure_proxy“ kroz koji posreduje." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port maÅ¡ine odreÄ‘ene pomoću „/system/proxy/socks_proxy“ koja je posrednik." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ovaj kljuÄ sadrži spisak raÄunara koji su neposredno povezani, umesto putem " "posrednika (ukoliko je u dejstvu). Ove vrednosti mogu biti imena raÄunara, " "domeni (pomoću poÄetnih navoda kao Å¡to je *.neÅ¡to.iju), IP adrese raÄunara " "(bilo IP4 bilo IP6) i adrese mreža uz mrežnu masku (neÅ¡to kao Å¡to je " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "Adresa koja obezbeÄ‘uje vrednosti za podeÅ¡avanje posrednika." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Koristi veb posrednika" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "KorisniÄko ime koje se Å¡alje pri identifikaciji kod veb posrednika." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB radna grupa" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Radna grupa ili domen Windows mreže Äiji je korisnik Älan. Da bi nova radna " "grupa uzela maha korisnik će možda morati da se odjavi i ponovo prijavi." #~ msgid "Could not initialize Bonobo" #~ msgstr "Ne mogu da pokrenem Bonobo" # Gnomov Virtuelni Sistem Datoteka — VSD? Ili Gnomovo „oponaÅ¡anje sistema datoteka“ — OSD? #~ msgid "Could not initialize gnome vfs" #~ msgstr "Ne mogu da pokrenem Gnomovo oponaÅ¡anje sistema datoteka" #~ msgid "Standard Moniker factory" #~ msgstr "Proizvodnja obiÄnog nadimka" #~ msgid "file MonikerExtender" #~ msgstr "datoteka MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "osnovni nadimak Gnomovog oponaÅ¡avaÄa sistema datoteka" #~ msgid "generic file moniker" #~ msgstr "osnovni nadimak datoteke" #~ msgid "Display SCSI drives" #~ msgstr "Prikaži SCSI ureÄ‘aje" #~ msgid "Display SCSI optical drives" #~ msgstr "Prikaži optiÄke SCSI ureÄ‘aje" #~ msgid "Display drives with removable media" #~ msgstr "Prikaži ureÄ‘aje sa uklonjivim nosaÄima" #~ msgid "Display external drives" #~ msgstr "Prikaži spoljaÅ¡nje ureÄ‘aje" #~ msgid "Display internal hard drives" #~ msgstr "Prikaži unutraÅ¡nje tvrde diskove" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Da li da prikazuje optiÄke SCSI ureÄ‘aje Äak i ako je /system/storage/" #~ "display_scsi_drives iskljuÄen." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "Da li da prikazuje ureÄ‘aje i prikljuÄive diskove sa SCSI ureÄ‘aja." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Da li da prikazuje ureÄ‘aje i prikljuÄive diskove sa ureÄ‘aja sa uklonjivim " #~ "nosaÄima (npr. ureÄ‘aji gde se nosaÄ može ubaciti i izbaciti)." # bug: hotpluggable is technobabble, second part of "eg." should be enough #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Da li da prikazuje ureÄ‘aje i prikljuÄive diskove sa spoljaÅ¡njih ureÄ‘aja " #~ "(npr. ureÄ‘aji koji se mogu prikljuÄiti u toku rada)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Da li da prikazuje ureÄ‘aje i prikljuÄive diskove sa unutraÅ¡njih tvrdih " #~ "diskova (otpiÄki ne-SCSI diskovi se uvek prikazuju)." #~ msgid "The window workgroup the user is part of" #~ msgstr "Vindouz radna grupa koje je korisnik Älan" #~ msgid "Optical Disc" #~ msgstr "OptiÄki disk" # ÄŒarobni Å¡tapić? :) #~ msgid "Memory Stick Media" #~ msgstr "Memorijski Å¡tapić (MS)" #~ msgid "Smart Media Media" #~ msgstr "Mudri nosaÄ (SM)" #~ msgid "Mac OS disk" #~ msgstr "MekintoÅ¡ disk" #~ msgid "Mac OS X disk" #~ msgstr "MekintoÅ¡ OS-Iks disk" # Transkripcija na nivou ;-) #~ msgid "Windows Disk" #~ msgstr "Vinduz disk" #~ msgid "Linux Disk" #~ msgstr "Linuks disk" #~ msgid "File could not be opened: %s" #~ msgstr "Datoteka se ne može otvoriti: %s" # bug: inconsistent wording with above "Bookmark saving failed" [eg. "Failed to save a bookmark" would be one way to solve it] #~ msgid "Failed to open file '%s': %s" #~ msgstr "NeuspeÅ¡no otvaranje datoteke „%s“: %s" #~ msgid "File is empty" #~ msgstr "Datoteka je prazna" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "„.desktop“ datoteka sadrži red „%s“ koji nije unos, grupa ni primedba" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "„.desktop“ datoteka ne poÄinje sa ispravnom poÄetnom grupom" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "„.desktop“ datoteka sadrži red „%s“ koji nije UTF-8" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "„.desktop“ datoteka koristi nepoznato kodiranje „%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries do not have group '%s'" #~ msgstr "„.desktop“ datoteka nema grupu „%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries do not have key '%s'" #~ msgstr "„.desktop“ datoteka nema kljuÄ â€ž%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "„.desktop“ datoteka sadrži kljuÄ â€ž%s“ koji ima vrednost koja se ne može " #~ "razumeti." # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "„.desktop“ datoteka ne sadrži prevod vrednosti kljuÄa „%s“ u lokalitetu „%" #~ "s“." # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "„.desktop“ datoteka sadrži neispravan znak za isticanje „%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "" #~ "„.desktop“ datoteka sadrži neispravan znak za isticanje na kraju reda" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Vrednost „%s“ se ne može posmatrati kao broj." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Vrednost „%s“ se ne može posmatrati kao istinitosna vrednost." #~ msgid "Applications" #~ msgstr "Programi" #~ msgid "Cards" #~ msgstr "Karte" #~ msgid "Files" #~ msgstr "Datoteke" #~ msgid "Folders" #~ msgstr "Fascikle" #~ msgid "Help" #~ msgstr "Pomoć" #~ msgid "Hosts" #~ msgstr "RaÄunari" #~ msgid "Links" #~ msgstr "Veze" #~ msgid "Mail" #~ msgstr "PoÅ¡ta" #~ msgid "Tools" #~ msgstr "Alati" #~ msgid "Windows" #~ msgstr "Prozori" # bug: Compact Disk Disk? #~ msgid "CD Disc" #~ msgstr "CD disk" # bug: inconsistent with other strings which use "...to handle \"h323\" URLs..." #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "Naredba korišćena za baratanje „http“ adresama, ako je ukljuÄeno." # bug: inconsistent with other strings which use "...to handle \"h323\" URLs..." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "Naredba korišćena za baratanje „https“ adresama, ako je ukljuÄeno." # bug: inconsistent with other strings; should be "The handler for \"http\" URLs" #~ msgid "The handler for HTTP URLs" #~ msgstr "Rukovaoc „http“ adresama" # bug: inconsistent with other strings; should be "The handler for \"https\" URLs" #~ msgid "The handler for HTTPS URLs" #~ msgstr "Rukovaoc „https“ adresama" # bug: inconsistent; should be "...should handle \"http\" URLs." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " #~ "„http“ adrese." # bug: inconsistent; should be "...should handle \"https\" URLs." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za " #~ "„https“ adrese." # bug: inconsistent; should be "...should handle \"http\" URLs". #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "Da li navedena naredba treba da se koristi za „http“ adrese." # bug: inconsistent; should be "...should handle \"https\" URLs". #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "Da li navedena naredba treba da se koristi za „https“ adrese." #~ msgid "H323 URL handler" #~ msgstr "Rukovalac H323 adresama" #~ msgid "HTTP URL handler" #~ msgstr "Rukovalac HTTP adresama" #~ msgid "HTTPS URL handler" #~ msgstr "Rukovalac HTTPS adresama" #~ msgid "Handle callto URLs" #~ msgstr "Barataj callto adresama" #~ msgid "Handle ghelp URLs" #~ msgstr "Barataj ghelp adresama" #~ msgid "Handle info URLs" #~ msgstr "Barataj info adresama" #~ msgid "Handle mailto URLs" #~ msgstr "Barataj mailto adresama" #~ msgid "Handle man URLs" #~ msgstr "Barataj man adresama" #~ msgid "Handle trash URLs" #~ msgstr "Barataj trash adresama" #~ msgid "callto URL handler" #~ msgstr "Rukovalac callto adresama" #~ msgid "ghelp URL handler" #~ msgstr "Rukovalac ghelp adresama" #~ msgid "info URL handler" #~ msgstr "Rukovalac info adresama" #~ msgid "mailto URL handler" #~ msgstr "Rukovalac mailto adresama" #~ msgid "man URL handler" #~ msgstr "Rukovalac man adresama" #~ msgid "trash URL handler" #~ msgstr "Rukovalac trash adresama" #~ msgid "Bookmark saving failed (%s)" #~ msgstr "NeuspeÅ¡no Äuvanje obeleživaÄa (%s)" #~ msgid "Could not get information for file '%s': %s" #~ msgstr "Ne mogu da saznam podatke o datoteci „%s“: %s" # bug: as above [inconsistent wording] #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "NeuspeÅ¡no uÄitavanje slike „%s“: razlog nepoznat, verovatno oÅ¡tećena " #~ "datoteka slike" #~ msgid "How to handle http URLs" #~ msgstr "Kako baratati http adresama" #~ msgid "How to handle https URLs" #~ msgstr "Kako baratati https adresama" #~ msgid "Set to true to have a program specified in command handle https URLs" #~ msgstr "" #~ "UkljuÄite ako želite da program naveden u naredbi barata https adresama" #~ msgid "" #~ "Set to true to have a program specified in programs/ghelp handle ghelp " #~ "URLs" #~ msgstr "" #~ "UkljuÄite ako želite da program naveden u programs/ghelp barata ghelp " #~ "adresama" #~ msgid "" #~ "Set to true to have a program specified in programs/info handle info URLs" #~ msgstr "" #~ "UkljuÄite ako želite da program naveden u programs/info barata info " #~ "adresama" #~ msgid "" #~ "Set to true to have a program specified in programs/man handle man URLs" #~ msgstr "" #~ "UkljuÄite ako želite da program naveden u programs/man barata man adresama" #~ msgid "URL handler for h323 uris" #~ msgstr "Rukovaoc h323 adresama" #~ msgid "URL handler for http uris" #~ msgstr "Rukovaoc http adresama" #~ msgid "URL handler for https uris" #~ msgstr "Rukovaoc https adresama" #~ msgid "Hosts are not contacted via the proxy" #~ msgstr "RaÄunarima se ne pristupa preko posrednika" #~ msgid "The machine name to proxy http through." #~ msgstr "Ime raÄunara HTTP posrednika." #~ msgid "Use proxy settings when accessing http" #~ msgstr "Koristi podeÅ¡avanja posrednika pri pristupu vebu" #~ msgid "http proxy password" #~ msgstr "Lozinka HTTP posrednika" #~ msgid "http proxy username" #~ msgstr "KorisniÄko ime HTTP posrednika" # bug: plural-forms #~ msgid "1 byte" #~ msgstr "1 bajt" gnome-vfs-2.24.4/po/wa.po0000644000175000001440000007750711334251016012022 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Free Software Foundation, Inc. # Pablo Saratxaga , 2001,2002,2003. # Pablo Saratxaga , 2003, 2004. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 1.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-01-17 16:37+0100\n" "Last-Translator: Pablo Saratxaga \n" "Language-Team: Walloon \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: KBabel 1.0.2\n" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "Dji n' sai inicialijhî Bonobo" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d a des caracteres vudes (NUL) Ã¥ dvins." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d ni contént nou no d' metôde." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d n' a nén d' etikete di fén d' tchuze." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d ni contént nou no d' module." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Li fitchî d' apontiaedje «%s» n' a nén stî trové: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "Volume AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "Volume oto-detecté" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Volume Linux ext2" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Volume linux ext3" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "Volume MS-DOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "Volume MacOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "Volume JFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Volume Windows NT" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Volume Minix" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Volume Netware" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "Volume Linux ReiserFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "Volume SuperMount" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "Volume DVD" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Volume Solaris/BSD" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Volume Solaris udfs" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Volume Solaris pcfs" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 #, fuzzy msgid "Sun SAM-QFS Volume" msgstr "Volume AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "Volume DOS sitindou" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Volume Windows VFAT" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Volume Xenix" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "Volume Linux XFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "Volume XIAFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Nén cnoxhou" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Sôre op %u nén cnoxhou" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Dji n' a savou fé ene buze po drovi l' canÃ¥ GIOChannel: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Sôre di bouye %u nén cnoxhowe" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "OperÃ¥cion djokêye" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Dji n' sai analijhî: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "Les arokes d' analijhaedje ki shuront sront passêyes houte" #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Nole aroke" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "fitchî nén trové" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Aroke djenerike" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Divintrinne aroke" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Parametes nén valÃ¥ves" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "OperÃ¥cion nén sopoirtêye" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "Aroke d' I/R" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Crombès dnêyes" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Cogne nén valÃ¥ve" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "MÃ¥le pougneye di fitchî" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Fitchî pÃ¥r trop lÃ¥dje" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "I gn a pupont d' plaece so l' éndjin" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "Sistinme di fitchîs k' on pout seulmint lére" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "HÃ¥rdêye nén valÃ¥ve" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Fitchî nén drovi" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Môde di drovaedje nén valÃ¥ve" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Accès nén permetou" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "I gn a pÃ¥r trop di fitchîs di drovîs" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Fén do fitchî" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Nén on ridant" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Avançmint del operÃ¥cion" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "OperÃ¥cion djokêye" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Li fitchî egzistêye dedja" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Betchfessîs loyéns di trovés" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "OperÃ¥cion nén permetowe" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "C' est on ridant" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "I gn a pont del memwere assez" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Lodjoe nén trové" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Li no do lodjoe n' est nén valÃ¥ve" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "Li lodjoe n' a nole adresse" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "L' elodjaedje a fwait berwete" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "OperÃ¥cion rinonceye" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Ridant ocupé" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Ridant nén vude" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "I gn a pÃ¥r trop d' loyéns" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "sistinme di fitchîs k' on pout seulmint lére" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Nén sol minme sistinme di fitchîs" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Li no est pÃ¥r trop long" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "Siervice nén disponibe" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Li dmande rind obsolete les dnêyes do sierveu" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Aroke di protocole" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Dji n' sai trover on mwaisse foyteu" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Nole prémetowe accion d' associeye" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Ã…k n' a nén stî tot analijhant li roye di cmande" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Ã…k n' a nén stî tot-z enondant l' comande" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "Aroke djenerike" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Aroke nén cnoxhowe" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u octet" msgstr[1] "%u octets" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "%.1f Ko" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f Mo" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f Go" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (unicôde nén valide)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "Plakete" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 #, fuzzy msgid "CD-R" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 #, fuzzy msgid "CD-RW" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 #, fuzzy msgid "DVD-ROM" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 #, fuzzy msgid "DVD-RAM" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 #, fuzzy msgid "CD-ROM/DVD-ROM" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 #, fuzzy msgid "CD-ROM/DVD-RAM" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 #, fuzzy msgid "CD-ROM/DVD-R" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 #, fuzzy msgid "CD-ROM/DVD-RW" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #, fuzzy msgid "CD-R/DVD-ROM" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 #, fuzzy msgid "CD-RW/DVD-ROM" msgstr "Plake lazer" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 #, fuzzy msgid "USB Drive" msgstr "Plakete ZIP" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "Clé di memwere" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 #, fuzzy msgid "Smart Media" msgstr "Clé di memwere" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "Plakete ZIP" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Camera" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "Volume raecene" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "Plake lazer odio" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "Volume nén cnoxhou" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "Sierveu rantoele" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "Dji n' a nén savou enonder li cmande" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "Dji n' sai fé rexhe li sopoirt" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "Dji n' sai nén dismonter li sierveu raloyî" #: modules/computer-method.c:545 msgid "Network" msgstr "Rantoele" #: modules/computer-method.c:563 msgid "Home" msgstr "MÃ¥jhon" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "Sistinme di fitchîs" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d nén cnoxhou" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Rantoele Windows" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Dji n' a nén trové di fitchî d' apontiaedjes valide e %s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Eployî li variÃ¥ve d' evironmint %s po specifyî on eplaeçmint diferin.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "" #, fuzzy #~ msgid "CD-ROM Disc" #~ msgstr "Plake lazer" #, fuzzy #~ msgid "Audio Disc" #~ msgstr "Plake lazer odio" #, fuzzy #~ msgid "Memory Stick Media" #~ msgstr "Clé di memwere" #, fuzzy #~ msgid "Floppy Disk" #~ msgstr "Plakete" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "Purneas" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "Dji n' sai analijhî: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "Li fitchî egzistêye dedja" #~ msgid "Applications" #~ msgstr "Programes" #~ msgid "Cards" #~ msgstr "CÃ¥tes" #~ msgid "Files" #~ msgstr "Fitchîs" #~ msgid "Folders" #~ msgstr "Ridants" #~ msgid "Help" #~ msgstr "Aidance" #~ msgid "Hosts" #~ msgstr "Lodjoes" #~ msgid "Links" #~ msgstr "Loyéns" #~ msgid "Mail" #~ msgstr "Emilaedje" #~ msgid "Tools" #~ msgstr "Usteyes" #~ msgid "Windows" #~ msgstr "Purneas" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "MÃ¥le pougneye di fitchî" gnome-vfs-2.24.4/po/sv.po0000644000175000001440000016553411334251016012041 00000000000000# Swedish messages for gnome-vfs. # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc. # Daniel Nylander , 2006, 2008. # Martin Norbäck , 2000, 2001. # Christian Rose , 2000, 2001, 2002, 2003, 2004, 2005. # # $Id: sv.po,v 1.104 2006/08/16 06:07:11 dnylande Exp $ # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-09-30 09:58+0200\n" "PO-Revision-Date: 2009-09-30 09:58+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" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660-volym" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u innehÃ¥ller NUL-tecken." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u innehÃ¥ller inget metodnamn." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u har ingen slutmarkör för flaggor." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u har okända flaggor %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u innehÃ¥ller inget modulnamn." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Konfigurationsfilen \"%s\" hittades inte: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d avbröt tolkning." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS-nätverksvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatiskt upptäckt volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Cd-romenhet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Digitalt cd-ljud" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "HÃ¥rdvaruenhetsvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Cd-romvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs-cdromvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Systemvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Minnesvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minixvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS-nätverksvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Delad Windowsvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs-Solarisvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs-Solarisvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Temporärvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Förbättrad DOS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenixvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS-Linuxvolym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS-volym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Okänd" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-volym" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "Cd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "Cd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "Cd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "Dvd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "Dvd+r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "Dvd+rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "Dvd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "Dvd-rw" # http://www.nada.kth.se/dataterm/rek.html#a23 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "Dvd-ram" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "Dvd±r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "Dvd±rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-enhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-enhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskettenhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash-enhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Minnespinnesenhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media-enhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC-enhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zipenhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jazenhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pennenhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s-musikspelare" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s-digitalkamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Enhet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Extern %s" # http://www.nada.kth.se/dataterm/rek.html#a23 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Cd-romskiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Tom cd-r-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Cd-r-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Tom cd-rw-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Cd-rw-skiva" # http://www.nada.kth.se/dataterm/rek.html#a23 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Dvd-romskiva" # http://www.nada.kth.se/dataterm/rek.html#a23 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Tom dvd-ramskiva" # http://www.nada.kth.se/dataterm/rek.html#a23 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Dvd-ramskiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Tom dvd-r-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Dvd-r-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Tom dvd-rw-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Dvd-rw-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Tom dvd+r-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Dvd+r-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Tom dvd+rw-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Dvd+rw-skiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Ljudskiva" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s flyttbar volym" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volym" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Okänd operationstyp %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 #: ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kan inte skapa rör till öppen GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Okänd jobbtyp %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operationen stoppad" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "FörÃ¥ldrad funktion. Användarändringar i MIME-databasen stöds inte längre." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Kunde inte tolka: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Fler tolkningsfel kommer att ignoreras." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Inget fel" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Filen kunde inte hittas" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Allmänt fel" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Internt fel" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ogiltiga parametrar" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operationen stöds inte" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O-fel" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Korrupt data" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Ogiltigt format" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Felaktigt filhandtag" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Filen är för stor" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ingen plats kvar pÃ¥ enheten" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Filsystemet är skrivskyddat" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ogiltig URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Filen är inte öppen" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Ogiltigt öppningsläge" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Ã…tkomst nekad" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "För mÃ¥nga öppna filer" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Slut pÃ¥ filen" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Inte en katalog" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operationen pÃ¥gÃ¥r" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operationen avbruten" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Filen finns" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Slinga i länkar pÃ¥träffad" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operationen är inte tillÃ¥ten" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Är en katalog" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Inte tillräckligt med minne" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Värddatorn kunde inte hittas" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Värddatornamnet är inte giltigt" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Värddatorn har ingen adress" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Inloggning misslyckades" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operationen avbröts" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Katalogen är upptagen" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Katalogen är inte tom" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "För mÃ¥nga länkar" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Skrivskyddat filsystem" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Inte pÃ¥ samma filsystem" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Namnet är för lÃ¥ngt" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Tjänsten är inte tillgänglig" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Begäran förÃ¥ldrar tjänstens data" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokollfel" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Kunde inte hitta huvudbläddrare" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Ingen standardÃ¥tgärd associerad" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ingen hanterare för URL-schema" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Fel vid tolkning av kommandorad" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Fel vid start av kommando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Tidsgräns nÃ¥ddes" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Namnserverfel" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Resursen är lÃ¥st" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Funktionsanropet är förÃ¥ldrat" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ogiltigt filnamn" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Inte en symbolisk länk" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Okänt fel" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u byte" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f kB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ogiltig Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskett" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "Cd-rom/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "Cd-rom/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "Cd-rom/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "Cd-rom/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "Cd-rom/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "Cd-r/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "Cd-r/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "Cd-r/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "Cd-rw/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "Cd-rw/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "Cd-rw/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "Cd-rw/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-enhet" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-enhet" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Minnespinne" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "Dvd" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Rotvolym" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Ljud-cd" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Okänd volym" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Nätverksserver" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Kan inte montera diskettenheten. Det finns troligtvis ingen diskett i enheten." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Kan inte montera volymen. Det finns troligtvis inget medium i enheten." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "Unable to mount the floppy drive. The floppy is probably in a format that cannot be mounted." msgstr "Kan inte montera diskettenheten. Disketten är troligtvis i ett format som inte kan monteras." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "Unable to mount the volume. If this is an encrypted drive, then the wrong password or key was used." msgstr "Kunde inte montera volymen. Om det här är en krypterad enhet sÃ¥ användes fel lösenord eller nyckel." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "Unable to mount the selected volume. The volume is probably in a format that cannot be mounted." msgstr "Kan inte montera den valda volymen. Volymen är troligtvis i ett format som inte kan monteras." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Kan inte montera den valda diskettenheten." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Kan inte montera den valda volymen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "Unable to unmount the selected volume. The volume is in use by one or more programs." msgstr "Kunde inte avmontera den valda volymen. Volymen används av ett eller flera program." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Kan inte avmontera den valda volymen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Misslyckades med att läsa data frÃ¥n barnprocess %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Kunde inte köra monteringsprocess i en pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Oväntat fel i select() vid läsning av data frÃ¥n en barnprocess (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Kunde inte skicka lösenord till monteringsprocess." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Oväntat fel i waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Misslyckades med att starta kommando" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Kan inte mata ut medium" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Kan inte avmontera ansluten server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Nätverk" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Hem" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Filsystem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Okänd GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows-nätverk" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identiteten pÃ¥ fjärrdatorn (%s) är okänd." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely sure it is safe to continue, contact the system administrator." msgstr "" "Detta händer när du loggar in pÃ¥ en dator för första gÃ¥ngen.\n" "\n" "Identiteten som skickats av fjärrdatorn är %s. Om du vill vara absolut säker pÃ¥ att det är säkert att fortsätta bör du kontakta systemadministratören." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Logga in ändÃ¥" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Avbryt inloggning" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Hittade ingen giltig inställningsfil vid %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Använd miljövariabeln %s för att ange en annan plats.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Din HTTP-proxyserver kräver att du loggar in.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Du mÃ¥ste logga in för att komma Ã¥t \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Ditt lösenord kommer att överföras i klartext." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Ditt lösenord kommer att överföras krypterat." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Du mÃ¥ste logga in för att komma Ã¥t %s domän %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Du mÃ¥ste logga in för att komma Ã¥t %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Standardprogram för komponentvisning" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Standardterminalprogram" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exekveringsargument för standardterminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." msgstr "Programmet som används för visning av filer som kräver en komponent för att visa dem. Parametern %s kommer att ersättas av filens URI:er, och parametern %c kommer att ersättas av komponent-IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "The default terminal application to use for applications that require a terminal." msgstr "Standardterminalprogrammet att använda för program som kräver en terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Exekveringsargumentet att använda för standardterminalprogrammet." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Kör kommandot i ett terminalfönster" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"aim\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"callto\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"ghelp\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"h323\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"http\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"https\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"info\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"mailto\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"man\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Kommandot som används för att hantera \"trash\"-URL:er, om aktiverat." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Hanteraren för \"aim\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Hanteraren för \"callto\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Hanteraren för \"ghelp\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Hanteraren för \"h323\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Hanteraren för \"http\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Hanteraren för \"https\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Hanteraren för \"info\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Hanteraren för \"mailto\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Hanteraren för \"man\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Hanteraren för \"trash\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"aim\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "True if the command specified in the \"command\" key should handle \"callto\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"callto\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"ghelp\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "True if the command specified in the \"command\" key should handle \"h323\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"h323\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "True if the command specified in the \"command\" key should handle \"http\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"http\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "True if the command specified in the \"command\" key should handle \"https\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"https\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "True if the command specified in the \"command\" key should handle \"info\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"info\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "True if the command specified in the \"command\" key should handle \"mailto\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"mailto\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "True if the command specified in the \"command\" key should handle \"man\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"man\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "True if the command specified in the \"command\" key should handle \"trash\" URLs." msgstr "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera \"trash\"-URL:er." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"aim\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"callto\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"ghelp\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"h323\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"http\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"https\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"info\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"mailto\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"man\"-URL:er" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Huruvida det angivna kommandot ska hantera \"trash\"-URL:er" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "Comma separated list of DNS-SD domains that should be visible in the \"network:///\" location." msgstr "Kommaseparerad lista med dns-sd-domäner som ska synas pÃ¥ platsen \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Extra domäner som dns-sd-tjänster ska sökas i" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Hur den lokala DNS-SD-tjänsten ska visas" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Möjliga värden är \"merged\", \"separate\" och \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentisera proxyserveranslutningar" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL för automatisk proxykonfiguration" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Aktiverar proxyinställningarna vid Ã¥tkomst av HTTP över Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Värdnamn för FTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port för FTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Värdnamn för HTTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Lösenord för HTTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port för HTTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Användarnamn för HTTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "If true, then connections to the proxy server require authentication. The username/password combo is defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "Om detta är sant kräver anslutningarna till proxyservern autentisering. Användarnamn- och lösenordsparet definieras av \"/system/http_proxy/authentication_user\" och \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Värdnamn för ickeproxyvärdar" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Lösenord att skicka som autentisering vid användning av HTTP-proxyserver." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxykonfigurationsläge" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Värdnamn för SOCKS-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port för SOCKS-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Värdnamn för säker HTTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port för säker HTTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." msgstr "Välj proxykonfigurationsläget. Värden som stöds är \"none\", \"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Namnet pÃ¥ maskinen som ska agera proxyserver för FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Namnet pÃ¥ maskinen som ska agera proxyserver för HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Namnet pÃ¥ maskinen som ska agera proxyserver för säker HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Namnet pÃ¥ maskinen som ska agera proxyserver för socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." msgstr "Porten pÃ¥ maskinen som definieras av \"/system/http_proxy/host\" som du använder som proxyserver." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." msgstr "Porten pÃ¥ maskinen som definieras av \"/system/proxy/ftp_host\" som du använder som proxyserver." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." msgstr "Porten pÃ¥ maskinen som definieras av \"/system/proxy/secure_host\" som du använder som proxyserver." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." msgstr "Porten pÃ¥ maskinen som definieras av \"/system/proxy/socks_host\" som du använder som proxyserver." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "Denna nyckel innehÃ¥ller en lista med värdar som ansluts till direkt istället för att gÃ¥ via proxyservern (om den är igÃ¥ng). Värdena kan vara värdnamn, domäner (genom användning av ett inledande jokertecken som *.blaha.se), IP-värdadresser (bÃ¥de IPv4 och IPv6) och nätverksadresser med en nätmask (nÃ¥gonting liknande 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL som tillhandahÃ¥ller proxykonfigurationsvärden." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Använd HTTP-proxyserver" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Användarnamn att skicka som autentisering vid användning av HTTP-proxyserver." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-arbetsgrupp" #: ../schemas/system_smb.schemas.in.h:2 msgid "The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in." msgstr "Windows-nätverksarbetsgruppen eller -domänen som användaren är del av. För att en ny arbetsgrupp ska börja gälla kan användaren behöva logga ut och in igen." #~ msgid "Could not initialize Bonobo" #~ msgstr "Kunde inte initiera Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Kunde inte initiera gnome-vfs" #~ msgid "Standard Moniker factory" #~ msgstr "Standardmonikerfabrik" #~ msgid "file MonikerExtender" #~ msgstr "MonikerExtender-fil" #~ msgid "generic Gnome VFS moniker" #~ msgstr "allmän Gnome VFS-moniker" #~ msgid "generic file moniker" #~ msgstr "allmän filmoniker" #~ msgid "Display SCSI drives" #~ msgstr "Visa scsi-enheter" #~ msgid "Display SCSI optical drives" #~ msgstr "Visa optiska scsi-enheter" #~ msgid "Display drives with removable media" #~ msgstr "Visa enheter med löstagbara media" #~ msgid "Display external drives" #~ msgstr "Visa externa enheter" #~ msgid "Display internal hard drives" #~ msgstr "Visa interna hÃ¥rddiskar" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Huruvida optiska scsi-enheter ska visas även om /system/storage/" #~ "display_scsi_drives är satt till FALSKT." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "Huruvida enheter och monteringsbara volymer frÃ¥n scsi-enheter." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Huruvida enheter och monteringsbara volymer frÃ¥n enheter med löstagbara " #~ "media ska visas (dvs. enheter där media kan sättas in och tas ut)." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Huruvida enheter och monteringsbara volymer frÃ¥n externa enheter ska " #~ "visas (dvs. hotplug-enheter som kan kopplas in och tas loss medan " #~ "systemet körs)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Huruvida enheter och monteringsbara volymer frÃ¥n interna hÃ¥rddiskar ska " #~ "visas (optiska icke-scsi-enheter visas alltid)." #~ msgid "Memorystick" #~ msgstr "Minnespinne" #~ msgid "Memory stick" #~ msgstr "Minnespinne" #~ msgid "%s Music Player" #~ msgstr "%s-musikspelare" #~ msgid "Music Player" #~ msgstr "Musikspelare" #~ msgid "%s Digital Camera" #~ msgstr "%s-digitalkamera" #~ msgid "Digital Camera" #~ msgstr "Digitalkamera" #~ msgid "The window workgroup the user is part of" #~ msgstr "Fönsterarbetsgruppen som användaren är del av" #~ msgid "" #~ "If true, then connections to the proxy server require authentication. The " #~ "username/password combo defined by \"/system/http_proxy/" #~ "authentication_user\" and \"/system/http_proxy/authentication_password\"." #~ msgstr "" #~ "Om detta är sant kräver anslutningarna till proxyservern autentisering. " #~ "Användarnamn- och lösenordsparet definieras av \"/system/http_proxy/" #~ "authentication_user\" och \"/system/http_proxy/authentication_password\"." #~ msgid "Optical Disc" #~ msgstr "Optisk skiva" #~ msgid "Memory Stick Media" #~ msgstr "Minnespinnemedia" #~ msgid "Smart Media Media" #~ msgstr "Smart Media-media" # Detta handlar om filsystemstypen som finns pÃ¥ skivan/mediumet #~ msgid "Mac OS disk" #~ msgstr "Mac OS-disk" # Detta handlar om filsystemstypen som finns pÃ¥ skivan/mediumet #~ msgid "Mac OS X disk" #~ msgstr "Mac OS X-disk" # Detta handlar om filsystemstypen som finns pÃ¥ skivan/mediumet #~ msgid "Windows Disk" #~ msgstr "Windows-disk" # Detta handlar om filsystemstypen som finns pÃ¥ skivan/mediumet #~ msgid "Linux Disk" #~ msgstr "Linux-disk" #~ msgid "File could not be opened: %s" #~ msgstr "Filen kunde inte öppnas: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "Misslyckades med att öppna filen \"%s\": %s" #~ msgid "File is empty" #~ msgstr "Filen är tom" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "skrivbordsposter innehÃ¥ller raden \"%s\" som inte är en post, grupp eller " #~ "kommentar" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "skrivbordspostfilen börjar inte med en tillÃ¥ten startgrupp" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "skrivbordsposter innehÃ¥ller raden \"%s\" som inte är UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "skrivbordsposter innehÃ¥ller okända kodningen \"%s\"" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "skrivbordsposter har inte gruppen \"%s\"" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "skrivbordsposter har inte nyckeln \"%s\"" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "skrivbordsposter innehÃ¥ller nyckeln \"%s\" som har ett värde som inte kan " #~ "tolkas." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "skrivbordsposter innehÃ¥ller inget översatt värde för nyckeln \"%s\" i " #~ "lokalen \"%s\"." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "skrivbordsposter innehÃ¥ller ogiltiga kontrollsekvensen \"%s\"" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "skrivbordsposter innehÃ¥ller kontrolltecken vid radslut" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Värdet \"%s\" kan inte tolkas som ett tal." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Värdet \"%s\" kan inte tolkas som ett booleskt värde." #~ msgid "Applications" #~ msgstr "Program" #~ msgid "Cards" #~ msgstr "Kort" #~ msgid "Files" #~ msgstr "Filer" #~ msgid "Folders" #~ msgstr "Mappar" #~ msgid "Help" #~ msgstr "Hjälp" #~ msgid "Hosts" #~ msgstr "Värdar" #~ msgid "Links" #~ msgstr "Länkar" #~ msgid "Mail" #~ msgstr "E-post" #~ msgid "Tools" #~ msgstr "Verktyg" # Osäker. Är det operativsystemet eller fönster? #~ msgid "Windows" #~ msgstr "Fönster" #~ msgid "CD Disc" #~ msgstr "Cd-skiva" #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "Kommandot som används för att hantera HTTP-URL:er, om aktiverat." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "Kommandot som används för att hantera HTTPS-URL:er, om aktiverat." #~ msgid "The handler for HTTP URLs" #~ msgstr "Hanteraren för HTTP-URL:er" #~ msgid "The handler for HTTPS URLs" #~ msgstr "Hanteraren för HTTPS-URL:er" #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera HTTP-" #~ "URL:er." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Sant om kommandot som är angivet i nyckeln \"command\" ska hantera HTTPS-" #~ "URL:er." #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "Huruvida det angivna kommandot ska hantera HTTP-URL:er" #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "Huruvida det angivna kommandot ska hantera HTTPS-URL:er" #~ msgid "H323 URL handler" #~ msgstr "Hanterare för H323-URL:er" #~ msgid "HTTP URL handler" #~ msgstr "Hanterare för HTTP-URL:er" #~ msgid "HTTPS URL handler" #~ msgstr "Hanterare för HTTPS-URL:er" #~ msgid "Handle callto URLs" #~ msgstr "Hantera callto-URL:er" #~ msgid "Handle ghelp URLs" #~ msgstr "Hantera ghelp-URL:er" #~ msgid "Handle info URLs" #~ msgstr "Hantera info-URL:er" #~ msgid "Handle mailto URLs" #~ msgstr "Hantera mailto-URL:er" #~ msgid "Handle man URLs" #~ msgstr "Hantera man-URL:er" #~ msgid "Handle trash URLs" #~ msgstr "Hantera trash-URL:er" #~ msgid "aim URL handler" #~ msgstr "Hanterare för aim-URL:er" #~ msgid "callto URL handler" #~ msgstr "Hanterare för callto-URL:er" #~ msgid "ghelp URL handler" #~ msgstr "Hanterare för ghelp-URL:er" #~ msgid "info URL handler" #~ msgstr "Hanterare för info-URL:er" #~ msgid "mailto URL handler" #~ msgstr "Hanterare för mailto-URL:er" #~ msgid "man URL handler" #~ msgstr "Hanterare för man-URL:er" #~ msgid "trash URL handler" #~ msgstr "Hanterare för trash-URL:er" #~ msgid "Possible values are \"merged\", \"separate\" and \"disabled\"" #~ msgstr "Möjliga värden är \"merged\", \"separate\" och \"disabled\"" #~ msgid "Could not write to file: %s" #~ msgstr "Kunde inte skriva till filen: %s" #, fuzzy #~ msgid "Could not inflate data" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not initialize zlib" #~ msgstr "Kunde inte initiera Bonobo" #, fuzzy #~ msgid "[invalid date]" #~ msgstr "Ogiltiga parametrar" #, fuzzy #~ msgid "SSL negotiation failed: %s" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not parse redirect location." #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "%s: connection was closed by proxy server." #~ msgstr "Kunde inte hitta huvudbläddrare" #, fuzzy #~ msgid "Error reading request body." #~ msgstr "Kunde inte hitta huvudbläddrare" #, fuzzy #~ msgid "Could not determine file length: %s" #~ msgstr "Kunde inte fÃ¥ tag i information om filen \"%s\": %s" #, fuzzy #~ msgid "Could not read chunk size" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not parse chunk size" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not read response body" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not read chunk delimiter" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not read status line" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not parse response status line." #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not read interim response headers" #~ msgstr "Kunde inte hitta huvudbläddrare" #, fuzzy #~ msgid "Could not send request" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not send request body" #~ msgstr "Kunde inte hitta huvudbläddrare" #, fuzzy #~ msgid "Error reading response headers" #~ msgstr "Kunde inte hitta huvudbläddrare" #, fuzzy #~ msgid "Could not resolve hostname `%s': %s" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not create SSL connection through proxy server" #~ msgstr "Kunde inte hitta huvudbläddrare" #, fuzzy #~ msgid "Could not create socket" #~ msgstr "Kunde inte tolka: %s" #, fuzzy #~ msgid "Could not connect to server" #~ msgstr "Kan inte avmontera ansluten server" #, fuzzy #~ msgid "Could not connect to proxy server" #~ msgstr "Kunde inte hitta huvudbläddrare" #, fuzzy #~ msgid "Line too long" #~ msgstr "Namnet är för lÃ¥ngt" #, fuzzy #~ msgid "Could not create SSL structure" #~ msgstr "Kunde inte tolka: %s" #~ msgid "Bookmark saving failed (%s)" #~ msgstr "Sparande av bokmärke misslyckades (%s)" #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "Misslyckades med att läsa in bilden \"%s\": orsaken inte känd, troligtvis " #~ "en skadad bildfil" #~ msgid "Bookmark saving failed" #~ msgstr "Sparande av bokmärke misslyckades" #~ msgid "%.1f kB" #~ msgstr "%.1f kB" #~ msgid "How to handle http URLs" #~ msgstr "Hur http-URL:er ska hanteras" #~ msgid "How to handle https URLs" #~ msgstr "Hur https-URL:er ska hanteras" #~ msgid "Set to true to have a program specified in command handle https URLs" #~ msgstr "" #~ "Sätt detta till sant för att ett program som är angivet i kommando ska " #~ "hantera https-URL:er" #~ msgid "" #~ "Set to true to have a program specified in programs/ghelp handle ghelp " #~ "URLs" #~ msgstr "" #~ "Sätt detta till sant för att ett program som är angivet i programs/ghelp " #~ "ska hantera ghelp-URL:er" #~ msgid "" #~ "Set to true to have a program specified in programs/info handle info URLs" #~ msgstr "" #~ "Sätt detta till sant för att ett program som är angivet i programs/info " #~ "ska hantera info-URL:er" #~ msgid "" #~ "Set to true to have a program specified in programs/man handle man URLs" #~ msgstr "" #~ "Sätt detta till sant för att ett program som är angivet i programs/man " #~ "ska hantera man-URL:er" #~ msgid "URL handler for h323 uris" #~ msgstr "URL-hanterare för h323-URI:er" #~ msgid "URL handler for http uris" #~ msgstr "URL-hanterare för http-URI:er" #~ msgid "URL handler for https uris" #~ msgstr "URL-hanterare för https-URI:er" #~ msgid "Hosts are not contacted via the proxy" #~ msgstr "Värdar kontaktas inte via proxyservern" #~ msgid "The machine name to proxy http through." #~ msgstr "Namnet pÃ¥ maskinen som ska agera proxyserver för http." #~ msgid "Use proxy settings when accessing http" #~ msgstr "Använd proxyinställningar vid Ã¥tkomst av http" #~ msgid "http proxy password" #~ msgstr "Lösenord för http-proxyserver" #~ msgid "http proxy username" #~ msgstr "Användarnamn för http-proxyserver" #~ msgid "Generic file moniker" #~ msgstr "Allmän filmoniker" #~ msgid "1 byte" #~ msgstr "1 byte" #~ msgid "%u bytes" #~ msgstr "%u byte" #~ msgid "Could not initialize gnome-vfs" #~ msgstr "Kunde inte initiera gnome-vfs" #~ msgid "" #~ "The application to use for viewing files that require a component to view " #~ "them. The parameter %s will be replaced by the file's URI, the parameter %" #~ "c will be replaced by the component IID." #~ msgstr "" #~ "Programmet som används för visning av filer som kräver en komponent för " #~ "att visa dem. Parametern %s kommer att ersättas av filens URI, och " #~ "parametern %c kommer att ersättas av komponent-IID." #~ msgid "Name" #~ msgstr "Namn" #~ msgid "parse error" #~ msgstr "tolkningsfel" #~ msgid "0 bytes" #~ msgstr "0 byte" #~ msgid "Application" #~ msgstr "Program" #~ msgid "Card" #~ msgstr "Kort" #~ msgid "File" #~ msgstr "Fil" #~ msgid "Folder" #~ msgstr "Mapp" #~ msgid "Host" #~ msgstr "Värd" #~ msgid "Link" #~ msgstr "Länk" #~ msgid "Tool" #~ msgstr "Verktyg" #~ msgid "Window" #~ msgstr "Fönster" #~ msgid "%u size" #~ msgstr "%u storlek" gnome-vfs-2.24.4/po/nl.po0000644000175000001440000013526611413132751012023 00000000000000# Dutch translation for Gnome VFS # # This file is distributed under the same license as the gnome-vfs package. # # Tino Meinen , 2003, 2004, 2005, 2006. # Vincent van Adrighem , 2003. # Reinout van Schouwen , 2004, 2007 # Wouter Bolsterlee , 2010 # # Deze vertalingen zijn te zien bij alle programma's die bestanden # openen en opslaan via het Gnome virtual filesystem. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-31 20:00+0200\n" "PO-Revision-Date: 2010-03-31 20:00+0200\n" "Last-Translator: Wouter Bolsterlee \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO-9660 volumen" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u bevat NUL-tekens." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u bevat geen methodenaam." # eindmarkering/eindemarkering #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u bevat geen eindemarkering voor opties." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u heeft onbekende opties %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u bevat geen modulenaam." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Configuratiebestand `%s' is niet gevonden: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d verwerken is afgebroken." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS-netwerkvolumen" # ontdekt/bepaald/gedetecteerd # auto-gedetecteerd # determined/detected #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatisch bepaald volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs-Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "cdrom-apparaat" # cd-audio #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "cd digitale audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Hardware-apparaat volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "cd-rom" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs cd-rom" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Systeemvolumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Geheugenvolumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minixvolumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS-netwerkvolumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Gedeeld Windows-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Supermount-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "dvd" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "UDFS Solaris-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "PCFS Solaris-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Tijdelijk volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Verbeterd DOS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS-volumen" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Onbekend" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-volumen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "cd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "cd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "cd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "dvd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "dvd+r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "dvd+rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "dvd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "dvd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "dvd-ram" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "dvd±r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "dvd±rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-station" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-station" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskettestation" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash-station" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory stick-station" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart media-station" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC-station" # station/drive bij zip en jaz twijfel ik. Zip-drive is redelijk ingeburgerd #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip-drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz-drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen-drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s muziekspeler" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitale camera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Station" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Extern station %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "cd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Lege cd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "cd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Lege cd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "cd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "dvd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Lege dvd-ram" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "dvd-ram" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Lege dvd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "dvd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Lege dvd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "dvd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Lege dvd+r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "dvd+r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Lege dvd+rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "dvd+rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio-schijf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s verwisselbaar volumen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volumen" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Onbekend opdrachttype %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kan geen pijplijn aanmaken voor GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Onbekend taaktype %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Opdracht gestopt" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Afgeraden functie. Gebruikerswijzigingen aan de MIME-database zijn niet " "langer ondersteund." # verwerken/ontleden #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Kon niet verwerken: %s" # komende/volgende/hieropvolgende #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "De overige verwerkingsfouten worden genegeerd." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Geen fout" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Bestand niet gevonden" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Algemene fout" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Interne fout" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ongeldige parameters" # bewerking/operatie/opdracht #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Niet-ondersteunde opdracht" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O-fout" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Gegevens beschadigd" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Ongeldig formaat" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Foutieve bestandshendel" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Bestand te groot" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Geen ruimte vrij op het apparaat" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Alleen-lezen bestandssysteem" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ongeldige URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Bestand niet open" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Ongeldige openingsmodus" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Toegang geweigerd" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Te veel open bestanden" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Einde van bestand" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Geen map" # bewerking/opdracht #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Actieve opdracht" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Opdracht afgebroken" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Bestand bestaat al" # Circulaire koppelingen gevonden/kringverwijzing #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Kringverwijzing gevonden" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Opdracht niet toegestaan" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Is een map" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Onvoldoende geheugen" # host=host/gastcomputer (geen machine) #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Host niet gevonden" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Hostnaam is niet geldig" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Host heeft geen adres" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Inloggen niet gelukt" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Opdracht afgebroken" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Map is in gebruik" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Map is niet leeg" # verwijzingen/koppelingen/links #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Te veel koppelingen" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Alleen-lezen bestandssysteem" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Niet op hetzelfde bestandssysteem" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Naam te lang" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Service is niet beschikbaar" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Verzoek maakt gegevens van de service achterhaald" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protocolfout" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Kon de hoofd-browser niet vinden" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Geen standaardactie gedefinieerd" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Geen actie voor URL-schema" # analyseren/verwerken/ontleden #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Fout bij verwerken opdrachtregel" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Fout bij starten opdracht" # vertaling voor timeout? #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Timeout bereikt" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Nameserver-fout" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "De bron is in gebruik" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Functie-aanroep afgeraden" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ongeldige bestandsnaam" # link/koppeling/verwijzing #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Geen symbolische koppeling" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Onbekende fout" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" # KB / Kb #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ongeldige Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskette" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "cd-rom/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "cd-rom/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "cd-rom/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "cd-rom/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "cd-r/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "cd-r/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "cd-r/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "cd-r/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "cd-rw/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "cd-rw/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "cd-rw/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "cd-rw/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Schijf" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-station" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-station" # compact-flash #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Camera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "dvd" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root-volumen" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio-cd" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Onbekend volumen" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Netwerkserver" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Kan de diskette niet aankoppelen. Er zit waarschijnlijk geen diskette in het " "apparaat." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Kan het volumen niet aankoppelen. Er zit waarschijnlijk geen schijf in het " "apparaat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Kan het diskettestation niet aankoppelen. De diskette bevat waarschijnlijk " "een niet ondersteund bestandssysteem." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Kon het volumen niet aankoppelen. Indien dit een versleutelde schijf is, is " "mogelijkerwijs een foutief wachtwoord of sleutel gegeven." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Kan het geselecteerde volumen niet aankoppelen. Het volumen bevat " "waarschijnlijk een niet ondersteund bestandssysteem." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Kan de het geselecteerde diskettestation niet aankoppelen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Kan het geselecteerde volumen niet aankoppelen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Kon het geselecteerde volumen niet afkoppelen. Het volumen is nog in gebruik " "bij een of meerdere programma's." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Kan het geselecteerde volumen niet ontkoppelen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Lezen van gegevens van dochterproces %d is mislukt (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Kon aankoppelingsproces niet uitvoeren in een pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Onverwachte fout in select() tijdens lezen van gegevens van een " "dochterproces (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Kon wachtwoord niet naar aankoppelingsproces sturen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Onverwachte fout in waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Kan opdracht niet starten" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Kan media niet uitwerpen" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Kan aangekoppelde server niet ontkoppelen" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Netwerk" # Persoonlijke map/home/thuis #: ../modules/computer-method.c:561 msgid "Home" msgstr "Persoonlijke map" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Bestandssysteem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Onbekende GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows netwerk" # externe computer/computer op afstand #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "De identiteit van de computer op afstand (%s) is onbekend." # absoluut zeker wilt weten of/er absoluut zeker van wilt zijn dat # /zeker wilt weten of/absulute zekerheid wilt hebben dat #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Dit gebeurt wanneer u zich voor de eerste keer bij een computer aanmeldt.\n" "\n" "De identiteit die door de computer op afstand is verzonden is %s. Indien u " "absoluut zeker wilt weten of het veilig is om door te gaan, neem dan contact " "op met de systeembeheerder." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Toch aanmelden" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Aanmelden annuleren" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Geen geldig instellingenbestand gevonden in %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Gebruik de %s omgevingsvariabele om een andere locatie op te geven.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Uw HTTP-proxy verwacht dat u zich aanmeldt.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "U dient zich aan te melden om \"%s\" te openen.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Uw wachtwoord zal onversleuteld worden verzonden." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Uw wachtwoord zal versleuteld worden verzonden." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "U dient zich aan te melden om %s in het domein %s te openen.\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "U dient zich aan te melden om %s te openen.\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Standaard componentweergave-programma" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Standaard terminalprogramma" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Opstartargumenten voor standaard terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Te gebruiken programma voor weergave van bestanden die een component " "vereisen. De parameter %s zal vervangen worden door de URI van het bestand " "en de parameter %c zal vervangen worden de de IID van de component." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Het standaard terminalprogramma voor toepassingen die een terminal nodig " "hebben." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Te gebruiken exec-argument voor het standaard terminalprogramma." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Opdracht in terminalvenster starten" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "De opdracht voor het afhandelen van \"aim\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"callto\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"ghelp\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"h323\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"http\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"https\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"info\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"mailto\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "De opdracht voor het afhandelen van \"man\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "De opdracht voor het afhandelen van \"trash\"-URL's, indien ingeschakeld" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Het programma dat \"aim\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Het programma dat \"callto\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Het programma dat \"ghelp\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Het programma dat \"h323\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Het programma dat \"http\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Het programma dat \"https\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Het programma dat \"info\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Het programma dat \"mailto\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Het programma dat \"man\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Het programma dat \"trash\" URL's afhandelt" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"aim\"-URL's " "dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Waar indine de opdracht aangegeven in de sleutel: \"command\", \"callto\"-" "URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"ghelp\"-" "URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"h323\"-" "URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\" \"http\"-URL's " "dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"https\"-" "URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"info\"-" "URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"mailto\"-" "URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"man\"-URL's " "dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Waar indien de opdracht aangegeven in de sleutel: \"command\", \"trash\"-" "URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Waar indien de opdracht om dit type URL af te handelen in een " "terminalvenster gestart dient te worden." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Of de aangegeven opdracht \"aim\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Of de aangegeven opdracht \"callto\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Of de aangegeven opdracht \"ghelp\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Of de aangegeven opdracht \"h323\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Of de aangegeven opdracht \"http\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Of de aangegeven opdracht \"https\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Of de aangegeven opdracht \"info\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Of de aangegeven opdracht \"mailto\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Of de aangegeven opdracht \"man\"-URL's dient af te handelen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Of de aangegeven opdracht \"trash\"-URL's dient af te handelen." #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Een door komma's gescheiden lijst met DNS-SD domeinen die zichtbaar behoren " "te zijn in de locatie \"netwerk:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Extra domeinen waarin naar DNS-SD services wordt gezocht" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Hoe een lokale DNS-SD service wordt weergegeven" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Mogelijke waarden zijn \"merged\", \"separate\" en \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Aanmeldingscontrole gebruiken bij proxyserver-verbindingen" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL voor automatische proxy-configuratie" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Proxy-instellingen gebruiken bij HTTP-verbindingen over het internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP-proxy hostnaam" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP-proxy poortnummer" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP-proxy hostnaam" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP-proxy wachtwoord" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP-proxy poortnummer" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP-proxy gebruikersnaam" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Indien waar, wordt voor een verbinding met de proxyserver " "aanmeldingscontrole vereist. De combinatie van gebruikersnaam en wachtwoord " "komt voort uit \"/system/http_proxy/authentication_user\" en \"/system/" "http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Non-proxy hosts" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Te gebruiken wachtwoord bij gebruik van de HTTP proxy." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxy configuratiemodus" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS-proxy hostnaam" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS-proxy poortnummer" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Beveiligde HTTP-proxy hostnaam" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Beveiligde HTTP-proxy poortnummer" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Kies de proxy configuratiemodus. Mogelijke waarden zijn \"none\" (geen), " "\"manual\" (handmatig) en \"auto\" (automatisch)." # BUG: machine name. Dit is erg lelijk, moet zijn host/computer/server #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "De machinenaam waar de FTP-proxy op draait." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "De machinenaam waar de HTTP-proxy op draait." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "De machinenaam waar de beveiligde HTTP-proxy op draait." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "De machinenaam waar de socks-proxy op draait." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Het poortnummer op de machine die u als proxy gebruikt en gedefineerd door " "\"/system/http_proxy/host\" " #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "De poort op de machine die u als proxy gebruikt en gedefinieerd door \"/" "system/proxy/ftp_host\"" # het poortnummer #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "De poort op de machine die u als proxy gebruikt en gedefinieerd door \"/" "system/proxy/secure_host\"" # Het poortnummer #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "De poort op de machine die u als proxy gebruikt en gedefinieerd door \"/" "system/proxy/socks_host\"" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Deze sleutel bevat een lijst van computers die direct benaderd dienen te " "worden in plaats van via de proxy. De waardes kunnen computernamen zijn, of " "domeinen (met jokertekens zoals: *.bla.com), IP-adressen (zowel IPv4 als " "IPv6) of netwerkadressen met netmasker zoals 192.168.0.0/24." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL die de waardes geeft voor proxyconfiguratie." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP-proxy gebruiken" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Te gebruiken naam voor identificatie bij HTTP-proxy." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-werkgroep" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "De werkgroep of het domein van het Windows-netwerk waar de gebruiker deel " "van is. Om de nieuwe werkgroep volledig effectief te laten zijn moet u " "mogelijkerwijs een keer uitloggen en opnieuw aanmelden." gnome-vfs-2.24.4/po/lt.po0000644000175000001440000013404211354402652012024 00000000000000# Lithuanian translation of gnome-vfs # Copyright (C) 2000-2006 Free Software Foundation, Inc. # Gediminas Paulauskas , 2000-2003. # Tomas Kuliavas , 2003. # Žygimantas BeruÄka , 2004-2006. # Rimas Kudelis , 2010. msgid "" msgstr "" "Project-Id-Version: gnome-vfs HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-23 23:46+0200\n" "PO-Revision-Date: 2010-02-22 23:19+0300\n" "Last-Translator: Rimas Kudelis \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lt\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" "100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Virtaal 0.5.2\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 skirsnis" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u yra NUL simbolių." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u nÄ—ra metodo pavadinimo." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nÄ—ra parametrų pabaigos žymÄ—s." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u yra nežinomų parametrų %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u nÄ—ra modulio vardo." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "KonfigÅ«racijos failas „%s“ nerastas: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d apdorojimas nutrauktas." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS tinklo skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "AutomatiÅ¡kai atpažintas skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM įrenginys" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Skaitmeninis audio CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "AparatÅ«ros įrenginių skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Sisteminis skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "AtmintinÄ—s skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS tinklo skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "SMB tinklo skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-OFS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Laikinas skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Pagerintas DOS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS skirsnis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Nežinomas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s skirsnis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskelis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash atmintukas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick atmintukas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media atmintukas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC kortelÄ—" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s muzikos grotuvas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s skaitmeninis fotoaparatas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "IÅ¡orinis %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "TuÅ¡Äias CD-R diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "TuÅ¡Äias CD-RW diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "TuÅ¡Äias DVD-RAM diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "TuÅ¡Äias DVD-R diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "TuÅ¡Äias DVD-RW diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "TuÅ¡Äias DVD+R diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "TuÅ¡Äias DVD+RW diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio diskas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s atjungiamas skirsnis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Skirsnis" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Nežinomas operacijos tipas %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nepavyko sukurti konvejerio GIOChannel atvÄ—rimui: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Nežinomas užduoties tipas %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operacija sustabdyta" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Pasenusi funkcija. Naudotojo MIME duombazÄ—s modifikacijos nebepalaikomos." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Nepavyko apdoroti: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "VÄ—lesnÄ—s apdorojimo klaidos bus ignoruotos." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "NÄ—ra klaidų" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Failas nerastas" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Ä®prasta klaida" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "VidinÄ— klaida" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Netinkami parametrai" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nepalaikoma operacija" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O klaida" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Duomenys sugadinti" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Netinkamas formatas" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Bloga failo rodyklÄ—" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Failas per didelis" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Kaupiklyje nebÄ—ra vietos" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Tik skaitoma failų sistema" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Blogas URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Failas neatvertas" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "AtvÄ—rimo bÅ«das neteisingas" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "PriÄ—jimas uždraustas" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Per daug atvertų failų" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Failo pabaiga" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ne aplankas" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Vykdoma operacija" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operacija pertraukta" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Failas egzistuoja" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Nuorodose rasti amžini ciklai" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operacija neleidžiama" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Yra aplankas" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nepakanka atminties" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Hostas nerastas" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Hosto vardas neteisingas" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Hostas neturi adreso" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Prisijungti nepavyko" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operacija nutraukta" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Aplankas naudojamas" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Aplankas netuÅ¡Äias" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Per daug nuorodų" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Tik skaitoma failų sistema" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ne toje paÄioje failų sistemoje" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Vardas per ilgas" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Paslauga neprieinama" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Užklausa pasendina paslaugos duomenis" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokolo klaida" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Nepavyko rasti pagrindinÄ—s narÅ¡yklÄ—s" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nesusietas joks numatytasis veiksmas" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "NÄ—ra valdiklio URL schemai" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Ä®vyko klaida apdorojant komandos eilutÄ™" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Paleidžiant komandÄ… įvyko klaida" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Operacijai skirtas laikas baigÄ—si" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Vardų serverio klaida" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Resursas užrakintas" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Funkcijos užklausa yra pasenus" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Netinkamas failo pavadinimas" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "NÄ—ra simbolinÄ— nuoroda" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Nežinoma klaida" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u baitas" msgstr[1] "%u baitai" msgstr[2] "%u baitų" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (netinkamas Unikodas)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskelis" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Diskas" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB diskas" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 diskas" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Atmintukas" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Å akninis skirsnis" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Nežinomas skirsnis" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Tinklo serveris" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Nepavyko prijungti diskelio. GreiÄiausiai įrenginyje nÄ—ra diskelio." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Nepavyko prijungti skirsnio. GreiÄiausiai įrenginyje nÄ—ra laikmenos." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Nepavyko prijungti diskelio. GreiÄiausiai diskelio formatas toks, kurio " "prijungti negalima." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Nepavyko atjungti skirsnio. Jeigu tai užšifruotas diskas, tai buvo " "panaudotas neteisingas slaptažodis arba raktas." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Nepavyko prijungti skirsnio. GreiÄiausiai skirsnio formatas toks, kuris " "negali bÅ«ti prijungtas." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Nepavyko prijungti pasirinkto diskelio." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Nepavyko prijungti pasirinkto skirsnio." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Nepavyko atjungti pasirinkto skirsnio. Skirsnį naudoja viena ar daugiau " "programų." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Nepavyko atjungti nurodyto skirsnio." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Nepavyko perskaityti duomenų iÅ¡ antrinio proceso %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Nepavyko pty paleisti prijungimo proceso" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "NetikÄ—ta klaida funkcijoje select() skaitant duomenis iÅ¡ antrinio proceso (%" "s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Nepavyko prijungimo procesui perduoti slaptažodžio." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "NetikÄ—ta klaida funkcijoje waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Nepavyko paleisti komandos" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nepavyko iÅ¡stumti disko" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nepavyko atjungti prisijungusio serverio" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Tinklas" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Namai" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Failų sistema" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Nežinoma GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows tinklas" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Nutolusio kompiuterio (%s) tapatybÄ— yra nežinoma." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Tai atsitinka kai jÅ«s prisijungiate prie kompiuterio pirmÄ… kartÄ….\n" "\n" "Nutolusio kompiuterio atsiųsta tapatybÄ— yra %s. Jeigu norite bÅ«ti visiÅ¡kai " "tikri, kad tÄ™sti yra saugu, susisiekite su sistemos administratoriumi." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Vistiek prisijungti" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "AtÅ¡aukti prisijungimÄ…" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s nepavyko rasti tinkamo nustatymų failo\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Naudokite aplinkos kintamÄ…jį %s, norÄ—dami nurodyti kitÄ… vietÄ….\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "JÅ«sų HTTP tarpinis serveris reikalauja prisijungimo.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "NorÄ—dami prieiti prie „%s“, turite prisijungti.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "JÅ«sų slaptažodis bus perduotas neužšifruotas." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "JÅ«sų slaptažodis bus perduotas užšifruotas." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "NorÄ—dami prieiti prie %s domeno %s, turite prisijungti\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "NorÄ—dami prieiti prie %s, turite prisijungti\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Numatytoji komponentų peržiÅ«ros programa" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Numatytoji terminalo programa" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Numatytojo terminalo paleidimo argumentas" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Programa naudojama peržiÅ«rÄ—ti failus, kurie reikalauja specialaus peržiÅ«ros " "komponento. Parametras %s bus pakeistas failo adresu, parametras %c bus " "pakeistas komponento IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Numatytoji terminalo programa, naudojama su programomis, kurioms reikia " "terminalo." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argumentas naudojamas paleidžiant numatytÄ…jÄ… terminalo programÄ…." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Vykdyti komandÄ… terminale" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „aim“ URL, jeigu įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „callto“ URL, jeigu įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „ghelp“ URL, jeigu įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „h323“ URL, jei įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „http“ URL, jeigu įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „https“ URL, jei įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „info“ URL, jei įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „mailto“ URL, jei įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „man“ URL, jei įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Komanda naudojama apdoroti „trash“ URL, jei įjungta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Programa, kuriai perduoti „aim“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Programa, kuriai perduoti „callto“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Programa, kuriai perduoti „ghelp“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Programa, kuriai perduoti „h323“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Programa, kuriai perduoti „http“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Programa, kuriai perduoti „https“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Programa, kuriai perduoti „info“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Programa, kuriai perduoti „mailto“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Programa, kuriai perduoti „man“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Programa, kuriai perduoti „trash“ užklausas" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, " "apdorotų „aim“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, " "apdorotų „callto“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, " "apdorotų „ghelp“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Nustatykite į teigiamÄ… reikÅ¡mÄ™ jei norite, kad programa, nurodyta „command“ " "rakte, apdorotų „h323“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Nustatykite į teigiamÄ… reikÅ¡mÄ™ jei norite, kad programa, nurodyta „command“ " "rakte, apdorotų „http“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Nustatykite į teigiamÄ… reikÅ¡mÄ™ jei norite, kad programa, nurodyta „command“ " "rakte, apdorotų „https“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, " "apdorotų „info“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, " "apdorotų „mailto“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, " "apdorotų „man“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, " "apdorotų „trash“ adresus." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti " "paleidžiama terminale." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „aim“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „callto“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „ghelp“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „h323“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „http“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „https“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „info“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „mailto“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „man“ adresus" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Ar nurodyta programa turÄ—tų apdoroti „trash“ adresus" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Kableliu atskirtų DNS-SD sriÄių, kurios turÄ—tų bÅ«ti matomos „network:///“ " "vietoje, sÄ…raÅ¡as." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Papildomos sritys, kuriose ieÅ¡koti DNS-SD paslaugų" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Kaip rodyti vietinÄ™ DNS-SD paslaugÄ…" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Galimos reikÅ¡mÄ—s yra „merged“, „separate“ ir „disabled“." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Tarpiniamer serveryje naudoti autorizavimÄ…" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automatinių tarpinio serverio nustatymų adresas" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Ä®jungia tarpinio serverio naudojimÄ… narÅ¡ant Internete per HTTP." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP tarpinio serverio vardas" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP tarpinio serverio prievadas" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP tarpinio serverio vardas" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP tarpinio serverio slaptažodis" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP tarpinio serverio prievadas" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP tarpinio serverio naudotojas" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Jei teigiama, jungtims į tarpinÄ™ stotį yra bÅ«tina autorizacija. Naudotojo " "vardas ir slaptažodis yra saugomi „/system/http_proxy/authentication_user“ " "ir „/system/http_proxy/authentication_password“ raktuose." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Adresai pasiekiami nenaudojant tarpinio serverio" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Slaptažodis, naudojamas jungiantis per HTTP tarpinį serverį." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Tarpinio serverio nustatymų režimas" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS tarpinio serverio vardas" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS tarpinio serverio prievadas" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Saugaus HTTP tarpinio serverio vardas" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Saugaus HTTP tarpinio serverio prievadas" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Pasirinkite tarpinio serverio nustatymų režimÄ…. Galimos reikÅ¡mÄ—s yra „none“, " "„manual“, „auto“." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Kompiuteris, teikiantis tarpinio FTP serverio paslaugas." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Kompiuteris, teikiantis tarpinio HTTP serverio paslaugas." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Kompiuteris, teikiantis tarpinio saugaus HTTP serverio paslaugas." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Kompiuteris, teikiantis tarpinio socks serverio paslaugas." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Tarpinio http serverio prievadas, saugomas „/system/http_proxy/host“ rakte." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Tarpinio ftp serverio prievadas, saugomas „/system/http_proxy/host“ rakte." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Tarpinio saugaus http serverio prievadas, saugomas „/system/http_proxy/host“ " "rakte." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Tarpinio socks serverio prievadas, saugomas „/system/http_proxy/host“ rakte." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Å is raktas saugo adresus, prie kurių yra jungiamasi tiesiogiai, o ne per " "tarpinį serverį (jei toks naudojamas). ReikÅ¡mÄ—se galima saugoti kompiuterių " "vardus, sritis (su priekyje esanÄių apibendrinanÄiu simboliu, pvz., kaip *." "pavyzdys.lt), kompiuterių IP adresus (tiek IPv4, tiek IPv6) bei tinklų " "adresus su tinklo kaukÄ—mis (kažkas panaÅ¡aus į 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "Adresas, kuriame saugomi tarpinio serverio nustatymai" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Naudoti HTTP tarpinį serverį" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Naudotojo vardas naudojamas jungiantis per HTTP tarpinį serverį." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB darbo grupÄ—" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows tinklų darbo grupÄ— arba sritis, kuriai priklauso naudotojas. Tam, " "kad visiÅ¡kai įsigaliotų atlikti pakeitimai, naudotojui gali reikti " "atsijungti ir prisijungti iÅ¡ naujo." gnome-vfs-2.24.4/po/sq.po0000644000175000001440000014002011334251016012013 00000000000000# Përkthimi i mesazheve të gnome-vfs në shqip # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # Laurent Dhima , 2003, 2004, 2005, 2006, 2007, 2008. msgid "" msgstr "" "Project-Id-Version: gnome-vfs HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-07-16 15:27+0200\n" "PO-Revision-Date: 2008-03-20 11:47+0100\n" "Last-Translator: Laurent Dhima \n" "Language-Team: albanian \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volum ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u përmban simbole NULL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u nuk përmban emrin e metodës." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nuk ka opsione përfundimi." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ka opsione të panjohura %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u nuk përmban emrin e modulit." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "File i konfigurimit `%s' nuk u gjet: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d analizime pa sukses." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volum AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volum rrjeti AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volum i auto-përcaktuar" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "Njësia CD-ROM" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD Digital Audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Volum Dispozitivi Hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "Volum EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Volum Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Volum Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "Volum MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "Volum BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "Volum FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "Volum MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "Volumi CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Volum Hsfs CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "Volum JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Volum Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Volum sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Volum memorje" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Volum Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "Volum rrjeti NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Volum Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Volum Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "Volum Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Volum Windows i përbashkët" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "Volum SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "Volum DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Volum Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Volum Udfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Volum Pcfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Volum Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Volum i përkohshëm" # (pofilter) acronyms: acronyms should not be translated: DOS #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Volum Dos i përparuar" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Volum Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Volum Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "Volum Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "Volum XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "Volum CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Nuk njihet" # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volum %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Drive %s/%s" # (pofilter) unchanged: please translate # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Drive %s" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Floppy Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Drive Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Drive Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Drive Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Drive SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Drive Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Drive Jaz" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Drive" # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Luajtësi i muzikës %s %s" # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Kamër dixhitale %s %s" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Drive" # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s e jashtme" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disk CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disk bosh CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disk CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disk bosh CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disk CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disk DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disk bosh DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disk DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disk bosh DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disk DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disk bosh DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disk DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disk bosh DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disk DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disk bosh DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disk DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disk Audio" # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volum i heqshëm %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volum" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Operacion i panjohur i llojit %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "I pamundur krijimi i një pipe për të hapur GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "Lloj i panjohur pune %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "Operacioni u ndërpre" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Funksion që nuk përdoret më. Ndryshimet nga përdoruesi tek databaza MIME " "nuk suportohen më." #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "I pamundur analizimi: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "Gabimet e tjera të analizimit do të injorohen." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Asnjë gabim" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "File nuk u gjet" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Gabim i përgjithshëm" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Gabim i brendshëm" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parametra të pavlefshëm" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operacion i pasuportuar" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Gabim I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Të dhëna të dëmtuara" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format i pavlefshëm" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Trajtues i pavlefshëm i file" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "File tepër i madh" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nuk ka më hapësirë në dispozitiv" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "File sistemi në vetëm-lexim" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI e pavlefshme" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "File nuk u hap" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Menyrë hapje jo e vlefshme" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Ndalohet hyrja" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Shumë files të hapur" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fundi i file" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nuk është një directory" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Oparacioni në kryerje e sipër" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operacioni u ndërpre" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Ky file ekziston" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "U gjetën lidhje në loop" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operacioni nuk lejohet" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Është një directory" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Memorje e pamjaftueshme" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Host nuk u gjet" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Emër host i pavlefshëm" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Host nuk ka një adresë" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Identifikimi dështoi" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operacioni u anullua" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directory e zënë" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Directory jo bosh" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Tepër lidhje" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "File sistemi në vetëm lexim" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nuk gjendet në të njëjtin file sistemi" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Emër tepër i gjatë" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Shërbimi nuk është në dispozicion" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Kërkesë të dhënash nga shërbim tepër i vjetër" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Gabim protokolli" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "E pamundur gjetja e shfletuesit kryesor" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nuk i është shoqëruar asnjë veprim i prezgjedhur" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Asnjë trajtues për skemën URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Gabim gjatë zbatimit të rreshtit të komandës" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Gabim gjatë lëshimit të komandës" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "U tejkalua koha e pritjes" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Gabim i emrit të server-it" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Rezerva është e bllokuar" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Thirrje funksioni që nuk përdoret më" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Emër i pavlefshëm file" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Lidhje jo simbolike" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Gabim i panjohur" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" # (pofilter) startcaps: checks that the message starts with the correct capitalisation #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode i pavlefshëm)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "disketë" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disku" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Drive USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Drive IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" # (pofilter) unchanged: please translate #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamer" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Volum root" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "CD Audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Volum i panjohur" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "Server rrjeti" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "I pamundur montimi i dispozitivit disketë. Mesa duket mungon disketa në " "dispozitiv." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "I pamundur montimi i volumit. Mesa duket nuk ka asnjë lloj suporti në " "dispozitiv." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "I pamundur montimi i disketës. Ka mundësi të jetë i një formati që nuk mund " "të montohet." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "I pamundur montimi i volumit. Nëse keni të bëni me një drive të kriptuar, " "atëhere është përdorur kyç apo fjalëkalim i gabuar." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "I pamundur montimi i volumit të zgjedhur. Ka mundësi të jetë i një formati " "që nuk mund të montohet." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "I pamundur montimi i dispozitivit disketë të zgjedhur." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "I pamundur montimi i volumit të zgjedhur." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "I pamundur zmontimi i volumit të zgjedhur. Volumi është duke u përdorur nga " "një apo më shumë programe." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "I pamundur zmontimi i volumit të zgjedhur." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "I pamundur leximi i të dhënave nga proçesi bir %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "I pamundur ekzekutimi i proçesit të montimit në një pty" # (pofilter) doublewords: The word 'të' is repeated #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Gabim i papritur në select() gjatë leximit të të dhënave nga një proçes bir " "(%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "I pamundur dërgimi i fjalëkalimit tek proçesi i montimit." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Gabim i papritur në waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Nisja e komandës dështoi" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nxjerrja e suportit është e pamundur" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "E pamundur shkëputja e server-it të lidhur" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rrjeti" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Shtëpia" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "File i sistemit" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d i panjohur" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rrjeti Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identiteti i kompjuterit remot (%s) është i panjohur." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Kjo ndodh kur lidheni për herë të parë në një kompjuter.\n" "\n" "Identiteti i dërguar nga kompjuteri remot është %s. Nëse dëshironi të jeni " "krejtësisht i sigurt që mund të vazhdoni, kontakto administratorin e " "sistemit." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Futu sidoqoftë" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Anullo futjen" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nuk u gjet një file i vlefshëm konfigurimi në %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Përdor të ndryshueshmen e ambientit %s për të specifikuar një pozicion " "tjetër.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Proxy juaj HTTP kërkon identifikimin.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Duhet të jeni identifikuar që të hyni tek \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Fjalëkalimi juaj do të transmetohet i pakriptuar." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Fjalëkalimi juaj do të transmetohet i kriptuar." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Duhet të jeni identifikuar që të hyni tek %s domain %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Duhet të jeni identifikuar që të hyni tek %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Programi i prezgjedhur për shikimin e komponuesit" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Programi terminal i prezgjedhur" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argumenti exec për terminalin e prezgjedhur" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Programi që duhet përdorur për të shikuar files që kanë nevojë për një " "komponent që të shikohen. Parametri %s do të zevendësohet nga URl e file, " "parametri %c do të zevendësohet nga IID e komponentit." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Programi terminal i prezgjedhur që duhet përdorur për programet që kërkojnë " "një terminal." # (pofilter) endpunc: checks whether punctuation at the end of the strings match #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argumenti exec që duhet përdorur për terminalin e prezgjedhur" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Ekzekuto komandën në një terminal" # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"aim\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"callto\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"ghelp\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"h323\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"http\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"http\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"info\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"mailto\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"man\", nëse aktive." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Komanda e përdorur për të trajtuar URLtë \"trash\", nëse aktive." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Trajtuesi i URLve \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Trajtuesi i URLve \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Trajtuesi i URLve \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Trajtuesi i URLve \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Trajtuesi i URLve \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Trajtuesi i URLve \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Trajtuesi i URLve \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Trajtuesi i URLve \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Trajtuesi i URLve \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Trajtuesi i URLve \"trash\"" # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"aim\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"callto\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"ghelp\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"h323\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"http\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"https\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"info\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"mailto\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"man\"." # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "E vërtetë nëse komanda e përcaktuar tek kyçi \"komanda\" duhet të trajtojë " "URLtë \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të " "zbatohet në një terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Nëse komanda e caktuar duhet të trajtojë URLtë \"trash\"" # (pofilter) puncspacing: checks for bad spacing after punctuation #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Lista e domain-eve DNS-SD, të ndarë me presje, që do të jenë të dukshëm tek " "pozicioni i rrjetit \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domain-e të tjerë që duhen kontrolluar për shërbimet DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Si duhet shfaqur shërbimi lokal DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Vlerat e mundshme janë \"merged\", \"separate\" dhe \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentifiko lidhjet proxy server" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL e konfigurimit automatik të proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Aktivon rregullimet e proxy kur përdor HTTP në Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Emri i host proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Porta e proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Emri i host proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Fjalëkalimi për proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Porta e proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Përdoruesi për proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Nëse e vërtetë, atëhere lidhjet me server-in proxy kanë nevojë për " "autentifikim. Kombinimi përdorues/fjalëkalim përcaktohet nga \"/system/" "http_proxy/authentication_user\" dhe \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Asnjë host proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Fjalëkalimi që duhet dhënë si autentifikues kur kryen proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Modaliteti i konfigurimit proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Emri i host proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Porta e proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Emri i host i proxy të sigurtë HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Porta e proxy të sigurt HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Zgjidh modalitetin e konfigurimit proxy. Vlerat e pranuara janë \"asnjë\", " "\"manualisht\", \"automatikisht\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Emri i makinës për kalimin tek proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Emri i makinës për kalimin tek proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Emri i makinës për kalimin tek proxy i sigurt HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Emri i makinës për kalimin tek proxy socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Porta e makinës e përcaktuar nga \"/system/http_proxy/host\" nga do të " "kalojë proxy juaj." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Porta e makinës e përcaktuar nga \"/system/proxy/ftp_host\" nga do të kalojë " "proxy juaj." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Porta e makinës e përcaktuar nga \"/system/proxy/secure_host\" nga do të " "kalojë proxy juaj." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Porta e makinës e përcaktuar nga \"/system/proxy/socks_host\" nga do të " "kalojë proxy juaj." # (pofilter) sentencecount: The number of sentences differ: 2 versus 3 #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ky kyç përmban një listë me hostet e lidhur direkt, pa përdorur proxy (nëse " "ai është aktiv). Vlerat mund të jenë hostnames, domains (duke përdorur si " "parashtesë një wildcard si p.sh. *.foo.com), adresat IP të host (IPv4 dhe " "IPv6) dhe adresat e rrjetit me një netmask (diçka të ngjashme me " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL që ve në dispozicion vlerat e konfigurimit të proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Përdor proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Emri i përdoruesit që duhet dhënë për autentifikim kur përdoret proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grup pune SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Grupi i punës i rrjetit Windows apo domain pestar i të cilit është " "përdoruesi. Në menyrë që grupi i ri i punës të njihet efektivisht " "përdoruesit do t'i duhet të shkëputet dhe të identifikohet përsëri." gnome-vfs-2.24.4/po/lv.po0000644000175000001440000013331011413132751012017 00000000000000# translation of gnome-vfs.HEAD.po to Latvian # Copyright (C) 2006, 2009 Free Software Foundation, Inc. # # Raivis Dejus , 2006, 2009. # RÅ«dolfs Mazurs , 2010. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." "cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2009-12-14 21:54+0000\n" "PO-Revision-Date: 2010-06-13 12:23+0300\n" "Last-Translator: RÅ«dolfs Mazurs \n" "Language-Team: LatvieÅ¡u \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "2);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 sÄ“jums" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u satur NUL rakstzÄ«mes." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u nesatur metodes nosaukumu." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nesatur iespÄ“ju beigu marÄ·ieri." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u satur nezinÄmas iespÄ“jas %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u nesatur moduļa nosaukumu." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "KonfigurÄcijas fails `%s' netika atrasts: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d pÄrtrauktaa sadale." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS tÄ«klu sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "AutomÄtiski noteikts sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "Btrfs Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM dzinis" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD ciparu audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "AparatÅ«ras iekÄrtu sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "eCryptfs sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext2 Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "Ext4 Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "SistÄ“mas sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Atmiņas sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS tÄ«kla sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "NILFS Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Tikla aparatÅ«ras sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows Shared sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSDsÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Pagaidu sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Uzlabots DOS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS sÄ“jums" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "NezinÄms" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s SÄ“jums" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "DiskeÅ¡u dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Ä’rtais Flash dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s mÅ«zikas atskaņotÄjs" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s DigitÄla kamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Dzinis" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ä€rÄ“js %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "TukÅ¡s CD-R disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "TukÅ¡s CD-RW disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "TukÅ¡s DVD-RAM disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "TukÅ¡s DVD-R disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "TukÅ¡s DVD-RW disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "TukÅ¡s DVD+R disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "TukÅ¡s DVD+RW disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio disks" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s noņemams sÄ“jums" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "SÄ“jums" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "NezinÄms operÄcijas tips %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nevar izveidot kanÄlu, lai atvÄ“rtu GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "NezinÄms darba tips %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "OperÄcija apturÄ“ta" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ApturÄ“ta funkcija. LietotÄju izmaiņas MIME datubÄzÄ“ vairs netiek atbalstÄ«tas." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "NevarÄ“ju noparsÄ“t: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "PÄrÄ“jÄs parsēšanas kļūdas tiks ignorÄ“tas." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nav kļūdu" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fails nav atrasts" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "VispÄrÄ“jÄ kļūda" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "IekšējÄ kļūda" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Nepareizi parametri" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "NeatbalstÄ«ta operÄcija" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O kļūda" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Dati bojÄti" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Neatļauts formÄts" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Slikta faila vadÄ«ba" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fails pÄrÄk liels" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nav palicis vietas uz iekÄrtas" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Tiaki lasÄmÄ failu sistÄ“ma" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Nepareizs URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fails nav atvÄ“rts" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Neatļauts atvÄ“rtais režīms" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Pieeja liegta" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Par daudz atvÄ“rtu failu" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Faila beigas" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nav direktorija" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "OperÄcija notiek" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "OperÄcija pÄtraukta" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Fails eksistÄ“" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "RinÄ·ojoÅ¡Äs saites parÄdÄ«juÅ¡Äs" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "OperÄcija nav atļauta" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Ir direktorija" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nav pietiekams atmiņas daudzums" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Saimniekdators nav atrasts" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Saimniekdatora nosaukums nav pareizs" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Saimniekdatoram nav adreses" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "PieteikÅ¡anÄs neveiksmÄ«ga" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "OperÄcija atsaukta" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Direktorija aizņemta" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Direktorija nav tukÅ¡a" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "PÄrÄk daudz saiÅ¡u" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Tikai lasÄma failu sistÄ“ma" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ne tÄ pati failu sistÄ“ma" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nosaukums pÄrÄk garÅ¡" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Serviss nav pieejams" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "PieprasÄ«jums atsauc servisa datus" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokola kļūda" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "NevarÄ“ja atrast galveno pÄrlÅ«ku" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nav asociÄ“tas noklusÄ“tas darbÄ«bas" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Nav vadÄ«tÄja URL shÄ“mai" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Kļūda sadalot komandrindu" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Kļūda palaižot komandu" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Noildze sasniegta" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Nosaukumu servera kļūda" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Avots ir slÄ“gts" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Funkcijas izsaukÅ¡ana pÄrtraukta" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nepareizs faila vÄrds" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nav simboliskÄ saite" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "NezinÄma kļūda" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u baits" msgstr[1] "%u baiti" msgstr[2] "%u baitu" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (nederÄ«gs Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskete" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disks" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB dzinis" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 dzinis" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Saknes sÄ“jums" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "NezinÄms sÄ“jums" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "TÄ«kla serveris" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Nevar piemontÄ“t diskeÅ¡u dzini. IespÄ“jams nav diska dzinÄ«." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "NevarÄ“ja piemontÄ“t sÄ“jumu. IespÄ“jams nav datu nesÄ“ja iekÄrtas." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Nevar piemontÄ“t diskeÅ¡u dzini. IespÄ“jams diskete ir formatÄ, kas nevar tikt " "piemontÄ“ts." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "NevarÄ“ja piemontÄ“t izvÄ“lÄ“to sÄ“jumu. Ja tas ir Å¡ifrÄ“ts dzinis, tad tika " "izmantota nepareiza parole vai atslÄ“ga." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "NevarÄ“ja piemontÄ“t izvÄ“lÄ“to sÄ“jumu. SÄ“jums, iespÄ“jams, uztur citu formÄtu, " "ko nav iespÄ“jams montÄ“t." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "NevarÄ“ja piemontÄ“t izvÄ“lÄ“to diskeÅ¡u dzini." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "NevarÄ“ja piemontÄ“t izvÄ“lÄ“to sÄ“jumu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "NevarÄ“ja atmontÄ“t izvÄ“lÄ“to sÄ“jumu. SÄ“jumu izmanto viena vai vairÄkas " "programmas." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "NevarÄ“ja atmontÄ“t izvÄ“lÄ“to sÄ“jumu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "NevarÄ“ja nolasÄ«t datus no bÄ“rnu procesa %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "NevarÄ“ja palaist montēšanas procesu pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "NegaidÄ«ta kļūda select(), lasot datus no bÄ“rnu procesa (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "NevarÄ“ja atsÅ«tÄ«t paroli montēšanas procesam." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "NegaidÄ«ta kļūda waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "NevarÄ“ja sÄkt komandu" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nevar izņemt datu nesÄ“ju" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nevar atmontÄ“t pievienotu serveri" #: ../modules/computer-method.c:543 msgid "Network" msgstr "TÄ«kls" #: ../modules/computer-method.c:561 msgid "Home" msgstr "MÄjas" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Failu sistÄ“ma" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "NezinÄma GnomeVFSSeekPozÄ«cija %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows tÄ«kls" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "AttÄlinÄtÄ datora (%s) identitÄte nav zinÄma." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "TÄ notiek, kad ienÄkat datorÄ pirmo reizi.\n" "\n" "IdentitÄte, kas sÅ«tÄ«ta no attÄlinÄta datora ir %s. Ja jÅ«s vÄ“laties pilnÄ«bÄ " "pÄrliecinÄties, ka turpinÄt ir droÅ¡i, sazinieties ar sistÄ“mas administratoru." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "PieslÄ“gties tÄpat" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Atcelt pieslÄ“gÅ¡anos" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "NevarÄ“ja atrast derÄ«gu uzstÄdijumu failu %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Lieto %s vides mainÄ«go, lai norÄdÄ«tu citu atraÅ¡anÄs vietu.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "JÅ«su HTTP starpnieks pieprasa jums ienÄkt sistÄ“mÄ.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Jums jÄienÄk sistÄ“mÄ, lai piekļūtu \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "JÅ«su parole tiks pÄrraidÄ«ta neÅ¡ifrÄ“tÄ veidÄ." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "JÅ«su parole tiks pÄrraidÄ«ta Å¡ifrÄ“tÄ veidÄ." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Jums jÄienÄk sistÄ“mÄ, lai piekļūtu %s domÄ“nam %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Jums jÄienÄk sistÄ“mÄ, lai piekļūtu %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "NoklusÄ“ta komponente pÄrlÅ«ka lietotnei" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "NoklusÄ“ta terminÄļa lietotne" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Izpildes arguments noklusÄ“tam terminÄlam" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Lietotne, ko izmanto, lai aplÅ«kotu datnes, kas pieprasa komponenti, lai " "aplÅ«kotu tÄs. Parametrs %s bÅ«s aizvietots ar datnes URI, parametrs %c bÅ«s " "aizvietots ar komponenta IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "NoklusÄ“ta terminÄļa lietotne, lai izmantotu lietotnes, kam nepiecieÅ¡ams " "terminÄlis." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Izpildes arguments noklusÄ“tu terminÄļa lietotni izmantoÅ¡anai." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Palaist komandu terminÄlÄ«" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"aim\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"callto\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"ghelp\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"h323\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"http\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"https\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"info\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"mailto\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Komanda, kas tiek izmantota apejoties ar \"man\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Komanda, kas tiek izmantota apejoties ar \"miskastes\" URL,ja ieslÄ“gta." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr " \"man\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"miskastes\" URL apstrÄdÄtÄjs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"aim\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"callto\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"ghelp\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"h323\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"http\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"https\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"info\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"mailto\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"man\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Patiess, ja komandai norÄdÄ«tai \"komanda\" atslÄ“gÄ vajadzÄ“tu apieties ar " "\"miskastes\" URL." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas " "terminÄlÄ«." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"aim\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"callto\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"ghelp\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"h323\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"http\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"https\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"info\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"mailto\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"man\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar \"miskastes\" URL" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Komata atdalÄ«ts DNS-SD domÄ“nu saraksts, ko vajadzÄ“tu redzÄ“t Å¡eit: " "\"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Papildus domÄ“ni, DNS-SD servisu meklēšanai" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "KÄ attÄ“lot vietÄ“jo DNS-SD servisu" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "IespÄ“jamÄs vÄ“rtÄ«bas ir \"merged\", \"separate\" un \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "IdentificÄ“jiet starpnieka servera savienojumus" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "AutomÄtiska starpnieka konfigurÄcija URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "IeslÄ“dz starpnieka uzstÄdÄ«jumus, kad piekļūst HTTP cauri tÄ«meklim." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP starpnieka saimniekdatora vÄrds" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP starpnieka ports" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP starpnieka saimniekdatora vÄrds" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP starpnieka parole" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP starpnieka ports" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP starpnieka lietotÄja vÄrds" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ja patiess, tad savienojumiem ar starpniekserveri, nepiecieÅ¡ama " "identifikÄcija. LietotÄja vÄrds/parole kombinÄcija ir definÄ“ta ar \"/system/" "http_proxy/authentication_user\" un \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Ne-starpnieka saimniekdatori" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Parole identificÄ“joties, veicot HTTP starpniekoÅ¡anu." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Starpnieka konfigurÄcijas režīms" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS starpnieka saimniekdatora vÄrds" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS starpnieka ports" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "DroÅ¡s HTTP starpnieka saimniekdatora vÄrds" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "DroÅ¡s HTTP starpnieka ports" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "IzvÄ“lieties starpnieka konfigurÄcijas režīmu. AtbalstÄ«tÄs vÄ“rtÄ«bas ir \"none" "\", \"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Mašīnas vÄrds, lai starpietu cauri FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Mašīnas vÄrds, lai starpietu cauri HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Mašīnas vÄrds, lai starpietu cauri droÅ¡u HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Mašīnas vÄrds, lai starpietu cauri." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Mašīnas ports definÄ“ts \"/system/http_proxy/host\" , lai jÅ«s varÄ“tu iziet " "cauri starpniekam." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Mašīnas ports definÄ“ts \"/system/proxy/ftp_host\" , lai jÅ«s varÄ“tu iziet " "cauri starpniekam." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Mašīnas ports definÄ“ts \"/system/proxy/secure_host\" ,lai jÅ«s varÄ“tu iziet " "cauri starpniekam." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Mašīnas ports definÄ“ts \"/system/proxy/socks_host\" , lai jÅ«s varÄ“tu iziet " "cauri starpniekam." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Å Ä« atslÄ“ga satur resursdatoru sarakstu, kas ir savienoti tieÅ¡i, labÄk nekÄ " "caur starpnieku (ja tas ir aktÄ«vs). VÄ“rtÄ«bas var bÅ«t saimniekdatoru vÄrdi, " "domÄ“ni (izmantojot aizstÄjÄ“jzÄ«mes, kÄ *.foo.com), resursdatoru IP adreses " "(kÄ IPv4 un IPv6) un tÄ«klu adreses ar tÄ«kla masku (piemÄ“ram, 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL kas apgÄdÄ ar starpniekkonfigurÄcijas vÄ“rtÄ«bÄm." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Izmantot HTTP starpnieku" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "LietotÄja vÄrds, lai izietu identifikÄciju,veicot HTTP starpniekoÅ¡anu " "(proxying)." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB darba grupa" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows tÄ«kloÅ¡anas darba grupa vai domÄ“ns, kura sastÄvÄ ir lietotÄjs. Lai " "jaunÄ darba grupa strÄdÄtu pilnÄ«gi, lietotÄjam vajadzÄ“tu iziet no sistÄ“mas " "un ienÄkt atpakaļ." gnome-vfs-2.24.4/po/kn.po0000644000175000001440000017534511413132751012024 00000000000000# translation of gnome-vfs.HEAD.kn.po to Kannada # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Shankar Prasad , 2008, 2009, 2010. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.kn\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-21 21:55+0530\n" "PO-Revision-Date: 2010-04-05 21:39+0530\n" "Last-Translator: Shankar Prasad \n" "Language-Team: kn-IN <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.0\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u NUL ಅಕà³à²·à²°à²—ಳನà³à²¨à³ ಹೊಂದಿದೆ." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ವಿಧಾನದ ಹೆಸರನà³à²¨à³ ಹೊಂದಿಲà³à²²." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ವೠಯಾವà³à²¦à³† ಆಯà³à²•ೆಗಳ ಎಂಡà³â€Œà²®à²¾à²°à³à²•ರೠಇಲà³à²²." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ಗೊತà³à²¤à²¿à²°à²¦ %s ಆಯà³à²•ೆಗಳನà³à²¨à³ ಹೊಂದಿದೆ." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ಯಾವà³à²¦à³† ಘಟಕದ ಹೆಸರನà³à²¨à³ ಹೊಂದಿಲà³à²²." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "ಸಂರಚನಾ ಕಡತ `%s' ವೠಕಂಡೠಬಂದಿಲà³à²²: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d ಪಾರà³à²¸à²¿à²‚ಗೠಅನà³à²¨à³ ಸà³à²¥à²—ಿತಗೊಳಿಸಿದೆ." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS ಜಾಲಬಂಧ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "ಸà³à²µà²¯à²‚-ಗà³à²°à³à²¤à²¿à²¸à²¿à²²à²¾à²¦ ಧà³à²µà²¨à²¿ ಪà³à²°à²®à²¾à²£" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs ಲಿನಕà³à²¸à³â€ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD ಡಿಜಿಟಲೠಅಡಿಯೊ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "ಯಂತà³à²°à²¾à²‚ಶ ಸಾಧನ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 ಲಿನಕà³à²¸à³â€ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 ಲಿನಕà³à²¸à³â€ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 ಲಿನಕà³à²¸à³â€ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "ಗಣಕ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "ಮೆಮೊರಿ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS ಜಾಲಬಂಧ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS ಲಿನಕà³à²¸à³ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 ಲಿನಕà³à²¸à³â€ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS ಲಿನಕà³à²¸à³â€ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows ಹಂಚಲà³à²ªà²Ÿà³à²Ÿ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "ತಾತà³à²•ಾಲಿಕ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "ವರà³à²§à²¿à²¸à²²à²¾à²¦ DOS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "ವಿಂಡೋಸೠVFAT ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS ಲಿನಕà³à²¸à³ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "ಗೊತà³à²¤à²¿à²°à²¦" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ಫà³à²²à²¾à²ªà²¿ ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "ಕಾಂಪà³à²¯à²¾à²•à³à²Ÿà³â€ ಫà³à²²à³à²¯à²¾à²¶à³ ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "ಮೆಮೊರಿ ಸà³à²Ÿà²¿à²•ೠಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "ಚà³à²°à³à²•ೠಮಾಧà³à²¯à²® ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "à²à²¿à²ªà³ ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ಜಾà²à³ ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "ಪೆನೠಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s ಸಂಗೀತದ ಪà³à²²à³‡à²¯à²°à³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ಡಿಜಿಟಲೠಕà³à²¯à²¾à²®à³†à²°à²¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "ಬಾಹà³à²¯ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ಖಾಲಿ CD-R ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ಖಾಲಿ CD-RW ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ಖಾಲಿ DVD-ROM ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ಖಾಲಿ DVD-R ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ಖಾಲಿ DVD-RW ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ಖಾಲಿ DVD+R ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ಖಾಲಿ DVD+RW ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ಆಡಿಯೋ ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s ತೆಗೆಯಬಹà³à²¦à²¾à²¦ ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ಪರಿಮಾಣ" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "ಗೊತà³à²¤à²¿à²°à²¦ ಕಾರà³à²¯à²¦ ಬಗೆ %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ಮà³à²•à³à²¤ GIOChannel ಗಾಗಿ ಪೈಪನà³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "ಗೊತà³à²¤à²¿à²°à²¦ ಬಗೆಯ ಕೆಲಸ %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ಕಾರà³à²¯à²µà²¨à³à²¨à³ ನಿಲà³à²²à²¿à²¸à²²à²¾à²—ಿದೆ" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ತೆಗೆದà³à²¹à²¾à²•ಲಾದ ಕà³à²°à²¿à²¯à³†. MIME ದತà³à²¤à²¸à²‚ಚಯಕà³à²•ೆ ಬಳಕೆದಾರನ ಮಾರà³à²ªà²¾à²¡à³à²—ಳೠಇನà³à²¨à³ ಮà³à²‚ದೆ " "ಬೆಂಬಲಿತವಾಗಿರà³à²µà³à²¦à²¿à²²à³à²²." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "ಪಾರà³à²¸à³ ಮಾಡಲಾಗಿಲà³à²²: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ಹೆಚà³à²šà²¿à²¨ ಪಾರà³à²¸à²¿à²‚ಗೠದೋಷಗಳನà³à²¨à³ ನಿರà³à²²à²•à³à²·à²¿à²¸à²²à²¾à²—à³à²µà³à²¦à³." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "ಯಾವà³à²¦à³† ದೋಷವಿಲà³à²²" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ಕಡತ ಕಂಡà³à²¬à²‚ದಿಲà³à²²" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ಸಾಮಾನà³à²¯ ದೋಷ" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ಆಂತರಿಕ ದೋಷ" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ಅಮಾನà³à²¯ ನಿಯತಾಂಕಗಳà³" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ಬೆಂಬಲವಿಲà³à²²à²¦ ಕಾರà³à²¯à²¾à²šà²°à²£à³†" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O ದೋಷ" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "ದತà³à²¤à²¾à²‚ಶ ಭà³à²°à²·à³à²Ÿà²—ೊಂಡಿದೆ" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ವಿನà³à²¯à²¾à²¸à²µà³ ಮಾನà³à²¯à²µà²¾à²¦à³à²¦à²²à³à²²" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ಸರಿಯಲà³à²²à²¦ ಬಗೆಯ ಕಡತ ನಿಭಾವಣೆ" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ಕಡತವೠಬಹಳ ದೊಡà³à²¡à²¦à²¾à²—ಿದೆ" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ಸಾಧನದಲà³à²²à²¿ ಯಾವà³à²¦à³† ಖಾಲಿ ಜಾಗ ಉಳಿದಿಲà³à²²" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ಓದಲೠಮಾತà³à²°à²µà²¾à²¦ ಕಡತ ವà³à²¯à²µà²¸à³à²¥à³†" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ಅಮಾನà³à²¯ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ತೆರೆಯದೆ ಇರà³à²µ ಕಡತ" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "ತೆರೆಯà³à²µ ವಿಧಾನವೠಮಾನà³à²¯à²µà²¾à²¦à³à²¦à²²à³à²²" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ನಿಲà³à²•ಣೆಯನà³à²¨à³ ತಿರಸà³à²•ರಿಸಲಾಗಿದೆ" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "ಬಹಳಷà³à²Ÿà³ ಕಡತಗಳನà³à²¨à³ ತೆರೆಯಲಾಗಿದೆ" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ಕಡತದ ಕೊನೆ" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ಕೋಶವಾಗಿಲà³à²²" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ಕಾರà³à²¯à²µà³ ಪà³à²°à²—ತಿಯಲà³à²²à²¿à²¦à³†" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ಕಾರà³à²¯à²•à³à²•ೆ ಭಂಗವà³à²‚ಟಾಗಿದೆ" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ಕಡತವೠಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³†" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ಕà³à²£à²¿à²•ೆ ಮಾಡà³à²µ ಜೋಡಣೆಯೠಎದà³à²°à²¾à²—ಿದೆ" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ಕಾರà³à²¯à²•à³à²•ೆ ಅನà³à²®à²¤à²¿ ಇಲà³à²²" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ಒಂದೠಕೋಶ" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ಸಾಕಷà³à²Ÿà³ ಮೆಮೊರಿಯೠಲಭà³à²¯à²µà²¿à²²à³à²²" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ಅತಿಥೇಯವೠಕಂಡೠಬಂದಿಲà³à²²" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ಅತಿಥೇಯದ ಹೆಸರೠಮಾನà³à²¯à²µà²¾à²¦à³à²¦à²²à³à²²" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ಅತಿಥೇಯವೠವಿಳಾಸವನà³à²¨à³ ಹೊಂದಿಲà³à²²" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ಪà³à²°à²µà³‡à²¶à²µà³ ವಿಫಲಗೊಂಡಿದೆ" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ಕಾರà³à²¯à²µà³ ರದà³à²¦à³ ಮಾಡಲà³à²ªà²Ÿà³à²Ÿà²¿à²¦à³†" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ಕೋಶವೠಕಾರà³à²¯à²¨à²¿à²°à²¤à²µà²¾à²—ಿದೆ" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ಕೋಶವೠಖಾಲಿಯಾಗಿಲà³à²²" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "ಬಹಳಷà³à²Ÿà³ ಕೊಂಡಿಗಳà³" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ಓದಲೠಮಾತà³à²°à²µà²¾à²¦ ಕಡತವà³à²¯à²µà²¸à³à²¥à³†" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ಒಂದೇ ಕಡತ ವà³à²¯à²µà²¸à³à²¥à³†à²¯à²²à³à²²à²¿ ಇಲà³à²²" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "ಹೆಸರೠಬಹಳ ಉದà³à²¦à²µà²¾à²—ಿದೆ" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "ಸೇವೆಯೠಲಭà³à²¯à²µà²¿à²²à³à²²" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "ಇಲà³à²²à²¦à³† ಇರà³à²µ ಸೇವೆಯ ಮಾಹಿತಿಗಾಗಿ ಮನವಿ ಸಲà³à²²à²¿à²¸à²²à²¾à²—ಿದೆ" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "ಪà³à²°à³Šà²Ÿà³Šà²•ಾಲೠದೋಷ" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ಮಾಸà³à²Ÿà²°à³ ವೀಕà³à²·à²•ವನà³à²¨à³ ಪತà³à²¤à³†à²¹à²šà³à²šà²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ಸಂಬಂಧಪಟà³à²Ÿ ಯಾವà³à²¦à³† ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಕà³à²°à²¿à²¯à³† ಇಲà³à²² " #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL ಸà³à²•ೀಮà³â€Œà²—ೆ ಯಾವà³à²¦à³† ಹà³à²¯à²¾à²‚ಡà³à²²à²°à³ ಇಲà³à²²" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "ಆಜà³à²žà²¾ ಸಾಲಿನಲà³à²²à²¿ ಪಾರà³à²¸à³ ಮಾಡà³à²µà²²à³à²²à²¿ ದೋಷ" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಆರಂಭಿಸà³à²µà²²à³à²²à²¿ ದೋಷ" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ಕಾಲತೀರà³à²µ ಸಮಯವನà³à²¨à³ ತಲà³à²ªà²¿à²¦à³†" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "ನಾಮಪರಿಚಾರಕದ ದೋಷ" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "ಸಂಪನà³à²®à³‚ಲವನà³à²¨à³ ಲಾಕೠಮಾಡಲಾಗಿದೆ" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ಕà³à²°à²¿à²¯à³†à²¯ ಕರೆಯನà³à²¨à³ ತೆಗೆದà³à²¹à²¾à²•ಲಾಗಿದೆ" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ಅಮಾನà³à²¯ ಕಡತದ ಹೆಸರà³" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "ಸಾಂಕೇತಿ ಕೊಂಡಿಯಾಗಿಲà³à²²" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ಅಜà³à²žà²¾à²¤ ದೋಷ" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ಬೈಟà³â€Œ" msgstr[1] "%u ಬೈಟà³â€Œà²—ಳà³" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ಅಮಾನà³à²¯ ಯà³à²¨à²¿à²•ೋಡà³)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ಫà³à²²à²¾à²ªà²¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ಡಿಸà³à²•à³â€" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ಡà³à²°à³ˆà²µà³" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "ಮೆಮೊರಿ ಸà³à²Ÿà²¿à²•à³" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "ಚà³à²°à³à²•ೠಮಾಧà³à²¯à²®" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "ಕà³à²¯à²¾à²®à²°à²¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "ಮೂಲ(ರೂಟà³) ಪà³à²°à²®à²¾à²£" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "ಆಡಿಯೋ ಸೀಡಿ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "ಗೊತà³à²¤à²¿à²°à²¦ ಧà³à²µà²¨à²¿à²¯ ಪà³à²°à²®à²¾à²£" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "ಜಾಲಬಂಧ ಪರಿಚಾರಕ" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "ಫà³à²²à²¾à²ªà²¿ ಡà³à²°à³ˆà²µà²¨à³à²¨à³ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²². ಬಹà³à²·à²ƒ ಡà³à²°à³ˆà²µà²¿à²¨à²²à³à²²à²¿ ಫà³à²²à²¾à²ªà²¿ ಇಲà³à²²à²¦à³† ಇರಬಹà³à²¦à³." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ಪರಿಮಾಣವನà³à²¨à³ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²². ಬಹà³à²·à²ƒ ಸಾಧನದಲà³à²²à²¿ ಮಾಧà³à²¯à²®à²µà³ ಇಲà³à²²à²¦à³† ಇರಬಹà³à²¦à³." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "ಫà³à²²à²¾à²ªà²¿ ಡà³à²°à³ˆà²µà²¨à³à²¨à³ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²². ಫà³à²²à²¾à²ªà²¿à²¯à³ ಬಹà³à²·à²ƒ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ದ ಬಗೆಯ ಒಂದೠ" "ಫಾರà³à²®à²¾à²Ÿà²¿à²¨à²²à³à²²à²¿ ಇರಬಹà³à²¦à³." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ಪರಿಮಾಣವನà³à²¨à³ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²². ಇದೠಗೂಢಲಿಪೀಕರಿಸಲಾದ ಸಾಧನವಾಗಿದà³à²¦à²²à³à²²à²¿, ಇಲà³à²²à²¿ ತಪà³à²ªà²¾à²¦ " "ಗà³à²ªà³à²¤à²ªà²¦ ಅಥವ ಕೀಲಿಯನà³à²¨à³ ಬಳಸಲಾಗಿದೆ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "ಆರಿಸಲಾದ ಪರಿಮಾಣವನà³à²¨à³ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²². ಪರಿಮಾಣವೠಆರೋಹಿಸಲಾಗದೆ ಇರà³à²µ ಒಂದೠ" "ಫಾರà³à²®à³à²¯à²¾à²Ÿà²¿à²¨à²²à³à²²à²¿ ಇರಬಹà³à²¦à³." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "ಆರಿಸಲಾದ ಫà³à²²à²¾à²ªà²¿ ಡà³à²°à³ˆà²µà²¨à³à²¨à³ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "ಆರಿಸಲಾದ ಪರಿಮಾಣವನà³à²¨à³ ಆರೋಹಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "ಆರೋಹಿಸಲಾಗಿರà³à²µ ಆರಿಸಲಾದ ಪರಿಮಾಣವನà³à²¨à³ ತೆಗೆಯಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²². ಪರಿಮಾಣವೠಒಂದೠಅಥವ " "ಹೆಚà³à²šà²¿à²¨ ಪà³à²°à³Šà²—à³à²°à²¾à²‚ಗಳಿಂದ ಬಳಸಲà³à²ªà²¡à³à²¤à³à²¤à²¿à²¦à³†." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "ಆರೋಹಿಸಲಾಗಿರà³à²µ ಆರಿಸಲಾದ ಪರಿಮಾಣವನà³à²¨à³ ತೆಗೆಯಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ಉಪ ಪà³à²°à²•à³à²°à²¿à²¯à³† %d (%s) ಇಂದ ಮಾಹಿತಿಯನà³à²¨à³ ಓದಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ಒಂದೠpty ಯಲà³à²²à²¿ ಆರೋಹಣಾ ಕಾರà³à²¯à²µà²¨à³à²¨à³ ಚಲಾಯಿಸಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "child ಪà³à²°à²•à³à²°à²¿à²¯à³† (%s) ಯಿಂದ ದತà³à²¤à²¾à²‚ಶವನà³à²¨à³ ಓದà³à²µà²¾à²— select() ನಲà³à²²à²¿ ಅನಪೇಕà³à²·à²¿à²¤ ದೋಷ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "ಆರೋಹಣಾ ಪà³à²°à²•à³à²°à²¿à²¯à³†à²—ೆ ಗà³à²ªà³à²¤à²ªà²¦à²µà²¨à³à²¨à³ ಕಳà³à²¹à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() (%s) ಯಲà³à²²à²¿ ಅನಿರೀಕà³à²·à²¿à²¤ ದೋಷ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಆರಂಭಿಸಲೠವಿಫಲಗೊಂಡಿದೆ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ಮಾಧà³à²¯à²®à²µà²¨à³à²¨à³ ಹೊರತೆಗೆಯಲಾಗà³à²¤à³à²¤à²¿à²²à³à²²" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "ಸಂಪರà³à²• ಜೋಡಿಸಲಾಗಿರà³à²µ ಪರಿಮಾಣವನà³à²¨à³ ತೆಗೆಯಲೠಸಾಧà³à²¯à²µà²¾à²—ಿಲà³à²²" #: ../modules/computer-method.c:543 msgid "Network" msgstr "ಜಾಲಬಂಧ" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ನೆಲೆ" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ಕಡತವà³à²¯à²µà²¸à³à²¥à³†" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ಗೊತà³à²¤à²¿à²°à²¦ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "ವಿಂಡೋಸೠಜಾಲಬಂಧ" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ದೂರಸà³à²¥ ಗಣಕದ (%s) ಗà³à²°à³à²¤à³ ತಿಳಿದಿಲà³à²²." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ನೀವೠಗಣಕಕà³à²•ೆ ಮೊದಲ ಬಾರಿಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¿à²¦à²¾à²— ಹೀಗೆ ಆಗà³à²¤à³à²¤à²¦à³†.\n" "\n" "ದೂರಸà³à²¥ ಗಣಕದಿಂದ ಕಳà³à²¹à²¿à²¸à²²à²¾à²¦ ಗà³à²°à³à²¤à³ %s ಆಗಿದೆ. ಮà³à²‚ದà³à²µà²°à³†à²¯à³à²µà³à²¦à³ ಸಂಪೂರà³à²£ ಸà³à²°à²•à³à²·à²¿à²¤à²µà³† " "ಎಂದೠಅರಿಯಲೠಗಣಕ ವà³à²¯à²µà²¸à³à²¥à²¾à²ªà²•ರನà³à²¨à³ ಸಂಪರà³à²•ಿಸಿ." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "à²à²¨à²¾à²¦à²°à³‚ ಆಗಲೆ ಒಳಗೆ ಪà³à²°à²µà³‡à²¶à²¿à²¸à³" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ಪà³à²°à²µà³‡à²¶à²¿à²¸à³à²µà³à²¦à²¨à³à²¨à³ ರದà³à²¦à³ ಮಾಡà³" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s ಯಲà³à²²à²¿ ಮಾನà³à²¯à²µà²¾à²¦ ಯಾವà³à²¦à³† ಸಿದà³à²§à²¤à³†à²—ಳ ಕಡತವೠಕಂಡà³à²¬à²‚ದಿಲà³à²²\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "ಬೇರೊಂದೠಸà³à²¥à²³à²µà²¨à³à²¨à³ ಸೂಚಿಸಲೠ%s ವಾತಾವರಣ ಚರಮೌಲà³à²¯à²µà²¨à³à²¨à³ ಬಳಸಿ.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "ನಿಮà³à²® HTTP ಪà³à²°à²¾à²•à³à²¸à²¿à²—ಾಗಿ ನೀವೠಪà³à²°à²µà³‡à²¶à²¿à²¸à³à²µà³à²¦à³ ಅಗತà³à²¯à²µà²¾à²—à³à²¤à³à²¤à²¦à³†.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" ಅನà³à²¨à³ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à²²à³ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¬à³‡à²•ಾಗà³à²¤à³à²¤à²¦à³†.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ಗೂಢಲಿಪೀಕರಿಸದೆ ರವಾನಿಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "ನಿಮà³à²® ಗà³à²ªà³à²¤à²ªà²¦à²µà³ ಗೂಢಲಿಪೀಕರಿಸಲà³à²ªà²Ÿà³à²Ÿà³ ರವಾನಿಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "ನೀವೠ%s ನ %s ಕà³à²·à³‡à²¤à³à²°à²µà²¨à³à²¨à³ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à²²à³ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¬à³‡à²•ಾಗà³à²¤à³à²¤à²¦à³†\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "ನೀವೠ%s ಅನà³à²¨à³ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à²²à³ ಪà³à²°à²µà³‡à²¶à²¿à²¸à²¬à³‡à²•ಾಗà³à²¤à³à²¤à²¦à³†\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಘಟಕ ನೋಡà³à²µ ಅನà³à²µà²¯" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³ ಅನà³à²µà²¯" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³â€Œà²—ಾಗಿನ Exec ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "ಕಡತಗಳನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²²à³ ಒಂದೠಘಟಕದ ಅಗತà³à²¯à²µà²¿à²°à³à²µà²‚ತಹ ಕಡತಗಳನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²²à³ ಬಳಸಬೇಕಾದ ಒಂದೠ" "ಅನà³à²µà²¯. %s ನಿಯತಾಂಕವನà³à²¨à³ ಕಡತಗಳ URI ಗಳಿಂದ ಬದಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¦à³†, ಹಾಗೠ%c ನಿಯತಾಂಕವನà³à²¨à³ " "ಘಟಕದ IID ಇಂದ ಬದಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨ ಅಗತà³à²¯à²µà²¿à²°à³à²µ ಅನà³à²µà²¯à²—ಳಲà³à²²à²¿ ಬಳಸಬೇಕಿರà³à²µ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³ ಅನà³à²µà²¯." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³ ಅನà³à²µà²¯à²¦à²²à³à²²à²¿ ಬಳಸಬೇಕಿರà³à²µ exec ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸà³" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"aim\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"callto\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"ghelp\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"h323\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"http\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"https\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"info\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"mailto\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"man\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ \"trash\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"aim\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"callto\" URLಗಳನà³à²¨à³ " "ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"ghelp\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"h323\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"http\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"https\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"info\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"mailto\" URLಗಳನà³à²¨à³ " "ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"man\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"trash\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "ನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠ" "ಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"aim\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"callto\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"ghelp\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"https\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"http\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"https\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"info\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"mailto\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"man\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ \"trash\" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "\"network:///\" ಸà³à²¥à²³à²¦à²²à³à²²à²¿ ಕಾಣಿಸಬೇಕಿರà³à²µ ಅರà³à²§à²µà²¿à²°à²¾à²® ಚಿಹà³à²¨à³†à²µà²¨à³à²¨à³ ಹೊಂದಿರà³à²µ DNS-SD " "ಕà³à²·à³‡à²¤à³à²°à²—ಳ ಪಟà³à²Ÿà²¿." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD ಸೇವೆಗಳನà³à²¨à³ ಹà³à²¡à³à²•ಬೇಕಿರà³à²µ ಹೆಚà³à²šà²¿à²¨ ಘಟಕಗಳà³" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "ಸà³à²¥à²³à³€à²¯ DNS-SD ಸೇವೆಯನà³à²¨à³ ಹೇಗೆ ತೋರಿಸಬೇಕà³" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "ಸಾಧà³à²¯à²µà²¿à²°à³à²µ ಮೌಲà³à²¯à²—ಳೠ\"ಒಗà³à²—ೂಡಿಸಲಾದ\", \"ಪà³à²°à²¤à³à²¯à³‡à²•\" ಹಾಗೠ\"ಅಶಕà³à²¤à²—ೊಂಡ\" ಆಗಿರà³à²¤à³à²¤à²µà³†." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿ ಪರಿಚಾರಕ ಸಂಪರà³à²•ಗಳನà³à²¨à³ ದೃಢೀಕರಿಸà³" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ಸà³à²µà²¯à²‚ಚಾಲಿತ ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನೆಯ ಯà³à²†à²°à³à²Žà²²à³" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ಅಂತರà³à²œà²¾à²²à²¦ ಮೂಲಕ HTTP ಯನà³à²¨à³ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à³à²µà²¾à²— ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಿದà³à²§à²¤à³†à²—ಳನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸà³." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರà³" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರà³" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಗà³à²ªà³à²¤à²ªà²¦" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಬಳಕೆದಾರಹೆಸರà³" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "true ಆದಲà³à²²à²¿, ಪà³à²°à²¾à²•à³à²¸à²¿ ಪರಿಚಾರಕಕà³à²•ಾಗಿ ಸಂಪರà³à²•ಗಳಿಗೆ ದೃಢೀಕರಣದ ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†. " "ಬಳಕೆದಾರಹೆಸರà³/ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಸಿದà³à²§à²¤à³†à²¯à²¨à³à²¨à³ \"/system/http_proxy/authentication_user\" " "ಹಾಗೠ/system/http_proxy/authentication_password\" ಇಂದ ಸೂಚಿಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿à²¯à²²à³à²²à²¦ ಅತಿಥೇಯಗಳà³" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಕಾರà³à²¯à²µà³ ನಡೆಸà³à²µà²¾à²— ದೃಢೀಕರಿಸಲೠಬಳಸಬೇಕಿರà³à²µ ಗà³à²ªà³à²¤à²ªà²¦." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನಾ ಕà³à²°à²®" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರà³" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "ಸà³à²°à²•à³à²·à²¿à²¤ HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರà³" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "ಸà³à²°à²•à³à²·à²¿à²¤ HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನಾ ಕà³à²°à²®à²µà²¨à³à²¨à³ ಆರಿಸಿ. ಬೆಂಬಲವಿರà³à²µ ಮೌಲà³à²¯à²—ಳà³, \"ಯಾವà³à²¦à³‚ ಇಲà³à²²\", \"ಕೈಯಾರೆ\", " "\"ತಾನಾಗಿಯೆ\" ಆಗಿರà³à²¤à³à²¤à²µà³†." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿ FTP ಮಾಡಲೠಬಳಸಬೇಕಿರà³à²µ ಗಣಕದ ಹೆಸರà³." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿ HTTP ಮಾಡಲೠಬಳಸಬೇಕಿರà³à²µ ಗಣಕದ ಹೆಸರà³." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿ ಸà³à²°à²•à³à²·à²¿à²¤ HTTP ಮಾಡಲೠಬಳಸಬೇಕಿರà³à²µ ಗಣಕದ ಹೆಸರà³." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಾಕà³à²¸à³ ಮಾಡಲೠಗಣಕದ ಹೆಸರà³." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ \"/system/http_proxy/host\" ಯಲà³à²²à²¿ " "ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ \"/system/proxy/ftp_host\" ಯಲà³à²²à²¿ " "ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ \"/system/proxy/secure_host\" ಯಲà³à²²à²¿ " "ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ \"/system/proxy/socks_host\" ಯಲà³à²²à²¿ " "ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ಈ ಕೀಲಿಯೠಪà³à²°à²¾à²•à³à²¸à²¿à²¯ (ಸಕà³à²°à²¿à²¯à²µà²¾à²—ಿದà³à²¦à²²à³à²²à²¿) ಮೂಲಕ ಸಂಪರà³à²•ಿತವಾಗಿಲà³à²²à²¦à³†, ನೇರವಾಗಿ ಸಂಪರà³à²•ವನà³à²¨à³ " "ಹೊಂದಿರà³à²µ ಅತಿಥೇಯಗಳ ಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ಹೊಂದಿರà³à²¤à³à²¤à²¦à³†. ಸಾಧà³à²¯à²µà²¿à²°à³à²µ ಮೌಲà³à²¯à²—ಳೆಂದರೆ ಅತಿಥೇಯದ " "ಹೆಸರà³à²—ಳà³, ಕà³à²·à³‡à²¤à³à²°à²¦ ಹೆಸರà³à²—ಳೠ(*.foo.com ನಂತಹ ಆರಂಭಿಕ ವೈಲà³à²¡à³â€à²•ಾರà³à²¡à³ ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡà³), " "IP ಅತಿಥೇಯ ವಿಳಾಸಗಳೠ(IPv4 ಹಾಗೠIPv6) ಹಾಗೠಒಂದೠನೆಟà³â€Œà²®à²¾à²¸à³à²•ಿನೊಂದಿನ (192.168.0.0/24 " "ನಂತಹವà³à²—ಳà³) ಜಾಲಬಂಧ ವಿಳಾಸಗಳೠಆಗಿರà³à²¤à³à²¤à²¿à²µà³†." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನಾ ಮೌಲà³à²¯à²—ಳನà³à²¨à³ ಒದಗಿಸà³à²µ ಯà³à²†à²°à³à²Žà²²à³." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP ಪà³à²°à²¾à²•à³à²¸à²¿à²¯à²¨à³à²¨à³ ಬಳಸà³" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಕಾರà³à²¯à²µà²¨à³à²¨à³ ನಡೆಸà³à²µà²¾à²— ದೃಢೀಕರಿಸಲೠಬಳಸಬೇಕಿರà³à²µ ಬಳಕೆದಾರ ಹೆಸರà³." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ಕೆಲಸದಗà³à²‚ಪà³" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "ಬಳಕೆದಾರರೠಒಂದೠಭಾಗವಾದ ವಿಂಡೋಸೠನೆಟà³â€Œà²µà²°à³à²•ಿಂಗೠವರà³à²•à³-ಗà³à²°à³‚ಪೠಅಥವ ಡೊಮೈನಿನ ಹೆಸರà³. ಹೊಸ ವರà³à²•à³-" "ಗà³à²°à³‚ಪೠಸಂಪೂರà³à²£à²µà²¾à²—ಿ ಕಾರà³à²¯à²°à³‚ಪಕà³à²•ೆ ಬರಲೠಬಳಕೆದಾರರೠನಿರà³à²—ಮಿಸಿ ನಂತರ ಮರಳಿ ಪà³à²°à²µà³‡à²¶à²¿à²¸à³à²µ " "ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†." #~ msgid "Default media application" #~ msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಮಾಧà³à²¯à²® ಅನà³à²µà²¯" #~ msgid "Exec argument for default media application" #~ msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³â€Œà²—ಾಗಿನ Exec ಅನà³à²µà²¯" #~ msgid "The default media application to use when media buttons are pressed." #~ msgstr "ಮಾಧà³à²¯à²® ಗà³à²‚ಡಿಗಳನà³à²¨à³ ಒತà³à²¤à²¿à²¦à²¾à²— ಬಳಸಬೇಕಿರà³à²µ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಮಾಧà³à²¯à²® ಅನà³à²µà²¯." #~ msgid "The exec argument to use for the default media application." #~ msgstr "ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಮಾಧà³à²¯à²® ಅನà³à²µà²¯à²¦à²²à³à²²à²¿ ಬಳಸಬೇಕಿರà³à²µ exec ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³." #~ msgid "Handle about URLs" #~ msgstr "URLಗಳ ಬಗೆಗಿನ ಹà³à²¯à²¾à²‚ಡಲà³â€Œà²—ಳà³" #~ msgid "Run program in terminal" #~ msgstr "ಪà³à²°à³‹à²—à³à²°à²¾à²‚ ಅನà³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಿ" #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle about URLs." #~ msgstr "" #~ "\"ಆಜà³à²žà³†\" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ ಬಗೆಗಿನ URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ " #~ "ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† ." #~ msgid "True if the program to handle this URL should be run in a terminal." #~ msgstr "ಈ URL ಅನà³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³â€Œà²¨à²²à³à²²à²¿ ಪà³à²°à³Šà²—à³à²°à²¾à²‚ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ನಿಜವಾಗಿರà³à²¤à³à²¤à²¦à³†." #~ msgid "about URL handler" #~ msgstr "URL ಹà³à²¯à²¾à²‚ಡà³à²²à²°à³ ಬಗೆಗೆ" gnome-vfs-2.24.4/po/or.po0000644000175000001440000017340611334251016012026 00000000000000# translation of gnome-vfs.HEAD.or.po to Oriya # Oriya translation of gnome-vfs.HEAD.pot. # Copyright (C) 2004, 2006, 2008, Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # $Id: or.po,v 1.4 2006/07/19 06:10:28 sbehera Exp $ # # Swagat Ranjan , 2004. # Gora Mohanty , 2004, 2006. # Subhransu Behera , 2006. # Manoj Kumar Giri , 2008. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.or\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-08-20 04:00+0000\n" "PO-Revision-Date: 2008-06-17 12:29+0530\n" "Last-Translator: Manoj Kumar Giri \n" "Language-Team: Oriya\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" "\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 ଅଂଶ" # libgnomevfs/gnome-vfs-configuration.c:223 #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u ଟି ନଲ ଅକà­à¬·à¬° ମାନଙà­à¬•ୠଧାରଣ କରିଅଛି।" # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%uଟି କୌଣସି ପà­à¬°à¬£à¬¾à¬³à­€à¬° ନାମ ଧାରଣ କରିନାହିà¬à¥¤" # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%uରେ ବିକଲà­à¬ª ପାଇଠକୌଣସି ଶେଷ ଚିହà­à¬¨ ନାହିà¬à¥¤" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%uରେ ଅଜଣା ବିକଲà­à¬ª %s ଅଛି।" # libgnomevfs/gnome-vfs-configuration.c:269 #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%uଟି କୌଣସି à¬à¬•କାଂଶର ନାମ ଧାରଣ କରିନାହିà¬à¥¤" # libgnomevfs/gnome-vfs-configuration.c:322 #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "`%s' ବିନà­à¬¯à¬¾à¬¸ ଫାଇଲ ମିଳିଲା ନାହିà¬: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d ବିଶà­à¬³à­‡à¬·à¬£ ଅଟକାଇ ଦିଆଯଆଇଛି" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "à¬.à¬à¬«à­.à¬à¬«à­.à¬à¬¸à­ ଅଂଶ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "à¬.à¬à¬«à­.à¬à¬¸à­. ଜାଲକ ଅଂଶ " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "ସà­à¬¬à¬‚à­Ÿ ଖୋଜି ପାଇଥିବା ଅଂଶ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr " ସି.ଡି.-ରମୠଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "ସିଡି ଡିଜିଟାଲୠଧà­à¬¬à¬¨à¬¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "ହାରà­à¬¡à­±à­‡à¬° ଯନà­à¬¤à­à¬° ଅଂଶ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "ତନà­à¬¤à­à¬° ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "ସà­à¬®à­ƒà¬¤à¬¿ ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS ନେଟୱରà­à¬• ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "ନେଟୱରà­à¬• ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "ୱିଣà­à¬¡à­‹à¬œ ସହଭାଗି ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "ସାମୟିକ ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "ଉନà­à¬¨à¬¤ DOS ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS ମାତà­à¬°à¬¾" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "ଅଜଣା" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ଫà­à¬²à¬ªà¬¿ ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "କମà­à¬ªà¬¾à¬•à­à¬Ÿ ଫà­à¬²à¬¾à¬· ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "ସà­à¬®à­à¬¤à¬¿ ଦଣà­à¬¡ ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "ସà­à¬®à¬¾à¬°à­à¬Ÿ ମିଡିଆ ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s ସଙà­à¬—ୀତ ଚାଳକ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ସାଂଖà­à¬¯à¬¿à¬• କà­à¬¯à¬¾à¬®à­‡à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "ବାହà­à¬¯ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "ସି.ଡି.-ରମ ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ଖାଲି ସି.ଡି.-ଆରୠଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "ସି.ଡି.-ଆରୠଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ଖାଲି ସି.ଡି.-ଆରà­.ଡବà­à¬²à­. ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "ସି.ଡି.-ଆରà­.ଡବà­à¬²à­. ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "ଡି.ଭି.ଡି.-ରମ ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ଖାଲି ଡି.ଭି.ଡି.-ରାମୠଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "ଡି.ଭି.ଡି.-ରାମୠଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ଖାଲି ଡି.ଭି.ଡି.-ରମ ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "ଡି.ଭି.ଡି.-ରମ ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ଖାଲି ଡି.ଭି.ଡି.-ଆରà­.ଡବà­à¬²à­. ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "ଡି.ଭି.ଡି.-ଆରà­.ଡବà­à¬²à­. ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ଖାଲି ଡି.ଭି.ଡି.+ଆରୠଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "ଡି.ଭି.ଡି.+ଆରୠଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ଖାଲି ଡି.ଭି.ଡି.+ଆରà­.ଡବà­à¬²à­. ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "ଡି.ଭି.ଡି.+ଆରà­.ଡବà­à¬²à­. ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ଧà­à¬¬à¬¨à¬¿ ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s ଅପସାରଣୀୟ ଅଂଶ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ଅଂଶ" # libgnomevfs/gnome-vfs-job.c:714 #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "ଅଜଣା ଚାଳକ ପà­à¬°à¬•ାର %u" # libgnomevfs/gnome-vfs-job.c:1005 libgnomevfs/gnome-vfs-job.c:1150 #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ଖୋଲା ଜି.ଆଇ.ଓ. ଚାନେଲ ପାଇଠପାଇପୠସୃଷà­à¬Ÿà¬¿ କରିହେଲା ନାହିà¬: %s" # libgnomevfs/gnome-vfs-job.c:1596 #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "ଅଜଣା କାମ ପà­à¬°à¬•ାର %u" # libgnomevfs/gnome-vfs-job.c:1632 #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "ଚାଳନା ବନà­à¬¦ ହୋଇଯାଇଛି" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "ଅପସନà­à¬¦ ଫଳନ. ମାଇମ ତଥà­à¬¯à¬¾à¬§à¬¾à¬°à¬°à­‡ ବà­à¬¯à¬¬à¬¹à¬¾à¬°à¬•ାରୀ ପରିବରà­à¬¤à­à¬¤à¬¨ à¬à¬¬à­‡ ଅସହାୟକ." # libgnomevfs/gnome-vfs-parse-ls.c:652 #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "ବିଶà­à¬²à­‡à¬·à¬£ କରିହେଲା ନାହିà¬: %s" # libgnomevfs/gnome-vfs-parse-ls.c:654 #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "ଅଧିକ ବିଶà­à¬²à­‡à¬·à¬£ ତà­à¬°à­à¬Ÿà¬¿ ଅଗà­à¬°à¬¾à¬¹à­à¬¯ କରାଯିବ." # libgnomevfs/gnome-vfs-result.c:35 #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "କିଛି ତà­à¬°à­à¬Ÿà¬¿ ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:36 #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ଫାଇଲ ମିଳିଲା ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ସାଧାରଣ ତà­à¬°à­à¬Ÿà¬¿" # libgnomevfs/gnome-vfs-result.c:38 #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ଆଭà­à¬¯à¬¨à­à¬¤à¬°à­€à¬£ ତà­à¬°à­à¬Ÿà¬¿" # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ଅବୈଧ ପà­à¬°à¬¾à¬šà¬³" # libgnomevfs/gnome-vfs-result.c:40 #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ଅସହାୟକ ଚାଳନା" # libgnomevfs/gnome-vfs-result.c:41 #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "ନିବେଶ/ନିରà­à¬—ମ ତà­à¬°à­à¬Ÿà¬¿" # libgnomevfs/gnome-vfs-result.c:42 #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "ତà­à¬°à­à¬Ÿà¬¿à¬¯à­à¬•à­à¬¤ ତଥà­à¬¯" # libgnomevfs/gnome-vfs-result.c:43 #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ସଜà­à¬œà¬¿à¬•ରଣ ଶୈଳୀ ବୈଧ ନà­à¬¹à­‡à¬" # libgnomevfs/gnome-vfs-result.c:44 #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ତà­à¬°à­à¬Ÿà¬¿à¬¯à­à¬•à­à¬¤ ଫାଇଲ ହାଣà­à¬¡à¬²à­" # libgnomevfs/gnome-vfs-result.c:45 #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ଫାଇଲ ଅତି ବଡ଼" # libgnomevfs/gnome-vfs-result.c:46 #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ଯନà­à¬¤à­à¬°à¬°à­‡ ସà­à¬¥à¬¾à¬¨ ଖାଲି ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:47 #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "କେବଳ ପଠନୀୟ ଫାଇଲ ତନà­à¬¤à­à¬°" # libgnomevfs/gnome-vfs-result.c:48 #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ଅବୈଧ à­Ÿà­.ଆର.ଆଇ." # libgnomevfs/gnome-vfs-result.c:49 #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ଫାଇଲ ଖୋଲା ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:50 #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "ଖୋଲା ଧାରା ବୈଧ ନà­à¬¹à­‡à¬" # libgnomevfs/gnome-vfs-result.c:51 #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ପà­à¬°à¬¬à­‡à¬¶à¬¾à¬¨à­à¬®à¬¤à¬¿ ମନା" # libgnomevfs/gnome-vfs-result.c:52 #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "ଅତà­à¬¯à¬§à¬¿à¬• ଫାଇଲ ଖୋଲା ଅଛି" # libgnomevfs/gnome-vfs-result.c:53 #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ଫାଇଲ ସମାପà­à¬¤à¬¿" # libgnomevfs/gnome-vfs-result.c:54 #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ଡିରେକà­à¬Ÿà­‹à¬°à¬¿ ନà­à¬¹à­‡à¬" # libgnomevfs/gnome-vfs-result.c:55 #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ଚାଳନା ଚାଲà­à¬…ଛି" # libgnomevfs/gnome-vfs-result.c:56 #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ଚାଳନାକୠବà­à¬¯à¬¾à¬¹à¬¤ କରାଯାଇଛି" # libgnomevfs/gnome-vfs-result.c:57 #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ଫାଇଲ ଅଛି" # libgnomevfs/gnome-vfs-result.c:58 #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ଚକà­à¬°à¬¿à¬³ ସଂଯୋଗ ମିଳିଲା" # libgnomevfs/gnome-vfs-result.c:59 #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ଚାଳନା ପାଇଠଅନà­à¬®à¬¤à¬¿ ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:60 #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "à¬à¬¹à¬¾ ଗୋଟିଠଡିରେକà­à¬Ÿà­‹à¬°à¬¿" # libgnomevfs/gnome-vfs-result.c:61 #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ପରà­à¬¯à­à¬¯à¬¾à¬ªà­à¬¤ ସà­à¬®à­à¬¤à¬¿ ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:62 #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ଆଧାର ମିଳିଲା ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:63 #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ଆଧାର ନାମ ବୈଧ ନà­à¬¹à­‡à¬" # libgnomevfs/gnome-vfs-result.c:64 #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ଆଧାରର କୌଣସି ଠିକଣା ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:65 #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ଲଗଇନୠଅସଫଳ" # libgnomevfs/gnome-vfs-result.c:66 #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ଚାଳନା ବାତିଲ କରାଯାଇଛି" # libgnomevfs/gnome-vfs-result.c:67 #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ଡିରେକà­à¬Ÿà­‹à¬°à¬¿ କାରà­à¬¯à­à¬¯à¬¬à­à¬¯à¬¸à­à¬¤" # libgnomevfs/gnome-vfs-result.c:68 #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ଡିରେକà­à¬Ÿà­‹à¬°à¬¿ ଖାଲି ନାହିà¬" # libgnomevfs/gnome-vfs-result.c:69 #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "ଅତà­à¬¯à¬§à¬¿à¬• ସଂଯୋଗ" # libgnomevfs/gnome-vfs-result.c:70 #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "କେବଳ ପଠନୀୟ ଫାଇଲ ତନà­à¬¤à­à¬°" # libgnomevfs/gnome-vfs-result.c:71 #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "à¬à¬•ା ଫାଇଲ ତନà­à¬¤à­à¬°à¬°à­‡ ନà­à¬¹à­‡à¬" # libgnomevfs/gnome-vfs-result.c:72 #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "ନାମ ଅତି ଲମà­à¬¬à¬¾" # libgnomevfs/gnome-vfs-result.c:73 #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "ସେବା ଉପଲବà­à¬§ ନà­à¬¹à­‡à¬" # libgnomevfs/gnome-vfs-result.c:74 #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "ଅନà­à¬°à­‹à¬§ ସେବାର ତଥà­à¬¯à¬•ୠଅଚଳ କରିଦିà¬" # libgnomevfs/gnome-vfs-result.c:75 #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "ବିଧି ତà­à¬°à­à¬Ÿà¬¿" # libgnomevfs/gnome-vfs-parse-ls.c:652 #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ମà­à¬–à­à¬¯ ଖୋଜାଳି ମିଳିଲା ନାହିà¬" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "କୌଣସି ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ କାମ ସଂଯà­à¬•à­à¬¤ ହୋଇନାହିà¬" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "à­Ÿà­.ଆରà­.à¬à¬²à­. ଯୋଜନାର କୌଣସି ଚାଳକ ନାହିà¬" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "ପାଠà­à¬¯ ନିରà­à¬¦à­à¬¦à­‡à¬¶ ବିଶà­à¬²à­‡à¬·à¬£ କରିବାରେ ତà­à¬°à­à¬Ÿà¬¿" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "ନିରà­à¬¦à­à¬¦à­‡à¬¶ ଚାଳନ କରିବାରେ ତà­à¬°à­à¬Ÿà¬¿" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ସମୟ ଶେଷ ହୋଇଗଲା" # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "ନାମସେବକ ତà­à¬°à­à¬Ÿà¬¿" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "ସମà­à¬¬à¬³à¬Ÿà¬¿ ଅପରିବରà­à¬¤à­à¬¤à¬¨à­€à­Ÿ" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ଫଳନ ଡାକରା ଅପସନà­à¬¦" # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ଅବୈଧ ଫାଇଲ ନାମ" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "ଗୋଟିଠପà­à¬°à¬¤à¬¿à¬•ାତà­à¬®à¬• ସମà­à¬ªà¬°à­à¬• ନà­à¬¹à­‡à¬" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ଅଜଣା ତà­à¬°à­à¬Ÿà¬¿" # libgnomevfs/gnome-vfs-utils.c:67 #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ବାଇଟà­" msgstr[1] "%u ବାଇଟà­" # libgnomevfs/gnome-vfs-utils.c:74 #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f କିଲୋ-ବାଇଟà­" # libgnomevfs/gnome-vfs-utils.c:78 #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f ମେଗା-ବାଇଟà­" # libgnomevfs/gnome-vfs-utils.c:82 #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f ଗିଗା-ବାଇଟà­" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(ଅବୈଧ à­Ÿà­à¬¨à¬¿à¬•ୋଡà­)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ଫà­à¬²à¬ªà¬¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ଡିସà­à¬•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "à­Ÿà­.à¬à¬¸.ବି. ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ଡà­à¬°à¬¾à¬‡à¬­à­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "ସà­à¬®à­ƒà¬¤à¬¿ ଦଣà­à¬¡" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "ସà­à¬®à¬¾à¬°à­à¬Ÿ ମିଡିଆ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "କà­à¬¯à¬¾à¬®à­‡à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "ମୂଳ ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "ଧà­à¬¬à¬¨à¬¿ CD" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "ଅଜଣା ମାତà­à¬°à¬¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "ନେଟୱରà­à¬• ସରଭର" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ଫà­à¬²à¬ªà¬¿ ଡà­à¬°à¬¾à¬‡à¬­ ସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ. ସମà­à¬­à¬¬à¬¤à¬ƒ କି ଡà­à¬°à¬¾à¬‡à¬­à¬°à­‡ କୌଣସି ଫà­à¬²à¬ªà¬¿ ନାହିà¬à¥¤" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ଅଂଶକୠସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ. ସମà­à¬­à¬¬à¬¤à¬ƒ କି ତନà­à¬¤à­à¬°à¬°à­‡ କୌଣସି ମାଧà­à¬¯à¬® ନାହିà¬à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "ପà­à¬²à¬ªà¬¿ ଡà­à¬°à¬¾à¬‡à¬­ ସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ. ସମà­à¬­à¬¬à¬¤à¬ƒ କି ଫà­à¬³à¬ªà¬¿à¬Ÿà¬¿ ଯେଉଠସଜà­à¬œà¬¿à¬•ରଣ ଶୈଳୀରେ ଅଛି ତାହା ସà­à¬¥à¬¾à¬ªà¬¨ " "କରାଯାଇପାରିବ ନାହିà¬à¥¤" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ଅଂଶକୠସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ. ଯଦି à¬à¬¹à¬¾ ଗୋଟିଠସଂଗà­à¬ªà­à¬¤ ଡà­à¬°à¬¾à¬‡à¬­, ତେବେ ଭà­à¬² ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ବା ଚାବି " "ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାଇଥିଲା।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "ଅଂଶକୠସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ. ସମà­à¬­à¬¬à¬¤à¬ƒ କି ଅଂଶ ଯେଉଠସଜà­à¬œà¬¿à¬•ରଣ ଶୈଳୀରେ ଅଛି ତାହା ସà­à¬¥à¬¾à¬ªà¬¨ " "କରାଯାଇପାରିବ ନାହିà¬à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "ବଛା ଫà­à¬²à¬ªà¬¿ ଡà­à¬°à¬¾à¬‡à¬­ ସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "ବଛା ଅଂଶକୠସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "ବଛା ଅଂଶକୠସà­à¬¥à¬¾à¬ªà¬¨ କରିବାରେ ଅସଫଳ। ଅଂଶଟି ଗୋଟିଠବା ଅଧିକ ପà­à¬°à­Ÿà­‹à¬— ଦà­à¬¬à¬¾à¬°à¬¾ ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାଉଛି।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "ବଛା ଅଂଶକୠକାଢ଼ିବାରେ ଅସଫଳ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ନିରà­à¬­à¬°à¬• ପà­à¬°à¬•à­à¬°à¬¿à­Ÿà¬¾à¬ à¬¾à¬°à­ ତଥà­à¬¯ ପଢ଼ିହେଲା ନାହିଠ%d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ସà­à¬¥à¬¾à¬ªà¬¨ ପà­à¬°à¬•à­à¬°à¬¿à­Ÿà¬¾à¬•ୠପି.ଟି.ୱାଇ.ରେ ଚଳାଇହେଲା ନାହିà¬" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "ନିରà­à¬­à¬°à¬• ପà­à¬°à¬•à­à¬°à¬¿à­Ÿà¬¾à¬ à¬¾à¬°à­ ତଥà­à¬¯ ପଢ଼ିବାରେ select()ରେ ଅପà­à¬°à¬¤à­à¬¯à¬¾à¬¶à¬¿à¬¤ ତà­à¬°à­à¬Ÿà¬¿ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "ସà­à¬¥à¬¾à¬ªà¬¨ ପà­à¬°à¬•à­à¬°à¬¿à­Ÿà¬¾à¬•ୠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ ପଠାଇହେଲା ନାହିà¬à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid()ରେ ଅପà­à¬°à¬¤à­à¬¯à¬¾à¬¶à¬¿à¬¤ ତà­à¬°à­à¬Ÿà¬¿ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ନିରà­à¬¦à­à¬¦à­‡à¬¶ ପà­à¬°à¬¾à¬°à¬®à­à¬­ କରିବାରେ ଅସଫଳ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ସଂଚାରମାଧà­à¬¯à¬®à¬•ୠନିଷà­à¬•ାସିତ କରିବାରେ ଅସଫଳ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "ସଂଯୋଗ କରାଯାଇଥିବା ସେବକକୠକାଢ଼ିବାରେ ଅସଫଳ" #: ../modules/computer-method.c:543 msgid "Network" msgstr "ନେଟୱରà­à¬•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ମୂଳ ସà­à¬¥à¬¾à¬¨" # libgnomevfs/gnome-vfs-result.c:57 #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ଫାଇଲ ତନà­à¬¤à­à¬°" # modules/file-method.c:381 #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ଅଜଣା ନୋମୠଭି.à¬à¬«.à¬à¬¸. ସà­à¬¥à¬¿à¬¤à¬¿ ଖୋଜା %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "ୱିଣà­à¬¡à­‹à¬œ ନେଟୱରà­à¬•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ଦୂର କମà­à¬ªà­à¬¯à­à¬Ÿà¬° (%s)ର ପରିଚୟ ଜଣା ନାହିà¬à¥¤" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ଆପଣ ପà­à¬°à¬¥à¬® ଥର କମà­à¬ªà­à¬¯à­à¬Ÿà¬°à¬°à­‡ ଲଗà­à¬‡à¬¨à­ କଲେ à¬à¬¹à¬¾ ହà­à¬à¥¤\n" "\n" "ଦୂର କମà­à¬ªà­à¬¯à­à¬Ÿà¬°à¬ à¬¾à¬°à­ ପଠାଯାଇଥିବା ପରିଚୟ ହେଉଛି %s । ଯଦି ଆପଣ ନିଶà­à¬šà¬¿à¬¤ ଭାବେ ବà­à¬à¬¿à¬¬à¬¾à¬•ୠଚାହାନà­à¬¤à¬¿ ଯେ ତନà­à¬¤à­à¬°à¬•à­ " "ନିରାପଦରେ ଚାଲà­à¬°à¬–ିହେବ, ତେବେ ତନà­à¬¤à­à¬° ପà­à¬°à¬¶à¬¾à¬¸à¬•ଙà­à¬• ସହିତ ସମà­à¬ªà¬°à­à¬• କରନà­à¬¤à­à¥¤" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "ତଥାପି ଲଗà­à¬‡à¬¨à­ କରନà­à¬¤à­" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ଲଗà­à¬‡à¬¨à­ ବାତିଲ କରନà­à¬¤à­" # modules/test-method.c:590 #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%sଠାରେ କୌଣସି ବୈଧ ବିନà­à¬¯à¬¾à¬¸ ଫାଇଲ ମିଳିଲା ନାହିà¬\n" # modules/test-method.c:592 #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "%s ପରିବେଶ ଚଳ ଦà­à¬¬à¬¾à¬°à¬¾ ଗୋଟିଠଅନà­à¬¯ ସà­à¬¥à¬¾à¬¨ ଉଲà­à¬²à­‡à¬–ିତ କରନà­à¬¤à­à¥¤\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "ଆପଣଙà­à¬• ର HTTP ପà­à¬°à­‹à¬•à­à¬¸à¬¿à¬•ୠଅଭିଗମ କରିବା ପାଇଠଆପଣଙà­à¬•ର ଲଗଇନୠଆବଶà­à¬¯à¬•।\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\"କୠଅଭିଗମ କରିବା ପାଇଠଆପଣ ଲଗଇନୠକରିବା ଉଚିତ।\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "ଆପଣଙà­à¬•ର ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•େତକୠଗୋପନୀୟ ନରଖି ସଞà­à¬šà¬¾à¬° କରାଯିବ।" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "ଆପଣଙà­à¬•ର ପà­à¬°à¬¬à­‡à¬¶ ସଙà­à¬•େତକୠଗୋପନୀୟ ଭାବରେ ସଞà­à¬šà¬¾à¬° କରାଯିବ।" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s ପରିସରକୠପà­à¬°à¬¬à­‡à¬¶ କରିବା ପାଇଠଆପଣ ଲଗଇନୠକରିବା ଉଚିତ %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%sକୠପà­à¬°à¬¬à­‡à¬¶ କରିବା ପାଇଠଆପଣ ଲଗଇନୠକରିବା ଉଚିତ\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଯନà­à¬¤à­à¬°à¬¾à¬¶à¬‚ ଦରà­à¬¶à¬• ପà­à¬°à­Ÿà­‹à¬—" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପà­à¬°à­Ÿà­‹à¬—" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପାଇଠନିଷà­à¬ªà¬¾à¬¦à¬¨ ସà­à¬¬à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬°" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "ଯେଉଠଫାଇଲଗà­à¬¡à¬¿à¬• ଦେଖିବା ପାଇଠଗୋଟିଠଯନà­à¬¤à­à¬°à¬¾à¬‚ଶ ଆବଶà­à¬¯à¬•, ସେମାନଙà­à¬• ପାଇଠକେଉଠପà­à¬°à­Ÿà­‹à¬— ବà­à¬¯à¬¬à¬¹à¬¾à¬° " "କରାଯିବ। ପà­à¬°à¬¾à¬šà¬³ %s ଫାଇଲର à­Ÿà­.ଆରà­.ଆଇ. ଦà­à¬¬à¬¾à¬°à¬¾ ବଦଳ ହେବ, ପà­à¬°à¬¾à¬šà¬³ %c ଯନà­à¬¤à­à¬°à¬¾à¬¸à¬‚ର ଆଇ.ଆଇ.ଡି. " "ଦà­à¬¬à¬¾à¬°à¬¾ ବଦଳ ହେବ।" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "ଯେଉଠପà­à¬°à­Ÿà­‹à¬—ଗà­à¬¡à¬¿à¬• ପାଇଠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ଆବଶà­à¬¯à¬• ସେମାନଙà­à¬• ପାଇଠପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପà­à¬°à­Ÿà­‹à¬—।" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପà­à¬°à­Ÿà­‹à¬— ପାଇଠନିଷà­à¬ªà¬¾à¬¦à¬¨ ସà­à¬¬à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬°à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"ଲକà­à¬·à­à¬¯\" URLs ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"ଡାକରା\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ଜିହେଲà­à¬ª\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸.\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"ସୂଚନା\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"ପà­à¬°à¬ªà¬•\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"ପà­à¬°à¬•ରଣ\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"ବରà­à¬œà¬¿à¬¤\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"ଲକà­à¬·à­à¬¯\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"ଡାକରା\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ଜିହେଲà­à¬ª\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"à¬à¬š323\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"à¬à¬š.ଟି.ଟି.ପି.\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸.\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"ସୂଚନା\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"ପà­à¬°à¬ªà¬•\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"ପà­à¬°à¬•ରଣ\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"ବରà­à¬œà¬¿à¬¤\" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ଲକà­à¬·à­à¬¯\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ଡାକରା\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ଜିହେଲà­à¬ª\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"à¬à¬šà­323\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"à¬à¬š.ଟି.ଟି.ପି.\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠ" "ବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸.\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠ" "ବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ସୂଚନା\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ଡାକରା\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ପà­à¬°à¬•ରଣ\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ସତ ହେଲେ, \"ନିରà­à¬¦à­à¬¦à­‡à¬¶\" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ବରà­à¬œà¬¿à¬¤\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ " "ହେବ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ଲକà­à¬·à­à¬¯\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ଡାକରା\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ଜିହେଲà­à¬ª\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"h323\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"à¬à¬š.ଟି.ଟି.ପି.\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି.।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸.\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ସୂଚନା\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ପà­à¬°à¬¾à¬ªà¬•\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ପà­à¬°à¬•ରଣ\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ \"ବରà­à¬œà¬¿à¬¤\" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି." #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "କମା ଦà­à¬¬à¬¾à¬°à¬¾ ବିଭାଜିତ ଡି.à¬à¬¨à­.à¬à¬¸à­-à¬à¬¸à­.ଡି ପରିସରର ଯାହାକି \"network:///\" ଅବସà­à¬¥à¬¾à¬¨à¬°à­‡ ଦà­à¬°à­à¬¶à­à¬¯à¬®à¬¾à¬¨ " "ହେବା ଉଚିତ." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ଡି.à¬à¬¨à­.à¬à¬¸à­-à¬à¬¸à­.ଡି ସେବା ଖୋଜି ପାଇବା ପାଇଠଅଧିକ ପରିସର" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ଡି.à¬à¬¨à­.à¬à¬¸à­.-à¬à¬¸à­.ଡି. ସେବାକୠକିପରି ପà­à¬°à¬¦à¬°à­à¬¶à¬¿à¬¤ କରାଯିବ" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "ସମà­à¬­à¬¬ ମୂଲà­à¬¯à¬—à­à¬¡à¬¿à¬¼à¬• ହେଲା \"merged\", \"separate\" ଓ \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "ଛାୟା ସେବକ ସଂଯୋଗଗà­à¬¡à¬¿à¬¼à¬• ବୈଧ କରନà­à¬¤à­" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ସà­à¬¬à¬‚à­Ÿ ଛାୟା ବିନà­à¬¯à¬¾à¬¸ à­Ÿà­.ଆର.à¬à¬²." #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿà¬°à­‡ à¬à¬šà­.ଟି.ଟି.ପି. ଚଳାଇଲା ବେଳେ ଛାୟା ବିନà­à¬¯à¬¾à¬¸à¬•ୠସମରà­à¬¥ କରେ." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "à¬à¬«à­.ଟି.ପି. ଛାୟା ଆଧାର ନାମ" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "à¬à¬«à­.ଟି.ପି. ଛାୟା ସଂଯୋଗିକୀ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଆଧାର ନାମ" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ସଂଯୋଗିକୀ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଚାଳକନାମ" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "ସତ ହେଲେ, ଛାୟା ସେବକ ସହିତ ସଂଯୋଗ ପାଇଠବୈଧିକରଣ ଆବଶà­à¬¯à¬•. ଚାଳକ ନାମ / ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ \"/" "system/http_proxy/authentication_user\" ଓ \"/system/http_proxy/" "authentication_password\" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ଅଣଛାୟା ଆଧାର" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟାକରଣ ବେଳେ ବୈଧିକରଣ ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ " #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "ଛାୟା ବିନà­à¬¯à¬¾à¬¸ ଅବସà­à¬¥à¬¾" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "à¬à¬¸à­.ଓ.ସି.କେ.à¬à¬¸à­. ଛାୟା ଆଧାର ନାମ" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "à¬à¬¸à­.ଓ.ସି.କେ.à¬à¬¸à­. ଛାୟା ସଂଯୋଗିକୀ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "ସà­à¬°à¬•à­à¬·à¬¿à¬¤ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଆଧାର ନାମ" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "ସà­à¬°à¬•à­à¬·à¬¿à¬¤ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଆଧାର ସଂଯୋଗିକୀ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "ଛାୟା ବିନà­à¬¯à¬¾à¬¸ ଅବସà­à¬¥à¬¾ ବାଛନà­à¬¤à­. ସମà­à¬­à¬¬à¬¤à¬ƒ ମୂଲà­à¬¯à¬—à­à¬¡à¬¿à¬¼à¬• ହେଲା \"none\", \"manual\" ଓ \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "à¬à¬«à­.ଟି.ପି. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "ସà­à¬°à¬•à­à¬·à¬¿à¬¤ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "à¬à¬¸à­.ଓ.ସି.କେ.à¬à¬¸à­. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "\"/system/http_proxy/host\" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠ" "ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "\"/system/ftp_proxy/host\" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠ" "ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "\"/system/proxy/secure_host\" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠ" "ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "\"/system/proxy/socks_host\" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠ" "ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ଛାୟା ବଦଳରେ ସିଧାସଳଖ ଭାବରେ ସଂଯà­à¬•à­à¬¤ ଆଧାରଗà­à¬¡à¬¼à¬¿à¬•ର ତାଲିକା à¬à¬¹à¬¿ ଚାବିରେ ରଖାଯାଇଛି. ସମà­à¬­à¬¬à¬¤à¬ƒ ମୂଲà­à¬¯à¬—à­à¬¡à¬¿à¬¼à¬• " "ହେଲା ଆଧାର ନାମ, ପରିସର (*.foo.com ଭଳି ପà­à¬°à¬¾à¬°à¬®à­à¬­à¬¿à¬• ୱାଇଲà­à¬¡ କାରà­à¬¡ ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରି), ଆଇ.ପି. ଆଧାର " "ଠିକିଣା (ଆଇ.ପି.ଭି.à­ª ଓ ଆଇ.ପି.ଭି.à­¬) ଓ ଜାଲକ ମà­à¬–ା ସହିତ ଜାଲକ ଠିକଣା (୧୯୨.୧୬୮.à­¦.à­¦/୨୪ ଭଳି କିଛି)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "ଛାୟା ବିନà­à¬¯à¬¾à¬¸ ମୂଲà­à¬¯à¬—à­à¬¡à¬¼à¬¿à¬• ପାଇଠୟà­.ଆର.à¬à¬²." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରନà­à¬¤à­" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟାକରଣ ବେଳେ ବୈଧିକରଣ ପାଇଠଚାଳକ ନାମ." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "à¬à¬¸à­.à¬à¬®à­.ବି. କାରà­à¬¯à­à¬¯à¬¦à¬³" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "ବà­à¬¯à¬¬à¬¹à¬°à¬•ାରୀର ୱିଣà­à¬¡à­‹à¬œ କାରà­à¬¯à­à¬¯à¬¸à¬®à­‚ହ ବା ପରିସର. ନୂଆ କାରà­à¬¯à­à¬¯à¬¸à¬®à­‚ହ ସମà­à¬ªà­‚ରà­à¬£à­à¬£ ପà­à¬°à¬­à¬¾à¬¬ ଦେଖିବା ପାଇଠ" "ବà­à¬¯à¬¬à¬¹à¬°à¬•ାରୀକୠଲଗ ଆଉଟ କରି ପà­à¬£à¬¿ ଲଗଇନ କରିବାକୠପଡ଼ିପାରେ." gnome-vfs-2.24.4/po/zh_TW.po0000644000175000001440000013733211354402652012445 00000000000000# Chinese (Taiwan) translation of gnome-vfs. # Copyright (C) 2001, 02, 03, 04, 05 Free Software Foundation, Inc. # Joe Man , 2001. # Woodman Tuen , 2004 # Li-Jen Hsin , 2004 # Chao-Hsiung Liao , 2005 # Abel Cheung , 2002-2003, 2005. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.24.e\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-10 05:58+0800\n" "PO-Revision-Date: 2010-02-07 21:09+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Taiwan) \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 檔案系統" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u 䏭嫿œ‰ NUL 字元。" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u 中沒有 method å稱。" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u 沒有é¸é …çµæŸæ¨™è¨˜ã€‚" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u æœ‰ä¸æ˜Žçš„é¸é … %s。" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u 中沒有模組å稱。" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "找ä¸åˆ°è¨­å®šæª”‘%s’:%s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d åœæ­¢åˆ†æžå…§å®¹ã€‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFFS 網路檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "è‡ªå‹•åµæ¸¬æª”案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "光碟機" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD 數ä½éŸ³æ¨‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "硬體è£ç½®æª”案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "光碟檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs 光碟檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "系統檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "記憶體檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS 網路檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows 共享檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "暫時檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "增強型 DOS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "䏿˜Ž" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s 檔案系統" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "軟碟機" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "隨身碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s 音樂播放器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s 數ä½ç›¸æ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "外接的 %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "空白 CD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "空白 CD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "空白 DVD-RAM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "空白 DVD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "空白 DVD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "空白 DVD+R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "空白 DVD+RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "音樂光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s 坿”œè£ç½®" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "è£ç½®" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "䏿˜Žçš„æ“ä½œé¡žåž‹ %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "無法建立用以開啟 GIOChannel çš„ pipe:%s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "䏿˜Žçš„工作類型 %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "æ“ä½œå·²åœæ­¢" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "本功能已ä¸å†ä½¿ç”¨ã€‚ç¾åœ¨å·²ä¸å†æ”¯æ´è®“使用者直接修改 MIME 資料庫。" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "無法解æžï¼š%s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "將會忽略更多的解æžéŒ¯èª¤ã€‚" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "沒有錯誤" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "找ä¸åˆ°æª”案" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "一般錯誤" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "內部的錯誤" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ç„¡æ•ˆçš„åƒæ•¸" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "䏿”¯æ´çš„æ“ä½œ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O 錯誤" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "資料已æå£ž" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "æ ¼å¼ç„¡æ•ˆ" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "錯誤的 file handle" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "檔案éŽå¤§" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "儲存設備沒有剩餘空間" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "唯讀的檔案系統" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "無效的 URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "檔案沒有開啟" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "開啟模å¼ç„¡æ•ˆ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "å­˜å–被拒" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "已開啟的檔案太多" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "å·²åˆ°é”æª”案的末端" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "䏿˜¯ä¸€å€‹ç›®éŒ„" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "æ“作程åºé€²è¡Œä¸­" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "æ“作程åºè¢«ä¸­æ–·" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "檔案已存在" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "é‡ä¸Šå¾ªç’°çš„連çµ" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ä¸å…許的æ“作程åº" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "是目錄" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "記憶體ä¸è¶³" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "找ä¸åˆ°ä¸»æ©Ÿ" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "主機å稱無效" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "主機沒有地å€" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "登入失敗" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "æ“作程åºå·²å–消" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "目錄正在忙碌處ç†è³‡æ–™" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ç›®éŒ„ä¸æ˜¯ç©ºçš„" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "連çµéŽå¤š" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "唯讀的檔案系統" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "䏿˜¯åœ¨ç›¸åŒçš„æª”案系統內" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "å稱éŽé•·" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "無法æä¾›æœå‹™" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "è¦æ±‚æŸäº›å·²éŽæ™‚æœå‹™çš„資料" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "通訊å”定錯誤" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "找ä¸åˆ°ä¸»ç€è¦½å™¨" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "沒有é è¨­çš„è™•ç†æ–¹å¼" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "沒有該類 URL 的處ç†ç¨‹åº" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "è§£æžæŒ‡ä»¤æ™‚出ç¾éŒ¯èª¤" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "啟動指令時出ç¾éŒ¯èª¤" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "逾時" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "主機å稱伺æœå™¨éŒ¯èª¤" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "資æºè¢«éŽ–ä½äº†" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "函å¼å·²ç¶“éŽæ™‚了" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "無效的檔案å稱" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "䏿˜¯ç¬¦è™Ÿé€£çµ" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "䏿˜Žçš„錯誤" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ä½å…ƒçµ„" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(無效的è¬åœ‹ç¢¼ï¼‰" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "軟碟" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ç£ç¢Ÿ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "照相機" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root 檔案系統" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "音樂 CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "䏿˜Žçš„æª”案系統" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "網路伺æœå™¨" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "無法è£è¼‰è»Ÿç¢Ÿæ©Ÿã€‚å¯èƒ½è»Ÿç¢Ÿæ©Ÿå…§ä¸¦æ²’有ç£ç‰‡ã€‚" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "無法è£è¼‰æª”案系統。å¯èƒ½è£ç½®ä¸­æ²’有任何媒體。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "無法è£è¼‰è»Ÿç¢Ÿæ©Ÿã€‚å¯èƒ½è»Ÿç¢Ÿæ©Ÿæ‰€ä½¿ç”¨çš„æ ¼å¼ä¸èƒ½è¢«è£è¼‰ã€‚" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "無法è£è¼‰æª”æ¡ˆç³»çµ±ã€‚å¦‚æžœé€™æ˜¯å€‹å·²åŠ å¯†çš„æª”æ¡ˆç³»çµ±ï¼Œå³æ˜¯è¡¨ç¤ºå¯†ç¢¼æˆ–金鑰錯誤。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "無法è£è¼‰å·²é¸çš„æª”案系統。å¯èƒ½è©²æª”案系統的所使用的格å¼ä¸èƒ½è£è¼‰ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "無法è£è¼‰å·²é¸çš„軟碟機。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "無法è£è¼‰å·²é¸çš„æª”案系統。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "無法è£è¼‰å·²é¸çš„æª”案系統。å¯èƒ½è©²æª”案系統正在被其它程å¼ä½¿ç”¨ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "無法å¸è¼‰å·²é¸çš„æª”案系統。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "無法從å­é€²ç¨‹ %d 讀å–資料 (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "無法在 pty 中è£è¼‰æª”案系統" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "ç•¶ select() 從å­ç¨‹åºè®€å–è³‡æ–™æ™‚ç™¼ç”Ÿæœªé æœŸçš„錯誤 (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "無法將密碼é€å…¥è£è¼‰æª”案系統的進程。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() ç™¼ç”Ÿæœªé æœŸçš„錯誤 (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "指令啟動失敗" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "無法退出媒體" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "無法å¸è¼‰å·²é€£æŽ¥çš„伺æœå™¨" #: ../modules/computer-method.c:543 msgid "Network" msgstr "網路" #: ../modules/computer-method.c:561 msgid "Home" msgstr "個人資料夾" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "檔案系統" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "䏿˜Žçš„ GnomeVFSSeekPosition (æœå°‹ä½ç½®) %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows 網路" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "é ç«¯é›»è…¦ (%s) çš„èº«åˆ†ä¸æ˜Žã€‚" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "當您首次登入一å°ä¸»æ©Ÿæ™‚會發生。\n" "\n" "é ç«¯ä¸»æ©Ÿå‚³é€ä¾†çš„身分為 %s。若您肯定繼續使用是安全的,請與系統管ç†è€…接洽。" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "強制登入" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "å–æ¶ˆç™»å…¥" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "在 %s 中找ä¸åˆ°æœ‰æ•ˆçš„設定檔\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "使用 %s 環境變數來指定å¦ä¸€å€‹ä½ç½®ã€‚\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "您的 HTTP 代ç†ä¼ºæœå™¨è¦æ±‚您登入。\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "您必須登入方å¯å­˜å–“%sâ€ã€‚\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "您的密碼會以沒有加密的方å¼å‚³é€ã€‚" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "您的密碼會以加密的方å¼å‚³é€ã€‚" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "您必須登入方å¯å­˜å– %s (網域 %s)\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "您必須登入方å¯å­˜å– %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "é è¨­çš„元件檢視程å¼" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "é è¨­çš„終端機" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "é è¨­çµ‚端機的 Exec åƒæ•¸" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "æœ‰äº›æª”æ¡ˆéœ€è¦æœ‰ä¸€å€‹å…ƒä»¶ä¾†æª¢è¦–它們,這裡指定檢視所用的程å¼ã€‚åƒæ•¸ %s 會被檔案的 " "URI 所å–ä»£ï¼Œåƒæ•¸ %c 會被元件 IID 所å–代。" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "應用程å¼éœ€è¦ä½¿ç”¨çµ‚端機時,é è¨­åŸ·è¡Œçš„終端機。" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "é è¨­çµ‚端機所使用的 exec åƒæ•¸ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "在終端機中執行指令" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œaimâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œcalltoâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œghelpâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œh323â€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œhttpâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œhttpsâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œinfoâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œmailtoâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œmanâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œtrashâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "沒有處ç†â€œaimâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "處ç†â€œcalltoâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "處ç†â€œghelpâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "處ç†â€œh323â€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "處ç†â€œhttpâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "處ç†â€œhttpsâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "處ç†â€œinfoâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "處ç†â€œmailtoâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "處ç†â€œmanâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "處ç†â€œtrashâ€URL 的處ç†ç¨‹åº" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œaimã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)中的指令為處ç†ã€Œcalltoã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œghelpã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œh323ã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpsã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œinfoã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmailtoã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmanã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œtrashã€URL 的程å¼ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "指定的指令應å¦è™•ç†â€œaimâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "指定的指令應å¦è™•ç†â€œcalltoâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "指定的指令應å¦è™•ç†â€œghelpâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "指定的指令應å¦è™•ç†â€œh323â€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "指定的指令應å¦è™•ç†â€œhttpâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "指定的指令應å¦è™•ç†â€œhttpsâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "指定的指令應å¦è™•ç†â€œinfoâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "指定的指令應å¦è™•ç†â€œmailtoâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "指定的指令應å¦è™•ç†â€œmanâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "指定的指令應å¦è™•ç†â€œtrashâ€URL" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "在“network:///â€ä½ç½®ä¸­é¡¯ç¤ºçš„ DNS-SD 網域清單,以逗號隔開。" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "找尋 DNS-SD æœå‹™çš„é¡å¤–網域" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "如何顯示本地端的 DNS-SD æœå‹™" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "å¯èƒ½å€¼ç‚ºâ€œmergedâ€,“separateâ€ä»¥åŠâ€œdisabledâ€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "驗證代ç†ä¼ºæœå™¨é€£ç·š" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "自動代ç†ä¼ºæœå™¨çµ„æ…‹ç¶²å€" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ç¶“ç¶²éš›ç¶²è·¯å­˜å– HTTP 時啟用代ç†ä¼ºæœå™¨è¨­å®šã€‚" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP 代ç†ä¼ºæœå™¨åŸ è™Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP 代ç†ä¼ºæœå™¨å¯†ç¢¼" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ " #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP 代ç†ä¼ºæœå™¨ä½¿ç”¨è€…å稱" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "如設定為“trueâ€ï¼Œé‚£éº¼é€£æŽ¥åˆ°ä»£ç†ä¼ºæœå™¨æ™‚需è¦èªè­‰ã€‚使用者/密碼的組åˆåœ¨\n" "“/system/http_proxy/authentication_userâ€å’Œâ€œ/system/http_proxy/" "authentication_passwordâ€ä¸­è¨­å®šã€‚" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ä¸ä½¿ç”¨ä»£ç†ä¼ºæœå™¨çš„主機" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "使用 HTTP 代ç†ä¼ºæœå™¨æ™‚進行èªè­‰çš„密碼。" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "代ç†ä¼ºæœå™¨çµ„態模å¼" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ " #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ " #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "鏿“‡ä»£ç†ä¼ºæœå™¨è¨­ç½®æ¨¡å¼ã€‚支æ´çš„值有“noneâ€ã€â€œmanualâ€ã€â€œautoâ€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "ç”¨åœ¨å®‰å…¨å¼ HTTP 的代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "socks 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "在“/system/http_proxy/host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "在“/system/proxy/ftp_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "在“/system/proxy/secure_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "在“/system/proxy/socks_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "這個éµå€¼åŒ…å«äº†è¦ç›´æŽ¥é€£ç·šï¼Œä¸é€éŽä»£ç†ä¼ºæœå™¨ï¼ˆå¦‚果有使用)的主機。數值å¯ä»¥ç‚ºä¸»" "機å稱ã€ç¶²åŸŸï¼ˆé–‹é ­ä½¿ç”¨è¬ç”¨å­—元如 *.foo.com)ã€IP ä½å€ï¼ˆIPv4 å’Œ IPv6 皆å¯ï¼‰æˆ–" "帶有å­ç¶²è·¯é®ç½©çš„ä½å€ï¼ˆåƒæ˜¯ 192.168.0.0/24)。" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "æä¾›ä»£ç†ä¼ºæœå™¨çµ„態的網å€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "使用 HTTP 代ç†ä¼ºæœå™¨" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "使用 HTTP 代ç†ä¼ºæœå™¨æ™‚用來驗證的使用者å稱。" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB 工作群組" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "使用者所屬的 Windows 網路群組或網域。新的群組å¯èƒ½è¦ç­‰ä½¿ç”¨è€…å†ç™»å…¥å¾Œæ‰èƒ½å®Œå…¨ç”Ÿ" "效," #~ msgid "Could not initialize Bonobo" #~ msgstr "Bonobo 無法åˆå§‹åŒ–" #~ msgid "Could not initialize gnome vfs" #~ msgstr "gnome vfs 無法åˆå§‹åŒ–" #~ msgid "Server certificate was missing commonName attribute in subject name" #~ msgstr "伺æœå™¨æ†‘證的 subject 欄ä½ç¼ºå°‘了 commonName 屬性" #~ msgid "SSL negotiation failed: %s" #~ msgstr "SSL å”議失敗:%s" #~ msgid "Server did not send certificate chain" #~ msgstr "伺æœå™¨æ²’有é€å‡ºä¸­ç¹¼æ†‘è­‰ (chain certificate)" #~ msgid "Response exceeds maximum property count" #~ msgstr "回應資料的屬性數目超éŽä¸Šé™" #~ msgid "Could not parse response: %s" #~ msgstr "無法解æžå›žæ‡‰è³‡æ–™ï¼š%s" #~ msgid "Standard Moniker factory" #~ msgstr "標準 Moniker 工廠" #~ msgid "file MonikerExtender" #~ msgstr "檔案 MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "一般的 GNOME VFS moniker" #~ msgid "generic file moniker" #~ msgstr "一般的 file moniker" #~ msgid "Display SCSI drives" #~ msgstr "顯示 SCSI 硬碟" #~ msgid "Display SCSI optical drives" #~ msgstr "顯示 SCSI 光碟機" #~ msgid "Display drives with removable media" #~ msgstr "é¡¯ç¤ºå¯æŠ½å–å¼ç£ç¢Ÿ" #~ msgid "Display external drives" #~ msgstr "顯示外置硬碟" #~ msgid "Display internal hard drives" #~ msgstr "顯示內置硬碟" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "è‹¥ /system/storage/display_scsi_drives 設定為「FALSEã€æ™‚,是å¦é¡¯ç¤º SCSI å…‰" #~ "碟機。" #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "是å¦é¡¯ç¤º SCSI 硬碟åŠå…¶å¯è£è¼‰çš„æª”案系統。" #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "是å¦é¡¯ç¤ºå¯æŠ½å–å¼ç£ç¢ŸåŠå…¶å¯è£è¼‰çš„æª”案系統。(例如:å¯ä»¥æ’å…¥åŠç§»é™¤åª’體的硬" #~ "碟)。" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "是å¦é¡¯ç¤ºå¤–置硬碟åŠå…¶å¯è£è¼‰çš„æª”æ¡ˆç³»çµ±ã€‚ï¼ˆä¾‹å¦‚ï¼šç†±æ’æ‹”å¼ç¡¬ç¢Ÿï¼›ç³»çµ±æ­£åœ¨é‹è¡Œæ™‚" #~ "å¯ä»¥æ’å…¥ã€æ‹”出的è£ç½®ï¼‰ã€‚" #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "是å¦é¡¯ç¤ºå…§ç½®ç¡¬ç¢ŸåŠå…¶å¯è£è¼‰çš„æª”æ¡ˆç³»çµ±ã€‚ï¼ˆéž SCSI 光碟也會顯示)。" gnome-vfs-2.24.4/po/ro.po0000644000175000001440000013270211450220305012014 00000000000000# Romanian translation for gnome-vfs # Copyright (C) 2001 - 2009 Free Software Foundation, Inc. # Marius Andreiana , 2001. # MiÈ™u Moldovan , 2003 - 2009. # Lucian Adrian Grijincu , 2009 msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-05-13 04:01+0000\n" "PO-Revision-Date: 2009-11-16 02:03+0300\n" "Last-Translator: Lucian Adrian Grijincu \n" "Language-Team: Gnome Romanian Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);;\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volum ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u conÈ›ine caractere NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u nu conÈ›ine nici un nume de metodă." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nu are un marcaj al sfârÈ™itului opÈ›iunilor." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u are opÈ›iuni necunoscute %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u nu conÈ›ine nici un nume de modul." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "FiÈ™ierul de configurare „%s†nu a fost găsit: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d se abandonează prelucrarea." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volum AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volum reÈ›ea AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volum auto-detectat" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volum Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Unitate CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Audio Digital" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volum dispozitiv hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volum EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volum eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volum Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volum Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volum Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volum MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volum BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volum FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volum MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volum CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volum CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volum JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volum Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volum sistem" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volum RAM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volum Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volum reÈ›ea NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volum Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volum Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volum Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volum Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volum Share Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volum SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volum DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volum Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volum Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volum Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volum Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volum temporar" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volum avansat DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volum Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volum Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volum Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volum XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volum CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Necunoscut" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volum %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Unitate %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Unitate %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Unitate dischetă" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Unitate Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Unitate Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Unitate Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Unitate SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Unitate ZIP" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Unitate Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Unitate Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Player %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Cameră digitală %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unitate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s externă" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disc CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disc CD-R gol" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disc CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disc CD-RW gol" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disc CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Unitate DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disc DVD-RAM gol" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disc DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disc gol DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disc DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disc DVD-RW gol" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disc DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disc DVD+R gol" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disc DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disc DVD+RW gol" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disc DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disc audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volum detaÈ™abil %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volum" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tip necunoscut de operaÈ›iune %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nu s-a putut crea un conector pentru deschiderea GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tip necunoscut de sarcină %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "OperaÈ›ie oprită" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "FuncÈ›ie ieÈ™ită din uz. Modificările personalizate în baza de date MIME nu " "mai sunt suportate." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Nu s-a putut procesa: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Alte erori de procesare vor fi ignorate." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nici o eroare" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "FiÈ™ierul nu a fost găsit" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Eroare generică" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Eroare internă" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parametri nevalizi" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "OperaÈ›iune nesuportată" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Eroare I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Date corupte" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formatul nu este valid" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Descriptor greÈ™it de fiÈ™ier" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "FiÈ™ier prea mare" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nu mai e spaÈ›iu liber pe disc" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistemul de fiÈ™iere e protejat la scriere" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI invalid" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "FiÈ™ierul nu este deschis" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Mod invalid de deschidere" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Acces refuzat" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Prea multe fiÈ™iere deschise" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "SfârÈ™it de fiÈ™ier" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nu e un director" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "OperaÈ›iune în progres" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "OperaÈ›iune întreruptă" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "FiÈ™ierul există" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Ciclu infinit de legături" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "OperaÈ›iunea nu este permisă" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Este un director" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Memorie insuficientă" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Serverul nu a fost găsit" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Numele serverului este invalid" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Serverul nu are o adresă" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Autentificare eÈ™uată" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "OperaÈ›iune abandonată" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directorul este ocupat" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Directorul nu este gol" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Prea multe legături" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Sistem de fiÈ™iere protejat la scriere" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nu se află pe acelaÈ™i sistem de fiÈ™iere" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nume prea lung" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Serviciu indisponibil" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Cerere pentru date de servicii ieÈ™ite din uz" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Eroare de protocol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Nu s-a găsit un server „master browserâ€" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nu există o acÈ›iune implicită asociată" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Nu există o asociere pentru acest tip de URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Eroare la procesarea liniei de comandă" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Eroare la execuÈ›ia comenzii" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Timp expirat" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Eroare de rezoluÈ›ie de nume" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Resursa este blocată" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Apel-funcÈ›ie nesuportat" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nume nevalid de fiÈ™ier" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nu e o legătură simbolică" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Eroare necunoscută" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "un octet" msgstr[1] "%u octeÈ›i" msgstr[2] "%u de octeÈ›i" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode nevalid)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Dischetă" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disc" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Unitate USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Unitate IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Cameră" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volum rădăcină" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volum necunoscut" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Server în reÈ›ea" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Nu s-a putut monta unitatea de dischetă. Probabil nu e nici o dischetă în " "unitate." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Nu s-a putut monta volumul. Probabil în dispozitiv nu este niciun mediu de " "stocare." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Nu s-a putut monta unitatea de dischetă. Probabil discheta este într-un " "format care nu poate fi montat." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Nu s-a putut monta volumul. ÃŽn cazul în care este un volum criptat, probabil " "s-a folosit o parolă ori o cheie greÈ™ită." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Nu s-a putut monta volumul selectat. Probabil este într-un format care nu " "poate fi montat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Nu s-a putut monta unitatea de dischetă selectată." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Nu s-a putut monta volumul selectat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Nu s-a putut monta volumul selectat. Probabil este într-un format care nu " "poate fi montat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Nu s-a putat demonta volumul selectat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Nu s-au putut citi datele de la procesul copil %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Nu s-a putut executa procesul de montare într-un pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Eroare neaÈ™teptată în select() la citirea datelor de la procesul copil (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Nu s-a putut transmite parola procesului de montare." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Eroare neaÈ™teptată în waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Nu s-a putut executa comanda" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nu s-a putut ejecta mediul din unitate" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nu s-a putut demonta serverul conectat" #: ../modules/computer-method.c:543 msgid "Network" msgstr "ReÈ›ea" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Acasă" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistem de fiÈ™iere" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d necunoscut" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "ReÈ›ea Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identitatea calculatorului la distanță (%s) nu este cunoscută." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Acest lucru se întâmplă la prima autentificare pe un server.\n" "\n" "Identitatea trimisă de calculatorul la distanță este %s. Dacă doriÈ›i să nu " "aveÈ›i nici un dubiu privind siguranÈ›a conexiunii, contactaÈ›i administratorul." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Continuă oricum" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Renunță" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nu s-a găsit un fiÈ™ier valid de configurare în %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "UtilizaÈ›i variabila de mediu %s pentru a specifica o altă locaÈ›ie.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Proxy-ul HTTP ales necesită autentificare.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Trebuie să vă autentificaÈ›i pentru a accesa „%sâ€.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Parola vă va fi transmisă necriptat." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Parola vă va fi transmisă criptat" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Trebuie să vă autentificaÈ›i pentru a accesa %s în domeniul %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Trebuie să vă autentificaÈ›i pentru a accesa %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "AplicaÈ›ie implicită de vizualizare înglobată" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "AplicaÈ›ie terminal implicită" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument „exec†pentru terminalul implicit" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "AplicaÈ›ie de utilizat pentru vizualizarea fiÈ™ierelor ce necesită o " "componentă de vizualizare. Parametrul %s va fi înlocuit cu URI-ul " "fiÈ™ierului, iar parametrul %c va fi înlocuit cu componenta IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "AplicaÈ›ia terminal implicită de utilizat pentru programele ce necesită un " "terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argumentul „exec†de utilizat pentru aplicaÈ›ia terminal implicită." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "PorneÈ™te programul într-un terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Comanda asociată adreselor „aim†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Comanda asociată adreselor „callto†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Comanda asociată adreselor „ghelp†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Comanda asociată adreselor „h323†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Comanda asociată adreselor „http†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Comanda asociată adreselor „https†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Comanda asociată adreselor „info†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Comanda asociată adreselor „mailto†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Comanda asociată adreselor „man†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Comanda asociată adreselor „trash†la activare." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Programul asociat adreselor „aimâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Programul asociat adreselor „calltoâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Programul asociat adreselor „ghelpâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Programul asociat adreselor „h323â€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Programul asociat adreselor „httpâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Programul asociat adreselor „httpsâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Programul asociat adreselor „infoâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Programul asociat adreselor „mailtoâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Programul asociat adreselor „manâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Programul asociat adreselor „trashâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„aimâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„calltoâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„ghelpâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„h323â€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„httpâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„httpsâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„infoâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„mailtoâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„manâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "La activare, comanda specificată în cheia „command†va fi asociată adreselor " "„trashâ€." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "La activare, comanda asociată acestui tip de URL va fi pornită în terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „aimâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „calltoâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „ghelpâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „h323â€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „httpâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „httpsâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „infoâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „mailtoâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „manâ€" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Specifică dacă programul ales va fi asociat adreselor „trashâ€" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Listă separată prin virgule de domenii DNS-SD ce ar trebui să fie vizibile " "în locaÈ›ia „network:///â€." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domenii în plus de verificat pentru servicii DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Modalitatea de afiÈ™are a serviciului local dns-sd" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Valori posibile: „mergedâ€, „separate†și „disabledâ€." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentificare la conectarea prin proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL pentru configurări proxy automate" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Activează opÈ›iunile proxy la accesarea adreselor HTTP în Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nume proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nume proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Parolă proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nume utilizator proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "La activare, conectarea la serverul proxy necesită autentificare. CombinaÈ›ia " "nume_utilizator/parolă e definită de „/system/http_proxy/" "authentication_user†și „/system/http_proxy/authentication_passwordâ€." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Adrese fără proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Parolă necesară la autentificarea la serverul proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mod configurare proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nume proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nume proxy HTTPS" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port proxy HTTPS" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "SelectaÈ›i modul de configurare proxy. Valorile suportate sunt „noneâ€, " "„manual†și „autoâ€." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Numele serverului proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Numele serverului proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Numele serverului proxy HTTPS." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Numele serverului proxy SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "Portul serverului proxy definit în „/system/http_proxy/hostâ€." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "Portul serverului proxy definit în „/system/proxy/ftp_hostâ€" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "Portului serverului proxy definit în „/system/proxy/secure_hostâ€." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "Portul serverului proxy definit în „/system/proxy/socks_hostâ€." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Această cheie conÈ›ine o listă a adreselor la care se preferă conectarea " "directă, nu prin proxy. Aceste adrese pot fi nume de servere, domenii (cu " "caractere „wildcardâ€, de ex. *.foo.com), adrese IP (atât IPv4, cât È™i IPv6) " "È™i adrese de reÈ›ea cu mască (de ex. 192.168.0.0/16)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL cu opÈ›iuni automate de proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Utilizează proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Nume utilizator necesar autentificării la serverul proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grup SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Grupul sau domeniul Windows din care face parte utilizatorul. Pentru a intra " "în vigoare opÈ›iunile unui nou workgroup, utilizatorul s-ar putea să " "trebuiască să iasă din sesiune È™i apoi să se autentifice din nou." gnome-vfs-2.24.4/po/uz.po0000644000175000001440000011264211334251016012037 00000000000000# translation of gnome-vfs to Uzbek # Copyright (C) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # # Nurali Abdurahmonov , 2009. msgid "" msgstr "" "Project-Id-Version: gnome-vfs-2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-03 21:13+0500\n" "PO-Revision-Date: 2009-01-04 21:05+0500\n" "Last-Translator: Nurali Abdurahmonov \n" "Language-Team: Uzbek\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 disk qismi" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS tarmoq disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Avtomatik aniqlangan disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM uskunasi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Tizim disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Xotira disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS tarmoq disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows boÊ»lishilgan disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Vaqtinchalik disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Kengaytirilgan DOS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS disk qismi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Nomaʼlum" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s disk qismi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s uskunasi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s Uskunasi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskovod" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC uskunasi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip uskunasi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz uskunasi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s musiqa pleyeri" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s raqamli kamerasi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Uskuna" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Tashqi %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "BoÊ»sh CD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "BoÊ»sh CD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "BoÊ»sh DVD-RAM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "BoÊ»sh DVD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "BoÊ»sh DVD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "BoÊ»sh DVD+R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "BoÊ»sh DVD+RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio kompakt-disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Disk qismi" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operatsiya toÊ»xtatildi" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Xato yoÊ»q" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fayl topilmadi" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Umumiy xatolik" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Ichki xatolik" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Xato parametrlar" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "QoÊ»llanilmaydigan operatsiya" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "K/Ch xatosi" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Maʼlumot buzuq" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fayl juda katta" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Uskunada boÊ»sh joy qolmadi" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Fayl tizimi faqat oÊ»qishga" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Xato URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fayl ochiq emas" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Ruxsat yoÊ»q" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Juda koÊ»p fayllar ochiq" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Faylning oxiri" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Direktoriya emas" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Fayl mavjud" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Xotira yetarli emas" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Xost topilmadi" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Kirib boÊ»lmadi" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operatsiya bekor qilindi" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Direktoriya band" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Direktoriya boÊ»sh emas" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "BogÊ»lamalar soni juda koÊ»p" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Fayl tizimi faqat oÊ»qish uchun" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nomi juda uzun" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Xizmat mavjud emas" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokol xatosi" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Asosiy brauzerni topib boÊ»lmadi" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Kutish vaqti tugadi" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Manba qulflangan" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "NotoÊ»gÊ»ri fayl nomi" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Nomaʼlum xatolik" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "" msgstr[1] "" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (xato yunikod)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disket" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root disk qismi" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Nomaʼlum disk qismi" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Tarmoq serveri" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Disketni ulab boÊ»lmadi. Diskovodda disketa boÊ»lmasligi mumkin." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "Disketni ulab boÊ»lmadi. Disket ulab boÊ»lmaydigan formatda boÊ»lishi mumkin." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Tanlangan disketani ulab boÊ»lmadi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Tanlangan disk qismini ulab boÊ»lmadi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "Tanlangan disk qismini uzib boÊ»lmadi. Balki, disk qismidan bir yoki bir necha dastur foydalanmoqda." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Tanlangan disk qismini uzib boÊ»lmadi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Diskni chiqarib boÊ»lmadi" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ulangan serverni uzib boÊ»lmadi" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Tarmoq" #: ../modules/computer-method.c:561 msgid "Home" msgstr "" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Fayl tizimi" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows tarmogÊ»i" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Shunga qaramasdan tizimga kirish" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Kirishni bekor qilish" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Maxfiy soÊ»z shifrlanmasdan joÊ»natiladi." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Maxfiy soÊ»z shifrlanib joÊ»natiladi." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Andoza terminal dasturi" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Buyruqni terminalda bajarish" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Proksini avtomatik moslash URL'i" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP proksi xost nomi" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP proksi porti" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP proksi xost nomi" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP proksi maxfiy soÊ»zi" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP proksi porti" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP proksi foydalanuvchi nomi" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proksini moslash usuli" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS proksi xost nomi" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS proksi porti" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Xavfsiz HTTP proksi xost nomi" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Xavfsiz HTTP proksi porti" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP proksidan foydalanish" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ishchi guruhi" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" gnome-vfs-2.24.4/po/be.po0000644000175000001440000015475011334251016011775 00000000000000# translation of gnome-vfs.HEAD.be.po to Belarusian # БеларуÑкі пераклад gnome-vfs.HEAD. # Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # Vital Khilko , 2003, 2005. # Ales Nyakhaychyk , 2003. # # msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.be\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-10-04 23:49+0300\n" "PO-Revision-Date: 2009-08-11 15:53+0300\n" "Last-Translator: Andrey Ladyko \n" "Language-Team: Belarusian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: KBabel 1.10.1\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Падзел ISO 9660" # # libgnomevfs/gnome-vfs-configuration.c:223 #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u утрымлівае NUL-знакі." # # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u Ð½Ñ ÑžÑ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°Ðµ назву мÑтаду." # # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u Ð½Ñ ÑžÑ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°Ðµ прыкметы канца опцыÑÑž." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u мае невÑÐ´Ð¾Ð¼Ñ‹Ñ Ð¾Ð¿Ñ†Ñ‹Ñ– %s." # # libgnomevfs/gnome-vfs-configuration.c:269 #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u Ð½Ñ ÑžÑ‚Ñ€Ñ‹Ð¼Ð»Ñ–Ð²Ð°Ðµ назвы модулÑ." # # libgnomevfs/gnome-vfs-configuration.c:322 #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Файл канфігурацыі \"%s\" адÑутнічае: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d перарваны разбор." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Падзел AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Сеткавы падзел AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Ðўта-вызначаны падзел" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #, fuzzy msgid "Btrfs Linux Volume" msgstr "Падзел Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Прылада CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Музычны дыÑк зь лічбавым запіÑам" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Падзел фізычнае прылады" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Падзел EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #, fuzzy msgid "eCryptfs Volume" msgstr "Падзел памÑці" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Падзел Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Падзел Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #, fuzzy msgid "Ext4 Linux Volume" msgstr "Падзел Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Падзел MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Падзел BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Падзел FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Падзел MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Падзел CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Падзел Hsfs CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Падзел JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Падзел Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "СыÑÑ‚Ñмны падзел" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Падзел памÑці" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Падзел Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Сеткавы падзел NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #, fuzzy msgid "NILFS Linux Volume" msgstr "Падзел Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Падзел Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Падзел Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Падзел Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Падзел Windows Shared" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Падзел SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Падзел DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Падзел Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Падзел Udfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Падзел Pcfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Падзел Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "ЧаÑовы падзел" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Пашыраны падзел DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Падзел Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Падзел Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Падзел Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Падзел XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Падзел CIFS" # # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "ÐевÑдомы" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s падзел" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s прылада" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s прылада" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Прылада гнуткага дыÑку" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Кампактны флÑш-ноÑьбіт" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Прылада Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Прылада Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Прылада SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Прылада Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Прылада Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Лічбавае пÑро" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s музычны прайгравальнік" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Ð»Ñ–Ñ‡Ð±Ð°Ð²Ð°Ñ ÐºÐ°Ð¼Ñра" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Прылада" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Вонкавы %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "ДыÑк CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ЧыÑты дыÑк CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "ДыÑк CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ЧыÑты дыÑк CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "ДыÑк CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "ДыÑк DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ЧыÑты дыÑк DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "ДыÑк DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ЧыÑты дыÑк DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "ДыÑк DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ЧыÑты дыÑк DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "ДыÑк DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ЧыÑты дыÑк DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "ДыÑк DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ЧыÑты дыÑк DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "ДыÑк DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Ðўдыё-дыÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Падзел зьменнага ноÑьбіту" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Падзел" # # libgnomevfs/gnome-vfs-job.c:714 #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "ÐевÑдомы тып апÑрацыі %u" # # libgnomevfs/gnome-vfs-job.c:1005 libgnomevfs/gnome-vfs-job.c:1150 #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ðемагчыма Ñтварыць канал Ð´Ð»Ñ Ð°Ð´ÐºÑ€Ñ‹Ñ‚Ð°Ð³Ð° GIOChannel: %s" # # libgnomevfs/gnome-vfs-job.c:1596 #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "ÐевÑдомы від Ð·Ð°Ð´Ð°Ð½ÑŒÐ½Ñ %u" # # libgnomevfs/gnome-vfs-job.c:1632 #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ДзеÑньне Ñпыненае" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ÐÑÑƒÐ´Ð¶Ð°Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ. Зьмены карыÑтальнікам базы МІМЕ ужо не падтрымліваецца." # # libgnomevfs/gnome-vfs-parse-ls.c:652 #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ðемагчыма разабраць: %s" # # libgnomevfs/gnome-vfs-parse-ls.c:654 #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ÐÑÑ‚Ð°Ñ‚Ð½Ñ–Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÑ– разбору будуць ігнараваныÑ." # # libgnomevfs/gnome-vfs-result.c:35 #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "ÐÑма памылак" # # libgnomevfs/gnome-vfs-result.c:36 #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Файл адÑутнічае" # # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ÐÐ³ÑƒÐ»ÑŒÐ½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°" # # libgnomevfs/gnome-vfs-result.c:38 #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Ð£Ð½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°" # # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ÐÐµÐ´Ð°Ð¿ÑƒÑˆÑ‡Ð°Ð»ÑŒÐ½Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼Ñтры" # # libgnomevfs/gnome-vfs-result.c:40 #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ÐпÑÑ€Ð°Ñ†Ñ‹Ñ Ð½Ðµ падтрымліваецца" # # libgnomevfs/gnome-vfs-result.c:41 #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Памылка ўводу/вываду" # # libgnomevfs/gnome-vfs-result.c:42 #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Даньні пашкоджаны" # # libgnomevfs/gnome-vfs-result.c:43 #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Ðедапушчальны фармат" # # libgnomevfs/gnome-vfs-result.c:44 #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ÐŸÐ°Ð¼Ñ‹Ð»ÐºÐ¾Ð²Ð°Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÐ° файлу" # # libgnomevfs/gnome-vfs-result.c:45 #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Файл завÑлікі" # # libgnomevfs/gnome-vfs-result.c:46 #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ðедахоп праÑторы на дыÑку" # # libgnomevfs/gnome-vfs-result.c:47 #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Ð¤Ð°Ð¹Ð»Ð°Ð²Ð°Ñ ÑÑ‹ÑÑ‚Ñма толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½ÑŒÐ½Ñ" # # libgnomevfs/gnome-vfs-result.c:48 #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ðедапушчальны URI" # # libgnomevfs/gnome-vfs-result.c:49 #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Файл не адкрыты" # # libgnomevfs/gnome-vfs-result.c:50 #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Ðедапушчальны Ñ€Ñжым адкрыцьцÑ" # # libgnomevfs/gnome-vfs-result.c:51 #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ДоÑтуп забаронены" # # libgnomevfs/gnome-vfs-result.c:52 #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Ðдкрыта зашмат файлаў" # # libgnomevfs/gnome-vfs-result.c:53 #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Канец файлу" # # libgnomevfs/gnome-vfs-result.c:54 #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ðе каталёг" # # libgnomevfs/gnome-vfs-result.c:55 #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ДзеÑньне выконваецца" # # libgnomevfs/gnome-vfs-result.c:56 #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ДзеÑньне перарванае" # # libgnomevfs/gnome-vfs-result.c:57 #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Файл Ñ–Ñнуе" # # libgnomevfs/gnome-vfs-result.c:58 #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ÐÐ´ÑˆÑƒÐºÐ°Ð½Ñ‹Ñ Ñ†Ñ‹ÐºÐ»Ñ–Ñ‡Ð½Ñ‹Ñ ÑпаÑылкі" # # libgnomevfs/gnome-vfs-result.c:59 #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ДзеÑньне не дазволенае" # # libgnomevfs/gnome-vfs-result.c:60 #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ГÑта каталёг" # # libgnomevfs/gnome-vfs-result.c:61 #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ðедахоп памÑці" # # libgnomevfs/gnome-vfs-result.c:62 #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Вузел не адшуканы" # # libgnomevfs/gnome-vfs-result.c:63 #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ÐÐµÐ´Ð°Ð¿ÑƒÑˆÑ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð½Ð°Ð·Ð²Ð° вузлу" # # libgnomevfs/gnome-vfs-result.c:64 #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Вузел Ð½Ñ Ð¼Ð°Ðµ адраÑу" # # libgnomevfs/gnome-vfs-result.c:65 #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Уваход не адбыўÑÑ" # # libgnomevfs/gnome-vfs-result.c:66 #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ДзеÑньне адмененае" # # libgnomevfs/gnome-vfs-result.c:67 #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Каталёг занÑты" # # libgnomevfs/gnome-vfs-result.c:68 #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Каталёг не пуÑты" # # libgnomevfs/gnome-vfs-result.c:69 #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Зашмат ÑпаÑылак" # # libgnomevfs/gnome-vfs-result.c:70 #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Ð¤Ð°Ð¹Ð»Ð°Ð²Ð°Ñ ÑÑ‹ÑÑ‚Ñма толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½ÑŒÐ½Ñ" # # libgnomevfs/gnome-vfs-result.c:71 #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ÐÑ Ñž той Ñама файлавай ÑÑ‹ÑÑ‚Ñме" # # libgnomevfs/gnome-vfs-result.c:72 #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Ðазва задоўгаÑ" # # libgnomevfs/gnome-vfs-result.c:73 #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "ПаÑлуга недаÑтупнаÑ" # # libgnomevfs/gnome-vfs-result.c:74 #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Запыт ÑаÑтарÑлых даньнÑÑž паÑлуг" # # libgnomevfs/gnome-vfs-result.c:75 #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Памылка пратаколу" # # libgnomevfs/gnome-vfs-parse-ls.c:652 #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ðемагчыма адшукаць паÑлужнік праглÑду" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ÐдÑутнічае прадвызначанае атаÑÑамленае дзеÑньне" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "ÐдÑутнічае апрацоўнік Ð´Ð»Ñ Ñхемы URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Памылка разбору загаднага радку" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Памылка пуÑку загаду" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ДаÑÑгнуты тайм-аўт" # # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Памылка паÑлужніку назваў" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "РÑÑÑƒÑ€Ñ Ð·Ð°Ð±Ð»Ñкаваны" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Выклік функцыі аÑуджаны" # # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ÐÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ Ð½Ð°Ð·Ð²Ð° файла" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ðе ÑÑ‹Ð¼Ð±Ð°Ð»Ñ–Ñ‡Ð½Ð°Ñ ÑпаÑылка" # # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°" # # libgnomevfs/gnome-vfs-utils.c:67 #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u байт" msgstr[1] "%u байта" msgstr[2] "%u байтаў" # # libgnomevfs/gnome-vfs-utils.c:74 #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f Kб" # # libgnomevfs/gnome-vfs-utils.c:78 #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f Mб" # # libgnomevfs/gnome-vfs-utils.c:82 #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Gб" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (недапушчальны Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Гнуткі дыÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ДыÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Прылада USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Прылада IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "КамÑра" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Каранёвы падзел" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Музычны дыÑк" # # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "ÐевÑдомы падзел" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Сеткавы паÑлужнік" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ðемагчыма замацаваць гнуткі дыÑк. Магчыма, ён адÑутнічае Ñž прыладзе." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ðемагчыма замацаваць падзел. Магчыма, ноÑьбіт адÑутнічае Ñž прыладзе." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ðемагчыма замацаваць гнуткі дыÑк. Магчыма, ён мае фармат, Ñкі немагчыма " "замацаваць." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ðемагчыма замацаваць падзел. ГÑта шыфраваны падзел Ñ– Ð´Ð»Ñ Ñго замацаваньнÑбыў " "ÑкарыÑтаны памылковы пароль ці ключ.Ñ‹" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ðемагчыма замацаваць падзел. Магчыма, ён мае фармат, Ñкі немагчыма " "замацаваць." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ðемагчыма замацаваць вылучаны гнуткі дыÑк." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ðемагчыма замацаваць вылучаны падзел." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ðемагчыма замацаваць падзел. Ðн выкарыÑтоўваецца адной ці некалькімі " "праграмамі." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ðемагчыма адмацаваць вылучаны падзел." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Збой Ð²Ñ‹Ñ‡Ñ‹Ñ‚Ð²Ð°Ð½ÑŒÐ½Ñ Ð´Ð°Ð½ÑŒÐ½ÑÑž з працÑÑу нашчадка %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ðемагчыма выканаць працÑÑ Ð¼Ð°Ñ†Ð°Ð²Ð°Ð½ÑŒÐ½Ñ Ñž pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "ÐÐµÑ‡Ð°ÐºÐ°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž выкліку select() у чеÑе Ñ‡Ñ‹Ñ‚Ð°Ð½ÑŒÐ½Ñ Ð´Ð°Ð½ÑŒÐ½ÑÑž з працÑÑу " "нашчадка (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Ðемагчыма даÑлаць пароль працÑÑу мацаваньнÑ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "ÐÐµÑ‡Ð°ÐºÐ°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Збой пуÑку загаду" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ðемагчыма вызваліць ноÑьбіт" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ðемагчыма адмацаваць далучаны паÑлужнік" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Сетка" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Свой каталёг" # # libgnomevfs/gnome-vfs-result.c:57 #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Корань" # # modules/file-method.c:381 #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Сетка Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ІдÑнтыфікатар аддаленага кампутÑру (%s) невÑдомы." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ГÑта здараецца калі вы ўваходзіце Ñž кампутÑÑ€ упершыню.\n" "\n" "ІдÑнтычнаÑьць даÑÐ»Ð°Ð½Ð°Ñ Ð°Ð´Ð´Ð°Ð»ÐµÐ½Ñ‹Ð¼ кампутарам %s. Калі Ð’Ñ‹ жадаеце быць " "абÑалютна упÑўненымі у працÑгу, зьвÑжыцеÑÑ Ð· ÑÑ‹ÑÑ‚Ñмным адмініÑтратарам." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "УвайÑьці Ñž любым выпадку" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Ðе ўваходзіць" # # modules/test-method.c:590 #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ðе адшуканы правільны файл наладак у %s\n" # # modules/test-method.c:592 #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "ВыкарыÑтоўвайце зьменную аÑÑÑ€Ð¾Ð´Ð·ÑŒÐ´Ð·Ñ %s Ð´Ð»Ñ Ð¿Ð°Ð·Ð½Ð°Ñ‡ÑÐ½ÑŒÐ½Ñ Ñ–Ð½ÑˆÐ°Ð³Ð° меÑца.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Ваш прокÑÑ–-паÑлужнік HTTP патрабуе ўваходу.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Ð’Ñ‹ павінны ўвайÑьці Ð´Ð»Ñ Ð´Ð¾Ñтупу да \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Пароль будзе перададзены незашыфраваным." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Пароль будзе перададзены зашыфраваным." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Ð’Ñ‹ павінны ўвайÑьці Ð´Ð»Ñ Ð´Ð¾Ñтупу да %s з дамÑна %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Ð’Ñ‹ павінны ўвайÑьці Ð´Ð»Ñ Ð´Ð¾Ñтупу да %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Прадвызначанае даÑтаÑаваньне праглÑду кампанÑнта" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Прадвызначанае даÑтаÑаваньне Ñ‚Ñрміналу" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ÐргумÑнты Ð²Ñ‹ÐºÐ°Ð½Ð°Ð½ÑŒÐ½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð°Ð´Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°Ð³Ð° Ñ‚Ñрміналу" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "ДаÑтаÑаваньне Ð´Ð»Ñ Ð¿Ñ€Ð°Ð³Ð»Ñду файлаў, ÑÐºÑ–Ñ Ð¿Ð°Ñ‚Ñ€Ð°Ð±ÑƒÑŽÑ†ÑŒ кампанÑнт, каб " "прагледзіць Ñ–Ñ…. ПарамÑтар %s будзе заменены на URI файлаў, парамÑтар %c " "будзе заменены IID кампанÑнту." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Прадвызначанае даÑтаÑаваньне Ñ‚Ñрміналу, каб выкарыÑтоўваць у даÑтаÑаваньнÑÑ…, " "ÑÐºÑ–Ñ Ð¿Ð°Ñ‚Ñ€Ð°Ð±ÑƒÑŽÑ†ÑŒ Ñ‚Ñрмінал." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ÐргумÑнт Ð²Ñ‹ÐºÐ°Ð½Ð°Ð½ÑŒÐ½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð°Ð´Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°Ð³Ð° Ñ‚Ñрмінальнага даÑтаÑаваньнÑ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Выканаць загад у Ñ‚Ñрмінале" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"aim\" (хуткіх паведамленьнÑÑž), калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"callto\" (аддаленых выклікаў) , калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"ghelp\" (дапамога), калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"h323\" (відÑаканфÑÑ€ÑнцыÑ), калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"http\", калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"https\", калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"info\", калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"mailto\", калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"man\", калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL \"trash\", калі уключанае." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Ðпрацоўшчык URL \"aim\" (хуткіх паведамленьнÑÑž)" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Ðпрацоўшчык URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Ðпрацоўшчык URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Ðпрацоўшчык URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Ðпрацоўшчык URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Ðпрацоўшчык URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Ðпрацоўшчык URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Ðпрацоўшчык URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Ðпрацоўшчык URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Ðпрацоўшчык URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL \"aim" "\" (хуткіх паведамленьнÑÑž)." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL \"man" "\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ІÑьціна калі загад пазначаны у ключы \"command\" муÑіць апрацоўваць URL " "\"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž " "Ñ‚Ñрмінале." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Ці пазначаны загад апрацоўвае URL \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Падзелены коÑкамі ÑÑŒÐ¿Ñ–Ñ Ð¼Ð°Ñ‘Ð½Ñ‚ÐºÐ°Ñž dns-sd, ÑÐºÑ–Ñ Ð¼ÑƒÑÑць быць бачны Ñž Ñеткавым " "аÑÑродзьдзі." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Ð”Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñ‹Ñ Ð¼Ð°Ñ‘Ð½Ñ‚ÐºÑ– Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ паÑлуг DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Як адлюÑтроўваць мÑÑцовую паÑлугу DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "ÐœÐ°Ð³Ñ‡Ñ‹Ð¼Ñ‹Ñ Ð·Ð½Ð°Ñ‡Ñньні \"merged\", \"separate\" Ñ– \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "ІдÑнтыфікаваць далучÑньні да паўнамоцнага (proxy) паÑлужніку" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL Ð´Ð»Ñ Ð°ÑžÑ‚Ð°Ð¼Ð°Ñ‚Ñ‹Ñ‡Ð½Ð°Ðµ наладкі паўнамоцнага (proxy) паÑлужніку" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Уключае ÑžÑталёўкі паўнамоцнага (proxy) паÑлужніку, калі ідзе доÑтуп да http " "праз інтÑрнÑÑ‚." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Ðазва вузла, паўнамоцнага па FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Порт паўнамоцнага па FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Ðазва вузла, паўнамоцнага па HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Пароль Ð´Ð»Ñ Ð¿Ð°ÑžÐ½Ð°Ð¼Ð¾Ñ†Ð½Ð°Ð³Ð° па HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Порт паўнамоцнага па HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Уліковы Ð·Ð°Ð¿Ñ–Ñ Ð´Ð»Ñ Ñ–Ð´Ñнтыфікацыі на HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Калі Ñ–Ñьціна, тады далучÑньні да паўнамоцнага (proxy) паÑлужніку будуць " "патрабаваць ідÑнтыфікацыі. ЗьвÑз уліковы_запіÑ/пароль вызначаецца ключамі /" "system/http_proxy/authentication_user Ñ– /system/http_proxy/" "authentication_password." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Вузлы Ñкім не патрÑбны proxy паÑлужнік" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Пароль Ð´Ð»Ñ Ñ–Ð´Ñнтыфікацыі Ñž чаÑе перадачы паўнамоцтваў на HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "РÑжым наладкі паўнамоцнага паÑлужніку" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Ðазва вузлу, паўнамоцнага па Socks" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Порт паўнамоцнага па Socks" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Ðазва вузла, паўнамоцнага па бÑÑьпечнаму HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Порт паўнамоцнага па бÑÑьпечнаму HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Вылучыце Ñ€Ñжым наладкі паўнамоцнага паÑлужніку. Дапушчальнымі значÑньнÑмі " "зьÑўлÑюцца: \"none\" (нÑма), \"manual\" (адмыÑловы), \"auto\" (аўтаматычны)" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай (proxy) па FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай па HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай (proxy) па HTTPS." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай (proxy) па SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/http_proxy/host, Ñкой належаць " "паўнамоцтвы." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/proxy/ftp_host, Ñкой належаць " "паўнамоцтвы." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/proxy/secure_host, Ñкой належаць " "паўнамоцтвы." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/proxy/socks_host, Ñкой належаць " "паўнамоцтвы." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ГÑты ключ зьмÑшчае ÑÑŒÐ¿Ñ–Ñ Ð²ÑƒÐ·Ð»Ð¾Ñž, ÑÐºÑ–Ñ Ð´Ð°Ð»ÑƒÑ‡Ð°Ð½Ñ‹ наўпроÑÑ‚, а не праз " "паўнамоцны паÑлужнік (калі ён задзейнічаны). ГÑÑ‚Ñ‹Ñ Ð·Ð½Ð°Ñ‡Ñньні могуць быць " "назвамі вузлоў, маёнткаў (з выкарыÑтаньнем узораў; напрыклад, *.foo.com), IP " "адраÑоў (вÑÑ€Ñыі 4 Ñ– 6) Ñ– Ñеткавых адраÑоў з маÑкай Ñеткі (напрыклад, " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL, Ñкі паÑтаўлÑе значÑньні наладкі паўнамоцнага (proxy) паÑлужніку." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "ВыкарыÑтоўваць паўнамоцны (proxy) паÑлужнік HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Уліковае імÑ, каб прайÑьці ідÑнтыфікацыю на паўнамоцным (proxy) паÑлужніку " "па http." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "ÐŸÑ€Ð°Ñ†Ð¾ÑžÐ½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð° SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "ÐŸÑ€Ð°Ñ†Ð¾ÑžÐ½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð° Ñетак Windows ці маёнтак да Ñкіх належыць карыÑтальнік. " "Будзе мець ÑÑ„Ñкт у выпадку новай працоўнай групы калі карыÑтальнік пакіне й " "вернецца назад." gnome-vfs-2.24.4/po/mg.po0000644000175000001440000013131511334251016012002 00000000000000# Malagasy translation of GNOME-VFS. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Thierry Randrianiriana , 2006. msgid "" msgstr "" "Project-Id-Version: GNOME-VFS VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-01-02 04:29+0000\n" "PO-Revision-Date: 2006-10-20 23:39+0300\n" "Last-Translator: Fano Rajaonarisoa \n" "Language-Team: MALAGASY \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Fitoerana ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "Misy marika NUL ao amin'ny %s:%u." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "Tsy misy anaram-pomba ao amin'ny %s:%u." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "Tsy misy endmarkern'ny safidy ao amin'ny %s:%u." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u dia manana safidy %s tsy fantatra." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "Tsy misy anaran-tsinga mpiorina ao amin'ny %s:%u." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Tsy hita ny raki-kirakira `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "Nitsahatra nizarazara ny %s:%d." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Fitoerana AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Fitoerana rezo AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Fitoerana hita hoazy" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "Mpanodina CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD Digital Audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 #, fuzzy msgid "Hardware Device Volume" msgstr "Fitoeram-pitaovam-piasana" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "Fitoerana EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Fitoerana Ext2 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Fitoerana Ext3 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "MSDOS Volume" msgstr "Fitoerana MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "BSD Volume" msgstr "Fitoerana BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "MacOS Volume" msgstr "Fitoerana MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "CDROM Volume" msgstr "CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Hsfs CDROM Volume" msgstr "CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "JFS Volume" msgstr "Fitoerana JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Windows NT Volume" msgstr "Fitoerana Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "System Volume" msgstr "Fitoerana-drafitra" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Memory Volume" msgstr "Fitoerana arika" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Minix Volume" msgstr "Fitoerana Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "NFS Network Volume" msgstr "Fitoerana Rezo NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Netware Volume" msgstr "Fitoerana Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Reiser4 Linux Volume" msgstr "Fitoerana Reiser4 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "ReiserFS Linux Volume" msgstr "Fitoerana ReiserFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows Shared Volume" msgstr "Fitoerana iombonana Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "SuperMount Volume" msgstr "Fitoerana SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "DVD Volume" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "Solaris/BSD Volume" msgstr "Fitoerana Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Udfs Solaris Volume" msgstr "Fitoerana Udfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Pcfs Solaris Volume" msgstr "Fitoerana Pcfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Sun SAM-QFS Volume" msgstr "Fitoerana Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Temporary Volume" msgstr "Fitoerana vonjimaika" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Enhanced DOS Volume" msgstr "Fitoerana DOS manatombo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Windows VFAT Volume" msgstr "Fitoerana VFAT Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Xenix Volume" msgstr "Fitoerana Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "XFS Linux Volume" msgstr "Fitoerana XFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XIAFS Volume" msgstr "Fitoerana XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "CIFS Volume" msgstr "Fitoerana CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:114 msgid "Unknown" msgstr "Tsy fantatra" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:354 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Volume" msgstr "Fitoerana %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:370 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:378 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:391 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:394 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:397 #, c-format msgid "%s/%s Drive" msgstr "Mpanodina %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s Drive" msgstr "Mpanodina %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:404 msgid "Floppy Drive" msgstr "Mpanodina zana-kapila" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:407 msgid "Compact Flash Drive" msgstr "Arika Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Memory Stick Drive" msgstr "Arika Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Smart Media Drive" msgstr "Arika Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "SD/MMC Drive" msgstr "Arika SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Arika Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:418 msgid "Jaz Drive" msgstr "Arika Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:421 msgid "Pen Drive" msgstr "Arika Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:427 #, c-format msgid "%s %s Music Player" msgstr "Mpandefa hira %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:435 #, c-format msgid "%s %s Digital Camera" msgstr "Fakantsary numérique %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:465 msgid "Drive" msgstr "Arika" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:470 #, c-format msgid "External %s" msgstr "%s ivelany" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:506 msgid "CD-ROM Disc" msgstr "Kapila CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:511 msgid "Blank CD-R Disc" msgstr "Kapila CD-R foana" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "CD-R Disc" msgstr "Kapila CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:518 msgid "Blank CD-RW Disc" msgstr "CD-RW foana" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "CD-RW Disc" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:524 msgid "DVD-ROM Disc" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:529 msgid "Blank DVD-RAM Disc" msgstr "DVD-RAM foana" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "DVD-RAM Disc" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:536 msgid "Blank DVD-R Disc" msgstr "DVD-R foana" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "DVD-R Disc" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:543 msgid "Blank DVD-RW Disc" msgstr "DVD-RW foana" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "DVD-RW Disc" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:551 msgid "Blank DVD+R Disc" msgstr "DVD+R foana" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "DVD+R Disc" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:558 msgid "Blank DVD+RW Disc" msgstr "DVD+RW foana" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "DVD+RW Disc" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:567 msgid "Audio Disc" msgstr "Kapila audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:578 #, c-format msgid "%s Removable Volume" msgstr "Fitoerana mahaleotena %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:589 msgid "Volume" msgstr "Fitoerana" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Karazan'asa tsy fantatra %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Tsy afaka mamorona fantsona ho an'ny GIOChannel misokatra: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "Karazan'asa tsy fantatra %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "Najanona ilay asa" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Asa tsy atao intsony. Tsy raisina an-tànana intsony ireo fanovana ataon'ny " "mpampiasa amin'ny soratra fototry ny MIME." #: ../libgnomevfs/gnome-vfs-parse-ls.c:708 #, c-format msgid "Could not parse: %s" msgstr "Tsy afaka nizarazara: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:710 msgid "More parsing errors will be ignored." msgstr "Tsy horaharahaina izay tsy fetezam-pizarazarana manaraka." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:42 msgid "No error" msgstr "Tsy nisy olana" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:43 msgid "File not found" msgstr "Tsy hita ilay rakitra" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:44 msgid "Generic error" msgstr "Olana iraisan-karazana" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:45 msgid "Internal error" msgstr "Tsy fetezana anatiny" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:46 msgid "Invalid parameters" msgstr "Mpizahaka diso" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "Unsupported operation" msgstr "Asa tsy raisina an-tànana" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "I/O error" msgstr "Tsy fetezana I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Data corrupted" msgstr "Simba ilay data" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Format not valid" msgstr "Diso io lamina io" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:51 #, fuzzy msgid "Bad file handle" msgstr "Descripteur de fichier diso" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "File too big" msgstr "Lehibe loatra ilay rakitra" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "No space left on device" msgstr "Feno ilay periferika" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Read-only file system" msgstr "Rafi-drakitra vakiana fotsiny" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Invalid URI" msgstr "URI diso" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "File not open" msgstr "Tsy misokatra ilay rakitra" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "Open mode not valid" msgstr "Fomba fanokafana tsy ekena" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "Access denied" msgstr "Nolavina ny fanokafana" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Too many open files" msgstr "Be loatra ireo rakitra misokatra" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "End of file" msgstr "Faran-drakitra" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "Not a directory" msgstr "Tsy lahatahiry" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Operation in progress" msgstr "Eo am-panatanterahana ilay asa" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Operation interrupted" msgstr "Najanona ilay asa" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "File exists" msgstr "Misy ilay rakitra" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "Looping links encountered" msgstr "Tojo rohy miverinkodina" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Operation not permitted" msgstr "Asa tsy azo atao" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Is a directory" msgstr "Lahatahiry" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Not enough memory" msgstr "Tsy ampy ny arika" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "Host not found" msgstr "Tsy hita ny mpampiantrano" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Host name not valid" msgstr "Tsy mitombina ilay anaram-pampiantrano" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Host has no address" msgstr "Tsy manana adiresy ilay mpampiantrano" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Login failed" msgstr "Tsy nahomby ny fidirana" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Operation cancelled" msgstr "Nofoanana ilay asa" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Directory busy" msgstr "Mbola ampiasaina ilay lahatahiry" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Directory not empty" msgstr "Tsy foana ilay lahatahiry" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Too many links" msgstr "Be loatra ireo rohy" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Read only file system" msgstr "Rafi-drakitra vakiana fotsiny" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Not on the same file system" msgstr "Tsy anatin'io rafi-drakitra io" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Name too long" msgstr "Lava loatra i anarana io" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Service not available" msgstr "Tsy mety ampiasaina ilay sampan'asa" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Request obsoletes service's data" msgstr "Datan'ny sampan'asan'ny request obsoletes" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Protocol error" msgstr "Tsy fetezan'ny firesaka" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Could not find master browser" msgstr "Tsy hita ny mpitety reny" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "No default action associated" msgstr "Tsy misy asa lasitra mifandraika amin'io" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "No handler for URL scheme" msgstr "Tsy misy mpandray an-tànana drafitra URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Error parsing command line" msgstr "Nisy olana teo am-pizarazarana ny lazam-baiko" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Error launching command" msgstr "Nisy olana teo am-panatanterahana ilay baiko" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Timeout reached" msgstr "Tapitra ny fe-potoana" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "Nameserver error" msgstr "Tsy fetezan'ny mpizara anarana" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "The resource is locked" msgstr "Voageja ilay ressource" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Function call deprecated" msgstr "Tsy ampiasaina intsony ny fiantsoana asa" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Invalid filename" msgstr "Anaran-drakitra tsy mety" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Not a symbolic link" msgstr "Tsy rohy misolotena" #: ../libgnomevfs/gnome-vfs-result.c:217 msgid "Unknown error" msgstr "Olana tsy fantatra" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u octet" msgstr[1] "%u octet" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f Kio" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f Mio" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Gio" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode tsy mety)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Zana-kapila" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Kapila" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Arika USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Arika IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Fakantsary" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Fitoerana fototra" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "CD Audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Fitoerana tsy fantatra" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "Mpizara rezo" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Tsy mety akarina ilay mpanodina zana-kapila. Mety tsy misy zana-kapila " "angamba ao." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Tsy mety akarina io fitoerana io. Mety tsy misy media angamba ao." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Tsy mety akarina ilay mpanodina zana-kapila. Mety manana lamina tsy mety " "akarina angamba ilay zana-kapila." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Tsy mety akarina ilay fitoerana. Raha toa ka mpanodina voasora-miafina io, " "dia diso izany ny teny fanalahidy na famaha nampiasaina." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Tsy mety akarina ny fitoerana voafaritra. Mety manana lamina tsy mety " "akarina angamba izy io." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Tsy mety akarina ny mpanodina zana-kapila voafaritra." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Tsy mety akarina ny fitoerana voafaritra." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Tsy mety akarina ny fitoerana voafaritra. Ampiasain'ny rindranasa iray na " "maromaro izy io." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Tsy mety akarina ny fitoerana voafaritra." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Tsy nahavaky ny data tamin'ny zanak'asa %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Tsy afaka nandefa ny asa fampakarana tanatina pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Nisy olana tsy nampoizina teo am-pamakiana ny data tamina zanak'asa araka ny " "select() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "Tsy afaka nandefa ny teny fanalahidy tamin'ny asa fampakarana." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Olana tsy nampoizina ao amin'ny waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Tsy nahavita nandefa ilay baiko" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Tsy mety tsoahana ilay media" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Tsy mety aidina ilay mpizara miasa" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rezo" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Fandraisana" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Rafi-drakitra" #: ../modules/file-method.c:494 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d tsy fantatra" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rezo Windows" #: ../modules/sftp-method.c:1422 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Tsy fantatra ny identitén'ny solosaina lavi-toerana (%s)." #: ../modules/sftp-method.c:1423 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Mitranga izany isaka ny miditra amina solosaina voalohany indrindra ianao.\n" "\n" "%s no identité alefan'ilay solosaina lavi-toerana. Antsoy ny mpitantana ny " "rafitrao raha te haka toky ianao hoe azo antoka ny manohy izao." #: ../modules/sftp-method.c:1431 msgid "Log In Anyway" msgstr "Hiditra ihany" #: ../modules/sftp-method.c:1432 msgid "Cancel Login" msgstr "Foano ny fidirana" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Tsy nahita raki-pandrindrana mitombina tao amin'ny %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Ampiasao ny sora-miovan'ny tontolo %s hamaritana toerana hafa.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Mila anao miditra ny HTTP Proxy-nao.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Tsy maintsy miditra ianao vao afaka mampiasa ny \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Hampitaina amin'ny fomba tsy miafina ny teny fanalahidinao." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Hampitaina amin'ny fomba miafina ny teny fanalahidinao." #: ../programs/authentication.c:156 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Tsy maintsy miditra ianao vao afaka mampiasa ny %s domena %s\n" #: ../programs/authentication.c:158 #, c-format msgid "You must log in to access %s\n" msgstr "Tsy maintsy miditra ianao vao afaka mampiasa ny %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Rindranasa fizahana singa fototra lasitra" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Rindranasan'ny terminal lasitra" #: ../schemas/desktop_default_applications.schemas.in.h:3 #, fuzzy msgid "Exec argument for default terminal" msgstr "Tondrikim-panatanterahana ho an'ny terminal lasitra" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Ny rindranasa ampiasaina hizahana ireo rakitra mila singa fototra raha " "hizaha azy ireo. Hosoloina ny URIn'ilay rakitra ny mpizahaka %s; hosoloina " "ny IIDn'ilay singa fototra ny mpizahaka %c." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Ny rindranasan'ny terminal lasitra ampiasaina amina rindranasa mila terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "Ny tondrikim-panatanterahana ampiasaina amin'ilay rindranasan'ny terminal " "lasitra." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Alefaso anaty terminal ilay baiko" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"aim\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"callto\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"ghelp\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"h323\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"http\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"https\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"info\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"mailto\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"man\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Ny baiko omena hifehezana URL \"trash\", raha alefa." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Ny mpifehy URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Ny mpifehy URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Ny mpifehy URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Ny mpifehy URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Ny mpifehy URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Ny mpifehy URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Ny mpifehy URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Ny mpifehy URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Ny mpifehy URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Ny mpifehy URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"aim\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"callto\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"ghelp\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"h323\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"http\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"https\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"info\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"mailto\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"man\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Marina raha toa ka tokony hifehy URL \"trash\" ny baiko voalaza ao amin'ny " "famaha \"command\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana " "io karazan'URL io." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Raha tokony hifehy URL \"aim\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Raha tokony hifehy URL \"callto\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Raha tokony hifehy URL \"ghelp\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Raha tokony hifehy URL \"h323\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Raha tokony hifehy URL \"http\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Raha tokony hifehy URL \"https\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Raha tokony hifehy URL \"info\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Raha tokony hifehy URL \"mailto\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Raha tokony hifehy URL \"man\" ny baiko voalaza" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Raha tokony hifehy URL \"trash\" ny baiko voalaza" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Domena DNS-SD saraham-paingo izay tokony ho hita ao amin'ny \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domena fanampiny hitadiavana sampan'asa DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Ny fomba fanehoana sampan'asa DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "\"merged\", \"separate\" ary \"disabled\" no sanda mety ampiasaina." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Manamarina ny fifandraisana amin'ny mpizara proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL fikirakirana proxy avy hatrany" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Mandefa ny kirakiran'ny proxy rehefa mampiasa HTTP amin'ny Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Anaran'ny mpampiantrano proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Iriky ny proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Anaran'ny mpampiantrano proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Teny fanalahidin'ny proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Iriky ny proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Anaran'ny mpampiasan'ny proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Raha toa ka marina, dia mila fanamarinana ny fifandraisana amin'ilay mpizara " "proxy. Ny \"/system/http_proxy/authentication_user\" sy ny \"/system/" "http_proxy/authentication_password\" no mamaritra ny amboara anaran'ny " "mpampiasa/teny fanalahidy." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Mpampiantrano tsy proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Ny teny fanalahidy omena hamarinina rehefa manao proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Fomba fikirakirana ny proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Anaran'ny mpampiantrano proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Iriky ny proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Anaran'ny mpampiantrano proxy HTTP azo antoka" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Iriky ny proxy HTTP azo antoka" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Safidio ny fomba hikirakirana ny proxy. Ireto ireo sanda raisina an-tànana: " "\"none\", \"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Ny anaran'ilay milina hampiasana proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Ny anaran'ilay milina hampiasana proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Ny anaran'ilay milina hampiasana proxy HTTP azo antoka." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Ny anaran'ilay milina hampiasana proxy socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Ny irik'ilay milina voafaritry ny \"/system/http_proxy/host\" hampiasaina " "amin'ny proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Ny irik'ilay milina voafaritry ny \"/system/proxy/ftp_host\" hampiasaina " "amin'ny proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Ny irik'ilay milina voafaritry ny \"/system/proxy/secure_host\" hampiasaina " "amin'ny proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Ny irik'ilay milina voafaritry ny \"/system/proxy/socks_host\" hampiasaina " "amin'ny proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ity famaha ity dia misy ireo mpampiantrano ifandraisana mivantana fa tsy " "amin'ny alalan'ny proxy (raha toa ka mandeha). Mety ho anaram-pampiantrano, " "domena (mampiasa marika manokana toy ny *.foo.com), adiresim-pampiantrano IP " "(IPv4 sy IPv6) ary adiresin-drezo misy sarona (zavatra tahaka ny " "192.168.0.0/24) ilay sanda." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL manome sandan-kirakira-na proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Hampiasa proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Anaram-pampiasa omena hamarinina rehefa manao proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Vondron-tsolosaina SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Ny vondron-tsolosaina mifandray na domenan'ny Windows misy ilay mpampiasa. " "Mety mila mivoaka ary miverina miditra indray ilay mpampiasa mba ahafahan'ny " "vondrona vaovao iray miasa tanteraka." gnome-vfs-2.24.4/po/hu.po0000644000175000001440000013436411354402652012030 00000000000000# translation of gnome-vfs.HEAD.hu.po to Hungarian # Hungarian translation of gnome-vfs. # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # # Szabolcs Ban , 2000, 2001. # Emese Kovacs , 2001. # Gergely Nagy , 2001. # Andras Timar , 2001, 2002, 2003. # Laszlo Dvornik , 2004. # Gabor Kelemen , 2004, 2005, 2006, 2007, 2008. # Gabor Kelemen , 2010. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.hu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-25 21:53+0100\n" "PO-Revision-Date: 2010-02-25 21:53+0100\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 kötet" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u NUL karaktereket tartalmaz." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u nem tartalmaz metódusnevet." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nem tartalmaz kapcsoló-végjelzÅ‘t." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ismeretlen %s kapcsolót tartalmaz." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u nem tartalmaz modulnevet." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "„%s†konfigurációs fájl nem található: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d megszakította a feldolgozást." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS hálózat kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatikusan felismert kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM meghajtó" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Digitális Audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Hardvereszköz kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CD-ROM kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Rendszer kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Memória kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS hálózat kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows megosztott kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Ideiglenes kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS kötet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Ismeretlen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s kötet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Hajlékonylemezes meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s zenelejátszó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitális fényképezÅ‘gép" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Meghajtó" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "KülsÅ‘ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Üres CD-R lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Üres CD-RW lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Üres DVD-RAM lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Üres DVD-R lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Üres DVD-RW lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Üres DVD+R lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Üres DVD+RW lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio lemez" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s eltávolítható kötet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Kötet" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Ismeretlen %u művelettípus" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nem hozható létre csÅ‘ a GIOChannel megnyitásához: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Ismeretlen munkatípus: %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "A művelet leállítva" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Elavult funkció. A MIME-adatbázis felhasználói módosítása többé már nem " "támogatott." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Nem dolgozható fel: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "A többi értelmezési hiba figyelmen kívül lesz hagyva." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nincs hiba" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "A fájl nem található" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Ãltalános hiba" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "BelsÅ‘ hiba" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Érvénytelen paraméterek" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nem támogatott művelet" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O hiba" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Az adatok sérültek" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "A formátum érvénytelen" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Rossz fájl handle" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "A fájl túl nagy" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nincs hely az eszközön" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Csak olvasható fájlrendszer" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Érvénytelen URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Nincs nyitva a fájl" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "A megnyitás módja érvénytelen" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Hozzáférés megtagadva" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Túl sok nyitott fájl" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fájl vége" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nem könyvtár" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "A művelet folyamatban" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "A művelet megszakadt" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "A fájl létezik" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Ciklikus linket találtam" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "A művelet nem engedélyezett" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Könyvtár" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nincs elég memória" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "A gép nem található" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "A gépnév érvénytelen" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "A gépnek nincs címe" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "A belépés nem sikerült" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "A művelet megszakítva" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "A könyvtár foglalt" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "A könyvtár nem üres" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Túl sok link" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Csak olvasható fájlrendszer" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nem ugyanazon a fájlrendszeren van" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "A név túl hosszú" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "A szolgáltatás nem érhetÅ‘ el" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "A kérés elavulttá teszi a szolgáltatás adatait" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokollhiba" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "FÅ‘böngészÅ‘ (master browser) nem található" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nincs hozzárendelve alapértelmezett művelet" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Nincs kezelÅ‘ az URL-sémához" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Hiba a parancssor értelmezése közben" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Hiba a parancs indításakor" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "IdÅ‘túllépés" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Névkiszolgáló hiba" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Az erÅ‘forrás zárolva van" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "A függvényhívás elavult" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Érvénytelen fájlnév" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nem szimbolikus link" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ismeretlen hiba" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bájt" msgstr[1] "%u bájt" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (érvénytelen Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Hajlékonylemez" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Lemez" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB meghajtó" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 meghajtó" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "FényképezÅ‘gép" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root kötet" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Ismeretlen kötet" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Hálózati kiszolgáló" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "A hajlékonylemezes meghajtó nem csatolható. Valószínűleg nincs " "hajlékonylemez a meghajtóban." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "A kötet nem csatolható. Valószínűleg nincs adathordozó a meghajtóban." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "A hajlékonylemezes meghajtó nem csatolható. Valószínűleg a hajlékonylemez " "olyan formátumú, amit nem lehet csatolni." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "A kötet nem csatolható. Ha ez egy titkosított kötet, akkor hibás jelszó vagy " "kulcs került felhasználásra." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "A kiválasztott kötet nem csatolható. Valószínűleg a kötet olyan formátumú, " "amit nem lehet csatolni." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "A kiválasztott hajlékonylemezes meghajtó nem csatolható." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "A kiválasztott kötet nem csatolható." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "A kötet nem választható le. A kötetet legalább egy program használja." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Nem választható le a kijelölt kötet." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Az adatok olvasása meghiúsult a(z) %d gyermekfolyamattól (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "A csatoló folyamat nem futtatható pszeudoterminálon." #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Váratlan hiba történt, miközben a select() adatokat próbált olvasni egy " "gyermekfolyamatból (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "A jelszó nem küldhetÅ‘ el a csatoló folyamatnak." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Váratlan hiba a waitpid()-ben (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Parancs indítása sikertelen" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nem adható ki az adathordozó" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nem választható le a csatlakoztatott kiszolgáló" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Hálózat" #: ../modules/computer-method.c:561 msgid "Home" msgstr "KezdÅ‘lap" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Fájlrendszer" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ismeretlen GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows hálózat" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "A távoli számítógép (%s) azonosítója ismeretlen." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ez akkor lehetséges, ha elsÅ‘ alkalommal jelentkezik be egy számítógépre.\n" "\n" "A távoli számítógép által küldött azonosító %s. Ha teljesen biztos akar " "lenni, hogy ez biztonságos, lépjen kapcsolatba a rendszergazdával." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Bejelentkezés mindenképpen" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Bejelentkezés megszakítása" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nem található érvényes beállítófájl a következÅ‘ helyen: %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Használja a(z) %s környezeti változót egy másik hely megadására.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "A HTTP proxy megköveteli a bejelentkezést.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Be kell jelentkeznie a következÅ‘ eléréséhez: „%sâ€.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "A jelszava titkosítatlanul kerül átvitelre." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "A jelszava titkosítva kerül átvitelre." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Be kell jelentkeznie %s %s tartományának eléréséhez\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Be kell jelentkeznie %s eléréséhez\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Alapértelmezett komponensnézÅ‘ alkalmazás" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Alapértelmezett terminál alkalmazás" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Az alapértelmezett terminál exec paramétere" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Az azon fájlok megtekintésére használt alkalmazás, amelyek megtekintéséhez " "egy összetevÅ‘ szükséges. A %s paraméter a fájl URI címére, a %c az összetevÅ‘ " "IID-jére lesz cserélve." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "A terminált igénylÅ‘ alkalmazásokhoz használandó alapértelmezett terminál." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Az alapértelmezett terminálalkalmazásnál használandó exec paraméter." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Parancs futtatása terminálban" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Az „aim†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "A „callto†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "A „ghelp†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "A „h323†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "A „http†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "A „https†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Az „info†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "A „mailto†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "A „man†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "A „trash†URL címek kezelésére használt parancs, ha engedélyezve van." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "„aim†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "„callto†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "„ghelp†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "„h323†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "„http†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "„https†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "„info†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "„mailto†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "„man†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "„trash†URL címek kezelÅ‘je" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli az " "„aim†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„callto†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„ghelp†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„h323†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„http†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„https†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli az " "„info†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„mailto†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„man†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a " "„trash†URL címeket." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Ha igazra van állítva, a „command†kulcsban beállított parancsnak " "terminálban kell futnia." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "A megadott parancs kezelje-e az „aim†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "A megadott parancs kezelje-e a „callto†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "A megadott parancs kezelje-e a „ghelp†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "A megadott parancs kezelje-e a „h323†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "A megadott parancs kezelje-e a „http†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "A megadott parancs kezelje-e a „https†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "A megadott parancs kezelje-e az „info†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "A megadott parancs kezelje-e a „mailto†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "A megadott parancs kezelje-e a „man†URL címeket" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "A megadott parancs kezelje-e a „trash†URL címeket" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "A „network:///†helyen látható DNS-SD tartományok vesszÅ‘vel elválasztott " "listája." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Extra tartományok a DNS-SD szolgáltatások kereséséhez" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Hogyan jelenítse meg a helyi DNS-SD szolgáltatást" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Lehetséges értékek: „mergedâ€, „separate†és „disabledâ€." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Kapcsolatok hitelesítése a proxy kiszolgálókhoz" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automatikus proxybeállítás URL címe" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Proxybeállítások bekapcsolása interneten keresztüli HTTP eléréskor." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP proxy gépnév" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP proxy gépnév" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP proxy jelszó" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP proxy felhasználónév" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ha be van kapcsolva, akkor a proxy kiszolgálóhoz történÅ‘ kapcsolódásokhoz " "hitelesítés szükséges. A felhasználónév/jelszó párost a „/system/http_proxy/" "authentication_user†és a „/system/http_proxy/authentication_password†adja " "meg." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Proxy nélkül elérhetÅ‘ kiszolgálók" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP proxy használatakor hitelesítéshez használandó jelszó." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxybeállítás módja" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS proxy gépnév" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS proxy port" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Biztonságos HTTP proxy gépnév" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Biztonságos HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Válassza ki a proxybeállítás módját. Támogatott értékek: „noneâ€, „manualâ€, " "„autoâ€." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Az FTP proxy gépneve." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "A HTTP proxy gépneve." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "A biztonságos HTTP proxy gépneve." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "A socks proxy gépneve." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "A „/system/http_proxy/host†kulcsban proxyként megadott gép portja." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "A „/system/proxy/ftp_host†kulcsban proxyként megadott gép portja." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "A „/system/proxy/secure_host†kulcsban proxyként megadott gép portja." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "A „/system/proxy/socks_host†kulcsban proxyként megadott gép portja." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ez a kulcs azon kiszolgálók listáját tartalmazza, amelyekhez közvetlenül " "kapcsolódik, proxy használata nélkül (ha az aktív). Az értékek lehetnek " "kiszolgálónevek, tartományok (kezdÅ‘ helyettesítÅ‘ karakterek használhatóak, " "pl. *.akarmi.hu), IP kiszolgálócímek (IPv4 és IPv6 egyaránt) és hálózati " "címek hálózati maszkkal (pl. 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "A proxy beállításokat tartalmazó URL." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP proxy használata" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP proxy használatakor hitelesítéshez használandó felhasználónév." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-munkacsoport" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "A Windows hálózati munkacsoport vagy tartomány, amelynek a felhasználó " "része. Egy új munkacsoport teljes életbe lépéséhez a felhasználónak lehet, " "hogy ki-, majd újra be kell jelentkeznie." gnome-vfs-2.24.4/po/is.po0000644000175000001440000007716511334251016012026 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # Samúel Jón Gunnarsson , 2003 msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2003-06-21 12:15--100\n" "Last-Translator: Samuel Jon Gunnarsson \n" "Language-Team: Icelandic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: daemon/gnome-vfs-daemon.c:596 #, fuzzy msgid "Could not initialize Bonobo" msgstr "Ekki tókst að finna yfirvafra" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d inniheldur NUL tákn." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d inniheldur ekkert heiti fyrir aðgerð." #: libgnomevfs/gnome-vfs-configuration.c:284 #, fuzzy, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d inniheldur ekkert heiti fyrir aðgerð." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d inniheldur ekkert heiti fyrir einingu." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Stillingarskráin `%s' fannst ekki: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 #, fuzzy msgid "Unknown" msgstr "Óþekkt villa" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Óþekkt op gerð %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ekki tókst að stofna pípu fyrir opna GIOChannel: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Óþekkt vinnuaðgerð %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "Aðgerð stöðvuð" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Ekki tókst að þátta: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "Frekari þáttunarvillur verða hunsaðar." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Engin villa" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Skrá fannst ekki" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Almenn villa" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Innvær villa" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Ógild viðföng" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "Óstudd aðgerð" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "I/O villa" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Skemmd gögn" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Ógilt skráarform" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Slæm skráaraðgerð" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Skrá of stór" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Ekkert pláss eftir á einingu" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "Ritvarið skráarkerfi" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "Ógilt URI" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Skráin er ekki opin" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Ógild opnunaraðgerð" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Aðgangi hafnað" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "Of margar opnar skrár" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Endi skráar" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Er ekki mappa" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Aðgerð í vinnslu" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "Aðgerð stöðvuð" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Skráin er þegar til" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Hringrás í tenglum fannst" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Aðgerð ekki leyfileg" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Er mappa" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Ekki nægjanlegt minni" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Vélin fannst ekki" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Heiti vélarinnar er ógilt" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "Vélin hefur ekkert vistfang" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Innskráning mistókst" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "Hætt var við aðgerð" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Mappan er upptekin" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Mappan er ekki tóm" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Of margir tenglar" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "Ritvarið skráarkerfi" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Er ekki á sama skráarkerfi" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Heitið er of langt" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "Þjónusta ekki til staðar" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Beiðnin ógildir gögn þjónustu" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Samskiptavilla" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Ekki tókst að finna yfirvafra" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Engin sjálgefin aðgerð tilbundin" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "Engin aðgerð fyrir URL skemu" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Villa við greiningu á skipanalínu" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Villa við ræsingu skipunar" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "Almenn villa" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Óþekkt villa" #: libgnomevfs/gnome-vfs-utils.c:85 #, fuzzy, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bæti" msgstr[1] "%u bæti" #: libgnomevfs/gnome-vfs-utils.c:91 #, fuzzy, c-format msgid "%.1f KB" msgstr "%.1f K" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (ógilt Unicode)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 #, fuzzy msgid "Unknown volume" msgstr "Óþekkt villa" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "" #: modules/computer-method.c:545 msgid "Network" msgstr "" #: modules/computer-method.c:563 msgid "Home" msgstr "" #: modules/computer-method.c:581 #, fuzzy msgid "Filesystem" msgstr "Skrár" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Óþekkt GnomeVFSSeekPosition %d" #: modules/network-method.c:1396 #, fuzzy msgid "Windows Network" msgstr "Gluggar" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ekki tókst að finna gilda stillingaskrá í %s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Notaðu umhverfisbreytuna %s til að tilgreina aðra staðsetningu.\n" # Það þarf að finna eitthvað hentugt nafn á Moniker Factory, en eftir því sem mér skilts þá er moniker eitthvað form fyrir merkimiða. #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Standard Moniker factory" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "file MonikerExtender" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "almennur Gnome VFS merkimiði" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "almennur skráarmerkimiði" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 #, fuzzy msgid "The handler for \"aim\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 #, fuzzy msgid "The handler for \"callto\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 #, fuzzy msgid "The handler for \"ghelp\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 #, fuzzy msgid "The handler for \"h323\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 #, fuzzy msgid "The handler for \"http\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 #, fuzzy msgid "The handler for \"https\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 #, fuzzy msgid "The handler for \"info\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 #, fuzzy msgid "The handler for \"mailto\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 #, fuzzy msgid "The handler for \"man\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 #, fuzzy msgid "The handler for \"trash\" URLs" msgstr "Engin aðgerð fyrir URL skemu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "Gluggar" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "Ekki tókst að þátta: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "Skráin er þegar til" #~ msgid "Applications" #~ msgstr "Forrit" # Translate exactly the same in CDE's sys.dtwmrc file of the locale #~ msgid "Cards" #~ msgstr "Spjöld" #~ msgid "Files" #~ msgstr "Skrár" #~ msgid "Folders" #~ msgstr "Möppur" #~ msgid "Help" #~ msgstr "Hjálp" #~ msgid "Hosts" #~ msgstr "Vélar" #~ msgid "Links" #~ msgstr "Tenglar" #~ msgid "Mail" #~ msgstr "Póstur" #~ msgid "Tools" #~ msgstr "Verkfæri" #~ msgid "Windows" #~ msgstr "Gluggar" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "Engin aðgerð fyrir URL skemu" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "Engin aðgerð fyrir URL skemu" #, fuzzy #~ msgid "Handle ghelp URLs" #~ msgstr "Engin aðgerð fyrir URL skemu" #, fuzzy #~ msgid "Handle trash URLs" #~ msgstr "Engin aðgerð fyrir URL skemu" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "Slæm skráaraðgerð" #, fuzzy #~ msgid "mailto URL handler" #~ msgstr "Slæm skráaraðgerð" #~ msgid "1 byte" #~ msgstr "1 bæti" gnome-vfs-2.24.4/po/as.po0000644000175000001440000016260611334251016012011 00000000000000# translation of as.po to Assamese # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Amitakhya Phukan , 2008. msgid "" msgstr "" "Project-Id-Version: as\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-02-05 04:03+0000\n" "PO-Revision-Date: 2008-02-05 16:59+0530\n" "Last-Translator: Amitakhya Phukan \n" "Language-Team: Assamese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1)\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 ভলিউম" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u'ত NUL অকà§à¦·à§° উপসà§à¦¥à¦¿à¦¤ ।" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u'ত কোনো মেথডৰ নাম উপসà§à¦¥à¦¿à¦¤ নাই ।" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u'ত বিকলà§à¦ªà§° সমাপà§à¦¤à¦¿à¦šà¦¿à¦¹à§à¦¨ (endmarker) নাই ।" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u'ত অজà§à¦žà¦¾à¦¤ বিকলà§à¦ª %s উপসà§à¦¥à¦¿à¦¤ আছে ।" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u'ত কোনো অংশৰ নাম নাই ।" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "`%s' নামক বিনà§à¦¯à¦¾à¦¸ নথিপতà§à§° পোৱা নাযায়: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d বিশà§à¦²à§‡à¦·à¦£ কৰà§à¦® অসà§à¦¬à¦¾à¦­à¦¾à¦¬à¦¿à¦•ৰূপ বনà§à¦§ ।" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS নেটৱৰà§à¦• ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà§°à§‚পে চিনাকà§à¦¤ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD ডিজিটাল অডিও" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "হাৰà§à¦¡à¦“à§Ÿà§à¦¯à¦¾à§° ডিভাইস ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "সিসà§à¦Ÿà§‡à¦® ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "মেমৰি ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS নেটৱৰà§à¦• ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows Shared ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "অসà§à¦¥à¦¾à§Ÿà§€ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "অজà§à¦žà¦¾à¦¤" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ভলিউম" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ফà§à¦²à¦ªà¦¿ ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "কমপà§à¦¯à¦¾à¦•à§à¦Ÿ ফà§à¦²à§à¦¯à¦¾à¦¶ ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "মেমৰি সà§à¦Ÿà¦¿à¦•‌ ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "জিপ ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "পেন ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s সঙà§à¦—ীত বাদক" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ডিজিটাল কà§à¦¯à¦¾à¦®à§‡à§°à¦¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "বহিসà§à¦¥à¦¿à¦¤ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ফাà¦à¦•া CD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ফাà¦à¦•া CD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ফাà¦à¦•া DVD-RAM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ফাà¦à¦•া DVD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ফাà¦à¦•া DVD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ফাà¦à¦•া DVD+R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ফাà¦à¦•া DVD+RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "অডিও ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s অপসাৰণযোগà§à¦¯ ভলিউম" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ভলিউম" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "অজà§à¦žà¦¾à¦¤ ধৰনেৰ কৰà§à¦® %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "খোলা GIOChannel'à§° কà§à¦·à§‡à¦¤à§à§°à§‡ পাইপ নিৰà§à¦®à¦¾à¦£ কৰতে বà§à¦¯à§°à§à¦¥: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "অজà§à¦žà¦¾à¦¤ ধৰনেৰ কৰà§à¦® %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "কৰà§à¦® বনà§à¦§ কৰা হয়েছে" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "অবচিত কৰà§à¦® । MIME ডাটাবেসে বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীদেৰ দà§à¦¬à¦¾à§°à¦¾ পৰিবৰà§à¦¤à¦¨ বৰà§à¦¤à¦®à¦¾à¦¨à§‡ সমৰà§à¦¥à¦¿à¦¤ নয় ।" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "বিশà§à¦²à§‡à¦·à¦£ কৰতে বà§à¦¯à§°à§à¦¥: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "বিশà§à¦²à§‡à¦·à¦£ কৰà§à¦®à¦œà§œà¦¿à¦¤ তà§à§°à§à¦Ÿà¦¿ অতিৰিকà§à¦¤ তà§à§°à§à¦Ÿà¦¿ অগà§à§°à¦¾à¦¹à§à¦¯ কৰা হবে ।" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "তà§à§°à§à¦Ÿà¦¿à¦¬à¦¿à¦¹à§€à¦¨" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "নথিপতà§à§° পোৱা নাযায়" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "সাধাৰণ সমসà§à¦¯à¦¾" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "অভà§à¦¯à¦¨à§à¦¤à§°à§€à¦£ তà§à§°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "বেঠিক মানসমূহ" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "অসমৰà§à¦¥à¦¿à¦¤ কৰà§à¦®" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O-জড়িত তà§à§°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "কà§à¦·à¦¤à¦¿à¦—à§à§°à¦¸à§à¦¤ তথà§à¦¯" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "বিনà§à¦¯à¦¾à¦¸ বৈধ নয়" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "তà§à§°à§à¦Ÿà¦¿à¦ªà§‚à§°à§à¦£ নথিপতà§à§°-হà§à¦¯à¦¾à¦¨à§à¦¡à¦²" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "নথিপতà§à§°à§‡à§° মাপ অতà§à¦¯à¦¾à¦§à¦¿à¦• বড়" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ডিভাইসে অবশিষà§à¦Ÿ ফাà¦à¦•া সà§à¦¥à¦¾à¦¨ নাই" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à§° পাঠযোগà§à¦¯ নথিপতà§à§°-সিসà§à¦Ÿà§‡à¦®" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "অবৈধ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "নথিপতà§à§° খোলা নয়" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "খোলা অবসà§à¦¥à¦¾ বৈধ নয়" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "বà§à¦¯à¦¬à¦¹à¦¾à§°à§‡à§° অধিকাৰ পà§à§°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• সংখà§à¦¯à¦• নথিপতà§à§° খোলা অবসà§à¦¥à¦¾à§Ÿ আছে" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "নথিপতà§à§°à§‡à§° সমাপà§à¦¤à¦¿" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ডিৰেকà§à¦Ÿà§°à¦¿ নয়" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "কৰà§à¦® বৰà§à¦¤à¦®à¦¾à¦¨à§‡ চলমান" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "কৰà§à¦®à§‡ বà§à¦¯à¦¾à¦˜à¦¾à¦¤" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "নথিপতà§à§° বিদà§à¦¯à¦®à¦¾à¦¨" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "লà§à¦ª লিঙà§à¦• চিনাকà§à¦¤ কৰা হয়েছে" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "কৰà§à¦® সঞà§à¦šà¦¾à¦²à¦¨à§‡à§° অনà§à¦®à¦¤à¦¿ নাই" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "à¦à¦•টি ডিৰেকà§à¦Ÿà§°à¦¿" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Not enough memory" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "হোসà§à¦Ÿ পোৱা নাযায়" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "হোসà§à¦Ÿ-নেম বৈধ নয়" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "হোসà§à¦Ÿà§‡à§° ঠিকানা অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "লগ-ইন বà§à¦¯à§°à§à¦¥" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "কৰà§à¦® বাতিল" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ডিৰেকà§à¦Ÿà§°à¦¿ বà§à¦¯à¦¸à§à¦¤" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ডিৰেকà§à¦Ÿà§°à¦¿ ফাà¦à¦•া নয়" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• লিঙà§à¦•" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à§° পাঠযোগà§à¦¯ নথিপতà§à§°-সিসà§à¦Ÿà§‡à¦®" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "à¦à¦• নথিপতà§à§°-সিসà§à¦Ÿà§‡à¦® উপসà§à¦¥à¦¿à¦¤ নয়" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "নাম অতà§à¦¯à¦¾à¦§à¦¿à¦• লমà§à¦¬à¦¾" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "পৰিসেবা উপলবà§à¦§ নয়" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "অনà§à§°à§‹à¦§à§‡à§° ফলে পৰিসেবাৰ তথà§à¦¯ অবচিত হবে" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "পà§à§°à¦Ÿà§‹à¦•ল সংকà§à§°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "পà§à§°à¦§à¦¾à¦¨ বà§à§°à¦¾à¦‰à¦œà¦¾à§° পোৱা নাযায়" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ডিফলà§à¦Ÿ কৰà§à¦® সংযà§à¦•à§à¦¤ নয়" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL সà§à¦•িমেৰ জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "কমানà§à¦¡-লাইন বিশà§à¦²à§‡à¦·à¦£ কৰতে বà§à¦¯à§°à§à¦¥" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "কমানà§à¦¡ আৰমà§à¦­ কৰতে বà§à¦¯à§°à§à¦¥" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "সময়সীমা অতিকà§à§°à¦¾à¦¨à§à¦¤" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "নেম-সাৰà§à¦­à¦¾à§° সংকà§à§°à¦¾à¦¨à§à¦¤ সমসà§à¦¯à¦¾" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "ৰিসোৰà§à¦¸ লক কৰা অবসà§à¦¥à¦¾à§Ÿ" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ফাংশান কল অবচিত" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "অবৈধ নথিপতà§à§°à§‡à§° নাম" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "সিমà§à¦¬à¦²à¦¿à¦• লিঙà§à¦• নয়" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "অজà§à¦žà¦¾à¦¤ সমসà§à¦¯à¦¾" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u বাইট" msgstr[1] "%u বাইট" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f কিলোবাইট" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f মেগাবাইট" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f গিগাবাইট" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (অবৈধ ইউনিকোড)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ফà§à¦²à¦ªà¦¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ডà§à§°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "মেমৰি সà§à¦Ÿà¦¿à¦•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "কà§à¦¯à¦¾à¦®à§‡à§°à¦¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Root ভলিউম" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "অডিও CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "অজà§à¦žà¦¾à¦¤ ভলিউম" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "নেটৱৰà§à¦• সাৰà§à¦­à¦¾à§°" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ফà§à¦²à¦ªà¦¿ ডà§à§°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ । সমà§à¦­à¦¬à¦¤ ডà§à§°à¦¾à¦‡à¦­à§‡à¦¤ ফà§à¦²à¦ªà¦¿ অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ ।" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ভলিউম মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ । সমà§à¦­à¦¬à¦¤ ডিভাইসেত কোনো মিডিয়া উপসà§à¦¥à¦¿à¦¤ নাই ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "ফà§à¦²à¦ªà¦¿ ডà§à§°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ । সমà§à¦­à¦¬à¦¤ ফà§à¦²à¦ªà¦¿à§° বিনà§à¦¯à¦¾à¦¸ মাউনà§à¦Ÿ কৰাৰ উপযà§à¦•à§à¦¤ নয় ।" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ভলিউম মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ । à¦à¦¨à¦•à§à§°à¦¿à¦ªà§à¦Ÿ কৰা ডà§à§°à¦¾à¦‡à¦­à§‡à§° কà§à¦·à§‡à¦¤à§à§°à§‡ সমà§à¦­à¦¬à¦¤ ভà§à¦² পাসৱৰà§à¦¡ অথবা কি " "পà§à§°à§Ÿà§‹à¦— কৰা হয়েছে ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ । সমà§à¦­à¦¬à¦¤ ভলিউমেৰ বিনà§à¦¯à¦¾à¦¸ মাউনà§à¦Ÿ কৰাৰ উপযà§à¦•à§à¦¤ নয় ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ ফà§à¦²à¦ªà¦¿ ডà§à§°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম আন-মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ । à¦à¦• অথবা অধিক পà§à§°à§‹à¦—à§à§°à¦¾à¦®à§‡à§° দà§à¦¬à¦¾à§°à¦¾ à¦à¦‡ ভলিউমটি " "বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হচà§à¦›à§‡ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউম আন-মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "চাইলà§à¦¡ পà§à§°à¦¸à§‡à¦¸ %d থেকে তথà§à¦¯ পড়তে বà§à¦¯à§°à§à¦¥ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty'ত মাউনà§à¦Ÿ কৰà§à¦® সঞà§à¦šà¦¾à¦²à¦¨à§‡ বà§à¦¯à§°à§à¦¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "চাইলà§à¦¡ পà§à§°à¦¸à§‡à¦¸ থেকে select() দà§à¦¬à¦¾à§°à¦¾ তথà§à¦¯ পড়তে অপà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ সমসà§à¦¯à¦¾ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "মাউনà§à¦Ÿ কৰà§à¦®à§‡à§° জনà§à¦¯ পাসৱৰà§à¦¡ পà§à§°à§‡à§°à¦£ কৰতে বà§à¦¯à§°à§à¦¥ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid()'à§° কà§à¦·à§‡à¦¤à§à§°à§‡ অপà§à§°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ সমসà§à¦¯à¦¾ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "কমানà§à¦¡ আৰমà§à¦­ কৰতে বà§à¦¯à§°à§à¦¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "মিডিয়া বেৰ কৰতে বà§à¦¯à§°à§à¦¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "সংযà§à¦•à§à¦¤ সাৰà§à¦­à¦¾à§° আন-মাউনà§à¦Ÿ কৰতে বà§à¦¯à§°à§à¦¥" #: ../modules/computer-method.c:543 msgid "Network" msgstr "নেটৱৰà§à¦•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "গৃহ" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "নথিপতà§à§°à¦ªà§à§°à¦£à¦¾à¦²à§€" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "অজà§à¦žà¦¾à¦¤ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "উইনà§à¦¡à§‹ নেটৱৰà§à¦•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "দূৰবৰà§à¦¤à§€ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à§°à§‡à§° (%s) পৰিচিতি অজà§à¦žà¦¾à¦¤ ।" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "পà§à§°à¦¥à¦®à¦¬à¦¾à§° কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à§°à§‡ লগ-ইন কৰাৰ সময় à¦à¦‡ ৰকম হয়ে থাকে ।\n" "\n" "দূৰবৰà§à¦¤à§€ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à§° দà§à¦¬à¦¾à§°à¦¾ পà§à§°à§‡à§°à¦¿à¦¤ পৰিচিতি হল %s । à¦à¦—িয়ে চলাৰ পূৰà§à¦¬à§‡ সমà§à¦ªà§‚à§°à§à¦£à§°à§‚পে নিশà§à¦šà¦¿à¦¤ " "হতে সিসà§à¦Ÿà§‡à¦® অà§à¦¯à¦¾à¦¡à¦®à¦¿à¦¨à¦¿à¦¸à§à¦Ÿà§à§°à§‡à¦Ÿà§°à§‡à§° সাথে যোগাযোগ কৰà§à¦¨ ।" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "তথাপি লগ-ইন কৰা হবে" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "লগ-ইন বাতিল" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s'ঠবৈধ বৈশিষà§à¦Ÿà§à¦¯à¦¸à¦¹ নথিপতà§à§° পোৱা নাযায়\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "%s à¦à¦¨à¦­à¦¾à§Ÿà§°à¦¨à¦®à§‡à¦¨à§à¦Ÿ ভেৰিয়েবল দà§à¦¬à¦¾à§°à¦¾ à¦à¦•টি ভিনà§à¦¨ অবসà§à¦¥à¦¾à¦¨ নিৰà§à¦§à¦¾à§°à¦£ কৰà§à¦¨ ।\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "আপনাৰ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ HTTP পà§à§°à¦•à§à¦¸à¦¿ সাৰà§à¦­à¦¾à§°à§‡à§° কà§à¦·à§‡à¦¤à§à§°à§‡ লগ-ইন কৰা আবশà§à¦¯à¦• ।\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" বà§à¦¯à¦¬à¦¹à¦¾à§° কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ লগ-ইন কৰা আবশà§à¦¯à¦• ।\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "আপনাৰ পাসৱৰà§à¦¡ বিনা à¦à¦¨à¦•à§à§°à¦¿à¦ªà¦¶à¦¨à§‡ পà§à§°à§‡à§°à¦¿à¦¤ হবে ।" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "আপনাৰ পাসৱৰà§à¦¡ à¦à¦¨à¦•à§à§°à¦¿à¦ªà¦¶à¦¨à¦¸à¦¹ পà§à§°à§‡à§°à¦¿à¦¤ হবে ।" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s ডোমেইন %s বà§à¦¯à¦¬à¦¹à¦¾à§°à§‡à§° জনà§à¦¯ লগ-ইন কৰা আবশà§à¦¯à¦•\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s বà§à¦¯à¦¬à¦¹à¦¾à§°à§‡à§° জনà§à¦¯ লগ-ইন কৰা আবশà§à¦¯à¦•\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° ডিফলà§à¦Ÿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡à§° জনà§à¦¯ exec আৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "আবশà§à¦¯à¦•ৰূপে কোনো কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ সহযোগে পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ নথিপতà§à§° পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° জনà§à¦¯ " "বà§à¦¯à¦¬à¦¹à§ƒà¦¤ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন । %s পৰামিতিৰ দà§à¦¬à¦¾à§°à¦¾ নথিপতà§à§°à§‡à§° URI উলà§à¦²à¦¿à¦–িত হবে ও পৰামিতি %c " "দà§à¦¬à¦¾à§°à¦¾ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿà§‡à§° IID নিৰà§à¦¦à¦¿à¦·à§à¦Ÿ কৰা হবে ।" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "আবশà§à¦¯à¦•ৰূপে টাৰà§à¦®à¦¿à¦¨à¦¾à¦² পà§à§°à§Ÿà§‹à¦—কাৰী অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনগà§à¦²à¦¿à§° দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦² ।" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনেৰ জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ exec আৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"http\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "সকà§à§°à¦¿à§Ÿ কৰা হলে, \"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"http\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "\"command\" কি'à§° দà§à¦¬à¦¾à§°à¦¾ \"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"aim\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"callto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"ghelp\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"h323\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"https\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"info\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"mailto\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"man\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ \"trash\" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "\"network:///\" location'ত পà§à§°à¦¦à§°à§à¦¶à¦¨à¦¯à§‹à¦—à§à¦¯ DNS-SD'à§° তালিকা, কমা চিহà§à¦¨ দà§à¦¬à¦¾à§°à¦¾ " "বিভাজিত" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD পৰিসেবাৰ জনà§à¦¯ অতিৰিকà§à¦¤ ডোমেইন অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ কৰা হবে" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "সà§à¦¥à¦¾à¦¨à§€à§Ÿ DNS-SD পৰিসেবা পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° পà§à§°à¦£à¦¾à¦²à§€" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "সমà§à¦­à¦¬ মান \"merged\", \"separate\" ও \"disabled\" ।" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "পà§à§°à¦•à§à¦¸à¦¿ সাৰà§à¦­à¦¾à§°à§‡à§° সংযোগ অনà§à¦®à§‹à¦¦à¦¨ কৰা হবে" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿ পà§à§°à¦•à§à¦¸à¦¿ বিনà§à¦¯à¦¾à¦¸à§‡à§° URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ইনà§à¦Ÿà¦¾à§°à¦¨à§‡à¦Ÿà§‡à§° মাধà§à¦¯à¦®à§‡ HTTP বà§à¦¯à¦¬à¦¹à¦¾à§°à§‡à§° সময় পà§à§°à¦•à§à¦¸à¦¿ সংকà§à§°à¦¾à¦¨à§à¦¤ বৈশিষà§à¦Ÿà§à¦¯ সকà§à§°à¦¿à§Ÿ কৰা হবে" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP পà§à§°à¦•à§à¦¸à¦¿à§° হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿ পাসৱৰà§à¦¡" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীৰ নাম" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "মান true (সতà§à¦¯) হলে পà§à§°à¦•à§à¦¸à¦¿ সাৰà§à¦­à¦¾à§°à§‡à§° সাথে সংযোগেৰ জনà§à¦¯ অনà§à¦®à§‹à¦¦à¦¨ আবশà§à¦¯à¦• । বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীৰ " "নাম/পাসৱৰà§à¦¡ জà§à¦Ÿà¦¿ \"/system/http_proxy/authentication_user\" ও \"/system/" "http_proxy/authentication_password\" দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় ।" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "পà§à§°à¦•à§à¦¸à¦¿-বিহীন হোসà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿à§° কà§à¦·à§‡à¦¤à§à§°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à§° জনà§à¦¯ পà§à§°à¦¯à§‹à¦œà§à¦¯ পাসৱৰà§à¦¡" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "পà§à§°à¦•à§à¦¸à¦¿ বিনà§à¦¯à¦¾à¦¸ মোড" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS পà§à§°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "নিৰাপদ HTTP পà§à§°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "নিৰাপদ HTTP পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "পà§à§°à¦•à§à¦¸à¦¿ বিনà§à¦¯à¦¾à¦¸ মোড নিৰà§à¦¬à¦¾à¦šà¦¨ কৰà§à¦¨ । সমৰà§à¦¥à¦¿à¦¤ মান হল \"none\", \"manual\", \"auto" "\" ।" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম ।" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম ।" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "নিৰাপদ HTTP পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম ।" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "socks পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম ।" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ \"/system/http_proxy/host\" দà§à¦¬à¦¾à§°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় ।" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ \"/system/proxy/ftp_host\" দà§à¦¬à¦¾à§°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় ।" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ \"/system/proxy/secure_host\" দà§à¦¬à¦¾à§°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় ।" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ \"/system/proxy/socks_host\" দà§à¦¬à¦¾à§°à¦¾ " "বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় ।" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "পà§à§°à¦•à§à¦¸à¦¿à§° (যদি সকà§à§°à¦¿à§Ÿ) পৰিবৰà§à¦¤à§‡ সৰাসৰি সংযোগকাৰী হোসà§à¦Ÿà§‡à§° তালিকা à¦à¦‡ কি দà§à¦¬à¦¾à§°à¦¾ " "উলà§à¦²à¦¿à¦–িত হয়েছে । হোসà§à¦Ÿ-নেম, ডোমেইন (পà§à§°à¦¾à§°à¦®à§à¦­à¦¿à¦• ৱইলà§à¦¡à¦•াৰà§à¦¡à¦¸à¦¹ যেমন *.foo.com), IP " "হোসà§à¦Ÿ ঠিকানা (IPv4 ও IPv6) ও নেটমাসà§à¦•সহ নেটৱৰà§à¦• ঠিকানাৰ (যেমন 192.168.0.0/24) " "মান à¦à¦‡ কà§à¦·à§‡à¦¤à§à§°à§‡ অনà§à¦¤à§°à§à¦­à§à¦•à§à¦¤ কৰা যাবে ।" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "পà§à§°à¦•à§à¦¸à¦¿ কনফিগাৰ কৰাৰ জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মান পà§à§°à¦¸à§à¦¤à§à¦¤à¦•াৰী URL ।" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à§° কৰা হবে" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP পà§à§°à¦•à§à¦¸à¦¿à§° কà§à¦·à§‡à¦¤à§à§°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à§° জনà§à¦¯ পà§à§°à¦¯à§‹à¦œà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীৰ নাম ।" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ৱৰà§à¦•-গà§à§°à§à¦ª" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰী যে Windows নেটৱৰà§à¦•িং ৱৰà§à¦•গà§à§°à§à¦ª অথবা ডোমেইনেৰ অংশ । নতà§à¦¨ ৱৰà§à¦•গà§à§°à§à¦ª " "সমà§à¦ªà§‚à§°à§à¦£à§°à§‚পে সকà§à§°à¦¿à§Ÿ কৰাৰ জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীকে সমà§à¦­à¦¬à¦¤ লগ-আউট কৰে পà§à¦¨à§°à¦¾à§Ÿ লগ-ইন কৰতে হবে ।" gnome-vfs-2.24.4/po/POTFILES.skip0000644000175000001440000000054211334251016013151 00000000000000modules/efs-method.c imported/neon/ne_207.c imported/neon/ne_auth.c imported/neon/ne_basic.c imported/neon/ne_compress.c imported/neon/ne_gnutls.c imported/neon/ne_locks.c imported/neon/ne_openssl.c imported/neon/ne_props.c imported/neon/ne_redirect.c imported/neon/ne_request.c imported/neon/ne_socket.c imported/neon/ne_xml.c imported/neon/ne_xmlreq.c gnome-vfs-2.24.4/po/de.po0000644000175000001440000014164311334251016011774 00000000000000# German gnome-vfs translation. # Copyright (C) 1999-2004 Free Software Foundation, Inc. # Matthias Warkus , 2000. # Christian Meyer , 2002. # Christian Neumair , 2002-2004. # Hendrik Richter , 2004, 2005, 2006, 2007, 2008. # Hendrik Brandt , 2005. # Christian Kirbach , 2009. # # TODO: Somebody who's familiar to CDE's terminology needs to sync the # CDE-specific strings up with CDE msgid "" msgstr "" "Project-Id-Version: gnome-vfs HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-09-29 23:53+0200\n" "PO-Revision-Date: 2009-09-29 13:35+0200\n" "Last-Translator: Christian Kirbach \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660-Datenträger" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u enthält NUL-Zeichen." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u enthält keinen Methodennamen." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u enthält keinen Optionsendmarker." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u hat unbekannte Optionen %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u enthält keinen Modulnamen." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Die Konfigurationsdatei »%s« wurde nicht gefunden: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d Analyse abgebrochen." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS-Netzwerkdatenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatisch erkannter Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM-Laufwerk" # CHECK #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD-Digital-Audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Hardware-Gerätedatenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MS-DOS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CD-ROM-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs-CDROM-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Systemdatenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Speicherdatenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS-Netzwerkdatenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Freigegebener Windows-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris-/BSD-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs-Solaris-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs-Solaris-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Temporärer Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Erweiterter DOS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows-VFAT-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS-Linux-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS-Datenträger" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Unbekannt" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-Datenträger" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskettenlaufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact-Flash-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory-Stick-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart-Media-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ZIP-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "USB-Stick-Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s Musik-Player" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Digitale Kamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Laufwerk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Externes %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "CD-R-Rohling" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-ROM-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "CD-RW-Rohling" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "DVD-RAM-Rohling" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "DVD-R-Rohling" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "DVD-RW-Rohling" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "DVD+R-Rohling" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "DVD+RW-Rohling" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW-Medium" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio-CD" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s entfernbarer Datenträger" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Datenträger" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Unbekannter Vorgangstyp %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "" "Es konnte keine Weiterleitung für den offenen GIOChannel angelegt werden: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Unbekannter Auftragstyp %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Vorgang gestoppt" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Veraltete Funktion. Änderungen an der MIME-Datenbank durch den Benutzer " "werden nicht mehr unterstützt." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Syntaxanalyse nicht möglich: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Weitere Syntaxanalysefehler werden ignoriert." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Kein Fehler" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Datei nicht gefunden" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Allgemeiner Fehler" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Interner Fehler" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ungültige Parameter" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nicht unterstützter Vorgang" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "E/A-Fehler" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Daten beschädigt" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format ungültig" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Fehlerhafter Dateideskriptor" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Datei zu groß" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Kein Speicherplatz auf Gerät verfügbar" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Dateisystem schreibgeschützt" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI ungültig" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Datei nicht geöffnet" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Öffnungsmodus ungültig" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Zugriff verweigert" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Zu viele Dateien geöffnet" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Dateiende" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Kein Verzeichnis" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Vorgang läuft" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Vorgang unterbrochen" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Datei existiert" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Ringschluss bei Verknüpfungen entdeckt" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Vorgang nicht erlaubt" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Ist ein Verzeichnis" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nicht genügend Speicher" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Rechner nicht gefunden" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Rechnername ungültig" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Rechner hat keine Adresse" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Anmeldung fehlgeschlagen" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Vorgang abgebrochen" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Verzeichnis belegt" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Verzeichnis nicht leer" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Zu viele Verknüpfungen" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Dateisystem schreibgeschützt" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nicht auf demselben Dateisystem" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Name zu lang" # CHECK - erreichbar <=> verfügbar #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Dienst nicht erreichbar" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Anfrage lässt Dienstdaten veralten" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokollfehler" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Master-Browser konnte nicht gefunden werden" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Keine Vorgabeaktion festgelegt" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Kein Handler für URL-Schema" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Fehler beim Analysieren der Befehlszeilensyntax" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Fehler beim Ausführen des Befehls" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Zeitüberschreitung" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Nameserver-Fehler" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Die Ressource ist gesperrt" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Veraltete Funktion aufgerufen" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ungültiger Dateiname" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Kein symbolischer Link" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Unbekannter Fehler" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u Byte" msgstr[1] "%u Byte" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ungültiger Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskette" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" # CHECK: oder ist »Diskette« gemeint? #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Datenträger" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-Laufwerk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-Laufwerk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Speicher-Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart-Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" # CHECK - Wurzeldatenträger ? #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root-Datenträger" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio-CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Unbekannter Datenträger" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Netzwerk-Server" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Das Diskettenlaufwerk konnte nicht eingebunden werden. Vermutlich befindet " "sich keine Diskette im Laufwerk." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Der Datenträger konnte nicht eingebunden werden. Vermutlich befindet sich " "kein Medium im Gerät." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Das Diskettenlaufwerk konnte nicht eingebunden werden. Vermutlich liegt die " "Diskette in einem nicht einbindbaren Format vor." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Der Datenträger konnte nicht eingebunden werden. Falls es sich hierbei um " "einen verschlüsselten Datenträger handelt, wurde das falsche Passwort " "angegeben." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Der gewählte Datenträger konnte nicht eingebunden werden. Vermutlich liegt " "der Datenträger in einem nicht einbindbaren Format vor." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Das gewählte Diskettenlaufwerk konnte nicht eingebunden werden." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Der gewählte Datenträger konnte nicht eingebunden werden." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Der gewählte Datenträger konnte nicht ausgehängt werden, da noch mindestens " "ein Programm auf ihn zugreift." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Der gewählte Datenträger konnte nicht ausgehängt werden." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Daten konnte nicht von Kindprozess %d (%s) gelesen werden" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Der Prozess zum Einbinden konnte in einem PTY nicht ausgeführt werden" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Unerwarteter Fehler in select() beim Lesen von Daten aus Kindprozess (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Das Passwort konnte nicht an den Einbindeprozess gesendet werden." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Unerwarteter Fehler in waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Befehl konnte nicht ausgeführt werden" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Medium konnte nicht ausgeworfen werden" # CHECK #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Verbundener Server konnte nicht ausgehängt werden" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Netzwerk" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Persönlicher Ordner" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Dateisystem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GNOMEVFSSeekPosition %d unbekannt" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows-Netzwerk" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Die Identität des entfernten Computers (%s) ist unbekannt." # CHECK #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Dies passiert, wenn Sie sich das erste Mal an einem Computer anmelden.\n" "\n" "Die vom entfernten Computer übermittelte Identität ist %s. Kontaktieren Sie " "den Systemadministrator, falls Sie sich nicht sicher sind, ob es sicher ist, " "fortzufahren." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Dennoch anmelden" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Nicht anmelden" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Es konnte keine gültige Einstellung bei %s gefunden werden\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Verwenden Sie die Umgebungsvariable %s, um einen anderen Ort festzulegen.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Ihr HTTP-Proxy verlangt, dass Sie sich anmelden.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Sie müssen sich anmelden, um auf »%s« zuzugreifen.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Ihr Passwort wird unverschlüsselt übertragen." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Ihr Passwort wird verschlüsselt übertragen." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Sie müssen sich anmelden, um auf die %s-Domäne %s zuzugreifen\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Sie müssen sich anmelden, um auf %s zuzugreifen\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Vorgabeanwendung für Ansichtskomponenten" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Vorgabe-Terminal-Anwendung" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec-Argument für Vorgabe-Terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Die zum Anzeigen von Dateien, die eine Ansichtskomponente erforderlich " "machen, verwendete Anwendung. Der Parameter %s wird durch die Dateiadresse, " "der Parameter %d durch die Komponenten-IID ersetzt." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Die Vorgabe-Terminal-Anwendung, die für Anwendungen verwendet wird, die ein " "Terminal erforderlich machen." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Das an die Vorgabe-Terminal-Anwendung zu übergebende exec-Argument." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Den Befehl in einem Terminal ausführen" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Der zum Handhaben von »aim«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Der zum Handhaben von »callto«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Der zum Handhaben von »ghelp«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Der zum Handhaben von »h323«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Der zum Handhaben von »http«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Der zum Handhaben von »https«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Der zum Handhaben von »info«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Der zum Handhaben von »mailto«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Der zum Handhaben von »man«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Der zum Handhaben von »trash«-URLs verwendete Befehl, falls aktiviert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Der Handler für »aim«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Der Handler für »callto«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Der Handler für »ghelp«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Der Handler für »h323«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Der Handler für »http«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Der Handler für »https«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Der Handler für »info«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Der Handler für »mailto«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Der Handler für »man«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Der Handler für »trash«-URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »aim«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »callto«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »ghelp«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »h323«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »http«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »https«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »info«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »mailto«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »man«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene " "Programm »trash«-URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ " "handhaben soll, in einem Terminal ausgeführt." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Soll der angegebene Befehl »aim«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Soll der angegebene Befehl »callto«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Soll der angegebene Befehl »ghelp«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Soll der angegebene Befehl »h323«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Soll der angegebene Befehl »http«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Soll der angegebene Befehl »https«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Soll der angegebene Befehl »info«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Soll der angegebene Befehl »mailto«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Soll der angegebene Befehl »man«-URLs handhaben?" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Soll der angegebene Befehl »trash«-URLs handhaben?" # CHECK #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Durch Kommata unterteilte Liste der DNS-SD-Domänen, die am Netzwerk-" "Speicherort »network:///« angezeigt werden sollen." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Zusätzlich nach DNS-SD-Diensten zu durchsuchende Domänen" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Legt fest, wie der lokale DNS-SD-Dienst angezeigt werden soll" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Zulässige Werte: »merged«, »separate« sowie »disabled«." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Verbindungen mit dem Proxy-Server legitimieren" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL zur automatischen Proxy-Konfiguration" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Sollen die Proxy-Einstellungen zum HTTP-Zugriff per Internet verwendet " "werden?" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Rechnername des FTP-Proxys" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port am FTP-Proxy" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Rechnername des HTTP-Proxys" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Passwort am HTTP-Proxy" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port am HTTP-Proxy" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Benutzername am HTTP-Proxy" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Legt fest, ob Verbindungen mit dem Proxy-Server legitimiert werden müssen. " "Hierbei werden die Werte von »/system/http_proxy/authentication_user« und »/" "system/http_proxy/authentication_password« als Benutzername bzw. Passwort " "verwendet." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Nicht-Proxy-Rechner" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Zur HTTP-Proxy-Legitimation zu übergebendes Passwort" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxy-Konfigurationsmodus" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Rechnername des Socks-Proxys" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port am SOCKS-Proxy" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Rechnername des sicheren HTTP-Proxys" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port am sicheren HTTP-Proxy" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Legt den Proxy-Konfigurationsmodus fest. Zulässige Werte: »none« (keiner), " "»manual« (manuell) sowie »auto« (automatisch)." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Der Rechnername des FTP-Proxys." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Der Rechnername des HTTP-Proxys." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Der Rechnername des sicheren HTTP-Proxys." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Der Rechnername des Socks-Proxys." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "Der Proxy-Port am von »/system/http_proxy/host« festgelegten Rechner." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Der Proxy-Port am von »/system/http_proxy/ftp_host« festgelegten Rechner." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Der Proxy-Port am von »/system/http_proxy/secure_host« festgelegten Rechner." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Der Proxy-Port am von »/system/http_proxy/socks_host« festgelegten Rechner." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Dieser Schlüssel enthält eine Liste der Rechner, mit denen eine " "Direktverbindung aufgebaut werden soll, also nicht via Proxy (falls aktiv). " "Als Werte sind Rechnernamen, Domänen (per Wildcard, z.B. *.foo.de), IP-" "Rechneradresse (sowohl IPv4 als auch IPv6) und Netzwerkadressen mit einer " "Netzmaske (der Form 192.168.0.0/24) zulässig." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL, die Proxy-Konfigurationswerte liefert." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP-Proxy verwenden" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Zur HTTP-Proxy-Legitimation zu übergebender Benutzername." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-Arbeitsgruppe" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Die Windows-Netzwerkarbeitsgruppe oder -domäne zu der der Benutzer gehört. " "Damit eine neue Arbeitsgruppe vollständig übernommen werden kann, muss sich " "der Benutzer ab- und wieder anmelden." #~ msgid "Could not initialize Bonobo" #~ msgstr "Bonobo konnte nicht initialisiert werden" #~ msgid "Could not initialize gnome vfs" #~ msgstr "GNOME-VFS konnte nicht initialisiert werden" #~ msgid "Standard Moniker factory" #~ msgstr "Standard-Moniker-Fabrik" #~ msgid "file MonikerExtender" #~ msgstr "Datei-MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "Allgemeiner GNOME-VFS-Moniker" #~ msgid "generic file moniker" #~ msgstr "Allgemeiner Datei-Moniker" #~ msgid "Display SCSI drives" #~ msgstr "SCSI-Laufwerke anzeigen" #~ msgid "Display SCSI optical drives" #~ msgstr "Optische SCSI-Laufwerke anzeigen" #~ msgid "Display drives with removable media" #~ msgstr "Wechsellaufwerke anzeigen" #~ msgid "Display external drives" #~ msgstr "Externe Laufwerke anzeigen" #~ msgid "Display internal hard drives" #~ msgstr "Interne Festplatten anzeigen" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Legt fest, ob optische SCSI-Laufwerke angezeigt werden sollen, auch wenn /" #~ "system/storage/display_scsi_drives auf FALSE gesetzt ist" #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "" #~ "Legt fest, ob Laufwerke und einbindbare Medien von SCSI-Geräten angezeigt " #~ "werden." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Legt fest, ob Laufwerke und einbindbare Medien von Wechsellaufwerken " #~ "angezeigt werden (z.B. Laufwerke bei denen Medien eingelegt und wieder " #~ "entnommen werden können)" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Legt fest, ob Laufwerke und einhängbare Medien von externen Laufwerken " #~ "angezeigt werden (z.B. Laufwerke die während das System läuft verbunden " #~ "und entfernt werden können)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Legt fest, ob Laufwerke und einhängbare Medien von internen Festplatten " #~ "angezeigt werden (optische Laufwerke, die nicht SCSI sind werden immer " #~ "angezeigt)." gnome-vfs-2.24.4/po/uz@cyrillic.po0000644000175000001440000011627211334251016013675 00000000000000# translation of gnome-vfs to Uzbek # Copyright (C) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # # Nurali Abdurahmonov , 2009. msgid "" msgstr "" "Project-Id-Version: gnome-vfs-2.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-01-03 21:13+0500\n" "PO-Revision-Date: 2009-01-04 21:05+0500\n" "Last-Translator: Nurali Abdurahmonov \n" "Language-Team: Uzbek\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS тармоқ диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Ðвтоматик аниқланган диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM уÑкунаÑи" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Тизим диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Хотира диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS тармоқ диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows бўлишилган диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Вақтинчалик диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Кенгайтирилган DOS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Ðомаълум" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s уÑкунаÑи" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s УÑкунаÑи" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ДиÑковод" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC уÑкунаÑи" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip уÑкунаÑи" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz уÑкунаÑи" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s муÑиқа плейери" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s рақамли камераÑи" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "УÑкуна" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ташқи %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Бўш CD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Бўш CD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Бўш DVD-RAM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Бўш DVD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Бўш DVD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Бўш DVD+R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Бўш DVD+RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Ðудио компакт-диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ДиÑк қиÑми" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ‚ÑžÑ…Ñ‚Ð°Ñ‚Ð¸Ð»Ð´Ð¸" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Хато йўқ" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Файл топилмади" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Умумий хатолик" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Ички хатолик" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Хато параметрлар" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Қўлланилмайдиган операциÑ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "К/Ч хатоÑи" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Маълумот бузуқ" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Файл жуда катта" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "УÑкунада бўш жой қолмади" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Файл тизими фақат ўқишга" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Хато URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Файл очиқ ÑмаÑ" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "РухÑат йўқ" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Жуда кўп файллар очиқ" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Файлнинг охири" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÑмаÑ" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Файл мавжуд" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Хотира етарли ÑмаÑ" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ХоÑÑ‚ топилмади" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Кириб бўлмади" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð±ÐµÐºÐ¾Ñ€ қилинди" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð±Ð°Ð½Ð´" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð±ÑžÑˆ ÑмаÑ" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Боғламалар Ñони жуда кўп" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Файл тизими фақат ўқиш учун" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Ðоми жуда узун" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Хизмат мавжуд ÑмаÑ" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Протокол хатоÑи" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ÐÑоÑий браузерни топиб бўлмади" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Кутиш вақти тугади" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Манба қулфланган" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ðотўғри файл номи" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ðомаълум хатолик" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "" msgstr[1] "" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f КБ" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f МБ" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f ГБ" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (хато юникод)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ДиÑкет" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ДиÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Камера" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Ðудио CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Ðомаълум диÑк қиÑми" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Тармоқ Ñервери" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ДиÑкетни улаб бўлмади. ДиÑководда диÑкета бўлмаÑлиги мумкин." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "ДиÑкетни улаб бўлмади. ДиÑкет улаб бўлмайдиган форматда бўлиши мумкин." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Танланган диÑкетани улаб бўлмади." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Танланган диÑк қиÑмини улаб бўлмади." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "Танланган диÑк қиÑмини узиб бўлмади. Балки, диÑк қиÑмидан бир ёки бир неча даÑтур фойдаланмоқда." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Танланган диÑк қиÑмини узиб бўлмади." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ДиÑкни чиқариб бўлмади" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Уланган Ñерверни узиб бўлмади" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Тармоқ" #: ../modules/computer-method.c:561 msgid "Home" msgstr "" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Файл тизими" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows тармоғи" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Шунга қарамаÑдан тизимга кириш" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Киришни бекор қилиш" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Махфий Ñўз шифрланмаÑдан жўнатилади." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Махфий Ñўз шифрланиб жўнатилади." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Ðндоза терминал даÑтури" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Буйруқни терминалда бажариш" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ПрокÑини автоматик моÑлаш URL'и" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP прокÑи хоÑÑ‚ номи" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP прокÑи порти" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP прокÑи хоÑÑ‚ номи" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP прокÑи махфий Ñўзи" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP прокÑи порти" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP прокÑи фойдаланувчи номи" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "ПрокÑини моÑлаш уÑули" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS прокÑи хоÑÑ‚ номи" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS прокÑи порти" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "ХавфÑиз HTTP прокÑи хоÑÑ‚ номи" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "ХавфÑиз HTTP прокÑи порти" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP прокÑидан фойдаланиш" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ишчи гуруҳи" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" gnome-vfs-2.24.4/po/bs.po0000644000175000001440000012132011334251016011776 00000000000000# translation of gnome-vfs.HEAD.po to Bosnian # Copyright (C) 2002 # This file is distributed under the same license as the gnome-vfs package. # Samir Marić , 2002. # Kenan Hadžiavdić , 2004. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.bs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-09-10 19:51+0200\n" "Last-Translator: Kenan Hadžiavdić \n" "Language-Team: Bosnian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3.1\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" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "Nisam mogao inicijalizirati Bonobo" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "Nisam mogao inicijalizirati gnome vfs" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "ISO 9660 disk" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d sadrži NUL znakove." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d ne sadrži ime metode." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d nema zavrÅ¡nu oznaku opcija." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%d ima nepoznate opcije %s." #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d ne sadrži ime modula." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Datoteka sa podeÅ¡avanjima `%s' nije pronaÄ‘ena: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "AFFS disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "AFS mrežni disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "Automatski prepoznat disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "CD-ROM ureÄ‘aj" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "CD digitalni zvuk" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "Disk na hardverskom ureÄ‘aju" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Ext2 linux disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Ext3 linux disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "MSDOS disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "MacOS disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "CDROM disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "JFS disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Windows NT disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "Sistemski disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "Memorijski disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Minix disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "NFS mrežni disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Netware disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "ReiserFS linux disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "Dijeljeni Windows disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "SuperMount disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "DVD disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Udfs solaris disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Pcfs solaris disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "UnaprijeÄ‘eni DOS disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Windows VFAT disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Xenix disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "XFS linux disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "XIAFS disk" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Nepoznato" #: libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Nepoznat tip operacije %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ne mogu napraviti cijev za otvaranje GIOChannel-a: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Nepoznata vrsta posla %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "Operacija zaustavljena" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Zastarjela funkcija. KorisniÄke izmjene u MIME bazi podataka nisu viÅ¡e " "podržane." #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Nisam mogao protumaÄiti: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "Buduće greÅ¡ke u tumaÄenju će biti ignorisane." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Bez greÅ¡ke" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Datoteka nije pronaÄ‘ena" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "NeodreÄ‘ena greÅ¡ka" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Interna greÅ¡ka" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Nevažeći parametri" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "Operacija nije podržana" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "I/O greÅ¡ka" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Korumpirani podaci" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Nevažeći oblik" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Neispravan držaÄ datoteke" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Datoteka je prevelika" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Nema viÅ¡e mjesta na ureÄ‘aju" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "DatoteÄni sistem samo za Äitanje" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "Nevažeći URI" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Datoteka nije otvorena" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Nevažeći naÄin otvaranja" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Pristup odbijen" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "PreviÅ¡e otvorenih datoteka" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Kraj datoteke" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Nije direktorij" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Operacija u toku" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "Operacija prekinuta" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Datoteka postoji" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "PronaÄ‘eni linkovi u petlji" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Operacija nije dopuÅ¡tena" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Je direktorij" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Nema dovoljno memorije" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "RaÄunar nije pronaÄ‘en" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Nevažeće ime raÄunara" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "RaÄunar nema adresu" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Prijava nije uspjela" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "Operacija otkazana" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Direktorij je zauzet" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Direktorij nije prazan" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "PreviÅ¡e linkova" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "DatoteÄni sistem samo za Äitanje" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Ne na istom datoteÄnom sistemu" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Ime je predugo" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "Servis nije dostupan" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Zahtjev Äini nevažećim podatke servisa" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "GreÅ¡ka u protokolu" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Nisam mogao naći glavni preglednik" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Nije pridružena uobiÄajena akcija" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "Nema rukovatelja za URL Å¡emu" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "GreÅ¡ka tokom tumaÄenja komandne linije" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "GreÅ¡ka tokom pokretanja naredbe" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "Vrijeme je isteklo" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 msgid "Nameserver error" msgstr "GreÅ¡ka u nameserver-u" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "Resurs je zakljuÄan" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "Zastarjeli poziv funkcije" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Nepoznata greÅ¡ka" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajt" msgstr[1] "%u bajta" msgstr[2] "%u bajtova" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (nevažeći unicode)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "Disketa" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "CD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "CD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "Disk" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "USB ureÄ‘aj" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "IEEE1394 ureÄ‘aj" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "CF" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "SD/MMC" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "Memorijski Å¡tapić" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "Smart media" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "Zip ureÄ‘aj" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Kamera" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "DVD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "Root disk" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "ZvuÄni CD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "Nepoznati disk" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "Mrežni server" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ne mogu montirati disketni ureÄ‘aj. Vjerovatno nema diskete u ureÄ‘aju." #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ne mogu montirati disk. Vjerovatno nema medija u ureÄ‘aju." #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ne mogu montirati disketni ureÄ‘aj. Disketa je vjerovatno u formatu koji ne " "može biti montiran." #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ne mogu montirati izabrani disk. Disk je vjerovatno u formatu koji ne može " "biti montiran." #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "Ne mogu montirati izabrani disketni ureÄ‘aj." #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "Ne mogu montirati izabrani disk." #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "Ne mogu demontirati izabrani ureÄ‘aj." #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "NeuspjeÅ¡no pokretanje naredbe" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "Ne mogu izbaciti medij" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "Ne mogu demontirati pripojeni server" #: modules/computer-method.c:545 msgid "Network" msgstr "Mreža" #: modules/computer-method.c:563 msgid "Home" msgstr "PoÄetak" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "DatoteÄni sistem" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Nepoznat GnomeVFSSeekPosition %d" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Windows mreža" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identitet udaljenog raÄunara (%s) je nepoznat." #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ovo se dogaÄ‘a tokom prve prijave na raÄunar.\n" "\n" "Identitet koji je udaljeni raÄunar poslao je %s. Ako se želite potpuno " "osigurati da je sigurno nastaviti, kontaktirajte administratora sistema." #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "Ipak se prijavi" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "Odustani od prijave" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nisam pronaÅ¡ao važeću datoteku s postavkama na %s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Koristite varijablu okoline %s da navedete drugu lokaciju.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Standardna Moniker tvornica" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "datoteka MonikerExtender" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "neodreÄ‘eni Gnome VFS moniker" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "neodreÄ‘eni datoteÄni moniker" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "UobiÄajena aplikacija za pregled komponenti" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "UobiÄajena aplikacija terminala" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "IzvrÅ¡ni argument za uobiÄajeni terminal" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Aplikacija koja se koristi za pregled datoteka Äije gledanje zahtijeva " "komponentu. Parametar %s će biti zamijenjen URI-ima datoteke, a parametar %c " "će biti zamijenjen IID-om komponente." #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "UobiÄajena aplikacija terminala koja se koristi za aplikacije koje " "zahtijevaju terminal." #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "IzvrÅ¡ni argument koji se koristi za uobiÄajenu aplikaciju terminala." #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Pokreni naredbu u terminalu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Naredba koja se koristi za \"aim\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Naredba koja se koristi za \"callto\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Naredba koja se koristi za \"ghelp\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Naredba koja se koristi za \"h323\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Naredba koja se koristi za \"http\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Naredba koja se koristi za \"https\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Naredba koja se koristi za \"info\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Naredba koja se koristi za \"mailto\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Naredba koja se koristi za \"man\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Naredba koja se koristi za \"trash\" URL-ove, ako je omogućeno." #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Rukovatelj \"aim\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Rukovatelj \"callto\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Rukovatelj \"ghelp\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Rukovatelj \"h323\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Rukovatelj \"http\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Rukovatelj \"https\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Rukovatelj \"info\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Rukovatelj \"mailto\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Rukovatelj \"man\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Rukovatelj \"trash\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"aim" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati " "\"callto\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"ghelp" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"h323" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"http" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"https" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"info" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati " "\"mailto\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"man" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Ako je postavljeno, naredba navedena u kljuÄu \"command\" će rukovati \"trash" "\" URL-ovima." #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u " "terminalu." #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Da li će navedena naredba rukovati \"aim\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Da li će navedena naredba rukovati \"callto\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Da li će navedena naredba rukovati \"ghelp\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Da li će navedena naredba rukovati \"h323\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Da li će navedena naredba rukovati \"http\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Da li će navedena naredba rukovati \"https\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Da li će navedena naredba rukovati \"info\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Da li će navedena naredba rukovati \"mailto\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Da li će navedena naredba rukovati \"man\" URL-ovima" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Da li će navedena naredba rukovati \"trash\" URL-ovima" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" "Lista dns-sd domena odvojenih zarezima koja treba biti vidljiva u lokaciji " "mreže." #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "Dodatne domene u kojima će se tražiti dnd-sd servisi" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Kako prikazati lokalni DNS-SD servis" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Moguće vrijednosti su \"merged\", \"separate\" i \"disabled\"." #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Provjeri autentiÄnost veza na proxy serveru" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL za automatsko podeÅ¡avanje proxy-a" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "UkljuÄuje postavke proxy-a kod pristupa protokolu HTTP na internetu." #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Ime raÄunara za FTP proxy" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port za FTP proxy" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Ime raÄunara za HTTP proxy" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Å ifra za HTTP proxy" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port za HTTP proxy" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "KorisniÄko ime za HTTP proxy" #: schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ako je istinito, onda veze na proxy server zahtijevaju provjeru " "autentiÄnosti. KorisniÄko ime/Å¡ifra kombinacija definirana od \"/system/" "http_proxy/authentication_user\" i \"/system/http_proxy/" "authentication_password\"." #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "RaÄunari bez proxy-a" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Å ifra kod provjere autentiÄnosti tokom obavljanja HTTP proxying." #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "NaÄin podeÅ¡avanja proxy-a" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Ime raÄunara za SOCKS proxy" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port za SOCKS proxy" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Ime raÄunara za HTTPS proxy" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port za HTTPS proxy" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Izaberite naÄin podeÅ¡avanja proxy-a. Podržane vrijednosti su \"none\", " "\"manual\", \"auto\"." #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Naziv raÄunara za FTP proxy." #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Naziv raÄunara za HTTP proxy." #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Naziv raÄunara za HTTPS proxy." #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Naziv raÄunara za SOCKS proxy." #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port na raÄunaru koji se koristi kao proxy i koji je definiran u \"/system/" "http_proxy/host\"." #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port na raÄunaru koji se koristi kao proxy i koji je definiran u \"/system/" "proxy/ftp_host\"." #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port na raÄunaru koji se koristi kao proxy i koji je definiran u \"/system/" "proxy/secure_host\"." #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port na raÄunaru koji se koristi kao proxy i koji je definiran u \"/system/" "proxy/socks_host\"." #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ovaj kljuÄ sadrži listu raÄunara koji su direktno pripojeni, a ne preko " "proxy-a (ako je aktivan). Vrijednosti mogu biti imena raÄunara, domene " "(koriÅ¡tenjem poÄetnog džokera kao *.neÅ¡to.com), IP adrese raÄunara (IPv4 i " "IPv6) i mrežne adrese sa netmaskom (neÅ¡to kao 192.168.0.0/24)." #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL koji daje vrijednosti od podeÅ¡avanja proxy-a." #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Koristi HTTP proxy" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "KorisniÄko ime za provjeru autentiÄnosti tokom obavljanja HTTP proxying." #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Radna grupa SMB" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "Radna grupa prozora kojoj pripada korisnik" #~ msgid "CD-ROM Disc" #~ msgstr "CD-ROM disk" #~ msgid "Blank CD-R Disc" #~ msgstr "Prazan CD-R disk" #~ msgid "CD-R Disc" #~ msgstr "CD-R disk" #~ msgid "Blank CD-RW Disc" #~ msgstr "Prazan CD-RW disk" #~ msgid "CD-RW Disc" #~ msgstr "CD-RW disk" #~ msgid "DVD-ROM Disc" #~ msgstr "DVD-ROM disk" #~ msgid "Blank DVD-R Disc" #~ msgstr "Prazan DVD-R disk" #~ msgid "DVD-R Disc" #~ msgstr "DVD-R disk" #~ msgid "Blank DVD-RAM Disc" #~ msgstr "Prazan DVD-RAM disk" #~ msgid "DVD-RAM Disc" #~ msgstr "DVD-RAM disk" #~ msgid "Blank DVD-RW Disc" #~ msgstr "Prazan DVD-RW disk" #~ msgid "DVD-RW Disc" #~ msgstr "DVD-RW disk" #~ msgid "Blank DVD+RW Disc" #~ msgstr "Prazan DVD+RW disk" #~ msgid "DVD+RW Disc" #~ msgstr "DVD+RW disk" #~ msgid "Blank DVD+R Disc" #~ msgstr "Prazan DVD+R disk" #~ msgid "DVD+R Disc" #~ msgstr "DVD+R disk" #~ msgid "Optical Disc" #~ msgstr "OptiÄki disk" #~ msgid "Audio Disc" #~ msgstr "Audio disk" #~ msgid "Compact Flash Media" #~ msgstr "Compact flash media" #~ msgid "Memory Stick Media" #~ msgstr "Memory stick media" #~ msgid "Smart Media Media" #~ msgstr "Smart media media" #~ msgid "SD/MMC Media" #~ msgstr "SD/MMC media" #~ msgid "Floppy Disk" #~ msgstr "Disketa" #~ msgid "Mac OS disk" #~ msgstr "Mac OS disk" #~ msgid "Mac OS X disk" #~ msgstr "Mac OS X disk" #~ msgid "Windows Disk" #~ msgstr "Windows disk" #~ msgid "Linux Disk" #~ msgstr "Linux disk" #~ msgid "File could not be opened: %s" #~ msgstr "Nisam mogao otvoriti datoteku: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "NeuspjeÅ¡no otvaranje datoteke '%s': %s" #~ msgid "File is empty" #~ msgstr "Datoteka je prazna" #~ msgid "Failed to read from file '%s': %s" #~ msgstr "Nisam uspio Äitati iz datoteke '%s': %s" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "unosi desktopa sadrže liniju '%s' koja nije unos, grupa ili komentar" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "datoteka unosa desktopa ne poÄinje važećom startnom grupom" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "unosi desktopa sadrže liniju '%s' koja nije UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "unosi desktopa sadrže nepoznato kodiranje '%s'" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "unosi desktopa nemaju grupu '%s'" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "unosi desktopa nemaju kljuÄ '%s'" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "unosi desktopa sadrže kljuÄ '%s' koji ima vrijednost koja se ne može " #~ "protumaÄiti." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "unosi desktopa ne sadrže prevedenu vrijednost za kljuÄ '%s' sa locale '%" #~ "s'." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "unosi desktopa sadrže nevažeću escape-sekvensu '%s'" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "unosi desktopa sadrže escape-znak na kraju linije" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Vrijednost '%s' se ne može tumaÄiti kao broj." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Vrijednost '%s' se ne može tumaÄiti kao boolean." #~ msgid "Applications" #~ msgstr "Aplikacije" #~ msgid "Cards" #~ msgstr "Kartice" #~ msgid "Files" #~ msgstr "Datoteke" #~ msgid "Folders" #~ msgstr "Direktoriji" #~ msgid "Help" #~ msgstr "Pomoć" #~ msgid "Hosts" #~ msgstr "RaÄunari" #~ msgid "Links" #~ msgstr "Linkovi" #~ msgid "Mail" #~ msgstr "Elektronska poÅ¡ta" #~ msgid "Tools" #~ msgstr "Alati" #~ msgid "Windows" #~ msgstr "Prozori" gnome-vfs-2.24.4/po/bg.po0000644000175000001440000015332611354402652012003 00000000000000# Bulgarian translation for gnome-vfs po-file. # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # Copyright (C) 2010 Free Software Foundation, Inc. # Borislav Aleksandrov , 2002. # Alexander Shopov , 2003, 2005, 2006, 2007, 2008. # Peter "Peshka" Slavov , 2004. # Rostislav Raykov , 2004. # Vladimir Petkov , 2005. # # msgid "" msgstr "" "Project-Id-Version: gnome-vfs master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-25 12:02+0200\n" "PO-Revision-Date: 2010-01-25 12:02+0200\n" "Last-Translator: Alexander Shopov \n" "Language-Team: Bulgarian \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ДиÑк ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u Ñъдържа знаци NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u не Ñъдържа име на метод." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s: %u нÑма краен маркер на опциите" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u има непознати опции %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u не Ñъдържа име на модул." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Файлът Ñ Ð½Ð°Ñтройките „%s“ не е намерен: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d анализирането е преуÑтановено." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "ДÑл AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Мрежови диÑк AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Ðвтоматично заÑичан диÑк" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "ДÑл Btrfs на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "УÑтройÑтво CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Ðудио CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "ДÑл на хардуерно уÑтройÑтво" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "ДÑл EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "ДÑл eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "ДÑл Ext2 на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "ДÑл Ext3 на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "ДÑл Ext4 на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "ДÑл MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "ДÑл BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "ДÑл FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "ДÑл MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Компакт диÑк" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Компакт диÑк Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "ДÑл JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "ДÑл Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "СиÑтемен дÑл" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "ДÑл в паметта" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "ДÑл Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Мрежови диÑк NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "ДÑл NILFS на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "ДÑл на Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "ДÑл Reiser4 на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ДÑл ReiserFS на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Споделен диÑк на Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "ДиÑк за SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "ДиÑк за DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "ДÑл Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "ДÑл Udfs на Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "ДÑл Pcfs на Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "ДÑл SAM-QFS на Sun" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Временен дÑл" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "ДÑл Enhanced DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "ДÑл VFAT на Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "ДÑл Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "ДÑл XFS на Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "ДÑл XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Мрежови диÑк CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "ÐеизвеÑтен" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "ДÑл %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "УÑтройÑтво %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "УÑтройÑтво %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Флопи-диÑково уÑтройÑтво" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "УÑтройÑтво за компактна флаш памет" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "УÑтройÑтво за паметови пръчки" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "УÑтройÑтво за умни ноÑители (smart media)" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "УÑтройÑтво SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "УÑтройÑтво Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "УÑтройÑтво Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "УÑтройÑтво Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Портативно уÑтройÑтво за музика %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Цифров фотоапарат/камера %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "УÑтройÑтво" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Външно %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "ДиÑк CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Празен диÑк CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "ДиÑк CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Празен презапиÑваем диÑк CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "ДиÑк CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "ДиÑк DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Празен диÑк DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "ДиÑк DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Празен диÑк DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "ДиÑк DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Празен диÑк DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "ДиÑк DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Празен диÑк DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "ДиÑк DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Празен диÑк DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "ДиÑк DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Ðудио диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Подвижен дÑл %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ДÑл" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "ÐеизвеÑтен вид Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ðе може да Ñе Ñъздаде програмен канал за отварÑне на GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "ÐеизвеÑтен вид задача %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ОперациÑта е ÑпрÑна" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ОÑтарÑла функциÑ, да не Ñе използва! Ðе Ñе поддържат вече потребителÑки " "промени по базата Ñ Ð´Ð°Ð½Ð½Ð¸ за видове MIME." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ðе може да Ñе анализира: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Следващите грешки при анализиране ще бъдат игнорирани." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "ÐÑма грешка" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Файлът не е намерен" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Обща грешка" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Вътрешна грешка" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ðеправилни параметри" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Ðеподдържана операциÑ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Ð’Ñ…./изх. грешка" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Повредени данни" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Ðевалиден формат" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Лош указател към файл" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Файлът е твърде голÑм" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ÐÑма Ñвободно мÑÑто на уÑтройÑтвото" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Файлова ÑиÑтема Ñамо за четене" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Грешен адреÑ" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Файлът не е отворен" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Режимът на отварÑне не е валиден" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ДоÑтъпът е забранен" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Прекалено много отворени файлове" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Край на файл" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "не е папка" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ИзпълнÑва Ñе операциÑ" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ОперациÑта бе прекъÑната" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Файлът ÑъщеÑтвува" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Открити Ñа зациклени връзки" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ОперациÑта не е позволена" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "е папка" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ÐÑма доÑтатъчно памет" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ХоÑтът не е намерен" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Името на хоÑта не е валидно" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ХоÑтът нÑма адреÑ" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Влизането в ÑиÑтемата е неуÑпешно" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ОперациÑта бе отменена" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Папката е заета" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Папката не е празна" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Прекалено много връзки" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Файлова ÑиÑтема Ñамо за четене" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ðе е в Ñъщата файлова ÑиÑтема" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Името е твърде дълго" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "УÑлугата не е доÑтъпна" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Данните от уÑлугата Ñа оÑтарели вÑледÑтвие на заÑвката" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Протоколна грешка" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ðе може да Ñе открие оÑÐ½Ð¾Ð²Ð½Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ÐÑма аÑоциирано дейÑтвие по подразбиране" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ðе е зададена Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð° обработка на Ñхемата на адреÑа " #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Грешка при анализа на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Грешка при Ñтартирането на програмата" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Времето изтече" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Грешка на Ñървъра за имена" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "РеÑурÑÑŠÑ‚ е заключен" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Това извикване на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ðµ оÑтарÑло и не трÑбва да Ñе ползва" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Грешно име на файл" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ðе е Ñимволна връзка" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ÐеизвеÑтна грешка" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u байт" msgstr[1] "%u байта" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB " #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (грешен Уникод)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ДиÑкета" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ДиÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "УÑтройÑтво за USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "УÑтройÑтво за Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Пръчка памет" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Умен ноÑител (smart media)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Фотоапарат" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "ДиÑк за кореновата папка" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Ðудио CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "ÐеизвеÑтен дÑл" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Мрежови Ñървър" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Флопи-диÑковото уÑтройÑтво не може да бъде монтирано. ВероÑтно нÑма диÑкета " "в уÑтройÑтвото." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ДÑлът не може да бъде монтиран. ВероÑтно нÑма ноÑител в уÑтройÑтвото." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Флопи-диÑковото уÑтройÑтво не може да бъде монтирано. ВероÑтно е във формат, " "който не може да бъде монтиран." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ДÑлът не може да бъде монтиран. Ðко дÑлът е шифрован, причината е невÑрна " "парола или ключ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "ДÑлът не може да бъде монтиран. ВероÑтно е във формат, който не може да бъде " "монтиран." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Избраното флопи-диÑково уÑтройÑтво не може да бъде монтирано." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "ИзбраниÑÑ‚ дÑл не може да бъде монтиран." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "ДÑлът не може да бъде демонтиран. ВероÑтно Ñе използва от една или повече " "програми." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "ИзбраниÑÑ‚ дÑл не може да бъде демонтиран." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ÐеуÑпех при прочитането на данни от Ð´ÑŠÑ‰ÐµÑ€Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑ %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ÐеуÑпех при монтиране/демонтиране в терминално уÑтройÑтво" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Ðеочаквана грешка при извършване на select() докато Ñе четат данни от " "дъщерен Ð¿Ñ€Ð¾Ñ†ÐµÑ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "ÐеуÑпех при пращане на парола към командата за монтиране" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Ðеочаквана грешка при waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ÐеуÑпех при Ñтартирането на програмата" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ÐоÑителÑÑ‚ не може да бъде изваден." #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "СвързаниÑÑ‚ Ñървър не може да бъде демонтиран." #: ../modules/computer-method.c:543 msgid "Network" msgstr "Мрежа" #: ../modules/computer-method.c:561 msgid "Home" msgstr "У дома" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Файлова ÑиÑтема" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ÐеизвеÑтна Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Мрежа на Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ИдентичноÑтта на Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ (%s) е непозната." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Това Ñе Ñлучва, когато влизате за пръв път.\n" "\n" "Изпратената от Ð¾Ñ‚Ð´Ð°Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ идентичноÑÑ‚ е %s. Ðко иÑкате да Ñте " "Ñигурни, че е безопаÑно да продължите, Ñвържете Ñе ÑÑŠÑ ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ " "админиÑтратор." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Влизане въпреки вÑичко" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Отказ на влизането" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ðе е намерен валиден файл Ñ Ð½Ð°Ñтройки в %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Ползвайте променливата на Ñредата %s, за да зададете различно " "меÑтоположение.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Сървърът-поÑредник за HTTP изиÑква да Ñе идентифицирате.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "За да доÑтъпите „%s“, трÑбва да Ñе идентифицирате.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Паролата ви ще бъде пратена некриптирана." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Паролата ви ще бъде пратена криптирана." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "За да доÑтъпите %s, домейн %s, трÑбва да Ñе идентифицирате.\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "За да доÑтъпите %s, трÑбва да Ñе идентифицирате.\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Стандартната програма-компонент за преглед" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Стандартна програма за терминал" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Ðргументът exec за Ñтандартната програма за терминал" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Програмата, коÑто да Ñе използва за преглед на файлове, които изиÑкват " "определен компонент за преглед. Параметърът %s ще бъде заменен Ð¿ÑŠÑ‚Ñ Ð´Ð¾ " "файла, параметъра %c ще бъде заменен Ñ IID на компонента." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Стандартната терминална програма да Ñе използва за програми, които изиÑкват " "терминал." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "Ðргументът за изпълнение (exec) за Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ ÐµÐ¼ÑƒÐ»Ð°Ñ‚Ð¾Ñ€ по подразбиране." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ПуÑкане на програмата в терминал" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „aim“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Програмата обработка на адреÑи от вида „callto“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „ghelp“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „h323“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „http“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „https“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „info“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „mailto“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „man“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Програмата за обработка на адреÑи от вида „trash“, ако е включена." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Програма за обработка на адреÑи от вида „aim“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Програма за обработка на адреÑи от вида „callto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Програма за обработка на адреÑи от вида „ghelp“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Програма за обработка на адреÑи от вида „h323“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Програма за обработка на адреÑи от вида „http“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Програма за обработка на адреÑи от вида „https“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Програма за обработка на адреÑи от вида „info“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Програма за обработка на адреÑи от вида „mailto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Програма за обработка на адреÑи от вида „man“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Програма за обработка на адреÑи от вида „trash“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „aim“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „callto“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „ghelp“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „h323“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „http“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „https“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „info“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „mailto“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „man“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „trash“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде " "изпълнена в терминал." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „aim“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „callto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „ghelp“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „h323“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „http“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „https“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „info“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „mailto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „man“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Дали избраната програма да обработва адреÑи от вида „trash“" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "СпиÑък от домейни тип DNS-SD, разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ð¸, които трÑбва да Ñа " "видими в меÑтоположението „network:///“." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Допълнителни домейни, в които да Ñе търÑÑÑ‚ уÑлуги от тип DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Как да Ñе показва локална уÑлуга от тип DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Възможни ÑтойноÑти Ñа „merged“, „separate“ и „disabled“." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ връзката ÑÑŠÑ Ñървъра-поÑредник" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ÐÐ´Ñ€ÐµÑ Ð·Ð° автоматични наÑтройки на Ñървъра-поÑредник" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Включване на наÑтройки за Ñървър-поÑредник за HTTP в Интернет" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Име на Ñървъра-поÑредник за FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Порт на Ñървъра-поÑредник за FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Име на Ñървъра-поÑредник за HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Парола за Ñървъра-поÑредник за HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Порт на Ñървъра-поÑредник за HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "ПотребителÑко име за Ñървъра-поÑредник за HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ðко е иÑтина, връзките към Ñървъра-поÑредник изиÑкват идентификациÑ. " "КомбинациÑта „потребителÑко име/парола“ е дефинирана в „/system/http_proxy/" "authentication_user“ и „/system/http_proxy/authentication_password“." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Сървъри, които да не минават през Ñървър-поÑредник" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Парола, коÑто да Ñе подава като Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½Ð° Ñървъра-поÑредник за HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Режим на ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ð° Ñървър-поÑредник" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Име на Ñървъра-поÑредник за SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Порт на Ñървъра-поÑредник за SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Име на Ñървъра-поÑредник за HTTPS" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Порт на Ñървъра-поÑредник за HTTPS" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Изберете режим на наÑтройка на Ñървър-поÑредник. Поддържани ÑтойноÑти Ñа " "„none“ — без Ñървър поÑредник, „manual“ — наÑтройка на ръка и „auto“ — " "автоматично наÑтройване." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Името на Ñървъра-поÑредник за връзки по FTP" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Името на Ñървъра-поÑредник за връзки по HTTP" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Името на Ñървъра-поÑредник за връзки по Ñигурен HTTP (HTTPS)" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Името на Ñървъра-поÑредник за връзки по SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/http_host“." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/ftp_host“." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/secure_host“." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/socks_host“." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Този ключ Ñъдържа ÑпиÑък Ñ Ñ…Ð¾Ñтове, които за Ñвързани директно, вмеÑто през " "Ñървър-поÑредник (ако е активно). СтойноÑтите могат да Ñа хоÑтове, домейни " "(*.foo.com), IP адреÑи на хоÑтове(и IPv4, и IPv6) и мрежови адреÑи Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð° " "маÑка (192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "ÐдреÑ, от който Ñе вземат наÑтройките на Ñървъра-поÑредник." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Използване на Ñървър-поÑредник за HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "ПотребителÑко име, което да Ñе подава като идентификациÑ, при използване на " "Ñървър-поÑредник за HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Работна група на SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Работната група или домейнът на Windows, в коÑто потребителÑÑ‚ учаÑтва. " "Възможно е да Ñе наложи да излезете и да влезете в ÑиÑтемата отново, за да " "може тази наÑтройка да влезе в Ñила." gnome-vfs-2.24.4/po/es.po0000644000175000001440000013564611334251016012021 00000000000000# translation of gnome-vfs.HEAD.po to Español # Copyright (C) 2000,2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # Manuel de Vega Barreiro , 2000. # Mauricio Araya Polo , 2001. # Juan Manuel García Molina , 2002, 2003. # Francisco Javier F. Serrador , 2003-2006. # Jorge González , 2007, 2008, 2009. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-09-25 13:59+0000\n" "PO-Revision-Date: 2009-09-28 21:51+0200\n" "Last-Translator: Jorge González \n" "Language-Team: Español \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: UTF-8\n" "First-Translator: Mauricio Araya Polo \n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volumen ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contiene caracteres nulos." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u no contiene un nombre de método." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u no tiene ningún marcador de finalización de opciones." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u tiene opciones desconocidas %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u no contiene ningún nombre de módulo." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "No se encuentra el archivo de configuración `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d abortó el análisis." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volumen AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volumen de red AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volumen auto-detectado" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "Volumen Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Unidad de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD de sonido digital" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volumen de dispositivo hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volumen EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "Volumen eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volumen Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volumen Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "Volumen Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volumen MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volumen BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volumen FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volumen MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volumen CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volumen CDROM HSFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volumen JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volumen Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volumen de sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volumen de memoria" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volumen Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volumen de red NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "Volumen Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volumen Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volumen Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volumen Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volumen compartido de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volumen SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volumen DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volumen Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volumen Solaris UDFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volumen Solaris PCFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volumen Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volumen temporal" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volumen mejorado de DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volumen VFAT de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volumen Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volumen Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volumen XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volumen CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Desconocido" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volumen %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Unidad %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Unidad %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disquetera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Unidad Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Unidad de barra de memoria" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Unidad Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Unidad SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Unidad Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Unidad Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Reproductor de música %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Cámara digital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unidad" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s externo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disco CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disco CD-R virgen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disco CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disco CD-RW virgen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disco CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disco DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disco DVD-RAM virgen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disco DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disco DVD-R virgen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disco DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disco DVD-RW virgen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disco DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disco DVD+R virgen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disco DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disco DVD+RW virgen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disco DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disco de sonido" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volumen extraíble %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volumen" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tipo de operación desconocido %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "No se puede crear el pipe para el GIOChannel abierto: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tipo de trabajo %u desconocido" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "La operación ha sido detenida" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Función obsoleta. Las modificaciones del usuario a la base de datos MIME no " "se soportan a partir de ahora." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "No se puede analizar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "El resto de los errores de análisis serán ignorados." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Sin errores" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "No se ha encontrado el archivo" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Error genérico" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Error interno" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parámetros no válidos" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "La operación no es soportada" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Error de E/S" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Datos corruptos" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formato no válido" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Manejador de archivos erróneo" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "El archivo es demasiado grande" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "No queda espacio en el dispositivo" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistema de archivos de sólo lectura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "La URI no es válida" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "El archivo no está abierto" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "El modo de apertura no es válido" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Acceso denegado" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Hay demasiados archivos abiertos" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fin de archivo" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "No es un directorio" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "La operación está en progreso" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "La operación ha sido interrumpida" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "El archivo ya existe" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Se ha detectado una referencia circular de enlaces" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operación no permitida" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Es un directorio" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "No hay suficiente memoria" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "No se ha encontrado el equipo" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "El nombre del equipo no es válido" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "El equipo no tiene dirección" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Falló en inicio de sesión" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "La operación ha sido cancelada" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "El directorio se encuentra ocupado" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "El directorio no está vacío" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Hay demasiados enlaces" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "El sistema de archivos sólo es de lectura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "No en el mismo sistema de archivos" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "El nombre es demasiado largo" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "El servicio no se encuentra disponible" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "La solicitud hace obsoletos los datos del servicio" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Error de protocolo" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "No se pudo encontrar el examinador principal" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "No hay acción predeterminada asociada" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "No hay manejador para el esquema de URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Error al analizar la línea de comandos" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Error al lanzar comando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Se ha alcanzado el tiempo de espera establecido" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Error del servidor de nombres" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "El recurso está bloqueado" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "La llamada de función es obsoleta" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nombre de archivo inválido" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "No es un enlace simbólico" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Error desconocido" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KiB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MiB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GiB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode inválido)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquete" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disco" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Unidad USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Unidad IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Barra de memoria" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Cámara" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volumen raíz" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD de sonido" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volumen desconocido" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Servidor de red" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Imposible montar la unidad de disquetes. Probablemente no hay un disquete en " "la unidad." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Imposible montar el volumen. Probablemente no introdujo un soporte en el " "dispositivo." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Imposible montar la unidad de disquetes. El disquete probablemente está en " "un formato que no puede ser montado." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Imposible montar el volumen. Si esta es una unidad cifrada, entonces se usó " "una contraseña o clave incorrecta." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Imposible montar el volumen seleccionado. El volumen probablemente está en " "un formato que no puede ser montado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Imposible montar la unidad de disquetes seleccionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Imposible montar el volumen seleccionado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Imposible desmontar el volumen seleccionado. El volumen probablemente lo " "está usando al menos un programa." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Imposible desmontar el volumen seleccionado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Falló al leer los datos desde el proceso hijo %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "No se pudo ejecutar el proceso de montaje en un pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Error inesperado en select() al leer datos desde un proceso hijo (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "No se pudo enviar la contraseña al proceso de montaje." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Error inesperado en waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Falló al iniciar el comando" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "No se pudo expulsar el soporte" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "No se pudo desmontar el servidor conectado" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Red" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Directorio inicial" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistema de archivos" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d desconocida" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Red de Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "La identidad de la computadora remota (%s) es desconocida." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Esto ocurre cuando inicia sesión en una computadora por primera vez.\n" "\n" "La identidad enviada por la computadora remota es %s. Si quiere estar " "absolutamente seguro de que es seguro continuar, consulte con el " "administrador del sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Iniciar sesión de todas formas" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancelar inicio de sesión" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "No se ha encontrado un archivo de configuración válido para %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Use la variable de entorno %s para especificar una ubicación diferente\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Su proxy HTTP requiere que inicie sesión.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Debe iniciar sesión para acceder a «%s».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Su contraseña se transmitirá sin cifrar." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Su contraseña se transmitirá cifrada." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Debe iniciar sesión para acceder al dominio %s %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Debe iniciar sesión para acceder a %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplicación visualizadora del componente predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplicación de terminal predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "El argumento exec para la terminal predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "La aplicación que se usará para ver archivos que requieren un componente " "para verlos. El parámetro %s podrá ser reemplazado por los URI del archivo, " "el parámetro %c será reemplazado por el IID del componente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "La aplicación de terminal predeterminada para las aplicaciones que lo " "requieran." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "El argumento de exec a usar para la aplicación de terminal predeterminada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Ejecutar el comando en un terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"aim\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "El comando usado para manipular los URL \"callto\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"ghelp\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"h323\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"http\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"https\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"info\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "El comando usado para manipular los URL \"mailto\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"man\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "El comando usado para manipular los URL \"trash\", si están activados." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "El manipulador para los URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "El manipulador para los URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "El manipulador para los URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "El manipulador para los URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "El manipulador para los URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "El manipulador para los URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "El manipulador para los URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "El manipulador para los URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "El manipulador para los URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "El manipulador para los URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"command\" (comando) " "debería manipular los URL \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Activar si el programa especificado en la clave \"commando\" (comando) " "debería manipular los URL \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Activar si el programa que manipula este URL debe ejecutarse en un terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Indica si el comando especificado debe manipular los URL \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Lista separada por comas de dominios DNS-SD que deberían ser visibles en el " "lugar \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dominios adicionales en los que buscar servicios DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Cómo mostrar el servicio DNS-SD local" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Los valores posibles son \"merged\" (mezclar), \"separate\" (separar) y " "\"disabled\" (desactivado)." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autenticar conexiones con el servidor proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuración automática del proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Activa los ajustes del proxy al acceder por HTTP a Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nombre del equipo proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Puerto del proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nombre del host del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Contraseña del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Puerto del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Usuario del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Si es «true» (verdadero), las conexiones al servidor proxy requieren " "autenticación. La combinación usuario/contraseña se define en \"/system/" "http_proxy/authentication_user\" y \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Equipos sin proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Contraseña para usar como autenticación al hacer proxy por HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Modo de configuración del proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nombre del equipo del proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Puerto del proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nombre del equipo del proxy HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Puerto del proxy HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Seleccione el modo de configuración del proxy. Los valores soportados son " "\"none\" (ninguno), \"manual\" y \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "El nombre de la máquina por la que se hace proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "El nombre de la máquina por la que se hace proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "El nombre de la máquina por la que se hace proxy HTTP seguro." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "El nombre de la máquina por la que se hace proxy socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "El puerto de la máquina definida por \"/system/HTTP_proxy/equipo\" que hace " "de proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "El puerto de la máquina definida por \"/system/proxy/ftp_equipo\" que hace " "de proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "El puerto de la máquina definida por \"/system/proxy/secure_equipo\" que " "hace de proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "El puerto de la máquina definida por \"/system/proxy/socks_equipo\" que hace " "de proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Esta clave contiene una lista de anfitriones con los que está conectado " "directamente, en vez de por medio del proxy (si está activo). Los valores " "pueden ser nombres de equipo, dominios (usando un comodín auxiliar como *." "foo.com), direcciones IP de anfitriones (tanto IPv4 como IPv6) y direcciones " "de red con una máscara (algo como 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL que proporciona valores de configuración de proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Usar proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Nombre de usuario para pasar como autenticación al hacer proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grupo de trabajo SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "El grupo de trabajo de red de Windows o el dominio del que el usuario es " "parte. Para que un grupo grupo nuevo tenga efecto, el usuario puede " "necesitar cerrar la sesión y entrar de nuevo." gnome-vfs-2.24.4/po/et.po0000644000175000001440000007412111354402652012016 00000000000000# Gnome-VFS eesti keele tõlge. # Estonian translation of Gnome-VFS. # # Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. # Copyright (C) 2007, 2009 The GNOME Project. # # Ilmar Kerm , 2002. # Tõivo Leedjärv , 2003. # Kitt , 2005. # Priit Laes , 2005, 2006. # Ivar Smolin , 2005-2007, 2009. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs MASTER\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-09-25 13:59+0000\n" "PO-Revision-Date: 2009-10-11 15:20+0300\n" "Last-Translator: Ivar Smolin \n" "Language-Team: Estonian \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" msgid "ISO 9660 Volume" msgstr "ISO 9660 seade" #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u sisaldab NUL sümboleid." #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ei sisalda meetodi nime." #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ei sisalda valikute lõputähist." #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u sisaldab tundmatuid valikuid %s." #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ei sisalda mooduli nime." #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Seadistusfaili '%s' ei leitud: %s" #. stop parsing if we failed #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d katkestas parsimise." msgid "AFFS Volume" msgstr "AFFS seade" msgid "AFS Network Volume" msgstr "AFS võrguseade" msgid "Auto-detected Volume" msgstr "Automaattuvastatud seade" msgid "Btrfs Linux Volume" msgstr "Btrfs Linuxi seade" msgid "CD-ROM Drive" msgstr "CD-ROM seade" msgid "CD Digital Audio" msgstr "CD Digital Audio" msgid "Hardware Device Volume" msgstr "Riistvaraline seade" msgid "EncFS Volume" msgstr "EncFS seade" msgid "eCryptfs Volume" msgstr "eCryptfs seade" msgid "Ext2 Linux Volume" msgstr "Ext2 Linuxi seade" msgid "Ext3 Linux Volume" msgstr "Ext3 Linuxi seade" msgid "Ext4 Linux Volume" msgstr "Ext4 Linuxi seade" msgid "MSDOS Volume" msgstr "MSDOS seade" msgid "BSD Volume" msgstr "BSD seade" msgid "FUSE Volume" msgstr "FUSE seade" msgid "MacOS Volume" msgstr "MacOS seade" msgid "CDROM Volume" msgstr "CDROM seade" msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM seade" msgid "JFS Volume" msgstr "JFS seade" msgid "Windows NT Volume" msgstr "Windows NT seade" msgid "System Volume" msgstr "Süsteemne seade" msgid "Memory Volume" msgstr "Mäluseade" msgid "Minix Volume" msgstr "Minix seade" msgid "NFS Network Volume" msgstr "NFS võrguseade" msgid "NILFS Linux Volume" msgstr "NILFS Linuxi seade" msgid "Netware Volume" msgstr "Netware seade" msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linuxi seade" msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linuxi seade" msgid "Windows Shared Volume" msgstr "Windowsi jagatud seade" msgid "SuperMount Volume" msgstr "SuperMount seade" msgid "DVD Volume" msgstr "DVD seade" msgid "Solaris/BSD Volume" msgstr "Solaris/BSD seade" msgid "Udfs Solaris Volume" msgstr "Udfs Solaris seade" msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris seade" msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS seade" msgid "Temporary Volume" msgstr "Ajutine seade" msgid "Enhanced DOS Volume" msgstr "Enhanced DOS seade" msgid "Windows VFAT Volume" msgstr "Windows VFAT seade" msgid "Xenix Volume" msgstr "Xenix seade" msgid "XFS Linux Volume" msgstr "XFS Linuxi seade" msgid "XIAFS Volume" msgstr "XIAFS seade" msgid "CIFS Volume" msgstr "CIFS seade" msgid "Unknown" msgstr "Tundmatu" #, c-format msgid "%s Volume" msgstr "%s seade" msgid "CD-ROM" msgstr "CD-ROM" msgid "CD-R" msgstr "CD-R" msgid "CD-RW" msgstr "CD-RW" msgid "DVD-ROM" msgstr "DVD-ROM" msgid "DVD+R" msgstr "DVD+R" msgid "DVD+RW" msgstr "DVD+RW" msgid "DVD-R" msgstr "DVD-R" msgid "DVD-RW" msgstr "DVD-RW" msgid "DVD-RAM" msgstr "DVD-RAM" msgid "DVD±R" msgstr "DVD±R" msgid "DVD±RW" msgstr "DVD±RW" #, c-format msgid "%s/%s Drive" msgstr "%s/%s ketas" #, c-format msgid "%s Drive" msgstr "%s ketas" msgid "Floppy Drive" msgstr "Flopiketas" msgid "Compact Flash Drive" msgstr "Compact Flash kaart" msgid "Memory Stick Drive" msgstr "Mälupulk" msgid "Smart Media Drive" msgstr "Smart Media kaart" msgid "SD/MMC Drive" msgstr "SD/MMC kaart" msgid "Zip Drive" msgstr "Zip ketas" msgid "Jaz Drive" msgstr "Jaz-seade" msgid "Pen Drive" msgstr "Pen-seade" #, c-format msgid "%s %s Music Player" msgstr "%s %s muusikamängija" #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digikaamera" msgid "Drive" msgstr "Ketas" #, c-format msgid "External %s" msgstr "Väline %s" msgid "CD-ROM Disc" msgstr "CD-ROM plaat" msgid "Blank CD-R Disc" msgstr "Tühi CD-R plaat" msgid "CD-R Disc" msgstr "CD-R plaat" msgid "Blank CD-RW Disc" msgstr "Tühi CD-RW plaat" msgid "CD-RW Disc" msgstr "CD-RW plaat" msgid "DVD-ROM Disc" msgstr "DVD-ROM plaat" msgid "Blank DVD-RAM Disc" msgstr "Tühi DVD-RAM plaat" msgid "DVD-RAM Disc" msgstr "DVD-RAM plaat" msgid "Blank DVD-R Disc" msgstr "Tühi DVD-R plaat" msgid "DVD-R Disc" msgstr "DVD-R plaat" msgid "Blank DVD-RW Disc" msgstr "Tühi DVD-RW plaat" msgid "DVD-RW Disc" msgstr "DVD-RW plaat" msgid "Blank DVD+R Disc" msgstr "Tühi DVD+R plaat" msgid "DVD+R Disc" msgstr "DVD+R plaat" msgid "Blank DVD+RW Disc" msgstr "Tühi DVD+RW plaat" msgid "DVD+RW Disc" msgstr "DVD+RW plaat" msgid "Audio Disc" msgstr "Audioplaat" #, c-format msgid "%s Removable Volume" msgstr "%s eemaldatav seade" msgid "Volume" msgstr "Seade" #, c-format msgid "Unknown operation type %u" msgstr "Tundmatu operatsioonitüüp: %u" #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Avatud GIOChannel kanalile pole võimalik toru luua: %s" #, c-format msgid "Unknown job kind %u" msgstr "Tundmatu töö tüüp %u" msgid "Operation stopped" msgstr "Operatsioon seisatud" msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Aegunud funktsioon. Kasutajapoolne MIME andmebaasi muutmine pole enam " "toetatud." #, c-format msgid "Could not parse: %s" msgstr "Analüüsimine pole võimalik: %s" msgid "More parsing errors will be ignored." msgstr "Järgmisi töötlusvigu eiratakse." #. GNOME_VFS_OK msgid "No error" msgstr "Vigu ei ole" #. GNOME_VFS_ERROR_NOT_FOUND msgid "File not found" msgstr "Faili ei leitud" #. GNOME_VFS_ERROR_GENERIC msgid "Generic error" msgstr "Üldine viga" #. GNOME_VFS_ERROR_INTERNAL msgid "Internal error" msgstr "Sisemine viga" #. GNOME_VFS_ERROR_BAD_PARAMETERS msgid "Invalid parameters" msgstr "Vigased parameetrid" #. GNOME_VFS_ERROR_NOT_SUPPORTED msgid "Unsupported operation" msgstr "Toetamata operatsioon" #. GNOME_VFS_ERROR_IO msgid "I/O error" msgstr "S/V viga" #. GNOME_VFS_ERROR_CORRUPTED_DATA msgid "Data corrupted" msgstr "Vigased andmed" #. GNOME_VFS_ERROR_WRONG_FORMAT msgid "Format not valid" msgstr "Vorming ei ole kehtiv" #. GNOME_VFS_ERROR_BAD_FILE msgid "Bad file handle" msgstr "Vigane failisang" #. GNOME_VFS_ERROR_TOO_BIG msgid "File too big" msgstr "Fail on liiga suur" #. GNOME_VFS_ERROR_NO_SPACE msgid "No space left on device" msgstr "Seadmel pole vaba ruumi" #. GNOME_VFS_ERROR_READ_ONLY msgid "Read-only file system" msgstr "Kirjutamiskaitsega failisüsteem" #. GNOME_VFS_ERROR_INVALID_URI msgid "Invalid URI" msgstr "Vigane URI" #. GNOME_VFS_ERROR_NOT_OPEN msgid "File not open" msgstr "Fail ei ole avatud" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE msgid "Open mode not valid" msgstr "Avamismoodus ei ole kehtiv" #. GNOME_VFS_ERROR_ACCESS_DENIED msgid "Access denied" msgstr "Juurdepääs keelatud" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES msgid "Too many open files" msgstr "Liiga palju avatud faile" #. GNOME_VFS_ERROR_EOF msgid "End of file" msgstr "Faili lõpp" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY msgid "Not a directory" msgstr "Ei ole kataloog" #. GNOME_VFS_ERROR_IN_PROGRESS msgid "Operation in progress" msgstr "Operatsioon on töös" #. GNOME_VFS_ERROR_INTERRUPTED msgid "Operation interrupted" msgstr "Operatsioon katkestatud" #. GNOME_VFS_ERROR_FILE_EXISTS msgid "File exists" msgstr "Fail on juba olemas" #. GNOME_VFS_ERROR_LOOP msgid "Looping links encountered" msgstr "Avastati silmuse moodustavad viidad" #. GNOME_VFS_ERROR_NOT_PERMITTED msgid "Operation not permitted" msgstr "Operatsioon ei ole lubatud" #. GNOME_VFS_ERROR_IS_DIRECTORY msgid "Is a directory" msgstr "On kataloog" #. GNOME_VFS_ERROR_NO_MEMORY msgid "Not enough memory" msgstr "Pole piisavalt mälu" #. GNOME_VFS_ERROR_HOST_NOT_FOUND msgid "Host not found" msgstr "Hosti ei leitud" #. GNOME_VFS_ERROR_INVALID_HOST_NAME msgid "Host name not valid" msgstr "Hosti nimi ei ole kehtiv" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS msgid "Host has no address" msgstr "Hostil puudub aadress" #. GNOME_VFS_ERROR_LOGIN_FAILED msgid "Login failed" msgstr "Tõrge sisselogimisel" #. GNOME_VFS_ERROR_CANCELLED msgid "Operation cancelled" msgstr "Operatsioon katkestatud" #. GNOME_VFS_ERROR_DIRECTORY_BUSY msgid "Directory busy" msgstr "Kataloog on hõivatud" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY msgid "Directory not empty" msgstr "Kataloog ei ole tühi" #. GNOME_VFS_ERROR_TOO_MANY_LINKS msgid "Too many links" msgstr "Liiga palju viiteid" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM msgid "Read only file system" msgstr "Kirjutamiskaitsega failisüsteem" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM msgid "Not on the same file system" msgstr "Pole samas failisüsteemis" #. GNOME_VFS_ERROR_NAME_TOO_LONG msgid "Name too long" msgstr "Nimi on liiga pikk" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE msgid "Service not available" msgstr "Teenus pole kättesaadav" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE msgid "Request obsoletes service's data" msgstr "Päring tühistab teenuse andmed" #. GNOME_VFS_ERROR_PROTOCOL_ERROR msgid "Protocol error" msgstr "Protokolli viga" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER msgid "Could not find master browser" msgstr "Peamist sirvijat ei leitud" #. GNOME_VFS_ERROR_NO_DEFAULT msgid "No default action associated" msgstr "Ühtegi vaikimisi toimingut pole seotud" #. GNOME_VFS_ERROR_NO_HANDLER msgid "No handler for URL scheme" msgstr "URLi skeemile puudub käsitleja" #. GNOME_VFS_ERROR_PARSE msgid "Error parsing command line" msgstr "Viga käsurea töötlemisel" #. GNOME_VFS_ERROR_LAUNCH msgid "Error launching command" msgstr "Viga käsu käivitamisel" #. GNOME_VFS_ERROR_TIMEOUT msgid "Timeout reached" msgstr "Ajapiirang on ületatud" #. GNOME_VFS_ERROR_NAMESERVER msgid "Nameserver error" msgstr "Nimeserveri viga" #. GNOME_VFS_ERROR_LOCKED msgid "The resource is locked" msgstr "Ressurss on lukus" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION msgid "Function call deprecated" msgstr "Funktsioonikutsung on aegunud" #. GNOME_VFS_ERROR_INVALID_FILENAME msgid "Invalid filename" msgstr "Vigased failinimi" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK msgid "Not a symbolic link" msgstr "Ei ole sümbolnimi" msgid "Unknown error" msgstr "Tundmatu viga" #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bait" msgstr[1] "%u baiti" #, c-format msgid "%.1f KB" msgstr "%.1f KB" #, c-format msgid "%.1f MB" msgstr "%.1f MB" #, c-format msgid "%.1f GB" msgstr "%.1f GB" msgid " (invalid Unicode)" msgstr " (vigane Unicode)" msgid "Floppy" msgstr "Flopiketas" msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" msgid "Disk" msgstr "Ketas" msgid "USB Drive" msgstr "USB seade" msgid "IEEE1394 Drive" msgstr "IEEE1394 seade" msgid "CF" msgstr "CF" msgid "SD/MMC" msgstr "SD/MMC" msgid "Memory Stick" msgstr "Mälupulk" msgid "Smart Media" msgstr "Tark meedia (Smart Media)" msgid "Camera" msgstr "Kaamera" msgid "DVD" msgstr "DVD" msgid "Root Volume" msgstr "Juurseade" msgid "Audio CD" msgstr "Audio CD" msgid "Unknown volume" msgstr "Tundmatu seade" msgid "Network server" msgstr "Võrguserver" #. Handle floppy case msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Flopiketast pole võimalik ühendada. Tõenäoliselt pole ketast seadmes." #. All others msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Seadet pole võimalik külge ühendada. Tõenäoliselt pole meediat seadmes." msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Flopiketast pole võimalik külge ühendada. Ketas on tõenäoliselt ühildamatus " "vormingus." #. Probably a wrong password msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Seadet pole võimalik ühendada. Kui tegemist on krüptitud seadmega, siis " "kasutatakse ilmselt vale parooli või võtit." msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Valitud ketast pole võimalik külge ühendada. Ketas on tõenäoliselt " "vormingus, mida pole võimalik külge ühendada." msgid "Unable to mount the selected floppy drive." msgstr "Valitud flopiketast pole võimalik külge ühendada." msgid "Unable to mount the selected volume." msgstr "Valitud ketast pole võimalik külge ühendada." msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Valitud seadet pole võimalik külge ühendada. Seade on tõenäoliselt mõne " "programmi poolt kasutusel." msgid "Unable to unmount the selected volume." msgstr "Ühendust valitud kettaga pole võimalik katkestada." #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Tõrge lapsprotsessilt %d andmete lugemisel (%s)" msgid "Couldn't run mount process in a pty" msgstr "Ühendamisprotsessi pole võimalik pseudoterminalil käivitada" #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Ootamatu viga select() funktsioonis andmete lugemisel lapsprotsessilt (%s)" msgid "Couldn't send password to mount process." msgstr "Ühendamisprotsessile pole võimalik parooli saata." #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Ootamatu viga waitpid() funktsioonis (%s)" msgid "Failed to start command" msgstr "Tõrge käsu käivitamisel" msgid "Unable to eject media" msgstr "Meediat pole võimalik väljastada" msgid "Unable to unmount connected server" msgstr "Ühendust serveriga pole võimalik katkestada" msgid "Network" msgstr "Võrk" msgid "Home" msgstr "Kodu" msgid "Filesystem" msgstr "Failisüsteem" #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Tundmatu GnomeVFSSeekPosition %d" msgid "Windows Network" msgstr "Windows'i võrk" #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Võrguarvuti (%s) identiteet on tundmatu." #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "See juhtub kui sa logid arvutisse esimest korda.\n" "\n" "Kaugarvuti saadetud identiteet on %s. Kui tahad turvalises jätkamises " "täiesti kindel olla, siis võta ühendust süsteemihalduriga." msgid "Log In Anyway" msgstr "Logi siiski sisse" msgid "Cancel Login" msgstr "Loobu sisselogimisest" #. FIXME: we probably shouldn't use printf to output the message #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Asukohast %s ei leitud ühtegi korrektset sätete faili\n" #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Teistsuguse asukoha määramiseks kasuta keskkonnamuutujat %s.\n" #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Sinu HTTP-proxy vajab sisselogimist.\n" #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Sa pead sisse logima, et \"%s\"-ile ligi pääseda.\n" "%s" msgid "Your password will be transmitted unencrypted." msgstr "Sinu parool edastatakse krüpteerimata." msgid "Your password will be transmitted encrypted." msgstr "Sinu parool edastatakse krüptitult." #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Sa pead sisse logima, et ligi pääseda %s-ile domeenis %s\n" #, c-format msgid "You must log in to access %s\n" msgstr "Sa pead sisse logima, et ligi pääseda %s-ile\n" msgid "Default component viewer application" msgstr "Vaikimisi komponentide vaatamise rakendus" msgid "Default terminal application" msgstr "Vaikimisi terminalirakendus" msgid "Exec argument for default terminal" msgstr "Vaikimisi terminalikäivitusargument" #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Rakendus, mida kasutada failide puhul, mille vaatamiseks on vaja kasutada " "komponenti. Parameeter %s asendatakse faili URI'ga, parameeter %c komponendi " "IID'ga." msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Vaikimisi terminalirakendus kasutamiseks terminali vajavate rakenduste jaoks." msgid "The exec argument to use for the default terminal application." msgstr "Vaikimisi terminalirakenduse käivitusargument." msgid "Run the command in a terminal" msgstr "Käivita käsk terminalis" msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Käsk \"aim\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Käsk \"callto\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Käsk \"ghelp\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Käsk \"h323\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Käsk \"http\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Käsk \"https\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Käsk \"info\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Käsk \"mailto\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Käsk \"man\" URLide käsitlemiseks, kui lubatud." msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Käsk \"trash\" URLide käsitlemiseks, kui lubatud." msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URLi käsitleja" msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLi käsitleja" msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLi käsitleja" msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URLi käsitleja" msgid "The handler for \"http\" URLs" msgstr "\"http\" URLi käsitleja" msgid "The handler for \"https\" URLs" msgstr "\"https\" URLi käsitleja" msgid "The handler for \"info\" URLs" msgstr "\"info\" URLi käsitleja" msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLi käsitleja" msgid "The handler for \"man\" URLs" msgstr "\"man\" URLi käsitleja" msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLi käsitleja" msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"aim\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"callto\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"ghelp\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"h323\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"http\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"https\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"info\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"mailto\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"man\" URLe." msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "Tõene, kui \"käsk\" võtmes määratud käsk käsitleb \"trash\" URLe." msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks " "käivitada terminalis ." msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"aim\" URLe" msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"callto\" URLe" msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"ghelp\" URLe" msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"h323\" URLe" msgid "Whether the specified command should handle \"http\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"http\" URLe" msgid "Whether the specified command should handle \"https\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"https\" URLe" msgid "Whether the specified command should handle \"info\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"info\" URLe" msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"mailto\" URLe" msgid "Whether the specified command should handle \"man\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"man\" URLe" msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Kas määratud käsk peaks käsitlema \"trash\" URLe" msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Komadega eraldatud rida DNS-SD domeenidest, mis peaksid olema nähtavad " "võrgukohas \"network:///\"." msgid "Extra domains to look for DNS-SD services in" msgstr "Lisadomeenid DNS-SD teenuste otsimiseks" msgid "How to display local DNS-SD service" msgstr "Kuidas kuvada kohalikku DNS-SD teenust" msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Võimalikud väärtused on \"kokkupandud\", \"eraldatud\" ja \"keelatud\"." msgid "Authenticate proxy server connections" msgstr "Proksiserveri ühenduste autentimine" msgid "Automatic proxy configuration URL" msgstr "Automaatne proksi seadistamise URL" msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Lubab proksi seaded, kui HTTP-le pääsetakse ligi Interneti kaudu." msgid "FTP proxy host name" msgstr "FTP proksiserveri aadress" msgid "FTP proxy port" msgstr "FTP proksi port" msgid "HTTP proxy host name" msgstr "HTTP proksiserveri aadress" msgid "HTTP proxy password" msgstr "HTTP proksi salasõna" msgid "HTTP proxy port" msgstr "HTTP proksi port" msgid "HTTP proxy username" msgstr "HTTP proksi kasutajanimi" msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Kui tõene, siis ühendused proxy-serverisse vajavad autentimist. Kasutajanimi/" "salasõna on defineeritud võtmetega \"/system/http_proxy/authentication_user" "\" ja \"/system/http_proxy/authentication_password\"." msgid "Non-proxy hosts" msgstr "Proksi kasutamiskeeluga serverid" msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Parool, mida HTTP proxile autentimiseks saata." msgid "Proxy configuration mode" msgstr "Proksi seadistusrežiim" msgid "SOCKS proxy host name" msgstr "SOCKS proksiserveri aadress" msgid "SOCKS proxy port" msgstr "SOCKS proksi port" msgid "Secure HTTP proxy host name" msgstr "Turvalise HTTP proksiserveri aadress" msgid "Secure HTTP proxy port" msgstr "Turvalise HTTP proksi port" msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Vali proksi konfiguratsiooni mood. Toetatud väärtused on \"pole\", \"käsitsi" "\", \"automaatne\"." msgid "The machine name to proxy FTP through." msgstr "FTP proxi masina nimi" msgid "The machine name to proxy HTTP through." msgstr "HTTP proxi masina nimi" msgid "The machine name to proxy secure HTTP through." msgstr "Turvalise HTTP proxi masina nimi" msgid "The machine name to proxy socks through." msgstr "Socks proxi masina nimi" msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port, defineeritud \"/system/http_proxy/host\" poolt, mille kaudu proxyt " "kasutatakse." msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port, defineeritud \"/system/proxy/ftp_host\" poolt, mille kaudu proxyt " "kasutatakse." msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port, defineeritud \"/system/proxy/secure_host\" poolt, mille kaudu proxyt " "kasutatakse." msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port, defineeritud \"/system/proxy/socks_host\" poolt, mille kaudu proxyt " "kasutatakse." msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "See võti sisaldab nimekirja hostidest kuhu ühendutakse otse, ilma et " "kasutataks proxyt (isegi kui see on aktiivne). Väärtused võivad olla " "hostinimed, domeenid (kasutades vormi *.foo.com), IP-aadressid (nii IPv6 kui " "IPv6) ja võrguaadressid koos võrgumaskiga (näiteks 192.168.0.0/24)." msgid "URL that provides proxy configuration values." msgstr "URL, mis tagab proxi seadistuste väärtused." msgid "Use HTTP proxy" msgstr "HTTP proksi kasutamine" msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Kasutajanimi mida saadetakse autentimiseks HTTP proxile." msgid "SMB workgroup" msgstr "SMB töögrupp" msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows'i võrgunduse töögrupi või domeeni nimi, kuhu see kasutaja kuulub. " "Selleks et kasutaja saaks täielikult ära kasutada uue töögrupi privileege, " "peaks ta kõigepealt välja ja seejärel uuesti sisse logima." #~ msgid "Could not initialize Bonobo" #~ msgstr "Bonobo'd pole võimalik lähtestada" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Gnome vfs'i pole võimalik lähtestada" #~ msgid "Standard Moniker factory" #~ msgstr "Tavaline Moniker'i factory" #~ msgid "file MonikerExtender" #~ msgstr "fail MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "üldine Gnome VFS moniker" #~ msgid "generic file moniker" #~ msgstr "üldine file moniker" #~ msgid "Display SCSI drives" #~ msgstr "Näita SCSI kettaid" #~ msgid "Display SCSI optical drives" #~ msgstr "Näita SCSI optilisi kettaid" #~ msgid "Display drives with removable media" #~ msgstr "Näita kettaid eemaldatavate andmekandjatega" #~ msgid "Display external drives" #~ msgstr "Näita väliseid kettaid" #~ msgid "Display internal hard drives" #~ msgstr "Näita sisemisi kõvakettaid" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Kas näidata SCSI optilisi kettaid isegi kui /system/storage/" #~ "display_scsi_drives on VÄÄR." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "Kas näidata kettaid ja külgehaagitavaid seadeid SCSI ketastelt." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Kas näidata kettaid ja külgehaagitavaid seadeid eemaldatavate " #~ "andmekandjatega (näiteks kettaid kuhu andmekandjaid saab sisestada ja " #~ "eemaldada)." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Kas näidata kettaid ja külgehaagitavaid seadeid välistelt kõvaketastelt " #~ "(näiteks kettaid mida saab jooksvalt külge ühendada - mille sisestamist " #~ "ja eemaldadamist saab teostada jooksva süsteemiga)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Kas näidata kettaid ja külgehaagitavaid seadeid sisemistelt kõvaketastelt " #~ "(mitte-SCSI optilisi kettaid näidatakse alati)." gnome-vfs-2.24.4/po/cs.po0000644000175000001440000013310311354402652012007 00000000000000# Czech translation of gnome-vfs. # Copyright (C) 2002, 2008 Free Software Foundation. # This file is distributed under the same license as the gnome-vfs package. # # Michal Bukovjan , 2002. # Miloslav Trmac , 2003, 2004, 2005. # Lukas Novotny , 2006. # Jakub Friedl , 2006. # Lucas Lommer . 2008 # Petr Kovar , 2008. # Marek ÄŒernocký , 2010 (just fixes). # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-03-03 19:56+0000\n" "PO-Revision-Date: 2010-03-05 15:49+0100\n" "Last-Translator: Marek ÄŒernocký \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Svazek ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u obsahuje znaky NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u neobsahuje název metody." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nemá znaÄku konce voleb." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u má neznámé volby %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u neobsahuje název modulu." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Soubor s nastavením „%s“ nebyl nalezen: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d zpracovávání pÅ™eruÅ¡eno." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Svazek AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Síťový svazek AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automaticky detekovaný svazek" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Svazek Linuxu Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Mechanika CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Digitální zvuk CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Svazek hardwarového zařízení" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Svazek EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Svazek eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Svazek Linuxu ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Svazek Linuxu ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Svazek Linuxu Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Svazek MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Svazek BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Svazek FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Svazek MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Svazek CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Svazek Hsfs CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Svazek JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Svazek Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Systémový svazek" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Paměťový svazek" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Svazek Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Síťový svazek NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Svazek Linuxu NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Svazek Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Svazek Linuxu Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Svazek Linuxu ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Sdílený svazek Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Svazek SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Svazek DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Svazek Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Svazek Solarisu Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Svazek Solarisu Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Svazek Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "DoÄasný svazek" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Rozšířený svazek DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Svazek Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Svazek Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Svazek Linuxu XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Svazek XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Svazek CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Neznámý" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Svazek %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Mechanika %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Mechanika %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disketová mechanika" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Mechanika Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Mechanika Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Mechanika Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Mechanika SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Mechanika Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Mechanika Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "PÅ™ehrávaÄ hudby %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Digitální fotoaparát %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Mechanika" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Externí %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disk CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Prázdný disk CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disk CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Prázdný disk CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disk CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disk DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Prázdný disk DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disk DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Prázdný disk DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disk DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Prázdný disk DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disk DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Prázdný disk DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disk DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Prázdný disk DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disk DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Zvukový disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "VýmÄ›nný svazek %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Svazek" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Neznámý typ operace %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nemohu vytvoÅ™it rouru pro otevÅ™ení GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Neznámý typ úlohy %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operace zastavena" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Zastaralá funkce. ZmÄ›ny databáze MIME uživatelem již nejsou podporovány." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Nemohu zpracovat: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Další chyby pÅ™i zpracovávání budou ignorovány." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Bez chyb" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Soubor nenalezen" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Obecná chyba" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Interní chyba" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Neplatné parametry" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nepodporovaná operace" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Chyba vstupu/výstupu" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "PoÅ¡kozená data" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Neplatný formát" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Chybný handle souboru" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "PříliÅ¡ velký soubor" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "DoÅ¡lo místo na zařízení" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Systém souborů pouze pro Ätení" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Neplatné URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Soubor nebyl otevÅ™en" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Režim otevÅ™ení je neplatný" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Přístup zamítnut" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "PříliÅ¡ mnoho otevÅ™ených souborů" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Konec souboru" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Není adresář" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Probíhá operace" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operace pÅ™eruÅ¡ena" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Soubor existuje" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Nalezeny odkazy ve smyÄce" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operace není povolena" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Je adresář" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nedostatek pamÄ›ti" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "PoÄítaÄ nenalezen" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Neplatný název poÄítaÄe" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "PoÄítaÄ nemá adresu" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "PÅ™ihlášení selhalo" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operace zruÅ¡ena" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Adresář zaneprázdnÄ›n" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Adresář není prázdný" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "PříliÅ¡ mnoho odkazů" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Systém souborů pouze pro Ätení" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Není na stejném systému souborů" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "PříliÅ¡ dlouhý název" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Služba není k dispozici" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Požadavek Äiní data služby zastaralými" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Chyba protokolu" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Nemohu najít master browser" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Neasociována výchozí akce" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Žádná obsluha pro schéma URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Chyba pÅ™i zpracovávání příkazového řádku" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Chyba pÅ™i spouÅ¡tÄ›ní příkazu" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ÄŒas vyprÅ¡el" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Chyba serveru jmen" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Zdroj je uzamÄen" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Volání funkce zastaralé" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Neplatné jméno souboru" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Není symbolický odkaz" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Neznámá chyba" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajt" msgstr[1] "%u bajty" msgstr[2] "%u bajtů" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (neplatný Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disketa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Mechanika USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Mechanika IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Fotoaparát" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "KoÅ™enový svazek" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Zvukové CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Neznámý svazek" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Síťový server" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Nemohu pÅ™ipojit disketovou mechaniku. V mechanice pravdÄ›podobnÄ› není disketa." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Nemohu pÅ™ipojit svazek. V mechanice pravdÄ›podobnÄ› není médium." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Nemohu pÅ™ipojit disketovou mechaniku. Disketa je pravdÄ›podobnÄ› ve formátu, " "který nelze pÅ™ipojit." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Nemohu pÅ™ipojit svazek. Je-li to Å¡ifrovaný svazek, bylo použito Å¡patné heslo " "nebo klíÄ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Nemohu pÅ™ipojit vybraný svazek. Svazek je pravdÄ›podobnÄ› ve formátu, který " "nelze pÅ™ipojit." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Nemohu pÅ™ipojit vybranou disketovou mechaniku." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Nemohu pÅ™ipojit vybraný svazek." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Nemohu odpojit vybraný svazek. Svazek pravdÄ›podobnÄ› používá nÄ›jaký program." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Nemohu odpojit vybraný svazek." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Nelze Äíst data od procesu potomka %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Nemohu spustit proces mount v pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "NeoÄekávaná chyba v select() pÅ™i Ätení dat z procesu potomka (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Nemohu odeslat heslo procesu mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "NeoÄekávaná chyba v waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Nemohu spustit příkaz" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nemohu vysunout médium" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nemohu odpojit pÅ™ipojený server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Síť" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Doma" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Systém souborů" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Neznámé GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Síť Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identita vzdáleného poÄítaÄe (%s) není známa." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "To se stane, když se k poÄítaÄi pÅ™ihlaÅ¡ujete poprvé.\n" "\n" "Identita odeslaná vzdáleným poÄítaÄem je %s. Pokud si chcete být úplnÄ› " "jisti, že je bezpeÄné pokraÄovat, kontaktujte správce systému." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "PÅ™esto se pÅ™ihlásit" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ZruÅ¡it pÅ™ihlaÅ¡ování" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "NenaÅ¡el jsem platný soubor s nastavením v %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Jiné umístÄ›ní zadejte pomocí promÄ›nné prostÅ™edí %s.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "VaÅ¡e proxy HTTP vyžaduje vaÅ¡e pÅ™ihlášení.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "K přístupu k „%s“ se musíte pÅ™ihlásit.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "VaÅ¡e heslo bude pÅ™eneseno nezaÅ¡ifrované." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "VaÅ¡e heslo bude pÅ™eneseno zaÅ¡ifrované." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "K přístupu k %s doménÄ› %s se musíte pÅ™ihlásit\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "K přístupu k %s se musíte pÅ™ihlásit\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Výchozí aplikace prohlížeÄe komponent" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Výchozí aplikace terminálu" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument exec pro výchozí terminál" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Aplikace, kterou chcete používat k zobrazování souborů, které k zobrazení " "vyžadují komponentu. Parametr %s bude nahrazen URI souboru, parametr %c bude " "nahrazen IID komponenty." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Výchozí aplikace terminálu, kterou používat pro aplikace, které vyžadují " "terminál." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argument exec, který používat pro výchozí aplikaci terminálu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Spustit příkaz v terminálu" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „aim“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „callto“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „ghelp“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „h323“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „http“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „https“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „info“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „mailto“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „man“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Příkaz používaný pro obsluhu URL „trash“, je-li povolen." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Obsluha pro URL „aim“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Obsluha pro URL „callto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Obsluha pro URL „ghelp“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Obsluha pro URL „h323“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Obsluha pro URL „http“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Obsluha pro URL „https“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Obsluha pro URL „info“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Obsluha pro URL „mailto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Obsluha pro URL „man“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Obsluha pro URL „trash“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „aim“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „callto“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „ghelp“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „h323“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „http“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „https“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „info“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „mailto“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „man“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "„True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „trash“." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "„True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL " "spouÅ¡tÄ›n v terminálu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „aim“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „callto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „ghelp“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „h323“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „http“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „https“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „info“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „mailto“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „man“" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Jestli má urÄený příkaz obsluhovat URL „trash“" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Čárkami oddÄ›lený seznam domén DNS-SD, které by mÄ›ly být viditelné v umístÄ›ní " "„network:///“." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Další domény, ve kterých se mají hledat služby DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Jak zobrazit místní službu DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Možné hodnoty jsou „merged“, „separate“ a „disabled“." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentizovat pÅ™ipojení k serveru proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL automatického nastavení proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Povolí nastavení proxy pÅ™i přístupu k HTTP pÅ™es Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Název poÄítaÄe proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Název poÄítaÄe proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Heslo proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Jméno uživatele proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Je-li „true“, vyžadují pÅ™ipojení k serveru proxy autentizaci. Kombinace " "jméno uživatele/heslo je definována v „/system/http_proxy/" "authentication_user“ a „/system/http_proxy/authentication_password“." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "PoÄítaÄe bez proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Heslo, které pÅ™edat jako autentizaci pÅ™i používání HTTP proxy." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Režim nastavení proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Název poÄítaÄe proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Název poÄítaÄe proxy zabezpeÄeného HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port proxy zabezpeÄeného HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Vyberte režim nastavení proxy. Podporované hodnoty jsou „none“, „manual“, " "„auto“." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Název poÄítaÄe, který používat jako proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Název poÄítaÄe, který používat jako proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Název poÄítaÄe, který používat jako proxy zabezpeÄeného HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Název poÄítaÄe, který používat jako proxy socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port na poÄítaÄi definovaném v „/system/http_proxy/host“, který používat pro " "proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port na poÄítaÄi definovaném v „/system/proxy/ftp_host“, který používat pro " "proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port na poÄítaÄi definovaném v „/system/proxy/secure_host“, který používat " "pro proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port na poÄítaÄi definovaném v „/system/proxy/socks_host“, který používat " "pro proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Tento klÃ­Ä obsahuje seznam poÄítaÄů, které jsou pÅ™ipojeny přímo, ne pÅ™es " "proxy (pokud je aktivní). Hodnoty mohou být názvy poÄítaÄů, domény (pomocí " "poÄáteÄního zástupného znaku, napÅ™. *.foo.com), adresy IP poÄítaÄů (IPv4 i " "IPv6) a adresy sítí s maskou sítÄ› (pÅ™ibližnÄ› jako 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL, které poskytuje hodnoty nastavení proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Používat proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Jméno uživatele, které pÅ™edávat jako autentizaci pÅ™i používání proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Pracovní skupina SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Pracovní skupina nebo doména Windows, jejímž Älenem je uživatel. Aby se " "úplnÄ› projevila nová pracovní skupina, uživatel se možná bude muset odhlásit " "a znovu pÅ™ihlásit." gnome-vfs-2.24.4/po/da.po0000644000175000001440000015062611354402652011777 00000000000000# Danish translation of gnome-vfs. # Copyright (C) 1999-2007 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # Kenneth Christiansen , 1999. # Birger Langkjer , 2000. # Keld Simonsen , 2000-2001. # Ole Laursen , 2001, 02, 03, 04, 06. # Martin Willemoes Hansen , 2004, 05. # Kenneth Nielsen , 2007. # # Konventioner: # # script -> program (sÃ¥fremt det er muligt, hvad det hidtil har været) # video -> film # disc -> skive # volume -> drev # # cd, cd-rom, dvd og dvd-... r brugt konsekvent og kontrolleret (14/4-2007) # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-28 00:14+0100\n" "PO-Revision-Date: 2010-03-27 18:38+0100\n" "Last-Translator: Kenneth Nielsen \n" "Language-Team: Danish \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660-drev" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u indeholder NUL-tegn." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u indeholder intet metodenavn." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u har ikke nogen slutmarkør for indstillinger." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u har ukendte indstillinger %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u indeholder intet modulnavn." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Konfigurationsfilen '%s' kunne ikke findes: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d afbrød fortolkning." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS-netværksdrev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Autodetekteret drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs-Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Cd-rom-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Cd-digital lyd" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Enhedsdrev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4-Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Cd-rom-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs cd-rom-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Systemdrev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Hukommelsesdrev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS-netværksdrev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS-Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows delingsdrev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Dvd-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Midlertidigt drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS-drev" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Ukendt" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "Cd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "Cd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "Cd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "Dvd-rom" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "Dvd+r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "Dvd+rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "Dvd-r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "Dvd-rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "Dvd-ram" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "Dvd±r" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "Dvd±rw" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskettedrev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen-drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s musikafspiller" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitalkamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ekstern %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Cd-rom-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Blank cd-r-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Cd-r-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Blank cd-rw-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Cd-rw-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Dvd-rom-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Blank dvd-ram-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Dvd-ram-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Blank dvd-r-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Dvd-r-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Blank dvd-rw-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Dvd-rw-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Blank dvd+r-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Dvd+r-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Blank dvd+rw-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Dvd+rw-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Lyd-skive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s udtageligt drev" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Drev" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Ukendt operationstype %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kan ikke oprette datakanal til Ã¥ben GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Ukendt jobtype %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operation stoppet" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Forældet funktion. Brugermodificeringer af MIME-databasen er ikke længere " "understøttet." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Kan ikke fortolke: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Yderligere tolkningsfejl bliver ignoreret." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ingen fejl" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Filen ikke fundet" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Generel fejl" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Intern fejl" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ugyldige parametre" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Ikke-understøttet operation" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O-fejl" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Ødelagte data" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Ugyldigt format" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Ugyldigt filhÃ¥ndtag" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "For stor fil" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ikke mere plads pÃ¥ enhed" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Skrivebeskyttet filsystem" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ugyldig URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "UÃ¥bnet fil" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Ugyldig Ã¥bningstilstand" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Adgang forbudt" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "For mange Ã¥bne filer" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Slutning pÃ¥ fil" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ikke en mappe" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operation er i gang" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operation afbrudt" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Filen eksisterer" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Fandt henvisninger der peger i ring" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operation ikke tilladt" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Er en mappe" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ikke tilstrækkelig hukommelse" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Vært ikke fundet" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Ugyldigt værtsnavn" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Vært har ingen adresse" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Logind mislykkedes" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operation annulleret" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Mappen er optaget" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Mappen er ikke tomt" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "For mange henvisninger" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Skrivebeskyttet filsystem" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ikke pÃ¥ det samme filsystem" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Navnet er for langt" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Tjeneste ikke tilgængelig" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Forespørgsel overflødiggør tjenestens data" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokolfejl" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Kunne ikke finde hovedbrowser" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Ingen forvalgt handling associeret" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ingen hÃ¥ndtering til URL-skema" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Fejl ved fortolkning af kommandolinjen" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Fejl ved kørsel af kommando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Tidsgrænse nÃ¥et" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Navneserver-fejl" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Ressourcen er lÃ¥st" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Funktionskaldet er forældet" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ugyldigt filnavn" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ikke en symbolsk henvisning" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ukendt fejl" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u byte" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f kb" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f Mb" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Gb" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ugyldig Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskette" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "Cd-rom/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "Cd-rom/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "Cd-rom/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "Cd-rom/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "Cd-r/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "Cd-r/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "Cd-r/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "Cd-r/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "Cd-rw/dvd-rom" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "Cd-rw/dvd-ram" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "Cd-rw/dvd-r" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "Cd-rw/dvd-rw" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-drev" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-drev" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Hukommelsesstang" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "Dvd" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Roddrev" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Lyd-cd" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Ukendt drev" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Netværksserver" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Kan ikke montere diskettedrevet. Der er sandsynligvis ingen diskette i " "drevet." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Kan ikke montere drevet. Der er sandsynligvis intet medium i enheden." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Kan ikke montere diskettedrevet. Disketten er sandsynligvis i et format der " "ikke kan monteres." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Kunne ikke montere drevet. Hvis dette er et krypteret drev, er den forkerte " "adgangskode eller nøgle blevet benyttet." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Kan ikke montere det valgte drev. Drevet er sandsynligvis i et format der " "ikke kan monteres." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Kan ikke montere det valgte diskettedrev." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Kan ikke montere det valgte drev." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Kan ikke montere det valgte drev. Drevet bliver brugt af et eller flere " "programmer." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Kan ikke afmontere det valgte drev." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Kunne ikke læse data fra underproces %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Kunne ikke køre monteringsproces i en pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Uventet fejl i select() ved læsning af data fra underproces (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Kunne ikke sende adgangskode til monteringsproces." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Uventet fejl i waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Det mislykkedes at starte kommando" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Kan ikke skubbe medium ud" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Kan ikke afmontere tilsluttet server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Netværk" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Hjem" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Filsystem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ukendt GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows-netværk" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identitet pÃ¥ den fjerne maskine (%s) er ukendt." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Dette forekommer nÃ¥r du logger pÃ¥ en maskine for første gang.\n" "\n" "Identiteten sendt fra den fjerne maskine er %s. Hvis du vil være absolut " "sikker pÃ¥ at det er sikkert at fortsætte, kan du kontakte " "systemadministratoren." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Log pÃ¥ alligevel" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Annullér log ind" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Fandt ikke en gyldig opsætningsfil ved %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Brug miljøvariablen %s til at angive en anden placering.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Din HTTP proxy kræver at du logger ind.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Du skal logge ind for at fÃ¥ adgang til \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Din adgangskode vil blive sendt ukrypteret." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Din adgangskode vil blive sendt krypteret." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Du skal logge ind for at fÃ¥ adgang til %s domæne %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Du skal logge ind for at fÃ¥ adgang til %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Forvalgt komponentfremviser" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Forvalgt terminalprogram" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Kørselsparameter for forvalgt terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Det program der skal bruges til at vise filer der kræver en komponent for at " "vise dem. Parameteren %s vil blive erstattet af filens adresser, parameteren " "%c vil blive erstattet med komponentens IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "Det forvalgte terminalprogram til programmer der kræver en terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Kørselsparameter der skal bruges til det forvalgte terminalprogram." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Kør kommandoen i en terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"aim\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"callto\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"ghelp\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"h323\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"http\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"https\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"info\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"mailto\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"man\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Kommandoen der bruges til at hÃ¥ndtere \"trash\"-adresser, hvis aktiveret." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "HÃ¥ndtering af \"aim\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "HÃ¥ndtering af \"callto\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "HÃ¥ndtering af \"ghelp\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "HÃ¥ndtering af \"h323\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "HÃ¥ndtering af \"http\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "HÃ¥ndtering af \"https\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "HÃ¥ndtering af \"info\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "HÃ¥ndtering af \"mailto\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "HÃ¥ndtering af \"man\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "HÃ¥ndtering af \"trash\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"aim\"-adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"callto\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"ghelp\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"h323\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"http\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"https\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"info\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"mailto\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"man\"-adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndterer \"trash\"-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"aim\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"callto\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"ghelp\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"h323\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"http\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"https\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Om det specificerde program skal hÃ¥ndtere \"info\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"mailto\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"man\"-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Om den specificerede kommando skal hÃ¥ndtere \"trash\"-adresser" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Komma-adskilt liste af DNS-SD-domæner som skal være synlige i \"network:///" "\"-stedet." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Ekstra domæner til at kigge efter DNS-SD-tjenester i" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Hvordan en lokal DNS-SD-tjeneste skal vises" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Mulige værdier er \"merged\", \"separate\" og \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Brugergodkendelse ved mellemværtstilslutninger" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automatisk mellemværtskonfigurationsadresse" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Aktivér mellemværtsindstillingerne ved HTTP over internettet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP-mellemværtsnavn" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP-mellemværtsport" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP-mellemværtsnavn" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP-mellemværtsadgangskode" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP-mellemværtsport" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP-mellemværtsbrugernavn" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Hvis sand, kræver tilslutningerne til mellemværten brugergodkendelse. " "Brugernavn-/adgangskodekombinationen er defineret i \"/system/http_proxy/" "authentication_user\" og \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Værter uden mellemvært" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Adgangskode der skal gives som brugergodkendelse for HTTP-mellemvært." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mellemværtstilstand" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS-mellemværtsnavn" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS-mellemværtsport" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Sikker HTTP-mellemværtsnavn" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Sikker HTTP-mellemværtsport" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Vælg mellemværtkonfigurationen. Mulige værdier er \"none\", \"manual\", " "\"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Maskinnavn som FTP-trafik skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Maskinnavn som HTTP-trafik skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Maskinnavn som sikker HTTP-trafik skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Maskinnavn som SOCKS-trafik skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Porten pÃ¥ den maskine defineret af \"/system/http_proxy/host\" som trafikken " "skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Porten pÃ¥ den maskine defineret af \"/system/proxy/ftp_host\" som trafikken " "skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Porten pÃ¥ den maskine defineret af \"/system/proxy/secure_host\" som " "trafikken skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Porten pÃ¥ den maskine defineret af \"/system/proxy/socks_host\" som " "trafikken skal gÃ¥ gennem." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Denne nøgle indeholder en liste af værter som der skal tilsluttes til " "direkte i stedet for gennem mellemværten (hvis den er aktiv). Værdierne kan " "være værtsnavne, domæner (med et indledende jokertegn som f.eks. *.foo.dk), " "IP-værtsadresser (bÃ¥de IPv4 og IPv6) og netværksadresser med et netmaske " "(som f.eks. 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "Adresse som tilbyder konfigurationsværdier for mellemvært." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Benyt HTTP-mellemvært" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Brugernavn der skal videregives til brugergodkendelse til HTTP-mellemvært." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-arbejdsgruppe" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows netværks-arbejdsgruppen eller domænet som brugeren er en del af. For " "at en ny arbejdsgruppe er komplet aktiveret skal brugeren muligvis logge ud " "og logge ind igen." #~ msgid "Could not initialize Bonobo" #~ msgstr "Kunne ikke klargøre Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Kunne ikke klargøre Gnome-VFS" #~ msgid "Standard Moniker factory" #~ msgstr "Fabrik for standardprotokolhÃ¥ndtering" #~ msgid "file MonikerExtender" #~ msgstr "fil-MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "generel Gnome VFS-protokolhÃ¥ndtering" #~ msgid "generic file moniker" #~ msgstr "generel filprotokolhÃ¥ndtering" #~ msgid "Display SCSI drives" #~ msgstr "Vis scsi-drev" #~ msgid "Display SCSI optical drives" #~ msgstr "Vis optiske scsi-drev" #~ msgid "Display drives with removable media" #~ msgstr "Vis drev med medier der kan fjernes" #~ msgid "Display external drives" #~ msgstr "Vis eksterne drev" #~ msgid "Display internal hard drives" #~ msgstr "Vis interne harddiske" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Om optiske scsi-drev skal vises, selv hvis /system/storage/" #~ "display_scsi_drives er sat til FALSE." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "Om drev og montérbare arkiver fra scsi-drev skal vises." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Om drev og montérbare arkiver fra drev med udtagelige medier skal vises " #~ "(fx drev hvor mediet kan indsættes og fjernes)." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Om drev og montérbare arkiver fra eksterne drev skal vises (fx drev der " #~ "kan indsættes og fjernes mens systemet køre)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Om drev og montérbare arkiver fra interne harddiske skal vises (optiske " #~ "drev som ikke er scsi bliver altid vist)." #~ msgid "The window workgroup the user is part of" #~ msgstr "Den Windows-arbejdsgruppe som brugeren er en del af" #~ msgid "Optical Disc" #~ msgstr "Optisk-skive" #~ msgid "Memory Stick Media" #~ msgstr "Memory Stick-medie" #~ msgid "Smart Media Media" #~ msgstr "Smart Media-medie" #~ msgid "Mac OS disk" #~ msgstr "Mac OS-drev" #~ msgid "Mac OS X disk" #~ msgstr "Mac OS X-drev" #~ msgid "Windows Disk" #~ msgstr "Windows-drev" #~ msgid "Linux Disk" #~ msgstr "Linux-drev" #~ msgid "File could not be opened: %s" #~ msgstr "Filen kunne ikke Ã¥bnes: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "Kunne ikke Ã¥bne fil '%s': %s" #~ msgid "File is empty" #~ msgstr "Filen er tom" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "skrivebordselementer indeholder linjen '%s' hvilket ikke er et element, " #~ "en gruppe eller en kommentar" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "skrivebordselementer-filen starter ikke med en gyldig start-gruppe" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "skrivebordselementer indeholder linjen '%s' hvilket ikke er UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "skrivebordselementer indeholder ukendt indkodning '%s'" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "skrivebordselementer har ikke gruppen '%s'" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "skrivebordselementer har ikke nøgle '%s'" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "skrivebordselementer indeholder nøgle '%s' med en værdi der ikke kan " #~ "fortolkes." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "skrivebordselementer indeholder ingen oversat værdi for nøgle '%s' med " #~ "regionaldata '%s'." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "skrivebordselementer indeholder ugyldig undvigesekvens '%s'" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "skrivebordselementer indeholder undvige-tegn for enden af linjen" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Værdi '%s' kan ikke fortolkes som et nummer." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Værdi '%s' kan ikke fortolkes som en sandhedsværdi." #~ msgid "Applications" #~ msgstr "Programmer" #~ msgid "Cards" #~ msgstr "Kort" #~ msgid "Files" #~ msgstr "Filer" #~ msgid "Folders" #~ msgstr "Mapper" #~ msgid "Help" #~ msgstr "Hjælp" #~ msgid "Hosts" #~ msgstr "Værter" #~ msgid "Links" #~ msgstr "Henvisninger" #~ msgid "Mail" #~ msgstr "Post" #~ msgid "Tools" #~ msgstr "Værktøjer" #~ msgid "Windows" #~ msgstr "Vinduer" #~ msgid "CD Disc" #~ msgstr "Cd-skive" #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "" #~ "Kommandoen der bruges til at hÃ¥ndtere HTTP-adresser, hvis aktiveret." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "" #~ "Kommandoen der bruges til at hÃ¥ndtere HTTPS-adresser, hvis aktiveret." #~ msgid "The handler for HTTP URLs" #~ msgstr "HÃ¥ndtering af HTTP-adresser" #~ msgid "The handler for HTTPS URLs" #~ msgstr "HÃ¥ndtering af HTTPS-adresser" #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Sand hvis kommandoen angivet i \"command\"-nøglen til at hÃ¥ndtere HTTP-" #~ "adresser." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Sand hvis kommandoen angivet i \"command\"-nøglen hÃ¥ndtere HTTPS-adresser." #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "Om den specificerede kommando skal hÃ¥ndtere HTTP-adresser" #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "Om den specificerede kommando skal hÃ¥ntere HTTPS-adresser" #~ msgid "H323 URL handler" #~ msgstr "H323 URL-hÃ¥ndtering" #~ msgid "HTTP URL handler" #~ msgstr "HTTP URL-hÃ¥ndtering" #~ msgid "HTTPS URL handler" #~ msgstr "HTTPS URL-hÃ¥ndtering" #~ msgid "aim URL handler" #~ msgstr "aim URL-hÃ¥ndtering" #~ msgid "callto URL handler" #~ msgstr "callto URL-hÃ¥ndtering" #~ msgid "ghelp URL handler" #~ msgstr "ghelp URL-hÃ¥ndtering" #~ msgid "info URL handler" #~ msgstr "info URL-hÃ¥ndtering" #~ msgid "mailto URL handler" #~ msgstr "mailto URL-hÃ¥ndtering" #~ msgid "man URL handler" #~ msgstr "man URL-hÃ¥ndtering" #~ msgid "trash URL handler" #~ msgstr "trash URL-hÃ¥ndtering" #~ msgid "Could not get information for file '%s': %s" #~ msgstr "Kunne ikke skaffe oplysninger om filen '%s': %s" #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "Kunne ikke indlæse billede '%s': begrundelse ikke kendt, formodentlig en " #~ "ødelagt billedfil" gnome-vfs-2.24.4/po/az.po0000644000175000001440000011531711334251016012015 00000000000000# translation of gnome-vfs.HEAD.az.po to Azerbaijani Turkish # Copyright (C) 2001,2003, 2004 Free Software Foundation, Inc. # Vasif Ismailoglu MD , 2001 . # MÉ™tin Æmirov , 2003, 2004. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.az\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-02-22 19:52+0200\n" "Last-Translator: MÉ™tin Æmirov \n" "Language-Team: Azerbaijani Turkish \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" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "Bonobo baÅŸladıla bilmÉ™di" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "Gnome vfs baÅŸladıla bilmÉ™di" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "ISO 9660 HÉ™cmi" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d NUL hÉ™rflÉ™rini daxil edir." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d yöntÉ™m adını daxil etmir." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d seçimlÉ™rÉ™ malik deyil" #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%d namÉ™'lum seçimlÉ™rÉ™ malikdir %s." #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d modul adını daxil etmir." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "QuraÅŸdırma faylı `%s' tapıla bilmÉ™di: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "AFFS HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "AFS ŞəbÉ™kÉ™ HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "Avtomatik tÉ™sbit edilmiÅŸ HÉ™cm" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "CD-ROM Sürücüsü" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "CD Dijital Audio" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "Texniki TÉ™'minat Avadanlığı HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Ext2 Linuks HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Ext3 Linuks HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "MSDOS HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "MacOS HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "CDROM HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "JFS HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Windows NT HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "Sistem HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "YaddaÅŸ HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Minix HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "NFS ŞəbÉ™kÉ™ HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Netware HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linuks HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "Paylaşılmış Windows HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "SuperMount HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "DVD HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Solraris/BSD HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 #, fuzzy msgid "Sun SAM-QFS Volume" msgstr "AFFS HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "GeniÅŸlÉ™dilmiÅŸ DOS HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Windows VFAT HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Xenix HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "XFS Linuks HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "XIAFS HÉ™cmi" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "NamÉ™'lum" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "NamÉ™'lum op növü %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "GIOChannel açmaq üçün boru yaradıla bilmir: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "NamÉ™'lum vÉ™zifÉ™ növü %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "ÆmÉ™liyyat dayandırıldı" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Oxuna bilmÉ™di: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "NövbÉ™ti oxuma xÉ™taları diqqÉ™tÉ™ alınmayacaqdır." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "XÉ™tasız" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Fayl tapıla bilmÉ™di" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Ümumi xÉ™ta" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Daxili xÉ™ta" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Hökmsüz parametrlÉ™r" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "DÉ™stÉ™klÉ™nmÉ™yÉ™n É™mÉ™liyyat" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "I/O xÉ™tası" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "MÉ™'lumat xÉ™sÉ™rlidir" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Format hökmsüzdür" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "XÉ™sÉ™rli fayl idarÉ™si" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Fayl çox böyükdür" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Avadanlıqda yer yoxdur" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "Sırf oxuna bilÉ™n fayl sistemi" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "Hökmsüz URI" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Fayl açıq deyil" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Açma modu hökmlü deyil" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "İcazÉ™ rÉ™dd edildi" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "HÉ™ddindÉ™n çox açıq fayl" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Faylın sonu" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Qovluq deyil" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "ÆmÉ™liyyat fÉ™aliyyÉ™tdÉ™dir" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "ÆmÉ™liyyat dayandırıldı" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Fayl mövcuddur" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "DöngÉ™li baÄŸlar tapıldı" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "ÆmÉ™liyyata icazÉ™ verilmir" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Qovluqdur" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "KifayÉ™t qÉ™dÉ™r yaddaÅŸ yoxdur" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "QovÅŸaq tapıla bilmÉ™di" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Hökmsüz qovÅŸaq adı" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "QovÅŸağın ünvanı yoxdur" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "GiriÅŸ bacarılmadı " #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "ÆmÉ™liyyat ləğv edildi" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Qovluq məşğuldur" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Qovluq boÅŸ deyil" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Çox baÄŸ var" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "Yalnız oxuna bilÉ™n fayl sistemi" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Eyni fayl sistemindÉ™ deyil" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Ad çox uzundur" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "XidmÉ™t mövcud deyil" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "DÉ™qiq xidmÉ™t datasını istÉ™" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Protokol xÉ™tası" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Æsas sÉ™yyah tapıla bilmÉ™di" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Æsas gediÅŸat É™laqÉ™lÉ™ndirilmÉ™yib" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "URL sxemi üçün idarəçi yoxdur" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Æmr sÉ™tri tÉ™hlil edilÉ™rkÉ™n xÉ™ta" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Æmri yerinÉ™ gÉ™tirmÉ™ xÉ™tası" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "Ümumi xÉ™ta" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "NamÉ™'lum xÉ™ta" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bayt" msgstr[1] "%u bayt" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "%.1f K" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr "(hökmsüz Yunikod)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "Disket" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 #, fuzzy msgid "CD-R" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 #, fuzzy msgid "CD-RW" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 #, fuzzy msgid "DVD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 #, fuzzy msgid "DVD-RAM" msgstr "CD-ROM Sürücüsü" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 #, fuzzy msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 #, fuzzy msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 #, fuzzy msgid "CD-ROM/DVD-R" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 #, fuzzy msgid "CD-ROM/DVD-RW" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #, fuzzy msgid "CD-R/DVD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 #, fuzzy msgid "CD-RW/DVD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 #, fuzzy msgid "USB Drive" msgstr "Zip Sürücüsü" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "YaddaÅŸ ÇubuÄŸu" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 #, fuzzy msgid "Smart Media" msgstr "YaddaÅŸ ÇubuÄŸu" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "Zip Sürücüsü" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Kamera" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "Kök HÉ™cmi" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "Audio CD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "NamÉ™'lum hÉ™cm" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "ŞəbÉ™kÉ™ vericisi" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Disket sürücüsü baÄŸlana bilmÉ™di. DeyÉ™sÉ™n sürücüdÉ™ disket yoxdur." #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Sürücü baÄŸlana bilmÉ™di. DeyÉ™sÉ™n sürücüdÉ™ mediya yoxdur." #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Disket sürücüsü baÄŸlana bilmÉ™di. DeyÉ™sÉ™n sürücüdÉ™ki disketin ÅŸÉ™killÉ™ndirmÉ™si " "baÄŸlanmaq üçün uyÄŸun deyil." #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Seçili sürücü baÄŸlana bilmÉ™di. DeyÉ™sÉ™n sürücünün ÅŸÉ™killÉ™ndirmÉ™si baÄŸlamaq " "üçün uyÄŸun deyil." #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "Seçili floppi sürücüsü baÄŸlana bilmÉ™di." #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "Seçili sürücü baÄŸlana bilmÉ™di." #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "Seçili sürücü ayırıla bilmÉ™di." #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "Æmr baÅŸladıla bilmÉ™di" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "Mediya çıxardıla bilmÉ™di" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "BaÄŸlı verici ayırıla bilmÉ™di" #: modules/computer-method.c:545 msgid "Network" msgstr "ŞəbÉ™kÉ™" #: modules/computer-method.c:563 msgid "Home" msgstr "Ev" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "Fayl sistemi" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "NamÉ™'lum GnomeVFSSeekPosition %d" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Windows ŞəbÉ™kÉ™si" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s ünvanında hökmlü qurÄŸu faylı tapıla bilmÉ™di\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "BaÅŸqa mövqe tÉ™'yin etmÉ™k üçün %s mühit dÉ™yiÅŸÉ™nini iÅŸlÉ™din.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Sıravi Moniker e'malatxanası" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "fayl MonikerGeniÅŸlÉ™dicisi" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "adi Gnome VFS monikeri" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "adi fayl monikeri" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Ön qurÄŸulu tÉ™rkib hissÉ™si nümayiÅŸ proqramı" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Ön qurÄŸulu terminal proqramı" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Ön qurÄŸulu terminal üçün icra edilÉ™cÉ™k É™mr" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "Terminala mÉ™cbur olan proqramlar üçün iÅŸlÉ™dilÉ™cÉ™k ön qurÄŸulu terminal." #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Ön qurÄŸulu terminal gediÅŸatı üçün icra edilÉ™cÉ™k É™mr." #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 #, fuzzy msgid "Run the command in a terminal" msgstr "Proqramı terminalda iÅŸÉ™ sal" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 #, fuzzy msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "True if the program to handle this URL should be run in a terminal." #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 #, fuzzy msgid "The command used to handle \"http\" URLs, if enabled." msgstr "True if the program to handle this URL should be run in a terminal." #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 #, fuzzy msgid "The command used to handle \"https\" URLs, if enabled." msgstr "True if the program to handle this URL should be run in a terminal." #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 #, fuzzy msgid "The handler for \"aim\" URLs" msgstr "man URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 #, fuzzy msgid "The handler for \"callto\" URLs" msgstr "callto URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 #, fuzzy msgid "The handler for \"ghelp\" URLs" msgstr "ghelp URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 #, fuzzy msgid "The handler for \"h323\" URLs" msgstr "H323 URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 #, fuzzy msgid "The handler for \"http\" URLs" msgstr "ghelp URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 #, fuzzy msgid "The handler for \"https\" URLs" msgstr "ghelp URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 #, fuzzy msgid "The handler for \"info\" URLs" msgstr "info URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 #, fuzzy msgid "The handler for \"mailto\" URLs" msgstr "mailto URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 #, fuzzy msgid "The handler for \"man\" URLs" msgstr "man URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 #, fuzzy msgid "The handler for \"trash\" URLs" msgstr "trash URL-lÉ™rini aç" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle man URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Set to true to have a program specified in \"command\" handle callto URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle ghelp URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle H323 URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle ghelp URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle ghelp URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle info URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Set to true to have a program specified in \"command\" handle mailto URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle man URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Set to true to have a program specified in \"command\" handle trash URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 #, fuzzy msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "True if the program to handle this URL should be run in a terminal." #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 #, fuzzy msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle man URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 #, fuzzy msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle callto URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 #, fuzzy msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle ghelp URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 #, fuzzy msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle H323 URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 #, fuzzy msgid "Whether the specified command should handle \"http\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle ghelp URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 #, fuzzy msgid "Whether the specified command should handle \"https\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle trash URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 #, fuzzy msgid "Whether the specified command should handle \"info\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle info URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 #, fuzzy msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle mailto URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 #, fuzzy msgid "Whether the specified command should handle \"man\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle man URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 #, fuzzy msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" "Set to true to have a program specified in \"command\" handle trash URLs." #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "VÉ™kil vericisi baÄŸlantılarını tanıt" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Avtomatik vÉ™kil quraÅŸdırma URL-si" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Enables the proxy settings when accessing HTTP over the Internet." #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP vÉ™kil qovÅŸaq adı" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP vÉ™kil qapısı" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP vÉ™kil qovÅŸaq adı" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP vÉ™kil ÅŸifrÉ™si" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP vÉ™kil qapısı" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP vÉ™kil istifadəçi adı" #: schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "If true, then connections to the proxy server require authentication. The " "username/password combo defined by \"/system/http_proxy/authentication_user" "\" and \"/system/http_proxy/authentication_password\"." #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "VÉ™kil olmayan qovÅŸaqlar" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP vÉ™killÉ™ndirmÉ™sindÉ™ göndÉ™rilÉ™cÉ™k ÅŸifrÉ™." #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "VÉ™kil quraÅŸdırma modu" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS vÉ™kil qovÅŸaq adı" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS vÉ™kil qapısı" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "E'tibarlı HTTP vÉ™kil qovÅŸaq adı" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "E'tibarlı HTTP vÉ™kil qovÅŸaq qapısı" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "VÉ™kil quraÅŸdırma modu. DÉ™stÉ™klÉ™nÉ™n qiymÉ™tlÉ™r: \"none\", \"manual\", \"auto\"." #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP üçün vÉ™kilin sistem adı." #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP üçün vÉ™kilin sistem adı." #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "E'tibarlı HTTP üçün vÉ™kilin sistem adı." #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Socks üçün vÉ™kilin sistem adı." #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "VÉ™kil qurÄŸu qiymÉ™tlÉ™rini verÉ™n URL" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP vÉ™kili iÅŸlÉ™t" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP vÉ™killÉ™ndirmÉ™sindÉ™ göndÉ™rilÉ™cÉ™k istifadəçi adı." #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB iÅŸ qrupu" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "İstifadəçinin üzvü olduÄŸu windows iÅŸ qrupu" #, fuzzy #~ msgid "CD-ROM Disc" #~ msgstr "CD-ROM Sürücüsü" #, fuzzy #~ msgid "CD-R Disc" #~ msgstr "CD-ROM Sürücüsü" #, fuzzy #~ msgid "CD-RW Disc" #~ msgstr "CD-ROM Sürücüsü" #, fuzzy #~ msgid "DVD-ROM Disc" #~ msgstr "CD-ROM Sürücüsü" #, fuzzy #~ msgid "Audio Disc" #~ msgstr "Audio CD" #, fuzzy #~ msgid "Memory Stick Media" #~ msgstr "YaddaÅŸ ÇubuÄŸu" #, fuzzy #~ msgid "Floppy Disk" #~ msgstr "Disket" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "PÉ™ncÉ™rÉ™lÉ™r" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "Oxuna bilmÉ™di: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "Fayl mövcuddur" #~ msgid "Applications" #~ msgstr "Proqramlar" #~ msgid "Cards" #~ msgstr "Kartlar" #~ msgid "Files" #~ msgstr "Fayllar" #~ msgid "Folders" #~ msgstr "Qovluqlar" #~ msgid "Help" #~ msgstr "Yardım" #~ msgid "Hosts" #~ msgstr "QovÅŸaqlar" #~ msgid "Links" #~ msgstr "KörpülÉ™r" #~ msgid "Mail" #~ msgstr "Poçt" #~ msgid "Tools" #~ msgstr "VasitÉ™lÉ™r" #~ msgid "Windows" #~ msgstr "PÉ™ncÉ™rÉ™lÉ™r" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "HTTP URL-lÉ™rini aç" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "HTTPS URL-lÉ™rini aç" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Set to true to have a program specified in \"command\" handle HTTP URLs." #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Set to true to have a program specified in \"command\" handle HTTPS URLs." #, fuzzy #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "" #~ "Set to true to have a program specified in \"command\" handle HTTP URLs." #, fuzzy #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "" #~ "Set to true to have a program specified in \"command\" handle HTTPS URLs." #~ msgid "H323 URL handler" #~ msgstr "H323 URL-lÉ™rinÉ™ baxan proqram" #~ msgid "HTTP URL handler" #~ msgstr "HTTP URL-lÉ™rinÉ™ baxan proqram" #~ msgid "HTTPS URL handler" #~ msgstr "HTTPS URL-lÉ™rinÉ™ baxan proqram" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "man URL-lÉ™rinÉ™ baxan proqram" #~ msgid "callto URL handler" #~ msgstr "callto URL-lÉ™rinÉ™ baxan proqram" #~ msgid "ghelp URL handler" #~ msgstr "ghelp URL-lÉ™rinÉ™ baxan proqram" #~ msgid "info URL handler" #~ msgstr "info URL-lÉ™rinÉ™ baxan proqram" #~ msgid "mailto URL handler" #~ msgstr "mailto URL-lÉ™rinÉ™ baxan proqram" #~ msgid "man URL handler" #~ msgstr "man URL-lÉ™rinÉ™ baxan proqram" #~ msgid "trash URL handler" #~ msgstr "trash URL-lÉ™rinÉ™ baxan proqram" gnome-vfs-2.24.4/po/am.po0000644000175000001440000007146511334251016012005 00000000000000# Translations into the Amharic Language. # Copyright (C) 2002 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # Ge'ez Frontier Foundation , 2002. # # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2003-01-07 10:33+EDT\n" "Last-Translator: Ge'ez Frontier Foundation \n" "Language-Team: Amharic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 #, fuzzy msgid "Unknown" msgstr "á‹«áˆá‰³á‹ˆá‰€ ስህተት" #: libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "" #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "ስህተት የለáˆ" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "የá‹á‹­áˆ‰áŠ• አáˆá‰°áŒˆáŠ˜áˆ" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "አጠቃላይ ስህተት" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "የá‹áˆµáŒ¥ ብáˆáˆ½á‰µ" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "I/O ስህተት" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "የማይሰራ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "የá‹á‹­áˆ‰ መጨረሻ" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "ዶሴ አይደለáˆ" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "á‹á‹­áˆ‰ በáŠá‰µáˆ áŠá‰ áˆ­" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "ዶሴ áŠá‹" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "አጠቃላይ ስህተት" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "á‹«áˆá‰³á‹ˆá‰€ ስህተት" #: libgnomevfs/gnome-vfs-utils.c:85 #, fuzzy, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bytes" msgstr[1] "%u bytes" #: libgnomevfs/gnome-vfs-utils.c:91 #, fuzzy, c-format msgid "%.1f KB" msgstr "%.1f K" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (ዩኒኮድ ተቀብáˆáˆ)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 #, fuzzy msgid "Unknown volume" msgstr "á‹«áˆá‰³á‹ˆá‰€ ስህተት" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "" #: modules/computer-method.c:545 msgid "Network" msgstr "" #: modules/computer-method.c:563 msgid "Home" msgstr "" #: modules/computer-method.c:581 #, fuzzy msgid "Filesystem" msgstr "á‹á‹­áˆ‰ በáŠá‰µáˆ áŠá‰ áˆ­" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "" #, fuzzy #~ msgid "File is empty" #~ msgstr "á‹á‹­áˆ‰ በáŠá‰µáˆ áŠá‰ áˆ­" #, fuzzy #~ msgid "Files" #~ msgstr "á‹á‹­áˆ‰ በáŠá‰µáˆ áŠá‰ áˆ­" #~ msgid "1 byte" #~ msgstr "1 byte" gnome-vfs-2.24.4/po/sl.po0000644000175000001440000013460011450220305012011 00000000000000# Slovenian translations for gnome-vfs. # Copyright (C) 2000-2006 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # # Andraž Tori , 2000. # Matjaž Horvat , 2006. # Matej UrbanÄiÄ , 2008 - 2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2009-10-04 20:56+0000\n" "PO-Revision-Date: 2010-07-27 14:26+0100\n" "Last-Translator: Matej UrbanÄiÄ \n" "Language-Team: Slovenian GNOME Translation Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n" "X-Poedit-Language: Slovenian\n" "X-Poedit-Country: Slovenia\n" "X-Poedit-SourceCharset: utf-8\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Nosilec ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u vsebuje znake NULL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ne vsebuje imena naÄina." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ne vsebuje oznake možnosti." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u vsebuje neznane možnosti %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ne vsebuje imena modula." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Nastavitvene datoteke '%s' ni mogoÄe najti: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d je preklical razÄlenjevanje." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Pogon AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Omrežni pogon AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Samodejno zaznan pogon" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Pogon Linux Btrfs " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Pogon CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Digital Audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Pogon strojne naprave" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Pogon EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Pogon eCryptfs " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Pogon Ext2 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Pogon Ext3 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Pogon Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Pogon MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Pogon BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Pogon FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Pogon MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Pogon CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Pogon Hsfs CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Pogon JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Pogon Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Sistemski pogon" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "PomnilniÅ¡ki pogon" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Pogon Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Omrežni pogon NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Pogon Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Pogon Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Pogon Reiser4 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Pogon ReiserFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Souporaba z Windows sistemom" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Pogon SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Pogon DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Pogon Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Pogon Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pogon Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Pogon Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "ZaÄasni pogon" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "IzboljÅ¡an pogon DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Pogon Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Pogon Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Pogon Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Pogon XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Pogon CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Neznano" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s pogon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s pogon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s pogon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disketna enota" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Pogon Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Pogon Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Pogon Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Pogon SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Pogon Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Pogon Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pogon Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s predvajalnik glasbe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitalni fotoaparat" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Pogon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Zunanji %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Prazen CD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Prazen CD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Prazen DVD-RAM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Prazen DVD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Prazen DVD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Prazen DVD+R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Prazen DVD+RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Glasbeni disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s izmenljiv disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Pogon" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Neznana vrsta opravila %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 #: ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ni mogoÄe ustvariti cevi GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Neznana vrsta posla %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Dejanje je zaustavljeno" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "OpuÅ¡Äena funkcija. UporabniÅ¡ke spremembe podatkovne zbirke MIME niso veÄ podprte." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ni mogoÄe razÄleniti: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Nadaljnje napake med razÄlenjevanjem bodo prezrte." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Brez napake" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Datoteke ni mogoÄe najti" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Izvorna napaka" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Notranja napaka" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Neveljavni parametri" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nepodprto opravilo" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "V/I napaka" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Podatki so pokvarjeni" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format ni veljaven" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Neveljavna datoteÄna roÄica" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Datoteka je prevelika" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Na napravi ni veÄ prostora" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "DatoteÄni sistem je le za branje" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Neveljaven naslov URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Datoteka ni odprta" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Neveljaven naÄin odpiranja" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Dostop je zavrnjen" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "PreveÄ odprtih datotek" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Konec datoteke" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ni imenik" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Dejanje se izvaja" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Dejanje je prekinjeno" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Datoteka obstaja" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Zaznane so krožne povezave" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Nedovoljeno dejanje" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Je imenik" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ni dovolj pomnilnika" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Gostitelja ni mogoÄe najti" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Ime gostitelja ni veljavno" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Gostitelj nima naslova" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Prijava ni uspela" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Opravilo je preklicano." #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Imenik je zaposlen" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Mapa ni prazna" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "PreveÄ povezav" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "DatoteÄni sistem je le berljiv" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ni na istem datoteÄnem sistemu" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Ime je predolgo" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Storitev ni na voljo" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Zahtevek zastara podatke storitve" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Napaka protokola" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ni mogoÄe najti glavnega brskalnika" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Ni povezanega privzetega dejanja" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ni roÄnika te sheme naslova URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Napaka med razÄlenjevanjem ukazne vrstice" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Napaka med zaganjanjem ukaza" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ÄŒas je potekel" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Napaka imena strežnika" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Sredstvo je zaklenjeno" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Klic funkcije je opuÅ¡Äen" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Neveljavno ime datoteke" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ni simbolna povezava" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Neznana napaka" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajtov" msgstr[1] "%u bajt" msgstr[2] "%u bajta" msgstr[3] "%u bajti" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (neveljaven Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disketa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Pogon USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Pogon IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Spominske kartice" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Pametne kartice" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Fotoaparat" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Korenski pogon" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Glasbeni CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Neznan pogon" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Omrežni strežnik" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ni mogoÄe priklopiti disketne enote. Najverjetneje diskete ni v napravi." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ni mogoÄe priklopiti pogona. Najverjetneje nosilca ni v napravi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "Unable to mount the floppy drive. The floppy is probably in a format that cannot be mounted." msgstr "Ni mogoÄe priklopiti disketne enote. Disketa je v formatu, ki ga ni mogoÄe priklopiti." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "Unable to mount the volume. If this is an encrypted drive, then the wrong password or key was used." msgstr "Ni mogoÄe priklopiti pogona. V kolikor je pogon Å¡ifriran, ste uporabili napaÄno geslo ali napaÄen kljuÄ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "Unable to mount the selected volume. The volume is probably in a format that cannot be mounted." msgstr "Ni mogoÄe priklopiti izbranega pogona. Pogon je verjetno v formatu, ki ga ni mogoÄe priklopiti." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ni mogoÄe priklopiti izbrane disketne enote." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ni mogoÄe priklopiti izbranega pogona." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "Unable to unmount the selected volume. The volume is in use by one or more programs." msgstr "Ni mogoÄe odklopiti izbranega pogona. Uporablja ga eden ali veÄ programov." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ni mogoÄe odklopiti izbranega pogona." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Ni mogoÄe prebrati podatkov podrejenega opravila %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ni mogoÄe zagnati opravila priklopa v pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "NepriÄakovana napaka branja podatkov select() podrejenega opravila (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Ni mogoÄe poslati gesla opravilu priklopa." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "NepriÄakovana napaka v waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Ni mogoÄe zagnati ukaza" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ni mogoÄe izvreÄi nosilca" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ni mogoÄe odklopiti povezanega strežnika" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Omrežje" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Dom" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "DatoteÄni sistem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Neznan GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Omrežje Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Istovetnost oddaljenega raÄunalnika (%s) je neznana." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely sure it is safe to continue, contact the system administrator." msgstr "" "To se zgodi, ko se prviÄ prijavite v sistem.\n" "\n" "Istovetnost, ki jo je poslal oddaljeni raÄunalnik, je %s. ÄŒe se želite prepriÄati o varnosti nadaljevanja, se obrnite na skrbnika sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Vseeno se prijavi" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "PrekliÄi prijavo" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ni mogoÄe najti veljavnih nastavitev v datoteki %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Uporabite okoljsko spremenljivko %s za navajanje drugega mesta.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Posredovalni HTTP strežnik zahteva prijavo.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Dostop do \"%s\" zahteva prijavo.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "VaÅ¡e geslo bo poslano neÅ¡ifrirano." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "VaÅ¡e geslo bo poslano Å¡ifrirano." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Dostop do domene %s zahteva prijavo %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Dostop do %s zahteva prijavo\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Privzet pregledovalnik komponent" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Privzet terminal" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument ukaza za zagon privzetega terminala" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." msgstr "Program za pregledovanje datotek, ki za ogled zahtevajo poseben programnik. Parameter %s bo zamenjan z naslovom URI datoteke, parameter %c pa z IID programnika." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "The default terminal application to use for applications that require a terminal." msgstr "Privzet terminal za uporabo programov, ki zahtevajo terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argument ukaza, ki bo uporabljen za zagon privzetega terminala." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Zaženi ukaz v terminalu" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"aim\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"callto\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"ghelp\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"h323\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"http\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"https\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"info\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"mailto\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"man\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Ukaz za upravljanje z naslovi \"trash\", ko je možnost omogoÄena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "RoÄnik naslovov URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "RoÄnik naslovov URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "RoÄnik naslovov URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "RoÄnik naslovov URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "RoÄnik naslovov URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "RoÄnik naslovov URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "RoÄnik naslovov URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "RoÄnik naslovov URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "RoÄnik naslovov URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "RoÄnik naslovov URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "True if the command specified in the \"command\" key should handle \"callto\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "True if the command specified in the \"command\" key should handle \"h323\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "True if the command specified in the \"command\" key should handle \"http\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "True if the command specified in the \"command\" key should handle \"https\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "True if the command specified in the \"command\" key should handle \"info\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "True if the command specified in the \"command\" key should handle \"mailto\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "True if the command specified in the \"command\" key should handle \"man\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "True if the command specified in the \"command\" key should handle \"trash\" URLs." msgstr "Ali naj ukaz naveden v kljuÄu \"command\" upravlja z naslovi URL \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Ali naj naveden ukaz upravlja z naslovi URL \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "Comma separated list of DNS-SD domains that should be visible in the \"network:///\" location." msgstr "Z vejico loÄen seznam domen DNS-SD, ki naj bodo vidne na mestu \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dodatne domene za iskanje storitev DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Kako naj se prikaže krajevna storitev DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "MogoÄe vrednosti so \"združeno\", \"loÄeno\" in \"onemogoÄeno\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Overi povezave posredovalnega strežnika" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Naslov URL za samodejno nastavitev posredovalnega strežnika" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "OmogoÄi nastavitve posredovalnega strežnika za dostop do HTTP preko spleta." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Ime gostitelja FTP posredovalnega strežnika" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Vrata FTP posredovalnega strežnika" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Ime gostitelja posredovalnega strežnika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Geslo posredniÅ¡kega strežnika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Vrata posredovalnega strežnika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "UporabniÅ¡ko ime HTTP posredniÅ¡kega strežnika" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "If true, then connections to the proxy server require authentication. The username/password combo is defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "Možnost doloÄa zahtevo za overitev povezave na posredovalni strežnik. Spustno polje za uporabniÅ¡ko ime in geslo doloÄata \"/system/http_proxy/authentication_user\" in \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Gostitelji brez posredniÅ¡kega strežnika" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Geslo za overitev posredovalnega strežnika HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "NaÄin nastavitev posredovalnega strežnika" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Ime gostitelja posredovalnega strežnika SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Vrata posredovalnega strežnika SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Ime gostitelja varnega posredovalnega strežnika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Vrata varnega posredovalnega strežnika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." msgstr "Izberite naÄin nastavitev posredovalnega strežnika. Podprte vrednosti so \"brez\", \"roÄno\", \"samodejno\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Ime raÄunalnika FTP posredovalnega strežnika." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Ime raÄunalnika posredovalnega strežnika HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Ime raÄunalnika varnega posredovalnega strežnika HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Ime raÄunalnika posredovalnega strežnika SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." msgstr "Vrata raÄunalnika, ki jih doloÄa nastavitev \"/system/http_proxy/host\" posredovalnega strežnika." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." msgstr "Vrata raÄunalnika, ki jih doloÄa nastavitev\"/system/proxy/ftp_host\" posredovalnega strežnika." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." msgstr "Vrata raÄunalnika, ki jih doloÄa nastavitev \"/system/proxy/secure_host\" posredovalnega strežnika." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." msgstr "Vrata raÄunalnika, ki jih doloÄa nastavitev \"/system/proxy/socks_host\" posredovalnega strežnika." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "KljuÄ vsebuje seznam gostiteljev, s katerimi se vzpostavi neposredna povezava in preko posredovalnega strežnika (Äe je ta dejaven). Vrednosti so lahko imena gostiteljev, domene (z nadomestnimi znaki kot je *.foo.com), naslovi IP gostitelja (tako IPv4 kot tudi IPv6) in omrežni naslovi z omrežno masko (npr. 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "Naslov URL z vrednostmi nastavitev posredovalnega strežnika." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Uporabi HTTP posredovalni strežnik" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "UporabniÅ¡ko ime za overitev na HTTP posredovalnem strežniku." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Delovna skupina SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in." msgstr "Delovna skupina ali domena omrežja Windows, katere del je uporabnik. Za uveljavitev nastavitev nove delovne skupine, se bo morda treba ponovno prijaviti." gnome-vfs-2.24.4/po/hi.po0000644000175000001440000017531611334251016012010 00000000000000# translation of hi.po to Hindi # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # # # G Karunakar , 2003. # Ravishankar Shrivastava , 2004. # Rajesh Ranjan , 2005, 2006, 2009. msgid "" msgstr "" "Project-Id-Version: hi\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-11-07 13:57+0100\n" "PO-Revision-Date: 2009-03-06 14:17+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Hindi \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" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "आईà¤à¤¸à¤“ 9660 वॉलà¥à¤¯à¥‚म" # libgnomevfs/gnome-vfs-configuration.c:223 #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u में रिकà¥à¤¤ वरà¥à¤£ हैं." # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u में कोई विधि नाम नहीं है." # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u में à¤à¤£à¥à¤¡-मारà¥à¤•र विकलà¥à¤ª नहीं हैं." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u में अजà¥à¤žà¤¾à¤¤ विकलà¥à¤ª हैं %s." # libgnomevfs/gnome-vfs-configuration.c:269 #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u में कोई मॉडà¥à¤¯à¥‚ल नाम नहीं है." # libgnomevfs/gnome-vfs-configuration.c:322 #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "विनà¥à¤¯à¤¾à¤¸ फ़ाइल '%s' नहीं मिला: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d विशà¥à¤²à¥‡à¤·à¤£ विफल." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "à¤à¤à¤«à¤à¤«à¤à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "à¤à¤à¤«à¤à¤¸ नेटवरà¥à¤• वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पता लगाया गया वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "सीडी-रोम डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "सीडी डिज़िटल ऑडियो" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "हारà¥à¤¡à¤µà¥‡à¤¯à¤° उपकरण वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "ईà¤à¤•à¥à¤¸à¤Ÿà¥€2 लिनकà¥à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "ईà¤à¤•à¥à¤¸à¤Ÿà¥€3 लिनकà¥à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "à¤à¤®à¤à¤¸-डॉस वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "वॉलà¥à¤¯à¥‚म फ़à¥à¤¯à¥‚ज़ करें" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "मॅक-ओà¤à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "सीडी-रोम वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "à¤à¤šà¤à¤¸à¤à¤«à¤à¤¸ सीडीरोम वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "जेà¤à¤«à¤à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "विनà¥à¤¡à¥‹à¤œà¤¼ à¤à¤¨à¤Ÿà¥€ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "सिसà¥à¤Ÿà¤® वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "मेमोरी वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "मिनिकà¥à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "à¤à¤¨à¤à¤«à¤à¤¸ नेटवरà¥à¤• वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "नेटवेयर वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux वोलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "रेइज़र-à¤à¤«à¤à¤¸ लिनकà¥à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "विनà¥à¤¡à¥‹à¤œà¤¼ शेयरà¥à¤¡ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "सà¥à¤ªà¤°-माउणà¥à¤Ÿ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "डीवीडी वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "सोलारिस/बीà¤à¤¸à¤¡à¥€ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "यूडीà¤à¤«à¤à¤¸ सोलारिस वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "पीसीà¤à¤«à¤à¤¸ सोलारिस वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS वोलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "असà¥à¤¥à¤¾à¤¯à¥€ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "à¤à¤¨à¤¹à¥ˆà¤‚सà¥à¤¡ डॉस वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "विनà¥à¤¡à¥‹à¤œà¤¼ वीà¤à¤«à¤¼à¤à¤Ÿà¥€ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "ज़ेनिकà¥à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "à¤à¤•à¥à¤¸à¤à¤«à¤à¤¸ लिनकà¥à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "à¤à¤•à¥à¤¸à¤†à¤ˆà¤à¤«à¤à¤¸ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS वॉलà¥à¤¯à¥‚म" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "अजà¥à¤žà¤¾à¤¤" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "सीडी-रोम" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "सीडी-आर" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "सीडी-आरडबà¥à¤²à¥à¤¯à¥‚" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "डीवीडी-रोम" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "डीवीडी-आर" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "डीवीडी-आरडबलà¥à¤¯à¥‚" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "डीवीडी-रैम" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "संकà¥à¤šà¤¿à¤¤ फà¥à¤²à¥ˆà¤¶ डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "मेमोरी सà¥à¤Ÿà¤¿à¤• डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "चतà¥à¤° मीडिया डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ज़िप डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ज़िप डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "पेन डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s मà¥à¤¯à¥‚जिक पà¥à¤²à¥‡à¤¯à¤°" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s डिजिटल कैमरा" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "बाहरी %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "सीडी-रोम डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "खाली CD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "खाली CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "खाली DVD-RAM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "खाली DVD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "खाली DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "खाली DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "खाली DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ऑडियो डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s विसà¥à¤¥à¤¾à¤ªà¤¨à¥€à¤¯ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "आवाज" # libgnomevfs/gnome-vfs-job.c:714 #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "अजà¥à¤žà¤¾à¤¤ संकà¥à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¤•ार %u" # libgnomevfs/gnome-vfs-job.c:1005 libgnomevfs/gnome-vfs-job.c:1150 #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "खà¥à¤²à¥‡ जीआईओ-चैनल हेतॠपाइप बना नहीं सका: %s" # libgnomevfs/gnome-vfs-job.c:1596 #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "अजà¥à¤žà¤¾à¤¤ कारà¥à¤¯ पà¥à¤°à¤•ार %u" # libgnomevfs/gnome-vfs-job.c:1632 #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "ऑपरेशन रोका गया" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "पदावनत पà¥à¤°à¤•ारà¥à¤¯. MIME डाटाबेस में उपयोकà¥à¤¤à¤¾ रूपांतरण अब समरà¥à¤¥à¤¿à¤¤ नहीं है." # libgnomevfs/gnome-vfs-parse-ls.c:652 #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "विशà¥à¤²à¥‡à¤·à¤£ नहीं कर सका: %s" # libgnomevfs/gnome-vfs-parse-ls.c:654 #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "और भी जà¥à¤¯à¤¾à¤¦à¤¾ विशà¥à¤²à¥‡à¤·à¤£ तà¥à¤°à¥à¤Ÿà¤¿à¤¯à¤¾à¤ अनदेखा की जाà¤à¤‚गी." # libgnomevfs/gnome-vfs-result.c:35 # GNOME_VFS_OK #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "कोई तà¥à¤°à¥à¤Ÿà¤¿ नहीं" # libgnomevfs/gnome-vfs-result.c:36 # GNOME_VFS_ERROR_NOT_FOUND #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "फ़ाइल नहीं मिला" # libgnomevfs/gnome-vfs-result.c:37 # GNOME_VFS_ERROR_GENERIC #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ज़ेनेरिक तà¥à¤°à¥à¤Ÿà¤¿" # libgnomevfs/gnome-vfs-result.c:38 # GNOME_VFS_ERROR_INTERNAL #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "आंतरिक तà¥à¤°à¥à¤Ÿà¤¿" # libgnomevfs/gnome-vfs-result.c:39 # GNOME_VFS_ERROR_BAD_PARAMETERS #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "अवैध पैरामीटर" # libgnomevfs/gnome-vfs-result.c:40 # GNOME_VFS_ERROR_NOT_SUPPORTED #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "असमरà¥à¤¥à¤¿à¤¤ ऑपरेशन" # "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ परिभाषित नहीं है"; पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करना संभव नहीं; यह पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ नहीं की जा सकती" # libgnomevfs/gnome-vfs-result.c:41 # GNOME_VFS_ERROR_IO #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "आई/ओ तà¥à¤°à¥à¤Ÿà¤¿" # libgnomevfs/gnome-vfs-result.c:42 # GNOME_VFS_ERROR_CORRUPTED_DATA #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "आà¤à¤•ड़ा खराब हो गया" # libgnomevfs/gnome-vfs-result.c:43 # GNOME_VFS_ERROR_WRONG_FORMAT #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "पà¥à¤°à¤¾à¤°à¥‚प वैध नहीं है" # libgnomevfs/gnome-vfs-result.c:44 # GNOME_VFS_ERROR_BAD_FILE #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "बà¥à¤°à¤¾ फ़ाइल नियंतà¥à¤°à¤£" # libgnomevfs/gnome-vfs-result.c:45 # GNOME_VFS_ERROR_TOO_BIG #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "फ़ाइल बहà¥à¤¤ बड़ा है" # libgnomevfs/gnome-vfs-result.c:46 # GNOME_VFS_ERROR_NO_SPACE #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "उपकरण पर कोई सà¥à¤¥à¤¾à¤¨ बाकी नहीं है" # libgnomevfs/gnome-vfs-result.c:47 # GNOME_VFS_ERROR_READ_ONLY #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "सिरà¥à¤« पढ़ने योगà¥à¤¯ फ़ाइल सिसà¥à¤Ÿà¤®" # libgnomevfs/gnome-vfs-result.c:48 # GNOME_VFS_ERROR_INVALID_URI #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "अवैध यूआरआई" # libgnomevfs/gnome-vfs-result.c:49 # GNOME_VFS_ERROR_NOT_OPEN #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "फ़ाइल खà¥à¤²à¤¾ नहीं है" # libgnomevfs/gnome-vfs-result.c:50 # GNOME_VFS_ERROR_INVALID_OPEN_MODE #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "खोलें मोड वैध नहीं है" # libgnomevfs/gnome-vfs-result.c:51 # GNOME_VFS_ERROR_ACCESS_DENIED #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "पहà¥à¤à¤š नकारा गया" # libgnomevfs/gnome-vfs-result.c:52 # GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "बहà¥à¤¤ अधिक फ़ाइलें खà¥à¤²à¥€ हैं" # libgnomevfs/gnome-vfs-result.c:53 # GNOME_VFS_ERROR_EOF #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "फ़ाइल समापà¥à¤¤" # libgnomevfs/gnome-vfs-result.c:54 # GNOME_VFS_ERROR_NOT_A_DIRECTORY #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "डिरेकà¥à¤Ÿà¥à¤°à¥€ नहीं है" # libgnomevfs/gnome-vfs-result.c:55 # GNOME_VFS_ERROR_IN_PROGRESS #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ऑपरेशन पà¥à¤°à¤—ति पर" # libgnomevfs/gnome-vfs-result.c:56 # GNOME_VFS_ERROR_INTERRUPTED #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ऑपरेशन अवरूदà¥à¤§" # libgnomevfs/gnome-vfs-result.c:57 # GNOME_VFS_ERROR_FILE_EXISTS #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "फ़ाइल मौज़ूद है" # libgnomevfs/gnome-vfs-result.c:58 # GNOME_VFS_ERROR_LOOP #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "लिंकà¥à¤¸ के लूप मिले" # libgnomevfs/gnome-vfs-result.c:59 # GNOME_VFS_ERROR_NOT_PERMITTED #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ऑपरेशन की अनà¥à¤®à¤¤à¤¿ नहीं है" # libgnomevfs/gnome-vfs-result.c:60 # GNOME_VFS_ERROR_IS_DIRECTORY #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "यह à¤à¤• डिरेकà¥à¤Ÿà¥à¤°à¥€ है" # libgnomevfs/gnome-vfs-result.c:61 # GNOME_VFS_ERROR_NO_MEMMORY #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "परà¥à¤¯à¤¾à¤ªà¥à¤¤ मेमोरी नहीं है" # libgnomevfs/gnome-vfs-result.c:62 # GNOME_VFS_ERROR_HOST_NOT_FOUND #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "होसà¥à¤Ÿ नहीं मिला" # libgnomevfs/gnome-vfs-result.c:63 # GNOME_VFS_ERROR_INVALID_HOST_NAME #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "होसà¥à¤Ÿ नाम वैध नहीं है" # libgnomevfs/gnome-vfs-result.c:64 # GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "होसà¥à¤Ÿ का कोई पता नहीं है" # libgnomevfs/gnome-vfs-result.c:65 # GNOME_VFS_ERROR_LOGIN_FAILED #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "लॉगइन असफल" # libgnomevfs/gnome-vfs-result.c:66 # GNOME_VFS_ERROR_CANCELLED #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ऑपरेशन रदà¥à¤¦" # libgnomevfs/gnome-vfs-result.c:67 # GNOME_VFS_ERROR_DIRECTORY_BUSY #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "डिरेकà¥à¤Ÿà¥à¤°à¥€ वà¥à¤¯à¤¸à¥à¤¤ है" # libgnomevfs/gnome-vfs-result.c:68 # GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "डिरेकà¥à¤Ÿà¥à¤°à¥€ रिकà¥à¤¤ नहीं है" # libgnomevfs/gnome-vfs-result.c:69 # GNOME_VFS_ERROR_TOO_MANY_LINKS #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "बहà¥à¤¤ अधिक लिंकà¥à¤¸" # libgnomevfs/gnome-vfs-result.c:70 # GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "सिरà¥à¤« पढ़ने योगà¥à¤¯ फ़ाइल सिसà¥à¤Ÿà¤®" # libgnomevfs/gnome-vfs-result.c:71 # GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "इसी फ़ाइल सिसà¥à¤Ÿà¤® पर नहीं" # libgnomevfs/gnome-vfs-result.c:72 # GNOME_VFS_ERROR_NAME_TOO_LONG #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "नाम बहà¥à¤¤ लंबा है" # libgnomevfs/gnome-vfs-result.c:73 # GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "सेवा उपलबà¥à¤§ नहीं है" # libgnomevfs/gnome-vfs-result.c:74 # GNOME_VFS_ERROR_SERVICE_OBSOLETE #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "कालातीत सेवा का डेटा निवेदित" # libgnomevfs/gnome-vfs-result.c:75 # GNOME_VFS_ERROR_PROTOCOL_ERROR #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल तà¥à¤°à¥à¤Ÿà¤¿" # libgnomevfs/gnome-vfs-parse-ls.c:652 # GNOME_VFS_ERROR_NO_MASTER_BROWSER #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "मासà¥à¤Ÿà¤° बà¥à¤°à¤¾à¤‰à¤œà¤¼à¤° ढूंढ नहीं सका" # GNOME_VFS_ERROR_NO_DEFAULT #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "कोई डिफ़ॉलà¥à¤Ÿ कà¥à¤°à¤¿à¤¯à¤¾ समà¥à¤¬à¤¦à¥à¤§ नहीं है" # GNOME_VFS_ERROR_NO_HANDLER #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "यूआरà¤à¤² पà¥à¤°à¤¸à¤‚ग हेतॠकोई हैंडलर नही है" # GNOME_VFS_ERROR_PARSE #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "कमांड लाइन पारà¥à¤¸à¥‡ करने में तà¥à¤°à¥à¤Ÿà¤¿" # GNOME_VFS_ERROR_LAUNCH #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "कमांड चलाने में तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "समयसमापà¥à¤¤à¤¿ हà¥à¤†" # libgnomevfs/gnome-vfs-result.c:37 # GNOME_VFS_ERROR_GENERIC #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "नामसरà¥à¤µà¤° तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "संसाधन लॉक है" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "पà¥à¤°à¤•ारà¥à¤¯ कॉल पदावनत" # libgnomevfs/gnome-vfs-result.c:39 # GNOME_VFS_ERROR_BAD_PARAMETERS #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "अवैध फाइलनाम" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "सांकेतिक लिंक नहीं" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u बाइट" msgstr[1] "%u बाइटà¥à¤¸" # libgnomevfs/gnome-vfs-utils.c:67 # libgnomevfs/gnome-vfs-utils.c:74 #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f कि.बा." # libgnomevfs/gnome-vfs-utils.c:78 #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f मे.बा." # libgnomevfs/gnome-vfs-utils.c:82 #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f गी.बा." #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(अवैध यूनिकोड)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "फà¥à¤²à¥‰à¤ªà¥€" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "मेमोरी सà¥à¤Ÿà¤¿à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "चतà¥à¤° मीडिया" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "कैमरा" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "डीवीडी" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "रूट वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "ऑडियो सीडी" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "अजà¥à¤žà¤¾à¤¤ वॉलà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "नेटवरà¥à¤• सरà¥à¤µà¤°" # Handle floppy case #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µ माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®. शायद डà¥à¤°à¤¾à¤‡à¤µ में कोई फà¥à¤²à¥‰à¤ªà¥€ नहीं है." # All others #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "वालà¥à¤¯à¥‚म माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®. शायद उपकरण में कोई मीडिया नहीं है." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µ माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®. फà¥à¤²à¥‰à¤ªà¥€ शायद किसी à¤à¤¸à¥‡ फ़ॉरà¥à¤®à¥‡à¤Ÿ में हैं जिसे माउणà¥à¤Ÿ नहीं " "किया जा सकता" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "वालà¥à¤¯à¥‚म को माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®. अगर यह विगोपित डà¥à¤°à¤¾à¤‡à¤µ है तब गलत शबà¥à¤¦à¤•ूट या कà¥à¤‚जी पà¥à¤°à¤¯à¥à¤•à¥à¤¤ " "हà¥à¤† था." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "चयनित वालà¥à¤¯à¥‚म को माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®. वालà¥à¤¯à¥‚म शायद किसी à¤à¤¸à¥‡ फ़ॉरà¥à¤®à¥‡à¤Ÿ में है जिसे माउंट नहीं " "किया जा सकता." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "चयनित फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µ को माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "चयनित वालà¥à¤¯à¥‚म को माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "चयनित वालà¥à¤¯à¥‚म को माउणà¥à¤Ÿ करने में अकà¥à¤·à¤®. वालà¥à¤¯à¥‚म à¤à¤• से जà¥à¤¯à¤¾à¤¦à¤¾ पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® के दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥‹à¤— में है." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "चयनित वालà¥à¤¯à¥‚म को अनमाउणà¥à¤Ÿ करने में अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "%d (%s) चाइलà¥à¤¡ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ से पठन आंकड़ा में विफल" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty में आरोह पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ चला नहीं सका" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "select() पठन आंकड़ा में (%s) चाइलà¥à¤¡ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ से अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "माउंट पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ में शबà¥à¤¦à¤•ूट नहीं भेज सका." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() (%s) में अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "कमांड पà¥à¤°à¤¾à¤°à¤‚भ करने में असफल" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "मीडिया इज़ेकà¥à¤Ÿ करने में अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "कनेकà¥à¤Ÿà¥‡à¤¡ सरà¥à¤µà¤° को अनमाउनà¥à¤Ÿ करने में अकà¥à¤·à¤®" #: ../modules/computer-method.c:543 msgid "Network" msgstr "नेटवरà¥à¤•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "घर" # libgnomevfs/gnome-vfs-result.c:57 #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "फ़ाइल-सिसà¥à¤Ÿà¤®" # modules/file-method.c:381 #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "अजà¥à¤žà¤¾à¤¤ गनोम-वीà¤à¤«à¤¼à¤à¤¸-सीक-सà¥à¤¥à¤¿à¤¤à¤¿ %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "विंडोज़ नेटवरà¥à¤•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "(%s) दूरसà¥à¤¥ कंपà¥à¤¯à¥‚टर की पहचान अनजान है." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "यह तब होता है जब पहली बार आप कंपà¥à¤¯à¥‚टर में लॉग इन करते हैं.\n" "\n" "दूरसà¥à¤¥ कंपà¥à¤¯à¥‚टर के दà¥à¤µà¤¾à¤°à¤¾ भेजी पहचान %s है. अगर आप जारी रखने के लिये पूरी तरह से सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ " "रखना चाहिते हैं, सिसà¥à¤Ÿà¤® पà¥à¤°à¤¶à¤¾à¤¸à¤• को संपरà¥à¤• करें." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "किसी तरह लॉगिन करें" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "लॉगिन रदà¥à¤¦ करें" # modules/test-method.c:590 # FIXME: we probably shouldn't use printf to output the message #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s पर कोई वैध विनà¥à¤¯à¤¾à¤¸ फ़ाइल नहीं मिला\n" # modules/test-method.c:592 #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "भिनà¥à¤¨ सà¥à¤¥à¤¾à¤¨ को निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करने हेतॠ%s वातावरण चर का उपयोग करें \n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "आपका HTTP पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ आपको लॉगिन के लिये जरूरत महसूसता है.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "आपको \"%s\" के अभिगम के लिये जरूर लॉग करना चाहिये.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "आपका शबà¥à¤¦à¤•ूट विगोपित रूप में जायेगा." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "शबà¥à¤¦à¤•ूट गोपित रूप में जायेगा." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "आपको %s के %s डोमेन अभिगम के लिये जरूर लॉग करना चाहिये\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "आपको %s के अभिगम के लिये जरूर लॉग करना चाहिये\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "डिफ़ॉलà¥à¤Ÿ अवयव पà¥à¤°à¤¦à¤°à¥à¤¶à¤• अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "डिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "डिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² हेतॠईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "फाइल देखने के लिये पà¥à¤°à¤¯à¥‹à¤—ारà¥à¤¥ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जो उनको देखने के लिये à¤à¤• घटक की जरूरत समà¤à¤¤à¤¾ है. " "पैरामीटर %s फाइल URIs के दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ होगा, पैरामीटर %c को घटक IID से " "विसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया जायेगा." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "उन अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ों हेतॠडिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जिनà¥à¤¹à¥‡à¤‚ टरà¥à¤®à¤¿à¤¨à¤² की आवशà¥à¤¯à¤•ता होती है." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "डिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— में उपयोग हेतॠईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLs के लिये नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"aim\" URLs का नियंतà¥à¤°à¤£ करना चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"callto\" URLs का नियंतà¥à¤°à¤£ करना " "चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"ghelp\" URLs का नियंतà¥à¤°à¤£ करना " "चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"h323\" URLs का नियंतà¥à¤°à¤£ करना चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"http\" URLs का नियंतà¥à¤°à¤£ करना चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"https\" URLs का नियंतà¥à¤°à¤£ करना " "चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"info\" URLs का नियंतà¥à¤°à¤£ करना चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"mailto\" URLs का नियंतà¥à¤°à¤£ करना " "चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"man\" URLs का नियंतà¥à¤°à¤£ करना चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "सही अगर \"command\" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"trash\" URLs का नियंतà¥à¤°à¤£ करना " "चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया " "जाना चाहिये." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"aim\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"callto\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"ghelp\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"h323\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"http\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"https\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"info\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"mailto\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"man\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को \"trash\" URLs का नियंतà¥à¤°à¤£ करना चाहिये" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "DNS-SD डोमेन के कोमा से अलग सूची जिसे \"network:///\" सà¥à¤¥à¤¾à¤¨ में दृशà¥à¤¯ होना चाहिये." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD सेवा में देखने के लिये अतिरिकà¥à¤¤ डोमेन" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "सà¥à¤¥à¤¾à¤¨à¥€à¤¯ DNS-SD सेवा कैसे दिखानी है" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "संभावित मान हैं \"merged\", \"separate\" और \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¤° कनेकà¥à¤¶à¤¨à¥à¤¸ पà¥à¤°à¤¾à¤®à¤¾à¤£à¤¿à¤¤ करें" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ यूआरà¤à¤²" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "जब इंटरनेट पर à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ à¤à¤•à¥à¤¸à¥‡à¤¸ किया जाठतो पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ सकà¥à¤·à¤® करें." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पासवरà¥à¤¡" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ उपयोगकरà¥à¤¤à¤¾à¤¨à¤¾à¤®" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "अगर सही है, तब पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¤° में संबंधन के लिये सतà¥à¤¯à¤¾à¤ªà¤¨ की जरूरत होती है. username/" "password कोंबो को \"/system/http_proxy/authentication_user\" औऱ \"/system/" "http_proxy/authentication_password\" के दà¥à¤µà¤¾à¤°à¤¾ परिभाषित होता है." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "नॉन-पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¥à¤¸" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "जब à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ कर रहे हों तो पà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण हेतॠपास करने के लिठपासवरà¥à¤¡." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ मोड" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "सॉकà¥à¤¸ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "सॉकà¥à¤¸ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ मोड चà¥à¤¨à¥‡à¤‚. समरà¥à¤¥à¤¿à¤¤ मूलà¥à¤¯ हैं \"कà¥à¤› नहीं\", \"हसà¥à¤¤à¤šà¤¾à¤²à¤¿à¤¤\", \"सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ किया जाना है." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ किया जाना है." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सिकà¥à¤¯à¥‹à¤° à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ किया जाना है." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सॉकà¥à¤¸ किया जाना है." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित है \"/system/http_proxy/host\" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप " "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित है \"/system/proxy/ftp_host\" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप " "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित है \"/system/proxy/secure_host\" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप " "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित है \"/system/proxy/socks_host\" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप " "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "यह कà¥à¤‚जी में मेजबानों की सूची शामिल है जो सीधे जà¥à¤¡à¤¼à¤¾ है, बजाय पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ से होकर (अगर .ह " "सकà¥à¤°à¤¿à¤¯ है). मान मेजबाननाम, डोमेन (using an initial wildcard like *.foo.com), IP " "मेजबान पता (दोनों IPv4 और IPv6) और नेटमासà¥à¤• के साथ संजाल पता (कà¥à¤› इस तरह का " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "यूआरà¤à¤² जो पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ मूलà¥à¤¯à¥‹à¤‚ को पà¥à¤°à¤¦à¤¾à¤¨ करते हैं." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ उपयोग करें" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "जब à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ कर रहे हों तो पà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण हेतॠपास करने के लिठउपयोगकरà¥à¤¤à¤¾ नाम." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "à¤à¤¸à¤à¤®à¤¬à¥€ वरà¥à¤•गà¥à¤°à¥à¤ª" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows संजाल कारà¥à¤¯à¤¸à¤®à¥‚ह या डोमेन जिसका उपयोकà¥à¤¤à¤¾ हिसà¥à¤¸à¤¾ है. नये कारà¥à¤¯à¤¸à¤®à¥‚ह के पूरी तरह " "पà¥à¤°à¤­à¤¾à¤µà¥€ होने के लिये उपयोकà¥à¤¤à¤¾ को लॉग आउट व लॉग बैक होने की जरूरत है." gnome-vfs-2.24.4/po/ca.po0000644000175000001440000023353511354402652011777 00000000000000# gnome-vfs translation to Catalan. # Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006 The Free Software Foundation, Inc. # Softcatalà , 2000, 2001. # Jordi Mallach , 2002-2006. # Xavier Conde Rueda , 2006 # Gil Forcada , 2009 # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.11.92\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-29 20:37+0200\n" "PO-Revision-Date: 2010-03-29 20:57+0200\n" "Last-Translator: Gil Forcada \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volum ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u conté caràcters NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u no conté cap nom de mètode." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u no té un marcador final d'opcions." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u té opcions desconegudes %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u no conté cap nom de mòdul." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "El fitxer de configuració `%s' no ha estat trobat: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d s'ha cancel·lat l'anàlisi." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volum AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volum de xarxa AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volum autodetectat" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volum de Btrfs Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Unitat de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Àudio digital de CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volum de dispositiu de maquinari" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volum d'EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volum d'eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volum d'Ext2 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volum d'Ext3 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volum d'Ext4 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volum d'MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volum de BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volum de FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volum del MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volum de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volum de CD-ROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volum de JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volum de Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volum del sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volum de memòria" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volum de Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volum de xarxa NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volum NILFS de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volum de Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volum de Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volum de Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volum compartit de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volum de Supermount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volum de DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volum de Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volum Udfs de Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volum Pcfs de Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volum SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volum temporal" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volum millorat de DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volum VFAT de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volum de Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volum XFS de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volum de XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volum de CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Desconegut" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volum de %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Unitat %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Unitat %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Unitat de disquet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Unitat Compact Flash" # No tradueixo Memory Stick pq crec que és el producte concret, no una "memòria portàtil" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Unitat Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Unitat Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Unitat SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Unitat Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Unitat Jaz" # "pen drive" -> "llapis de memòria" (termcat) /josep #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Unitat de memòria portàtil" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Reproductor de música %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Càmera digital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unitat" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s extern" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disc CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disc CD-R en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disc CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disc CD-RW en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disc CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disc DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disc DVD-RAM en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disc DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disc DVD-R en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disc DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disc DVD-RW en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disc DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disc DVD+R en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disc DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disc DVD+RW en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disc DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disc d'àudio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volum extraïble %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volum" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "No es coneix el tipus d'operació %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "No es pot crear la connexió per obrir GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "No es coneix el tipus de treball %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operació aturada" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "La funció està desaconsellada. Ja no es permeten les modificacions d'usuari " "a la base de dades MIME." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "No s'ha pogut analitzar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "S'ignoraran els següents errors d'anàlisi." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Cap error" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fitxer no trobat" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Error genèric" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Error intern" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Paràmetres no vàlids" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operació no implementada" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Error E/S" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Dades corruptes" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format no vàlid" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Fitxer associat incorrecte" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fitxer massa gran" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "No hi ha prou espai en el dispositiu" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistema de fitxers de només lectura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI no vàlid" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fitxer no obert" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "El mode d'obertura no és vàlid" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Accés denegat" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Massa fitxers oberts" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fi del fitxer" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "No és un directori" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operació en progrés" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operació interrompuda" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "El fitxer ja existeix" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "S'han trobat enllaços amb bucles" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "L'operació no es permet" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "És un directori" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "No hi ha prou memòria" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "No s'ha trobat el servidor" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "El nom de servidor no és vàlid" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "El servidor no té adreça" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Ha fallat l'entrada" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "S'ha cancel·lat l'operació" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directori ocupat" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "El directori no és buit" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Hi ha massa enllaços" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "El sistema de fitxers és de només lectura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "No és del mateix sistema de fitxers" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nom massa llarg" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "El servei no està disponible" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Sol·licita les dades de serveis obsolets" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Error de protocol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "No s'ha trobat el navegador mestre" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "No hi ha cap acció per defecte associada" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "No hi ha cap gestor per l'esquema d'URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "S'ha produït un error en analitzar la línia d'ordres" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "S'ha produït un error en executar l'ordre" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "S'ha esgotat el temps d'espera" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Error del servidor de noms" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "El recurs és blocat" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "La crida a la funció està desaconsellada" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "El nom del fitxer no és vàlid" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "No és un enllaç simbòlic" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Error desconegut" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u octet" msgstr[1] "%u octets" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode invàlid)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquet" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disc" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Unitat USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Unitat IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memòria portàtil" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Càmera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volum arrel" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD d'àudio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volum desconegut" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Servidor de xarxa" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "No s'ha pogut muntar la disquetera. Segurament no hi ha cap disquet a la " "unitat." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "No s'ha pogut muntar el volum. Segurament no hi ha cap medi al dispositiu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "No s'ha pogut muntar la disquetera. El disquet probablement és en un format " "que no es pot muntar." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "No s'ha pogut muntar el volum. Si és una unitat xifrada, potser s'ha fet " "servir una contrasenya o clau incorrectes." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "No s'ha pogut muntar el volum seleccionat. El volum probablement és en un " "format que no es pot muntar." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "No s'ha pogut muntar la unitat de disquet seleccionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "No s'ha pogut muntar el volum seleccionat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "No s'ha pogut muntar el volum seleccionat. Hi ha un o més programes que " "l'utilitzen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "No s'ha pogut desmuntar el volum seleccionat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "No s'ha pogut llegir del procés fill %d: (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "No s'ha pogut executar el procés de muntatge en un pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "S'ha produït un error inesperat a select() durant la lectura de dades d'un " "procés fill (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "No s'ha pogut enviar una contrasenya al procés de mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "S'ha produït un error inesperat a waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "No s'ha pogut iniciar l'ordre" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "No s'ha pogut ejectar el medi" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "No s'ha pogut desmuntar el servidor connectat." #: ../modules/computer-method.c:543 msgid "Network" msgstr "Xarxa" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Inici" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistemes de fitxers" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d desconeguda" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Xarxa de Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "No es coneix la identitat de l'ordinador remot (%s)." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Això passa quan entreu en un ordinador per primera vegada.\n" "\n" "La identitat enviada per l'ordinador remot és %s. Si voleu estar " "completament segur que és prudent continuar, contacteu amb l'administrador " "del sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Entra igualment" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancel·la l'entrada" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "No s'ha trobat un fitxer de configuració vàlid a %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Utilitzeu la variable d'entorn %s per a especificar una localització " "diferent.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "El vostre servidor intermediari d'HTTP requereix que hi entreu.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Heu d'entrar primer per a poder accedir a «%s».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "La vostra contrasenya es transmetrà sense xifrar." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "La vostra contrasenya es transmetrà xifrada." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Heu d'entrar per a poder accedir a %s sota el domini %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Heu d'entrar per a poder accedir a %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplicació de visualització de components predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplicació de terminal predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument d'execució per al terminal predeterminat" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "L'aplicació a usar per a visualitzar fitxers que requereixen un component " "per a poder ser visualitzats. Es reemplaçarà el paràmetre %s amb l'URI del " "fitxer, i es reemplaçarà el paràmetre %c amb l'IID del component." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "L'aplicació de terminal a usar per defecte per a aplicacions que requereixin " "un terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "L'argument d'execució a usar per a l'aplicació de terminal predeterminada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Executa l'ordre en un terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «aim», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «callto», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «ghelp», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «h323», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «http», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «https», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «info», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «mailto», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «man», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "L'ordre utilitzada per a gestionar URL «trash», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "El gestor per a els URL «aim»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "El gestor per a els URL «callto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "El gestor per a els URL «ghelp»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "El gestor per a els URL «h323»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "El gestor per a els URL «http»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "El gestor per a els URL «https»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "El gestor per a els URL «info»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "El gestor per a els URL «mailto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "El gestor per a els URL «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "El gestor per a els URL «trash»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «aim»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «callto»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «ghelp»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «h323»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «http»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «https»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «info»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «mailto»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «man»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «trash»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Vertader si el programa per a gestionar aquest URL hauria d'executar-se en " "un terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «aim»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «callto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «ghelp»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «h323»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «http»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «https»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «info»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «mailto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Si l'ordre especificada hauria de gestionar els URL «trash»" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Llista separada per comes de dominis DNS-SD que haurien de ser visibles a la " "ubicació «network:///»." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dominis extra dins dels quals cercar serveis DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Com mostrar serveis DNS-SD locals" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Els valors possibles són «merged», «separate» i «disabled»." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentica les connexions al servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuració automàtica del servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Habilita els paràmetres del servidor intermediari quan s'accedeix a HTTP per " "Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nom del servidor intermediari d'FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port del servidor intermediari d'FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nom del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Contrasenya del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nom d'usuari del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Si és vertader, les connexions al servidor intermediari requereixen " "autenticació. La combinació usuari/contrasenya és definida per «/system/" "http_proxy/authentication_user» i «/system/http_proxy/" "authentication_password»." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Ordinadors sense servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Contrasenya a passar com autenticació quan es fa servir el servidor " "intermediari d'HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mode de configuració del servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nom del servidor intermediari de SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port del servidor intemediari de SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Port del servidor intermediari d'HTTP segur" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port del servidor intermediari d'HTTP segur" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Selecciona el mode de configuració del servidor intermediari. Els valors " "disponibles són «none» (cap), «manual», «auto»." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "El nom del servidor que fa de servidor intermediari d'FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "El nom del servidor que fa de servidor intemediari d'HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "El nom del servidor que fa de servidor intermediari d'HTTP segur." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "El nom del servidor que fa de servidor intermediari de socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "El port a l'ordinador definit per «/system/http_proxy/host» pel que escolta " "el servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "El port a l'ordinador definit per «/system/proxy/ftp_host» pel que escolta el " "servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "El port a l'ordinador definit per «/system/proxy/secure_host» pel que escolta " "el servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "El port a l'ordinador definit per «/system/proxy/socks_host» pel que escolta " "el servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Aquesta clau conté una llista d'ordinadors als que s'està connectat " "directament, i no a través d'un servidor intermediari (si és actiu). Els " "valors poden ser noms d'ordinador, dominis (usant un comodí inicial, com *." "foo.com), adreces IP d'ordinadors (tant IPv4 com IPv6) i adreces de xarxa " "amb una màscara de xarxa (alguna cosa com 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL que proveeix valors de configuració del servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Utilitza un servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Nom d'usuari a passar com autenticació quan es fa servir el servidor " "intermediari d'HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grup de treball d'SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "El grup de treball o domini de la xarxa de Windows al qual pertany l'usuari. " "Per a que un grup de treball nou tingui efecte, és possible que l'usuari " "necessite sortir i tornar a entrar." #~ msgid "Could not initialize Bonobo" #~ msgstr "No s'ha pogut inicialitzar Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "No s'ha pogut inicialitzar gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "Factoria de Moniker estàndard" #~ msgid "file MonikerExtender" #~ msgstr "fitxer MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "Moniker de Gnome VGS genèric" #~ msgid "generic file moniker" #~ msgstr "Moniker de fitxer genèric" #~ msgid "Display SCSI drives" #~ msgstr "Mostra les unitats SCSI" #~ msgid "Display SCSI optical drives" #~ msgstr "Mostra les unitats òptiques SCSI" #~ msgid "Display drives with removable media" #~ msgstr "Mostra les unitats amb medis extraïbles" #~ msgid "Display external drives" #~ msgstr "Mostra les unitats externes" #~ msgid "Display internal hard drives" #~ msgstr "Mostra els discs durs interns" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats òptiques SCSI encara que /system/" #~ "storage/display_scsi_drives siga FALS." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats i volums muntables de les unitats SCSI." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Si s'hauria de mostrar unitats i volums muntables de les unitats amb " #~ "medis extraïbles (p. ex. unitats on els medis es poden inserir i " #~ "extraure)." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats i els volums muntables de unitats " #~ "externes (p. ex. unitats «hotplug», és a dir, unitats que es poden afegir " #~ "i extreure mentres s'executa el sistema)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats i volums muntables de discs durs " #~ "interns (les unitats òptiques no SCSI sempre es mostren)." #~ msgid "The window workgroup the user is part of" #~ msgstr "El grup de treball de Windows del qual és part l'usuari" #~ msgid "Optical Disc" #~ msgstr "Disc òptic" #~ msgid "Memory Stick Media" #~ msgstr "Medi de llàpis de memòria" #~ msgid "Smart Media Media" #~ msgstr "Medi Smart Media" #~ msgid "Mac OS disk" #~ msgstr "Disc de Mac OS" #~ msgid "Mac OS X disk" #~ msgstr "Disc de Mac OS X" #~ msgid "Windows Disk" #~ msgstr "Disc de Windows" #~ msgid "Linux Disk" #~ msgstr "Disc de Linux" #~ msgid "File could not be opened: %s" #~ msgstr "No s'ha pogut obrir el fitxer: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "No s'ha pogut obrir el fitxer «%s»: %s" #~ msgid "File is empty" #~ msgstr "El fitxer és buit" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "les entrades desktop contenen la línia «%s» que no és una entrada, grup o " #~ "comentari" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "el fitxer d'entrades desktop no comença amb un grup d'inici legal" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "les entrades desktop contenen la línia «%s» que no és UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "les entrades desktop contenen la codificació desconeguda «%s»" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "les entrades desktop no tenen grup «%s»" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "les entrades desktop no tenen la clau «%s»" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "les entrades desktop contenen la clau «%s» amb un valor que no es pot " #~ "interpretar." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "les entrades desktop no contenen cap valor traduir per a la clau «%s» per " #~ "al locale «%s»." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "les entrades desktop contenen la seqüència d'escapada «%s» invàlida" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "" #~ "les entrades desktop contenen caràcters d'escapada al final de la línia" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "El valor «%s» no es pot interpretar com un nombre." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "El valor «%s» no es pot interpretar com un booleà." #~ msgid "Applications" #~ msgstr "Aplicacions" #~ msgid "Cards" #~ msgstr "Targetes" #~ msgid "Files" #~ msgstr "Fitxers" #~ msgid "Folders" #~ msgstr "Carpetes" #~ msgid "Help" #~ msgstr "Ajuda" #~ msgid "Hosts" #~ msgstr "Ordinadors" #~ msgid "Links" #~ msgstr "Enllaços" #~ msgid "Mail" #~ msgstr "Correu" #~ msgid "Tools" #~ msgstr "Eines" #~ msgid "Windows" #~ msgstr "Finestres" #~ msgid "H323 URL handler" #~ msgstr "Gestor d'URL H323" #~ msgid "HTTP URL handler" #~ msgstr "Gestor d'URL HTTP" #~ msgid "HTTPS URL handler" #~ msgstr "Gestor d'URL HTTPS" #~ msgid "callto URL handler" #~ msgstr "Gestor d'URL callto" #~ msgid "ghelp URL handler" #~ msgstr "Gestor d'URL ghelp" #~ msgid "info URL handler" #~ msgstr "Gestor d'URL info" #~ msgid "mailto URL handler" #~ msgstr "Gestor d'URL mailto" #~ msgid "man URL handler" #~ msgstr "Gestor d'URL man" #~ msgid "trash URL handler" #~ msgstr "Gestor d'URL trash" #~ msgid "3D Studio image" #~ msgstr "imatge 3D Studio" #~ msgid "AIFC audio" #~ msgstr "àudio AIFC" #~ msgid "AIFF audio" #~ msgstr "àudio AIFF" #~ msgid "ANIM animation" #~ msgstr "animació ANIM" #~ msgid "AVI video" #~ msgstr "vídeo AVI" #~ msgid "AbiWord document" #~ msgstr "document AbiWord" #~ msgid "Adobe FrameMaker font" #~ msgstr "font Adobe FrameMaker" #~ msgid "Adobe font metrics" #~ msgstr "mètrica de font Adobe" #~ msgid "Andrew Toolkit inset" #~ msgstr "sagnia Andrew Toolkit" #~ msgid "ApplixWare Graphics image" #~ msgstr "imatge ApplixWare Graphics" #~ msgid "Applixware Words document" #~ msgstr "document Applixware Words" #~ msgid "Applixware spreadsheet" #~ msgstr "full de càlcul Applixware" #~ msgid "AutoCAD image" #~ msgstr "imatge AutoCAD" #~ msgid "BCPIO document" #~ msgstr "document BCPIO" #~ msgid "BDF font" #~ msgstr "font BDF" #~ msgid "C shell script" #~ msgstr "seqüència d'intèrpret d'ordres C" #~ msgid "C source code" #~ msgstr "codi font C" #~ msgid "C source code header" #~ msgstr "capçalera de codi font C" #~ msgid "C++ source code" #~ msgstr "codi font C++" #~ msgid "CGI program" #~ msgstr "programa CGI" #~ msgid "CGM image" #~ msgstr "imatge CGM" #~ msgid "CMU raster image" #~ msgstr "imatge CMU raster" #~ msgid "CPIO archive" #~ msgstr "arxiu CPIO" #~ msgid "CPIO archive (gzip-compressed)" #~ msgstr "arxiu CPIO (comprimit amb gzip)" #~ msgid "DCL script" #~ msgstr "Seqüència DCL" #~ msgid "DOS font" #~ msgstr "font DOS" #~ msgid "DOS/Windows program" #~ msgstr "programa DOS/Windows" #~ msgid "DSSSL document" #~ msgstr "document DSSSL" #~ msgid "DXF vector graphic" #~ msgstr "gràfic vectorial DXF" #~ msgid "Debian package" #~ msgstr "paquet Debian" #~ msgid "Dia diagram" #~ msgstr "diagrama Dia" #~ msgid "Emacs Lisp source code" #~ msgstr "codi font Emacs Lisp" #~ msgid "Enlightenment theme" #~ msgstr "tema Enlightenment" #~ msgid "FLC animation" #~ msgstr "animació FLC" #~ msgid "FLI animation" #~ msgstr "animació FLI" #~ msgid "FastTracker II audio" #~ msgstr "àudio FastTracker II" #~ msgid "Fortran source code" #~ msgstr "codi font Fortran" #~ msgid "FrameMaker interchange document" #~ msgstr "document d'intercanvi FrameMaker" #~ msgid "G3 fax image" #~ msgstr "imatge fax G3" #~ msgid "GIF image" #~ msgstr "imatge GIF" #~ msgid "GIMP document" #~ msgstr "document GIMP" #~ msgid "GMC link" #~ msgstr "enllaç GMC" #~ msgid "GNOME application details" #~ msgstr "Detalls de l'aplicació GNOME" #~ msgid "GNU Oleo Spreadsheet" #~ msgstr "full de càlcul GNU Oleo" #~ msgid "GNU mail message" #~ msgstr "missatge de correu GNU" #~ msgid "Glade project" #~ msgstr "projecte Glade" #~ msgid "GnuCash Workbook" #~ msgstr "llibre de treball GnuCash" #~ msgid "Gnumeric spreadsheet" #~ msgstr "full de càlcul Gnumeric" #~ msgid "HDF document" #~ msgstr "document HDF" #~ msgid "HTML page" #~ msgstr "pàgina HTML" #~ msgid "IDL document" #~ msgstr "document IDL" #~ msgid "IEF image" #~ msgstr "imatge IEF" #~ msgid "IFF image" #~ msgstr "imatge IFF" #~ msgid "ILBM image" #~ msgstr "imatge ILBM" #~ msgid "ISI video" #~ msgstr "vídeo ISI" #~ msgid "Impulse Tracker audio" #~ msgstr "àudio Impulse Tracker" #~ msgid "JBuilder Project" #~ msgstr "projecte JBuilder" #~ msgid "JPEG image" #~ msgstr "imatge JPEG" #~ msgid "Java byte code" #~ msgstr "codi de bytes Java" #~ msgid "Java source code" #~ msgstr "codi font Java" #~ msgid "KDE application details" #~ msgstr "Detalls de l'aplicació KDE" #~ msgid "KIllustrator document" #~ msgstr "document KIllustrator" #~ msgid "KPresenter presentation" #~ msgstr "presentació KPresenter" #~ msgid "KSpread spreadsheet" #~ msgstr "full de càlcul KSpread" #~ msgid "KWord document" #~ msgstr "document KWord" #~ msgid "Korn shell script" #~ msgstr "seqüència d'intèrpret d'ordres Korn" #~ msgid "LHA archive" #~ msgstr "arxiu LHA" #~ msgid "LHARC archive" #~ msgstr "arxiu LHARC" #~ msgid "LIBGRX font" #~ msgstr "font LIBGRX" #~ msgid "LightWave object" #~ msgstr "objecte LightWave" #~ msgid "LightWave scene" #~ msgstr "escena LightWave" #~ msgid "Linux PSF console font" #~ msgstr "font de consola Linux PSF" #~ msgid "Lotus 1-2-3 spreadsheet" #~ msgstr "full de càlcul Lotus 1-2-3" #~ msgid "M3 audio URL" #~ msgstr "URL d'àudio M3" #~ msgid "MIDI audio" #~ msgstr "àudio MIDI" #~ msgid "MOD audio" #~ msgstr "àudio MOD" #~ msgid "MP3 audio" #~ msgstr "àudio MP3" #~ msgid "MP3 audio playlist" #~ msgstr "selecció de peces d'àudio MP3" #~ msgid "MPEG video" #~ msgstr "vídeo MPEG" #~ msgid "MS ASF video" #~ msgstr "vídeo MS ASF" #~ msgid "MS video" #~ msgstr "vídeo MS" #~ msgid "Macintosh AppleDouble-encoded file" #~ msgstr "fitxer codificat Macintosh AppleDouble" #~ msgid "Macintosh BinHex-encoded file" #~ msgstr "fitxer codificat Macintosh BinHex" #~ msgid "Macintosh StuffIt archive" #~ msgstr "arxiu Macintosh StuffIt" #~ msgid "Macromedia Flash file" #~ msgstr "fitxer Macromedia Flash" #~ msgid "MathML document" #~ msgstr "document MathML" #~ msgid "Microsoft Excel spreadsheet" #~ msgstr "full de càlcul Microsoft Excel" #~ msgid "Microsoft PowerPoint document" #~ msgstr "document Microsoft PowerPoint" #~ msgid "Microsoft Word document" #~ msgstr "document Microsoft Word" #~ msgid "Microsoft video" #~ msgstr "vídeo Microsoft" #~ msgid "Nautilus link" #~ msgstr "enllaç Nautilus" #~ msgid "ODA document" #~ msgstr "document ODA" #~ msgid "PBM image" #~ msgstr "imatge PBM" #~ msgid "PCF font" #~ msgstr "font PCF" #~ msgid "PDF document" #~ msgstr "document PDF" #~ msgid "PEF program" #~ msgstr "programa PEF" #~ msgid "PGM image" #~ msgstr "imatge PGM" #~ msgid "PGN chess game" #~ msgstr "joc d'escacs PGN" #~ msgid "PGP keys" #~ msgstr "claus PGP" #~ msgid "PGP message" #~ msgstr "missatge PGP" #~ msgid "PGP signature" #~ msgstr "signatura PGP" #~ msgid "PGP-encrypted file" #~ msgstr "fitxer codificat PGP" #~ msgid "PHP script" #~ msgstr "seqüència PHP" #~ msgid "PN RealAudio document" #~ msgstr "document PN RealAudio" #~ msgid "PNG image" #~ msgstr "imatge PNG" #~ msgid "PNM image" #~ msgstr "imatge PNM" #~ msgid "PPM image" #~ msgstr "imatge PPM" #~ msgid "Palm OS database" #~ msgstr "base de dades Palm OS" #~ msgid "Perl script" #~ msgstr "Seqüència Perl" #~ msgid "Photoshop document" #~ msgstr "document Photoshop" #~ msgid "PostScript Type 1 font" #~ msgstr "font PostScript Tipus 1" #~ msgid "PostScript document" #~ msgstr "document PostScript" #~ msgid "Python source code" #~ msgstr "codi font Python" #~ msgid "QuickTime movie" #~ msgstr "pel·lícula QuickTime" #~ msgid "Quicken document" #~ msgstr "document Quicken" #~ msgid "Quicken for Windows document" #~ msgstr "Quicken per a document Windows" #~ msgid "RAR archive" #~ msgstr "arxiu RAR" #~ msgid "README document" #~ msgstr "document README" #~ msgid "RGB image" #~ msgstr "imatge RGB" #~ msgid "RIFF audio" #~ msgstr "àudio RIFF" #~ msgid "RPM package" #~ msgstr "paquet RPM" #~ msgid "RealAudio/Video document" #~ msgstr "document RealAudio/Video" #~ msgid "RealVideo video" #~ msgstr "vídeo RealVideo" #~ msgid "S/MIME file" #~ msgstr "Fitxer S/MIME" #~ msgid "S/MIME signature" #~ msgstr "signatura S/MIME" #~ msgid "SGI video" #~ msgstr "vídeo SGI" #~ msgid "SGML document" #~ msgstr "document SGML" #~ msgid "SMIL script" #~ msgstr "seqüència SMIL" #~ msgid "SQL code" #~ msgstr "codi SQL" #~ msgid "SV4 CPIO archive" #~ msgstr "arxiu SV4 CPIO" #~ msgid "SV4 CPIP archive (with CRC)" #~ msgstr "arxiu SV4 CPIP (amb CRC)" #~ msgid "SVG art" #~ msgstr "art SVG" #~ msgid "Scream Tracker 3 audio" #~ msgstr "àudio Scream Tracker 3" #~ msgid "Scream Tracker audio" #~ msgstr "àudio Scream Tracker" #~ msgid "Scream Tracker instrument" #~ msgstr "instrument Scream Tracker" #~ msgid "Setext document" #~ msgstr "document Setext" #~ msgid "Speech document" #~ msgstr "document Speech" #~ msgid "Speedo font" #~ msgstr "font Speedo" #~ msgid "Spreadsheet Interchange document" #~ msgstr "document SpreadSheet Interchange" #~ msgid "Stampede package" #~ msgstr "paquet Stampede" #~ msgid "StarOffice Writer document" #~ msgstr "document StarOffice Writer" #~ msgid "StarOffice presentation" #~ msgstr "presentació StarOffice" #~ msgid "StarOffice spreadsheet" #~ msgstr "full de càlcul StarOffice" #~ msgid "Sun mu-law audio" #~ msgstr "àudio Sun µ-law" #~ msgid "SunOS News font" #~ msgstr "font SunOS News" #~ msgid "TIFF image" #~ msgstr "imatge TIFF" #~ msgid "TarGA image" #~ msgstr "imatge TarGA" #~ msgid "Tcl script" #~ msgstr "seqüència Tcl" #~ msgid "TeX document" #~ msgstr "document TeX" #~ msgid "TeX dvi document" #~ msgstr "document TeX dvi" #~ msgid "TeX font" #~ msgstr "font TeX" #~ msgid "TeX font metrics" #~ msgstr "mètrica de font TeX" #~ msgid "TeXInfo document" #~ msgstr "document TeXInfo" #~ msgid "ToutDoux document" #~ msgstr "document ToutDoux" #~ msgid "TrueType font" #~ msgstr "font TrueType" #~ msgid "USENET news message" #~ msgstr "missatge USENET" #~ msgid "Unidata netCDF document" #~ msgstr "document netCDF Unidata" #~ msgid "V font" #~ msgstr "font V" #~ msgid "VOC audio" #~ msgstr "àudio VOC" #~ msgid "VRML document" #~ msgstr "document VRML" #~ msgid "Vivo video" #~ msgstr "vídeo Vivo" #~ msgid "WAIS source code" #~ msgstr "codi font WAIS" #~ msgid "Wavelet video" #~ msgstr "vídeo Wavelet" #~ msgid "Windows bitmap image" #~ msgstr "imatge de mapa de bits Windows" #~ msgid "Windows metafile graphics" #~ msgstr "gràfics de metafitxer Windows" #~ msgid "WordPerfect document" #~ msgstr "document WordPerfect" #~ msgid "X bitmap image" #~ msgstr "imatge de mapa de bits X" #~ msgid "X window image" #~ msgstr "imatge X Window" #~ msgid "XML document" #~ msgstr "document XML" #~ msgid "XPM image" #~ msgstr "imatge XPM" #~ msgid "Xbase database" #~ msgstr "base de dades Xbase" #~ msgid "active server page" #~ msgstr "pàgina del servidor actiu" #~ msgid "address card" #~ msgstr "targeta d'adreces" #~ msgid "ar archive" #~ msgstr "arxiu ar" #~ msgid "arj archive" #~ msgstr "arxiu arj" #~ msgid "authors list" #~ msgstr "llistat d'autors" #~ msgid "backup file" #~ msgstr "còpia de seguretat" #~ msgid "basic audio" #~ msgstr "àudio bàsic" #~ msgid "bibliography record" #~ msgstr "registre bibliogràfic" #~ msgid "binary program" #~ msgstr "programa binari" #~ msgid "block device" #~ msgstr "dispositiu de bloqueig" #~ msgid "bzip-compressed file" #~ msgstr "fitxer comprimit amb bzip" #~ msgid "calendar file" #~ msgstr "fitxer calendari" #~ msgid "calendar or event document" #~ msgstr "document calendari o esdeveniment" #~ msgid "character device" #~ msgstr "dispositiu de caràcters" #~ msgid "comma-separated text document" #~ msgstr "document separat per comes" #~ msgid "compound document" #~ msgstr "document compost" #~ msgid "compress-compressed file" #~ msgstr "fitxer comprimit amb compress" #~ msgid "compressed GIMP document" #~ msgstr "document comprimit amb GIMP" #~ msgid "directory information file" #~ msgstr "fitxer d'informació del directori" #~ msgid "document type definition" #~ msgstr "definició del tipus de document" #~ msgid "email message" #~ msgstr "missatge de correu electrònic" #~ msgid "encrypted message" #~ msgstr "missatge encriptat" #~ msgid "enriched text document" #~ msgstr "document de text enriquit" #~ msgid "gtar archive" #~ msgstr "arxiu gtar" #~ msgid "gzip-compressed file" #~ msgstr "fitxer comprimit amb gzip" #~ msgid "help page" #~ msgstr "pàgina d'ajuda" #~ msgid "mail delivery report" #~ msgstr "informe del lliurament del correu" #~ msgid "mail disposition report" #~ msgstr "informe de la clasificació del correu" #~ msgid "mail system report" #~ msgstr "informe de sistema de correu" #~ msgid "makefile" #~ msgstr "makefile" #~ msgid "manual page" #~ msgstr "pàgina manual" #~ msgid "manual page (compressed)" #~ msgstr "pàgina manual (comprimida)" #~ msgid "message digest" #~ msgstr "resum del missatge" #~ msgid "message in several formats" #~ msgstr "missatge en diferents formats" #~ msgid "multi-part message" #~ msgstr "missatge multipart" #~ msgid "named pipe" #~ msgstr "conducte designat" #~ msgid "object code" #~ msgstr "codi objecte" #~ msgid "ogg audio" #~ msgstr "àudio ogg" #~ msgid "partial email message" #~ msgstr "missatge de correu parcial" #~ msgid "plain text document" #~ msgstr "document de text" #~ msgid "profiler results" #~ msgstr "resultats del perfilador" #~ msgid "reference to remote file" #~ msgstr "refèrencia al fitxer remot" #~ msgid "rejected patch file" #~ msgstr "fitxer pedaç rebutjat" #~ msgid "rich text document" #~ msgstr "document de text enriquit" #~ msgid "search results" #~ msgstr "resultats de la cerca" #~ msgid "shared library" #~ msgstr "biblioteca compartida" #~ msgid "shell archive" #~ msgstr "arxiu d'intèrpret d'ordres" #~ msgid "shell script" #~ msgstr "Seqüència de l''intèrpret d'ordres" #~ msgid "signed message" #~ msgstr "missatge signat" #~ msgid "socket" #~ msgstr "sòcol" #~ msgid "software author credits" #~ msgstr "crèdits d'autoria del programari" #~ msgid "software installation instructions" #~ msgstr "instruccions d'instal·lació del programari" #~ msgid "software license terms" #~ msgstr "condicions de la llicència del programari" #~ msgid "source code patch" #~ msgstr "pedaç de codi font" #~ msgid "style sheet" #~ msgstr "full d'estil" #~ msgid "tab-separated text document" #~ msgstr "document de text separat per tabulació" #~ msgid "tar archive" #~ msgstr "arxiu tar" #~ msgid "tar archive (bzip2-compressed)" #~ msgstr "arxiu tar (comprimit amb bzip2)" #~ msgid "tar archive (gzip-compressed)" #~ msgstr "arxiu tar (comprimit amb gzip)" #~ msgid "theme" #~ msgstr "tema" #~ msgid "troff document" #~ msgstr "document troff" #~ msgid "troff me input document" #~ msgstr "document d'entrada troff me" #~ msgid "troff mm input document" #~ msgstr "document d'entrada troff mm" #~ msgid "troff ms input document" #~ msgstr "document d'entrada troff ms" #~ msgid "unknown type" #~ msgstr "tipus desconegut" #~ msgid "ustar archive" #~ msgstr "arxiu ustar" #~ msgid "wave audio" #~ msgstr "àudio wave" #~ msgid "web folder" #~ msgstr "carpeta web" #~ msgid "xfig vector graphic" #~ msgstr "gràfic vectorial xfig" #~ msgid "zoo archive" #~ msgstr "arxiu zoo" #~ msgid "GNOME VFS already initialized." #~ msgstr "GNOME VFS ja està inicialitzat." #~ msgid "%s to retrieve" #~ msgstr "%s per recuperar" #~ msgid "Closing connection to %s" #~ msgstr "S'està tancant la connexió a %s" #~ msgid "%s of %s read" #~ msgstr "%s de %s llegit" #~ msgid "%s read" #~ msgstr "%s llegit" #~ msgid "Dying." #~ msgstr "S'està morint." #~ msgid "Error reading: %s" #~ msgstr "Error en llegir: %s" #~ msgid "Error writing: %s" #~ msgstr "Error en escriure: %s" #~ msgid "Cannot write: %s" #~ msgstr "No es pot escriure: %s" #~ msgid "Cannot create temporary file name `%s'" #~ msgstr "No es pot crear el fitxer temporal de nom `%s'" #~ msgid "Cannot create socket: %s" #~ msgstr "No es pot crear l'enllaç: %s" #~ msgid "Cannot bind `%s': %s" #~ msgstr "No es pot vincular `%s': %s" #~ msgid "Cannot listen on `%s': %s" #~ msgstr "No es pot atendre a `%s': %s" #~ msgid "Cannot accept connections on `%s': %s" #~ msgstr "No es poden acceptar connexions en `%s': %s" #~ msgid "Cannot resolve initial reference to RootPOA." #~ msgstr "No es pot resoldre la referència inicial al RootPOA." #~ msgid "Cannot activate POA manager." #~ msgstr "No es pot activar el gestor POA." #~ msgid "Usage: %s []\n" #~ msgstr "Utilització: %s []\n" #~ msgid "Cannot open file descriptor %d." #~ msgstr "No es pot obrir el descriptor de fitxers %d." #~ msgid "Notify interface for `%s' not found." #~ msgstr "No s'ha trobat la interfície de notificació per a `%s'." #~ msgid "Cannot setup Request object." #~ msgstr "No es pot configurar l'objecte demanat." #~ msgid "Cannot extract IOR." #~ msgstr "No es pot extreure l'IOR." #~ msgid "Got weird string from the slave process: `%s'" #~ msgstr "S'ha obtingut una cadena estranya del procés esclau: `%s' " #~ msgid "Cannot get object for `%s'" #~ msgstr "No es pot obtenir l'objecte per a `%s'" #~ msgid "Cannot kill GNOME::VFS::Slave::Notify -- exception %s" #~ msgstr "No es pot matar GNOME::VFS::Esclau::Notifica -- excepció %s" #~ msgid "Cannot connect socket `%s': %s" #~ msgstr "No es pot connectar l'enllaç `%s': %s" #~ msgid "Cannot initialize GNOME::VFS:Slave::Notify" #~ msgstr "No es pot inicialitzar GNOME::VFS:Esclau::Notifica" #~ msgid "Cannot reset GNOME::VFS::Slave %s -- exception %s" #~ msgstr "No es pot reinicialitzar GNOME::VFS::Esclau %s -- excepció %s" #~ msgid "Cannot reset GNOME::VFS::Slave (IOR unknown) -- exception %s" #~ msgstr "" #~ "No es pot reinicialitzar GNOME::VFS::Esclau (IOR unknown) -- excepció %s" #~ msgid "Cannot kill GNOME::VFS::Slave %s -- exception %s" #~ msgstr "No es pot matar GNOME::VFS::Esclau %s -- excepció %s" #~ msgid "Cannot kill GNOME::VFS::Slave (IOR unknown) -- exception %s" #~ msgstr "No es pot matar GNOME::VFS::Esclau (IOR unknown) -- excepció %s" #~ msgid "Back" #~ msgstr "Enrere" #~ msgid "Go to the previously visited directory" #~ msgstr "Vés al directori visitat anteriorment" #~ msgid "Up" #~ msgstr "Amunt" #~ msgid "Go to the parent directory" #~ msgstr "Vés al directori pare" #~ msgid "Forward" #~ msgstr "Endavant" #~ msgid "Go to the next visited directory" #~ msgstr "Vés al directori visitat següent" #~ msgid "Rescan" #~ msgstr "Torna a explorar" #~ msgid "Rescan the current directory" #~ msgstr "Torna a explorar el directori actual" #~ msgid "Go to the home directory" #~ msgstr "Vés al directori arrel" #~ msgid "Size" #~ msgstr "Mida" #~ msgid "Date" #~ msgstr "Data" #~ msgid "Enter name:" #~ msgstr "Introduïu el nom:" #~ msgid "Show:" #~ msgstr "Mostra:" #~ msgid "Show dotfiles" #~ msgstr "Mostra els fiters de plantilla" #~ msgid "Edit Applications List" #~ msgstr "Edita la llista d'aplicacions" #~ msgid "Select applications to appear in menu for MIME type \"%s\"" #~ msgstr "" #~ "Seleccioneu les aplicacions que han d'aparèixer al menú per al tipus de " #~ "MIME \"%s\"" #~ msgid "Add Application..." #~ msgstr "Afegeix una aplicació..." #~ msgid "Edit Application..." #~ msgstr "Edita una aplicació..." #~ msgid "Edit Components List" #~ msgstr "Edita la llista de components" #~ msgid "Select views to appear in menu for MIME type \"%s\"" #~ msgstr "" #~ "Seleccioneu les vistes que han d'aparèixer al menú per al tipus de MIME " #~ "\"%s\"" #~ msgid "" #~ "The MIME type entered contained upper case characters. Upper case " #~ "characters were changed to lower case for you." #~ msgstr "" #~ "El tipus de MIME introduït contenia caràcters en majúscules; aquests " #~ "caràcters s'han canviat a minúscules per a la vostra comoditat." #~ msgid "Add New MIME Type" #~ msgstr "Afegeix un tipus nou de MIME" #~ msgid "Add MIME Type" #~ msgstr "Afegeix un tipus de MIME" #~ msgid "New MIME type (e.g. image/x-thumper):" #~ msgstr "Tipus nou de MIME (p.ex. image/x-thumper):" #~ msgid "Description (e.g. Thumper image):" #~ msgstr "Descripció (p.ex. imatge Thumper):" #~ msgid "File Extensions " #~ msgstr "Extensions de fitxer " #~ msgid "Add..." #~ msgstr "Afegeix..." #~ msgid " Remove " #~ msgstr " Elimina " #~ msgid "Add New Extension" #~ msgstr "Afegeix una nova extensió" #~ msgid "" #~ "Type in the extensions for this mime-type (without dot).\n" #~ "You can enter several extensions seperated by a space,\n" #~ "for example: html htm" #~ msgstr "" #~ "Escriviu les extensions per a aquest tipus de MIME (sense el punt).\n" #~ "Podeu introduir diverses extensions separant-les amb un espai,\n" #~ "per exemple: html htm" #~ msgid "Extension:" #~ msgstr "Extensió:" #~ msgid "You must enter a name." #~ msgstr "Heu d'introduir un nom." #~ msgid "You must enter a command." #~ msgstr "Heu d'introduir una ordre." #~ msgid "" #~ "\"%s\" does not exist or is not executable.\n" #~ "Check your spelling and make sure you have\n" #~ "the right permissions to execute this file." #~ msgstr "" #~ "\"%s\" no existeix o no és un executable.\n" #~ "Comproveu que ho heu escrit correctament i que teniu\n" #~ "els permisos necessaris per executar aquest fitxer." #~ msgid "" #~ "The command \"%s\" cannot be found.\n" #~ "You must use a command that can work from any command line." #~ msgstr "" #~ "No es pot trobar l'ordre \"%s\".\n" #~ "Heu d'utilitzar una ordre que funcioni des de qualsevol línia d'ordres." #~ msgid "Bad Application Name" #~ msgstr "Nom incorrecte de l'aplicació" #~ msgid "Bad Application Command" #~ msgstr "Ordre incorrecta de l'aplicació" #~ msgid "Edit Application" #~ msgstr "Edita una aplicació" #~ msgid "Application Name:" #~ msgstr "Nom de l'aplicació:" #~ msgid "Application Command:" #~ msgstr "Ordre de l'aplicació:" #~ msgid "Open Behavior" #~ msgstr "Obre el comportament" #~ msgid "Can open multiple files" #~ msgstr "Es poden obrir diversos fitxers" #~ msgid "Can open from URI" #~ msgstr "Es pot obrir des de l'URI" #~ msgid "MIME Type" #~ msgstr "Tipus de MIME" #~ msgid "Change File Extensions" #~ msgstr "Canvia les extensions de fitxer" #~ msgid "Default Action:" #~ msgstr "Acció per defecte:" #~ msgid "Use Viewer" #~ msgstr "Utilitza el visualitzador" #~ msgid "Open With Application" #~ msgstr "Obre amb l'aplicació" #~ msgid "Edit List" #~ msgstr "Edita la llista" #~ msgid "Add New MIME Type..." #~ msgstr "Afegeix un nou tipus de MIME..." #~ msgid "Delete This MIME Type" #~ msgstr "Suprimeix aquest tipus de MIME" #~ msgid "Revert to System Defaults" #~ msgstr "Torna als valors per defecte del sistema" #~ msgid "None" #~ msgstr "Cap" #~ msgid "" #~ "Reverting to system settings will lose any changes\n" #~ "you have ever made to File Types and Programs.\n" #~ "Revert anyway?" #~ msgstr "" #~ "Si torneu als paràmetres del sistema perdreu qualsevol canvi\n" #~ "que mai hagueu fet als tipus de fitxer i als programes.\n" #~ "Voleu tornar-hi igualment?" #~ msgid "none" #~ msgstr "cap" #~ msgid "View as %s" #~ msgstr "Visualitza com a %s" #~ msgid "Description" #~ msgstr "Descripció" #~ msgid "Default Action" #~ msgstr "Acció per defecte" #~ msgid "Can't find an hbox, using a normal file selection" #~ msgstr "" #~ "No es pot trobar cap hbox, s'està utilitzant una selecció de fitxer normal" #~ msgid "Preview" #~ msgstr "Previsualitza" #~ msgid "Select an icon" #~ msgstr "Seleccioneu una icona" #~ msgid "Unknown sort rule %d" #~ msgstr "Regla d'ordenació desconeguda %d" #~ msgid "Error writing to the wakeup GnomeVFSJob channel." #~ msgstr "Error en escriure en el canal d'avís GnomeVFSJob" #~ msgid "" #~ "Add a new Mime Type\n" #~ "For example: image/tiff; text/x-scheme" #~ msgstr "" #~ "Afegiu un nou tipus de MIME\n" #~ "Per exemple: image/tiff; text/x-scheme" #~ msgid "Mime Type:" #~ msgstr "Tipus de MIME:" #~ msgid "Type in a description for this mime-type." #~ msgstr "Escriviu una desripció per a aquest tipus de MIME." #~ msgid "Description:" #~ msgstr "Descripció:" #~ msgid "New Application" #~ msgstr "Nova aplicació" #~ msgid "Action" #~ msgstr "Acció" #~ msgid "HTTP server returned an invalid PROPFIND response" #~ msgstr "El servidor HTTP ha retornat una resposta PROPFIND no vàlida" #~ msgid "ftpfs: Invalid host name." #~ msgstr "ftpfs: Nom de servidor no vàlid." #~ msgid "ftpfs: Invalid host address." #~ msgstr "ftpfs: Adreça de servidor no vàlida." #~ msgid "ftpfs: making connection to %s" #~ msgstr "ftpfs: connectant-se a %s" #~ msgid "ftpfs: connection interrupted by user" #~ msgstr "ftpfs: connexió interrompuda per l'usuari" #~ msgid "ftpfs: connection to server failed: %s" #~ msgstr "ftpfs: connexió al servidor fallida: %s" #~ msgid "Waiting to retry... %d (Control-C to cancel)" #~ msgstr "" #~ "S'està esperant per reintentar-ho... %d (Control-C per cancel·lar-ho)" #~ msgid " FTP: Password required for " #~ msgstr " FTP: Contrasenya requerida per " #~ msgid "ftpfs: sending login name" #~ msgstr "ftpfs: s'està enviant el nom d'entrada" #~ msgid "ftpfs: sending user password" #~ msgstr "ftpfs: s'està enviant la contrasenya de l'usuari" #~ msgid "ftpfs: logged in" #~ msgstr "ftpfs: connectat" #~ msgid "ftpfs: Login incorrect for user %s " #~ msgstr "ftpfs: Entrada incorrecta per a l'usuari %s " #~ msgid "ftpfs: aborting transfer." #~ msgstr "ftpfs: s'està avortant la transferència." #~ msgid "ftpfs: abort error: %s" #~ msgstr "ftpfs: error en avortar: %s" #~ msgid "ftpfs: abort failed" #~ msgstr "ftpfs: avortament fallit" #~ msgid "ftpfs: could not setup passive mode" #~ msgstr "ftpfs: no s'ha pogut configurar el mode passiu" #~ msgid "ftpfs: storing file %d (%d)" #~ msgstr "ftpfs: s'està emmagatzemant el fitxer %d (%d)" #~ msgid "ftpfs: CWD failed." #~ msgstr "ftpfs: CWD fallit." #~ msgid "ftpfs: couldn't resolve symlink" #~ msgstr "ftpfs: No s'ha pogut resoldre l'enllaç simbòlic" #~ msgid "Resolving symlink..." #~ msgstr "S'està resolent l'enllaç simbòlic..." #~ msgid "ftpfs: Reading FTP directory %s... (don't use UNIX ls options)" #~ msgstr "" #~ "ftpfs: S'està llegint el directori FTP %s... (no utilitzeu les opcions ls " #~ "de UNIX)" #~ msgid "ftpfs: Reading FTP directory %s..." #~ msgstr "ftpfs: S'està llegint el directori FTP %s..." #~ msgid "ftpfs: reading FTP directory interrupted by user" #~ msgstr "ftpfs: lectura del directori FTP interrompuda per l'usuari" #~ msgid "ftpfs: got listing" #~ msgstr "ftpfs: llistat rebut" #~ msgid "ftpfs: failed; nowhere to fallback to" #~ msgstr "ftpfs: fallit; enlloc per anar" #~ msgid "Starting linear transfer..." #~ msgstr "S'està iniciant transferència lineal..." #~ msgid "Preparing reget..." #~ msgstr "S'està preparant la recuperació..." gnome-vfs-2.24.4/po/gu.po0000644000175000001440000016616611334251016012026 00000000000000# translation of gnome-vfs.HEAD.gu.po to Gujarati # MagNet , 2004. # Ankit Patel , 2004, 2005, 2007. # Ankit Patel , 2005, 2006. # Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.gu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-04-24 03:37+0100\n" "PO-Revision-Date: 2007-07-04 15:33+0530\n" "Last-Translator: Ankit Patel \n" "Language-Team: Gujarati \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 વોલà«àª¯à«àª®" # libgnomevfs/gnome-vfs-configuration.c:223 #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u ઠNUL અકà«àª·àª°à«‹ સમાવે છે." # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u કોઈ પદà«àª§àª¤àª¿ નામ સમાવતી નથી." # libgnomevfs/gnome-vfs-configuration.c:240 #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u પાસે કોઈ વિકલà«àªªà«‹ endmarker નથી." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ને અજà«àªžàª¾àª¤ વિકલà«àªªà«‹ %s છે." # libgnomevfs/gnome-vfs-configuration.c:269 #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u કોઈ મોડà«àª¯à«àª² નામ સમાવતà«àª‚ નથી." # libgnomevfs/gnome-vfs-configuration.c:322 #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "સà«àª¯à«‹àªœàª¨àª¾ માટેની ફાઈલ `%s' શોધી શકાઇ નહિ: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d પદચà«àª›à«‡àª¦àª¨ અડધેથી બંધ થઈ ગયà«àª‚." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFFS નેટવરà«àª• વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "આપોઆપ-શોધાયેલ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM ડà«àª°àª¾àª‡àªµ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD ડિજિટલ àªàª¡àª¿àª¯à«‹" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "હારà«àª¡àªµà«‡àª° ઉપકરણ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 લિનકà«àª¸ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 લિનકà«àª¸ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "સિસà«àªŸàª® વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "મેમરી વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS નેટવરà«àª• વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows Shared વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "સન SAM-QFS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "કામચલાઉ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "સà«àª§àª¾àª°à«‡àª² DOS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "વિનà«àª¡à«‹ VFAT વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS લિનકà«àª¸ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS Volume" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "અજાણીતà«" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ફà«àª²à«‹àªªà«€ ડà«àª°àª¾àª‡àªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "સંકà«àªšàª¿àª¤ ફà«àª²à«‡àª¶ ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "મૅમરી સà«àªŸà«€àª• ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "સà«àª®àª¾àª°à«àªŸ મિડીયા ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "àªà«€àªª ડà«àª°àª¾àª‡àªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "જેઠડà«àª°àª¾àª‡àªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "પેન ડà«àª°àª¾àª‡àªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s મà«àª¯à«àªà«€àª• પà«àª²à«‡àª¯àª°" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ડિજીટલ કેમેરા" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "બાહà«àª¯ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "બà«àª²à«‡àª• CD-R ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "કોરી CD-RW ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "કોરી DVD-RAM ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "કોરી DVD-R ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "કોરી DVD-RW ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "કોરી DVD+R ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "કોરી DVD+RW ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ઓડિયો ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s દૂર કરી શકાય તેવà«àª‚ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "કદ" # libgnomevfs/gnome-vfs-job.c:714 #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾àª¨à«‹ પà«àª°àª•ાર %u જાણીતો નથી" # libgnomevfs/gnome-vfs-job.c:1005 libgnomevfs/gnome-vfs-job.c:1150 #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ખà«àª²à«àª²à«€ GIOChannel માટે પાઇપ બનાવી શકાતી નથી: %s" # libgnomevfs/gnome-vfs-job.c:1596 #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "કારà«àª¯àª¨à«‹ પà«àª°àª•ાર %u જાણીતો નથી" # libgnomevfs/gnome-vfs-job.c:1632 #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾ થોભી દેવાઇ" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "નીચà«àª‚ પડાયેલ વિધેય. MIME ડેટાબેàªàª¨à«‡ કરવામાં આવેલા સà«àª§àª¾àª°àª¾ લાંબા સમય સà«àª§à«€ આધારભૂત નથી." # libgnomevfs/gnome-vfs-parse-ls.c:652 #: ../libgnomevfs/gnome-vfs-parse-ls.c:720 #, c-format msgid "Could not parse: %s" msgstr "પદચà«àª›à«‡àª¦ કરી શકાયૠનહિ: %s" # libgnomevfs/gnome-vfs-parse-ls.c:654 #: ../libgnomevfs/gnome-vfs-parse-ls.c:722 msgid "More parsing errors will be ignored." msgstr "પદચà«àª›à«‡àª¦ કરવામાં વધારાની ભૂલો અવગણાશે." # libgnomevfs/gnome-vfs-result.c:35 #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "કોઇ ભૂલ નથી" # libgnomevfs/gnome-vfs-result.c:36 #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ફાઈલ મળી નથી" # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "સામાનà«àª¯ ભૂલ" # libgnomevfs/gnome-vfs-result.c:38 #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "આંતરિક ભૂલ" # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "અયોગà«àª¯ પરિમાણો" # libgnomevfs/gnome-vfs-result.c:40 #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "નિરાધારિત પà«àª°àª•à«àª°àª¿àª¯àª¾àª“" # # libgnomevfs/gnome-vfs-result.c:41 #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O ભૂલ" # libgnomevfs/gnome-vfs-result.c:42 #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "માહિતી ખરાબ થઇ ગયેલ છે" # libgnomevfs/gnome-vfs-result.c:43 #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "માળખૠયોગà«àª¯ નથી" # libgnomevfs/gnome-vfs-result.c:44 #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ખરાબ ફાઈલ હેનà«àª¡àª²" # libgnomevfs/gnome-vfs-result.c:45 #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ફાઈલ ખૂબ મોટી છે" # libgnomevfs/gnome-vfs-result.c:46 #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ઉપકરણ પર કોઇ ખાલી જગà«àª¯àª¾ નથી" # libgnomevfs/gnome-vfs-result.c:47 #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ફકà«àª¤ વાંચી શકાય તેવી ફાઈલ સિસà«àªŸàª®" # libgnomevfs/gnome-vfs-result.c:48 #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "અયોગà«àª¯ URI" # libgnomevfs/gnome-vfs-result.c:49 #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ફાઈલ ખà«àª²à«àª²à«€ નથી" # libgnomevfs/gnome-vfs-result.c:50 #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "ખોલવા માટેની સà«àª¥àª¿àª¤à«€ યોગà«àª¯ નથી" # libgnomevfs/gnome-vfs-result.c:51 #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "પà«àª°àª¾àªªà«àª¤ કરી શકાયà«àª‚ નહિ" # libgnomevfs/gnome-vfs-result.c:52 #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "ઘણી ફાઈલો ખà«àª²à«àª²à«€ છે" # libgnomevfs/gnome-vfs-result.c:53 #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ફાઈલનો અંત" # libgnomevfs/gnome-vfs-result.c:54 #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "આ ડિરેકà«àªŸàª°à«€ નથી" # libgnomevfs/gnome-vfs-result.c:55 #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾ ચાલૠછે" # libgnomevfs/gnome-vfs-result.c:56 #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾ અંતરાય છે" # libgnomevfs/gnome-vfs-result.c:57 #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ફાઈલ ઉપલબà«àª§ છે" # libgnomevfs/gnome-vfs-result.c:58 #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "પà«àª¨àª°àª¾àªµàª°à«àª¤àª¿àª¤ કડીઓ મળી છે" # libgnomevfs/gnome-vfs-result.c:59 #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾ માટે પરવાનગી નથી" # libgnomevfs/gnome-vfs-result.c:60 #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "શà«àª‚ આ ડિરેકà«àªŸàª°à«€ છે" # libgnomevfs/gnome-vfs-result.c:61 #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "પૂરતી મેમરી નથી" # libgnomevfs/gnome-vfs-result.c:62 #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "યજમાન મળતો નથી" # libgnomevfs/gnome-vfs-result.c:63 #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "યજમાનનà«àª‚ નામ અયોગà«àª¯ છે" # libgnomevfs/gnome-vfs-result.c:64 #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "યજમાનનà«àª‚ કોઇ સરનામà«àª‚ નથી" # libgnomevfs/gnome-vfs-result.c:65 #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "પà«àª°àªµà«‡àª¶ પà«àª°àª•à«àª°àª¿àª¯àª¾ નિષà«àª«àª³" # libgnomevfs/gnome-vfs-result.c:66 #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾ રદ કરેલ છે" # libgnomevfs/gnome-vfs-result.c:67 #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ડિરેકà«àªŸàª°à«€ વà«àª¯àª¸à«àª¤ છે" # libgnomevfs/gnome-vfs-result.c:68 #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ડિરેકà«àªŸàª°à«€ ખાલી નથી" # libgnomevfs/gnome-vfs-result.c:69 #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "વધારે પડતી કડીઓ" # libgnomevfs/gnome-vfs-result.c:70 #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ફકà«àª¤ વાંચી શકાય તેવી ફાઈલ સિસà«àªŸàª®" # libgnomevfs/gnome-vfs-result.c:71 #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "સરખી ફાઈલ સિસà«àªŸàª® પર નથી" # libgnomevfs/gnome-vfs-result.c:72 #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "નામ ખૂબ જ લાંબૠછે" # libgnomevfs/gnome-vfs-result.c:73 #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "સેવા ઉપલબà«àª§ નથી" # libgnomevfs/gnome-vfs-result.c:74 #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "જૂની સેવાની માહિતી માટે વિનંતી કરે છે" # libgnomevfs/gnome-vfs-result.c:75 #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "પà«àª°à«‹àªŸà«‹àª•ોલમાં ભૂલ" # libgnomevfs/gnome-vfs-parse-ls.c:652 #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "માસà«àªŸàª° બà«àª°àª¾àª‰àªàª° શોધી શકાયà«àª‚ નહિ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "કોઇ મૂળભà«àª¤ કારà«àª¯ સંકળાયેલà«àª‚ નથી" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL યોજના માટે કોઇ હેનà«àª¡àª²àª° નથી" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "આદેશ વાકà«àª¯àª¨àª¾ પદચà«àª›à«‡àª¦àª®àª¾àª‚ ભૂલ" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "આદેશ શરૂ કરવામાં ભૂલ" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "સમય સમાપà«àª¤àª¿ સà«àª§à«€ પહોંચી ગયા" # libgnomevfs/gnome-vfs-result.c:37 #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "નામસરà«àªµàª° ભૂલ" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "સà«àª°à«‹àª¤àª¨à«‡ તાળૠમરાયેલ છે" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "વિધેય કોલ નીચે પાડી દેવાયો" # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "અયોગà«àª¯ ફાઈલનામ" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "સાંકેતિક કડી નથી" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "અજાણીતી ભૂલ" # libgnomevfs/gnome-vfs-utils.c:67 #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u બાઇટ" msgstr[1] "%u બાઇટà«àª¸" # libgnomevfs/gnome-vfs-utils.c:74 #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" # libgnomevfs/gnome-vfs-utils.c:78 #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" # libgnomevfs/gnome-vfs-utils.c:82 #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (અયોગà«àª¯ યà«àª¨à«€àª•ોડ)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ફà«àª²à«‹àªªà«€" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ડિસà«àª•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ડà«àª°àª¾àªˆàªµ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "મૅમરી સà«àªŸà«€àª•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "સà«àª®àª¾àª°à«àªŸ મિડીયા" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "કેમેરા" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "રà«àªŸ વોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "ઓડિયો સીડી" # libgnomevfs/gnome-vfs-result.c:137 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "અજાણીતૠવોલà«àª¯à«àª®" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "નેટવરà«àª• સરà«àªµàª°" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ફà«àª²à«‹àªªà«€ ડà«àª°àª¾àª‡àªµàª¨à«‡ માઉનà«àªŸ કરવામાં ભૂલ. વોલà«àª¯à«àª®àª¾àªšàª¿àª¤ ડà«àª°àª¾àª‡àªµàª®àª¾àª‚ કોઇ ફà«àª²à«‹àªªà«€ નથી." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "કદને માઉનà«àªŸ કરવામાં ભૂલ. વોલà«àª¯à«àª®àª¾àªš ઉપકરણમાં કોઇ મિડિયા નથી." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "ફà«àª²à«‹àªªà«€ ડà«àª°àª¾àª‡àªµàª¨à«‡ માઉનà«àªŸ કરવામાં ભૂલ. વોલà«àª¯à«àª®àª¾àªš ફà«àª²à«‹àªªà«€àª¨à« બેધારણ àªàªµà« હશે કે જેથી તેને માઉનà«àªŸ કરી " "શકાય નહિ." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "વોલà«àª¯à«àª® માઉનà«àªŸ કરવામાં અસમરà«àª¥. જો આ àªàª¨àª•à«àª°àª¿àªªà«àªŸà«‡àª¡ ડà«àª°àª¾àªˆàªµ હોય, તો પછી ખોટો પાસવરà«àª¡ અથવા " "કી વપરાયેલ હશે." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "કદને માઉનà«àªŸ કરવામાં ભૂલ. વોલà«àª¯à«àª®àª¾àªš વોલà«àª¯à«àª®àª¨à« બંધારણ àªàªµà« હશે કે જેથી તેને માઉનà«àªŸ કરી શકાય નહિ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "પસંદ કરેલ ફà«àª²à«‹àªªà«€ ડà«àª°àª¾àª‡àªµàª¨à«‡ માઉનà«àªŸ કરવામાં ભૂલ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "પસંદ કરેલ વોલà«àª¯à«àª®àª¨à«‡ માઉનà«àªŸ કરવામાં ભૂલ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "પસંદ કરેલ વોલà«àª¯à«àª® અનમાઉનà«àªŸ કરવામાં અસમરà«àª¥. વોલà«àª¯à«àª® àªàª• અથવા વધૠકારà«àª¯àª•à«àª°àª®à«‹ દà«àªµàª¾àª°àª¾ વપરાશમાં " "છે." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "પસંદ કરેલ વોલà«àª¯à«àª®àª¨à« માઉનà«àªŸ દૂર કરવામાં ભૂલ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "બાળ પà«àª°àª•à«àª°àª¿àª¯àª¾ %d (%s) માંથી માહિતી વાંચવામાં નિષà«àª«àª³" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty માં માઉનà«àªŸ પà«àª°àª•à«àª°àª¿àª¯àª¾ ચલાવી શકà«àª¯àª¾ નહિં" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "બાળ પà«àª°àª•à«àª°àª¿àª¯àª¾ (%s) માંથી માહિતી વાંચતી વખતે select() માં અનિચà«àª›àª¨àª¿àª¯ ભૂલ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "પà«àª°àª•à«àª°àª¿àª¯àª¾ માઉનà«àªŸ કરવા માટે પાસવરà«àª¡ મોકલી શકà«àª¯àª¾ નહિં." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() (%s) માં અનિચà«àª›àª¨àª¿àª¯ ભૂલ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "આદેશ શરૠકરવામાં નિષà«àª«àª³" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "મિડિયાને બહાર કાઢવામાં નિષà«àª«àª³" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "સંપરà«àª• કરેલ સરà«àªµàª°àª¨à« મઉનà«àªŸ દૂર કરવામાં નિષà«àª«àª³" #: ../modules/computer-method.c:543 msgid "Network" msgstr "નેટવરà«àª•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ઘર" # libgnomevfs/gnome-vfs-result.c:57 #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ફાઇલસિસà«àªŸàª®" # modules/file-method.c:381 #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "અજાણીતી જીનોમ VFSSeek સà«àª¥àª¿àª¤àª¿ %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "વિનà«àª¡à«‹ નેટવરà«àª•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "દૂરસà«àª¥ કમà«àªªà«àª¯à«‚ટર (%s) ની ઓળખ અજà«àªžàª¾àª¤ છે." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "આ તà«àª¯àª¾àª°à«‡ જ બને જà«àª¯àª¾àª°à«‡ તમે કમà«àªªà«àª¯à«‚ટરમાં પહેલી વાર પà«àª°àªµà«‡àª¶à«‹.\n" "\n" "દૂરસà«àª¥ કમà«àªªà«àª¯à«‚ટર દà«àªµàª¾àª°àª¾ મોકલવામાં આવતી ઓળખ %s છે. જો તમે સંપૂરà«àª£àªªàª£à«‡ ચોકà«àª•સ થવા માંગો તો ચાલૠ" "રાખવા માટે ઠસà«àª°àª•à«àª·àª¿àª¤ છે, સિસà«àªŸàª® સંચાલકનો સંપરà«àª• કરો." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "કોઈપણ રીતે પà«àª°àªµà«‡àª¶à«‹" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "પà«àª°àªµà«‡àª¶ રદ કરો" # modules/test-method.c:590 #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s પર સà«àª¯à«‹àªœàª¨àª¾ માટેની યોગà«àª¯ ફાઇલ મળતી નથી\n" # modules/test-method.c:592 #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "અલગ જગà«àª¯àª¾ સà«àªªàª·à«àªŸ કરવા માટે %s કà«àª·à«‡àª¤à«àª°àª¿àª¯ ચલ વાપરો.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "તમારા HTTP પà«àª°à«‹àª•à«àª¸à«€àª¨à«‡ તમે પà«àª°àªµà«‡àª¶à«‡àª² હોય ઠજરૂરી છે.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" વાપરવા માટે તમારે પà«àª°àªµà«‡àª¶ કરવો જ પડશે.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "તમારો પાસવરà«àª¡ àªàª¨àª•à«àª°àª¿àªªà«àªŸ થયા વિનાનો પરિવહન થશે." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "તમારો પાસવરà«àª¡ àªàª¨àª•à«àª°àª¿àªªà«àªŸ થયેલ પરિવહન થશે." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s ડોમેઈન %s વાપરવા માટે તમારે પà«àª°àªµà«‡àª¶ કરવો જ પડશે\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s વાપરવા માટે તમારે પà«àª°àªµà«‡àª¶ કરવો જ પડશે\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "મૂળભૂત ભાગો દેખાડનાર કારà«àª¯àª•à«àª°àª®" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "મૂળભૂત ટરà«àª®àª¿àª¨àª² કારà«àª¯àª•à«àª°àª®" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "મૂળભૂત ટરà«àª®àª¿àª¨àª² માટે ચલાવવાની દલીલ" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "ફાઇલોને જોવા માટે ઉપયોગમાં લેવાતા કારà«àª¯àª•à«àª°àª® માટે તેને જોવા માટે ભાગ જરà«àª°à«€ છે. પરિમાણ %s " "ફાઇલના URI થી બદલાઇ જશે, પરિમાણ %c ભાગI ID થી બદલાઇ જશે." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "કારà«àª¯àª•à«àª°àª®àª¨à«‹ ઉપયોગ કરવા માટે મૂળભૂત ટરà«àª®àª¿àª¨àª² કારà«àª¯àª•à«àª°àª® કે જેના માટે ટરà«àª®àª¿àª¨àª² જરà«àª°à«€ છે." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "મૂળભૂત ટરà«àª®àª¿àª¨àª² કારà«àª¯àª•à«àª°àª® માટે exec દલીલનો ઉપયોગ કરવાનો છે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"H323\" URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"http\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URL માટે નિયંતà«àª°àª•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"aim\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"callto\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"ghelp\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"h323\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"http\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"https\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"info\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"mailto\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"man\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "સાચà«àª‚ જો \"command\" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ \"trash\" URL ને નિયંતà«àª°àª¿àª¤ કરે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"aim\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"callto\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"ghelp\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"h323\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"http\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"https\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"info\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"mailto\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"man\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ \"trash\" URL ને નિયંતà«àª°àª¿àª¤ કરે" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "અલà«àªªàªµàª¿àª°àª¾àª®àª¥à«€ અલગ પાડેલ DNS-SD ડોમેઈનોની યાદી કે જે \"network:///\" સà«àª¥àª¾àª¨àª®àª¾àª‚ દà«àª°àª¶à«àª¯àª®àª¾àª¨ " "હોવà«àª‚ જોઈàª." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD સેવાઓ માટે જોવા માટે વધારાના ડોમેઈનો" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "કેવી રીતે સà«àª¥àª¾àª¨àª¿àª• DNS-SD સેવા પà«àª°àª¦àª°à«àª¶àª¿àª¤ કરવી" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "\"ભેગà«àª‚ થયેલ\", \"અલગ\" અને \"નિષà«àª•à«àª°àª¿àª¯\" શકà«àª¯ કિંમતો છે." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "પà«àª°à«‹àª•à«àª¸à«€ સરà«àªµàª°àª¨àª¾ સંપરà«àª•ોને સાચા છે કે નહિ તે તપાસો" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "આપોઆપ પà«àª°à«‹àª•à«àª¸à«€ રà«àªªàª°à«‡àª–ાંકિત URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ઇનà«àªŸàª°àª¨à«‡àªŸ ઉપર HTTP ને પà«àª°àªªà«àª¤ કરતા હોઇઠતà«àª¯àª¾àª°à«‡ પà«àª°à«‹àª•à«àª¸à«€ સà«àª¯à«‹àªœàª¨àª¾àª“ને સકà«àª°àª¿àª¯ કરો." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP પà«àª°à«‹àª•à«àª¸à«€ પાસવરà«àª¡" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP પà«àª°à«‹àª•à«àª¸à«€ વપરાશકરà«àª¤àª¾" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "જો સાચà«àª‚ હોય, તો પછી પà«àª°à«‹àª•à«àª¸à«€ સરà«àªµàª° સાથેના જોડાણોને સતà«àª¤àª¾àª§àª¿àª•રણની જરૂર છે. વપરાશકરà«àª¤àª¾àª¨àª¾àª®/" "પાસવરà«àª¡ બંને \"/system/http_proxy/authentication_user\" અને \"/system/http_proxy/" "authentication_password\" દà«àªµàª¾àª°àª¾ વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ થાય છે." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "યજમાનો માટે કોઇ પà«àª°à«‹àª•à«àª¸à«€ નથી" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "જà«àª¯àª¾àª°à«‡ HTTP ની પà«àª°à«‹àª•à«àª¸à«€ કરતા હોઇઠતà«àª¯àª¾àª°à«‡ સાચૠછે કે નહિ તેની ખાતરી કરવા માટે આપવાનો " "પાસવરà«àª¡." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "પà«àª°à«‹àª•à«àª¸à«€ રà«àªªàª°à«‡àª–ાંકનની સà«àª¥àª¿àª¤àª¿" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "સà«àª°àª•à«àª·àª¿àª¤ HTTP પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "સà«àª°àª•à«àª·àª¿àª¤ HTTP પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "પà«àª°à«‹àª•à«àª¸à«€ રà«àªªàª°à«‡àª–ાંકનની સà«àª¥àª¿àª¤àª¿ પસંદ કરો. આધારિત કિંમતો \"કોઇ નંહિ\", \"માનવીય રીતે\", " "\"આપોઆપ\" છે." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "પà«àª°à«‹àª•à«àª¸à«€ FTP through માટે યંતà«àª°àª¨à« નામ." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "પà«àª°à«‹àª•à«àª¸à«€ HTTP through માટે યંતà«àª°àª¨à« નામ." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "સà«àª°àª•à«àª·àª¿àª¤ પà«àª°à«‹àª•à«àª¸à«€ HTTP through માટે યંતà«àª°àª¨à« નામ." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "પà«àª°à«‹àª•à«àª¸à«€ socks through માટે યંતà«àª°àª¨à« નામ." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ \"/સિસà«àªŸàª®/http_પà«àª°à«‹àª•à«àª¸à«€/યજમાન\" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ કરો " "છો." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ \"/સિસà«àªŸàª®/પà«àª°à«‹àª•à«àª¸à«€/ftp_યજમાન\" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ કરો " "છો." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ \"/સિસà«àªŸàª®/પà«àª°à«‹àª•à«àª¸à«€/સà«àª°àª•à«àª·àª¿àª¤_યજમાન\" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ " "કરો છો." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ \"/સિસà«àªŸàª®/પà«àª°à«‹àª•à«àª¸à«€/socks_યજમાન\" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ કરો " "છો." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "આ કી àªàªµàª¾ યજમાનોની યાદી ધરાવે છે કે જે પà«àª°àª¤à«àª¯àª•à«àª· રીતે સંકળાયેલા છે, પà«àª°à«‹àª•à«àª¸à«€àª¥à«€ નહિ (જો તે " "સકà«àª°àª¿àª¯àª¹à«‹àª¯ તે). કિંમતો યજમાનના નામો, પà«àª°àª¦à«‡àª¶à«‹ (શરà«àª†àª¤àª¨à« વાઇલà«àª¡àª•ારà«àª¡ વાપરીને જેવૠકે *.foo." "com), IP યજનામ સરનામૠ(બંને IPv4 અને IPv6) અને નેટવરà«àª• સરનામૠનેટમાસà«àª•ની સાથે (જેવૠકે " "૧૯૨.૧૬૮.૦.૦/૨૪)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL કે જે પà«àª°à«‹àª•à«àª¸à«€àª¨à«€ રà«àªªàª°à«‡àª–ાંકનની કિંમતો આપે છે." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP પà«àª°à«‹àª•à«àª¸à«€àª¨à«‹ ઉપયોગ કરો" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "જà«àª¯àª¾àª°à«‡ HTTPની પà«àª°à«‹àª•à«àª¸à«€àª¨à« કામ કરતા હોઇઠતà«àª¯àª¾àª°à«‡ સાચાની ખાતરી કરવા માટે આપવાનૠ" "વપરાશકરà«àª¤àª¾àª¨à« નામ." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB કામ કરતૠજૂથ" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows નેટવરà«àª•ીંગ વરà«àª•ગà«àª°à«àªª અથવા ડોમેઈન કે જેનો વપરાશકરà«àª¤àª¾ ભાગ છે. નવા વરà«àª•ગà«àª°à«àªª માટે સંપૂરà«àª£ " "અસર લેવા માટે કે જેની માટે વપરાશકરà«àª¤àª¾àª પà«àª°àªµà«‡àª¶ બહાર નીકળવાની અને ફરીથી પà«àª°àªµà«‡àª¶ કરવાની જરૂર " "છે." gnome-vfs-2.24.4/po/pl.po0000644000175000001440000013467011354402652012027 00000000000000# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Aviary.pl # JeÅ›li masz jakiekolwiek uwagi odnoszÄ…ce siÄ™ do tÅ‚umaczenia lub chcesz # pomóc w jego rozwijaniu i pielÄ™gnowaniu, napisz do nas: # gnomepl@aviary.pl # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-19 11:35+0100\n" "PO-Revision-Date: 2010-02-19 11:28+0100\n" "Last-Translator: Tomasz Dominikowski \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Poedit-Language: Polish\n" "X-Poedit-Country: Poland\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Wolumin ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u zawiera puste znaki." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u nie zawiera nazwy metody." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nie zawiera znacznika koÅ„ca opcji." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u zawiera nieznane opcje %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u nie zawiera nazwy moduÅ‚u." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Nie odnaleziono pliku konfiguracyjnego `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d przerwane przetwarzanie." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Wolumin AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Sieciowy wolumin AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatycznie wykryty wolumin" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Wolumin Linuksa Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "NapÄ™d CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD z dźwiÄ™kiem cyfrowym" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Wolumin napÄ™du dysku twardego" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Wolumin EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Wolumin eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Wolumin Linuksa Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Wolumin Linuksa Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Wolumin Linuksa Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Wolumin MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Wolumin BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Wolumin FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Wolumin MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Wolumin CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Wolumin CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Wolumin JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Wolimin Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Wolumin systemu" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Wolumin pamiÄ™ci" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Wolumin Miniksa" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Wolumin sieciowy NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Wolumin Linuksa NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Wolumin Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Wolumin Linuksa Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Wolumin Linuksa ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Wolumin współdzielony Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Wolumin SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Wolumin DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Wolumin Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Wolumin Solarisa Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Wolumin Solarisa Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Wolumin Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Wolumin tymczasowy" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Ulepszony wolumin DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Wolumin Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Wolumin Xeniksa" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Wolumin Linuksa XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Wolumin XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Wolumin CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Nieznany" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Wolumin %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "NapÄ™d %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "NapÄ™d %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Stacja dyskietek" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Czytnik Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Czytnik Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Czytnik Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Czytnik SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "NapÄ™d ZIP" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "NapÄ™d Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Klucz USB" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Odtwarzacz muzyczny %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Aparat cyfrowy %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "NapÄ™d" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "ZewnÄ™trzny %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "PÅ‚yta CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Czysta pÅ‚yta CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "PÅ‚yta CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Czysta pÅ‚yta CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "PÅ‚yta CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "PÅ‚yta DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Czysta pÅ‚yta DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "PÅ‚yta DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Czysta pÅ‚yta DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "PÅ‚yta DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Czysta pÅ‚yta DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "PÅ‚yta DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Czysta pÅ‚yta DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Dysk DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Czysta pÅ‚yta DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "PÅ‚yta DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "PÅ‚yta audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Usuwalny wolumin %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Wolumin" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Nieznany rodzaj operacji %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nie można utworzyć potoku dla GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Nieznany typ zadania %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Zatrzymano operacjÄ™" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "PrzestarzaÅ‚a funkcja. Modyfikacje przez użytkownika bazy MIME nie sÄ… wiÄ™cej " "obsÅ‚ugiwane." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Nie można przeanalizować: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Kolejne błędy skÅ‚adniowe zostanÄ… zignorowane." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Bez błędu" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Nie odnaleziono pliku" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Błąd ogólny" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Błąd wewnÄ™trzny" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Niepoprawne parametry" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "NieobsÅ‚ugiwana operacja" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Błąd We/Wy" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Uszkodzone dane" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Niepoprawny format" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "NieprawidÅ‚owy uchwyt pliku" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Za duży plik" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Brak miejsca na urzÄ…dzeniu" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "System plików tylko do odczytu" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Niepoprawny URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Nie otwarto pliku" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Niepoprawny tryb otwarcia" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Brak dostÄ™pu" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Za dużo otwartych plików" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Koniec pliku" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "To nie katalog" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operacja w toku" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operacja przerwana" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Plik istnieje" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "WystÄ…piÅ‚y zapÄ™tlone dowiÄ…zania" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Niedozwolona operacja" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Jest katalogiem" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Brak pamiÄ™ci" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Nie odnaleziono komputera" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "NieprawidÅ‚owa nazwa komputera" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Komputer nie posiada adresu" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Zalogowanie nie powiodÅ‚o siÄ™" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Anulowano operacjÄ™" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Katalog zajÄ™ty" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Katalog nie jest pusty" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Za dużo dowiÄ…zaÅ„" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "System plików tylko do odczytu" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "To nie ten sam system plików" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Za dÅ‚uga nazwa" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "UsÅ‚uga nie jest dostÄ™pna" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Żądanie unieważnia dane usÅ‚ugi" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Błąd protokoÅ‚u" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Nie można odnaleźć głównego serwera listy przeglÄ…dania" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nie przypisano domyÅ›lnej akcji" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Brak obsÅ‚ugi dla schematu URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Błąd skÅ‚adni lini poleceÅ„" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Błąd podczas uruchamiania polecenia" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Przekroczono czas oczekiwania" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Błąd serwera nazw" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Zasób jest zablokowany" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "PrzestarzaÅ‚e wywoÅ‚anie funkcji" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Niepoprawna nazwa pliku" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nie jest dowiÄ…zaniem symbolicznym" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Nieznany błąd" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajt" msgstr[1] "%u bajty" msgstr[2] "%u bajtów" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (niepoprawny Unikod)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Dyskietka" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Dysk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "NapÄ™d USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "NapÄ™d IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Aparat" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Wolumin główny" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "PÅ‚yta CD audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Nieznany wolumin" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Serwer sieciowy" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Nie można zamontować napÄ™du dyskietek. Prawdopodobnie brak jest dyskietki w " "napÄ™dzie." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Nie można zamontować woluminu. Prawdopodobnie brak noÅ›nika w napÄ™dzie." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Nie można zamontować napÄ™du dyskietek. Prawdopodobnie dyskietka jest " "zapisana w formacie, którego nie można zamontować." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Nie można zamontować woluminu. Jeżeli jest to zaszyfrowany napÄ™d, mogÅ‚o " "zostać użyte zÅ‚e hasÅ‚o lub klucz." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Nie można zamontować wybranego woluminu. Prawdopodobnie wolumin jest " "zapisany w formacie, którego nie można zamontować." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Nie można zamontować wybranego napÄ™du dyskietek." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Nie można zamontować wybranego woluminu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Nie można odmontować wybranego woluminu. Wolumin jest w użyciu przez jeden " "lub wiÄ™cej programów." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Nie można odmontować wybranego woluminu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Nie można czytać danych z procesu potomnego %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Nie można uruchomić procesu mount w pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Nieoczekiwany błąd w select() podczas odczytu danych z procesu potomnego (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Nie można przesÅ‚ać hasÅ‚a do procesu mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Nieoczekiwany błąd w waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Niepowodzenie przy uruchomieniu polecenia" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nie można wysunąć noÅ›nika" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nie można odmontować podłączonego serwera" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Sieć" #: ../modules/computer-method.c:561 msgid "Home" msgstr "PoczÄ…tek" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "System plików" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Nieznana wartość %d GnomeVFSSeekPosition" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Sieć Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Nieznany identyfikator zdalnego komputera (%s)." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Taka sytuacja wystÄ™puje podczas pierwszego logowania.\n" "\n" "Identyfikator wysÅ‚any przez zdalny komputer to %s. Jeżeli chcesz siÄ™ " "upewnić, że kontynuowanie jest bezpieczne, skontaktuj siÄ™ z administratorem " "systemu." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Zaloguj mimo tego" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Przerwij logowanie" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nie odnaleziono poprawnego pliku z ustawieniami pod %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Aby okreÅ›lić inne poÅ‚ożenie, użyj zmiennej Å›rodowiskowej %s.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "PoÅ›rednik sieciowy HTTP wymaga zalogowania.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Należy siÄ™ zalogować aby mieć dostÄ™p do \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "HasÅ‚o zostanie przesÅ‚ane w postaci niezaszyfrowanej." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "HasÅ‚o zostanie przesÅ‚ane w postaci zaszyfrowanej." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Należy siÄ™ zalogować aby uzyskać dostÄ™p do %s domeny %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Należy siÄ™ zalogować aby uzyskać dostÄ™p do %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "DomyÅ›lna aplikacja przeglÄ…darki komponentów" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "DomyÅ›lna aplikacja terminala" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument uruchamiania dla domyÅ›lnego terminala" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Aplikacja używana do przeglÄ…dania plików wymagajÄ…ca komponentu do ich " "obejrzenia. Parametr %s zostanie zastÄ…piony przez URI pliku, parametr %c " "zostanie zastÄ…piony poprzez IID komponentu." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "DomyÅ›lna aplikacja terminala używana dla aplikacji wymagajÄ…cej terminala." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Argument uruchomienia używany dla domyÅ›lnej aplikacji terminala." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Uruchomienie polecenia w terminalu" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "ObsÅ‚uga adresu URL typu \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "OkreÅ›la, czy program podany w kluczu \"command\" ma obsÅ‚ugiwać adresy URL " "typu \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony " "w terminalu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Lista oddzielonych przecinkami domen DNS-SD, które powinny być widoczne w " "poÅ‚ożeniu \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dodatkowe domeny do wyszukiwania usÅ‚ug DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Sposób wyÅ›wietlania lokalnych usÅ‚ug DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Dopuszczalne wartoÅ›ci to \"merged\" (połączone), \"separate\" (oddzielne) " "oraz \"disabled\" (wyłączone)." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Uwierzytelnianie połączeÅ„ do serwera poÅ›redniczÄ…cego" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Adres URL automatycznej konfiguracji poÅ›rednika" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Włącza ustawienia poÅ›rednika podczas próby dostÄ™pu HTTP za poÅ›rednictwem " "Internetu." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nazwa komputera poÅ›rednika FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port poÅ›rednika FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nazwa komputera poÅ›rednika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HasÅ‚o poÅ›rednika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port poÅ›rednika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nazwa użytkownika poÅ›rednika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Jeżeli ustawione, połączenia do serwera poÅ›redniczÄ…cego wymagajÄ… " "uwierzytelniania. Lista rozwijana użytkownik/hasÅ‚o jest zdefiniowana przez " "\"/system/http_proxy/authentication_user\" oraz \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Komputery bez poÅ›rednika" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "HasÅ‚o podawane przy uwierzytelnieniu podczas wykonywania operacji " "poÅ›redniczÄ…cych HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Tryb konfiguracji poÅ›rednika" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nazwa komputera poÅ›rednika gniazd" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port poÅ›rednika gniazd" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nazwa komputera poÅ›rednika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port poÅ›rednika bezpiecznego połączenia HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Wybierz tryb konfiguracji poÅ›rednika. ObsÅ‚ugiwanymi wartoÅ›ciami sÄ… \"none" "\" (brak konfiguracji), \"manual\" (rÄ™czna), \"auto\" (automatyczna)." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Nazwa maszyny poÅ›redniczÄ…cej protokół FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Nazwa maszyny poÅ›redniczÄ…cej protokół HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Nazwa maszyny poÅ›redniczÄ…cej protokół SHTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Nazwa maszyny stanowiÄ…cej poÅ›rednika dla mechanizmu gniazd." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port komputera okreÅ›lonego przez \"/system/http_proxy/host\", bÄ™dÄ…cy " "poÅ›rednikiem dla ruchu sieciowego." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port komputera okreÅ›lonego przez \"/system/proxy/ftp_host\", bÄ™dÄ…cy " "poÅ›rednikiem dla ruchu sieciowego." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port komputera okreÅ›lonego przez \"/system/proxy/secure_host\", bÄ™dÄ…cy " "poÅ›rednikiem dla ruchu sieciowego." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port komputera okreÅ›lonego przez \"/system/proxy/socks_host\", bÄ™dÄ…cego " "poÅ›rednikiem dla ruchu sieciowego." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ten klucz zawiera listÄ™ komputerów, które sÄ… połączone bezpoÅ›rednio, nie zaÅ› " "przez poÅ›rednika (jeÅ›li jest aktywny). WartoÅ›ciami mogÄ… być nazwy " "komputerów, domeny (z użyciem sekwencji specjalnych takich jak *.foo.com), " "adresy IP (zarówno IPv4 jak i IPv6) oraz adresy sieciowe z maskÄ… sieci (np. " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL udostÄ™pniajÄ…cy wartoÅ›ci konfiguracyjne poÅ›rednika." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Użycie poÅ›rednika HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Nazwa użytkownika przekazywana do uwierzytelnienia podczas operacji " "poÅ›redniczenia http." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grupa robocza SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Grupa robocza Windows lub domena do której należy użytkownik. Aby nowa grupa " "odniosÅ‚a peÅ‚ny skutek, użytkownik może potrzebować wylogować siÄ™ i zalogować " "ponownie." gnome-vfs-2.24.4/po/af.po0000644000175000001440000013735111334251016011773 00000000000000# Afrikaans translation of gnome-vfs. # Copyright (C) 2004 Zuza Software Foundation # This file is distributed under the same license as the gnome-vfs package. # Zuza Software Foundation , 2004 # F Wolff , 2008 msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.6-branch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-12-28 01:37+0100\n" "PO-Revision-Date: 2008-12-27 12:18+0200\n" "Last-Translator: F Wolff \n" "Language-Team: translate-discuss-swedish@lists.kde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.2\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660-volume" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u bevat NUL-karakters." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u bevat geen metodenaam nie." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u het geen opsies-eindmerker nie." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u het onbekende opsies %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u bevat geen modulenaam nie." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Konfigurasielêer `%s' is nie gevind nie: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS-netwerkvolume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Outobespeurde volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM-aandrywer" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD- digitale oudio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Hardewaretoestel-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2-Linux-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3-Linux-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CD-ROM-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs-CD-ROM-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Stelselvolume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Geheuevolume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS-netwerkvolume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4-Linux-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS-Linux-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows gedeelde volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs-Solaris-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs-Solaris-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Tydelike volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Verbeterde DOS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS-Linux-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS-volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Onbekend" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-volume" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Sagteskyfaandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Geheuestaaf-aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 #, fuzzy msgid "Smart Media Drive" msgstr "Geheuestafie" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC-aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip-aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz-aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 #, fuzzy msgid "Pen Drive" msgstr "Zip-aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s musiekspeler" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitale kamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Aandrywer" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Eksterne %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Skoon CD-R-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Skoon CD-RW-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Skoon DVD-RAM-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Skoon DVD-R-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Skoon DVD-RW-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Skoon DVD+R-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Skoon DVD+RW-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW-skyf" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Oudio-CD" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, fuzzy, c-format msgid "%s Removable Volume" msgstr "Stelselvolume" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Onbekende op soort %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kan nie pyp vir oop GIOChannel: %s skep nie" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Onbekende taaksoort %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Bewerking gestop" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Kon nie %s ontleed nie" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Verdere ontleedfoute sal geïgnoreer word." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Geen fout nie" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Lêer nie gevind nie" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Generiese fout" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Interne fout" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ongeldige parameters" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nie-ondersteunde bewerking" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "T/A-fout" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Data korrup" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formaat nie geldig nie" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Slegte lêerhandvatsel" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Lêer te groot" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Geen spasie oor op toestel nie" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Leesalleen-lêerstelsel" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ongeldige URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Lêer nie oop nie" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Openmodus nie geldig nie" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Toegang geweier" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Te veel oop lêers" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Einde van lêer" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nie 'n gids nie" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Bewerking besig" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Bewerking onderbreek" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Lêer bestaan" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Lusskakels teëgekom" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Bewerking nie toegelaat nie" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Is 'n gids" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nie genoeg geheue nie" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Gasheer nie gevind nie" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Gasheernaam nie geldig nie" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Gasheer het geen adres nie" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Kon nie aanmeld nie" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Bewerking gekanselleer" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Gids besig" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Gids nie leeg nie" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Te veel skakels" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Leesalleen-lêerstelsel" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nie op dieselfde lêerstelsel nie" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Naam te lank" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Diens nie beskikbaar nie" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Versoek maak diens se data oortollig" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Probleem met protokol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Kon nie meesterblaaier vind nie" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Geen verstekaksie geassosieer nie" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Geen hanteerder vir URL-skema nie" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Kon nie die bevelreël ontleed nie" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Kon nie bevelreël laat loop nie" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Fout met naambediener" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Die hulpbron is gesluit" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ongeldige lêernaam" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nie 'n simboliese skakel nie" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Onbekende fout" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u greep" msgstr[1] "%u grepe" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KG" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MG" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ongeldige Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Sagteskyf" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Skyf" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-aandrywer" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-aandrywer" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Geheuestafie" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 #, fuzzy msgid "Smart Media" msgstr "Geheuestafie" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Wortel-volume" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Klank-CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Onbekende volume" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Netwerkbediener" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Kon nie die sagteskyfaandrywer heg nie. Daar is waarskynlik nie 'n sagteskyf " "in die aandrywer nie." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Kon nie die volume heg nie. Daar is waarskynlik nie media in die toestel nie." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Kon nie die sagteskyfaandrywer heg nie. Die sagteskyf is waarskynlik in 'n " "formaat wat nie geheg kan word nie." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Kon nie die volume heg nie. As hierdie 'n geënkripteerde skyf is, is die " "verkeerde wagwoord of sleutel gebruik." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Kon nie die geselekteerde volume heg nie. Die volume is waarskynlik in 'n " "formaat wat nie geheg kan word nie." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Kon nie die geselekteerde sagteskyfaandrywer heg nie." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Kon nie die geselekteerde volume heg nie." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Kon nie die geselekteerde volume ontheg nie. Die volume is in gebruik deur " "een of meer programme." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Kon nie die geselekteerde volume ontheg nie." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Kon nie data lees vanaf kindproses %d nie (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Kon nie die mount-proses laat loop in 'n pty nie" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Kon nie wagwoord stuur aan mount-proses nie." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Kon nie bevel begin nie" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Kan nie media uitskiet nie" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Kan nie gekoppelde bediener ontheg nie" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Netwerk" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Tuis" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Lêerstelsel" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Onbekende GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows-netwerk" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Die identiteit van die afgeleë rekenaar (%s) is onbekend." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Hierdie gebeur wanneer mens die eerste keer aanmeld by 'n rekenaar.\n" "\n" "Die identiteit wat die afgeleë rekenaar gestuur het, is %s. Om absoluut " "seker te wees dat dit veilig is om voort te gaan, kontak die " "stelseladministrateur." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Meld in elk geval aan" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Kanselleer aanmelding" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Kon nie 'n geldige opstellinglêer by %s vind nie\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Gebruik die %s-omgewingsveranderlike om 'n ander ligging te spesifiseer.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "U HTTP-instaanbediener vereis dat u aanmeld.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "U moet aanmeld om toegang te kry tot \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "U wagwoord sal sonder enkripsie gestuur word." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "U wagwoord sal met enkripsie gestuur word." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "U moet aanmeld om toegang te kry tot %s domein %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "U moet aanmeld om toegang te kry tot %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Verstekkomponentbekyker-toepassing" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Verstekterminaaltoepassing" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec-argument vir verstekterminaal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Die toepassing waarmee lêers bekyk wat 'n komponent vereis om hulle te " "bekyk. Die parameter %s sal deur die lêer se URI's vervang word, die " "parameter %c sal deur die komponent-IID vervang word." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Die verstekterminaaltoepassing wat gebruik moet word vir toepassings wat 'n " "terminaal vereis." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "Die exec-argument wat gebruik moet word vir die verstekterminaaltoepassing." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Laat die program in 'n terminaal loop" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"aim\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"callto\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"ghelp\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"h323\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"http\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"https\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"info\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"mailto\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"man\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Die opdrag vir hantering van \"trash\"-URL'e, indien geaktiveer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Die hanteerder vir \"aim\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Die hanteerder vir \"callto\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Die hanteerder vir \"ghelp\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Die hanteerder vir \"h323\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Die hanteerder vir \"http\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Die hanteerder vir \"https\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Die hanteerder vir \"info\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Die hanteerder vir \"mailto\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Die hanteerder vir \"man\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Die hanteerder vir \"trash\"-URL'e" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer man-URL'e hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer callto-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer ghelp-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer H323-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer ghelp-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer ghelp-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer info-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer mailto-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer man-URL'e hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer trash-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 #, fuzzy msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Waar as die program wat hierdie URL moet hanteer, in 'n terminaal laat loop " "moet word." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 #, fuzzy msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer man-URL'e hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 #, fuzzy msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer callto-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 #, fuzzy msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer ghelp-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 #, fuzzy msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer H323-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 #, fuzzy msgid "Whether the specified command should handle \"http\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer ghelp-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 #, fuzzy msgid "Whether the specified command should handle \"https\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer trash-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 #, fuzzy msgid "Whether the specified command should handle \"info\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer info-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 #, fuzzy msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer mailto-URL'e " "hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 #, fuzzy msgid "Whether the specified command should handle \"man\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer man-URL'e hanteer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 #, fuzzy msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" "Merk as waar sodat 'n program in \"command\" gespesifiseer trash-URL'e " "hanteer." #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Verifieer instaanbedienerverbindings" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Outomatiese instaanopstelling-URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Aktiveer die instaanopstelling wanneer toegang tot HTTP oor die internet " "verkry word." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP-instaangasheernaam" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP-instaanpoort" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP-instaangasheernaam" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP-instaanwagwoord" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP-instaanpoort" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP-instaangebruikernaam" #: ../schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Indien as waar gemerk, dan vereis die verbindings aan die instaanbediener " "verifikasie. Die gebruikernaam/wagwoord-kombinasie gedefinieer deur \"/" "system/http_proxy/authentication_user\" en \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Nie-instaangashere" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Wagwoord wat as geldigheidsvasstelling gevoer moet word wanneer HTTP-" "instanery gedoen word." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Instaanopstelling-modus" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS-instaangasheernaam" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS-instaanpoort" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Veilige-HTTP-instaangasheernaam" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Veilige-HTTP-instaanpoort" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Selekteer die instaanopstelling-modus. Waardes wat werk is \"geen\", " "\"handmatig\", \"outo\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Die masjiennaam waardeur FTP ingestaan moet word." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Die masjiennaam waardeur HTTP ingestaan moet word." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Die masjiennaam waardeur veilige HTTP ingestaan moet word." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Die masjiennaam waardeur SOCKS ingestaan moet word." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Die poort op die masjien gedefinieer deur \"/system/http_proxy/host\" " "waardeur jy 'n instaanverbinding kry." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Die poort op die masjien gedefinieer deur \"/system/proxy/ftp_host\" " "waardeur jy 'n instaanverbinding kry." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Die poort op die masjien gedefinieer deur \"/system/proxy/secure_host\" " "waardeur jy 'n instaanverbinding kry." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Die poort op die masjien gedefinieer deur \"/system/proxy/socks_host\" " "waardeur jy 'n instaanverbinding kry." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Hierdie sleutel bevat 'n lys gashere wat direk in plaas van deur die " "instaanbediener (indien dit aktief is) gekoppel is. Die waardes kan " "gasheername, domeine (met 'n aanvanklike instaankarakter soos *.foo.com), IP-" "gasheeradresse (beide IPv4 en IPv6) en netwerkadresse met 'n netmasker (iets " "soos 192.168.0.0/24) wees." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL wat instaanopstellingswaardes verskaf." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Gebruik HTTP-instaanbediener" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Gebruikernaam wat as geldigheidsvasstelling gevoer moet word wanneer HTTP-" "instanery gedoen word." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-werkgroep" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" #~ msgid "Could not initialize Bonobo" #~ msgstr "Kon nie Bonobo inisialiseer nie" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Kon nie gnome vfs inisialiseer nie" #~ msgid "Standard Moniker factory" #~ msgstr "Standaardmonikerfabriek" #~ msgid "file MonikerExtender" #~ msgstr "lêer MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "generiese Gnome VFS-moniker" #~ msgid "generic file moniker" #~ msgstr "generiese lêermoniker" #~ msgid "The window workgroup the user is part of" #~ msgstr "Die vensterwerkgroep waarvan die gebruiker deel is" #, fuzzy #~ msgid "Memory Stick Media" #~ msgstr "Geheuestafie" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "Windows" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "Kon nie %s ontleed nie" #~ msgid "Failed to open file '%s': %s" #~ msgstr "Kon nie lêer '%s': %s open nie" #, fuzzy #~ msgid "File is empty" #~ msgstr "Lêer bestaan" #~ msgid "Applications" #~ msgstr "Toepassings" #~ msgid "Cards" #~ msgstr "Kaarte" #~ msgid "Files" #~ msgstr "Lêers" #~ msgid "Folders" #~ msgstr "Vouers" #~ msgid "Help" #~ msgstr "Hulp" #~ msgid "Hosts" #~ msgstr "Gashere" #~ msgid "Links" #~ msgstr "Skakels" #~ msgid "Mail" #~ msgstr "Pos" #~ msgid "Tools" #~ msgstr "Nutsgoed" #~ msgid "Windows" #~ msgstr "Windows" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "Hanteer HTTP-URL'e" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "Hanteer HTTPS-URL'e" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Merk as waar sodat 'n program in \"command\" gespesifiseer HTTP-URL'e " #~ "hanteer." #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Merk as waar sodat 'n program in \"command\" gespesifiseer HTTPS-URL'e " #~ "hanteer." #, fuzzy #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "" #~ "Merk as waar sodat 'n program in \"command\" gespesifiseer HTTP-URL'e " #~ "hanteer." #, fuzzy #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "" #~ "Merk as waar sodat 'n program in \"command\" gespesifiseer HTTPS-URL'e " #~ "hanteer." #~ msgid "H323 URL handler" #~ msgstr "H323-URL-hanteerder" #~ msgid "HTTP URL handler" #~ msgstr "HTTP-URL-hanteerder" #~ msgid "HTTPS URL handler" #~ msgstr "HTTPS-URL-hanteerder" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "man-URL-hanteerder" #~ msgid "callto URL handler" #~ msgstr "callto-URL-hanteerder" #~ msgid "ghelp URL handler" #~ msgstr "ghelp-URL-hanteerder" #~ msgid "info URL handler" #~ msgstr "info-URL-hanteerder" #~ msgid "mailto URL handler" #~ msgstr "mailto-URL-hanteerder" #~ msgid "man URL handler" #~ msgstr "man-URL-hanteerder" #~ msgid "trash URL handler" #~ msgstr "trash-URL-hanteerder" #~ msgid "Bookmark saving failed (%s)" #~ msgstr "Kon nie boekmerk stoor nie (%s)" #~ msgid "Could not get information for file '%s': %s" #~ msgstr "Kon nie inligting vir lêer '%s': %s kry nie" #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "Kon nie beeld '%s' open nie: rede onbekend, waarskynlik 'n korrupte " #~ "beeldlêer" gnome-vfs-2.24.4/po/ms.po0000644000175000001440000005144611354402652012032 00000000000000# gnome-vfs. Sistem Fail Maya GNOME # Copyright (C) 2001-2004 Free Software Foundation, Inc. # 1. Mohamad Afifi Omar (App) # 2. Hasbullah Bin Pit (sebol) # msgid "" msgstr "" "Project-Id-Version: gnome-vfs HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2009-12-14 21:54+0000\n" "PO-Revision-Date: 2010-02-20 18:43+0730\n" "Last-Translator: Umarzuki bin Mochlis Moktar \n" "Language-Team: Bahasa Melayu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volum ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format #| msgid "%s:%d contains NUL characters." msgid "%s:%u contains NUL characters." msgstr "%s:%u mengandungi aksara NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format #| msgid "%s:%d contains no method name." msgid "%s:%u contains no method name." msgstr "%s:%u tidak mengandungi nama kaedah." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format #| msgid "%s:%d has no options endmarker." msgid "%s:%u has no options endmarker." msgstr "%s:%u tak mempunyai pilihan endmarker." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format #| msgid "%s:%d has unknown options %s." msgid "%s:%u has unknown options %s." msgstr "%s:%u mempunyai pilihan yg tak diketahui %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format #| msgid "%s:%d contains no module name." msgid "%s:%u contains no module name." msgstr "%s:%u tidak mengandungi nama modul." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Fail tetapan `%s' tidak dijumpai: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d henti paksa menghurai data." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volum AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volum Rangkaian AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volum diauto-kesan" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "Volum Btrfs Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Pemacu CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Audio Digital CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volum Peranti Perkakasan" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #| msgid "JFS Volume" msgid "EncFS Volume" msgstr "Volum EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "Volum eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volum Etx2 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volum Ext3 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "Volum Etx4 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volum MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #| msgid "MSDOS Volume" msgid "BSD Volume" msgstr "Volum BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 #| msgid "JFS Volume" msgid "FUSE Volume" msgstr "Volum FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volum MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volum CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volum CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volum JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volum Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volum Sistem" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volum Memori" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volum Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volum Rangkaian NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "Volum NILFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volum Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 #| msgid "ReiserFS Linux Volume" msgid "Reiser4 Linux Volume" msgstr "Volum Reiser4 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volum ReiserFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volum Perkongsian Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volum SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volum DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volum Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volum Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volum Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volum SAM-QFS Sun" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 #| msgid "Memory Volume" msgid "Temporary Volume" msgstr "Volum Sementara" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volum DOS diperkaya" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volum FAT Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volum Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volum XFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volum XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 #| msgid "XIAFS Volume" msgid "CIFS Volume" msgstr "Volum CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Entah" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format #| msgid "JFS Volume" msgid "%s Volume" msgstr "%s Volum" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s Pemacu" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s Pemacu" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 #| msgid "Floppy Disk" msgid "Floppy Drive" msgstr "Pemacu Cakera Liut" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 #| msgid "Compact Flash Media" msgid "Compact Flash Drive" msgstr "Pemacu Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 #, fuzzy #| msgid "Memory Stick" msgid "Memory Stick Drive" msgstr "Pemacu Batang Ingatan " #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 #, fuzzy msgid "Smart Media Drive" msgstr "Pemacu Media Pintar" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 #| msgid "CD-ROM Drive" msgid "SD/MMC Drive" msgstr "Pemacu SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Pemacu Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Pemacu Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pemacu Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s Pemain Muzik" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Kamera Digital" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Pemacu" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Luaran %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Cakera CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Cakera CD-R Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Cakera CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Cakera CD-RW Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Cakera CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Cakera DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Cakera DVD-RAM Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Cakera DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Cakera DVD-R Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Cakera DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Cakera DVD-RW Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Cakera DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Cakera DVD+R Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Cakera DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Cakera DVD+RW Kosong" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Cakera DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Cakera Audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format #| msgid "System Volume" msgid "%s Removable Volume" msgstr "%s Volum Boleh Buang" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 #| msgid "JFS Volume" msgid "Volume" msgstr "volum" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Jenis operasi tidak diketahui %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 #: ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Tidak dapat mencipta paip untuk GIOChannel yang dibuka: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Jenis kerja tidak diketahui %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operasi dihentikan" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "Fungsi telah tiada. Pengubahsuaian pengguna terhadap pangkalan data MIME tak lagi disokong." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Harap maaf tuan, gagal hantar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Ralat penghantaran seterusnya akan diabaikan." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Tiada ralat" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fail tidak dijumpai" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Ralat generik" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Ralat dalaman" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parameter yang tidak sah" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operasi yang tidak disokong" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Ralat I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Data telah rosak" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format tidak sah" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Kendalian fail rosak" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fail terlalu besar" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Tiada lagi ruang simpanan" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistem fail baca sahaja" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI yang tidak sah" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fail tidak dibuka" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Mod buka tidak sah" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Akses dinafikan" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Terlalu banyak fail dibuka" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Penghujung fail" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Bukanlah satu direktori" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operasi sedang dilaksanakan" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operasi terganggu" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Fail telah wujud" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Pautan berulang dijumpai" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operasi tidak dibenarkan" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Ialah satu direktori" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Memori tidak mencukupi" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Hos tidak dijumpai" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Nama hos tidak sah" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Hos tidak mempunyai alamat" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Logmasuk gagal" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operasi dibatalkan" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Direktori sibuk" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Direktori tidak kosong" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Terlalu banyak pautan" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Fail sistem baca sahaja" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Bukan pada sistem fail yang sama" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nama terlalu panjang" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Tiada servis" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Meminta data servis yang ketinggalan zaman" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Ralat protokol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Tak menjumpai pelungsur induk" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Tiada aksi default dikaitkan" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Tiada pengendali bagi skema URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Ralat menghuraikan baris arahan" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Ralat melancarkan arahan" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Had masa dijangkau" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Ralat pelayan nama" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Sumber dikunci" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Panggilan fungsi telah tiada" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 #| msgid "Invalid parameters" msgid "Invalid filename" msgstr "Namafail tidak sah" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Bukan pautan simbolik" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ralat yang tidak diketahui" gnome-vfs-2.24.4/po/ku.po0000644000175000001440000010626011334251016012017 00000000000000# translation of ku.po to Kurdish # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Erdal Ronahi , 2006. msgid "" msgstr "" "Project-Id-Version: ku\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-02-19 04:08+0100\n" "PO-Revision-Date: 2006-02-19 04:12+0100\n" "Last-Translator: Erdal Ronahi \n" "Language-Team: Kurdish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural= n != 1\n" "X-Generator: KBabel 1.11\n" #: ../daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "" #: ../daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%d contains NUL characters." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%d contains no method name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%d has no options endmarker." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%d contains no module name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "Reiser4 Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "ReiserFS Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Windows Shared Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "SuperMount Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "DVD Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Solaris/BSD Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Udfs Solaris Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Pcfs Solaris Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Sun SAM-QFS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Enhanced DOS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows VFAT Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "Xenix Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XFS Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "XIAFS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "CIFS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:106 msgid "Unknown" msgstr "Nenas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:363 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:589 #, c-format msgid "%s Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:379 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:622 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:381 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:383 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:387 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:389 msgid "DVD+R" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:391 msgid "DVD+RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-R" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:395 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:397 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-RAM" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:400 msgid "DVD±R" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:403 msgid "DVD±RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 #, c-format msgid "%s/%s Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:408 #, c-format msgid "%s Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Floppy Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:416 msgid "Compact Flash Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:418 msgid "Memory Stick Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Smart Media Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:422 msgid "SD/MMC Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:424 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:593 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:625 msgid "Zip Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:427 msgid "Jaz Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:430 msgid "Pen Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:436 #, c-format msgid "%s %s Music Player" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:444 #, c-format msgid "%s %s Digital Camera" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:474 msgid "Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:479 #, c-format msgid "External %s" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-ROM Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-R Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-R Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:527 msgid "Blank CD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:529 msgid "CD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-ROM Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-RAM Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-RAM Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-R Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-R Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:552 msgid "Blank DVD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:554 msgid "DVD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+R Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+R Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:567 msgid "Blank DVD+RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "DVD+RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:576 msgid "Audio Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:587 #, c-format msgid "%s Removable Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:598 msgid "Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1698 #, c-format msgid "Unknown job kind %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1731 msgid "Operation stopped" msgstr "" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:108 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:268 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:319 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:615 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:636 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:656 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:677 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:698 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:849 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:873 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:894 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:915 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:972 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:991 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:1010 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:1030 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:1050 #: ../libgnomevfs/gnome-vfs-mime-info.c:624 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:639 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:654 #: ../libgnomevfs/gnome-vfs-mime-info.c:671 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:700 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:704 #, c-format msgid "Could not parse: %s" msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:706 msgid "More parsing errors will be ignored." msgstr "" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:42 msgid "No error" msgstr "Çewtî tune" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:43 msgid "File not found" msgstr "Dosya nehat dîtin" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:44 msgid "Generic error" msgstr "" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:45 msgid "Internal error" msgstr "" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:46 msgid "Invalid parameters" msgstr "" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "Unsupported operation" msgstr "" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "I/O error" msgstr "" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Data corrupted" msgstr "" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Format not valid" msgstr "" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Bad file handle" msgstr "" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "File too big" msgstr "" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "No space left on device" msgstr "" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Read-only file system" msgstr "" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Invalid URI" msgstr "" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "File not open" msgstr "" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "Open mode not valid" msgstr "" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "Access denied" msgstr "Gîhîştin hat asteng kirin" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Too many open files" msgstr "" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "End of file" msgstr "" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "Not a directory" msgstr "" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Operation in progress" msgstr "" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Operation interrupted" msgstr "" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "File exists" msgstr "Dosya heye" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "Looping links encountered" msgstr "" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Operation not permitted" msgstr "" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Is a directory" msgstr "" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Not enough memory" msgstr "Xêv têr nake" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "Host not found" msgstr "" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Host name not valid" msgstr "" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Host has no address" msgstr "" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Login failed" msgstr "Têketîn serneket" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Operation cancelled" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Directory busy" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Directory not empty" msgstr "" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Too many links" msgstr "" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Read only file system" msgstr "" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Not on the same file system" msgstr "" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Name too long" msgstr "" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Service not available" msgstr "" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Request obsoletes service's data" msgstr "" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Protocol error" msgstr "" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Could not find master browser" msgstr "" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:88 ../libgnomevfs/gnome-vfs-result.c:90 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "Nameserver error" msgstr "" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Function call deprecated" msgstr "" #: ../libgnomevfs/gnome-vfs-result.c:215 msgid "Unknown error" msgstr "Çewtiya nenas" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "" msgstr[1] "" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:381 msgid " (invalid Unicode)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:619 msgid "Floppy" msgstr "Flopî" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "CD-ROM/DVD-ROM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-RAM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-R" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-R/DVD-ROM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-RAM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-R" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-RW/DVD-ROM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-RAM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-R" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:585 msgid "Disk" msgstr "Dîsk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "USB Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "IEEE1394 Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "CF" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "SD/MMC" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 msgid "Memory Stick" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 msgid "Smart Media" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "DVD" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:841 msgid "Root Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:922 msgid "Audio CD" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:955 msgid "Unknown volume" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1160 msgid "Network server" msgstr "" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:186 msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:190 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:196 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:200 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:203 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected floppy drive." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:210 msgid "Unable to mount the selected volume." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:223 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:226 msgid "Unable to unmount the selected volume." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:393 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:437 msgid "Couldn't run mount process in a pty" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:482 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:536 msgid "Couldn't send password to mount process." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:575 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:677 #: ../libgnomevfs/gnome-vfs-volume-ops.c:760 msgid "Failed to start command" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:747 msgid "Unable to eject media" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:995 msgid "Unable to unmount connected server" msgstr "" #: ../modules/computer-method.c:546 msgid "Network" msgstr "Tor" #: ../modules/computer-method.c:564 msgid "Home" msgstr "Mal" #: ../modules/computer-method.c:582 msgid "Filesystem" msgstr "Pergala dosiyan" #: ../modules/file-method.c:483 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "" #: ../modules/sftp-method.c:1321 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: ../modules/sftp-method.c:1322 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: ../modules/sftp-method.c:1330 msgid "Log In Anyway" msgstr "" #: ../modules/sftp-method.c:1331 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" #: ../monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "" #: ../monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "" #: ../monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "" #: ../monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" #: ../schemas/system_storage.schemas.in.h:1 msgid "Display SCSI drives" msgstr "" #: ../schemas/system_storage.schemas.in.h:2 msgid "Display SCSI optical drives" msgstr "" #: ../schemas/system_storage.schemas.in.h:3 msgid "Display drives with removable media" msgstr "" #: ../schemas/system_storage.schemas.in.h:4 msgid "Display external drives" msgstr "" #: ../schemas/system_storage.schemas.in.h:5 msgid "Display internal hard drives" msgstr "" #: ../schemas/system_storage.schemas.in.h:6 msgid "" "Whether to display SCSI optical drives even if /system/storage/" "display_scsi_drives is set to FALSE." msgstr "" #: ../schemas/system_storage.schemas.in.h:7 msgid "Whether to display drives and mountable volumes from SCSI drives." msgstr "" #: ../schemas/system_storage.schemas.in.h:8 msgid "" "Whether to display drives and mountable volumes from drives with removable " "media (e.g. drives where media can be inserted and removed)." msgstr "" #: ../schemas/system_storage.schemas.in.h:9 msgid "" "Whether to display drives and mountable volumes from external drives (e.g. " "drives that are hotpluggable; e.g. drives that can be attached and detached " "while the system is running)." msgstr "" #: ../schemas/system_storage.schemas.in.h:10 msgid "" "Whether to display drives and mountable volumes from internal hard drives " "(non-SCSI optical drives are always shown)." msgstr "" gnome-vfs-2.24.4/po/nso.po0000644000175000001440000012727711334251016012212 00000000000000# Northern Sotho translation of gnome-vfs. # Copyright (C) 2004 Zuza Software Foundation (Translate.org.za) # This file is distributed under the same license as the gnome-vfs package. # # Zuza Software Foundation , 2004 # msgid "" msgstr "" "Project-Id-Version: gnome-vfs HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-12-01 08:02+0200\n" "Last-Translator: Zuza Software Foundation \n" "Language-Team: Northern Sotho \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" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "E ka se kgone go beakanya Bonobo" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "E ka se kgone go beakanya gnome vfs" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "Bolumo ya ISO 9660" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d e na le ditlhaka tÅ¡a NUL." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d ga e na leina la mokgwa." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d ga e na sediri sa leswao mafelelong sa dikgetho." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%d e na le dikgetho tÅ¡e sa tsebjwego tÅ¡a %s." #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d ga e na leina la tekanyetÅ¡o." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Faele ya go fetola sebopego ya `%s' ga se ya hwetÅ¡wa: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "Bolumo ya AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "Bolumo ya Neteweke ya AFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "Bolumo e utolotÅ¡wego ka mo go itiragalelago" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "Draeve ya CD-ROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "Modumo wa Dinomoro wa CD" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "Bolumo ya SediriÅ¡wa sa Hardware" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Bolumo ya Ext2 ya Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Bolumo ya Ext3 ya Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "Bolumo ya MSDOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "Bolumo ya MacOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "Bolumo ya CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Bolumo ya Hsfs ya CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "Bolumo ya JFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Bolumo ya Windows NT" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "Bolumo ya TshepediÅ¡o" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "Bolumo ya Kgopolo" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Bolumo ya Minix" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "Bolumo ya Neteweke ya NFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Bolumo ya Netware" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "Bolumo ya ReiserFS ya Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "Bolumo e Abelanwago ya Windows" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "Bolumo ya SuperMount" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "Bolumo ya DVD" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Bolumo ya Solaris/BSD" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Bolumo ya Udfs ya Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Bolumo ya Pcfs ya Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "Bolumo ya Sun ya SAM-QFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "Bolumo e okeditÅ¡wego ya DOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Bolumo ya Windows ya VFAT" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Bolumo ya Xenix" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "Bolumo ya XFS ya Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "Bolumo ya XIAFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "E sa tsebjwego" #: libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Mohuta o sa tsebjwego wa go Å¡oma wa %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "E ka se kgone go hlama phaepe bakeng sa GIOChannel: %s e bulegilego" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Mohuta o sa tsebjwego wa moÅ¡omo wa %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "Go Å¡oma go emiÅ¡itÅ¡we" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "MoÅ¡omo o kgaoditÅ¡wego. DimpshafatÅ¡o tÅ¡a modiriÅ¡i go datapeisi ya MIME ga di " "sa thekgwa." #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "E ka se kgone go arola mantÅ¡u: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "DiphoÅ¡o tÅ¡e oketÅ¡egilego tÅ¡a go arola mantÅ¡u di tla hlokomologwa." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Ga go na phoÅ¡o" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Faele ga se ya hwetÅ¡wa" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "PhoÅ¡o ya kakaretÅ¡o" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "PhoÅ¡o ya ka gare" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Ditekanyo tÅ¡eo e sego tÅ¡a kgonthe" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "Go Å¡oma mo go sa thekgwego" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "PhoÅ¡o ya I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "TsebiÅ¡o e senyegilego" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Sebopego ga se nakong" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Go swarwa go gobe ga faele" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Faele ke e kgolo kudu" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Ga go na sekgoba seo se Å¡etÅ¡ego sediriÅ¡weng" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "TshepediÅ¡o ya faele ya go bala feela" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "URI yeo e sego nakong" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Faele e sa bulegago" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Mokgwa wa go bula ga o nakong" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Go tsena go gannwe" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "Go na le difaele tÅ¡e dintÅ¡i kudu tÅ¡eo di bulegilego" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Mafelelo a faele" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Ga se tÅ¡hupetÅ¡o" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Go Å¡oma go tÅ¡wela pele" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "Go Å¡oma go Å¡itiÅ¡itÅ¡we" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Faele e Å¡etÅ¡e e le gona" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Go lebelela dikgokagano tÅ¡eo go kopanwego le tÅ¡ona" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Go Å¡oma mo ga go a dumelelwa" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Ke tÅ¡hupetÅ¡o" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Ga go na kgopolo e lekanego" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Moswari ga se a hwetÅ¡wa" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Leina la moswari ga le Å¡ome" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "Moswari ga a na aterese" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Go tsena ka gare go padile" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "Go Å¡oma go khansetÅ¡we" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "TÅ¡hupetÅ¡o e swaregile" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "TÅ¡hupetÅ¡o e na le selo ka gare" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Go na le dikgokaganyo tÅ¡e dintÅ¡i kudu" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "TshepediÅ¡o ya faele ya go bala feela" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Ga e tshepediÅ¡ong e swanago ya faele" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Leina ke le letelele kudu" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "Tirelo ga e hwetÅ¡agale" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Kgopela tsebiÅ¡o ya tirelo ya tÅ¡a kgale" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "PhoÅ¡o ya porotokole" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Ga e kgone go hwetÅ¡a sefetleki se segolo" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Ga go na tiro ya tlhaelelo yeo e tswalanywago" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "Ga go na moswari wa sekema sa STS" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "PhoÅ¡o ya go arola mothaladi wa taelo" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "PhoÅ¡o ya go tsebagatÅ¡a taelo" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "Nako ya mafelelo e fihleletÅ¡we" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 msgid "Nameserver error" msgstr "PhoÅ¡o ya go nea seabi leina" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "ThuÅ¡o e notletÅ¡we" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "Go bitÅ¡wa ga tiro go kgaoditÅ¡we" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "PhoÅ¡o e sa tsebjwego" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "Paete ya %u" msgstr[1] "Dipaete tÅ¡a %u" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "Khilopaete ya %.1f" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "Megapaete ya %.1f" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "Gigapaete ya %.1f" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (go Tsenywa ga Khoutu mo e sego ga Kgonthe)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "Flopi" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "CD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "CD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "Tisiki" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "Draeve ya USB" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "Draeve ya IEEE1394" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "CF" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "SD/MMC" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "SediriÅ¡wa sa go Boloka Kgopolo" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "Methopo e Fapa-fapanego ya Ditaba e Bohlale" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "Tsenya Draeve Khoutu" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Khamera" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "DVD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "Bolumo ya Modu" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "CD ya Modumo" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "Bolumo e sa tsebjwego" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "Seabi sa neteweke" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Ga e kgone go tsentÅ¡ha draeve ya flopi. Mohlomongwe ga go na flopi ka " "draeveng." #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Ga e kgone go tsentÅ¡ha bolumo. Mohlomongwe ga go na methopo e fapa-fapanego " "ya ditaba ka sediriÅ¡weng." #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ga e kgone go tsentÅ¡ha draeve ya flopi. Mohlomongwe flopi e ka sebopego seo " "e ka se tsentÅ¡hwego ka sona." #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ga e kgone go tsentÅ¡ha bolumo e kgethilwego. Mohlomongwe bolumo e ka " "sebopego seo e ka se tsentÅ¡hwego ka sona." #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "Ga e kgone go tsentÅ¡ha draeve e kgethilwego ya flopi." #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "Ga e kgone go tsentÅ¡ha bolumo e kgethilwego." #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "Ga e kgone go ntÅ¡ha bolumo e kgethilwego." #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "E paletÅ¡we ke go thoma taelo" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "Ga e kgone go ntÅ¡ha methopo e fapa-fapanego ya ditaba" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "Ga e kgone go ntÅ¡ha seabi se kgokagantÅ¡wego" #: modules/computer-method.c:545 msgid "Network" msgstr "Neteweke" #: modules/computer-method.c:563 msgid "Home" msgstr "Gae" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "TshepediÅ¡o ya faele" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFS ya go Nyaka Boemo ya %d e sa tsebjwego" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Neteweke ya Windows" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "BoitsebiÅ¡o bja khomphuthara e lego kgole (%s) ga bo tsebjwe." #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Se se direga ge o tsena khomphuthareng ka lekga la mathomo.\n" "\n" "BoitsebiÅ¡o bjo bo rometÅ¡wego ke khomphuthara ya kgole ke %s. Ge eba o nyaka " "go kgonthiÅ¡ega ka kgonthe ge eba go bolokegile go tÅ¡wela pele, ikopanye le " "molaodi wa tshepediÅ¡o." #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "Lega go le bjalo tsena" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "Khansela go Tsena ka gare" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ga se ya hwetÅ¡a faele ya dipeakanyo tÅ¡a kgonthe go %s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "DiriÅ¡a phapano ya tikologo ya %s go lemoga lefelo le fapanego.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Fektori ya Motheo ya Leina la Dikwero" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "Bea SeoketÅ¡i sa Leina la Dikwero faeleng" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "leina la dikwero la Gnome VFS la kakaretÅ¡o" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "leina la dikwero la faele ya kakaretÅ¡o" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Dira gore tiriÅ¡o ya karolo ya go lebelela e hlaelele" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Dira gore tiriÅ¡o ya kgokagano ya dithapo e hlaelele" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "NgangiÅ¡ano ya kgonthe bakeng sa kgokagano ya dithapo e hlaelelago" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "TiriÅ¡o yeo e tla diriÅ¡etÅ¡wago go lebelela difaele tÅ¡eo di nyakago thuÅ¡o gore " "o di lebelele. Ditekanyo tÅ¡a %s di tla tÅ¡eelwa legato ke di-STS tÅ¡a faele, " "tekanyo ya %c e tla tÅ¡eelwa legato ke thuÅ¡o ya IID." #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "TiriÅ¡o ya kgokagano ya dithapo e hlaelelago yeo e tla diriÅ¡wagoo bakeng sa " "ditiriÅ¡o tÅ¡eo di nyakago kgokagano ya dithapo." #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "NgangiÅ¡ano ya kgonthe ya go diriÅ¡etÅ¡wa tiriÅ¡o ya kgokagano ya dithapo e " "hlaelelago." #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "PhethagatÅ¡a taelo kgokaganong ya dithapo" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"aim\" , ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"callto\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"ghelp\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"h323\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"http\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"https\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"info\" , ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"mailto\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"man\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a \"trash\", ge eba di " "kgontÅ¡hitÅ¡we." #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"aim\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"callto\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"ghelp\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"h323\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"http\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"https\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"info\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"mailto\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"man\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Seswari sa di-STS tÅ¡a \"trash\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"aim\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"callto\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"ghelp\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"h323\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"http\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"https\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"info\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"mailto\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"man\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Ke thereÅ¡o gore ge taelo e laeditÅ¡we go \"command\" senotlelo se swanetÅ¡e go " "swaragana le di-STS tÅ¡a \"trash\"." #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e " "swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo." #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"aim\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"callto\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"ghelp\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"h323\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"http\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"https\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"info\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"mailto\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"man\"" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" "Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a \"trash\"" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" "Lelokelelo la maina a dns-sd leo le arotÅ¡wego ka fegelwana leo le swanetÅ¡ego " "go bonagala lefelong la neteweke." #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "Maina a oketÅ¡egilego a go ka lebelela ditirelo tÅ¡a dns-sd go ona" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Kamoo o ka bonagatÅ¡ago tirelo ya mo gae ya DNS-SD" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Boleng bjo ke \"merged\", \"separate\" le \"disabled\"." #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "TiiÅ¡etÅ¡a dikgokagano tÅ¡a seabi tÅ¡eo e lego kemedi" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "STS ya go fetola sebopego ya kemedi yeo e itiragalelago" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "E kgontÅ¡ha dipeakanyo tÅ¡a kemedi ge e diragatÅ¡a PFSK inthaneteng." #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Leina la moswari la kemedi la PFF" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "DikopantÅ¡hwa le khomphuthara tÅ¡a kemedi tÅ¡a PFF" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Leina la moswari la kemedi la PFSK" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "LentÅ¡u-phetiÅ¡o la kemedi la PFSK" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "DikopantÅ¡hwa le khomphuthara tÅ¡a kemedi tÅ¡a PFSK" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Leina la modiriÅ¡i la kemedi la PFSK" #: schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ge eba e le thereÅ¡o, dikgokagano tÅ¡eo di yago go seabi sa kemedi di nyaka " "tiiÅ¡etÅ¡o. Motswako wa leina la modiriÅ¡i/lentÅ¡u-phetiÅ¡o tÅ¡e hlaloswago ke \"/" "system/http_proxy/authentication_user\" le \"/system/http_proxy/" "authentication_password\"." #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Baswari bao e sego dikemedi" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "LentÅ¡u-phetiÅ¡o le tla fetago bjalo ka tiiÅ¡etÅ¡o ge go dirwa boemedi bja PFSK." #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mokgwa wa go fetola sebopego ga kemedi" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Leina la moswari la kemedi la SOCKS" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "DikopantÅ¡hwa le khomphuthara tÅ¡a kemedi tÅ¡a SOCKS" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Leina la moswari la kemedi la PFSK le Å¡ireletÅ¡egilego" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "DikopantÅ¡hwa le khomphuthara tÅ¡a PFSK tÅ¡e Å¡ireletÅ¡egilego" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Kgetha mokgwa wa go fetola sebopego wa kemedi. Mehola e thekgwago ke \"ga e " "gona\", \"ya maitirelo\", \"itiragalelago\"." #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Leina la motÅ¡hene gore le emele PFF." #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Leina la motÅ¡hene gore le emele PFSK." #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Leina la motÅ¡hene gore le emele PFSK e Å¡ireletÅ¡egilego." #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Leina la motÅ¡hene gore le emele dikausu." #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Lefelo leo mo motÅ¡heneng le hlalositÅ¡wego ke \"/system/http_proxy/host\" yo " "o mo emelago." #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Lefelo leo mo motÅ¡heneng le hlalositÅ¡wego ke \"/system/proxy/ftp_host\" yo o " "mo emelago." #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Lefelo leo mo motÅ¡heneng le hlalositÅ¡wego ke \"/system/proxy/secure_host\" " "tÅ¡eo o di emelago." #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Lefelo leo mo motÅ¡eneng le hlalositÅ¡wego ke \"/system/proxy/socks_host\" " "tÅ¡eo o di emelago." #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Senotlelo se se na le lelokelelo la baswari bao ba kgokagantÅ¡wego ka go " "lebanya, go e na le go feta go kemedi (e a Å¡oma). Mehola e ka ba maina a " "moswari, maina ( go diriÅ¡wa karata e Å¡ele e bjalo ka *.foo.com), aterese ya " "moswari ya IP (bobedi IPv4 le IPv6) le diaterese tÅ¡a neteweke tÅ¡eo di nago " "le seÅ¡iro sa nete (selo se swanago le 192.168.0.0/24)." #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "STS yeo e fanago ka mehola ya go fetola sebopego ga kemedi." #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "DiriÅ¡a kemedi ya PFSK" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Leina la modiriÅ¡i la go feta bjalo ka tiiÅ¡etÅ¡o ge go dirwa kemedi ya PFSK." #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Sehlopha sa moÅ¡omo sa SMB" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "Sehlopha sa moÅ¡omo sa lefesetere sa modiriÅ¡i ke karolo ya" #~ msgid "CD-ROM Disc" #~ msgstr "Tisiki ya CD-ROM" #~ msgid "Blank CD-R Disc" #~ msgstr "Tisiki e se Nago Selo ya CD-R" #~ msgid "CD-R Disc" #~ msgstr "Tisiki ya CD-R" #~ msgid "Blank CD-RW Disc" #~ msgstr "Tisiki e se Nago Selo ya CD-RW" #~ msgid "CD-RW Disc" #~ msgstr "Tisiki ya CD-RW" #~ msgid "DVD-ROM Disc" #~ msgstr "Tisiki ya DVD-ROM" #~ msgid "Blank DVD-R Disc" #~ msgstr "Tisiki e se Nago Selo ya DVD-R" #~ msgid "DVD-R Disc" #~ msgstr "Tisiki ya DVD-R" #~ msgid "Blank DVD-RAM Disc" #~ msgstr "Tisiki e se Nago Selo ya DVD-RAM" #~ msgid "DVD-RAM Disc" #~ msgstr "Tisiki ya DVD-RAM" #~ msgid "Blank DVD-RW Disc" #~ msgstr "Tisiki e se Nago Selo ya DVD-RW" #~ msgid "DVD-RW Disc" #~ msgstr "Tisiki ya DVD-RW" #~ msgid "Blank DVD+RW Disc" #~ msgstr "Tisiki e se Nago Selo ya DVD+RW" #~ msgid "DVD+RW Disc" #~ msgstr "Tisiki ya DVD+RW" #~ msgid "Blank DVD+R Disc" #~ msgstr "Tisiki e se Nago Selo ya DVD+R" #~ msgid "DVD+R Disc" #~ msgstr "Tisiki ya DVD+R" #~ msgid "Optical Disc" #~ msgstr "Tisiki ya Pono" #~ msgid "Audio Disc" #~ msgstr "Tisiki ya Modumo" #~ msgid "Compact Flash Media" #~ msgstr "Flash Media e Tiilego" #~ msgid "Memory Stick Media" #~ msgstr "Methopo e Fapa-fapanego ya Ditaba ya SediriÅ¡wa sa go Boloka Kgopolo" #~ msgid "Smart Media Media" #~ msgstr "Methopo e Fapa-fapanego ya Ditaba ya Smart Media" #~ msgid "SD/MMC Media" #~ msgstr "Methopo e Fapa-fapanego ya Ditaba ya SD/MMC" #~ msgid "Floppy Disk" #~ msgstr "Flopitisiki" #~ msgid "Mac OS disk" #~ msgstr "Tisiki ya Mac ya OS" #~ msgid "Mac OS X disk" #~ msgstr "Tisiki ya Mac ya OS X" #~ msgid "Windows Disk" #~ msgstr "Tisiki ya Windows" #~ msgid "Linux Disk" #~ msgstr "Tisiki ya Linux" #~ msgid "File could not be opened: %s" #~ msgstr "Faele e ka se bulwe: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "E paletÅ¡we ke go bula faele ya '%s': %s" #~ msgid "File is empty" #~ msgstr "Faele ga e na selo" #~ msgid "Failed to read from file '%s': %s" #~ msgstr "E paletÅ¡we go bala go tÅ¡wa faeleng ya '%s': %s" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "ditsenyo tÅ¡a teseke di na le mothaladi wa '%s' wo e sego tseno, sehlopha " #~ "goba tlhaloso" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "" #~ "faele ya ditseno tÅ¡a teseke ga e thome ka sehlopha sa go thoma se lego " #~ "molaong" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "ditseno tÅ¡a teseke di na le mothaladi wa '%s' wo e sego UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "" #~ "ditseno tÅ¡a teseke di na le go tsenywa ga khoutu mo go sa tsebjwego ga '%" #~ "s'" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "ditseno tÅ¡a teseke ga di na sehlopha sa '%s'" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "ditseno tÅ¡a teseke ga di na senotlelo sa '%s'" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "ditseno tÅ¡a teseke di na le senotlelo sa '%s' seo se nago le mohola wo o " #~ "ka se tolokwego." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "ditseno tÅ¡a teseke ga di na mohola o fetoletÅ¡wego wa senotlelo sa '%s' " #~ "yeo e nago le lefelo la '%s'." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "" #~ "ditseno tÅ¡a teseke di na le tatelano ya go phonyokga mo e sego ga kgonthe " #~ "ga '%s'" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "" #~ "ditseno tÅ¡a teseke di na le tlhaka ya go phonyokga mafelelong a mothaladi" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Mohola wa '%s' o ka se tolokwe bjalo ka nomoro." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Mohola wa '%s' o ka se tolokwe bjalo ka lekopanyi." #~ msgid "Applications" #~ msgstr "Ditiro" #~ msgid "Cards" #~ msgstr "Dikarata" #~ msgid "Files" #~ msgstr "Difaele" #~ msgid "Folders" #~ msgstr "Diphuthedi" #~ msgid "Help" #~ msgstr "ThuÅ¡o" #~ msgid "Hosts" #~ msgstr "Baswari" #~ msgid "Links" #~ msgstr "Dikgokaganyo" #~ msgid "Mail" #~ msgstr "Poso" #~ msgid "Tools" #~ msgstr "DidiriÅ¡wa" #~ msgid "Windows" #~ msgstr "Mafesetere" gnome-vfs-2.24.4/po/ml.po0000644000175000001440000020053111334251016012004 00000000000000# translation of gnome-vfs.HEAD.ml.po to # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # FSF-India , 2003. # Ani Peter , 2006, 2009. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.ml\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-11-07 13:57+0100\n" "PO-Revision-Date: 2009-03-10 22:15+0530\n" "Last-Translator: Ani Peter \n" "Language-Team: Swathanthra Malayalam Computing|à´¸àµà´µà´¤à´¨àµà´¤àµà´° മലയാളം à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´¿à´™àµ \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" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "\n" "\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u-à´²àµâ€ NUL à´…à´•àµà´·à´°à´™àµà´™à´³àµâ€ à´…à´Ÿà´™àµà´™à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u-à´²àµâ€ പദàµà´§à´¤à´¿à´¯àµà´Ÿàµ† പേരൠലഭàµà´¯à´®à´²àµà´²." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u-നൠഉപാധികളàµà´Ÿàµ† à´Žà´¨àµâ€à´¡àµà´®à´¾à´°àµâ€à´•àµà´•à´°àµâ€ ലഭàµà´¯à´®à´²àµà´²." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u-à´²àµâ€ അപരിചിതമായ ഉപാധികളàµâ€ %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u-à´²àµâ€ ഘടകതàµà´¤à´¿à´¨àµâ€à´±àµ† പേരൠലഭàµà´¯à´®à´²àµà´²." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "കോണàµâ€à´«à´¿à´—റേഷനàµâ€ ഫയലàµâ€ `%s' ലഭàµà´¯à´®à´²àµà´²: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d പാഴàµà´¸à´¿à´™àµ നിരàµâ€à´¤àµà´¤à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•ൠവോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´°àµâ€ à´¸àµà´µà´¯à´‚ à´•à´£àµà´Ÿàµà´ªà´¿à´Ÿà´¿à´šàµà´š വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "സി.à´¡à´¿ ഡിജിറàµà´±à´²àµâ€ ഓഡിയോ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "ഹാരàµâ€à´¡àµâ€à´µà´¯à´°àµâ€ ഡിവൈസൠവോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "സിസàµà´±àµà´±à´‚ വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "മെമàµà´®à´±à´¿ വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•ൠവോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows ഷെയരàµâ€à´¡àµ വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "താലàµâ€à´•ാലികമായ വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "à´Žà´¨àµâ€à´¹à´¾à´¨àµâ€à´¸àµà´¡àµ DOS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "അപരിചിതം" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "à´«àµà´³àµ‹à´ªàµà´ªà´¿ à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "കോംപാകàµà´±àµà´±àµ à´«àµà´³à´¾à´·àµ à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "മെമàµà´®à´±à´¿ à´¸àµà´±àµà´±à´¿à´•àµà´•ൠഡàµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "à´¸àµà´®à´¾à´°àµâ€à´Ÿàµà´Ÿàµ മീഡിയാ à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "സിപàµà´ªàµ à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ജാസàµà´¸àµ à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "പെനàµâ€ à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s à´®àµà´¯àµ‚സികàµà´•ൠപàµà´³àµ†à´¯à´°àµâ€" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ഡിജിറàµà´±à´²àµâ€ à´•àµà´¯à´¾à´®à´±à´¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "à´Žà´•àµà´¸àµà´±àµà´±àµ‡à´°àµâ€à´£à´²àµâ€ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "à´’à´¨àµà´¨àµà´‚ à´Žà´´àµà´¤à´¾à´¤àµà´¤ CD-R à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "à´’à´¨àµà´¨àµà´‚ à´Žà´´àµà´¤à´¾à´¤àµà´¤ CD-RW à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "à´’à´¨àµà´¨àµà´‚ à´Žà´´àµà´¤à´¾à´¤àµà´¤ DVD-RAM à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "à´’à´¨àµà´¨àµà´‚ à´Žà´´àµà´¤à´¾à´¤àµà´¤ DVD-R à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "à´’à´¨àµà´¨àµà´‚ à´Žà´´àµà´¤à´¾à´¤àµà´¤ DVD-RW à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "à´’à´¨àµà´¨àµà´‚ à´Žà´´àµà´¤à´¾à´¤àµà´¤ DVD+R à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "à´’à´¨àµà´¨àµà´‚ à´Žà´´àµà´¤à´¾à´¤àµà´¤ DVD+RW à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ഓഡിയോ à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s നീകàµà´•à´‚ ചെയàµà´¯à´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨ വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "അപരിചിതമായ തരതàµà´¤à´¿à´²àµà´³à´³ à´ªàµà´°à´µàµƒà´¤àµà´¤à´¿ %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "à´¤àµà´±à´¨àµà´¨ അവസàµà´¥à´¯à´¿à´²àµà´³à´³ GIOChannel-നൠപൈപàµà´ªàµ ഉണàµà´Ÿà´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "അറിയാതàµà´¤ തരം ജോലി %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "à´ªàµà´°à´µâ€Œà´°àµâ€à´¤àµà´¤à´¨à´‚ അവസാനിപàµà´ªà´¿à´šàµà´šàµ" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "അപലപികàµà´•àµà´¨àµà´¨ à´«à´‚à´—àµà´·à´¨àµâ€. MIME ഡേറàµà´±à´¾à´¬àµ†à´¯à´¿à´¸à´¿à´²àµ‡à´•àµà´•ൠഉപയോഗികàµà´•àµà´¨àµà´¨ ആളàµâ€ വരàµà´¤àµà´¤àµà´¨àµà´¨ മാറàµà´±à´™àµà´™à´³àµâ€à´•àµà´•ൠഇപàµà´ªàµ‹à´³àµâ€ " "പിനàµà´¤àµà´£ ലഭàµà´¯à´®à´²àµà´²." #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "പാഴàµà´¸àµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "കൂടàµà´¤à´²à´¾à´¯àµà´³à´³ പാഴàµà´¸à´¿à´™àµ പിശകàµà´•à´³àµâ€ അവഗണികàµà´•àµà´¨àµà´¨à´¤à´¾à´£àµ." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "പിശകൠഇലàµà´²" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ഫയലàµâ€ ലഭàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "പൊതൠപിശകàµ" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ആനàµà´¤à´°à´¿à´• പിശകàµ" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "സാധàµà´¤à´¯à´¿à´²àµà´²à´¾à´¤àµà´¤ à´•àµà´°à´¿à´¯à´¾à´™àµà´•à´‚" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "പിനàµà´¤àµà´£à´¯àµà´•àµà´•à´ªàµà´ªàµ†à´Ÿà´¾à´¤àµà´¤ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O തെറàµà´±àµ" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "ഡേറàµà´±à´¾ തെറàµà´±àµà´ªà´±àµà´±à´¿à´¯à´¤à´¾à´£àµ" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "അസാധàµà´µà´¾à´¯ രൂപം" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "മോശമായ ഫയലàµâ€ ഹാനàµâ€à´¡à´¿à´²àµâ€" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ഫയലàµâ€ വളരെ വലàµà´¤àµ" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ഉപകരണതàµà´¤à´¿à´²àµâ€ à´¸àµà´¥à´²à´‚ ലഭàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "റീഡàµ-à´’à´£àµâ€à´²à´¿ ഫയലàµâ€ സിസàµà´±àµà´±à´‚" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "അസാധàµà´µà´¾à´¯ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ഫയലàµâ€ à´¤àµà´±à´¨àµà´¨à´¿à´²àµà´²" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "à´¤àµà´±à´•àµà´•àµà´¨àµà´¨ രീതി അസാധàµà´µà´¾à´£àµ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ നിഷേധിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "ധാരാളം à´¤àµà´±à´¨àµà´¨ ഫയലàµà´•à´³àµâ€" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ഫയലിനàµâ€à´±àµ† അവസാനം" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ഒരൠഡയറകàµà´Ÿà´±à´¿ à´…à´²àµà´²" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ à´ªàµà´°àµ‹à´—തിയിലàµâ€" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ തടസàµà´¸à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ഫയലàµâ€ നിലവിലàµà´£àµà´Ÿàµ" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ലൂപിങൠലിങàµà´•àµà´•à´³àµâ€ à´…à´­à´¿à´®àµà´–ീകരിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´¤àµà´¤à´¿à´¨àµ à´…à´¨àµà´µà´¾à´¦à´®à´¿à´²àµà´²" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ഒരൠഡയറകàµà´Ÿà´±à´¿à´¯à´¾à´£àµ" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "മെമàµà´®à´±à´¿à´¯à´¿à´²àµâ€ ആവശàµà´¯à´¤àµà´¤à´¿à´¨àµ à´¸àµà´¥à´²à´®à´¿à´²àµà´²" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ഹോസàµà´±àµà´±àµ à´•à´£àµà´Ÿàµà´•à´¿à´Ÿàµà´Ÿà´¿à´¯à´¿à´²àµà´²" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ഹോസàµà´±àµà´±àµ നെയിം അസാധàµà´µà´¾à´£àµ" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ഹോസàµà´±àµà´±à´¿à´¨àµ വിലാസം ലഭàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ പരാചയപàµà´ªàµ†à´Ÿàµà´Ÿàµ" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ റദàµà´¦à´¾à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ഡയറകàµà´Ÿà´±à´¿ തിരകàµà´•ിലാണàµ" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ഡയറകàµà´Ÿà´±à´¿ ശൂനàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "ധാരാളം ലിങàµà´•àµà´•à´³àµâ€" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "റീഡൠഒണàµâ€à´²à´¿ ഫയലàµâ€ സിസàµà´±àµà´±à´‚" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ഒരേ ഫയലàµâ€ സിസàµà´±àµà´±à´®à´¿à´²à´²àµà´²" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "പേരൠവളരെ നീളമàµà´³àµà´³à´¤à´¾à´£àµ" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "സേവനം ലഭàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "സേവനതàµà´¤à´¿à´¨àµà´³à´³ ഡേറàµà´±à´¾ ആവശàµà´¯à´‚ വേണàµà´Ÿàµ†à´¨àµà´¨àµ വചàµà´šàµ" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "കീഴàµâ€à´µà´´à´•àµà´•à´¤àµà´¤à´¿à´²àµâ€ പിശകàµ" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "à´ªàµà´°à´§à´¾à´¨ തെരചàµà´šà´¿à´²àµâ€ സഹായിയെ à´•à´£àµà´Ÿàµ†à´¤àµà´¤à´¾à´¨à´¾à´¯à´¿à´²àµà´²" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ ലഭàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL സനàµà´ªàµà´°à´¦à´¾à´¯à´¤àµà´¤à´¿à´¨àµ ഹാനàµâ€à´¡àµâ€à´²à´°àµâ€ ലഭàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "കമാനàµâ€à´¡àµ ലൈനàµâ€ പാഴàµà´¸àµ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പിശകàµ" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "കമാനàµâ€à´¡àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പിശകàµ" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ടൈമൌടàµà´Ÿàµ à´Žà´¤àµà´¤à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "നെയിം സരàµâ€à´µà´±à´¿à´²àµâ€ പിശകàµ" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "റിസോഴàµà´¸àµ ലഭàµà´¯à´®à´²àµà´²" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "à´«à´‚à´—àµà´·à´¨àµâ€ കോളàµâ€ അപലപിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "അസാധàµà´µà´¾à´¯ ഫയലàµâ€à´¨à´¾à´®à´‚" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "സിനàµà´ªàµ‹à´³à´¿à´•àµà´•ൠലിങàµà´•ൠഅലàµà´²" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "അപരിചിതമായ പിശകàµ" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ബൈറàµà´±àµ" msgstr[1] "%u ബൈറàµà´±àµà´¸àµ" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (അസാധàµà´µà´¾à´¯ à´¯àµà´£à´¿à´•ോഡàµ)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "à´«àµà´³àµ‹à´ªàµà´ªà´¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "à´¡à´¿à´¸àµà´•àµ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 à´¡àµà´°àµˆà´µàµ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "മെമàµà´®à´±à´¿ à´¸àµà´±àµà´±à´¿à´•àµà´•àµ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "à´¸àµà´®à´¾à´°àµâ€à´Ÿàµà´Ÿàµ മീഡിയാ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "à´•àµà´¯à´¾à´®à´±à´¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "à´¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Root വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "ഓഡിയോ CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "അപരിചിതമായ വോളàµà´¯à´‚" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•ൠസരàµâ€à´µà´°àµâ€" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "à´«àµà´³àµ‹à´ªàµà´ªà´¿ à´¡àµà´°àµˆà´µàµ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´². à´¡àµà´°àµˆà´µà´¿à´²àµâ€ à´«àµà´³àµ‹à´ªàµà´ªà´¿ ഉണàµà´Ÿàµ à´Žà´¨àµà´¨àµà´±à´ªàµà´ªàµà´µà´°àµà´¤àµà´¤àµà´•." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "വോളàµà´¯à´‚ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´². ഡിവൈസിലàµâ€ മീഡിയാ ഉണàµà´Ÿàµ à´Žà´¨àµà´¨àµà´±à´ªàµà´ªàµà´µà´°àµà´¤àµà´¤àµà´•." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "à´«àµà´³àµ‹à´ªàµà´ªà´¿ à´¡àµà´°àµˆà´µàµ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´². à´«àµà´³àµ‹à´ªàµà´ªà´¿ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨ " "രൂപതàµà´¤à´¿à´²à´¾à´¯à´¿à´°à´¿à´•àµà´•à´¿à´²àµà´²." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "വോളàµà´¯à´‚ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´². ഇതൠരഹസàµà´¯à´•ോഡൠഉപയോഗികàµà´•àµà´¨àµà´¨ à´¡àµà´°àµˆà´µàµ ആണെങàµà´•à´¿à´²àµâ€, തെറàµà´±à´¾à´¯ " "പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ കീ ഉപയോഗിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ വോളàµà´¯à´‚ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´². വോളàµà´¯à´‚ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´•àµà´¨àµà´¨ " "രൂപതàµà´¤à´¿à´²à´¾à´¯à´¿à´°à´¿à´•àµà´•à´¿à´²àµà´²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ à´«àµà´³àµ‹à´ªàµà´ªà´¿ à´¡àµà´°àµˆà´µàµ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´². " #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ വോളàµà´¯à´‚ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ വോളàµà´¯à´‚ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´². à´’à´¨àµà´¨àµ‹ അതിലധികമോ à´ªàµà´°àµ‹à´—àµà´°à´¾à´®àµà´•à´³àµâ€ വോളàµà´¯à´‚ " "ഉപയോഗിചàµà´šàµ കൊണàµà´Ÿà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ വോളàµà´¯à´‚ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ചൈളàµâ€à´¡àµ à´ªàµà´°à´•àµà´°à´¿à´¯ %d (%s)-à´²àµâ€ നിനàµà´¨àµà´‚ ഡേറàµà´±à´¾ വായികàµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ പരാജയം" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty-à´²àµâ€ മൌണàµà´Ÿàµ à´ªàµà´°à´•àµà´°à´¿à´¯ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "ചൈളàµâ€à´¡àµ à´ªàµà´°à´•àµà´°à´¿à´¯à´¿à´¯à´¯à´¿à´²àµâ€ നിനàµà´¨àµà´‚ ഡേറàµà´±à´¾ വായികàµà´•àµà´¨àµà´¨à´¤à´¿à´²àµâ€ select()-à´²àµâ€ à´…à´ªàµà´°à´¤àµ€à´•àµà´·à´¿à´¤à´®à´¾à´¯ പിശകൠ(%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "à´ªàµà´°à´•àµà´°à´¿à´¯ മൌണàµà´Ÿàµ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ അയയàµà´•àµà´µà´¾à´¨àµâ€ സാധിചàµà´šà´¿à´²àµà´²." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid()-à´²àµâ€ അപരിചിതമായ പിശകൠ(%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ആരംഭികàµà´•àµà´¨àµà´¨à´¿à´²àµà´¡ പരാജയം" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "സി.à´¡à´¿ à´ªàµà´±à´¤àµà´¤àµ†à´Ÿàµà´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "കണകàµà´Ÿàµ ചെയàµà´¤ സരàµâ€à´µà´±à´¿à´¨àµ† à´…à´£àµâ€à´®àµŒà´£àµà´Ÿàµ ചെയàµà´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²" #: ../modules/computer-method.c:543 msgid "Network" msgstr "നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•àµ" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ഹോം" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ഫയലàµâ€à´¸à´¿à´¸àµà´±àµà´±à´‚" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "അപരിചിതമായ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•àµ" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "തിരിചàµà´šà´±à´¿à´¯àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´²à´¾à´¤àµà´¤ വിദൂരതàµà´¤àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´°àµâ€ (%s)" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "നിങàµà´™à´³àµâ€ ആദàµà´¯à´®à´¾à´¯à´¿ ഒരൠകംപàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´²àµ‡à´•àµà´•ൠപàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´¨àµà´ªàµ‹à´³àµâ€ ഇങàµà´™à´¨àµ† സംഭവികàµà´•àµà´¨àµà´¨àµ.\n" "\n" "വിദൂരതയിലàµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµ† തിരിചàµà´šà´±à´¿à´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ അയചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤àµ %s ആണàµ. à´ˆ വിധം à´®àµà´¨àµà´¨àµ‹à´Ÿàµà´Ÿàµ " "പോകàµà´¨àµà´¨à´¤àµ à´¸àµà´°à´•àµà´·à´¿à´¤à´®àµ†à´¨àµà´¨àµ ഉറപàµà´ªàµ വരàµà´¤àµà´¤à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, ദയവായി സിസàµà´±àµà´±à´‚ à´…à´¡àµà´®à´¿à´¨à´¿à´¸àµà´Ÿàµà´°àµ‡à´±àµà´±à´±àµà´®à´¾à´¯à´¿ ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´•." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "à´à´¤à´¾à´¯à´¾à´²àµà´‚ à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´• (ലോഗിനàµâ€ ചെയàµà´¯àµà´•)" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "à´ªàµà´°à´µàµ‡à´¶à´¨à´‚ റദàµà´¦à´¾à´•àµà´•àµà´•" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s-à´²àµâ€ ശരിയായ à´•àµà´°à´®àµ€à´•രണങàµà´™à´³àµâ€ ഉളàµà´³ ഫയലàµâ€ ലഭàµà´¯à´®à´²àµà´²\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "മറàµà´±àµŠà´°àµ à´¸àµà´¥à´²à´‚ പറയàµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ %s à´Žà´¨àµâ€à´µà´¿à´±àµ‹à´£àµâ€à´®àµ†à´¨àµâ€à´±àµ വേരിയബിളàµâ€ ഉപയോഗികàµà´•àµà´•.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿à´¯àµà´•àµà´•ൠനിങàµà´™à´³àµâ€ അതിലേകàµà´•ൠപàµà´°à´µàµ‡à´¶à´¿à´•àµà´•ണമെനàµà´¨à´¾à´£àµ.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¤à´¿à´¨àµ നിങàµà´™à´³àµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¾à´£àµ.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ അയയàµà´•àµà´•àµà´¨àµà´¨à´¤àµ രഹസàµà´¯à´­à´¾à´·à´¯à´¿à´²àµâ€ à´…à´²àµà´² ." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ അയയàµà´•àµà´•àµà´¨àµà´¨à´¤àµ രഹസàµà´¯à´­à´¾à´·à´¯à´¿à´²àµâ€ ആണൠ." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s ഡൊമെയിനàµâ€ %s ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¤à´¿à´¨àµ നിങàµà´™à´³àµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¾à´£àµ\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¤à´¿à´¨àµ നിങàµà´™à´³àµâ€ ലോഗിനàµâ€ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¾à´£àµ.\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ കംപോണനàµâ€à´±àµ à´µàµà´¯àµ‚വരàµâ€ ആപàµà´³à´¿à´•àµà´•േഷനàµâ€" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ ടെരàµâ€à´®à´¿à´¨à´²àµâ€ à´ªàµà´°à´¯àµ‹à´—à´‚" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ഡീഫോളàµâ€à´Ÿàµà´Ÿàµ ടെരàµâ€à´®à´¿à´¨à´²à´¿à´¨à´¾à´¯àµà´³à´³ exec ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµâ€à´±àµ" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´²àµâ€ ഉപയോഗികàµà´•àµà´¨àµà´¨ ഫയലàµà´•à´³àµâ€ കാണàµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ആവശàµà´¯à´®àµà´³à´³ ഘടകം. %s പരാമീറàµà´±à´±à´¿à´¨àµ പകരം " "ഫയലിനàµâ€à´±àµ† URI, %c പരാമീറàµà´±à´±à´¿à´¨àµ പകരം ഘടകം IID à´Žà´¨àµà´¨à´¿à´µ ഉപയോഗികàµà´•àµà´¨àµà´¨àµ." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "ടെരàµâ€à´®à´¿à´¨à´²àµâ€ ആവശàµà´¯à´®à´¾à´¯ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•ൠഉപയോഗികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ ടെരàµâ€à´®à´¿à´¨à´²àµâ€ à´ªàµà´°à´¯àµ‹à´—à´‚" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ ടെരàµâ€à´®à´¿à´¨à´²àµâ€ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ആയàµà´³à´³ exec ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµâ€à´±àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"aim\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"callto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"ghelp\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"h323\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"http\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"https\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"info\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"mailto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"man\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ \"trash\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"aim\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ " "(à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"callto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, " "à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"ghelp\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, " "à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"h323\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ " "(à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"http\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ " "(à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"https\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, " "à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"info\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ " "(à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"mailto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, " "à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"man\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ " "(à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "\"command\" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"trash\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, " "à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ " "à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"aim\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"callto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"ghelp\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"h323\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"http\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"https\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"info\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"mailto\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"man\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ \"trash\" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "\"നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•àµ:///\" à´¸àµà´¥à´¾à´¨à´¤àµà´¤àµ ദൃശàµà´¯à´®à´¾à´¯à´¿à´°à´¿à´•àµà´•േണàµà´Ÿ കോമാ ഉപയോഗിചàµà´šàµ വേരàµâ€à´¤à´¿à´°à´¿à´šàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ DNS-SD " "ഡൊമെയിനàµà´•à´³àµâ€." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD സേവനങàµà´™à´³àµâ€ തിരയàµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ അധികമായ ഡൊമെയിനàµà´•à´³àµâ€" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "ലോകàµà´•à´²àµâ€ DNS-SD സേവനം à´Žà´™àµà´™à´¨àµ† à´ªàµà´°à´¦à´°àµâ€à´¶à´¿à´ªàµà´ªà´¿à´•àµà´•ണം à´Žà´¨àµà´¨àµ" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "\"യോജിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ\", \"വേരàµâ€à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ\", \"à´…à´ªàµà´°à´¾à´ªàµà´¯à´®à´¾à´¯\" à´Žà´¨àµà´¨à´¿à´µà´¯à´¾à´£àµ സാധàµà´¯à´®à´¾à´¯ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "à´ªàµà´°àµ‹à´•àµà´¸à´¿ സരàµâ€à´µà´°àµâ€ കണകàµà´·à´¨àµà´•ളിലàµâ€ ആധികാരികത ഉറപàµà´ªàµ വരàµà´¤àµà´¤àµà´•" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "à´“à´Ÿàµà´Ÿàµ‹à´®à´¾à´±àµà´±à´¿à´•àµà´•ൠപàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµà´³à´³ URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ഇനàµâ€à´±à´°àµâ€à´¨àµ†à´±àµà´±à´¿à´²àµ‚ടെ HTTP ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´ªàµ‹à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ à´•àµà´°à´®àµ€à´•രണങàµà´™à´³àµâ€ സജàµà´œà´®à´¾à´•àµà´•àµà´¨àµà´¨àµ." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "à´Ÿàµà´°àµ‚ à´Žà´™àµà´•à´¿à´²àµâ€, à´ªàµà´°àµ‹à´•àµà´¸à´¿ സരàµâ€à´µà´±à´¿à´²àµ‡à´•àµà´•àµà´³à´³ കണകàµà´·à´¨àµà´•à´³àµâ€à´•àµà´•ൠആധികാരികത ഉറപàµà´ªàµ വരàµà´¤àµà´¤àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ. \"/system/" "http_proxy/authentication_user\" , \"/system/http_proxy/" "authentication_password\" ഉപയോഗിചàµà´šàµ username/password കോംപോ à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "നോണàµâ€-à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµà´•à´³àµâ€" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´ªàµ‹à´³àµâ€ ആധികാരികത ഉറപàµà´ªàµà´µà´°àµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "à´ªàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµâ€ മോഡàµ" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "സെകàµà´•àµà´¯àµ‚à´°àµâ€ HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "സെകàµà´•àµà´¯àµ‚à´°àµâ€ HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "à´ªàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµâ€ രീതി തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•. \"à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²\", \"മാനàµà´µà´²àµâ€\", \"à´“à´Ÿàµà´Ÿàµ‹\" ആണൠ" "പിനàµà´¤àµà´£à´¯àµà´³à´³ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "à´¸àµà´°à´•àµà´·à´¿à´¤à´®à´¾à´¯ HTTP വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "സോകàµà´•àµà´¸àµ വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ \"/system/http_proxy/host\" " "à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ \"/system/proxy/ftp_host\" " "à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ \"/system/proxy/secure_host\" " "à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ \"/system/proxy/socks_host\" " "à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "à´ªàµà´°àµ‹à´•àµà´¸à´¿ വഴി (സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€) à´…à´²àµà´²à´¾à´¤àµ† നേരിടàµà´Ÿàµ കണകàµà´Ÿàµ ചെയàµà´¯àµà´¨àµà´¨ ഹോസàµà´±àµà´±àµà´•à´³àµà´Ÿàµ† ലിസàµà´±àµà´±àµ à´ˆ കീയിലàµâ€ " "à´…à´Ÿà´™àµà´™àµà´¨àµà´¨àµ. ഹോസàµà´±àµà´±àµ നെയിമàµà´•à´³àµâ€, ഡോമെയിനàµà´•à´³àµâ€ (*.foo.com പോലàµà´³à´³ ആരംഭതàµà´¤à´¿à´²àµà´³à´³ വൈളàµâ€à´¡àµ കാരàµâ€à´¡àµ " "ഉപയോഗികàµà´•àµà´¨àµà´¨àµ), IP ഹോസàµà´±àµà´±àµ വിലാസങàµà´™à´³àµâ€ ( IPv4, IPv6 à´Žà´¨àµà´¨à´¿à´µ), നെറàµà´±àµà´®à´¾à´¸àµà´•àµà´³à´³ നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•ൠ" "വിലാസങàµà´™à´³àµâ€ (192.168.0.0/24 പോലàµà´³à´³à´µ) à´Žà´¨àµà´¨à´¿à´µ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€ ആവാം." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "à´ªàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµâ€ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨ URL" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഉപയോഗികàµà´•àµà´•" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´ªàµ‹à´³àµâ€ ആധികാരികത ഉറപàµà´ªàµ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ നിങàµà´™à´³àµâ€ ഉപയോഗികàµà´•àµà´¨àµà´¨ പേരàµ." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB വരàµâ€à´•àµà´•ൠഗàµà´°àµ‚à´ªàµà´ªàµ" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "ഉപയോകàµà´¤à´¾à´µàµ ഭാഗമായിരികàµà´•àµà´¨àµà´¨ Windows നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•ിങൠഗàµà´°àµ‚à´ªàµà´ªàµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ ഡൊമെയിനàµâ€. ഒരൠപàµà´¤à´¿à´¯ " "വരàµâ€à´•àµà´•ൠഗàµà´°àµ‚à´ªàµà´ªàµ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´°àµâ€ അംഗീകരികàµà´•ണമെങàµà´•à´¿à´²àµâ€ ഉപയോകàµà´¤à´¾à´µàµ ലോഗൌടàµà´Ÿàµ ചെയàµà´¤àµ വീണàµà´Ÿàµà´‚ ലോഗിനàµâ€ " "ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¾à´•àµà´¨àµà´¨àµ." gnome-vfs-2.24.4/po/eo.po0000644000175000001440000011376311450220305012005 00000000000000# Esperanto translation of gnome-vfs. # Copyright (C) 2003 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # Charles VOELGER , 2003. # Kristjan SCHMIDT , 2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.3.5\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-05-13 04:01+0000\n" "PO-Revision-Date: 2010-07-07 19:30+0200\n" "Last-Translator: Kristjan SCHMIDT \n" "Language-Team: Esperanto \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Launchpad-Export-Date: 2010-06-04 17:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO-9660-portilo" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u havas nekonatajn opciojn %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Agordodosiero '%s' ne estis trovita: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS-reto-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "AÅ­tomate detektita portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs-Linuks-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "KD-ROM-diskingo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2-Linuks-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3-Linuks-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4-Linuks-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "KD-ROM-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs-KD-ROM-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Nindozo-NT-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Sistem-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS-reto-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS-portilo" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Nekonate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s Portilo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "KD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "KD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s Diskingo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s Diskingo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disketingo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s Musik-ludilo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Cifereca fotilo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Diskingo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ekstera %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "KD-ROM-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Malplena KD-R-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "KD-R-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Malplena DVD-R-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Malplena DVD+R-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R-disko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Sondisko" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Demetebla portilo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Portilo" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ne povas krei dukton por malfermi GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Nekonata tasktipo %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operacio haltigita" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ne analizebla: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Plu analizeraroj estos ignorataj." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Neniu eraro" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Dosiero ne trovita" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Äœenerala eraro" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Interna eraro" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Nevalidaj parametroj" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operacio ne estas subtenata" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "En/El eraro" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Datumo koruptita" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formato nevalida" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Malbona dosier-tenilo" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Dosiero estas tro granda" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ne plu estas spaco sur la aparato" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Nurlega dosierosistemo" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI-o ne estas valida" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Dosiero ne estas malfermi" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Malferma reÄimo nevalida" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Aliro malpermesita" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Tro multaj malfermaj dosieroj" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fino de dosiero" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ne estas dosierujo" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operacio efektiviÄas" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operacio interrompis" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Dosiero ekzistas" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Ripeta ligo renkontis" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operacio ne estas permesata" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Estas dosierujo" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Memoro ne estas sufiĉa" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Komputilo ne trovita" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Komputilonomo ne valida" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Komputilo ne havas adreso" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Saluto malsukcesis" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operacio haltigita" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Dosierujo estas okupita" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Dosierujo ne estas malpena" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Tro multaj ligoj" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Nurlega dosiersistemo" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ne sur la sama dosiersistemo" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nomo estas tro longa" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Servo ne disponebla" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Demando malaktualigas la datumon de servo" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokola eraro" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ne eblis trovi mastran rigardilon" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Neniu apriora ago asociata" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Neniu traktilo por URL-kombino" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Eraro dum komandolinia analizo" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Eraro dum komandlanĉo" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nevalida dosiernomo" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Nekonata eraro" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajto" msgstr[1] "%u bajtoj" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (nevalida unikodo)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disketo" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "KD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "KD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "KD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "KD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disko" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-ingo" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "PoÅmemorilo" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamerao" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Radiko-portilo" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Son-KD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Nekonata portilo" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Ret-servilo" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Neatendita eraro en select() dum datumlegado de procezido (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Neatendita eraro en waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Reto" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Hejmo" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Dosiersistemo" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Nekonata GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Vindoza reto" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Ensaluti malgraÅ­e" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Ĉesi ensaluton" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ne trovis validan agordodosieron je %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Uzi la %s mediovariablo por doni malsaman situon.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Via HTTP-prokurilo postulas, ke vi ensalutas.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Vi devas ensaluti por atingi \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Via pasvorto sendiÄos neĉifrite." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Via pasvorto sendiÄos ĉifrite." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Vi devas ensaluti por aliri al %s de domajno %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Vi devas ensaluti por aliri %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Defaŭlta terminal-aplikajÌ‚o" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Ruli komandon en terminalo" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu " "esti lanĉita en terminalo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP-prokura pordo" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP-prokura pasvorto" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP-prokura pordo" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP-prokura uzantnomo" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Uzi HTTP-prokurilon" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" gnome-vfs-2.24.4/po/xh.po0000644000175000001440000011572611334251016012026 00000000000000# Xhosa translation of gnome-vfs # Copyright (C) 2005 Canonical Ltd. # This file is distributed under the same license as the gnome-vfs package. # Translation by Canonical Ltd with thanks to # Translation World CC in South Africa, 2005. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-01-14 04:23+0100\n" "PO-Revision-Date: 2005-02-17 09:44+0200\n" "Last-Translator: Canonical Ltd \n" "Language-Team: Xhosa \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" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "Ayikhange ikwazi ukuqalisa ulwabiwo-maxesha eenkcukacha ze-Bonobo" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "Ayikhange ikwazi ukuqalisa ulwabiwo-maxesha eenkcukacha ze-gnome vfs" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "i-ISO 9660 Ubukhulu" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d iqulethe iimpawu ze-NUL." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d ayiqulathanga gama lendlela yokwenza." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d ayinasiphawuli sesiphelo ekunokukhethwa kuso." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%d ineendlela ekunokukhethwa kuzo ezingaziwayo %s." #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d ayiqulathanga gama lemodyuli." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Ifayili yokumiselwa kwenkqubo yekhompyutha `%s' khange ifumaneke: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "Ubukhulu be-AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "Ubukhulu bothungelwano lwe-AFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "Ubukhulu obufumaneke ngokuZenzekelayo" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "i-CD-ROM Drive" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "i-CD enemivo enesandi" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "Isixhobo seSandi se-Hardware" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Ubukhulu be-Ext2 Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Ubukhulu be-Ext3 Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "Ubukhulu be-MSDOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "Ubukhulu be-MacOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "Ubukhulu be-CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Ubukhulu be-Hsfs CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "Ubukhulu be-JFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Ubukhulu be-Windows NT" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "Ubukhulu benkqubo" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "Ubukhulu bukavimba wolwazi" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Ubukhulu be-Minix" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "Ubukhulu bothungelwano lwe-NFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Ubukhulu bothungelwano" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "Ubukhulu be-ReiserFS Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "Ubukhulu ekwaBelwene ngabo be-Windows" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "Ubukhulu be-SuperMount" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "Ubukhulu be-DVD" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Ubukhulu be-Solaris/BSD" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Ubukhulu be-Udfs Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Ubukhulu be-Pcfs Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "Ubukhulu be-Sun SAM-QFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "Ubukhulu be-DOS eyandisiweyo" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Ubukhulu be-Windows ye-VFAT" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Ubukhulu be-Xenix" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "Ubukhulu be-XFS Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "Ubukhulu be-XIAFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Engaziwayo" #: libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Uhlobo lokusebenza olungaziwayo %u" #: libgnomevfs/gnome-vfs-job.c:1024 #: libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ayinakwenza ipayipi yesiqhagamshelanisi esivulekileyo se-GIO: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Uhlobo lomsebenzi olungaziwayo %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "Ukusebenza kuyekisiwe" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:262 #: libgnomevfs/gnome-vfs-mime-handlers.c:313 #: libgnomevfs/gnome-vfs-mime-handlers.c:607 #: libgnomevfs/gnome-vfs-mime-handlers.c:626 #: libgnomevfs/gnome-vfs-mime-handlers.c:644 #: libgnomevfs/gnome-vfs-mime-handlers.c:663 #: libgnomevfs/gnome-vfs-mime-handlers.c:682 #: libgnomevfs/gnome-vfs-mime-handlers.c:823 #: libgnomevfs/gnome-vfs-mime-handlers.c:845 #: libgnomevfs/gnome-vfs-mime-handlers.c:864 #: libgnomevfs/gnome-vfs-mime-handlers.c:883 #: libgnomevfs/gnome-vfs-mime-handlers.c:936 #: libgnomevfs/gnome-vfs-mime-handlers.c:953 #: libgnomevfs/gnome-vfs-mime-handlers.c:970 #: libgnomevfs/gnome-vfs-mime-handlers.c:988 #: libgnomevfs/gnome-vfs-mime-handlers.c:1006 #: libgnomevfs/gnome-vfs-mime-info.c:643 #: libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 #: libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 #: libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 #: libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 #: libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "Umsebenzi owaliwayo. ulungiso lomsebenzisi kwi-database ye-MIME alusaxhaswa." #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Akukwazeki ukwahlulwa ngokwezijungqe: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "Iimpazamo ezingaphaya zokwahlulwa ngokwezijungqe mazinganakwa." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Akukho mpazamo" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Ifayili ayifumaneki" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Impazamo ye-generic" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Impazamo yangaphakathi" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Iiparamitha ezingasebenziyo" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "Ukusebenza okungaxhaswayo" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "Impazamo ye-I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Idata yonakalisiwe" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Ulungiselelo alusebenzi" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Isikhombisi -fayili esibi" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "I-Fayili inkulu kakhulu" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Akukho sithuba sishiyiweyo kwisixhobo" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "Indlela yefayili yokufunda kuphela" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "i-URI engasebenziyo" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Ifayili ayivulwanga" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Inkqubo yokuvula ayisebenzi" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Ukungena kuyalelwa" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "Iifayili ezininzi ezivuliweyo" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Ukuphela kwefayili" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Ayingovimba weefayili" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Ukusebenza kuyaqhuba" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "Ukusebenza kuphazanyisiwe" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Ifayili ikhona" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Iseti yeengxelo ezinxulumanisayo kuhlangatyezwene nayo" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Ukusebenza akuvunyelwa" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Nguvimba wolwazi" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Akukho vimba wolwazi woneleyo" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Ayifunyanwanga" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Igama lomququzeleli alisebenzi" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "Umququzeleli akanadilesi" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Ukungena akuphumelelanga" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "Ukusebenza kurhoxisiwe" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Uvimba weefayili uxakekile" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Uvimba weefayili unento onayo" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Unxulumaniso oluninzi kakhulu" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "Inkqubo yefayili yokufunda kuphela" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Hayi kwinkqubo yefayili efanayo" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Igama lide kakhulu" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "Inkonzo ayifumaneki" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Ukucela idata yenkonzo etshitshileyo" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Impazamo yemithetho yokusebenza" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Ayisifumananga isikhangeli esingundoqo" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Akukho senzo sokumiselweyo sinxulunyaniswayo" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "Akukho sikhombisi sesikim se-URL" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Impazamo yomgca womyalelo wokohlula ngokwezijungqu" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Impazamo yomyalelo wokundulula" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 #: libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "Kufikelelwe ekupheleni kwexesha" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 msgid "Nameserver error" msgstr "Impazamo yeseva yegama" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "Uvimba utshixiwe" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "Unxulumano lomsebenzi olwaliwayo" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Impazamo engaziwayo" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "i-%u byte" msgstr[1] "ii-%u bytes" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1122 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (i-Unicode ayisebenzi)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "i-Floppy" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "i-CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "i-CD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "i-CD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "i-DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "i-DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "i-DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "i-DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "i-CD-ROM/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "i-CD-ROM/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "i-CD-ROM/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "i-CD-ROM/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "i-CD-R/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "i-CD-R/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "i-CD-R/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "i-CD-R/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "i-CD-RW/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "i-CD-RW/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "i-CD-RW/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "i-CD-RW/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "I-Diski" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "i-USB Drive" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "i-IEEE1394 Drive" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "i-CF" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "i-SD/MMC" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "i-Memory Stick" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "isiXhobo sokugcina ulwazi esiziMeleyo" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "i-Zip Drive" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "i-Camera" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "i-DVD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "Ubukhulu be-Root" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "i-CD enesandi" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "Ubukhulu obungaziwayo" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "Iseva yothungelwano" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ayikwazi ukufaka kwisakhelo i-floppy drive. Kusenokwenzeka ukuba ayikho i-floppy kwi-drive." #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ayikwazi ukufaka kwisakhelo ubukhulu. Kusenokwenzeka ukuba akukho sixhobo siphathekayo sokugcina ulwazi." #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "Unable to mount the floppy drive. The floppy is probably in a format that cannot be mounted." msgstr "Ayikwazi ukufaka kwisakhelo i-floppy drive. I-floppy kusenokwenzeka ukuba ingendlela engenakufakwa kwisakhelo." #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "Unable to mount the selected volume. The volume is probably in a format that cannot be mounted." msgstr "Ayikwazi ukufaka kwisakhelo ubukhule obukhethiweyo. Ubukhulu kusenokwenzeka ukuba bungendlela engenakufakeka kwisakhelo." #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "Ayikwazi ukufaka kwisakhelo i-floppy drive ekhethiweyo." #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "Ayikwazi ukufaka kwisakhelo ubukhulu obukhethiweyo." #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "Ayikwazi ukungafaki kwisakhelo ubukhulu obukhethiweyo." #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "Ayiphumelelanga ukuqala umyalelo" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "Ayikwazi ukukhupha isixhobo esiphathekayo sokugcina ulwazi" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "Ukungakwazi ukungafaki kwisakhelo iseva enxulunyanisiweyo" #: modules/computer-method.c:545 msgid "Network" msgstr "Uthungelwane" #: modules/computer-method.c:563 msgid "Home" msgstr "Ekhaya" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "Umxokelwano weefayili" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "i-GnomeVFSSeekPosition %d engaziwayo" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Uthungelwano lwe-Windows" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Isazisi sekhompyutha ekwenye indawo (%s) asaziwa." #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely sure it is safe to continue, contact the system administrator." msgstr "" "Oku kwenzeka xa ungena okokuqala kwikhomyutha.\n" "\n" "isazisi esithunyelwa yikhompyutha ekwenye indawo siyi %s. Ukuba ufuna ukuqiniseka ngokupheleleyo ukuba kukhuselekile na ukuba uqhubeke, qhagamshelana nomlawuli wenkqubo." #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "Ngena nokuba kukaNjani na" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "Rhoxisa ukungena" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Awufumananga fayili yemimiselo esebenzayo ku-%s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Sebenzisa i-%s elungelene nemeko eguqukayo ukuchaza indawo eyahlukileyo.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "i-Standard Moniker factory" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "i-MonikerExtender yefayili" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "i-generic Gnome VFS moniker" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "i-generic file moniker" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Isixhobo esimiselweyo esibonakalisayo senkqubo yekhompyutha" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Inkqubo yekhompyutha ene-terminal emiselweyo" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "i-Exec argument ye-Terminal emiselweyo" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." msgstr "Inkqubo yekhompyutha omawuyisebenzise ukujonga iifayili ezifuna isixhobo ukuzijonga. Ixabiso lento ejikajikayo %s kuyakubakhona endaweni yalo iifayili ze-URIs, ixabiso lento ejikayo %c kuyakubakhona endaweni yaloisixhobo se-IID." #: schemas/desktop_default_applications.schemas.in.h:6 msgid "The default terminal application to use for applications that require a terminal." msgstr "Inkqubo yekhompyutha ene-terminal emiselweyo ukuba isetyenziswe kwiinkqubo zekhompyutha ezifuna i-terminal." #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Isiphumezi- miyalelo se-exec argument sokusetyenziswa kwinkqubo yekhompyutha ye-terminal emiselweyo." #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Qhuba umyalelo kwi-terminal" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Umyalelo osetyenziswayo ukukhombisa \"aim\" URLs, ukuba wenziwe ukuba asebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Umyalelo osetyenziswayo ukukhombisa u- \"callto\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u- \"ghelp\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u- \"h323\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u-\"http\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u \"https\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u- \"info\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u-\"mailto\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u- \"man\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Umyalelo osetyenziselwa ukukhombisa u-\"trash\" URLs, ukuba wenziwe ukuba usebenze." #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Isikhombisi se-\"aim\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Isikhombisi se-\"callto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Isikhombisi se-\"ghelp\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Isikhombisi se-\"h323\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Isikhombisi se-\"http\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Isikhombisi se-\"https\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Isikhombisi se-\"info\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Isikhombisi se-\"mailto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Iisikhombisi se-\"man\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Isikhombisi se-\"trash\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise i-\"aim\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "True if the command specified in the \"command\" key should handle \"callto\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"callto\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"ghelp\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "True if the command specified in the \"command\" key should handle \"h323\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"h323\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "True if the command specified in the \"command\" key should handle \"http\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"http\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "True if the command specified in the \"command\" key should handle \"https\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"https\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "True if the command specified in the \"command\" key should handle \"info\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"info\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "True if the command specified in the \"command\" key should handle \"mailto\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"mailto\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "True if the command specified in the \"command\" key should handle \"man\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"man\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "True if the command specified in the \"command\" key should handle \"trash\" URLs." msgstr "Yinyani ukuba umyalelo obaluliweyo kwiqhosha \"command\" kufuneka ukhombise u-\"trash\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal." #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"aim\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"callto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"ghelp\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"h323\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"http\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"https\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"info\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufunekla ukhombise i-\"mailto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"man\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-\"trash\" URLs" #: schemas/system_dns_sd.schemas.in.h:1 msgid "Comma separated list of dns-sd domains that should be visible in the network location." msgstr "Uluhlu olwahlulwe ngekoma lwemimandla ye-dns-sd ekufuneka lubonakale kwindawo yothungelwano." #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "Imimandla eyongezelelekileyo ukukhangela iinkonzo ze- dns-sd kwi" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Uyibonisa njani inkonzo efikeleleka ngqo ye-DNS-SD" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Amaxabiso anokubakhona ngala \"merged\", \"separate\" kunye \"disabled\"." #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Qinisekisa unxulumano lweseva elawula kwi-intanethi" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Ukumiselwa kwenkqubo yekhompyutha ezenzekelayo ye-URL kwikhompyutha esebenza njengemqobo" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Yenza ukuba imimiselo yekhompyutha esebenza njengomqobo xa usebenza nge-HTTP kwi-intanethi." #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Igama lomququzeleli wekhompyutha esebenza njengomqobo ye-FTP" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Isiqhagamsheli sekhompyutha esebenza njengomqobo se-FTP" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Igama lomququzeleli wekhompyutha esebenza njengomqobo ye-HTTP" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "i-password yekhompyutha esebenza njengomqobo ye-HTTP" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Isiqhagamsheli sekhompyutha esebenza njengomqobo se-HTTP" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Igama lomsebenzisi wekhompyutha esebenza njengomqobo ye-HTTP" #: schemas/system_http_proxy.schemas.in.h:10 msgid "If true, then connections to the proxy server require authentication. The username/password combo defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "Ukuba yinyani, ke ngoko unxulumano oluya kwi- proxy server lufuna uqinisekiso. Igama lomsebenzisi/i-password combo ichazwa yi \"/system/http_proxy/authentication_user\" kunye ne \"/system/http_proxy/authentication_password\"." #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Abaququzeleli bekhompyutha engasebenzi njengomqobo" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "i-Password yokudlula njengoqinisekiso xa usebenzisa ikhompyutha esebenza njengomqobo kwi-HTTP." #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Ukumiselwa kwenkqubo yekhompyutha esebenza njengomqobo" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Igama lomququzeleli wekhompyutha esebenza njengomqobo ye-SOCKS" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Isiqhagamsheli sekhompyutha esebenza njengomqobo se-SOCKS" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Igama lomququzeleli wekhompyutha esebenza njengomqobo ekhuselekileyo ye-HTTP" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Isiqhagamsheli sekhompyutha esebenza njengomqobo se-HTTP ekhuselekileyo" #: schemas/system_http_proxy.schemas.in.h:18 msgid "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." msgstr "Khetha inkqubo emiselweyo yekhompyutha esebenza njengomqobo. Amaxabiso axhaswayo ngala \"none\", \"manual\", \"auto\"." #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Igama lomatshini lokusebenza njengekhompyutha engumqobo kwi-FTP." #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Igama lomatshini lokusebenza njengekhompyutha engumqobo kwi-HTTP." #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Igama lomatshini lokusebenza njengekhompyutha engumqobo kwi-HTTP ekhuselekileyo." #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Igama lomatshini kwikhompyutha esebenza njengomqobo ongasebenza kuyo." #: schemas/system_http_proxy.schemas.in.h:23 msgid "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." msgstr "Isiqhagamsheli ematshinini esichazwa nge- \"/system/http_proxy/host\" oqhagamshela kuso." #: schemas/system_http_proxy.schemas.in.h:24 msgid "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." msgstr "Isiqhagamsheli ematshinini esichazwa yi -\"/system/proxy/ftp_host\" osebenza kuyo njengekhompyutha esebenza njengomqobo." #: schemas/system_http_proxy.schemas.in.h:25 msgid "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." msgstr "Isiqhagamsheli esisematshinini esichazwa yi- \"/system/proxy/secure_host\" kwikhompyutha osebenza kuyo esebenza njengomqobo." #: schemas/system_http_proxy.schemas.in.h:26 msgid "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." msgstr "Isiqhagamsheli esisematshinini esichazwa yi- \"/systrem/proxy/socks_host\" kwikhompyutha osebenza kuyo esebenza njengomqobo." #: schemas/system_http_proxy.schemas.in.h:27 msgid "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "Eli qhosha liqulethe uluhlu lwabaququzeleli abaqhagamshelwe kuvimba weefayili, kunokuba badlule kwikhompyutha esebenza njengomqobo (ukuba iyasebenza). Amaxabiso anokuba ngamagama abaququzeleli, imimandla (usebenzisa i-wildcard njenge *.foo.com), idilesi ze-IP zabaququzeleli (zombini i-IPv4 ne-IPv6) kunye needilesi zothungelwano ene-netmask (into efana ne-192.168.0.0/24)." #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "i-URL enika amaxabiso okumiselwa kwenkqubo yekhompyutha esebenza njengomqobo." #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Sebenzisa isiqhagamsheli se-HTTP" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Igama lomsebenzisi ukudlula njengoqinisekiso xa usebenzisa ikhompyutha esebenza njengomqobo ye-HTTP." #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Iqela lomsebenzi we-SMB" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "Iqela lomsebenzi wefestile umsebenzisi ayinxenye yalo" gnome-vfs-2.24.4/po/hr.po0000644000175000001440000013257511334251016012021 00000000000000# Translation of gnome-vfs to Croatiann # Copyright (C) Croatiann team # Translators: Automatski Prijevod <>,Robert Sedak , msgid "" msgstr "" "Project-Id-Version: gnome-vfs 0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-09-09 14:39+0200\n" "PO-Revision-Date: 2008-03-21 16:32+0000\n" "Last-Translator: Launchpad Translations Administrators \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2008-05-28 04:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 disk" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u sadrži NULL znakove." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ne sadrži ime metode." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nema opcije oznake zavrÅ¡etka." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ima nepoznate opcije %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ne sadrži ime modula." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Nije naÄ‘ena datoteka s postavkama `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d prekinuo analiziranje." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS mrežni disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatski prepoznat disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD digitalni zvuk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Disk na hardverskom ureÄ‘aju" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CD-ROM disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Sistemski disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Memorijski disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS mrežni disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Dijeljeni Windows disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Privremeni disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS disk" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Nepoznato" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disketni ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s muziÄki sviraÄ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitalna kamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "UreÄ‘aj" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Vanjski %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Prazni CD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Prazni CD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Prazni DVD-RAM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Prazan DVD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Prazan DVD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Prazan DVD+R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Prazan DVD+RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s uklonjivi disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Nepoznata vrsta operacije %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ne mogu stvoriti cjevovod za GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "Nepoznata vrsta zadatka %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "Operacija je zaustavljena" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Zastarjela funkcija. KorisniÄke modifikacije MIME baze podataka viÅ¡e nisu " "podržane." #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "Ne mogu prevesti: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "Iduće greÅ¡ke pri analiziranju će biti ignorirane." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nema greÅ¡ke" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Datoteka nije pronaÄ‘ena" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "GeneriÄka greÅ¡ka" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Interna greÅ¡ka" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Neispravni parametri" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nepodržana operacija" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "U/I greÅ¡ka" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "GreÅ¡ka u podacima" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Neispravni oblik" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Neispravno rukovanje datotekom" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Datoteka je prevelika" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nema slobodnog mjesta na ureÄ‘aju" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "DatoteÄni sustav je samo za Äitanje" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Neispravan URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Datoteka nije otvorena" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Neispravan naÄin otvaranja" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Pristup odbijen" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "PreviÅ¡e otvorenih datoteka" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Kraj datoteke" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nije mapa" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operacija se izvrÅ¡ava" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operacije je prekinuta" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Datoteka postoji" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Sukobljene su povratne veze" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operacija nije dozvoljena" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Je direktorij" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nema dovoljno memorije" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "RaÄunalo nije pronaÄ‘eno" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Neispravno ime raÄunala" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "RaÄunalo nema adresu" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Prijava nije uspjela" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operacija je opozvana" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Zauzeta mapa" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Mapa nije prazna" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "PreviÅ¡e veza" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Samo za Äitanje" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nije na istom datoteÄnom sustavu" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Predugo ime" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Servis nije dostupan" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Zahtjeva zastarjele podatke servisa" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "GreÅ¡ka u protokolu" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ne mogu naći glavni pretraživaÄ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nije pridružena uobiÄajena aktivnost" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "nema rukovatelja za URL shemu" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "GreÅ¡ka kod prevoÄ‘enja naredbene linije" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "GreÅ¡ka kod pokretanja naredbe" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Vrijeme isteklo" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "GreÅ¡ka domenskog poslužitelja" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Resurs je zakljuÄan" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Zastarjeli funkcijski poziv" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Neispravno ime datoteke" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nije simboliÄki link" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Nepoznata greÅ¡ka" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajt" msgstr[1] "%u bajta" msgstr[2] "%u bajtova" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (neispravni Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disketa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ureÄ‘aj" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memorijski Å¡tapić" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Korijenski disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "ZvuÄni CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Nepoznati disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "Mrežni poslužitelj" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Ne mogu montirati meki disk. Moguće je da nema diska u disketnom ureÄ‘aju." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ne mogu montirati disk. Moguće je da nema medija u ureÄ‘aju." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ne mogu montirati meki disk. Moguće je da je meki disk u obliku koji ne može " "biti montiran." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ne mogu montirati disk. Ako je rijeÄ o kriptiranom disku, tada je koriÅ¡tena " "kriva lozinka ili kljuÄ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ne mogu montirati odabrani disk. Moguće je da je disk u obliku koji ne može " "biti montiran." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ne mogu montirati odabrani ureÄ‘aj za meki disk." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ne mogu montirati odabrani disk." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ne mogu odmontirati odabrani disk. Disk koristi jedan ili viÅ¡e programa." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ne mogu iskljuÄiti odabrani disk." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "NeuspjeÅ¡no Äitanje podataka od procesa-dijete %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Nisam mogao pokrenuti proces montiranja u pty-u" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "NeoÄekivana greÅ¡ka u select() funkciji, Äitajući podatke od procesa-dijete (%" "s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "Ne mogu poslati lozinku procesu za montiranje." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "NeoÄekivana greÅ¡ka u waitpid() funkciji (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Nije uspjelo pokretanje naredbe" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ne mogu izbaciti medij" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ne mogu iskljuÄiti povezani poslužitelj" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Mreža" #: ../modules/computer-method.c:561 msgid "Home" msgstr "PoÄetno" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "DatoteÄni sustav" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Nepoznati GnomeVFS pretraživanje položaja %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows mreža" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identitet udaljenog raÄunala (%s) nije poznat." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ovo se dogodi kada se prvi puta prijavljujete za rad na raÄunalu.\n" "\n" "Identitet poslan od strane udaljenog raÄunala je %s. Ako želite biti " "apsolutno sigurni da je sigurno nastaviti, kontaktirajte administratora " "vaÅ¡eg sustava." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Ipak se prijavi" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Odustani od prijave" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nisam naÅ¡ao ispravnu datoteku s postavkama u %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Koristite varijablu okoline %s za odreÄ‘ivanje razliÄitog mjesta.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "VaÅ¡ HTTP Proxy zahtijeva da se prijavite.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Morate se prijaviti kako biste pristupili na \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "VaÅ¡a će se lozinka prenijeti nezaÅ¡tiÄeno." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "VaÅ¡a će se lozinka prenijeti kriptirano." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Morate se prijaviti za pristup %s domeni %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Morate se prijaviti za pristup na %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "UobiÄajeni program za pregled komponenti" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "UobiÄajen terminalni program" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "IzvrÅ¡ni argument za uobiÄajeni terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Program koji se koristi za pregled datoteka, te koji zahtjeva komponentu za " "pregledavanje istih. Parametar %s će biti zamijenjen s URI datoteke, a " "parametar %c će biti zamijenjen s IID komponente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "UobiÄajeni terminalni program koji se koristi za programe koji zahtijevaju " "terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "IzvrÅ¡ni argument koji se koristi za uobiÄajeni terminalni program." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Pokreni naredbu u treminalu" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"aim\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"callto\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"ghelp\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"h323\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"http\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"https\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"info\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"mailto\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"man\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Naredba koja se koristi za rukovanje \"trash\" URL-ovima, ako je omogućena." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Rukovatelj za \"aim\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Rukovatelj za \"callto\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Rukovatelj za \"ghelp\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Rukovatelj za \"h323\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Rukovatelj za \"http\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Rukovatelj za \"https\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Rukovatelj za \"info\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Rukovatelj za \"mailto\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Rukovatelj za \"man\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Rukovatelj za \"trash\" URL-ove" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"aim\" " "URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"callto" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"ghelp" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"h323" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"http" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"https" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"info" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"mailto" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"man\" " "URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati \"trash" "\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti " "pokrenuta u terminalu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Treba li specificirana naredba rukovati \"aim\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Treba li specificirana naredba rukovati \"callto\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Treba li specificirana naredba rukovati \"ghelp\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Treba li specificirana naredba rukovati \"h323\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Treba li specificirana naredba rukovati \"http\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Treba li specificirana naredba rukovati \"https\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Treba li specificirana naredba rukovati \"info\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Treba li specificirana naredba rukovati \"mailto\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Treba li specificirana naredba rukovati \"man\" URL-ovima." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Treba li specificirana naredba rukovati \"trash\" URL-ovima." #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Zarezima odvojena lista DNS-SD domena koje trebaju biti vidljive u " "\"network:///\" lokaciji." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dodatne domene u kojima se traže DNS-SD usluge" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Kako prikazati lokalne DNS-SD usluge" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Ispravne vrijednosti su \"spojeno\", \"odvojeno\" i \"onemogućeno\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Provjerite vjerodostojnost veze prema proxy poslužitelju" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automatska po postavljanje proxy URL-a" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Omogućava postavljanje proxy-a kod pristupa http protokolom prema internetu." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Ime FTP proxy raÄunala" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Ime HTTP proxy raÄunala" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Lozinka za HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Ime korisnika HTTP proxy-a" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ako je \"toÄno\", tada veze na proxy poslužitelj zahtijevaju provjeru " "vjerodostojnosti. Kombinacija ime_korisnika/lozinka je definirana u " "datotekama \"/system/http_proxy/authentication_user\" i \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "RaÄunala bez proxy-a" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Lozinka za prolazak provjere vjerodostojnosti kod koriÅ¡tenja http proxy-a." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "NaÄin postavljanja proxy-a" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Spaja ime proxy raÄunala" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Spaja proxy port" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Ime raÄunala sigurnog http proxy-a" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port sigurnog http proxy-a" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "OznaÄite naÄin postavljanja proxy-a. Podržane vrijednosti su \"bez\", \"ruÄno" "\", \"automatsko\"" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Naziv raÄunala s FTP proxy-em." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Naziv raÄunala s HTTP proxy-em." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Naziv raÄunala sa sigurnim HTTP proxy-em." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Naziv raÄunala s proxy utiÄnicama." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port na raÄunalu je odreÄ‘en u datoteci /system/http_proxy/host raÄunala s " "proxy-em." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port na raÄunalu je odreÄ‘en u datoteci /system/proxy/ftp_host raÄunala s " "proxy-em." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port na raÄunalu je odreÄ‘en u datoteci /system/proxy/secure_host raÄunala s " "proxy-em." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port na raÄunalu je odreÄ‘en u datoteci /system/proxy/socks_host raÄunala s " "proxy-em." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ovaj kljuÄ sadrži popis raÄunala koji su direktno povezani, radije nego " "pomoću proxy-a (ako je uopće ukljuÄen). Vrijednosti mogu biti nazivi " "raÄunala, domene (koristeći poÄetne zamjenske znakove kao *.foo.com), IP " "adrese raÄunala (obje IPv4 i IPv6) i mrežne adrese s mrežnim maskama (npr. " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL koji omogućuje postavljanje vrijednosti proxy-a" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Koristi HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "KorisniÄko ime koje treba proći provjeru vjerodostojnosti kod http proxy-a." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Radna grupa SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Radna grupa ili domena Windows umrežavanja, koje je korisnik Älan. Kako bi " "nova radna grupa doÅ¡la do izražaja korisnik će se možda morati odjaviti i " "ponovno prijaviti u sustav." #~ msgid "The command used to handle \"cdda\" URLs, if enabled." #~ msgstr "" #~ "Naredba koja se koristi za rukovanje \"cdda\" URL-ovima, ako je omogućena." #~ msgid "The handler for \"cdda\" URLs" #~ msgstr "Rukovatelj za \"cdda\" URL-ove" #~ msgid "" #~ "True if the command specified in the \"command\" key should handle \"cdda" #~ "\" URLs." #~ msgstr "" #~ "Istina ako naredba specificirana u \"command\" kljuÄu treba rukovati " #~ "\"cdda\" URL-ovima." #~ msgid "Whether the specified command should handle \"cdda\" URLs" #~ msgstr "Treba li specificirana naredba rukovati \"cdda\" URL-ovima." gnome-vfs-2.24.4/po/he.po0000644000175000001440000013623711354402652012011 00000000000000# translation of gnome-vfs.HEAD.po to Hebrew # translation of gnome-vfs.HEAD.he.po to Hebrew # translation of gnome-vfs.gnome-2-0.he.po to Hebrew # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Gil Osher , 2002, 2004. # Gil 'Dolfin' Osher , 2003. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.he\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2009-09-25 13:59+0000\n" "PO-Revision-Date: 2009-11-30 17:57+0200\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "כרך ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contains NUL characters." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u contains no method name." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u has no options endmarker." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u has unknown options %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u contains no module name." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Configuration file `%s' was not found: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d aborted parsing." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "כרך AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "כרך AFS ברשת" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "כרך מזוהה ×וטומטית" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "כרך Btrfs לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "כונן תקליטורי×" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "תקליטור שמע דיגיטלי" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "כרך התקן חומרה" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "כרך EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "כרך eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "כרך Ext2 לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "כרך Ext3 לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "כרך Ext4 לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "כרך MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "כרך BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "כרך FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "כרך MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "כרך תקליטור" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "כרך תקליטור Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "כרך JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "כרך חלונות NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "כרך מערכת" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "כרך זיכרון" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "כרך Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "כרך NFS רשת" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "כרך NILFS לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "כרך Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "כרך Reiser4 לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "כרך ReiserFS לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "כרך חלונות משותף" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "כרך SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "כרך DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "כרך סול×ריס/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "כרך Udfs סול×ריס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "כרך Pcfs סול×ריס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "כרך SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "כרך זמני" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "כרך DOS מורחב" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "כרך חלונות VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "כרך Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "כרך XFS לינוקס" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "כרך XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "כרך CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "×œ× ×™×“×•×¢" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "כרך %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "כונן %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "כונן %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "כונן תקליטוני×" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "כונן פל×ש קומפקטי" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "כונן מקל זיכרון" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "כונן מדיה חכמה" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "כונן SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "כונן Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "כונן Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "כונן Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s נגן מוזיקה" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s מצלמה דיגיטלית" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "כונן" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s חיצוני" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "דיסק CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "דיסק CD-R ריק" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "דיסק CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "דיסק CD-RW ריק" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "דיסק CD-RW " #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "דיסק DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "דיסק DVD-RAM ריק" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "דיסק DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "דיסק DVD-R ריק" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "דיסק DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "דיסק DVD-rw ריק" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "דיסק DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "דיסק DVD+R ריק" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "דיסק DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "דיסק DVD+RW ריק" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "דיסק DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "דיסק ×ודיו" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "כרך ניתן להסרה %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "כרך" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Unknown operation type %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 #: ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "×œ× × ×™×ª×Ÿ ליצור צינור כדי לפתוח GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "סוג עבודה ×œ× ×™×“×•×¢ %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "פעולה נעצרה" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "Deprecated function. User modifications to the MIME database are no longer supported." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "×œ× × ×™×ª×Ÿ לפענח: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "התעלמות משגי×ות הפענוח הב×ות." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "×ין שגי××”" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "קובץ ×œ× × ×ž×¦×" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "שגי××” כללית" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "שגי××” פנימית" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "×¤×¨×ž×˜×¨×™× ×œ× ×ª×§× ×™×™×" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "פעולה ×œ× × ×ª×ž×›×ª" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "שגי×ת קלט/פלט" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "מידע פגו×" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "מבנה ×œ× ×ª×§× ×™" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "מזהה קובץ שגוי" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "הקובץ גדול מידי" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "×œ× × ×•×ª×¨ ×ž×§×•× ×¢×œ ההתקן" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "מערכת ×§×‘×¦×™× ×œ×§×¨×™××” בלבד" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "כתובת ×œ× ×ª×§× ×™×ª" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "הקובץ ×œ× ×¤×ª×•×—" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "מצב פתיחה ×œ× ×ª×§×™×Ÿ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "הגישה נדחית" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "יותר מידי ×§×‘×¦×™× ×¤×ª×•×—×™×" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "סוף הקובץ" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "×œ× ×¡×¤×¨×™×™×”" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "הפעולה בתהליך" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "הפעולה הופרעה" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "הקובץ ×§×™×™×" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "נתקל בלול×ת קישורי×" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "הפעולה ××™× ×” מורשית" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "×”×•× ×¡×¤×¨×™×™×”" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "×ין מספיק זיכרון" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "מ×רח ×œ× × ×ž×¦×" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "×©× ×”×ž×רח ×œ× ×ª×§×™×Ÿ" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "למ×רח ×ין כתובת" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "התחברות נכשלה" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "הפעולה התבטלה" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "הספרייה עסוקה" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "הספרייה ×œ× ×¨×™×§×”" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "יותר מידי קישורי×" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "מערכת ×§×‘×¦×™× ×œ×§×¨×™××” בלבד" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "×œ× ×‘×ותה המערכת" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "×©× ×רוך מידי" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "שירות ×ינו זמין" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "מבקש נתוני ×©×™×¨×•×ª×™× ×ž×•×—×œ×˜×™×" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "שגי×ת פרוטוקול" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×“×¤×“×¤×Ÿ ר×שי" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "×œ× ×©×•×™×™×›×” פעולה ברירת מחדל" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "×ין מזהה לסכימת הכתובת" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "שגי××” בפרוק שורת הפקודה" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "שגי××” בהפעלת פקודה" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Timeout reached" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "שגי×ת שרת ש×" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "The resource is locked" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Function call deprecated" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Invalid filename" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Not a symbolic link" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "שגי××” ×œ× ×™×“×•×¢×”" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "בית ×חד" msgstr[1] "%u בתי×" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "MB %.1f" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "GB %.1f" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (יוניקוד ×œ× ×ª×§× ×™)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "תקליטון" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "דיסק" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "כונן USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "כונן IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "מקל זיכרון" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "מדיה חכמה" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "מצלמה" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "כרך שורש" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "תקליטור ×ודיו" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "כרך ×œ× ×™×“×•×¢" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "שרת רשת" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "×œ× × ×™×ª×Ÿ לחבר ×ת כונן התקליטוני×. כנר××” ×ין תקליטון בכונן." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "×œ× × ×™×ª×Ÿ לחבר ×ת הכרך. כנר××” ×ין מדיה בהתקן." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "Unable to mount the floppy drive. The floppy is probably in a format that cannot be mounted." msgstr "×œ× × ×™×ª×Ÿ לחבר ×ת כונן התקליטוני×. כנר××” התקליטון ב×יתחול ×©×œ× ×™×›×•×œ להתחבר." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "Unable to mount the volume. If this is an encrypted drive, then the wrong password or key was used." msgstr "Unable to mount the volume. If this is an encrypted drive, then the wrong password or key was used." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "Unable to mount the selected volume. The volume is probably in a format that cannot be mounted." msgstr "×œ× × ×™×ª×Ÿ לחבר ×ת הכרך הנבחר. כנר××” הכרך ב×יתחול ×©×œ× ×™×›×•×œ להתחבר." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "×œ× × ×™×ª×Ÿ לחבר ×ת כונן ×”×ª×§×œ×™×˜×•× ×™× ×”× ×‘×—×¨." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "×œ× × ×™×ª×Ÿ לחבר ×ת הכרך הנבחר." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "Unable to unmount the selected volume. The volume is in use by one or more programs." msgstr "×œ× × ×™×ª×Ÿ לנתק ×ת הכרך הנבחר. הכרך × ×™×ž×¦× ×‘×©×™×ž×•×© על ידי ×™×™×©×•× ×חד ×ו יותר.." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "×œ× × ×™×ª×Ÿ לנתק ×ת הכרך הנבחר." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Failed to read data from child process %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Couldn't run mount process in a pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Unexpected error in select() reading data from a child process (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Couldn't send password to mount process." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Unexpected error in waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "נכשל בהפעלת פקודה" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "×œ× × ×™×ª×Ÿ ×œ×”×•×¦×™× ×ž×“×™×”" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "×œ× × ×™×ª×Ÿ לנתק שרת מחובר" #: ../modules/computer-method.c:543 msgid "Network" msgstr "רשת" #: ../modules/computer-method.c:561 msgid "Home" msgstr "בית" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "מערכת קבצי×" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition ×œ× ×™×“×•×¢ %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "רשת חלונות" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "הזהות של המחשב המרוחק (%s) ××™× ×” ידועה" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely sure it is safe to continue, contact the system administrator." msgstr "" "מצב ×–×” קורה ×›×שר ×ž×ª×—×‘×¨×™× ×œ×ž×—×©×‘ ×‘×¤×¢× ×”×¨×שונה.\n" "\n" "הזהות שנשלחה על ידי המחשב המרוחק ×”×™× %s. על מנת לדעת ×”×× ×–×” בטוח לחלוטין להמשיך, יש ליצור קשר ×¢× ×ž× ×”×œ המערכת." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "התחבר" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "×ל תתחבר" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "×œ× × ×ž×¦× ×§×•×‘×¥ הגדרות תקני ב %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "השתמש במשתנה הסביבה %s כדי לציין ×ž×™×§×•× ×חר.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Your HTTP Proxy requires you to log in.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "You must log in to access \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Your password will be transmitted unencrypted." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Your password will be transmitted encrypted." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "You must log in to access %s domain %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "You must log in to access %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "×™×™×©×•× ×œ×”×¦×’×ª ×¨×›×™×‘×™× ×‘×¨×™×¨×ª מחדל" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "×™×™×©×•× ×ž×¡×•×£ ברירת מחדל" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "×רגומנט Exec למסוף ברירת מחדל" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." msgstr "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "The default terminal application to use for applications that require a terminal." msgstr "The default terminal application to use for applications that require a terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "The exec argument to use for the default terminal application." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Run the command in a terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "The command used to handle \"aim\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "The command used to handle \"callto\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "The command used to handle \"ghelp\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "The command used to handle \"h323\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "The command used to handle \"http\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "The command used to handle \"https\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "The command used to handle \"info\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "The command used to handle \"mailto\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "The command used to handle \"man\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "The command used to handle \"trash\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "The handler for \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "The handler for \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "The handler for \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "The handler for \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "The handler for \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "The handler for \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "The handler for \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "The handler for \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "The handler for \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "The handler for \"trash\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"aim\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "True if the command specified in the \"command\" key should handle \"callto\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"callto\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "True if the command specified in the \"command\" key should handle \"h323\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"h323\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "True if the command specified in the \"command\" key should handle \"http\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"http\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "True if the command specified in the \"command\" key should handle \"https\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"https\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "True if the command specified in the \"command\" key should handle \"info\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"info\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "True if the command specified in the \"command\" key should handle \"mailto\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"mailto\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "True if the command specified in the \"command\" key should handle \"man\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"man\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "True if the command specified in the \"command\" key should handle \"trash\" URLs." msgstr "True if the command specified in the \"command\" key should handle \"trash\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "True if the command used to handle this type of URL should be run in a terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Whether the specified command should handle \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Whether the specified command should handle \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Whether the specified command should handle \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Whether the specified command should handle \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Whether the specified command should handle \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Whether the specified command should handle \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Whether the specified command should handle \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Whether the specified command should handle \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Whether the specified command should handle \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Whether the specified command should handle \"trash\" URLs" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "Comma separated list of DNS-SD domains that should be visible in the \"network:///\" location." msgstr "Comma separated list of DNS-SD domains that should be visible in the \"network:///\" location." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Extra domains to look for DNS-SD services in" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "How to display local DNS-SD service" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Possible values are \"merged\", \"separate\" and \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Authenticate proxy server connections" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automatic proxy configuration URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Enables the proxy settings when accessing HTTP over the Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP proxy password" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP proxy username" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "If true, then connections to the proxy server require authentication. The username/password combo is defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "If true, then connections to the proxy server require authentication. The username/password combo is defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Non-proxy hosts" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Password to pass as authentication when doing HTTP proxying." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxy configuration mode" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS proxy port" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Secure HTTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Secure HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." msgstr "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "The machine name to proxy FTP through." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "The machine name to proxy HTTP through." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "The machine name to proxy secure HTTP through." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "The machine name to proxy socks through." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." msgstr "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." msgstr "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." msgstr "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." msgstr "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL that provides proxy configuration values." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Use HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "User name to pass as authentication when doing HTTP proxying." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB workgroup" #: ../schemas/system_smb.schemas.in.h:2 msgid "The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in." msgstr "The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in." #~ msgid "Could not initialize Bonobo" #~ msgstr "×œ× × ×™×ª×Ÿ ל×תחל ×ת Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "×œ× × ×™×ª×Ÿ ל×תחל ×ת gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "יצרן Moniker רגיל" #~ msgid "file MonikerExtender" #~ msgstr "מרחיב קובץ Moniker" #~ msgid "generic Gnome VFS moniker" #~ msgstr "Gnome VFS moniker כללי" #~ msgid "generic file moniker" #~ msgstr "קובץ moniker רגיל" #~ msgid "The window workgroup the user is part of" #~ msgstr "קבוצת העבודה החלונ×ית שהמשתמש ×”×•× ×—×œ×§ ממנה" #, fuzzy #~ msgid "Memory Stick Media" #~ msgstr "מקל זיכרון" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "חלונות" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "×œ× × ×™×ª×Ÿ לפענח: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "הקובץ ×§×™×™×" #~ msgid "Applications" #~ msgstr "יישומי×" #~ msgid "Cards" #~ msgstr "כרטיסי×" #~ msgid "Files" #~ msgstr "קבצי×" #~ msgid "Folders" #~ msgstr "תיקיות" #~ msgid "Help" #~ msgstr "עזרה" #~ msgid "Hosts" #~ msgstr "מ×רחי×" #~ msgid "Links" #~ msgstr "קישורי×" #~ msgid "Mail" #~ msgstr "דו×ר" #~ msgid "Tools" #~ msgstr "כלי×" #~ msgid "Windows" #~ msgstr "חלונות" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "×ין מזהה לסכימת הכתובת" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "×ין מזהה לסכימת הכתובת" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "מזהה קובץ שגוי" gnome-vfs-2.24.4/po/ChangeLog0000644000175000001440000036272611334251016012625 000000000000002009-03-28 Shankar Prasad * kn.po: Updated Kannada translations. 2009-03-18 Djihed Afifi * ar.po: Updated Arabic translation by Khaled Hosny. ==================== 2.24.1 ==================== 2009-03-14 Kostas Papadimas * el.po: Updated Greek Translation by Jennie Petoumenou. 2009-03-13 Ignacio Casal Quinteiro * gl.po: Updated Galician translation 2009-03-12 Duarte Loreto * pt.po: Fixed error in Portuguese translation. 2009-03-11 Ani Peter * ml.po: Updated Malayalam Translations 2009-03-07 MiÈ™u Moldovan * ro.po: Updated Romanian translation. 2009-03-06 Rajesh Ranjan * hi.po: Updated Hindi Translation. 2009-03-03 Krishnababu K * te.po: Updated Telugu Translation. 2009-03-02 Milo Casagrande * it.po: Updated Italian translation by Luca Ferretti 2009-02-18 Chao-Hsiung Liao * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). * zh_TW.po: Updated Traditional Chinese translation(Taiwan). 2009-02-14 Jorge Gonzalez * es.po: Updated Spanish translation, fixes bug #569457 2009-02-10 Gil Forcada * ast.po: Added Asturian translation on behalf of Mikel González. * LINGUAS: Added ast. 2009-01-30 Chao-Hsiung Liao * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). * zh_TW.po: Updated Traditional Chinese translation(Taiwan). 2009-01-24 Raivis DEjus * lv.po: Updated Latvian translation. 2009-01-23 Changwoo Ryu * ko.po: Updated Korean translation. 2009-12-04 Nurali Abdurahmonov * uz.po: Added Uzbek Translation * uz@cyrillic.po: Added Uzbek cyrillic translation * LINGUAS: added "uz" and "uz@cyrillic" 2008-12-28 Andre Klapper * af.po: Updated Afrikaans translation on behalf of Friedel Wolff. Fixes bug #565763. 2008-10-20 Pema Geyleg * dz.po: Updated Dzongkha Translation * LINGUAS: added "dz" 2008-10-19 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-10-01 Og Maciel * pt_BR.po: Updated Brazilian Portuguese translation by Vladimir Melo. 2008-09-30 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov === gnome-vfs 2.24.0 === 2008-09-19 Mugurel Tudor * ro.po: Updated Romanian translation by MiÅŸu Moldovan 2008-09-18 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-09-15 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-09-15 Shankar Prasad * kn.po: Updated Kannada translation 2008-09-12 Duarte Loreto * pt.po: Fixed Portuguese terminology. 2008-09-10 Runa Bhattacharjee * bn_IN.po: Updated Bengali India Translation 2008-09-09 Robert Sedak * hr.po: Updated Croatian translation. 2008-09-09 Baris Cicek * tr.po: Updated Turkish translation 2008-08-28 Rajesh Ranjan * mai.po: Added Maithili Translation 2008-08-25 Goran Rakic * LINGUAS, sr@latin.po, sr@Latn.po: Conversion from sr@Latn to sr@latin. 2008-08-20 Manoj Kumar Giri * or.po: Updated Oriya Translation 2008-08-6 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-07-30 Hendrik Richter * de.po: Updated German translation, by Nicolas Kaiser 2008-07-29 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-07-25 Leonardo Ferreira Fontenelle * pt_BR.po: Terminology improvements by Vladimir Melo. 2008-07-16 Laurent Dhima * sq.po: Updated Albanian Translation. 2008-07-02 Yannig Marchegay * oc.po: Updated Occitan translation. 2008-06-11 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-05-22 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-05-19 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2008-03-20 Laurent Dhima * sq.po: Updated Albanian Translation. 2008-03-18 Laurent Dhima * sq.po: Updated Albanian Translation. 2008-03-09 Daniel Nylander * sv.po: Updated Swedish translation. 2008-03-06 Marcel Telka * sk.po: Updated Slovak translation. 2008-03-03 Jorge Gonzalez * es.po: Updated Spanish translation 2008-02-24 Ã…smund Skjæveland * nn.po: Updated Norwegian Nynorsk translation. 2008-02-24 Gabor Kelemen * hu.po: Translation updated 2008-02-19 Runa Bhattacharjee * kn.po: Added Kannada Translations by Shankar Prasad * LINGUAS: Added Kannada (kn) to the list of languages 2008-02-14 Pawan Chitrakar * ne.po: Updated Nepali Translation. 2008-02-13 Petr Kovar * cs.po: Updated Czech translation by Lucas Lommer. 2008-02-05 Amitakhya Phukan * LINGUAS: Added as. * as.po: Updated assamese translations. 2008-01-31 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. === gnome-vfs 2.21.90 === 2008-01-22 Rahul Bhalerao * mr.po: Updated Marathi translation by Sandeep Shedmake. 2008-01-12 Claude Paroz * fr.po: Updated French translation by Robert-André Mauchin . 2007-12-31 Yannig Marchegay * oc.po: Updated Occitan translation. 2007-12-27 Inaki Larranaga Murgoitio * eu.po: Updated Basque translation. 2007-12-09 Changwoo Ryu * ko.po: Updated Korean translation. 2007-11-14 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2007-11-14 Matej UrbanÄiÄ * sl.po: Updated Slovenian translation. 2007-10-31 Ilkka Tuohela * fi.po: Updated Finnish translation. 2007-10-23 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2007-10-23 Matej UrbanÄiÄ * sl.po: Updated Slovenian translation. 2007-10-21 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2007-10-15 Priit Laes * et.po: Translation update by Ivar Smolin. 2007-10-06 Kenneth Nielsen * da.po: Updated Danish translation 2007-09-30 Daniel Nylander * sv.po: Updated Swedish translation. === gnome-vfs 2.20.0 === 2007-09-17 Gintautas Miliauskas * lt.po: Updated Lithuanian translation. 2007-09-16 Gil Forcada * ca.po: Updated Catalan translation. 2007-09-15 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2007-09-14 Vladimer Sichinava * ka.po: Updated Georgian translation. 2007-09-14 Khandakar Mujahidul Islam * bn.po: Updated Bengali Translation. 2007-09-13 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2007-09-13 Mugurel Tudor * ro.po: Updated Romanian translation by MiÅŸu Moldovan 2007-09-12 Laurent Dhima * sq.po: Updated Albanian translation. 2007-09-09 Kenneth Nielsen * da.po: Updated Danish translation 2007-09-07 Maxim Dziumanenko * uk.po: Update Ukrainian translation. 2007-09-07 Nickolay V. Shmyrev * ru.po: Updated Russian translation 2007-09-06 Goran Rakić * sr.po, sr@Latn.po: Updated Serbian translation. 2007-09-03 Luca Ferretti * it.po: Updated Italian translation. 2007-08-31 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov === gnome-vfs 2.19.91 === 2007-08-26 Gabor Kelemen * hu.po: Translation updated. 2007-08-26 Duarte Loreto * pt.po: Updated Portuguese translation. 2007-08-22 Sunil Mohan Adapa * te.po: Added Telugu translation done by Matapathi Pramod . 2007-08-20 Stéphane Raimbault * fr.po: Updated French translation. 2007-08-15 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2007-08-12 Jovan Naumovski * mk.po: Updated Macedonian translation. 2007-08-06 Ilkka Tuohela * fi.po: Updated Finnish translation. 2007-08-04 Raphael Higino * pt_BR.po: Updated Brazilian Portuguese translation === gnome-vfs 2.19.3 === 2007-07-25 Inaki Larranaga Murgoitio * eu.po: Updated Basque translation. 2007-07-19 Hendrik Richter * de.po: Updated German translation. 2007-07-16 Wouter Bolsterlee * nl.po: Dutch translation updated by Wouter Bolsterlee. 2007-07-13 I. Felix * ta.po: Tamil Translation updated by Tirumurthi Vasudevan 2007-07-10 Ilkka Tuohela * fi.po: Updated Finnish translation. 2007-07-07 Takeshi AIHANA * ja.po: Updated Japanese translation. 2007-07-05 Ankit Patel * gu.po: Updated Gujarati Translation. 2007-06-25 Clytie Siddall * vi.po: Updated Vietnamese translation. 2007-06-03 Priit Laes * et.po: Updated Estonian translation by Ivar Smolin . 2007-05-22 Yair Hershkovitz * he.po: Updated Hebrew translation. 2007-05-21 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2007-05-14 Daniel Nylander * sv.po: Updated Swedish translation. === gnome-vfs 2.19.2 === 2007-05-08 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. 2007-05-03 Jorge Gonzalez * es.po: Updated Spanish translation 2007-05-3 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2007-04-25 David Lodge * en_GB.po: Updated British English translation === gnome-vfs 2.18.0 === 2007-03-12 I Felix * ta.po: Updated Tamil Translation. 2007-03-08 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2007-03-06 Thierry Randrianiriana * mg.po: Updated Malagasy translation. 2007-03-05 Laurent Dhima * sq.po: Updated Albanian translation. 2007-03-04 Luca Ferretti * it.po: Updated Italian translation. 2007-03-03 Vincent van Adrighem * nl.po: Translation updated by Reinout van Schouwen. 2007-02-27 Gintautas Miliauskas * lt.po: Updated Lithuanian translation. 2007-02-24 Gabor Kelemen * hu.po: Translation updated. 2007-02-21 Vincent van Adrighem * nl.po: Dutch translation updated by Reinout van Schouwen. === gnome-vfs 2.17.91 === 2007-02-04 Gabor Kelemen * hu.po: Translation updated. 2007-01-31 Ihar Hrachyshka * be.po: Updated Belarusian translation. === gnome-vfs 2.17.90 === 2007-01-3 Djihed Afifi * ar.po: Updated Arabic Translation by Khaled Hosny. 2006-12-28 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2006-12-22 Djihed Afifi * ar.po: Updated Arabic Translation. === gnome-vfs 2.17.2 === === gnome-vfs 2.17.1 === 2006-12-18 Djihed Afifi * ar.po: Updated Arabic Translation. 2006-11-21 Pawan Chitrakar * ne.po: Updated Nepali Translation === gnome-vfs 2.16.3 === 2006-11-18 Djihed Afifi * ar.po: Updated Arabic Translation. 2006-11-18 Matic Zgur * pl.po: Updated Polish translation by GNOME PL Team. 2006-11-11 Djihed Afifi * ar.po: Updated Arabic Translation. 2006-11-01 Yair Hershkovitz * he.po: Updated Hebrew translation. 2006-10-20 Thierry Randrianiriana * mg.po: Added Malagasy translation. * LINGUAS: Added 'mg'. === gnome-vfs 2.16.1 === 2006-09-28 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2006-09-13 Matic Zgur * sl.po: Updated Slovenian translation. 2006-09-09 David Lodge * en_GB.po: Updated British English translation. 2006-09-08 Vladimer Sichinava * ka.po: Updated Georgian translation. 2006-09-04 Rajesh Ranjan * hi.po: Updated Hindi Translation. 2006-09-04 Mugurel Tudor * ro.po: Updated Romanian translation by MiÅŸu Moldovan 2006-09-03 Danilo Å egan * sr.po, sr@Latn.po: Updated by Goran Rakić. 2006-09-02 Ã…smund Skjæveland * nn.po: Updated Norwegian Nynorsk translation. 2006-08-31 Nikos Charonitakis * el.po: Updated Greek translation. 2006-08-31 Ani Peter * ml.po: Updated Malayalam translation 2006-08-30 Jovan Naumovski * mk.po: Updated Macedonian translation. 2006-08-30 I. Felix * ta.po: Translation updated. 2006-08-27 Theppitak Karoonboonyanan * th.po: Fixed plural forms. 2006-08-26 Gabor Kelemen * hu.po: Translation updated. 2006-08-26 Josep Puigdemont i Casamajó * ca.po: Updated Catalan translation. 2006-08-24 Leonid Kanter * ru.po: Updated Russian translation 2006-08-24 Josep Puigdemont i Casamajó * ca.po: Updated Catalan translation. 2006-08-24 Ahmad Riza H Nst * id.po: Updated. === gnome-vfs 2.15.92 === 2006-08-23 Khandakar Mujahidul Islam * bn.po: Updated Bengali translation 2006-08-20 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2006-08-18 Clytie Siddall * vi.po: Updated Vietnamese translation. 2006-08-17 Duarte Loreto * pt.po: Updated Portuguese translation. 2006-08-16 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2006-08-16 Satoru SATOH * ja.po: Updated Japanese translation. 2006-08-16 Daniel Nylander * sv.po: Updated Swedish translation. 2006-08-16 Gabor Kelemen * hu.po: Translation updated. 2006-08-16 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2006-08-16 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2006-08-11 Priit Laes * et.po: Translation updated. 2006-08-10 Guntupalli Karunakar * dz.po: Updated Dzongkha translation by Dzongkhalinux team, DIT 2006-08-09 Raivis Dejus * lv.po: Updated Latvian translation. 2006-08-08 Lucas Rocha * pt_BR.po: Updated Brazilian Portuguese translation by Leonardo Ferreira Fontenelle 2006-08-08 Baris Cicek * tr.po: Updated Turkish Translation from Burcu Guzel === gnome-vfs 2.15.91 === 2006-08-08 Inaki Larranaga * eu.po: Updated Basque translation. 2006-08-07 Ani Peter * ml.po: Updated Malayalam Translation 2006-08-05 Chao-Hsiung Liao * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). * zh_TW.po: Updated Traditional Chinese translation(Taiwan). 2006-08-03 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. 2006-07-31 Jakub Friedl * cs.po: Updated Czech translation. 2006-07-31 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2006-07-29 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2006-07-26 Hendrik Richter * de.po: Updated German translation. === gnome-vfs 2.15.90 === 2006-07-22 Luca Ferretti * it.po: Updated Italian translation. 2006-07-21 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2006-06-20 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2006-07-19 Changwoo Ryu * ko.po: Updated Korean translation. 2006-07-19 Subhransu Behera * or.po: Updated Oriya Translation. 2006-07-19 Runa Bhattacharjee * bn_IN: Updated Bengali India Translation. 2006-07-18 Runa Bhattacharjee * bn_IN.po: Updated Bengali India Translation. 2006-07-18 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2006-07-18 Ankit Patel * gu.po: Updated Gujarati Translation. 2006-07-17 Benoît Dejean * fr.po: Updated French translation. * POTFILES.in: Dropped non-existant file. 2006-07-16 Yair Hershkovitz * he.po: Updated Hebrew translation. 2006-07-11 Raivis Dejus * lv.po: Updated Latvian translation. 2006-07-11 Christian Kellner * POTFILES.in: Remove files that has been removed due to the DBus-for-Bonobo update. 2006-07-05 Jovan Naumovski * mk.po: Updated Macedonian translation. 2006-07-03 Subhransu Behera * or.po: Updated Oriya Translation 2006-07-03 Runa Bhattacharjee * bn_IN.po: Added Bengali India (bn_IN) Translation * LINGUAS: Added Bengali India (bn_IN) to the list of languages. 2006-06-29 Rhys Jones * cy.po: Updated Welsh translation. 2006-06-25 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2006-06-20 Rajesh Ranjan * hi.po: Updated Hindi Translation. === gnome-vfs 2.15.2 === 2006-06-10 Changwoo Ryu * ko.po: Updated Korean translation. 2006-06-06 Ilkka Tuohela * fi.po: Updated Finnish translation. 2006-05-29 Pema Geyleg * dz.po: Updated Dzongkha translation. 2006-05-26 Clytie Siddall * vi.po: Updated Vietnamese translation. 2006-05-24 Inaki Larranaga * eu.po: Updated Basque translation. 2006-05-23 Theppitak Karoonboonyanan * th.po: Updated Thai translation. i2006-05-21 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2006-05-20 Vincent van Adrighem * nl.po: Translation updated. 2006-05-20 Takeshi AIHANA * ja.po: Updated Japanese translation. === gnome-vfs 2.15.1 === 2006-05-16 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2006-05-06 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2006-05-02 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2006-04-30 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. 2006-04-28 Alexander Larsson * LINGUAS: Add LINGUAS 2006-04-25 Ankit Patel * gu.po: Updated Gujarati Translation. 2006-04-24 Alexander Larsson * POTFILES.in: Add programs/authentication.c 2006-04-23 Daniel Nylander * sv.po: Updated Swedish translation. 2006-04-23 Vincent van Adrighem * nl.po: Translation updated. 2006-04-23 Ã…smund Skjæveland * nn.po: Updated Norwegian Nynorsk translation. 2006-04-21 Lukas Novotny * cs.po: Updated Czech translation. 2006-04-21 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2006-04-21 Josep Puigdemont Casamajó * ca.po: Updated Catalan translation. 2006-04-21 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2006-04-21 Laurent Dhima * sq.po: Updated Albanian translation. 2006-04-21 Rajesh Ranjan * hi.po: Updated Hindi Translation. 2006-04-21 Ankit Patel * gu.po: Updated Gujarati Translation. 2006-04-20 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. === gnome-vfs 2.14.1 === 2006-04-02 Vladimer Sichinava * ka.po: Added Georgian translation by Gia Shervashidze 2006-03-29 Gora Mohanty * or.po: Updated Oriya translation. 2006-03-29 Gora Mohanty * or.po: Added Oriya translation. 2006-03-28 Nikos Charonitakis * el.po: Updated Greek translation. 2006-03-17 Ahmad Riza H Nst * id.po: Updated. 2006-03-15 Gabor Kelemen * hu.po: Hungarian translation updated. 2006-03-14 Baris Cicek * tr.po: Updated Turkish Translation === gnome-vfs 2.14.0 === 2006-03-13 Mugurel Tudor * ro.po: Updated Romanian translation by MiÅŸu Moldovan 2006-03-06 Rajesh Ranjan * hi.po: Updated Hindi Translation. 2006-03-09 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. * nn.po: Updated Norwegian nynorsk translation. 2006-03-07 Daniel Nylander * sv.po: Swedish translation updated. 2006-03-03 Gabor Kelemen * hu.po: Hungarian translation updated. 2006-03-03 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2006-03-02 David Zeuthen * POTFILES.in: Remove system_storage.schemas.in 2006-03-02 Christian Neumair * be.po: Convert to UNIX line breaks. Fixes #324708, thanks to Damien Carbery. === gnome-vfs 2.13.92 === 2006-02-25 Benoît Dejean * fr.po: Updated French translation. Switched to Ki/Mi/Gi prefixes. 2006-02-25 Hendrik Brandt * de.po: Updated German translation. 2006-02-25 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2006-02-21 Inaki Larranaga * eu.po: Updated Basque translation. 2006-02-20 Kostas Papadimas * el.po: Updated Greek translation. 2006-02-19 Erdal Ronahi * ku.po: Added Kurdish translation. 2006-02-16 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. === gnome-vfs 2.13.91 === 2006-02-12 Josep Puigdemont i Casamajó * ca.po: Updated Catalan translation with Xavier Conde 2006-02-11 Luca Ferretti * it.po: Updated Italian translation. 2006-02-03 Rhys Jones * cy.po: Updated Welsh translation. 2006-01-31 Slobodan D. Sredojevic * sr.po, sr@Latn.po: Updated Serbian translation 2006-01-30 Laurent Dhima * sq.po: Updated Albanian translation. 2006-01-27 Duarte Loreto * pt.po: Updated Portuguese translation. 2006-01-28 Changwoo Ryu * ko.po: Updated Korean translation. 2006-01-26 Evandro Fernandes Giovanini * pt_BR.po: Updated Brazilian Portuguese translation. 2006-01-24 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-01-22 Nickolay V. Shmyrev * ru.po: Updated Russian translation by Maxim Popov. 2006-01-18 Ole Laursen * da.po: Updated Danish translation. 2006-01-07 Chao-Hsiung Liao * zh_TW.po: Updated Traditional Chinese Translation. * zh_HK.po: Added Traditional Chinese Translation.(HK) 2005-12-26 Ilkka Tuohela * fi.po: Updated Finnish translation 2005-12-25 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-12-21 Nikos Charonitakis * el.po: Updated Greek translation. 2005-12-20 Clytie Siddall * vi.po: Updated Vietnamese translation. 2005-12-17 Takeshi AIHANA * ja.po: Updated Japanese translation. === gnome-vfs 2.13.3 === 2005-12-13 Christophe Merlet * fr.po: Updated French translation. === gnome-vfs 2.13.2 === 2005-12-12 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-12-11 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2005-12-11 Miloslav Trmac * cs.po: Updated Czech translation. 2005-12-12 Christophe Merlet * fr.po: Updated French translation. 2005-12-09 Ankit Patel * gu.po: Updated Gujarati Translation. 2005-12-06 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2005-12-06 Ales Nyakhaychyk * be.po: Updated Belarusian translation by Vital Khilko 2005-12-06 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2005-12-05 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2005-12-04 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation * no.po: Same 2005-12-04 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2005-12-04 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2005-12-03 Adam Weinberger * POTFILES.in: Added missing files. * en_CA.po: Updated Canadian English translation. 2005-12-02 Miloslav Trmac * cs.po: Updated Czech translation. 2005-12-02 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2005-12-01 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2005-11-29 Ales Nyakhaychyk * be.po: Updated Belarusian translation by Vital Khilko. 2005-11-26 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-11-25 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2005-11-22 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2005-11-22 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2005-11-21 Ales Nyakhaychyk * be.po: Updated Belarusian translation by Vital Khilko. 2005-11-19 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-11-18 Ales Nyakhaychyk * be.po: Updated Belarusian translation by Vital Khilko === gnome-vfs 2.13.1 === 2005-10-27 Dan Damian * ro.po: Updated Romanian translation by Misu Moldovan. 2005-10-20 Marcel Telka * sk.po: Updated Slovak translation by Ivan Noris. 2005-10-18 Inaki Larranaga * eu.po: Updated Basque translation. 2005-10-17 Martin Willemoes Hansen * da.po: Updated Danish translation. 2005-10-15 Vincent van Adrighem * nl.po: Translation updated. 2005-10-10 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2005-10-08 Chao-Hsiung Liao * zh_TW.po: Updated Traditional Chinese translation. 2005-10-05 Priit Laes * et.po: Translation updated. 2005-10-04 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. === gnome-vfs 2.12.1 === 2005-10-01 Runa Bhattacharjee * bn.po: Updated Bengali (bn) translation. Translation by Mahay Alam Khan 2005-09-27 Hendrik Brandt * de.po: Updated German translation. 2005-09-26 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2005-09-26 Gabor Kelemen * hu.po: Hungarian translation updated. 2005-09-25 Miloslav Trmac * cs.po: Updated Czech translation. 2005-09-25 Christian Rose * sv.po: Updated Swedish translation. 2005-09-25 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2005-09-24 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-09-24 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2005-09-23 Ilkka Tuohela * fi.po Updated Finnish translation 2005-09-23 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2005-09-23 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. * no.po: Same 2005-09-23 Ankit Patel * gu.po: Updated Gujarati translation. 2005-09-22 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-09-22 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2005-09-22 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2005-09-22 Takeshi AIHANA * ja.po: Updated Japanese translation. 2005-09-22 Danilo Å egan * POTFILES.in: Updated (fixing bug #316914). * sr.po, sr@Latn.po: Updated. 2005-09-16 Clytie Siddall * vi.po: Updated Vietnamese translation. 2005-09-12 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-09-05 Iñaki Larrañaga * eu.po: Updated Basque translation. === gnome-vfs 2.12.0 === 2005-09-04 Ignacio Casal Quinteiro * gl.po: Updated Galician Translation. 2005-09-03 Danilo Å egan * sr.po, sr@Latn.po: Updated Serbian translation. 2005-09-03 Chao-Hsiung Liao * zh_TW.po: Updated Traditional Chinese translation. 2005-09-02 Baris Cicek * tr.po: Updated Turkish Translation 2005-08-31 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2005-08-31 Raphael Higino * pt_BR.po: Updated Brazilian Portuguese translation. 2005-08-30 Mohammad DAMT * id.po: Updated Indonesian translation 2005-08-30 Leonid Kanter * ru.po: Updated Russian translation 2005-08-29 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2005-08-28 Clytie Siddall * vi.po: Updated Vietnamese translation. 2005-08-27 Christophe Merlet * fr.po: Updated French translation. 2005-08-23 Jordi Mallach * ca.po: Updated Catalan translation. 2005-08-23 Gabor Kelemen * hu.po: Hungarian translation updated. 2005-08-22 Changwoo Ryu * ko.po: Updated Korean translation. 2005-08-17 Rhys Jones * cy.po: Updated Welsh translation. 2005-08-15 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2005-08-15 Mugurel Tudor * ro.po: Updated Romanian translation by MiÅŸu Moldovan 2005-08-15 Gabor Kelemen * hu.po: Hungarian translation updated. 2005-08-13 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2005-08-12 Kostas Papadimas * el.po: Updated Greek translation. 2005-08-03 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. * no.po: Same 2005-08-01 Vincent van Adrighem * nl.po: Translation updated. 2005-07-28 Ilkka Tuohela * fi.po: Updated Finnish translation. 2005-07-28 Laurent Dhima * sq.po: Updated Albanian translation. 2005-07-26 Hendrik Brandt * de.po: Updated German translation. 2005-07-26 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2005-07-26 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2005-07-26 Takeshi AIHANA * ja.po: Updated Japanese translation. 2005-07-25 Ankit Patel * gu.po: Updated Gujarati Translation. 2005-07-25 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2005-07-24 Duarte Loreto * pt.po: Updated Portuguese translation. 2005-07-24 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. * no.po: Same 2005-07-23 Miloslav Trmac * cs.po: Updated Czech translation. 2005-07-23 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2005-07-23 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-07-22 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-07-21 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2005-07-18 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-07-18 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2005-07-17 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2005-07-16 Laurent Dhima * sq.po: Updated Albanian translation. 2005-07-12 Gabor Kelemen * hu.po: Hungarian translation updated. === gnome-vfs 2.11.4 === 2005-07-10 Miloslav Trmac * cs.po: Updated Czech translation. 2005-07-08 Nguyá»…n Thái Ngá»c Duy * vi.po: Updated Vietnamese translation. 2005-07-08 Danilo Å egan * sr.po, sr@Latn.po: Updated Serbian translation. 2005-07-06 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2005-07-04 Hendrik Richter * de.po: Fixed German translation by Jens Seidel . 2005-07-03 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-07-03 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-07-02 Vincent van Adrighem * nl.po: Translation updated by Reinout van Schouwen. 2005-07-02 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-07-02 Takeshi AIHANA * ja.po: Updated Japanese translation. 2005-07-02 Priit Laes * et.po: Translation updated. 2005-07-02 Kjartan Maraas * nb.po: Updated Norwegian bokmal translation. * no.po: Same 2005-07-01 Chao-Hsiung Liao * zh_TW.po: Updated Traditional Chinese translation. 2005-06-30 Alexander Larsson reviewed by: * POTFILES.in: 2005-06-28 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-06-22 Abel Cheung * zh_TW.po: Fix language team reference. 2005-06-23 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-06-20 Kjartan Maraas * nb.po: Update Norwegian bokmal translation. * no.po: Same 2005-06-10 Priit Laes * et.po: Translation updated. 2005-06-08 Martin Willemoes Hansen * da.po: Updated Danish translation. === gnome-vfs 2.11.2 === 2005-06-06 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2005-06-06 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-05-30 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2005-05-29 Miloslav Trmac * cs.po: Updated Czech translation. 2005-05-25 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-05-24 Kjartan Maraas * nb.po: Updated Norwegian translation. 2005-05-23 Takeshi AIHANA * ja.po: Updated Japanese translation. 2005-05-19 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-05-19 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2005-05-16 Pawan Chitrakar * ne.po: Updated nepali translation 2005-05-15 Alexander Shopov * bg.po: Updated Bulgarian translation by Vladimir Petkov 2005-05-12 Kostas Papadimas * el.po: Updated Greek translation. 2005-05-12 Miloslav Trmac * cs.po: Updated Czech translation. 2005-04-19 Marcel Telka * sk.po: Updated Slovak translation by Ivan Noris. 2005-04-14 Iaki Larraaga * eu.po: Updated Basque translation. 2005-03-30 Steve Murphy * rw.po: Added Kinyarwanda translation. 2005-03-17 Adam Weinberger * en_CA.po: Updated Canadian English translation. === gnome-vfs 2.10.0 === 2005-03-05 Dan Damian * ro.po: Updated Romanian translation by MiÅŸu Moldovan . 2005-03-04 Laszlo Dvornik * hu.po: Hungarian translation updated by Gabor Kelemen. === gnome-vfs 2.9.93 === === gnome-vfs 2.9.92 === 2005-02-27 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2005-02-24 Arafat Medini * ar.po: Updated Arabic translation. 2005-02-24 Ankit Patel * gu.po: Updated Gujarati Translation. 2005-02-23 Simos Xenitellis * el.po: Updated Greek translation. 2005-02-21 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-02-20 Christophe Merlet * fr.po: Updated French translation. 2005-02-17 Adi Attar * xh.po: Updated Xhosa translation. 2004-02-17 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2005-02-15 Theppitak Karoonboonyanan * th.po: Updated Thai translation. 2005-02-15 Dmitry G. Mastrukov * be.po: Updated Belarusian translation from Belarusian team . 2005-02-15 Jordi Mallach * ca.po: Updated Catalan translation. 2005-02-12 Priit Laes * et.po: Translation updated by Ivar Smolin. 2005-02-12 Takeshi AIHANA * sr.po, sr@Latn.po: Updated Serbian translation. === gnome-vfs 2.9.91 === 2005-02-09 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2005-02-08 Christian Rose * xh.po: Added Xhosa translation by Adi Attar . 2005-02-08 Hendrik Richter * de.po: Updated German translation. 2005-02-08 Rhys Jones * cy.po: Updated Welsh (fuzzy-squeezing, plural form standardisation, general typo fixes) 2005-02-07 David Lodge * en_GB.po: Updated British translation. 2005-02-06 Pauli Virtanen * fi.po: Updated Finnish translation. 2005-02-05 Duarte Loreto * pt.po: Updated Portuguese translation. 2005-02-04 Changwoo Ryu * ko.po: Updated Korean translation. 2005-02-03 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2005-02-02 Alexander Shopov * bg.po: Updated Bulgarian translation by Alexander Shopov 2005-02-02 Laurent Dhima * sq.po: Updated Albanian translation. 2005-02-02 Raphael Higino * pt_BR.po: Updated Brazilian Portuguese translation. 2005-02-01 Kjartan Maraas * nb.po: Update * no.po: Update 2005-02-01 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-02-01 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2005-01-31 Martin Willemoes Hansen * da.po: Updated Danish translation. 2005-01-31 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2005-01-31 Miloslav Trmac * cs.po: Updated Czech translation. 2005-01-28 Priit Laes * et.po: Translation updated. 2005-01-28 Priit Laes * et.po: Translation updated by kitt. === gnome-vfs 2.9.90 === 2005-01-04 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2004-12-23 Laszlo Dvornik * hu.po: Hungarian translation updated by Gabor Kelemen. === gnome-vfs 2.9.2 === 2004-12-12 Alexander Shopov * bg.po: Updated Bulgarian translation 2004-12-09 Dwayne Bailey * zu.po: Added Zulu translation by Zuza Software Foundation . 2004-12-03 Dwayne Bailey * nso.po: Updated Northern Sotho translation. 2004-12-01 Dwayne Bailey * nso.po: Added Northern Sotho translation by Zuza Software Foundation . === gnome-vfs 2.9.1 === 2004-11-17 Mark McLoughlin * POTFILES.in: remove cdemenu-desktop-method.c === gnome-vfs 2.8.3 === 2004-10-19 Alexander Shopov * bg.po: Updated Bulgarian translation by Rostislav Raykov 2004-10-19 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2004-10-19 Laurent Dhima * sq.po: Updated Albanian translation. 2004-10-19 Miloslav Trmac * cs.po: Updated Czech translation. 2004-10-19 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2004-10-18 David Lodge * en_GB.po: Updated British English translation. === gnome-vfs 2.8.2 === 2004-10-10 Christophe Merlet * fr.po: Updated French translation. 2004-10-03 Jesus Bravo Alvarez * gl.po: Updated Galician translation. 2004-09-27 Leonid Kanter * ru.po: fixed Russian translation 2004-09-24 Stanislav Visnovsky * sk.po: Updated Slovak translation by Ivan Noris. === gnome-vfs 2.8.1 === 2004-09-18 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2004-09-15 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . === gnome-vfs 2.8.0 === 2004-0912 Akagic Amila * bs.po: Updated Bosnian translation. 2004-09-12 Abel Cheung * zh_TW.po: Updated traditional Chinese translation by GNOME HK Team 2004-09-12 Dafydd Harries * cy.po: Updated Welsh translation. 2004-09-12 Laszlo Dvornik * hu.po: Updated Hungarian translation by Gabor Kelemen. 2004-09-10 Christophe Fergeau * ar.po: Remove conflict markers in ar.po, this broke the build 2004-09-10 Arafat Medini * ar.po: Updated Arabic translation. 2004-09-09 Mugurel Tudor * ro.po: Updated Romanian translation by MiÅŸu Moldovan 2004-09-08 Abel Cheung * zh_TW.po: Updated traditional Chinese translation by GNOME HK Team. 2004-09-07 Jordi Mallach * ca.po: Updated Catalan translation. 2004-09-07 Laszlo Dvornik * hu.po: Updated Hungarian translation. 2004-09-07 David Lodge * en_GB.po: Updated British translation. 2004-09-06 Ã…smund Skjæveland * nn.po: Updated Norwegian Nynorsk translation. 2004-09-06 Ã…smund Skjæveland * nn.po: Updated Norwegian Nynorsk translation. 2004-09-06 Mugurel Tudor * ro.po: Updated Romanian translation by Misu Moldovan 2004-09-05 Miloslav Trmac * cs.po: Updated Czech translation. 2004-09-05 Ilkka Tuohela * fi.po: Updated Finnish translation. 2004-09-05 David Lodge * en_GB.po: Updated British translation, 2004-09-05 Hendrik Richter * de.po: Updated German translation 2004-09-05 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-09-05 Baris Cicek * tr.po: Updated Turkish Translation 2004-09-04 Ole Laursen * da.po: Updated Danish translation. 2004-09-04 Kostas Papadimas * el.po: Updated Greek translation. 2004-09-04 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-09-03 Raphael Higino * pt_BR.po: Updated Brazilian Portuguese translation. 2004-09-03 Vincent van Adrighem * nl.po: Translation updated by Reinout van Schouwen. 2004-09-03 Danilo Å egan * sr.po, sr@Latn.po: Updated Serbian translation. 2004-09-03 Takeshi AIHANA * ja.po: Updated Japanese translation. 2004-09-03 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2004-09-03 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-09-02 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti 2004-09-02 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-09-02 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2004-09-02 Changwoo Ryu * ko.po: Updated Korean translation. 2004-09-02 Laurent Dhima * sq.po: Updated Albanian translation. 2004-09-01 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2004-09-01 Miloslav Trmac * cs.po: Updated Czech translation. 2004-09-01 Kjartan Maraas * nb.po: Update * no.po: Update 2004-09-01 Christian Rose * sv.po: Updated Swedish translation. 2004-08-31 Arafat Medini * ar.po: Updated Arabic Translation === gnome-vfs 2.7.92 === 2004-08-29 Pawan Chitrakar * ne.po: Updated Nepali Translation 2004-08-25 Hasbullah Bin Pit * ms.po: Updated Malay translation. 2004-08-25 David Lodge * en_GB.po: Updated British translation. 2004-08-25 Christophe Merlet * fr.po: Updated French translation from Baptiste Mille-Mathias . 2004-08-24 Nikos Charonitakis * el.po: Updated Greek translation. 2004-08-23 Iñaki Larrañaga * eu.po: Updated Basque translation. 2004-08-21 Miloslav Trmac * cs.po: Updated Czech translation. 2004-08-21 Danilo Å egan * sr.po, sr@Latn.po: Updated Serbian translation. 2004-08-21 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2004-08-20 Laurent Dhima * sq.po: Updated Albanian translation. 2004-08-19 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-08-18 Estêvão Samuel Procópio * pt_BR.po: Updated Brazilian Portuguese translation. 2004-08-18 Pauli Virtanen * fi.po: Updated Finnish translation. 2004-08-18 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2004-08-18 Changwoo Ryu * ko.po: Updated Korean translation. 2004-08-18 Laurent Dhima * sq.po: Updated Albanian translation. 2004-08-18 Laurent Dhima * sq.po: Updated Albanian translation. 2004-08-17 Takeshi AIHANA * ja.po: Updated Japanese translation. 2004-08-17 Martin Willemoes Hansen * da.po: Updated Danish translation. 2004-08-17 Vincent van Adrighem * nl.po: Translation updated by Reinout van Schouwen. 2004-08-17 Christian Rose * sv.po: Updated Swedish translation. 2004-08-16 Christian Rose * bs.po: Updated Bosnian translation by Kenan Hadžiavdić . === gnome-vfs 2.7.91 === 2004-08-16 Ankit Patel * gu.po: Updated Final Gujarati translation. 2004-08-16 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-08-15 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2004-08-16 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-08-15 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-08-15 Christian Neumair * de.po: Updated German translation. 2004-08-15 Kjartan Maraas * nb.po: Updated Norwegian bokmÃ¥l translation. * no.po: Same 2004-08-15 Changwoo Ryu * ko.po: Updated Korean translation. 2004-08-15 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2004-08-15 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-08-15 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-08-14 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-08-13 Tommi Vainikainen * fi.po: Unified some fields in po headers for Finnish team. 2004-08-12 Kjartan Maraas * nb.po: Added this here. 2004-08-11 Ã…smund Skjæveland * nn.po: Updated Norwegian Nynorsk translation. 2004-08-09 Sanlig Badral * mn.po: Updated Mongolian translation. 2004-08-09 Ankit Patel * gu.po: Updated Gujarati translation. 2004-08-09 Amanpreet Singh Alam * pa.po: Updated Panjabi translation. 2004-08-09 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-08-08 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2004-08-06 Danilo Å egan * sr.po, sr@Latn.po: Updated Serbian translation. 2004-08-05 Christian Neumair * de.po: Updated German translation. 2004-08-05 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-08-03 Laszlo Dvornik * hu.po: Updated Hungarian translation. 2004-08-03 Martin Willemoes Hansen * da.po: Updated Danish translation. 2004-08-03 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2004-08-01 Martin Willemoes Hansen * da.po: Updated Danish translation 2004-08-01 Takeshi AIHANA * ja.po: Updated Japanese translation. === gnome-vfs 2.7.90 === 2004-07-31 Kjartan Maraas * no.po: Updated Norwegian translation. 2004-07-31 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-07-30 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2004-07-29 Iñaki Larrañaga * eu.po: Updated Basque translation. 2004-07-29 Kjartan Maraas * POTFILES.in: Added gnome-vfs-mime.info.c * no.po: Updated Norwegian translation. 2004-07-29 Martin Willemoes Hansen * da.po: Reviewed and updated fuzzy messages plus translated new messages. 2004-07-27 Alexander Shopov * bg.po: Updated Bulgarian translation by Rostislav "zbrox" Raykov 2004-07-27 Žygimantas BeruÄka * lt.po: Updated Lithuanian translation. 2004-07-27 Laurent Dhima * sq.po: Updated Albanian translation. 2004-07-26 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-07-26 Changwoo Ryu * ko.po: Updated Korean translation. 2004-07-25 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-25 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation done by Raphael Higino . 2004-07-24 David Lodge * en_GB.po: Updated British translation. 2004-07-24 Christian Rose * sv.po: Updated Swedish translation. 2004-07-23 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-23 Takeshi AIHANA * ja.po: Updated Japanese translation. === gnome-vfs 2.7.4 === 2004-07-22 Dave Camp * POTFILES.in: Updated 2004-07-21 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-07-21 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-21 Guntupalli Karunakar * hi.po: Updated Hindi translation. 2004-07-19 Laurent Dhima * sq.po: Updated Albanian translation. 2004-07-18 Christian Rose * sv.po: Updated Swedish translation. 2004-07-18 Christian Neumair * de.po: Updated German translation. 2004-07-16 Laszlo Dvornik * hu.po: Updated Hungarian translation. 2004-07-16 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-16 Pawan Chitrakar * ne.po: Updated nepali translation 2004-07-15 Gareth Owen * en_GB.po: Updated British English translation 2004-07-15 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-07-15 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-07-15 Changwoo Ryu * ko.po: Updated Korean translation. 2004-07-14 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation done by Raphael Higino . 2004-07-14 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-07-12 Pawan Chitrakar * ne.po: Updated Nepali Translation 2004-07-11 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-07-10 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-10 Laurent Dhima * sq.po: Updated Albanian translation. 2004-07-10 Takeshi AIHANA * ja.po: Updated Japanese translation. 2004-07-09 Christian Rose * sv.po: Updated Swedish translation. 2004-07-09 Christian Rose * POTFILES.in: Added one missing file. 2004-07-08 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-08 Laurent Dhima * sq.po: Updated Albanian translation. 2004-07-08 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-07-08 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-07-06 Gareth Owen * en_GB.po: Updated British English translation 2004-07-06 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-07-06 Ole Laursen * da.po: Updated Danish translation. ==== gnome-vfs 2.7.3 ==== 2004-07-05 Laurent Dhima * sq.po: Updated Albanian translation. 2004-07-04 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-04 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-07-03 Christian Rose * .cvsignore: Cleaned up a bit and added "missing". * sv.po: Updated Swedish translation. 2004-07-03 Christian Rose * POTFILES.in: Added some of the missing files. 2004-07-03 Laurent Dhima * sq.po: Translation updated. 2004-06-28 Laurent Dhima * sq.po: Translation updated. ==== gnome-vfs 2.7.2 ==== 2004-06-17 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation done by Goedson Teixeira Paixao . 2004-06-06 Alexander Shopov * bg.po: Updated Bulgarian translation by Peter "Peshka" Slavov ==== gnome-vfs 2.7.1 ==== 2004-05-27 Alexander Shopov * bg.po: Updated Bulgarian translation by Peter "Peshka" Slavov 2004-04-15 Theppitak Karoonboonyanan * th.po: Fix spellings. 2004-04-15 I�ki Larra�ga * eu.po: Updated Basque translation. 2004-04-09 Guntupalli Karunakar * gu.po: Added Gujurati translation by Gujarati Team . 2004-04-06 Mohammad DAMT * id.po: Updated Indonesian translation 2004-03-31 Jordi Mallach * ca.po: Updated Catalan translation. 2004-03-31 Christian Rose * af.po: Added Afrikaans translation by Zuza Software Foundation . 2004-03-25 Adam Weinberger * en_CA.po: Added Canadian English translation. 2004-03-25 Gil Osher * he.po: Updated Hebrew translation. 2004-03-23 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2004-03-22 Tomasz K?oczko * pt_BR.po: added missing "Plural-Forms:" field. === gnome-vfs 2.6.0 === 2004-03-22 Guntupalli Karunakar * pa.po: Punjabi translation by Amanpreet Singh Alam . 2004-03-21 Gustavo Noronha Silva * pt_BR.po: minor translation update. 2004-03-21 ?smund Skj?veland * nn.po: Updated Norwegian Nynorsk translation. 2004-03-21 ?ygimantas Beru?ka * lt.po: Updated Lithuanian translation. 2004-03-21 Andras Timar * hu.po: Added Hungarian translation. 2004-03-21 Gustavo Noronha Silva * pt_BR.po: translation updated by Everson -NoBIOS- Santos Araujo 2004-03-20 Baris Cicek * tr.po: Updated Turkish translation. 2004-03-20 Wang Jian * zh_CN.po: Updated Simplified Chinese translation by LoneStar . 2004-03-19 Arafat Medini * ar.po: Updated Arabic translation. 2004-03-18 Arafat Medini * ar.po: Updated Arabic translation. 2004-03-18 Sayamindu Dasgupta * bn.po: Updated Bengali translation. 2004-03-18 Kostas Papadimas * el.po: Updated Greek translation. 2004-03-16 Gareth Owen * en_GB.po: Added British translation 2004-03-16 Vincent van Adrighem * nl.po: Translation updated. 2004-03-15 Mugurel Tudor * ro.po: Updated Romanian translation by Mi?u Moldovan 2004-03-15 Nikos Charonitakis * el.po: Updated Greek translation. === gnome-vfs 2.5.91 === 2004-03-14 Robert Sedak * hr.po: Updated Croatian translation. 2004-03-13 Alexander Shopov * bg.po: Updated Bulgarian translation by Peter "Peshka" Slavov 2004-03-12 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2004-03-11 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation done by Everson Santos Araujo . 2004-03-11 Laurent Dhima * sq.po: Updated Albanian translation. 2004-03-10 Jordi Mallach * ca.po: Updated Catalan translation. 2004-03-09 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2004-03-08 Tomasz K?oczko * hr.po, ja.po: added missing Plural-Forms field in header (neccessary for current gettext). === gnome-vfs 2.5.90 === 2004-03-08 Funda Wang * zh_CN.po: Updated Simplified Chinese translation. 2004-03-06 M?tin ?mirov * az.po: Translation updated. 2004-03-06 Francisco Javier F. Serrador * es.po: Updated Spansih translation. 2004-03-01 Laurent Dhima * sq.po: Updated Albanian translation. 2004-02-29 Paisa Seeluangsawat * th.po: Added Thai translation by Sittichai Makekhuntod and me. 2004-02-29 Arafat medini * ar.po: Updated Arabic translation. 2004-02-27 Priit Laes * et.po: Translation updated. 2004-02-25 Danilo ?egan * sr@ije.po: Added Serbian Jekavian translation by Bojan Suzi? . 2004-02-25 Danilo ?egan * POTFILES.in: Removed gtk/*. 2004-02-24 Changwoo Ryu * ko.po: Updated Korean translation. 2004-02-24 Laurent Dhima * sq.po: Updated Albanian translation. 2004-02-24 Dafydd Harries * cy.po: Another update from Rhys Jones. 2004-02-23 Kostas Papadimas * el.po: Updated Greek translation. 2004-02-23 Dafydd Harries * cy.po: Fix typo: s/can/gan/. === gnome-vfs 2.5.8 === 2004-02-22 Dafydd Harries * cy.po: Translation updated by Rhys Jones, with a little work from myself. 2004-02-22 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-02-22 M?tin ?mirov * az.po: Updated Azerbaijani translation. 2004-02-22 Christian Neumair * de.po: Updated German translation. 2004-02-20 Laurent Dhima * sq.po: Fixed Albanian translation. 2004-02-18 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-02-18 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-02-18 Ole Laursen * da.po: Updated Danish translation. 2004-02-17 Sanlig Badral * mn.po: Updated Mongolian translation. 2004-02-17 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2004-02-15 M?tin ?mirov * az.po: Translation updated. 2004-02-14 Takeshi AIHANA * ja.po: Updated Japanese translation. 2004-02-13 Kjartan Maraas * no.po: Updated Norwegian translation. 2004-02-13 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-02-13 Christophe Merlet * fr.po: Updated French translation. 2004-02-13 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-02-12 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2004-02-12 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-02-12 Miloslav Trmac * cs.po: Updated Czech translation. 2004-02-12 Laurent Dhima * sq.po: Updated Albanian translation. 2004-02-12 Christian Rose * sv.po: Updated Swedish translation. 2004-02-12 Danilo ?egan * sr.po, sr@Latn.po: Reviewed and updated Serbian translation. * POTFILES.in: Added gtk/* files. === gnome-vfs 2.5.7 === 2004-02-11 Arafat Medini * ar.po: Updated Arabic translation. 2004-02-10 Pauli Virtanen * fi.po: Updated Finnish translation. 2004-02-10 Maxim Dziumanenko * uk.po: Updated Ukrainian translation. 2004-02-06 Robert Sedak * hr.po: Updated Croatian translation. 2004-02-05 Pauli Virtanen * fi.po: Updated Finnish translation. 2004-02-05 M?tin ?mirov * az.po: Translation updated. 2004-02-02 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2002-02-01 Hasbullah Bin Pit * ms.po: Updated Malay translation. 2004-02-01 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-01-31 Laurent Dhima * sq.po: Updated Albanian translation. 2004-01-31 Takeshi AIHANA * ja.po: Updated Japanese translation. === gnome-vfs 2.5.6 === 2004-01-30 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-01-30 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-01-30 Changwoo Ryu * ko.po: Updated Korean translation. 2004-01-28 Kjartan Maraas * no.po: Updated Norwegian translation. 2004-01-28 Miloslav Trmac * cs.po: Fixed Czech translation. 2004-01-27 ?smund Skj?veland * nn.po: Updated Norwegian Nynorsk translation. 2004-01-26 Alastair McKinstry * ga.po: Make Irish translation consistent with other gnome translations. 2004-01-25 Christian Neumair * de.po: Updated German translation. 2004-01-23 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2004-04-20 Alastair McKinstry * ga.po: Updated Irish translation. 2004-01-21 Changwoo Ryu * ko.po: Updated Korean translation. 2004-01-19 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-01-18 Christian Rose * .cvsignore: Sorted and added one entry. * POTFILES.skip: Removed a no longer existing entry. * sv.po: Updated Swedish translation. 2004-01-18 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-01-17 Pablo Saratxaga * wa.po: Updated Walloon file 2004-01-17 Christophe Merlet * fr.po: Updated French translation. 2004-01-16 Kjartan Maraas * no.po: Updated Norwegian translation. 2004-01-15 Laurent Dhima * sq.po: Updated Albanian translation. 2004-01-15 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-01-15 Miloslav Trmac * cs.po: Updated Czech translation. 2004-01-15 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2004-01-14 Christian Neumair * de.po: Updated German translation. 2004-01-14 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-01-13 Kjartan Maraas * no.po: Updated Norwegian translation. 2004-01-13 Vincent van Adrighem * nl.po: Translation updated. 2004-01-13 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-01-12 Takeshi AIHANA * ja.po: Updated Japanese translation. 2004-01-12 Miloslav Trmac * cs.po: Updated Czech translation. === gnome-vfs 2.5.5 === 2004-01-12 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2004-01-11 Christophe Merlet * fr.po: Updated French translation. 2004-01-11 Kjartan Maraas * POTFILES.in: Added missing files. * POTFILES.skip: Added generated file. * no.po: Updated Norwegian translation. 2004.01.09 Arafat Medini * ar.po: Updated Arabic translation 2004-01-09 Changwoo Ryu * ko.po: Updated Korean translation. 2004-01-08 Sanlig Badral * mn.po: Updated Mongolian translation. 2004-01-03 Christophe Merlet * fr.po: Updated French translation from Baptiste Mille-Mathias . 2003-12-31 ?ygimantas Beru?ka * lt.po: Updated Lithuanian translation by Tomas Kuliavas. 2003-12-29 Artur Flinta * pl.po: Updated Polish translation. 2003-12-29 Christian Rose * hr.po: Updated Croatian translation by Robert Sedak . 2003-12-29 Takeshi AIHANA * ja.po: Updated Japanese translation. === gnome-vfs 2.5.4.1 === === gnome-vfs 2.5.4 === 2003-12-27 Ole Laursen * da.po: Updated Danish translation. 2002-12-27 Hasbullah Bin Pit * ms.po: Updated Malay translation. 2003-12-25 Duarte Loreto * pt.po: Updated Portuguese translation. 2003-12-23 ?smund Skj?veland * nn.po: Updated Norwegian Nynorsk translation: merged translations from GNOME 2.6 branch with 2.4 branch. 2003-12-23 ?smund Skj?veland * nn.po: Updated Norwegian Nynorsk translation. 2003-12-23 Kostas Papadimas * el.po: Updated Greek translation. 2003-12-21 Christian Rose * sv.po: Updated Swedish translation somewhat. 2003-12-21 Christian Neumair * de.po: Updated German translation. 2003-12-20 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-12-20 Miloslav Trmac * cs.po: Updated Czech translation. 2003-12-20 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2003-12-20 Arafat Medini * ar.po: Updated Arabic translation 2003-12-20 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2003-12-19 Christian Neumair * de.po: Updated German translation. 2003-12-19 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2003-12-17 Ales Nyakhaychyk * be.po: Updated Belarusian translation. 2003-12-16 Christian Rose * sv.po: Updated Swedish translation. 2003-12-14 Takeshi AIHANA * ja.po: Updated Japanese translation. 2003-12-14 Kjartan Maraas * no.po: Updated Norwegian translation. 2003-12-13 Christian Rose * sv.po: Updated Swedish translation. 2003-12-11 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2003-12-08 Miloslav Trmac * cs.po: Updated Czech translation. 2003-12-08 Alessio Frusciante * it.po: Updated Italian translation. === gnome-vfs 2.5.3 === 2003-12-07 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2003-12-07 Duarte Loreto * pt.po: Updated Portuguese translation. 2003-12-07 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-12-05 Mark McLoughlin * POTFILES.in: add desktop_gnome_url_handlers.schemas. 2003-12-04 Christian Neumair * POTFILES.skip: Added missing files. * de.po: Updated German translation. 2003-12-04 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-12-04 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-12-03 Duarte Loreto * pt.po: Updated and revised Portuguese translation. 2003-11-27 Kjartan Maraas * no.po: Update Norwegian translation. 2003-11-24 Pablo Gonzalo del Campo * es.po: Updated Spanish translation by Francisco Javier F. Serrador . === gnome-vfs 2.5.2 === 2003-11-21 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-11-19 Miloslav Trmac * cs.po: Updated Czech translation. 2003-11-19 ?smund Skj?veland * nn.po: Updated Norwegian Nynorsk translation. 2003-11-18 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2002-11-16 Hasbullah Bin Pit * ms.po: Updated Malay translation. 2003-11-15 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. * POTFILES.in: Added missing files. 2003-11-15 Arkadiusz Lipiec * pl.po: Updated polish translation by GNOME PL Team 2003-11-11 Pablo Gonzalo del Campo * es.po: Updated Spanish translation by Francisco Javier F. Serrador . 2003-11-10 Pablo Gonzalo del Campo * es.po: Updated Spanish translation by Francisco Javier F. Serrador . === gnome-vfs 2.5.1 === 2003-11-02 Kostas Papadimas * el.po: Updated Greek translation. 2003-10-31 Christian Neumair * de.po: Updated German translation. 2003-10-28 KAMAGASAKO Masatoshi * ja.po: Updated Japanese translation. 2003-10-20 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-10-18 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2003-10-18 Christian Rose * POTFILES.in: Added missing file. * sv.po: Updated Swedish translation. 2003-10-17 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-10-16 Vincent van Adrighem * nl.po: Dutch translation updated by Vincent van Adrighem. 2003-10-06 Christian Rose * mr.po: Added Marathi translation by Jitendra Shah . 2003-10-05 Christian Rose * sv.po: Updated Swedish translation. 2003-10-04 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2003-09-30 Gustavo Maciel Dias Vieira * pt_BR.po: Applied revision by Augusta Marques da Silva . 2003-09-22 Alexander Larsson * POTFILES.in: Added schemas.in files 2003-09-11 Gil "Dolfin" Osher * he.po: Updated Hebrew translation. 2003-09-11 Fatih Demir * ta.po: Committed Tamil translation by Dinesh. 2003-09-09 Mugurel Tudor * ro.po: Updated Romanian translation by Mi?u Moldovan 2003-09-09 Roozbeh Pournader * eu.po, ga.po, lt.po, ro.po: Converted to UTF-8. 2003-09-09 Vincent van Adrighem * nl.po: Dutch translation updated. === gnome-vfs 2.4.0 === 2003-09-03 Kostas Papadimas * el.po: Updated Greek translation. === gnome-vfs 2.3.90 === 2003-09-01 Christian Rose * ne.po: Added Nepali translation by Kshitij . 2003-08-31 Laurent Dhima * sq.po: Updated Albanian translation. 2003-08-30 Christophe Merlet * fr.po: Updated French translation. 2003-08-28 Pablo Gonzalo del Campo * es.po: Revision of Spanish translation by Francisco Javier F. Serrador . 2003-08-28 Dafydd Harries * cy.po: Updated Welsh translation. 2003-08-27 Vincent van Adrighem * nl.po: Dutch translation updated. === gnome-vfs 2.3.8 === 2003-08-25 Guntupalli Karunakar * hi.po: Updated Hindi translation. 2003-08-25 Takeshi AIHANA * ja.po: Updated Japanese translation. 2003-08-24 Wang Jian * zh_CN.po: Updated Simplified Chinese translation by Funda Wang . 2003-08-23 Metin Amiroff * az.po: Updated Azerbaijani translation. 2003-08-22 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2003-08-22 Changwoo Ryu * ko.po: Updated Korean translation. 2003-08-21 Ole Laursen * da.po: Updated Danish translation. 2003-08-21 Sanlig Badral * mn.po: Updated Mongolian translation. 2003-08-20 Kjartan Maraas * no.po: Update Norwegian translation. 2003-08-18 Metin Amiroff * az.po: Updated Azerbaijani translation. 2003-08-15 Duarte Loreto * pt.po: Updated Portuguese translation. 2003-08-14 Miloslav Trmac * cs.po: Updated Czech translation. 2003-08-14 Dafydd Harries * cy.po: Updated Welsh translation. 2003-08-14 Danilo ?egan * be.po: Updated Belarusian translation by Ales Nyakhaychyk . 2003-08-14 Artur Flinta * pl.po: Updated Polish translation. 2003-08-14 Danilo ?egan * sr.po, sr@Latn.po: Updated Serbian translation. 2003-08-11 Laurent Dhima * sq.po: Updated Albanian translation. 2003-08-10 Changwoo Ryu * ko.po: Updated Korean translation. 2003-08-09 Gil "Dolfin" Osher * he.po: Updated Hebrew translation. 2003-08-09 Wang Jian * zh_CN.po: Updated Simplified Chinese translation by Funda Wang . 2003-08-09 Takeshi AIHANA * ja.po: Updated Japanese translation. 2003-08-08 Vincent van Adrighem * nl.po: Dutch translation updated. 2003-08-07 Miloslav Trmac * cs.po: Updated Czech translation. 2003-08-07 Pablo Gonzalo del Campo * es.po: Updated Spanish translation by Francisco Javier F. Serrador . 2003-08-07 Guntupalli Karunakar * hi.po: Updated Hindi translation 2003-08-07 Dmitry G. Mastrukov * be.po: Updated Belarusian translation from Belarusian team . 2003-08-05 Ole Laursen * da.po: Updated Danish translation. 2003-08-04 Artur Flinta * pl.po: Updated Polish translation. 2003-08-04 Duarte Loreto * pt.po: Updated Portuguese translation. === gnome-vfs 2.3.7 === 2003-08-04 Dafydd Harries * cy.po: Updated Welsh translation. 2003-08-04 Danilo ? egan * sr.po, sr@Latn.po: Updated Serbian translation by Serbian team (Prevod.org). 2003-08-04 Christian Rose * sv.po: Updated Swedish translation. === gnome-vfs 2.3.6 === 2003-07-27 Alessio Frusciante * it.po: Updated Italian translation. 2003-07-24 Pablo Saratxaga * vi.po: Updated Vietnamese file 2003-07-22 Danilo ? egan * sr.po, sr@Latn.po: Updated Serbian translation by Serbian team (Prevod.org). 2003-07-12 Pablo Saratxaga * wa.po: Updated Walloon file 2003-07-10 Joel Brich * eo.po: Added Esperanto translation from Charles Voelger 2003-07-05 Andras Timar * hu.po: Updated Hungarian translation. 2003-07-03 Alessio Frusciante * it.po: Updated Italian translation by Luca Ferretti . 2003-07-01 Laurent Dhima * sq.po: Updated Albanian translation. 2003-06-29 Pablo Saratxaga * wa.po: Updated Walloon file 2003-06-27 Artur Flinta * pl.po: Updated Polish translation. === gnome-vfs 2.3.5 === 2003-06-22 Metin Amiroff * az.po: Updated Azerbaijani translation. 2003-06-20 Sam?el J?n Gunnarsson * is.po: Updated Icelandic translation 2003-06-18 Dmitry G. Mastrukov * ru.po: Updated Russian translation from Russian team . 2003-06-17 Pauli Virtanen * fi.po: Updated Finnish translation. 2003-06-12 Guntupalli Karunakar * ml.po: Updated Malayalam translation. 2003-06-12 Mohammad DAMT * id.po: Updated Indonesian translation ==== gnome-vfs 2.3.4 ==== 2003-06-05 Mathieu van Woerkom * li.po: Added Limburgish translation ==== gnome-vfs 2.3.3 ==== 2003-05-30 Vincent van Adrighem * nl.po: Dutch translation updated. 2003-05-28 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation done by David Barzilay . 2003-05-27 Abel Cheung * zh_TW.po: Updated traditional Chinese translation. 2003-05-19 Ole Laursen * da.po: Updated Danish translation. 2003-05-19 Arafat Medini * ar.po: Updated Arabic translation by Arabeyes 2003-05-19 Telsa Gwymnne * cy.po: Updated Welsh translation from Dafydd Harries ==== gnome-vfs 2.3.2 ==== 2003-05-17 Christophe Merlet * fr.po: Updated French translation. 2003-05-15 Dmitry G. Mastrukov * be.po: Updated Belarusian translation from Belarusian team . 2003-05-10 Jordi Mallach * ca.po: Updated Catalan translation. 2003-05-09 Telsa Gwynne * cy.po: Added Welsh translation from gnome-cy and Kyfieithu contributors. 2003-05-08 Pablo Gonzalo del Campo * es.po: Updated Spanish translation by Juan Manuel Garc?a Molina 2003-05-08 Sam?el J?n Gunnarsson * is.po: Added Icelandic translation. 2003-05-08 Dmitry G. Mastrukov * be.po: Updated Belarusian translation from Belarusian team . 2003-05-06 Danilo ? egan * sr.po, sr@Latn: Added Serbian translation by http://Prevod.org/. 2003-05-05 Duarte Loreto * pt.po: Updated Portuguese translation. 2003-05-05 Christian Neumair * de.po: Updated German translation. ==== gnome-vfs 2.3.1 ==== 2003-05-04 Christophe Merlet * fr.po: Updated French translation. 2003-05-04 Abel Cheung * zh_TW.po: Updated traditional Chinese translation. 2003-05-01 Changwoo Ryu * ko.po: Updated Korean translation. 2003-04-30 Takeshi AIHANA * ja.po: Updated Japanese translation. 2003-04-29 Miloslav Trmac * cs.po: Updated Czech translation. 2003-04-29 Gil "Dolfin" Osher * he.po: Updated Hebrew translation. 2003-04-29 Christian Rose * sv.po: Updated Swedish translation. 2003-04-24 Abel Cheung * zh_TW.po: Updated traditional Chinese translation. 2003-04-17 HideToshi Tajima * POTFILES.in: Added cdemenu-desktop-method.c. Fixes bug #103306. Translators, please translate these messages exactly the same in CDE's sys.dtwmrc file of the locale. ==== gnome-vfs 2.2.4 ==== 2003-03-26 Christian Rose * yi.po: Added Yiddish translation by Raphael Finkel . 2003-03-20 Guntupalli Karunakar * ml.po: Added Malayalam translation by FSF-India 2003-03-14 Jo?=ABl Brich * eo.po: Added Esperanto translation by Charles Voelger ==== gnome-vfs 2.2.3 ==== 2003-02-25 Taneem Ahmed * bn.po: Added Bangla/Bengali translation by Sayamindu Dasgupta 2003-02-21 Metin Amiroff * az.po: Updated Azerbaijani translation. 2003-02-18 Roozbeh Pournader * fa.po: Added Persian translation. 2003-02-14 Takeshi AIHANA * ja.po: Updated Japanese translation. 2003-02-13 Dmitry G. Mastrukov * be.po: Updated Belarusian translation from Belarusian team . ==== gnome-vfs 2.2.2 ==== ==== gnome-vfs 2.2.1 ==== 2003-02-06 Christian Rose * id.po: Added Indonesian translation by Mohammad Damt . 2003-02-01 Duarte Loreto * pt.po: Updated Portuguese translation. 2003-01-27 Yuriy Syrota * uk.po: Updated Ukrainian translation. 2003-01-25 Gustavo Noronha Silva * pt_BR.po: translation update. 2003-01-24 Yanko Kaneti * bg.po: Updated Bulgarian translation by Alexander Shopov . 2003-01-22 Pablo Saratxaga * vi.po: Updated Vietnamese file 2003-01-22 Christian Rose * mn.po: Added Mongolian translation by Sanlig Badral . 2003-01-21 Abel Cheung * zh_TW.po: Updated traditional Chinese translation. ==== gnome-vfs 2.2.0 ==== 2003-01-15 Fatih Demir * tr.po: Committed updated Turkish translation by Sinan. 2003-01-14 Naba Kumar * hi.po: Updated Hindi translation from Anurag Seetha ==== gnome-vfs 2.1.91 ==== 2003-01-10 Pablo Gonzalo del Campo * es.po: Fixed a couple of strings in Spanish translation. 2003-01-09 Laurent Dhima * sq.po: Updated Albanian translation. 2003-01-09 Dmitry G. Mastrukov * ru.po: updated Russian translation from Russian team . 2003-01-07 Daniel Yacob * am.po: Updated Amharic translation. 2003-01-07 Kostas Papadimas * el.po: Updated Greek translation. 2003-01-06 Vincent van Adrighem * nl.po: Dutch translation updated by Tino Meinen. ==== gnome-vfs 2.1.6 ==== 2003-01-05 Pauli Virtanen * fi.po: Updated Finnish translation. 2003-01-04 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2003-01-04 Christian Neumair * de.po: Updated German translation. 2003-01-03 Yanko Kaneti * bg.po: Updated Bulgarian translation by Alexander Shopov. 2003-01-02 Zbigniew Chyla * pl.po: Updated Polish translation by GNOME PL Team . 2002-12-22 Artis Trops * lv.po: Updated Latvian translation. 2002-12-20 Jordi Mallach * ca.po: Updated Catalan translation. 2002-12-19 Christophe Merlet * fr.po: Updated French translation. 2002-12-19 Andras Timar * hu.po: Updated Hungarian translation. 2002-12-19 Christian Rose * sv.po: Updated Swedish translation. 2002-12-17 German Poo Caaman~o * es.po: Updates Spanish translation 2002-12-17 Christian Rose * sv.po: Updated Swedish translation. ==== gnome-vfs 2.1.5 ==== 2002-12-15 Hasbullah Bin Pit * ms.po: Updated Malay Translation. 2002-12-15 Ole Laursen * da.po: Updated Danish translation. 2002-12-14 Christophe Merlet * fr.po: Updated French translation. 2002-12-14 Kjartan Maraas * no.po: Updated Norwegian translation. 2002-12-13 Daniel Yacob * am.po: Added Amharic translation. 2002-12-13 Miloslav Trmac * cs.po: Updated Czech translation. 2002-12-11 Laurent Dhima * sq.po: Updated Albanian translation. 2002-12-11 Pauli Virtanen * fi.po: Updated Finnish translation. ==== gnome-vfs 2.1.4 ==== 2002-12-07 Andras Timar * hu.po: Updated Hungarian translation. 2002-11-30 Ole Laursen * da.po: Updated Danish translation. 2002-11-27 Jody Goldberg * Release 2.1.3.1 2002-11-25 Vincent van Adrighem * nl.po: Massive copy-paste from stable branch. 2002-11-15 Kjartan Maraas * no.po: Updated Norwegian translation. 2002-11-12 Laurent Dhima * sq.po: Added Albanian translation. 2002-11-04 Hasbullah Bin Pit * ms.po: Updated Malay Translation. 2002-11-03 Dmitry G. Mastrukov * be.po: Added Belarusian translation * from Belarusian team . 2002-11-01 Christian Rose * sv.po: Updated Swedish translation. 2002-07-28 Christophe Merlet * fr.po: Updated French translation from contribution of Sun G11n . 2002-07-25 Pablo Saratxaga * bs.po: Added Bosnian file 2002-06-11 Abel Cheung * zh_TW.po: Updated traditional Chinese translation. 2002-06-07 Jordi Mallach * ca.po: Updated Catalan translation. 2002-06-05 Tivo Leedj=EF?=BDv * et.po: Updated Estonian translation. 2002-06-05 Yanko Kaneti * bg.po (added): Bulgarian translation by Borislav Aleksandrov . 2002-06-02 Germ=EF?=BD Poo Caamao * es.po: Updated translation from Juan Manuel Garc=EF?=BD Molina 2002-06-01 Carlos Perell Mar=EF?=BD * es.po: Recoded as UTF-8 2002-06-01 Jesus Bravo Alvarez * gl.po: Updated Galician translation 2002-05-29 Vincent van Adrighem * nl.po: Updated Dutch translation (by Tino Meinen). 2002-05-19 Vlad Harchev * ru.po: updated russian translation from Dmitry G. Mastrukov . 2002-05-10 Valek Filippov * ru.po: updated russian translation from Dmitry Mastrukov. 2002-05-10 Naba Kumar * hi.po: New Hindi translation added. 2002-05-06 Seth Nickell reviewed by: * az.po: * ca.po: * da.po: * de.po: * el.po: * es.po: * et.po: * fi.po: * fr.po: * ga.po: * gl.po: * hu.po: * it.po: * ja.po: * ko.po: * lt.po: * ms.po: * nl.po: * nn.po: * no.po: * pl.po: * pt.po: * pt_BR.po: * ro.po: * ru.po: * sk.po: * sl.po: * sv.po: * tr.po: * uk.po: * wa.po: * zh_CN.po: * zh_TW.po: 2002-05-05 Duarte Loreto * pt.po: Updated Portuguese translation and converted to UTF-8. 2002-04-30 Pablo Saratxaga * vi.po: Added Vietnamese file 2002-04-29 Pablo Saratxaga * eu.po: Added Basque file * wa.po: Updated Walloon file 2002-04-28 Christophe Merlet * fr.po: Updated French translation and converted to UTF-8. 2002-04-24 Benedikt Roth * hu.po: Patch from andras@dns.net (Andras Salamon). 2002-04-22 Jody Goldberg * Release 1.9.12 2002-04-09 Valek Filippov * ru.po: updated russian translation from Dmitry Mastrukov. 2002-03-28 Kjartan Maraas * no.po: Updated Norwegian translation. 2002-03-27 Seth Nickell reviewed by: * az.po: * ca.po: * da.po: * de.po: * el.po: * es.po: * et.po: * fi.po: * fr.po: * ga.po: * gl.po: * hu.po: * it.po: * ja.po: * ko.po: * lt.po: * ms.po: * nl.po: * nn.po: * no.po: * pl.po: * pt.po: * pt_BR.po: * ro.po: * ru.po: * sk.po: * sl.po: * sv.po: * tr.po: * uk.po: * wa.po: * zh_CN.po: * zh_TW.po: 2002-03-15 Valek Filippov * ru.po: updated russian translation. 2002-03-12 Changwoo Ryu * ko.po: Updated Korean translation and converted to UTF-8. 2002-03-10 Christian Rose * POTFILES.skip: Created (containing modules/efs-method.c). * POTFILES.in: Remove modules/efs-method.c. 2002-03-09 Changwoo Ryu * ko.po: Updated Korean translation. 2002-03-03 Christian Meyer * de.po: Updated German translation. 2002-03-03 Kjartan Maraas * no.po: Updated Norwegian translation. 2002-02-27 Christian Meyer * de.po: Updated German translation. 2002-02-25 Christian Rose * sv.po: Updated Swedish translation. 2002-02-23 Zbigniew Chyla * pl.po: Updated Polish translation by GNOME PL Team . 2002-02-23 Fatih Demir * tr.po: Committed updated Turkish translatio by Sinan. 2002-02-17 Wang Jian * zh_CN.po: Updated Simplified Chinese translation by Wang Jian. 2002-02-14 Tivo Leedj=EF?=BDv * et.po: Added Estonian translation. 2002-02-12 Kjartan Maraas * no.po: Updated Norwegian translation. 2002-02-10 Kjartan Maraas * no.po: Updated Norwegian translation. 2002-02-09 Pauli Virtanen * fi.po: Updated Finnish translation and converted it to UTF-8. 2002-02-08 Duarte Loreto * pt.po: Updated Portuguese translation. 2002-02-04 Seth Nickell reviewed by: * az.po: * ca.po: * da.po: * de.po: * el.po: * es.po: * fi.po: * fr.po: * ga.po: * gl.po: * hu.po: * it.po: * ja.po: * ko.po: * lt.po: * nl.po: * nn.po: * no.po: * pl.po: * pt.po: * pt_BR.po: * ro.po: * ru.po: * sk.po: * sl.po: * sv.po: * tr.po: * uk.po: * wa.po: * zh_CN.po: * zh_TW.po: 2002-02-03 Hasbullah Bin Pit * ms.po: Updated Malay Translation. 2002-01-30 Ole Laursen * da.po: Updated Danish translation and converted it to UTF-8. 2002-01-30 Seth Nickell reviewed by: * az.po: * ca.po: * da.po: * de.po: * el.po: * es.po: * fi.po: * fr.po: * ga.po: * gl.po: * hu.po: * it.po: * ja.po: * ko.po: * lt.po: * nl.po: * nn.po: * no.po: * pl.po: * pt.po: * pt_BR.po: * ro.po: * ru.po: * sk.po: * sl.po: * sv.po: * tr.po: * uk.po: * wa.po: * zh_CN.po: * zh_TW.po: 2002-01-30 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2002-01-30 Roy-Magne Mo * nn.po: Updated and converted to UTF-8 2002-01-29 Christophe Merlet * fr.po: Updated French translation. 2002-01-28 jacob berkman * POTFILES.in: remove efs-method.c 2002-01-28 Kjartan Maraas * no.po: Updated Norwegian translation. 2002-01-27 Christian Rose * POTFILES.in: Sorted and added missing files. * sv.po: Updated Swedish translation. 2002-01-27 Christian Rose * sv.po: Converted to UTF-8. 2002-01-19 Hasbullah Bin Pit * ms.po: Added Malay Translation by Mohamad Afifi Omar (App) and me.. 2001-12-16 Duarte Loreto * pt.po: Added Portuguese translation. 2001-11-30 Roy-Magne Mo * nn.po: Updated Norwegian (nynorsk) translation. 2001-11-21 Wang Jian * zh_CN.po: Added Simplified Chinese translation by Lou Bingyong , UTF-8. 2001-11-19 Pablo Saratxaga * az.po: Updated Azeri file * wa.po: Updated Walloon file 2001-11-08 Fatih Demir * tr.po: Committed updated Turkish translation by Sinan. 2001-11-02 Maciej Stachowiak * az.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, ga.po, gl.po, hu.po, it.po, ja.po, ko.po, lt.po, nl.po, nn.po, no.po, pl.po, pt_BR.po, ro.po, ru.po, sk.po, sl.po, sv.po, tr.po, uk.po, wa.po, zh_TW.po: Updated by make distcheck. 2001-11-02 Maciej Stachowiak * POTFILES.in: files from libgnomevfs-pthread have been moved 2001-11-01 Seth Nickell * POTFILES.in, az.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, ga.po, gl.po, hu.po, it.po, ja.po, ko.po, lt.po, nl.po, nn.po, no.po, pl.po, pt_BR.po, ro.po, ru.po, sk.po, sl.po, sv.po, tr.po, uk.po, wa.po, zh_TW.po: Lose the MIME translations. 2001-10-29 Christian Rose * sv.po: Updated Swedish translation. 2001-10-25 Christophe Merlet * fr.po: Updated French translation. 2001-10-20 Pablo Saratxaga * az.po: Updated Azeri file 2001-10-13 Valek Filippov * ru.po: updated russian translation. 2001-10-13 Christophe Merlet * fr.po: Updated French translation. 2001-09-25 Pablo Saratxaga * az.po: Updated Azeri file 2001-09-24 Gediminas Paulauskas * lt.po: Updated Lithuanian translation. 2001-09-09 Pablo Saratxaga * wa.po: Updated Walloon file * ca.po: Updated Catalan file 2001-09-08 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation. 2001-09-07 Stanislav Visnovsky * sk.po: Small update. 2001-08-27 Abel Cheung * zh_TW.Big5.po: Renamed to... * zh_TW.po: this. Converted to UTF8 as well. 2001-08-24 Andras Timar * hu.po: Updated Hungarian translation. 2001-08-03 Seth Nickell reviewed by: * az.po: * ca.po: * da.po: * de.po: * el.po: * es.po: * fi.po: * fr.po: * ga.po: * gl.po: * hu.po: * it.po: * ja.po: * ko.po: * lt.po: * nl.po: * nn.po: * no.po: * pl.po: * pt_BR.po: * ro.po: * ru.po: * sk.po: * sl.po: * sv.po: * tr.po: * uk.po: * wa.po: 2001-07-29 Christian Meyer * de.po: Updated German translation. 2001-07-17 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-07-15 Kjartan Maraas * nn.po: Updated Norwegian (nynorsk) translation. 2001-07-13 Fatih Demir * tr.po: Updated Turkish translation. 2001-07-08 Akira TAGOH * Updated Japanese translation. 2001-07-02 Christopher R. Gabriel * it.po: Updated italian translation. 2001-06-28 Kjartan Maraas * no.po: Updated Norwegian translation. 2001-06-22 Christophe Merlet * fr.po: Updated French translation. 2001-06-16 Wang Jian * zh_TW.Big5.po: Added by Joe Man 2001-06-13 Carlos Perells Marmn * es.po: /s/vaciado de memoria/volcado de memoria Thanks Eduardo Ferro 2001-06-10 Ole Laursen * da.po: Updated Danish translation. 2001-06-08 Fatih Demir * tr.po: Committed updated Turkish translation by Sinan. 2001-06-02 Christian Rose * sv.po: Updated Swedish translation. 2001-05-24 Christian Meyer * de.po: Updated German translation. Kai when do you finally learn to write Changelogs? 2001-05-23 Robin * Slomkowski * az.po: * ca.po: * da.po: * de.po: * el.po: * es.po: * fi.po: * fr.po: * ga.po: * gl.po: * hu.po: * it.po: * ja.po: * ko.po: * lt.po: * nl.po: * nn.po: * no.po: * pl.po: * pt_BR.po: * ro.po: * ru.po: * sk.po: * sl.po: * sv.po: * tr.po: * uk.po: * wa.po: removed all refrences to the non-ascii mu in the description and replaced it with ascii mu to make gettext happy 2001-04-28 Ole Laursen * da.po: Major overhaul. 2001-04-27 Ole Laursen * da.po: Fixed a few strings. 2001-04-25 Changwoo Ryu * ko.po: Updated Korean translation, by . 2001-03-12 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation. 2001-03-09 Jesus Bravo Alvarez * gl.po: From gnome-vfs-1-0 branch. 2001-03-08 Mauricio Araya P. * es.po: Updated Spanish translation. 2001-03-07 Ole Laursen * da.op: Updated Danish Translation. 2001-03-07 Christian Rose * sv.po: Updated Swedish translation. 2001-03-06 Darin Adler Merged all changes back here from the gnome-vfs-1 branch. === start of changes from gnome-vfs-1 branch ==== 2001-03-06 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-03-06 Pauli Virtanen * fi.po: Updated Finnish translation. 2001-03-05 Szabolcs Ban * hu.po: Update by Andras Timar 2001-03-04 Szabolcs Ban * hu.po: Update by Andras Timar 2001-03-02 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-03-01 Simos Xenitellis * el.po: Update of Greek translation. 2001-03-01 Christophe Merlet * fr.po: Updated French translation. 2001-03-01 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-27 Simos Xenitellis * el.po: Update of Greek translation. 2001-02-27 Darin Adler More attempt to clean up the carnage caused by running xml-i18n-prepare. * POTFILES.in: Sort files. * de.po: * fr.po: * it.po: * ko.po: * pt_BR.po: * sv.po: * uk.po: Removed duplicate entries. 2001-02-27 Pablo Saratxaga * ca.po: Updated Catalan file * wa.po: Added Walloon file * da.po,el.po: removed duplicate entries * nn.po,sl.po: fixed charset= value in header 2001-02-26 Rebecca Schulman * POTFILES.in: * da.po: * de.po: * el.po: * fi.po: * fr.po: * it.po: * ko.po: * no.po: * pt_BR.po: * sk.po: * sv.po: * tr.po: * uk.po: Add translations that were formerly in file-types-capplet.desktop to the po files using xml-i18n-prepare 2001-02-27 Jarkko Ranta * fi.po: Updated Finnish translation by Pauli Virtanen. 2001-02-26 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-26 Pablo Saratxaga * az.po: Added Azeri file * {ga,sl,tr,nl,no,pl,ro}.po: enabled/fixed headers 2001-02-26 Szabolcs Ban * hu.po: Update by Greg 2001-02-26 Christophe Merlet * update.sh: Removed (Don't work with xml-i18n-tools >= 0.8.1) * fr.po: Updated French translation. 2001-02-25 Christian Rose * sv.po: Updated Swedish translation. 2001-02-24 Marius Andreiana * ro.po: added 2001-02-24 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-02-24 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-23 Christophe Merlet * fr.po: Updated French translation. 2001-02-22 Simos Xenitellis * el.po: Updated Greek translation. 2001-02-22 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-21 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation. 2001-02-21 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-21 Fatih Demir * ko.po: Committed updated Korean translation. 2001-02-21 Christian Rose * sv.po: Updated Swedish translation. 2001-02-20 Matthias Warkus * de.po: Updated for beta and Nautilus release. 2001-02-20 Christophe Merlet * fr.po: Updated French translation. 2001-02-19 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-02-18 Simos Xenitellis * el.po: Updated Greek Translation. 2001-02-18 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation. 2001-02-16 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-15 Kjartan Maraas * nn.po: Added Norwegian (nynorsk) translation. 2001-02-15 Christopher R. Gabriel * it.po: Updated italian translation 2001-02-14 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-14 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-02-14 Martin Norbdck * sv.po: Updated Swedish translation. 2001-02-14 Simos Xenitellis * el.po: Updated Greek translation. 2001-02-13 Szabolcs Ban * hu.po: Update and fixes by Emese 2001-02-13 Christophe Merlet * fr.po: Updated French translation. 2001-02-11 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-09 Stanislav Visnovsky * sk.po: Updated Slovak translation. === end of changes from gnome-vfs-1 branch === 2001-02-28 Mauricio Araya P. * es.po: Updated Spanish translation. 2001-02-26 Szabolcs Ban * hu.po: Update by Greg 2001-02-24 Marius Andreiana * ro.po: added 2001-02-19 Pablo Saratxaga * az.po: Added Azeri file 2001-02-13 Pauli Virtanen * fi.po: Updated Finnish translation. 2001-02-13 Christophe Merlet * fr.po: Updated French translation. 2001-02-10 Simos Xenitellis * el.po: Added Greek translation. 2001-02-09 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-02-05 Fatih Demir * tr.po: Committed updated Turkish translation by Sinan Imamoglu. 2001-02-05 Christophe Merlet * fr.po: Updated French translation. * update.pl: Removed this script and replaced by... * update.sh: Added this xml-i18n compatible script. 2001-02-05 Mauricio Araya P. * es.po: Updated Spanish translation. 2001-02-04 Fatih Demir * tr.po: Committed updated Turkish translation by Gvrkem Cetin. 2001-02-02 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-02-01 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-01-31 Szabolcs Ban * hu.po: Terminology fixes by Andras Timar 2001-01-31 Szabolcs Ban * hu.po: Updated Hungarian translations 2001-01-29 Kjartan Maraas * no.po: Updated Norwegian translation. 2001-01-29 Martin Norbdck * sv.po: Updated Swedish translation. 2001-01-27 Fatih Demir * ko.po: Committed updated Korean translation. 2001-01-25 Szabolcs Ban * hu.po: Updated Hungarian translations 2001-01-24 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-01-24 Szabolcs Ban * hu.po: Tons of fixes by Andras and Emese (spelling, terminology, headers) 2001-01-23 Martin Norbdck * sv.po: Updated Swedish translation. 2001-01-23 Valek Filippov * ru.po: updated russian translation. 2001-01-22 Christian Rose * sv.po: Updated Swedish translation. 2001-01-22 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-01-20 Fatih Demir * ko.po: Committed updated Korean translation. 2001-01-18 Martin Norbdck * sv.po: Updated Swedish translation. 2001-01-18 Kenneth Christiansen * POTFILES.in: Updated * da.po, fi.po, fr.po, no.po, sv.po: All updated to include translations from the gnome-vfs.keys file. All extracted with a script of mine. 2001-01-18 Kjartan Maraas * no.po: Updated Norwegian (bokmel) translation. 2001-01-11 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2001-01-10 Christophe Merlet * fr.po: Updated French translation. 2001-01-09 Valek Filippov * ru.po: updated russian translation. 2001-01-03 Christian Rose * sv.po: Updated Swedish translation. 2001-01-03 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2000-12-31 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-12-31 Pauli Virtanen * fi.po: Updated Finnish translation. 2000-12-27 Kai Lahmann * de.po: Updated German translation 2000-12-20 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2000-12-18 Christopher R. Gabriel * it.po: Updated italian translation 2000-12-13 Valek Filippov * ru.po: updated russian translation. 2000-12-13 Christian Rose * sv.po: Updated Swedish translation. 2000-12-11 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-12-06 Fatih Demir * ko.po: Committed updated Korean translation. 2000-12-05 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-12-03 Kai Lahmann * de.po: Updated German translation 2000-11-24 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-11-21 Valek Filippov * ru.po: updated russian translation. 2000-11-20 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2000-11-20 Christian Rose * sv.po: Updated Swedish translation. 2000-11-17 Christian Rose * sv.po: Updated Swedish translation. 2000-11-16 Matthias Warkus * de.po: Update. 2000-11-14 Valek Filippov * ru.po: updated russian translation. 2000-11-14 Stanislav Visnovsky * sk.po: Updated Slovak translation. 2000-11-14 Christopher R. Gabriel * it.po: Updated italian translation 2000-11-13 Christian Rose * sv.po: Updated Swedish translation. 2000-11-11 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-11-09 Szabolcs BAN * hu.po: Updated. 2000-11-08 Yukihiro Nakai * sk.po: Update Slovak translation from Stanislav Visnovsky. 2000-11-05 Yukihiro Nakai * sk.po: Intial Slovak translation from Stanislav Visnovsky. 2000-11-03 Kai Lahmann * de.po: Updated German translation 2000-11-03 Christian Rose * sv.po: Updated Swedish translation. 2000-11-02 Valek Filippov * ru.po: updated russian translation. 2000-10-21 Zbigniew Chyla * pl.po: Updated Polish translation. 2000-10-17 Jarkko Ranta * fi.po: Updated Finnish Translation 2000-10-12 Fatih Demir * tr.po: Updated the Turkish translation ( yes, the update was done with gtranslator ). 2000-09-28 Christophe Merlet * fr.po: Updated French translation. 2000-09-14 Christian Rose * sv.po: Updated Swedish translation. 2000-09-13 Christian Rose * sv.po: Updated Swedish translation. 2000-09-12 Christian Rose * sv.po: Updated Swedish translation. 2000-09-05 Martin Baulig * .cvsignore: Added Makefile.in.in. 2000-08-30 Jesus Bravo Alvarez * gl.po: Updated Galician translation. 2000-08-27 Alastair McKinstry * ga.po: Added Irish translation. 2000-08-18 Takuo Kitame * ja.po: Updated Japanese translation 2000-08-17 Christopher R. Gabriel * it.po: Updated Italian translation 2000-08-16 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-08-14 Kai Lahmann * de.po: Updated German translation 2000-08-13 Valek Filippov * ru.po: updated russian translation. * POTFILES.in: added missing files. 2000-08-08 Kai Lahmann * de.po: Updated German translation 2000-07-26 Valek Filippov * ru.po: updated russian translation. 2000-07-26 Matthias Warkus * de.po: Updated. 2000-07-24 Fatih Demir * tr.po: Corrected some wrong translations. (->QA). * update.pl: I don't think that we're building a nautilus translation in the gnome-vfs module ;) * .cvsignore: Added the "messages" file to the ignored ones. 2000-07-24 Szabolcs BAN * hu.po: Updated Hungarian translations. 2000-07-22 Yukihiro Nakai * ja.po: Updated from Akira TAGOH. 2000-07-21 Christopher R. Gabriel * it.po: updated italian translation. 2000-07-19 Kjartan Maraas * nl.po: Added Dutch translation from Mendel Mobach . 2000-07-12 Fatih Demir * tr.po: Updated the Turkish translation. 2000-07-10 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-07-10 Fatih Demir * tr.po: Updated the Turkish translation. 2000-07-05 Valek Filippov * ru.po: updated russian translation. 2000-06-25 Jaka Mocnik * sl.po: fixed a bunch of typos and semantical errors ;) 2000-06-24 Valek Filippov * ru.po: updated russian translation. 2000-06-21 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-06-17 Valek Filippov * ru.po: updated russian translation. 2000-06-17 Kjartan Maraas * POTFILES.in: Added missing files. * no.po: Updated Norwegian translation. 2000-04-26 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-06-10 Sung-Hyun Nam * ko.po: initial translation from Young-Ho,Cha 2000-06-04 Valek Filippov * ru.po: Updated russian translation. 2000-05-25 Fatih Demir * tr.po: Updated the Turkish translation. 2000-05-25 Szabolcs BAN * hu.po: Added Hungarian translations. 2000-04-27 Jesus Bravo Alvarez * gl.po: Updated Galician translation. 2000-04-27 Andreas Hyden * sv.po: Updated Swedish translation. 2000-04-26 Valek Filippov * ru.po: Updated russian translation. 2000-04-26 Kjartan Maraas * no.po: Updated Norwegian translation. * POTFILES.in: Added one missing file. 2000-04-20 Pablo Saratxaga * lt.po: Updated Lithuanian file 2000-04-19 Pablo Saratxaga * da.po: Updated Danish file * ca.po: Added Catalan file 2000-04-18 Vincent Renardias * fr.po: 100% complete. 2000-04-17 Fatih Demir * tr.po : Updated it . 2000-04-16 Valek Filippov * ru.po: Added russian translation. 2000-04-16 Pablo Saratxaga * da.po: Updated Danish file 2000-04-14 Yukihiro Nakai * ja.po: Japanese Update from Akira Tagoh. 2000-04-10 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-04-08 Andreas Hyden * sv.po: Updated Swedish translation. 2000-04-08 Jesus Bravo Alvarez * gl.po: Updated Galician translation. 2000-04-05 Spiros Papadimitriou * el.po: Updated Greek translation. 2000-03-30 Yuri Syrota * uk.po: Updated translation. 2000-03-25 Zbigniew Chyla * pl.po: Updated translation. 2000-03-25 Yukihiro Nakai * ja.po: Initial Japanese translation from Akira Tagoh 2000-03-10 Kjartan Maraas * no.po: Updated Norwegian translation. 2000-02-25 Andreas Hyden * sv.po: Updated Swedish translation. 2000-02-23 Andreas Hyden * sv.po: Updated Swedish translation. 2000-02-15 Vincent Renardias * fr.po : Updated (more work needed) 2000-02-09 Simos Xenitellis * el.po: Updated Greek translation. 2000-01-24 Spiros Papadimitiriou * el.po: Added Greek translation. 2000-01-19 Kjartan Maraas * POTFILES.in: Added missing files. * no.po: Updated accordingly. 2000-01-04 Kjartan Maraas * update.sh: A little script that lets people update the .pot file without makefiles etc. 1999-12-29 Jesus Bravo Alvarez * gl.po: Added Galician translation. 1999-12-28 Martin Norbdck * sv.po: Added Swedish translation. 1999-12-28 Yuri Syrota * uk.po: Added Ukrainian translation. 1999-12-27 Matthias Warkus * de.po: Added. 1999-12-23 Fatih Demir * tr.po: Added tr.po for Turkish translation . 1999-12-14 Kjartan Maraas * no.po: Updated Norwegian translation. 1999-11-19 Kjartan Maraas * no.po: Added Norwegian translation. 1999-09-29 Rodrigo Stulzer Lopes * pt_BR.po: Add pt_BR translations 1999-09-25 Kjartan Maraas * da.po: Added Danish translation from Kenneth Christiansen . 1999-08-25 Vincent Renardias * fr.po: Initial translation: 42 translated messages. gnome-vfs-2.24.4/po/rw.po0000644000175000001440000010670511334251016012034 00000000000000# translation of gnome-vfs to Kinyarwanda. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # Steve Murphy , 2005 # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali , 2005. # Viateur MUGENZI , 2005. # Noëlla Mupole , 2005. # Carole Karema , 2005. # JEAN BAPTISTE NGENDAHAYO , 2005. # Augustin KIBERWA , 2005. # Donatien NSENGIYUMVA , 2005.. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-03-31 00:26-0700\n" "PO-Revision-Date: 2005-03-28 19:35-0700\n" "Last-Translator: Steve Murphy \n" "Language-Team: Kinyarwanda \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" #: daemon/gnome-vfs-daemon.c:596 #, fuzzy msgid "Could not initialize Bonobo" msgstr "OYA gutangiza" #: daemon/gnome-vfs-daemon.c:603 #, fuzzy msgid "Could not initialize gnome vfs" msgstr "OYA gutangiza" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:227 #, fuzzy, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%dKirimo Inyuguti" #: libgnomevfs/gnome-vfs-configuration.c:244 #, fuzzy, c-format msgid "%s:%d contains no method name." msgstr "%s:%dKirimo Oya Uburyo Izina:" #: libgnomevfs/gnome-vfs-configuration.c:284 #, fuzzy, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%dOya Amahitamo" #: libgnomevfs/gnome-vfs-configuration.c:295 #, fuzzy, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%dKitazwi Amahitamo" #: libgnomevfs/gnome-vfs-configuration.c:314 #, fuzzy, c-format msgid "%s:%d contains no module name." msgstr "%s:%dKirimo Oya Modire Izina:" #: libgnomevfs/gnome-vfs-configuration.c:368 #, fuzzy, c-format msgid "Configuration file `%s' was not found: %s" msgstr "IDOSIYE OYA Byabonetse" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" # #-#-#-#-# svtools.pot (Gnome 2.12) #-#-#-#-# # svtools/source\misc\imagemgr.src:STR_DESCRIPTION_CDROM_VOLUME.text # #-#-#-#-# svtools.pot (Gnome 2.12) #-#-#-#-# # svtools/source\misc\mediatyp.src:STR_SVT_MIMETYPE_CNT_CDROM.text #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 #, fuzzy msgid "CD-ROM Drive" msgstr "Iyobora rya CD- ROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "" # filter/source\xsltdialog\xmlfilterdialogstrings.src:STR_UNKNOWN_APPLICATION.text #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Kitazwi" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Ubwoko" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, fuzzy, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kurema kugirango Gufungura" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "" #: libgnomevfs/gnome-vfs-job.c:1720 #, fuzzy msgid "Operation stopped" msgstr "Kyahagariswe" #: libgnomevfs/gnome-vfs-mime-handlers.c:106 #: libgnomevfs/gnome-vfs-mime-handlers.c:260 #: libgnomevfs/gnome-vfs-mime-handlers.c:311 #: libgnomevfs/gnome-vfs-mime-handlers.c:605 #: libgnomevfs/gnome-vfs-mime-handlers.c:624 #: libgnomevfs/gnome-vfs-mime-handlers.c:642 #: libgnomevfs/gnome-vfs-mime-handlers.c:661 #: libgnomevfs/gnome-vfs-mime-handlers.c:680 #: libgnomevfs/gnome-vfs-mime-handlers.c:821 #: libgnomevfs/gnome-vfs-mime-handlers.c:843 #: libgnomevfs/gnome-vfs-mime-handlers.c:862 #: libgnomevfs/gnome-vfs-mime-handlers.c:881 #: libgnomevfs/gnome-vfs-mime-handlers.c:934 #: libgnomevfs/gnome-vfs-mime-handlers.c:951 #: libgnomevfs/gnome-vfs-mime-handlers.c:968 #: libgnomevfs/gnome-vfs-mime-handlers.c:986 #: libgnomevfs/gnome-vfs-mime-handlers.c:1004 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 #, fuzzy msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "Umumaro Kuri Ububikoshingiro Oya" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, fuzzy, c-format msgid "Could not parse: %s" msgstr "OYA" #: libgnomevfs/gnome-vfs-parse-ls.c:668 #, fuzzy msgid "More parsing errors will be ignored." msgstr "Amakosa" # padmin/source\padialog.src:RID_AFMERROR_OK.text #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Nta kosa" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Dosiye ntibonetse" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 #, fuzzy msgid "Generic error" msgstr "Ikosa" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 #, fuzzy msgid "Internal error" msgstr "Ikosa ry'imbere" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 #, fuzzy msgid "Invalid parameters" msgstr "Ibishingirwaho bitari byo" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 #, fuzzy msgid "I/O error" msgstr "Ikosa" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 #, fuzzy msgid "Format not valid" msgstr "OYA Byemewe" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 #, fuzzy msgid "Bad file handle" msgstr "IDOSIYE" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 #, fuzzy msgid "File too big" msgstr "Idosiye" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 #, fuzzy msgid "No space left on device" msgstr "Umwanya Ibumoso: ku APAREYE" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 #, fuzzy msgid "Read-only file system" msgstr "IDOSIYE Sisitemu" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 #, fuzzy msgid "File not open" msgstr "Idosiye OYA Gufungura" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 #, fuzzy msgid "Open mode not valid" msgstr "Ubwoko OYA Byemewe" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Ntiwemerewe kwinjira" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 #, fuzzy msgid "Too many open files" msgstr "Gufungura Idosiye" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 #, fuzzy msgid "End of file" msgstr "Impera Bya IDOSIYE" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 #, fuzzy msgid "Not a directory" msgstr "a bushyinguro" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 #, fuzzy msgid "Operation in progress" msgstr "in Aho bigeze" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 #, fuzzy msgid "File exists" msgstr "Idosiye" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 #, fuzzy msgid "Looping links encountered" msgstr "amahuza" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 #, fuzzy msgid "Operation not permitted" msgstr "OYA" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 #, fuzzy msgid "Is a directory" msgstr "a bushyinguro" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Ububiko ntibuhagije" # # The following errors are for error codes other than LDAP-specific ones. # # Someday mozilla will actually have a system for mapping nsresults to # # error strings that's actually widely used, unlike nsIErrorService. But # # until it does, these strings live here... # # @name HOST_NOT_FOUND # # @loc none #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Inturo ntibonetse" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 #, fuzzy msgid "Host name not valid" msgstr "Izina: OYA Byemewe" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 #, fuzzy msgid "Host has no address" msgstr "Oya Aderesi" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 #, fuzzy msgid "Login failed" msgstr "Byanze" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 #, fuzzy msgid "Operation cancelled" msgstr "Kureka" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 #, fuzzy msgid "Directory busy" msgstr "Irahuze" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 #, fuzzy msgid "Directory not empty" msgstr "OYA ubusa" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 #, fuzzy msgid "Too many links" msgstr "amahuza" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 #, fuzzy msgid "Read only file system" msgstr "IDOSIYE Sisitemu" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 #, fuzzy msgid "Not on the same file system" msgstr "ku IDOSIYE Sisitemu" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 #, fuzzy msgid "Service not available" msgstr "OYA Bihari" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 #, fuzzy msgid "Request obsoletes service's data" msgstr "Ibyatanzwe" # # @name PROTOCOL_ERROR # # @loc none #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Ikosa rya Protocol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 #, fuzzy msgid "Could not find master browser" msgstr "OYA Gushaka Mugenga Mucukumbuzi" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 #, fuzzy msgid "No default action associated" msgstr "Mburabuzi Igikorwa" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 #, fuzzy msgid "No handler for URL scheme" msgstr "kugirango Igishusho" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 #, fuzzy msgid "Error parsing command line" msgstr "Komandi: Umurongo" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 #, fuzzy msgid "Error launching command" msgstr "Komandi:" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "Ikosa" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 #, fuzzy msgid "The resource is locked" msgstr "ni Gifunze" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 #, fuzzy msgid "Function call deprecated" msgstr "Bitemewe." # # @name OTHER # # @loc none #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Ikosa itazwi" #: libgnomevfs/gnome-vfs-utils.c:85 #, fuzzy, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%uBayite" #: libgnomevfs/gnome-vfs-utils.c:91 #, fuzzy, c-format msgid "%.1f KB" msgstr "" "%.Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: libgnomevfs/gnome-vfs-utils.c:95 #, fuzzy, c-format msgid "%.1f MB" msgstr "" "%.Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: libgnomevfs/gnome-vfs-utils.c:99 #, fuzzy, c-format msgid "%.1f GB" msgstr "" "%.Project- Id- Version: basctl\n" "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" "Content- Type: text/ plain; charset= UTF- 8\n" "Content- Transfer- Encoding: 8bit\n" "X- Generator: KBabel 1. 0\n" "." #: libgnomevfs/gnome-vfs-utils.c:1137 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 #, fuzzy msgid " (invalid Unicode)" msgstr "(Sibyo" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "" # svx/source\engine3d\float3d.src:RID_SVXFLOAT_3D.FL_CAMERA.text #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Kamera" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 #, fuzzy msgid "Unknown volume" msgstr "Igice" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 #, fuzzy msgid "Network server" msgstr "Seriveri" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 #, fuzzy msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Kuri Porogaramu- shoboza ni Oya in Porogaramu- shoboza" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 #, fuzzy msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Kuri Igice ni Oya Ibitangazamakuru in APAREYE" #: libgnomevfs/gnome-vfs-volume-ops.c:123 #, fuzzy msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "Kuri Porogaramu- shoboza ni in a Imiterere" #: libgnomevfs/gnome-vfs-volume-ops.c:126 #, fuzzy msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "Kuri Byahiswemo Igice Igice ni in a Imiterere" #: libgnomevfs/gnome-vfs-volume-ops.c:131 #, fuzzy msgid "Unable to mount the selected floppy drive." msgstr "Kuri Byahiswemo Porogaramu- shoboza" #: libgnomevfs/gnome-vfs-volume-ops.c:133 #, fuzzy msgid "Unable to mount the selected volume." msgstr "Kuri Byahiswemo Igice" #: libgnomevfs/gnome-vfs-volume-ops.c:145 #, fuzzy msgid "Unable to unmount the selected volume." msgstr "Kuri Byahiswemo Igice" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 #, fuzzy msgid "Failed to start command" msgstr "Kuri Gutangira Komandi:" #: libgnomevfs/gnome-vfs-volume-ops.c:301 #, fuzzy msgid "Unable to eject media" msgstr "Kuri Ibitangazamakuru" #: libgnomevfs/gnome-vfs-volume-ops.c:499 #, fuzzy msgid "Unable to unmount connected server" msgstr "Kuri Seriveri" # 4032 #: modules/computer-method.c:545 msgid "Network" msgstr "urusobe" #: modules/computer-method.c:563 msgid "Home" msgstr "Home" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "" #: modules/sftp-method.c:1313 #, fuzzy, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Bya ni Kitazwi" #: modules/sftp-method.c:1314 #, fuzzy, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ryari: LOG in Kuri a Itangira Igihe Yoherejwe: ku ni Kuri ni Kuri " "urifuzagukomeza Umuntu Sisitemu umuyobozi/ uyobora" #: modules/sftp-method.c:1322 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1323 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, fuzzy, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Gushaka a Byemewe Amagenamiterere IDOSIYE ku" #: modules/test-method.c:592 #, fuzzy, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "IMPINDURAGACIRO Kuri a Ahantu" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 #, fuzzy msgid "file MonikerExtender" msgstr "IDOSIYE" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 #, fuzzy msgid "generic Gnome VFS moniker" msgstr "Gifitanye isano" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 #, fuzzy msgid "generic file moniker" msgstr "Gifitanye isano IDOSIYE" #: schemas/desktop_default_applications.schemas.in.h:1 #, fuzzy msgid "Default component viewer application" msgstr "Porogaramu" #: schemas/desktop_default_applications.schemas.in.h:2 #, fuzzy msgid "Default terminal application" msgstr "Porogaramu" #: schemas/desktop_default_applications.schemas.in.h:3 #, fuzzy msgid "Exec argument for default terminal" msgstr "kugirango Mburabuzi" #: schemas/desktop_default_applications.schemas.in.h:5 #, fuzzy, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "Porogaramu Kuri Gukoresha kugirango Idosiye a Kuri Kureba ku ku" #: schemas/desktop_default_applications.schemas.in.h:6 #, fuzzy msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "Mburabuzi Porogaramu Kuri Gukoresha kugirango Porogaramu a" #: schemas/desktop_default_applications.schemas.in.h:7 #, fuzzy msgid "The exec argument to use for the default terminal application." msgstr "Kuri Gukoresha kugirango Mburabuzi Porogaramu" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 #, fuzzy msgid "Run the command in a terminal" msgstr "Komandi: in a" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 #, fuzzy msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Komandi: Kuri NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 #, fuzzy msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Komandi: Kuri NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 #, fuzzy msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Komandi: Kuri NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 #, fuzzy msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Komandi: Kuri NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 #, fuzzy msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Komandi: Kuri HTTP NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 #, fuzzy msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Komandi: Kuri HTTPS NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 #, fuzzy msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Komandi: Kuri Ibisobanuro NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 #, fuzzy msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Komandi: Kuri UBUTUMWA BUJYA KWA NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 #, fuzzy msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Komandi: Kuri NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 #, fuzzy msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Komandi: Kuri NIBA Bikora" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 #, fuzzy msgid "The handler for \"aim\" URLs" msgstr "kugirango" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 #, fuzzy msgid "The handler for \"callto\" URLs" msgstr "kugirango" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 #, fuzzy msgid "The handler for \"ghelp\" URLs" msgstr "kugirango" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 #, fuzzy msgid "The handler for \"h323\" URLs" msgstr "kugirango" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 #, fuzzy msgid "The handler for \"http\" URLs" msgstr "kugirango HTTP" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 #, fuzzy msgid "The handler for \"https\" URLs" msgstr "kugirango HTTPS" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 #, fuzzy msgid "The handler for \"info\" URLs" msgstr "kugirango Ibisobanuro" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 #, fuzzy msgid "The handler for \"mailto\" URLs" msgstr "kugirango UBUTUMWA BUJYA KWA" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 #, fuzzy msgid "The handler for \"man\" URLs" msgstr "kugirango" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 #, fuzzy msgid "The handler for \"trash\" URLs" msgstr "kugirango" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo HTTP" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo HTTPS" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo Ibisobanuro" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo UBUTUMWA BUJYA KWA" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "NIBA Komandi: in Komandi: Urufunguzo" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 #, fuzzy msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "NIBA Komandi: Kuri iyi Ubwoko Bya Gukoresha in a" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 #, fuzzy msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Komandi:" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 #, fuzzy msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Komandi:" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 #, fuzzy msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Komandi:" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 #, fuzzy msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Komandi:" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 #, fuzzy msgid "Whether the specified command should handle \"http\" URLs" msgstr "Komandi: HTTP" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 #, fuzzy msgid "Whether the specified command should handle \"https\" URLs" msgstr "Komandi: HTTPS" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 #, fuzzy msgid "Whether the specified command should handle \"info\" URLs" msgstr "Komandi: Ibisobanuro" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 #, fuzzy msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Komandi: UBUTUMWA BUJYA KWA" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 #, fuzzy msgid "Whether the specified command should handle \"man\" URLs" msgstr "Komandi:" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 #, fuzzy msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Komandi:" #: schemas/system_dns_sd.schemas.in.h:1 #, fuzzy msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "Urutonde Bya sd Kigaragara in urusobe Ahantu" #: schemas/system_dns_sd.schemas.in.h:2 #, fuzzy msgid "Extra domains to look for dns-sd services in" msgstr "Kuri kugirango sd in" #: schemas/system_dns_sd.schemas.in.h:3 #, fuzzy msgid "How to display local DNS-SD service" msgstr "Kuri Kugaragaza Serivisi" #: schemas/system_dns_sd.schemas.in.h:4 #, fuzzy msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Uduciro Na Yahagaritswe" #: schemas/system_http_proxy.schemas.in.h:1 #, fuzzy msgid "Authenticate proxy server connections" msgstr "Porogisi Seriveri Ukwihuza" #: schemas/system_http_proxy.schemas.in.h:2 #, fuzzy msgid "Automatic proxy configuration URL" msgstr "URL y'Igenamiterere ya porogosi yikora:" #: schemas/system_http_proxy.schemas.in.h:3 #, fuzzy msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Porogisi Amagenamiterere Ryari: KURI" #: schemas/system_http_proxy.schemas.in.h:4 #, fuzzy msgid "FTP proxy host name" msgstr "Porogisi Ubuturo Izina:" #: schemas/system_http_proxy.schemas.in.h:5 #, fuzzy msgid "FTP proxy port" msgstr "Porogisi Umuyoboro" #: schemas/system_http_proxy.schemas.in.h:6 #, fuzzy msgid "HTTP proxy host name" msgstr "Porogisi Ubuturo Izina:" #: schemas/system_http_proxy.schemas.in.h:7 #, fuzzy msgid "HTTP proxy password" msgstr "Porogisi Ijambobanga..." #: schemas/system_http_proxy.schemas.in.h:8 #, fuzzy msgid "HTTP proxy port" msgstr "Porogisi Umuyoboro" #: schemas/system_http_proxy.schemas.in.h:9 #, fuzzy msgid "HTTP proxy username" msgstr "Porogisi Izina ry'ukoresha" #: schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "NIBYO Hanyuma Ukwihuza Kuri Porogisi Seriveri Izina ry'ukoresha " "Ijambobanga... ni ku Sisitemu Na Sisitemu" #: schemas/system_http_proxy.schemas.in.h:11 #, fuzzy msgid "Non-proxy hosts" msgstr "Porogisi" #: schemas/system_http_proxy.schemas.in.h:12 #, fuzzy msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Kuri Nka Ryari:" #: schemas/system_http_proxy.schemas.in.h:13 #, fuzzy msgid "Proxy configuration mode" msgstr "Iboneza Ubwoko" #: schemas/system_http_proxy.schemas.in.h:14 #, fuzzy msgid "SOCKS proxy host name" msgstr "Porogisi Ubuturo Izina:" #: schemas/system_http_proxy.schemas.in.h:15 #, fuzzy msgid "SOCKS proxy port" msgstr "Porogisi Umuyoboro" #: schemas/system_http_proxy.schemas.in.h:16 #, fuzzy msgid "Secure HTTP proxy host name" msgstr "Porogisi Ubuturo Izina:" #: schemas/system_http_proxy.schemas.in.h:17 #, fuzzy msgid "Secure HTTP proxy port" msgstr "Porogisi Umuyoboro" #: schemas/system_http_proxy.schemas.in.h:18 #, fuzzy msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "Porogisi Iboneza Ubwoko Uduciro Ntacyo Bikorwa Ikiyega" #: schemas/system_http_proxy.schemas.in.h:19 #, fuzzy msgid "The machine name to proxy FTP through." msgstr "Izina: Kuri Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:20 #, fuzzy msgid "The machine name to proxy HTTP through." msgstr "Izina: Kuri Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:21 #, fuzzy msgid "The machine name to proxy secure HTTP through." msgstr "Izina: Kuri Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:22 #, fuzzy msgid "The machine name to proxy socks through." msgstr "Izina: Kuri Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:23 #, fuzzy msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "Umuyoboro ku ku Sisitemu Ubuturo Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:24 #, fuzzy msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "Umuyoboro ku ku Sisitemu Porogisi Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:25 #, fuzzy msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "Umuyoboro ku ku Sisitemu Porogisi Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:26 #, fuzzy msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "Umuyoboro ku ku Sisitemu Porogisi Porogisi Gihinguranya" #: schemas/system_http_proxy.schemas.in.h:27 #, fuzzy msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "0." #: schemas/system_http_proxy.schemas.in.h:28 #, fuzzy msgid "URL that provides proxy configuration values." msgstr "Porogisi Iboneza Uduciro" #: schemas/system_http_proxy.schemas.in.h:29 #, fuzzy msgid "Use HTTP proxy" msgstr "Porogisi" #: schemas/system_http_proxy.schemas.in.h:30 #, fuzzy msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Izina: Kuri Nka Ryari:" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 #, fuzzy msgid "The window workgroup the user is part of" msgstr "Idirishya Ukoresha: ni Bya" gnome-vfs-2.24.4/po/te.po0000644000175000001440000016726711334251016012026 00000000000000# translation of te.po to Telugu # Telugu translation of gnome-vfs. # Copyright (C) 2007 Swecha Telugu Localisation Team # This file is distributed under the same license as the gnome-vfs package. # # Matapathi Pramod , 2007. # Krishna Babu K , 2009. msgid "" msgstr "" "Project-Id-Version: te\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-08-22 16:53+0530\n" "PO-Revision-Date: 2009-03-03 15:58+0530\n" "Last-Translator: Krishna Babu K \n" "Language-Team: Telugu \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-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 à°¶à°¬à±à°§à°¸à±‚చితమà±" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u చెలà±à°²à°¨à°¿ à°…à°•à±à°·à°°à°®à±à°²à± కలిగియà±à°¨à±à°¨à°¦à°¿." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u పదà±à°¦à°¤à°¿ నామమౠకలిగిలేదà±." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ఇఛà±à°›à°¾à°ªà±‚à°°à±à°µà°•à°®à±à°²à± చివర à°—à±à°°à±à°¤à±à°µà±‡à°¯à±à°¨à°¦à°¿ కలిగి లేదà±." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u తెలియని ఇఛà±à°›à°¾à°ªà±‚à°°à±à°µà°•ాలౠకలదౠ%s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u అధిభాగం నామమౠకలిగిలేదà±." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "రూపకరణ దసà±à°¤à±à°°à°‚ `%s' దొరకలేదà±: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d పారà±à°¸à°¿à°‚à°—à± à°…à°°à±à°¥à°¾à°‚తరమà±à°—à°¾ ఆపివేయబడినది." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFFS à°…à°²à±à°²à°¿à°• à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "à°¸à±à°µà°¯à°‚చాలకంగా-కనిపెటà±à°Ÿà°¬à°¡à°¿à°¨ à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM చోదకం" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD à°µà±à°°à±‡à°³à±à°² సంఖà±à°¯ à°¶à±à°°à°¾à°µà°£à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "ఇనà±à°ªà°¸à°¾à°®à°¾à°¨à± పరికరం à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 లైనకà±à°¸à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 లైనకà±à°¸à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "గవాకà±à°·à°¾à°² NT à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "à°µà±à°¯à°µà°¸à±à°¥ à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "à°œà±à°žà°¾à°ªà°•à°¶à°•à±à°¤à°¿ à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "మైనకà±à°¸à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS à°…à°²à±à°²à°¿à°• à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "నెటౠవేరౠధà±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "లైనకà±à°¸à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "FS లైనకà±à°¸à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "గవాకà±à°·à°¾à°²à± పంచà±à°•ొనౠధà±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "అధిపోగౠధà±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "సొలారిసà±/BSD à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs సొలారిసౠధà±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs సొలారిసౠధà±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "తాతà±à°•ాలిక à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "హెచà±à°šà°¿à°‚à°šà°¿à°¨ DOS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "గవాకà±à°·à°¾à°² VFAT à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "à°—à±à°œà±†à°¨à°¿à°•à±à°¸à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS లైనకà±à°¸à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "తెలియనిది" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "à°«à±à°²à°¾à°ªà±€ చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "సూకà±à°·à±à°® మెరà±à°ªà± చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "à°œà±à°žà°¾à°ªà°• à°¶à°•à±à°¤à°¿ à°•à°¡à±à°¡à±€ చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "తెలివైన మాదà±à°¯à°® చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "జిపౠచోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "జాపౠచోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "పెనౠచోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s సంగీతం ఆడà±à°¨à°¦à°¿" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s à°µà±à°°à±‡à°³à±à°² సంఖà±à°¯ ఛాయాగà±à°°à°¹à°£à°‚ తీసే పరికరం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "చోదకం" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s బాహà±à°¯à°‚" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ఖాళీ CD-R à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ఖాళీ CD-RW à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ఖాళీ DVD-RAM à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ఖాళీ DVD-R à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ఖాళీ DVD-RW à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ఖాళీ DVD+R à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ఖాళీ DVD+RW à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "à°¶à±à°°à°µà°£ à°¡à°¿à°¸à±à°•à±" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s తొలగించà±à°Ÿà°•à±à°µà±€à°²à°—à± à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "తెలియని కారà±à°¯à°‚ పదà±à°¦à°¤à°¿ %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "తెరచౠGIOà°ªà±à°°à°¸à°¾à°°à°®à°¾à°°à±à°—à°‚ కొరకౠపైపౠసృషà±à°Ÿà°¿à°‚à°šà±à°Ÿà°•ౠవీలà±à°•ాదà±: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "తెలియని నిరà±à°¥à°¿à°·à±à°Ÿ కారà±à°¯à°‚ జాతి %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "కారà±à°¯à°‚ ఆపబడినది" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "ఆపివేయబడిన à°ªà±à°°à°®à±‡à°¯à°‚. MIME డాటాబేసà±à°¨à°•ౠవినియోగదారి సవరింపà±à°²à± యిక మదà±à°¦à°¤à±à°¨à±€à°¯à°µà±." #: ../libgnomevfs/gnome-vfs-parse-ls.c:720 #, c-format msgid "Could not parse: %s" msgstr "పారà±à°¸à± వీలà±à°•ాదà±: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:722 msgid "More parsing errors will be ignored." msgstr "అధికమైన పారà±à°¸à°¿à°‚గౠదోషమà±à°²à± à°Žà°°à±à°—నటà±à°²à± విడà±à°šà±." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "దోషం లేదà±" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "దసà±à°¤à±à°°à°‚ దొరà±à°•లేదà±" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "సాధారణమైన దోషమà±" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "అంతరà±à°—à°¤ దోషమà±" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "నిసà±à°¸à°¾à°°à°®à±ˆà°¨ పరామితà±à°²à±" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "సహకారమà±à°²à±‡à°¨à°¿ కారà±à°¯à°‚" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O దోషమà±" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "దతà±à°¤à°¾à°‚à°¶à°‚ చెడిపోయినది" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "రూపలావణà±à°¯à°‚ వరà±à°¤à°¿à°‚à°šà°¦à±" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "చెడౠదసà±à°¤à±à°°à°‚ చేపటà±à°²à±" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "దసà±à°¤à±à°°à°‚ చాలా పెదà±à°¦à°¦à°¿" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ఖని పై à°Žà°Ÿà±à°µà°‚à°Ÿà°¿ ఖాళీ మిగలలేదà±" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "దసà±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥ మాతà±à°°à°®à±‡-à°šà°¦à±à°µà±" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "నిసà±à°¸à°¾à°°à°®à±ˆà°¨ URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "దసà±à°¤à±à°°à°‚ తెరà±à°µà°¬à°¡à°²à±‡à°¦à±" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "తెరà±à°šà± విధం వరà±à°¤à°¿à°‚à°šà°¦à±" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "సాంగతà±à°¯à°‚ తిరసà±à°•రించబడినది" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "కూడ అనేకమైన తెరà±à°šà± దసà±à°¤à±à°°à°®à±à°²à±" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "దసà±à°¤à±à°°à°‚ యొకà±à°• చివర" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "à°’à°• వివరమౠకాదà±" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "à°ªà±à°°à±‹à°—మనంలో కారà±à°¯à°‚" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "కారà±à°¯à°‚ à°…à°¡à±à°¡à°—ించబడినది" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "దసà±à°¤à±à°°à°‚ కలిగిఉంది" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "లూపింగౠజోడిలౠఅడà±à°¡à±à°ªà°¡à°¿à°¨à°µà°¿" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "కారà±à°¯à°‚ à°…à°¨à±à°®à°¤à°¿à°‚చబడలేదà±" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "à°’à°• వివరమà±" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "కావలసినంత à°œà±à°žà°¾à°ªà°•à°¶à°•à±à°¤à°¿ కాదà±" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ఆతిథà±à°¯à°‚ దొరకలేదà±" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ఆతిథà±à°¯ నామమౠవరà±à°¤à°¿à°‚à°šà°¦à±" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ఆతిథà±à°¯à°‚ à°šà°¿à°°à±à°¨à°¾à°®à°¾ కలిగిలేదà±" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "à°ªà±à°°à°µà±‡à°¶à°¦à±à°µà°¾à°°à°‚ విఫలమైంది" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "కారà±à°¯à°‚ à°°à°¦à±à°¦à±à°šà±‡à°¯à°¬à°¡à°¿à°‚ది" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "వివరమౠతీరికలేదà±" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "వివరమౠశూనà±à°¯à°®à±à°—à°¾ లేదà±" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "కూడ అనేకమైన జోడిలà±" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "దసà±à°¤à±à°°à°‚ à°µà±à°¯à°µà°¸à±à°¥ మాతà±à°°à°®à±‡ à°šà°¦à±à°µà±" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "అదే దసà±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥ పై కాదà±" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "నామమౠకూడా పొడà±à°—à±" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "సేవ లభà±à°¯à°¤à°²à±‡à°¦à±" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "మనవి ఇపà±à°ªà°Ÿà°¿à°²à±‹ వాడà±à°•లో లేని సేవల దతà±à°¤à°¾à°‚à°¶à°‚" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "à°ªà±à°°à±‹à°Ÿà±‹à°•ాలౠదోషమà±" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "à°ªà±à°°à°­à±à°µà± à°…à°¨à±à°µà±à°µà±‡à°·à°¿ వెతà±à°•à±à°Ÿà°•ౠవీలà±à°•ాదà±" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "à°Žà°Ÿà±à°µà°‚à°Ÿà°¿ à°…à°ªà±à°°à°®à±‡à°¯ à°•à±à°°à°¿à°¯ సహవాసమà±à°šà±‡à°¯à°¬à°¡à°¿à°¨à°¦à°¿" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL ఉపాయమౠకొరకౠచేతిపిడి లేదà±" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "ఆదేశ వాకà±à°¯à°‚ పారà±à°¸à°¿à°‚గౠదోషమà±" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "ఆదేశం à°ªà±à°°à°¯à±‹à°—à°¿à°‚à°šà±à°Ÿ దోషమà±" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "కాలహారణం చేరà±à°•à±à°‚ది" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "నామమà±à°¸à±‡à°µà°¿à°• దోషమà±" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "à°µà±à°¨à±à°¨ వనరౠతాళం కలదà±" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "à°ªà±à°°à°®à±‡à°¯à°‚ పిలà±à°ªà± ఆపివేయబడెనà±" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "నిసà±à°¸à°¾à°°à°®à±ˆà°¨ దసà±à°¤à±à°° నామమà±" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "à°’à°• à°šà°¿à°¹à±à°¨à°¾ పూరిత జోడి కాదà±" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "తెలియని దోషమà±" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u బైటà±" msgstr[1] "%u బైటà±à°¸à±" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MBà°¸à±" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(నిసà±à°¸à°¾à°°à°®à±ˆà°¨ à°¯à±à°¨à°¿à°•ోడà±)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "à°«à±à°²à°¾à°ªà±€" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ఖని" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB చోదకం" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 చోదకం" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "à°œà±à°žà°¾à°ªà°•à°¶à°•à±à°¤à°¿ à°•à°¡à±à°¡à±€" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "తెలివైన మాధà±à°¯à°®à°‚" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "ఛాయాగà±à°°à°¹à°£à°‚ తీసే పరికరం" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "మూల à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "à°¶à±à°°à°µà°£ CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "తెలియని à°§à±à°µà°¨à°¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "à°…à°²à±à°²à°¿à°• సేవిక" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "à°«à±à°²à°¾à°ªà±€ చోదకం పోగà±à°•ౠవీలà±à°•ాదà±. బహà±à°¶à°¾ à°…à°•à±à°•à°¡ చోదకంలో à°«à±à°²à°¾à°ªà±€ లేదà±." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "à°§à±à°µà°¨à°¿ పోగà±à°•ౠవీలà±à°•ాదà±. బహà±à°¶à°¾ à°…à°•à±à°•à°¡ పరికరంలో à°Žà°Ÿà±à°µà°‚à°Ÿà°¿ మాదà±à°¯à°®à°‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "à°«à±à°²à°¾à°ªà±€ చోదకం పోగà±à°•ౠవీలà±à°•ాదà±. బహà±à°¶à°¾ à°«à±à°²à°¾à°ªà±€ దానియొకà±à°• రూపలావణà±à°¯à°‚లోపోగà±à°šà±‡à°¯à±à°Ÿà°•ౠవీలà±à°•ాదà±." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "à°§à±à°µà°¨à°¿ పోగà±à°•ౠవీలà±à°•ాదà±. à°’à°• వేళ ఇది రహసà±à°¯à°ªà°°à°šà°¬à°¡à°¿à°¨ చోదకమైతే, à°…à°ªà±à°ªà±à°¡à± తపà±à°ªà±à°¡à± రహసà±à°¯à°ªà°¦à°®à± లేదా మీట " "వాడబడినది." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "à°Žà°‚à°šà±à°•ొనబడిన à°§à±à°µà°¨à°¿ పోగà±à°•ౠవీలà±à°•ాదà±. బహà±à°¶à°¾ à°§à±à°µà°¨à°¿ దానియొకà±à°• రూపలావణà±à°¯à°‚లోపోగà±à°šà±‡à°¯à±à°Ÿà°•ౠవీలà±à°•ాదà±." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "à°Žà°‚à°šà±à°•ొనబడిన à°«à±à°²à°¾à°ªà±€ చోదకం పోగà±à°•ౠవీలà±à°•ాదà±." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "à°Žà°‚à°šà±à°•ొనబడిన à°§à±à°µà°¨à°¿ పోగà±à°•ౠవీలà±à°•ాదà±." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "à°Žà°‚à°šà±à°•ొనబడిన à°§à±à°µà°¨à°¿ పోగà±à°•ౠవీలà±à°•ాదà±. The volume is in use by one or more programs." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "à°Žà°‚à°šà±à°•ొనబడిన à°§à±à°µà°¨à°¿à°¨à°¿ విడగొటà±à°Ÿà±à°Ÿà°•ౠవీలà±à°•ాదà±. " #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "%d à°¶à°¿à°¶à± à°•à±à°°à°®à°£à°‚ à°¨à±à°‚à°¡à°¿ దతà±à°¤à°¾à°‚à°¶à°‚ à°šà°¦à±à°µà±à°Ÿà°•ౠవిఫలమైంది (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "à°’à°• pty లో పోగౠకà±à°°à°®à°£à°‚ నడà±à°ªà±à°Ÿà°•ౠవీలà±à°•ాదà±" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "(%s) à°’à°• à°¶à°¿à°¶à± à°•à±à°°à°®à°£à°‚ à°¨à±à°‚à°¡à°¿ దతà±à°¤à°¾à°‚à°¶à°‚ à°šà°¦à±à°µà±à°Ÿà°•à± () à°Žà°‚à°šà±à°•ొనà±à°Ÿ లో ఊహించని దోషమà±" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "పోగౠకà±à°°à°®à°£à°‚ కౠరహసà±à°¯à°ªà°¦à°®à±à°¨à± పంపà±à°Ÿ వీలà±à°•ాదà±." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "(%s) ఆగౠపిడà±() లో ఊహించని దోషమà±" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ఆదేశం మొదలà±à°ªà±†à°Ÿà±à°Ÿà±à°Ÿà°•ౠవిఫలమైంది" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "à°¤à±à°°à±‹à°¸à°¿à°µà±‡à°¯à± మాదà±à°¯à°®à°‚ వీలà±à°•ాదà±" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "బంధం à°à°°à±à°ªà°¡à±à°¡ సేవిక తొలగించà±à°Ÿà°•ౠవీలà±à°•ాదà±" #: ../modules/computer-method.c:543 msgid "Network" msgstr "à°…à°²à±à°²à°¿à°•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "నివాసం" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "దసà±à°¤à±à°° à°µà±à°¯à°µà°¸à±à°¥" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "తెలియని à°—à±à°¨à±‹à°®à± VFSà°…à°°à±à°¥à°¿à°‚à°šà± à°¸à±à°¥à°¾à°¨à°®à± %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "గవాకà±à°·à°¾à°² à°…à°²à±à°²à°¿à°•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "సూదూర à°•à°‚à°ªà±à°¯à±‚టరౠయొకà±à°• à°—à±à°°à±à°¤à°¿à°‚పౠ(%s) తెలియనిది." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "మీరౠమొదటిసారి à°•à°‚à°ªà±à°¯à±‚à°Ÿà°°à±à°¨à°•ౠలాగినౠఅయినపà±à°ªà±à°¡à± యిది జరà±à°—à±à°¤à±à°‚ది.\n" "\n" "రిమోటౠకంపà±à°¯à±‚à°Ÿà°°à± à°¦à±à°µà°¾à°°à°¾ పంపబడిన à°—à±à°°à±à°¤à°¿à°‚పౠ%s. ఇది కొనసాగించà±à°Ÿà°•à± " "à°–à°šà±à°šà°¿à°¤à°®à±à°—à°¾ à°¸à±à°°à°•à±à°·à°¿à°¤à°®à±ˆà°¨à°¦à±‡à°¨à±‡à°®à±‹ మీరౠతెలà±à°¸à±à°•ొనవలెనంటే, సిసà±à°Ÿà°®à± నిరà±à°µà°¹à°£à°¾à°§à°¿à°•ారిని " "సంపà±à°°à°¦à°¿à°‚à°šà°‚à°¡à°¿." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "à°ªà±à°°à°µà±‡à°¶ à°¦à±à°µà°¾à°°à°‚ ఎలాగైననà±" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "à°ªà±à°°à°µà±‡à°¶ à°¦à±à°µà°¾à°°à°‚ à°°à°¦à±à°¦à±à°šà±‡à°¯à±" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s వదà±à°¦ దసà±à°¤à±à°°à°‚ à°’à°• వరà±à°¤à°¿à°‚పౠఅమరికలౠవెతà±à°•à±à°Ÿ à°•à±à°¦à°°à°¦à±\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "à°’à°• వేరొక à°¸à±à°¥à°¾à°¨à°®à± నిరà±à°¥à±‡à°¶à°¿à°¤ చరరాశి à°šà±à°Ÿà±à°Ÿà±à°•ొనియà±à°‚à°¡à±à°Ÿà°•à± %s వాడà±à°®à±.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "నీ à°ªà±à°°à°µà±‡à°¶à°¦à±à°µà°¾à°°à°‚కౠమీ యొకà±à°• HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°§à±à°¯ అవసరమà±.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" నీవౠసాంగతà±à°¯à°‚నకౠపà±à°°à°µà±‡à°¶à°¿à°‚చవలయà±à°¨à±.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "నీ యొకà±à°• రహసà±à°¯à°ªà°¦à°®à± సంకలà±à°ªà°‚ ఉండౠపà±à°°à°¸à°°à°¿à°‚à°šà±à°®à°¾à°°à±à°—à°‚ రహసà±à°¯à°ªà°°à°šà°¬à°¡à°¦à±." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "నీ యొకà±à°• రహసà±à°¯à°ªà°¦à°®à± సంకలà±à°ªà°‚ ఉండౠపà±à°°à°¸à°°à°¿à°‚à°šà±à°®à°¾à°°à±à°—à°‚ రహసà±à°¯à°ªà°°à°šà°¬à°¡à±à°¨à±." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s అధికారకà±à°·à±‡à°¤à±à°°à°‚ %s నీవౠసాంగతà±à°¯à°‚నకౠపà±à°°à°µà±‡à°¶à°¿à°‚చవలయà±à°¨à±\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s నీవౠసాంగతà±à°¯à°‚నకౠపà±à°°à°µà±‡à°¶à°¿à°‚చవలయà±à°¨à±\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ భాగమైన దరà±à°¶à°•à°¿ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కొరకౠనిరà±à°µà°°à±à°¤à°¿à°‚à°šà± à°•à±à°°à°®à°¾à°¨à±à°—తసంకేతం" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "దసà±à°¤à±à°°à°®à±à°²à°¨à± దరà±à°¶à°¿à°‚à°šà±à°Ÿà°•à± à°µà±à°ªà°¯à±‹à°—ించే à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±à°•ౠవాటిని దరà±à°¶à°¿à°‚à°šà±à°Ÿà°•ౠమూలకం అవసరమైంది. " "పారామితి %s దసà±à°¤à±à°°à°®à±à°¯à±Šà°•à±à°• URIà°² చేత à°ªà±à°¨à°ƒà°¸à±à°¥à°¾à°ªà°¿à°‚చబడà±à°¤à±à°‚ది, పారామితి %c మూలకం IID చేత " "à°ªà±à°¨à°ƒà°¸à±à°¥à°¾à°ªà°¿à°‚చబడà±à°¤à±à°‚ది." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚ వాడà±à°Ÿ కొరకౠకారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°¾à°²à± అది à°’à°• అవసరం à°…à°—à±à°°à°‚." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚ వాడà±à°Ÿ కొరకౠనిరà±à°µà°°à±à°¤à°¿à°‚à°šà± à°•à±à°°à°®à°¾à°¨à±à°—తసంకేతం." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"à°—à±à°°à°¿à°šà±‚à°šà±\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"పిలà±à°ªà±à°•à±\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"gసహాయమà±\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"సమాచారం\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"తపాలాకà±\"ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"నిక\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించౠURLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"చెతà±à°¤à°•à±à°‚à°¡à°¿\" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించౠURLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"à°—à±à°°à°¿à°šà±‚à°šà±à°Ÿà°¨à±\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"పిలà±à°ªà±à°•à±\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"gసహాయమà±\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"సమాచారమà±\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"తపాలాకà±\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"నిక\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"చెతà±à°¤à°•à±à°‚à°¡à°¿\" ఉపయోగించà±à°Ÿ కొరకౠURLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"à°—à±à°°à°¿ చూచà±\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"పిలà±à°ªà±à°•à±\" మీట ఉపయోగించవలెనౠ\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"gసహాయమà±\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"h323\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"http\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"https\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"సమాచారమà±\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"తపాలాకà±\" మీట ఉపయోగించవలెనౠ\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"నిక\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "\"ఆదేశం\" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ \"చెతà±à°¤à°•à±à°‚à°¡à°¿\" మీట ఉపయోగించవలెనౠURLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "\"à°—à±à°°à°¿à°šà±‚à°šà±\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "\"పిలà±à°ªà±à°•à±\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "\"gసహాయమà±\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "\"h323\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "\"http\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "\"https\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "\"సమాచారం\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "\"తపాలాకà±\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "\"నిక\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "\"చెతà±à°¤à°•à±à°‚à°¡à°¿\" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనà±" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "DNS-SD డొమైనà±à°²à°¯à±Šà°•à±à°• కామాతో విభజించిన జాబితా \"network:///\" à°¸à±à°¥à°¾à°¨à°®à±à°¨à°‚దౠ" "కనిపించాలి." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD సేవలలో అధికమైన అధికారకà±à°·à±‡à°¤à±à°°à°¾à°²à°•ౠచూచà±à°Ÿ కొరకà±" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "à°¸à±à°¥à°¾à°¨à°¿à°• DNS-SD సేవ ఎలా à°ªà±à°°à°¦à°°à±à°¶à°¿à°‚చాలి" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "సాధà±à°¯à°®à±ˆà°¨ విలà±à°µà°²à± ఉనà±à°¨à°µà°¿ \"à°®à±à°‚చబడినది\", \"వేరà±à°šà±‡à°¯à±\" మరియౠ\"నిరà±à°ªà°¯à±‹à°—à°®à±\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "à°ªà±à°°à°¾à°®à°¾à°£à°¿à°•à°°à°£ à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ సేవిక బంధాలà±" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "à°¸à±à°µà°¯à°‚చాలక à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "HTTP ఇంటరౠనెటౠపైన సాంగతà±à°¯ పరà±à°¸à±à°¤à±à°¨à±à°¨à°ªà±à°ªà±à°¡à± à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ అమరికలౠఉపయోగించà±. " #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°§à±à°¯ ఆతిథà±à°¯ నామమà±" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°§à±à°¯ రేవà±" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°§à±à°¯ ఆతిథà±à°¯ నామమà±" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రహసà±à°¯à°ªà°¦à°‚" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రేవà±" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ వినియోగదారౠనామమà±" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "నిజమైతే, à°ªà±à°°à±‹à°•à±à°¸à±€ సేవికకౠఅనà±à°¸à°‚ధానమà±à°²à±à°•ౠదృవీకరణ అవసరమౌతà±à°‚ది. వినియోగదారి/సంకేతపదం " "à°¯à±à°—ళం \"/system/http_proxy/authentication_user\" మరియౠ\"/system/http_proxy/" "authentication_password\"చేత నిరà±à°µà°šà°¿à°‚పబడà±à°¤à±à°‚ది." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚-కాని ఆతిథà±à°¯à°¾à°²à±" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "రహసà±à°¯à°ªà°¦à°‚à°•à± HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°¿à°‚à°šà±à°Ÿà°•ౠరహసà±à°¯à°ªà°¦à°‚à°•à± à°ªà±à°°à°¾à°®à°¾à°£à°¿à°•à°°à°£" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ విధం" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "సోకà±à°¸à± à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ ఆతిథà±à°¯ నామమà±" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "సోకà±à°¸à± à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రేవà±" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "à°°à°•à±à°·à°¿à°¤ HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ ఆతిథà±à°¯ నామమà±" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "à°°à°•à±à°·à°¿à°¤ HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ రేవà±" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ విధం à°Žà°‚à°šà±à°•ొనà±à°®à±. సహకరించౠవిలà±à°µà°²à± కలవౠ\"à°à°¦à±€à°•ాదà±\", \"నిరà±à°¥à±‡à°¶à°¿à°•à°‚\", " "\"à°¸à±à°µà°¯à°‚చాలకం\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "యంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°•à± à°°à°•à±à°·à°¿à°¤ FTP à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "యంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°•à± HTTP à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "యంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°•à± à°°à°•à±à°·à°¿à°¤ HTTP à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "యంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚కౠసోకà±à°¸à± à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "రేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ \"/à°µà±à°¯à°µà°¸à±à°¥/http_à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/ఆతిథà±à°¯à°‚\" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "రేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ \"/à°µà±à°¯à°µà°¸à±à°¥/à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/ftp_ఆతిథà±à°¯à°‚\" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "రేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ \"/à°µà±à°¯à°µà°¸à±à°¥/à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/à°°à°•à±à°·à°¿à°¤_ఆతిథà±à°¯à°‚\" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "రేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ \"/à°µà±à°¯à°µà°¸à±à°¥/à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/సోకà±à°¸à±_ఆతిథà±à°¯à°‚\" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ à°—à±à°‚à°¡à°¾." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "à°ªà±à°°à±‹à°•à±à°¸à±€(à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à°‚à°—à°¾ à°µà±à°‚టే) à°¦à±à°µà°¾à°°à°¾ కాకà±à°‚à°¡à°¾, నేరà±à°—à°¾ à°…à°¨à±à°¸à°‚ధానమైవà±à°¨à±à°¨ అతిధేయలయొకà±à°• " "జాబితానౠకీ కలిగివà±à°‚ది. అవి అతిధేయ నామమà±à°²à±, డొమైనà±à°²à± (à°ªà±à°°à°¾à°§à°®à°¿à°• వైలà±à°¡à±à°•ారà±à°¡à± *.foo.com " "à°µà±à°ªà°¯à±‹à°—ించే), IP అతిధేయ à°šà°¿à°°à±à°¨à°¾à°®à°¾à°²à± (IPv4 మరియౠIPv6 రెండూ) మరియౠనెటà±â€Œà°®à°¾à°¸à±à°•à± " "(192.168.0.0/24 వంటి)తో నెటà±à°µà°°à±à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾à°²à±." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL దాని యొకà±à°• à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ విలà±à°µà°²à± à°•à°²à±à°ªà°¿à°¸à±à°¤à±à°‚ది" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ వాడà±" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ పరà±à°¸à±à°¤à±à°¨à±à°¨à°ªà±à°ªà±à°¡à± రూపశిలà±à°ªà°‚ లాగా పోవà±à°Ÿà°•ౠవినియోగదారౠనామమà±." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB పని సమà±à°¦à°¾à°¯à°‚" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "వినియోగదారి భాగమà±à°—ావà±à°¨à±à°¨ విండోసౠనెటà±à°µà°°à±à°•ింగౠపనిసమూహం లేదా డొమైనà±. కొతà±à°¤ " "పనిసమూహం(వరà±à°•à±à°—à±à°°à±‚à°ªà±) పూరà±à°¤à°¿à°—à°¾ à°ªà±à°°à°­à°¾à°µà°¿à°¤à°‚ కావటానికి వినియోగదారి లాగà±à°…à°µà±à°Ÿà± " "à°…à°¯à±à°¯à°¿ లాగినౠఅవà±à°µà°µà°²à°¸à°¿à°°à°¾à°µà°šà±à°šà±." gnome-vfs-2.24.4/po/ne.po0000644000175000001440000017122211334251016012002 00000000000000# translation of gnome-vfs.gnome-2-20.ne.po to Nepali # This file is distributed under the same license as the gnome-vfs package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # # Pawan Chitrakar , 2004. # Sameer Rajbhandari , 2005. # Ishwar Sharma , 2005. # Jaydeep Bhusal , 2005. # Shiva Pokharel , 2005. # Kapil Timilsina , 2006. # Shyam Krishna Bal , 2006. # Mahesh subedi , 2006. # Nabin Gautam , 2007. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.gnome-2-20.ne\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-09-19 03:46+0100\n" "PO-Revision-Date: 2007-11-30 14:45+0545\n" "Last-Translator: Nabin Gautam \n" "Language-Team: Nepali \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" "Plural-Forms: nplurals=2; plural=n !=1\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO ९६६० भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u ले NUL कà¥à¤¯à¤¾à¤°à¥‡à¤•à¥à¤Ÿà¤°à¤¸ समाविषà¥à¤Ÿ गरà¥à¤¦à¤› ।" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ले विधि नाम समाविषà¥à¤Ÿ गरà¥à¤¦à¥ˆà¤¨ ।" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u सà¤à¤— विकलà¥à¤ª इनà¥à¤¡à¤®à¤¾à¤°à¥à¤•र छैन ।" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u सà¤à¤— अजà¥à¤žà¤¾à¤¤ विकलà¥à¤ª %s छ ।" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ले मोडà¥à¤¯à¥à¤² नाम समाविषà¥à¤Ÿ गरà¥à¤¦à¥ˆà¤¨ ।" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "कनà¥à¤«à¤¿à¤—रेसन फाइल `%s' फेला पारेको थिà¤à¤¨: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d ले पद वरà¥à¤£à¤¨ परितà¥à¤¯à¤¾à¤— गरà¥à¤¯à¥‹ ।" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS सञà¥à¤œà¤¾à¤² भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "सà¥à¤µà¤¤: पतà¥à¤¤à¤¾ लगाइà¤à¤•ो भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "सीडी-रोम डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "सीडी डिजिटल अडियो" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "हारà¥à¤¡à¤µà¤¯à¥‡à¤° यनà¥à¤¤à¥à¤°à¤•ो भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 लिनकà¥à¤¸ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 लिनकà¥à¤¸ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs सीडी रोम भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "विणà¥à¤¡à¥‹à¤œ NT भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "सà¥à¤®à¥ƒà¤¤à¤¿ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS सञà¥à¤œà¤¾à¤² भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "नेटवेयर भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "रेईजर४ लिनकà¥à¤¸ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "रेईजर FS लिनकà¥à¤¸ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "विणà¥à¤¡à¥‹à¤œ सेयर भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "सà¥à¤ªà¤°à¤®à¤¾à¤‰à¤¨à¥à¤Ÿ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "डीभीडी (DVD) भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "सोलारिस/BSD भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs सोलारिस भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs सोलारिस भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "सन SAM-QFS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "असà¥à¤¥à¤¾à¤¯à¥€ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "बढाइà¤à¤•ो DOS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "विणà¥à¤¡à¥‹à¤œ VFAT भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS लिनकà¥à¤¸ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "अजà¥à¤žà¤¾à¤¤" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "फà¥à¤²à¤ªà¤¿ डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "कमà¥à¤ªà¥à¤¯à¤¾à¤•à¥à¤Ÿ फà¥à¤²à¥à¤¯à¤¾à¤¸ डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "सà¥à¤®à¥ƒà¤¤à¤¿ सà¥à¤Ÿà¤¿à¤• डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "सà¥à¤®à¤¾à¤°à¥à¤Ÿ मिडिया डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "जिप डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "जà¥à¤¯à¤¾à¤œ डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "पेन डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s सङà¥à¤—ीत पà¥à¤²à¥‡à¤¯à¤°" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s डिजिटल कà¥à¤¯à¤¾à¤®à¥‡à¤°à¤¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "बाहà¥à¤¯ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "खाली CD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "खाली CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "खाली DVD-RAM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "खाली DVD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "खाली DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "खाली DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "खाली DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "अडियो डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s हटाउन मिलà¥à¤¨à¥‡ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "अजà¥à¤žà¤¾à¤¤ सञà¥à¤šà¤¾à¤²à¤¨ पà¥à¤°à¤•ार %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "GIO चà¥à¤¯à¤¾à¤¨à¤²: %s खोलà¥à¤¨à¤•ा लागि पाइप सिरà¥à¤œà¤¨à¤¾ गरà¥à¤¨ सकिà¤à¤¦à¥ˆà¤¨" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "अजà¥à¤žà¤¾à¤¤ कामको पà¥à¤°à¤•ार %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "सञà¥à¤šà¤¾à¤²à¤¨ रोकियो" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "अनà¥à¤šà¤¿à¤¤ पà¥à¤°à¤•ारà¥à¤¯ माइम डेटाबेसले पà¥à¤°à¤¯à¥‹à¤—रà¥à¤•तालाई परिमारà¥à¤œà¤¨ गरà¥à¤¨ धेरै समयसà¤à¤— समरà¥à¤¥à¤¨ गरà¥à¤¦à¥ˆà¤¨ ।" #: ../libgnomevfs/gnome-vfs-parse-ls.c:720 #, c-format msgid "Could not parse: %s" msgstr "पद वरà¥à¤£à¤¨ गरà¥à¤¨ सकेन: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:722 msgid "More parsing errors will be ignored." msgstr "धेरै पद वरà¥à¤£à¤¨ तà¥à¤°à¥à¤Ÿà¤¿à¤¹à¤°à¥‚ उपेकà¥à¤·à¤¾ गरिनà¥à¤›à¤¨à¥ ।" # GNOME_VFS_OK #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "तà¥à¤°à¥à¤Ÿà¤¿ छैन" # GNOME_VFS_ERROR_NOT_FOUND #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "फाइल फेला परेन" # GNOME_VFS_ERROR_GENERIC #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "जेनेरिक तà¥à¤°à¥à¤Ÿà¤¿" # GNOME_VFS_ERROR_INTERNAL #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "आनà¥à¤¤à¤°à¤¿à¤• तà¥à¤°à¥à¤Ÿà¤¿" # GNOME_VFS_ERROR_BAD_PARAMETERS #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "अवैध परामितिहरू" # GNOME_VFS_ERROR_NOT_SUPPORTED #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "असमरà¥à¤¥à¤¿à¤¤ सञà¥à¤šà¤¾à¤²à¤¨" # GNOME_VFS_ERROR_IO #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O तà¥à¤°à¥à¤Ÿà¤¿" # GNOME_VFS_ERROR_CORRUPTED_DATA #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "डेटा बिगà¥à¤°à¤¿à¤¯à¥‹" # GNOME_VFS_ERROR_WRONG_FORMAT #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ढाà¤à¤šà¤¾ मानà¥à¤¯ छैन" # GNOME_VFS_ERROR_BAD_FILE #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "खराब फाइल हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²" # GNOME_VFS_ERROR_TOO_BIG #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "अति ठूलो फाइल" # GNOME_VFS_ERROR_NO_SPACE #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "यनà¥à¤¤à¥à¤°à¤®à¤¾ खाली ठाउठछैन" # GNOME_VFS_ERROR_READ_ONLY #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "पढà¥à¤¨à¥‡-मातà¥à¤° फाइल पà¥à¤°à¤£à¤¾à¤²à¥€" # GNOME_VFS_ERROR_INVALID_URI #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "अमानà¥à¤¯ URI" # GNOME_VFS_ERROR_NOT_OPEN #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "फाइल खà¥à¤²à¥à¤¦à¥ˆà¤¨" # GNOME_VFS_ERROR_INVALID_OPEN_MODE #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "खà¥à¤²à¤¾ मोड मानà¥à¤¯ छैन" # GNOME_VFS_ERROR_ACCESS_DENIED #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "पहà¥à¤à¤š असà¥à¤µà¤¿à¤•ार गरियो" # GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "धेरै खà¥à¤²à¤¾ फाइलहरू" # GNOME_VFS_ERROR_EOF #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "फाइलको अनà¥à¤¤à¥à¤¯" # GNOME_VFS_ERROR_NOT_A_DIRECTORY #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "डाइरेकà¥à¤Ÿà¤°à¥€ होइन" # GNOME_VFS_ERROR_IN_PROGRESS #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "सञà¥à¤šà¤¾à¤²à¤¨ पà¥à¤°à¤—तिमा" # GNOME_VFS_ERROR_INTERRUPTED #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "सञà¥à¤šà¤¾à¤²à¤¨ रोकियो" # GNOME_VFS_ERROR_FILE_EXISTS #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "फाइल अवसà¥à¤¥à¤¿à¤¤ छ ।" # GNOME_VFS_ERROR_LOOP #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "लूपिङ लिङà¥à¤• देखा परà¥à¤¯à¥‹" # GNOME_VFS_ERROR_NOT_PERMITTED #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "सञà¥à¤šà¤¾à¤²à¤¨ अनà¥à¤®à¤¤à¤¿ पà¥à¤°à¤¾à¤ªà¥à¤¤ छैन" # GNOME_VFS_ERROR_IS_DIRECTORY #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "डाइरेकà¥à¤Ÿà¤°à¥€ हो" # GNOME_VFS_ERROR_NO_MEMMORY #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "परà¥à¤¯à¤¾à¤ªà¥à¤¤ सà¥à¤®à¥ƒà¤¤à¤¿ छैन" # GNOME_VFS_ERROR_HOST_NOT_FOUND #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "होसà¥à¤Ÿ फेला परेन" # GNOME_VFS_ERROR_INVALID_HOST_NAME #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "होसà¥à¤Ÿà¤¨à¤¾à¤® वैध छैन" # GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "होसà¥à¤Ÿà¤¸à¤à¤— ठेगाना छैन" # GNOME_VFS_ERROR_LOGIN_FAILED #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "लगइन असफल भयो" # GNOME_VFS_ERROR_CANCELLED #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "सञà¥à¤šà¤¾à¤²à¤¨ रदà¥à¤¦ गरियो" # GNOME_VFS_ERROR_DIRECTORY_BUSY #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "डाइरेकà¥à¤Ÿà¤°à¥€ बà¥à¤¯à¤¸à¥à¤¤ छ" # GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "डाइरेकà¥à¤Ÿà¤°à¥€ खाली छैन" # GNOME_VFS_ERROR_TOO_MANY_LINKS #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "अति धेरै लिङà¥à¤•हरू" # GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "पढà¥à¤¨à¥‡-मातà¥à¤° फाइल पà¥à¤°à¤£à¤¾à¤²à¥€" # GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "उसà¥à¤¤à¥ˆ फाइल पà¥à¤°à¤£à¤¾à¤²à¥€à¤®à¤¾ होइन" # GNOME_VFS_ERROR_NAME_TOO_LONG #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "धेरै लामो नाम" # GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "सेवा उपलबà¥à¤§ छैन" # GNOME_VFS_ERROR_SERVICE_OBSOLETE #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "असà¥à¤ªà¤·à¥à¤Ÿ सेवाको डेटा अनà¥à¤°à¥‹à¤§ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥" # GNOME_VFS_ERROR_PROTOCOL_ERROR #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ल तà¥à¤°à¥à¤Ÿà¤¿" # GNOME_VFS_ERROR_NO_MASTER_BROWSER #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "मासà¥à¤Ÿà¤° बà¥à¤°à¤¾à¤‰à¤œà¤° फेला पारà¥à¤¨ सकेन" # GNOME_VFS_ERROR_NO_DEFAULT #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "कà¥à¤¨à¥ˆ पनि पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ कारà¥à¤¯ समà¥à¤¬à¤¨à¥à¤§à¤¿à¤¤ छैन" # GNOME_VFS_ERROR_NO_HANDLER #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "यूआरà¤à¤² (URL) सà¥à¤•ीमाका लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° छैन" # GNOME_VFS_ERROR_PARSE #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "आदेश रेखा पद वरà¥à¤£à¤¨ गरà¥à¤¦à¤¾ तà¥à¤°à¥à¤Ÿà¤¿" # GNOME_VFS_ERROR_LAUNCH #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "आदेश थालनी गरà¥à¤¦à¤¾ तà¥à¤°à¥à¤Ÿà¤¿" # GNOME_VFS_ERROR_TIMEOUT #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "समय समापà¥à¤¤à¤¿à¤¸à¤®à¥à¤® पà¥à¤—à¥à¤¯à¥‹" # GNOME_VFS_ERROR_GENERIC #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "नामसरà¥à¤­à¤° तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "सà¥à¤°à¥‹à¤¤à¤®à¤¾ तालà¥à¤šà¤¾ लगाइà¤à¤•ो छ" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "पà¥à¤°à¤•ारà¥à¤¯ कल असà¥à¤µà¥€à¤•ार गरियो" # GNOME_VFS_ERROR_BAD_PARAMETERS #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "अमानà¥à¤¯ फाइलनाम" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "पà¥à¤°à¤¤à¤¿à¤•ातà¥à¤®à¤• लिङà¥à¤• छैन" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u बाइट" msgstr[1] "%u बाइट" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f किलोबाइट" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f मेगाबाइट" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f गिगाबाइट " #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (अमानà¥à¤¯ यूनिकोड)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "फà¥à¤²à¤ªà¥€" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 डà¥à¤°à¤¾à¤‡à¤­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "सà¥à¤®à¥ƒà¤¤à¤¿ सà¥à¤Ÿà¤¿à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "सà¥à¤®à¤¾à¤°à¥à¤Ÿ मिडिया" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "कà¥à¤¯à¤¾à¤®à¥‡à¤°à¤¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "डीभीडी" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "मूल भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "अडियो सीडी" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "अजà¥à¤žà¤¾à¤¤ भोलà¥à¤¯à¥à¤®" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "सञà¥à¤œà¤¾à¤² सरà¥à¤­à¤°" # Handle floppy case #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "फà¥à¤²à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤­ माउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® । सायद डà¥à¤°à¤¾à¤‡à¤­à¤®à¤¾ फà¥à¤²à¤ªà¥€ नहà¥à¤¨à¤¸à¤•à¥à¤› ।" # All others #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "भोलà¥à¤¯à¥à¤®à¤²à¤¾à¤ˆ माउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® । सायद यनà¥à¤¤à¥à¤°à¤®à¤¾ मिडिया नहà¥à¤¨à¤¸à¤•à¥à¤› ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "फà¥à¤²à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤­à¤²à¤¾à¤ˆ माउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® । सायद फà¥à¤²à¤ªà¥€ माउनà¥à¤Ÿ गरà¥à¤¨ नसकिने ढाà¤à¤šà¤¾à¤®à¤¾ छ ।" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "भोलà¥à¤¯à¥à¤®à¤²à¤¾à¤ˆ माउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® । यदि यो गà¥à¤ªà¥à¤¤à¥€à¤•रण गरिà¤à¤•ो डà¥à¤°à¤¾à¤‡à¤­ हो भने, तà¥à¤¯à¤¸à¥‹ भठगलत " "पासवरà¥à¤¡ वा कà¥à¤žà¥à¤œà¥€ पà¥à¤°à¤¯à¥‹à¤— गरिà¤à¤•ो छ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "चयन गरिà¤à¤•ो भोलà¥à¤¯à¥à¤®à¤²à¤¾à¤ˆ माउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® । सायद भोलà¥à¤¯à¥à¤® माउनà¥à¤Ÿ गरà¥à¤¨ नसकिने ढाà¤à¤šà¤¾à¤®à¤¾ छ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "चयन गरिà¤à¤•ो फà¥à¤²à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤­à¤²à¤¾à¤ˆ माउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "चयन गरिà¤à¤•ो भोलà¥à¤¯à¥à¤®à¤²à¤¾à¤ˆ माउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "चयन गरिà¤à¤•ो भोलà¥à¤¯à¥à¤®à¤²à¤¾à¤ˆ अनमाउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® छ । सायद भोलà¥à¤¯à¥à¤® à¤à¤• वा बढी कारà¥à¤¯à¤•à¥à¤°à¤®à¤¦à¥à¤§à¤¾à¤°à¤¾ " "पà¥à¤°à¤¯à¥‹à¤— गरिà¤à¤•ो छ ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "चयन गरिà¤à¤•ो भोलà¥à¤¯à¥à¤®à¤²à¤¾à¤ˆ अनमाउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤® ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "चाइलà¥à¤¡ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ %d (%s) बाट डेटा पढà¥à¤¨ असफल" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty मा माउनà¥à¤Ÿ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ चालॠगरà¥à¤¨ सकेन" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "चाइलà¥à¤¡ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ (%s) बाट चयन () पढà¥à¤¨à¥‡ डेटामा अनपेकà¥à¤·à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ माउनà¥à¤Ÿ गरà¥à¤¨ पासवरà¥à¤¡ पठाउन सकेन ।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() (%s) मा अनपेकà¥à¤·à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "आदेश सà¥à¤°à¥ गरà¥à¤¨ असफल भयो" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "मिडिया निकालà¥à¤¨ अकà¥à¤·à¤®" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "जडान भà¤à¤•ो सरà¥à¤­à¤°à¤²à¤¾à¤ˆ अनमाउनà¥à¤Ÿ गरà¥à¤¨ अकà¥à¤·à¤®" #: ../modules/computer-method.c:543 msgid "Network" msgstr "सञà¥à¤œà¤¾à¤²" #: ../modules/computer-method.c:561 msgid "Home" msgstr "गृह" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "फाइल पà¥à¤°à¤£à¤¾à¤²à¥€" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "अजà¥à¤žà¤¾à¤¤ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "विणà¥à¤¡à¥‹à¤œ सञà¥à¤œà¤¾à¤²" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "टाढाको कमà¥à¤ªà¥à¤¯à¥à¤Ÿà¤° (%s) को पहिचान अजà¥à¤žà¤¾à¤¤ छ ।" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "पहिलो पटक कमà¥à¤ªà¥à¤¯à¥à¤Ÿà¤° लगइन गरà¥à¤¦à¤¾ यसà¥à¤¤à¥‹ हà¥à¤¨à¥à¤› । \n" "\n" "टाढाको कमà¥à¤ªà¥à¤¯à¥à¤Ÿà¤°à¤²à¥‡ पठाà¤à¤•ो परिचय %s हो । यदि तपाईठनिशà¥à¤šà¤¿à¤¤ रूपमा यसलाई नियमित गरà¥à¤¨ चाहनà¥à¤¹à¥à¤¨à¥à¤› " "भने तपाईà¤à¤•ो पà¥à¤°à¤£à¤¾à¤²à¥€ पà¥à¤°à¤¶à¤¾à¤¸à¤•सà¤à¤— समà¥à¤ªà¤°à¥à¤• राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "जेभठपानि लगइन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "लगइन रदà¥à¤¦ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥" # FIXME: we probably shouldn't use printf to output the message #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s मा वैध सेटिङ फेला परेन\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "फरक सà¥à¤¥à¤¾à¤¨ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरà¥à¤¨ परिवेश चल %s पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ।\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "तपाईà¤à¤•ो à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€à¤²à¥‡ तपाईà¤à¤²à¤¾à¤ˆ लगइन गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› ।\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "तपाईà¤à¤²à¥‡ पहà¥à¤à¤š \"%s\" मा लगइन गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› ।\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "तपाईà¤à¤•ो पासवरà¥à¤¡ गà¥à¤ªà¥à¤¤à¤¿à¤•रण नगरि पà¥à¤°à¤¸à¤¾à¤° गरिनेछ ।" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "तपाईà¤à¤•ो पासवरà¥à¤¡ गà¥à¤ªà¥à¤¤à¤¿à¤•रण गरेर पà¥à¤°à¤¸à¤¾à¤°à¤¿à¤¤ गरिनेछ ।" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "तपाईठपहà¥à¤à¤š %s डोमेन %s मा लगइन हà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤›\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "तपाईठपहà¥à¤à¤š %s मा लगइन हà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤›\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ अवयव दरà¥à¤¶à¤• अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤²à¤•ा लागि Exec तरà¥à¤•" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "फाइल हेरà¥à¤¨à¤•ा लागि पà¥à¤°à¤¯à¥‹à¤— गरिने अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले ती फाइल हेरà¥à¤¨à¤²à¤¾à¤ˆ केही ततà¥à¤µà¤•ो आवशà¥à¤¯à¤•ता महसà¥à¤¸ " "गरà¥à¤¦à¤› । %s परामिति URIs फाइलमा पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¨ गरिनà¥à¤›à¤¨à¥, %c परामिति IID अवयवदà¥à¤µà¤¾à¤°à¤¾ " "पà¥à¤°à¤¸à¥à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¨ गरिनà¥à¤› ।" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "टरà¥à¤®à¤¿à¤¨à¤² आवशà¥à¤¯à¤• परà¥à¤¨à¥‡ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—का लागि पà¥à¤°à¤¯à¥‹à¤— गरिने पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— ।" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—का लागि पà¥à¤°à¤¯à¥‹à¤— गरिने exec तरà¥à¤• ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"aim\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"callto\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"ghelp\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"h323\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"http\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"https\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"info\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"mailto\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"man\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, \"trash\" URLs हानà¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" # GNOME_VFS_ERROR_NO_HANDLER #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" # GNOME_VFS_ERROR_NO_HANDLER #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" # GNOME_VFS_ERROR_NO_HANDLER #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"aim\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"callto" "\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"ghelp\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"h323\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"http\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"https\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"info\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"mailto" "\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"man\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "यदि \"command\" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले \"trash\" " "URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› ।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ आदेशले \"aim\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"callto\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"ghelp\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"h323\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"http\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"https\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"info\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"mailto\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"man\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले \"trash\" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "अलà¥à¤ªà¤µà¤¿à¤°à¤¾à¤®à¤²à¥‡ DNS-SD डोमेनको सूची विभाजन गरà¥à¤¦à¤› जà¥à¤¨ \"network:///\" सà¥à¤¥à¤¾à¤¨à¤®à¤¾ देखिने " "हà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› ।" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "यस भितà¥à¤° DNS-SD सेवा खोजà¥à¤¨à¤•ा लागि अतिरिकà¥à¤¤ डोमेन" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "सà¥à¤¥à¤¾à¤¨à¥€à¤¯ DNS-SD सेवा कसरी पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ गरà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "समà¥à¤­à¤¾à¤µà¤¿à¤¤ मान \"गाभिà¤à¤•ा\", \"विभाजन\" र \"अकà¥à¤·à¤®\" हà¥à¤¨à¥ ।" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सरà¥à¤­à¤° जडान" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन यूआरà¤à¤²" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "इनà¥à¤Ÿà¤°à¤¨à¥‡à¤Ÿà¤®à¤¾ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€à¤²à¥‡ पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¦à¤¾ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सेटिङ सकà¥à¤·à¤® पारà¥à¤¦à¤› ।" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "à¤à¤«à¤Ÿà¥€à¤ªà¥€ (FTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤®" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "à¤à¤«à¤Ÿà¥€à¤ªà¥€ (FTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤®" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पासवरà¥à¤¡" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ नाम" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "यदि ठीक भà¤à¤®à¤¾, तà¥à¤¯à¤¸à¤ªà¤›à¤¿ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सरà¥à¤­à¤°à¤¸à¤à¤— जडान गरà¥à¤¨ पà¥à¤°à¤®à¤¾à¤£à¤¿à¤•रण चाहिनà¥à¤› ।\"/system/http_proxy/" "authentication_user\" र \"/system/http_proxy/authentication_password\" " "दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¨à¤¾à¤®/पासवरà¥à¤¡ कमà¥à¤¬à¥‹ परिभाषित गरिनà¥à¤› ।" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "पà¥à¤°à¥‹à¤•à¥à¤¸à¥€-नभà¤à¤•ा होसà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¦à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤¿à¤•रणको रूपमा पास गरिने पासवरà¥à¤¡ ।" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन मोड" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤®" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤® सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन मोड चयन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ । समरà¥à¤¥à¤¿à¤¤ मान \"कà¥à¤¨à¥ˆ पनि होइन\", \"मà¥à¤¯à¤¾à¤¨à¥à¤…ल\", \"सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤\" " "हà¥à¤¨à¥ ।" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "à¤à¤«à¤Ÿà¥€à¤ªà¥€ (FTP)बाट पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ मेसिन नाम" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP)बाट पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ मेसिन नाम ।" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP)बाट पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ गरà¥à¤¨à¥‡ मेसिन नाम ।" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "सकà¥à¤¸à¤¬à¤¾à¤Ÿ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ मेसिनको नाम ।" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ \"/system/http_proxy/host\" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ ।" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¤¿ गरà¥à¤¨à¥à¤­à¤à¤•ो \"/system/proxy/ftp_host\" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ ।" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¤¿ गरà¥à¤¨à¥à¤­à¤à¤•ो \"/system/proxy/socks_host\" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ ।" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¤¿ गरà¥à¤¨à¥à¤­à¤à¤•ो \"/system/proxy/socks_host\" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ ।" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "यस कà¥à¤žà¥à¤œà¥€à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ मारà¥à¤«à¤¤ नभइ पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· जडित होसà¥à¤Ÿà¤•ो सूची समावेश गरà¥à¤¦à¤› (यदि यो सकà¥à¤°à¤¿à¤¯ भà¤à¤®à¤¾) । यसका मानहरू, होसà¥à¤Ÿà¤¨à¤¾à¤®, डोमेन ( *.foo.com जसà¥à¤¤à¤¾ पà¥à¤°à¤¾à¤°à¤®à¥à¤­à¤¿à¤• वाइलà¥à¤¡à¤•ारà¥à¤¡ पà¥à¤°à¤¯à¥‹à¤— " "गरà¥à¤¨à¥‡), आई पी होसà¥à¤Ÿ ठेगाना (दà¥à¤µà¥ˆ IPv4 र IPv6) तथा नेटमासà¥à¤• भà¤à¤•ा सञà¥à¤œà¤¾à¤² ठेगानाहरू " "(१९२.१६८.०.०/२४ जसà¥à¤¤à¤¾ केही वसà¥à¤¤à¥) हà¥à¤¨à¥ ।" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन मान पà¥à¤°à¤¦à¤¾à¤¨ गरà¥à¤¨à¥‡ यूआरà¤à¤² ।" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¦à¤¾, पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रणका रूपमा पास गरिने पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ नाम ।" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "à¤à¤¸à¤à¤®à¤¬à¥€ (SMB) कारà¥à¤¯à¤¸à¤®à¥‚ह" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "विणà¥à¤¡à¥‹à¤œ नेटवरà¥à¤•िङ कारà¥à¤¯à¤¸à¤®à¥‚ह वा डोमेन जà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ à¤à¤‰à¤Ÿà¤¾ अंश हो । नयाठकारà¥à¤¯à¤¸à¤®à¥‚हका लागि " "पूरै पà¥à¤°à¤­à¤¾à¤µ पारà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤²à¥‡ लग आउट गरेर फेरि लगइन गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› ।" gnome-vfs-2.24.4/po/zh_CN.po0000644000175000001440000012650511354402652012413 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2004 Free Software Foundation, Inc. # Lou Bingyong , 2001. # Funda Wang , 2003, 2004, 2005. # LoneStar , 2004. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.8.0\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-11-11 19:12+0000\n" "PO-Revision-Date: 2009-11-21 17:45+0100\n" "Last-Translator: Tao Wei \n" "Language-Team: zh_CN \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 å·" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u 包å«ç©ºå­—符。" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u æ²¡æœ‰åŒ…å«æ–¹æ³•å。" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u æ²¡æœ‰é€‰é¡¹ç»“æŸæ ‡å¿—。" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u 有未知选项 %s。" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u æ²¡æœ‰åŒ…å«æ¨¡å—å。" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "找ä¸åˆ°é…置文件“%sâ€ï¼š%s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d 中止了处ç†ã€‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS 网络å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "自动检测å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM 驱动器" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD 数字音频" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "硬件设备å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "系统å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "内存å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS 网络å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows 共享å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "临时å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "增强型 DOS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS å·" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "未知" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s å·" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s 驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s 驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "软盘驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "CF å¡é©±åЍ噍" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "记忆棒驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "SM å¡é©±åЍ噍" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC 驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip 驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz 驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen 驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s éšèº«å¬" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s æ•°ç ç›¸æœº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "驱动器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "外部%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM 光盘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "空 CD-R 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "空 CD-RW 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM 光盘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "空 DVD-RAM 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "空 DVD-R 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "空 DVD-RW 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "空 DVD+R 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "空 DVD+RW 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW 碟片" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "音频 CD" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s å¯ç§»åЍå·" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "å·" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "未知的æ“作类型 %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "无法创建管é“以打开 GIOChannel:%s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "未知的任务ç§ç±» %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "æ“ä½œåœæ­¢" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "䏿ލè的功能。ä¸å†æ”¯æŒç”¨æˆ·ä¿®æ”¹ MIME æ•°æ®åº“。" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "无法解æžï¼š%s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "更多的解æžé”™è¯¯å°†è¢«å¿½ç•¥ã€‚" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "没有错误" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "文件找ä¸åˆ°" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "一般错误" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "内部错误" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "æ— æ•ˆçš„å‚æ•°" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "䏿”¯æŒçš„æ“ä½œ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O 错误" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "æ•°æ®æŸå" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "无效的格å¼" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "é”™è¯¯çš„æ–‡ä»¶å¥æŸ„" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "文件太大" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "设备中没有剩余空间" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "åªè¯»æ–‡ä»¶ç³»ç»Ÿ" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "无效的 URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "文件未打开" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "æ‰“å¼€æ¨¡å¼æ— æ•ˆ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "访问拒ç»" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "打开的文件太多" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "文件结æŸ" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "䏿˜¯ä¸€ä¸ªç›®å½•" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "正在æ“作" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "æ“作被中断" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "文件已存在" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "é‡ä¸Šå¾ªçŽ¯çš„é“¾æŽ¥" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ä¸å…许的æ“作" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "是一个目录" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "没有足够的内存" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "主机无法找到" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ä¸»æœºåæ— æ•ˆ" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "主机没有地å€" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "登录失败" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "æ“ä½œè¢«å–æ¶ˆ" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "目录忙" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "目录éžç©º" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "太多链接" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "åªè¯»æ–‡ä»¶ç³»ç»Ÿ" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ä¸åœ¨åŒä¸€ä¸ªæ–‡ä»¶ç³»ç»Ÿä¸­" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "å字太长" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "æœåŠ¡ä¸å¯ç”¨" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "请求废弃的æœåŠ¡æ•°æ®" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "å议错误" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "找ä¸åˆ°ä¸»æµè§ˆå™¨" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "没有关è”默认动作" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL 方案没有处ç†ç¨‹åº" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "è§£æžå‘½ä»¤è¡Œå‡ºé”™" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "调用命令出错" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "达到超时" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "åç§°æœåŠ¡å™¨é”™è¯¯" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "资æºå·²é”定" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "å‡½æ•°è°ƒç”¨ä¸æŽ¨è" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "无效的文件å" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "䏿˜¯ç¬¦å·é“¾æŽ¥" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "未知的错误" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u 字节" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (无效的 Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "软盘" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ç£ç›˜" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB 驱动器" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 驱动器" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "记忆棒" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "SM 介质" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "相机" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "æ ¹å·" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "音频 CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "未知å·" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "网络æœåС噍" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "无法挂载软盘驱动器。å¯èƒ½é©±åŠ¨å™¨ä¸­æ²¡æœ‰è½¯ç›˜ã€‚" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "无法挂载å·ã€‚å¯èƒ½è®¾å¤‡ä¸­æ²¡æœ‰ä»‹è´¨ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "无法挂载软盘驱动器。å¯èƒ½è½¯ç›˜çš„æ ¼å¼æ— æ³•挂载。" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "无法挂载å·ã€‚å¦‚æžœè¯¥å·æ˜¯åŠ å¯†é©±åŠ¨å™¨ï¼Œé‚£ä¹ˆå¯èƒ½ä½¿ç”¨äº†é”™è¯¯çš„å¯†ç æˆ–密钥。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "无法挂载选中的å·ã€‚å¯èƒ½å·çš„æ ¼å¼æ— æ³•挂载。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "无法挂载选中的软盘驱动器。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "无法挂载选中的å·ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "无法å¸è½½é€‰ä¸­çš„å·ã€‚å·å¯èƒ½æ­£åœ¨è¢«ä¸€ä¸ªæˆ–更多程åºä½¿ç”¨ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "无法å¸è½½é€‰ä¸­çš„å·ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "无法从å­è¿›ç¨‹ %d(%s) ä¸­è¯»å–æ•°æ®" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "无法在 pty 中è¿è¡Œ mount 进程" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "从å­è¿›ç¨‹(%s)ä¸­è¯»å–æ•°æ®æ—¶ select() å‘生æ„外错误" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "æ— æ³•å‘ mount 进程å‘é€å¯†ç ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() å‘生æ„外错误(%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "å¯åŠ¨å‘½ä»¤å¤±è´¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "无法弹出介质" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "无法å¸è½½è¿žæŽ¥çš„æœåŠ¡å™¨" #: ../modules/computer-method.c:543 msgid "Network" msgstr "网络" #: ../modules/computer-method.c:561 msgid "Home" msgstr "主文件夹" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "文件系统" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "未知的 GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows 网络" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "远程计算机(%s)的身份未知。" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "è¿™ç§æƒ…况ç»å¸¸å‘生在您首次登录到计算机时。\n" "\n" "远程计算机å‘é€çš„身份是 %s。如果您ç»å¯¹ç›¸ä¿¡ç»§ç»­è¿›è¡Œæ˜¯å®‰å…¨çš„,请è”系系统管ç†å‘˜ã€‚" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "ä»ç„¶ç™»å½•" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "å–æ¶ˆç™»å½•" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "没有在 %s 找到有效的设置文件\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "使用 %s 环境å˜é‡æ¥æŒ‡å®šå…¶å®ƒä½ç½®ã€‚\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "您的 HTTP ä»£ç†æœåŠ¡å™¨éœ€è¦æ‚¨ç™»å½•。\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "您必须登录æ‰èƒ½è®¿é—®â€œ%sâ€ã€‚\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "您的密ç å°†ä¼šåœ¨ä¸åŠ å¯†çš„æƒ…å†µä¸‹ä¼ é€ã€‚" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "您的密ç å°†ä¼šåœ¨åŠ å¯†çš„æƒ…å†µä¸‹ä¼ é€ã€‚" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "您必须登录æ‰èƒ½è®¿é—® %s 域 %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "您必须登录æ‰èƒ½è®¿é—® %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "默认组件查看器应用程åº" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "默认终端应用程åº" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "é»˜è®¤ç»ˆç«¯çš„æ‰§è¡Œå‚æ•°" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "该应用程åºç”¨äºŽæŸ¥çœ‹éœ€è¦ç»„ä»¶æ‰èƒ½æŸ¥çœ‹çš„æ–‡ä»¶ã€‚傿•° %s 将被替æ¢ä¸ºæ–‡ä»¶çš„ URIï¼Œå‚æ•° " "%c 将被替æ¢ä¸ºç»„ä»¶ IID。" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "为需è¦ç»ˆç«¯çš„åº”ç”¨ç¨‹åºæ‰€ä½¿ç”¨çš„默认终端应用程åºã€‚" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "ä¸ºé»˜è®¤ç»ˆç«¯åº”ç”¨ç¨‹åºæ‰€ä½¿ç”¨çš„æ‰§è¡Œå‚数。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "在终端è¿è¡Œå‘½ä»¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œaimâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œcalltoâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œghelpâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œH323â€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œhttpâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œhttpsâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œinfoâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œmailtoâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œmanâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œtrashâ€URLs 的命令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "处ç†â€œaimâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "处ç†â€œcalltoâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "处ç†â€œghelpâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "处ç†â€œH323â€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "处ç†â€œhttpâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "处ç†â€œhttpsâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "处ç†â€œinfoâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "处ç†â€œmailtoâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "处ç†â€œmanâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "处ç†â€œtrashâ€URLs 的程åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œaimâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œcalltoâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œghelpâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œh323â€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œhttpâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œhttpsâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œinfoâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œmailtoâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œmanâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œtrashâ€URLs。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œaimâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œcalltoâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œghelpâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œh323â€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œhttpâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œhttpsâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œinfoâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œmailtoâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œmanâ€URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "指定的命令是å¦åº”处ç†â€œtrashâ€URLs" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "以逗å·åˆ†éš”çš„ DNS-SD 域列表,这些域将出现在“network:///â€ä½ç½®ä¸­ã€‚" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD æœåŠ¡åº”æŸ¥é˜…çš„é¢å¤–域" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "如何显示本地 DNS-SD æœåŠ¡" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "å¯ä¾›é€‰æ‹©çš„值有“mergedâ€ã€â€œseparateâ€å’Œâ€œdisabledâ€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "认è¯ä»£ç†æœåŠ¡å™¨è¿žæŽ¥" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "自动代ç†é…ç½® URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "访问 Internet 上的 HTTP æ—¶å¯ç”¨ä»£ç†æœåŠ¡å™¨è®¾ç½®ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP 代ç†ä¸»æœºå" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP 代ç†ç«¯å£" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP 代ç†ä¸»æœºå" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP 代ç†å¯†ç " #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP 代ç†ç«¯å£" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP 代ç†ç”¨æˆ·å" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "è‹¥ä¸ºçœŸï¼Œåˆ™å¯¹ä»£ç†æœåŠ¡å™¨çš„è¿žæŽ¥éœ€è¦èº«ä»½éªŒè¯ã€‚用户å/密ç ç»„åˆç”±â€œ/system/" "http_proxy/authentication_userâ€å’Œâ€œ/system/http_proxy/" "authentication_passwordâ€å®šä¹‰ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "éžä»£ç†æœåС噍" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "用于 HTTP 代ç†è®¤è¯çš„密ç ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "代ç†é…置模å¼" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS 代ç†ä¸»æœºå" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS 代ç†ç«¯å£" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "安全 HTTP 代ç†ä¸»æœºå" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "安全 HTTP 代ç†ç«¯å£" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "选择代ç†é…置模å¼ã€‚支æŒçš„值为“无â€ã€â€œæ‰‹åЍâ€ã€â€œè‡ªåЍâ€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "ä»£ç† FTP 的机器å。" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "ä»£ç† HTTP 的机器å。" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "代ç†å®‰å…¨ HTTP 的机器å。" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "代ç†å¥—接字的机器å。" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/http_proxy/hostâ€ä¸­ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/proxy/ftp_hostâ€ä¸­ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/proxy/secure_hostâ€ä¸­ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/proxy/socks_hostâ€ä¸­ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "此键中定义的主机列表将ä¸é€šè¿‡ä»£ç†(如果有设定)è€Œç›´æŽ¥è”æŽ¥ã€‚å…¶å€¼å¯ä»¥æ˜¯ä¸»æœºåã€åŸŸ" "å(支æŒé€šé…符开头的形å¼å¦‚ *.foo.com)ã€IP 主机地å€(æ—¢å¯ IPv4 äº¦å¯ IPv6)以åŠè·Ÿ" "éšç½‘络掩ç çš„网络地å€(例如 192.168.0.0/24)。" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "æä¾›ä»£ç†é…置值的 URL。" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "使用 HTTP 代ç†" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "用于 HTTP 代ç†è®¤è¯çš„用户å。" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB 工作组" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "用户所属的 Windows 网络工作组或域。为了让新工作组完全生效,用户å¯èƒ½éœ€è¦æ³¨é”€å¹¶" "冿¬¡ç™»å½•。" gnome-vfs-2.24.4/po/ta.po0000644000175000001440000016224311334251016012007 00000000000000# translation of gnome-vfs.HEAD.ta.po to Tamil # translation of ta.po to Tamil # Tamil translation of gnome-vfs. # Copyright (C) 2003 gnome-vfs's copyright holder # This file is distributed under the same license as the gnome-vfs package. # Dinesh Nadarajah , 2003. # Jayaradha N , 2004. # Felix , 2006. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.ta\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-04-24 03:37+0100\n" "PO-Revision-Date: 2007-07-12 15:21+0530\n" "Last-Translator: Dr.T.Vasudevan \n" "Language-Team: Tamil \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u NUL எழà¯à®¤à¯à®¤à¯à®•à¯à®•ளை கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u à®®à¯à®±à¯ˆ பெயரை கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•விலà¯à®²à¯ˆ." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u இல௠மà¯à®Ÿà®¿à®µà¯ கà¯à®±à®¿à®ªà¯à®ªà®¿ விரà¯à®ªà¯à®ªà®™à¯à®•ள௠இலà¯à®²à¯ˆ." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u தெரியாத விரà¯à®ªà¯à®ªà®¤à¯à®¤à¯ˆ கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯ %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u இல௠தொகà¯à®¤à®¿ பெயர௠இலà¯à®²à¯ˆ." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "`%s' அமைவடிவ கோபà¯à®ªà¯ கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d நிறà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿ கூறà¯à®•ளà¯." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS கொளà¯à®ªà¯Šà®°à¯à®³à¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS வலைபà¯à®ªà®¿à®©à¯à®©à®²à¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "தானாக-கணà¯à®Ÿà®±à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ நிறை" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD டிஜிடà¯à®Ÿà®²à¯ ஆடியோ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "வனà¯à®ªà¯Šà®°à¯à®³à¯ சாதனமà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 லினகà¯à®¸à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 லினகà¯à®¸à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "விணà¯à®Ÿà¯‹à®¸à¯ எனà¯à®Ÿà®¿ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "கணினி பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "நினைவிடம௠பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "மினிகà¯à®¸à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS வலைபà¯à®ªà®¿à®©à¯à®©à®²à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "நெடà¯à®µà¯‡à®°à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 லினகà¯à®¸à¯ தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS லினகà¯à®¸à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "விணà¯à®Ÿà¯‹à®¸à¯ பகிரà¯à®¨à¯à®¤à®³à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "சிறபà¯à®ªà¯ à®à®±à¯à®±à®¿ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "சோலாரிஸà¯/BSD பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs சோலாரிஸ௠பகிரà¯à®µà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs சோலாரிஸ௠பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "சன௠SAM-QFS பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "தறà¯à®•ாலிக தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "மேமà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿ DOS பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "விணà¯à®Ÿà¯‹à®¸à¯ VFAT பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "ஜெனிகà¯à®¸à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS லினகà¯à®¸à¯ பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS பிரிவà¯" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "தெரியாத" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "நெகிழà¯à®µà®Ÿà¯à®Ÿà¯ இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "பொரà¯à®¤à¯à®¤à®®à®¾à®© ஃபà¯à®³à®¾à®·à¯ இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "நினைவக அடà¯à®Ÿà¯ˆ இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "நலà¯à®² ஊடக இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ஜிப௠இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ஜாஸ௠இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "பேனா இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s இசை இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s டிஜிடà¯à®Ÿà®²à¯ கேமரா" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "வெளியாரà¯à®¨à¯à®¤ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-R வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "வெறà¯à®±à¯ CD-R வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "வெறà¯à®±à¯ CD-RW வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "வெறà¯à®±à¯ DVD-RAM வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "வெறà¯à®±à¯ DVD-R வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "வெறà¯à®±à¯ DVD-RW வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "வெறà¯à®±à¯ DVD+R வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "வெறà¯à®±à¯ DVD+RW வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ஆடியோ வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s அகறà¯à®±à®¤à¯à®¤à®•à¯à®• தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "தொகà¯à®¤à®¿" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "தெரியாத %u செயல௠வகை" #: ../libgnomevfs/gnome-vfs-job.c:1025 #: ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "திறநà¯à®¤à®¿à®°à¯à®•à¯à®•à¯à®®à¯ GIOChannelகà¯à®•௠கà¯à®´à®¾à®¯à¯ படைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "தெரியாத %u பணி வகை" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "செயல௠நிறà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "மதிபà¯à®ªà®±à¯à®± செயலà¯. மைம௠தரவà¯à®¤à¯à®¤à®³à®¤à¯à®¤à®¿à®²à¯ பயனீடà¯à®Ÿà®¾à®³à®°à¯ மாறà¯à®±à®®à¯ செயà¯à®µà®¤à®±à¯à®•௠ஆதரவ௠இலà¯à®²à¯ˆ" #: ../libgnomevfs/gnome-vfs-parse-ls.c:720 #, c-format msgid "Could not parse: %s" msgstr "அலகிடமà¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:722 msgid "More parsing errors will be ignored." msgstr "எஞà¯à®šà®¿à®¯ பகà¯à®ªà¯à®ªà¯ பிழைகள௠தவிரà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®®à¯" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "பிழைகள௠கிடையாதà¯" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "கோபà¯à®ªà¯ காணவிலà¯à®²à¯ˆ" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "இனமறà¯à®± பிழை" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "உளà¯à®³à®®à¯ˆ பிழை" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "செலà¯à®²à®¾à®¤ அளவà¯à®°à¯à®•à¯à®•ளà¯" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ஆதரவறà¯à®± செயலà¯" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O பிழை" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "சீரழிநà¯à®¤ தரவà¯" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "செலà¯à®²à¯à®ªà®Ÿà®¿à®±à¯à®± படிவமà¯" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "கோபà¯à®ªà¯ கைபà¯à®ªà®¿à®Ÿà®¿ கெடà¯à®Ÿà®¤à¯" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "மிகப௠பெரிய கோபà¯à®ªà¯" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "கரà¯à®µà®¿à®¯à®¿à®²à¯ இடம௠கிடையாதà¯" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "கோபà¯à®ªà¯ அமைபà¯à®ªà¯ வாசிதà¯à®¤à®²à¯ மடà¯à®Ÿà¯à®®à¯‡" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "செலà¯à®²à¯à®ªà®Ÿà®¿à®±à¯à®± URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "கோபà¯à®ªà¯ திறநà¯à®¤à¯ இலà¯à®²à¯ˆ" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "திறகà¯à®•à¯à®®à¯ à®®à¯à®±à¯ˆà®®à¯ˆ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•ாதà¯" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "அனà¯à®®à®¤à®¿ மறà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "அதிகமான கோபà¯à®ªà¯à®•ள௠திறகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®©" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "கோபà¯à®ªà¯ à®®à¯à®Ÿà®¿à®µà¯" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "அடைவ௠இலà¯à®²à¯ˆ" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "இயகà¯à®•ம௠நடைபெறà¯à®•ினà¯à®±à®¤à¯" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "இயகà¯à®•ம௠தடைசெயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "கோபà¯à®ªà¯ à®à®±à¯à®•னவே உணà¯à®Ÿà¯" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "இணைபà¯à®ªà¯à®•ள௠மீணà¯à®Ÿà¯à®®à¯ செலà¯à®µà®¤à¯ நிறà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "செயà¯à®•ைகà¯à®•௠அனà¯à®®à®¤à®¿ கிடையாதà¯" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "இத௠ஓர௠அடைவà¯" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "நினைவகம௠போதாதà¯" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "விரà¯à®¨à¯à®¤à¯‹à®®à¯à®ªà¯ காணவிலà¯à®²à¯ˆ" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "செலà¯à®²à®¾à®¤ விரà¯à®¨à¯à®¤à¯‹à®®à¯à®ªà¯ பெயரà¯" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "விரà¯à®¨à¯à®¤à¯‹à®®à¯à®ªà¯à®•à¯à®•௠மà¯à®•வரி கிடையாதà¯" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "உளà¯à®¨à¯à®´à¯ˆà®µà¯ நொடிபà¯à®ªà®Ÿà¯ˆà®¨à¯à®¤à®¤à¯" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "செயà¯à®•ை நீகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "அடைவ௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•ினà¯à®±à®¤à¯" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "தேகà¯à®•கம௠வெறà¯à®±à®¾à®©à®¤à¯ அலà¯à®²" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "மிககà¯à®•ூடிய இணைபà¯à®ªà¯à®•ளà¯" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "கோபà¯à®ªà¯ அமைபà¯à®ªà¯ வாசிதà¯à®¤à®²à¯ மடà¯à®Ÿà¯à®®à¯‡" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ஒரே கோபà¯à®ªà¯ அமைபà¯à®ªà®¿à®²à¯ இலà¯à®²à¯ˆ" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "மிக-நீணà¯à®Ÿ பெயரà¯" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "சேவை கிடையாதà¯" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "தேவையறà¯à®± சேவைதகவலà¯à®•ளை கேடà¯à®•ிறதà¯" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "நெறிமà¯à®±à¯ˆ பிழை" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "à®®à¯à®¤à®©à¯à®®à¯ˆ மேலோடி கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "இயலà¯à®ªà®¾à®© செயல௠எதà¯à®µà¯à®®à¯ சேரà¯à®•à¯à®•பà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL à®®à¯à®±à¯ˆà®•à¯à®•ான கையாளல௠எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "கடà¯à®Ÿà®³à¯ˆ வரிசை அலகிடà¯à®®à¯à®ªà¯‹à®¤à¯ பிழை" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "கடà¯à®Ÿà®³à¯ˆ தொடஙà¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯ பிழை" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "காலம௠கடநà¯à®¤à®¤à¯" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "பெயர௠சேவகன௠பிழை" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "வளஙà¯à®•ள௠பூடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "செயலà¯à®•à¯à®•ான அழைபà¯à®ªà¯ தேவையறà¯à®±à®¤à®¾à®•à¯à®•பà¯à®ªà®Ÿà®¤à¯" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "தவறான கோபà¯à®ªà¯ பெயரà¯" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "ஒர௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯ இணைபà¯à®ªà¯ இலà¯à®²à¯ˆ" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "தெரியாத பிழை" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u பைடà¯" msgstr[1] "%u பைடà¯à®Ÿà¯à®•ளà¯" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f கி.பை" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f மெ.பை" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f கிகா.பை" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (தவராண யà¯à®©à®¿à®•ோடà¯)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "நெகிழà¯à®µà®Ÿà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "வடà¯à®Ÿà¯" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USBப௠இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 இயகà¯à®•ி" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "நினைவக இணைபà¯à®ªà¯" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "பà¯à®¤à¯à®¤à®¿à®šà®¾à®²à®¿ ஊடகமà¯" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "கேமரா" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "மூல பிரிவà¯" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "ஆடியோ CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "தெரியாத பிரிவà¯" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "வலைபà¯à®ªà®¿à®©à¯à®©à®²à¯ சேவகனà¯" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "நெகிழà¯à®µà®Ÿà¯à®Ÿà¯ இயகà¯à®•ியை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. à®’à®°à¯à®µà¯‡à®²à¯ˆ நெகிழà¯à®µà®Ÿà¯à®Ÿà¯ இலà¯à®²à®¾à®®à®²à¯ இரà¯à®•à¯à®•லாமà¯" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "பிரிவை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.காரணம௠சாதனதà¯à®¤à®¿à®²à¯ ஊடகம௠இலà¯à®²à®¾à®®à®²à¯ இரà¯à®•à¯à®•லாமà¯" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "Unable to mount the floppy drive. The floppy is probably in a format that cannot be mounted." msgstr "நெகிழà¯à®µà®Ÿà¯à®Ÿà¯ இயகà¯à®•ியை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. நெகிழà¯à®µà®Ÿà¯à®Ÿà¯ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®¾à®¤ நிலையில௠உளà¯à®³à®¤à¯" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "Unable to mount the volume. If this is an encrypted drive, then the wrong password or key was used." msgstr "தொகà¯à®¤à®¿à®¯à¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. இத௠கà¯à®±à®¿à®®à¯à®±à¯ˆ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ இயகà¯à®•ி எனà¯à®±à®¾à®²à¯, பின௠தவறான கடவà¯à®šà¯à®šà¯Šà®²à¯ அலà¯à®²à®¤à¯ விசை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "Unable to mount the selected volume. The volume is probably in a format that cannot be mounted." msgstr "தேரà¯à®µà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ பிரிவை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. சாதனம௠à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®¾à®¤ நிலையில௠உளà¯à®³à®¤à¯" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "தேரà¯à®µà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ நெகிழà¯à®µà®Ÿà¯à®Ÿà¯ இயகà¯à®•ியை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "தேரà¯à®µà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ பிரிவை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "Unable to unmount the selected volume. The volume is in use by one or more programs." msgstr "தேரà¯à®µà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ தொகà¯à®¤à®¿à®¯à¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. தொகà¯à®¤à®¿ ஒனà¯à®±à¯ அலà¯à®²à®¤à¯ மேறà¯à®ªà®Ÿà¯à®Ÿ நிரலà¯à®•ளால௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•ிறதà¯." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "தேரà¯à®µà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ பிரிவை à®à®±à¯à®±à®¤à¯à®¤à¯ˆ நிறà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "சேய௠செயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ தரவினை படிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ptyல௠à®à®±à¯à®±à¯à®®à¯ பணியை இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "select()ல௠சேய௠செயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ தரவà¯à®•ளை படிகà¯à®•à¯à®®à¯ போத௠பிழை (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "கடவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ à®à®±à¯à®±à¯à®®à¯ பணிகà¯à®•௠அனà¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() ல௠எதிரà¯à®ªà®¾à®°à®¾à®¤ பிழை(%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ தà¯à®µà®•à¯à®•à¯à®µà®¤à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ஊடகதà¯à®¤à¯ˆ வெளியேறà¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "இணைகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿ சேவகனின௠இணைபà¯à®ªà¯ˆ தà¯à®£à¯à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: ../modules/computer-method.c:543 msgid "Network" msgstr "வலைபà¯à®ªà®¿à®©à¯à®©à®²à¯" #: ../modules/computer-method.c:561 msgid "Home" msgstr "இலà¯à®²à®®à¯" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "கோபà¯à®ªà¯ அமைபà¯à®ªà¯à®•ளà¯" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "தெரியாத GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "விணà¯à®Ÿà¯‹à®¸à¯ வலைபà¯à®ªà®¿à®©à¯à®©à®²à¯à¯" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "(%s) தொலை கணினியை கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely sure it is safe to continue, contact the system administrator." msgstr "" "இத௠மà¯à®¤à®²à¯à®®à¯à®¤à®²à®¾à®• கணினிகà¯à®•à¯à®³à¯ நà¯à®´à¯ˆà®¯à¯à®®à¯ போத௠à®à®±à¯à®ªà®Ÿà¯à®®à¯\n" "\n" "தொலை கணினி %s கà¯à®•௠அடைளாளம௠அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®®à¯. தொடரà¯à®µà®¤à¯ பாதà¯à®•ாபà¯à®ªà®¾à®©à®¤à¯ என நீஙà¯à®•ள௠நினைதà¯à®¤à®¾à®²à¯ கணினி மேலாளரை அணà¯à®•வà¯à®®à¯." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "எபà¯à®ªà®Ÿà®¿ இரà¯à®¨à¯à®¤à®¾à®²à¯à®®à¯ உளà¯à®¨à¯à®´à¯ˆà®¯à®µà¯à®®à¯" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "உள௠நà¯à®´à¯ˆà®µà®¤à¯ˆ ரதà¯à®¤à¯ செயà¯à®¯à®µà¯à®®à¯" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "செலà¯à®²à®¾à®¤ அமைபà¯à®ªà¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறதà¯%s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "வேற௠இடதà¯à®¤à¯ˆ கà¯à®±à®¿à®•à¯à®• %s சூழல௠மாறà¯à®±à®¿à®¯à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "உஙà¯à®•ள௠HTTP பதிலாள௠உஙà¯à®•ள௠உள௠அனà¯à®®à®¤à®¿ பெற வேணà¯à®Ÿà¯à®•ிறதà¯.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\"஠அணà¯à®• உளà¯à®…னà¯à®®à®¤à®¿ பெறவà¯à®®à¯.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "உஙà¯à®•ள௠கடவà¯à®šà¯à®šà¯Šà®²à¯ கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®±à¯à®±à®¤à®¾à®• மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "உஙà¯à®•ள௠கடவà¯à®šà¯à®šà¯Šà®²à¯ கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®• மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "பà¯à®°à®µà®²à®©à¯ %s஠அணà¯à®• நீஙà¯à®•ள௠உள௠அனà¯à®®à®¤à®¿ பெற வேணà¯à®Ÿà¯à®®à¯%s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s஠அணà¯à®• நீஙà¯à®•ள௠உள௠அனà¯à®®à®¤à®¿ பெற வேணà¯à®Ÿà¯à®®à¯\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "இயலà¯à®ªà®¾à®© ான பொரà¯à®³à¯ காட பயனà¯à®ªà®¾à®Ÿà¯à®•ளà¯à®¿à®©à¯" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯ பயனà¯à®ªà®¾à®Ÿà¯à®•ளà¯" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®±à¯à®•ான Exec அளவà¯à®°à¯" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." msgstr "கோபà¯à®ªà¯à®•ளை பாரà¯à®•à¯à®• தேவைபà¯à®ªà®Ÿà¯à®®à¯ பயனà¯à®ªà®¾à®Ÿà¯à®•ளà¯à®•à¯à®•௠பொரà¯à®³à¯à®•ள௠தேவை. அளவà¯à®°à¯ %s அதன௠URI யால௠மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®®à¯, அளவà¯à®°à¯ %c அதன௠பொரà¯à®³à¯ அடையாளதà¯à®¤à®¾à®²à¯ மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®®à¯" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "The default terminal application to use for applications that require a terminal." msgstr "à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®±à®•௠தேவைபà¯à®ªà®Ÿà¯à®®à¯ இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯ பயனà¯à®ªà®¾à®Ÿà¯ " #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "exec அளவà¯à®°à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¿à®¯ இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯ பயனà¯à®ªà®¾à®Ÿà¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\"஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\"கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" கையாளà¯à®µà®¤à®±à¯à®•ான URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"aim\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "True if the command specified in the \"command\" key should handle \"callto\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"aim\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"ghelp\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "True if the command specified in the \"command\" key should handle \"h323\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"h323\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "True if the command specified in the \"command\" key should handle \"http\" URLs." msgstr "\"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"http\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯,உணà¯à®®à¯ˆ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "True if the command specified in the \"command\" key should handle \"https\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"ghelp\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "True if the command specified in the \"command\" key should handle \"info\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"info\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "True if the command specified in the \"command\" key should handle \"mailto\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"mailto\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "True if the command specified in the \"command\" key should handle \"man\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"man\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "True if the command specified in the \"command\" key should handle \"trash\" URLs." msgstr "உணà¯à®®à¯ˆ, \"command\" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"trash\" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"aim\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"callto\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"ghelp\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"h323\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"http\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"https\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"info\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"mailto\"URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"man\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ \"trash\" URL ஠கையாளà¯à®®à®¾" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "Comma separated list of DNS-SD domains that should be visible in the \"network:///\" location." msgstr "DNS-SD களஙà¯à®•ளின௠காலà¯à®ªà¯à®³à¯à®³à®¿à®¯à®¾à®²à¯ பிரிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿ படà¯à®Ÿà®¿à®¯à®²à¯ \"network:///\" இடதà¯à®¤à®¿à®²à¯ தெரிய வேணà¯à®Ÿà¯à®®à¯." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD சேவைகளà¯à®•à¯à®•௠கூடà¯à®¤à®²à¯ களஙà¯à®•ளà¯" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "உள௠DNS-SD சேவையை காடà¯à®Ÿà¯à®µà®¤à¯ எபà¯à®ªà®Ÿà®¿" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "இயனà¯à®± மதிபà¯à®ªà¯à®•ள௠\"merged\", \"separate\" மறà¯à®±à¯à®®à¯ \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "பà¯à®°à®¾à®•à¯à®¸à®¿ வேகன௠இணைபà¯à®ªà®¿à®©à¯ அனà¯à®®à®¤à®¿à®¯à¯ˆ சரிபாரà¯" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "தானாக பà¯à®°à®¾à®•à¯à®¸à®¿ சேவகனை அமைகà¯à®•à¯à®®à¯ URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "HTTP அணà¯à®•à¯à®®à¯ போத௠பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà¯ˆ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP பà¯à®°à®¾à®•à¯à®¸à®¿ வழி" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ கடவà¯à®šà¯à®šà¯Šà®²à¯" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ வழி" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பயனீடà¯à®Ÿà®¾à®³à®°à¯ பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "If true, then connections to the proxy server require authentication. The username/password combo is defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "உணà¯à®®à¯ˆà®¯à¯†à®©à®¿à®²à¯ பதிலாள௠சேவையகதà¯à®¤à¯ˆ இணைகà¯à®• à®…à®™à¯à®•ீகாரம௠தேவை. \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"ஆலà¯à®ªà®¯à®©à®°à¯à®ªà¯†à®¯à®°à¯/கடவà¯à®šà¯à®šà¯Šà®²à¯ சேரà¯à®•à¯à®•ை பெடà¯à®Ÿà®¿à®¯à®¿à®²à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "பà¯à®°à®¾à®•à¯à®¸à®¿ இலà¯à®²à®¾à®¤ பà¯à®°à®µà®²à®©à¯" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯à®ªà¯‹à®¤à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¿à®¯ கடவà¯à®šà¯à®šà¯Šà®²à¯" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà¯ பாஙà¯à®•à¯" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS பà¯à®°à®¾à®•à¯à®¸à®¿ வழி" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "பாதà¯à®•ாபà¯à®ªà®¾à®© HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "பாதà¯à®•ாபà¯à®ªà®¾à®© HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ வழி" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." msgstr "பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà¯ வழியை தேரà¯à®µà¯ செயà¯à®¯à®µà¯à®®à¯. \"none\", \"manual\", \"auto\" மதிபà¯à®ªà¯à®•ளà¯à®•à¯à®•௠ஆதரவ௠உணà¯à®Ÿà¯" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP பà¯à®°à®¾à®•à¯à®¸à®¿ கà¯à®•ான கணினி பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ கà¯à®•ான கணினி பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "பாதà¯à®•ாபà¯à®ªà®¾à®© HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ கà¯à®•ான கணினி பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "socks வழியாக பà¯à®°à®¾à®•à¯à®¸à®¿à®•à¯à®•ான கணினி பெயரà¯" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." msgstr "\"/system/http_proxy/host\" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறதà¯" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." msgstr "\"/system/proxy/ftp_host\" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறதà¯" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." msgstr "\"/system/proxy/secure_host\" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறதà¯" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." msgstr "\"/system/proxy/socks_host\" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறதà¯" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "இநà¯à®¤ படà¯à®Ÿà®¿à®¯à®²à¯ பà¯à®°à®¾à®•à¯à®¸à®¿à®¯à¯ˆ(செயலிலிரà¯à®¨à¯à®¤à¯à®®à¯) நேரடியாக பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¾à®¤ கணினியின௠படà¯à®Ÿà®¿à®¯à®²à¯ˆ காடà¯à®Ÿà¯à®•ிறதà¯. இதில௠பà¯à®°à®µà®²à®©à¯ பெயரà¯, டொமைனà¯(கà¯à®´à¯à®•à¯à®•à¯à®±à®¿à®•ளை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯ உம௠*.foo.com) பà¯à®°à®µà®²à®©à¯ IP à®®à¯à®•வரி (both IPv4 மறà¯à®±à¯à®®à¯IPv6) மறà¯à®±à¯à®®à¯ வலைபà¯à®ªà®¿à®©à¯à®©à®²à¯ à®®à¯à®•வரியà¯à®Ÿà®©à¯ வலைமூடியà¯à®®à¯ இரà¯à®•à¯à®•à¯à®®à¯ (உதாரணம௠192.168.0.0/24)" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà®¿à®©à¯ மதிபà¯à®ªà¯ˆ தரà¯à®®à¯ URL" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿à®¯à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP பà¯à®°à®¾à®•à¯à®¸à®¿à®¯à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯ போத௠அனà¯à®®à®¤à®¿ பெற பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¿à®¯ பயனீடà¯à®Ÿà®¾à®³à®°à¯ பெயரà¯" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB பணிகà¯à®´à¯" #: ../schemas/system_smb.schemas.in.h:2 msgid "The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in." msgstr "பயனர௠விணà¯à®Ÿà¯‹à®¸à¯ பிணைய பணி கà¯à®´à¯ அலà¯à®²à®¤à¯ களதà¯à®¤à®¿à®©à¯ பகà¯à®¤à®¿à®¯à®¾à®• உளà¯à®³à®¾à®°à¯. பà¯à®¤à®¿à®¯ பணிகà¯à®•à¯à®´à¯ à®®à¯à®´à¯à®µà®¤à¯à®®à¯ பணி செயà¯à®¯ பயனர௠வெளியேற வேணà¯à®Ÿà¯à®®à¯ அலà¯à®²à®¤à¯ மீணà¯à®Ÿà¯à®®à¯ உள௠அனà¯à®®à®¤à®¿ பெற வேணà¯à®Ÿà¯à®®à¯." gnome-vfs-2.24.4/po/zu.po0000644000175000001440000012167411334251016012044 00000000000000# Zulu translation of gnome-vfs. # Copyright (C) 2004 Zuza Software Foundation (Translate.org.za) # This file is distributed under the same license as the gnome-vfs package. # # Zuza Software Foundation , 2004 # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.8-branch\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-12-09 12:32+0200\n" "Last-Translator: Zuza Software Foundation \n" "Language-Team: Zulu \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" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "Ngakhonanga ukuqalisa uBonono" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "Ngakhonanga ukuqalisa gnome vfs" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "Ivolumu ye ISO 9660" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d iqukethe izici Ezingekho." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d ayiqukethe gama lendlela yokwenza." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d ayinakhetho lombekisimphetho." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%d inezikhetho ezingaziwa %s." #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d ayiqukethe gama lesibumbo." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Ihele lokulinginisa `%s' alitholakalanga: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "Ivolumu ye AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "Ivolumu yesixhumanisi ye AFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "Ivolumu etholakala ngokuzenzekela" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "Umnyango wokungenisa CD-ROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "Isisakazi sezinombholo CD" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "Ivolumu yezinto ezakhe isga-nyezi" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Ivolumu Ext2 Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Ivolumu Ext3 Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "Ivolumu ye MSDOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "Ivolumu ye MacOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "Ivolumu ye CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Ivolumu Hsfs CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "Ivolumu ye JFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Ivolumu ye Windows NT" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "Ivolumu yehlelo" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "Ivolumu yomgqondo" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Ivolumu ye Minix" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "Ivolumu yesixhumanisi ye NFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Ivolumu ye Netware" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "Ivolumu ye ReiserFS Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "Ivolumu yokwabelana ye Windows" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "Ivolumu ye SuperMount" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "Ivolumu ye DVD" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Ivolumu ye Solaris/BSD" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Ivolumu ye Udfs Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Ivolumu ye Pcfs Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "Ivolumu ye Sun SAM-QFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "Ivolumu efakiwe kwi DOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Ivolumu ye Windows VFAT" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Ivolumu ye Xenix" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "Ivolumu ye XFS Linux" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "Ivolumu ye XIAFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Ngaziwa" #: libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Uhlobo lokusbenza olungaziwa %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ayikhoni ukudala ithumbu lokuvula GIOChannel: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Uhlobo lokusbenza olungaziwa %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "Umsebenzi umisiwe" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Isisebenzisi sicishiwe. Ukulungiswa ngumsebenzisi phakathi kwe MIME " "azisaxhaswa." #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Ihlulekile ukudlulisa: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "Amaphutha amaningi awasayi kunakwa." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Iphutha alikho" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Ihele alithilakalanga" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Iphutha elejwayelekile" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Iphutha langaphakathi" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Izilinganiso ezingaphandle" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "Umsebenzi ongasekiwe" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "Iphutha I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Imininingwane imosakele" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Ukulungisa akukhonakalanga" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Ukuphathwa okubi kwehele" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Ihele likhulu kakhulu" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Akhukho isikhala emshinini" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "Ukufundwa kuphela ihele" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "URI engafanele" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Ihele alivuleki" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Indlela yokuvula ayifanele" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Imvume yokungena ayikho" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "Ohele abaniningi bavuliwe" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Ukuphela kwehele" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Akusiyo indlela" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Umsebenzi uyaqhubeka" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "Umsebenzi uthikamezisiwe" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Ihele likhona" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Ukuxhumana kutholakele" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Umsebenzi awuvunyelwe" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Yindlela" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Akukho umqondo owanele" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Umphathi akatholakalanga" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Igama lomphathi alifanele" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "Umphathi akanalo ikheli" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Ukungena akukhonekanga" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "Umsebenzi ucishiwe" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Indlela ixakekile" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Indlela ikhungethe" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Ukuxhumana okuningi" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "Ukufundwa kuphela ihele" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Ayikho endaweni eyodwa yehele" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Igama lide kakhulu" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "Umsebenzi awukho" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Isicelo sixhasa imininingwane yomsebenzi" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Iphutha lenqubo" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Ihlulekile ukuhola isiyaluzi esikhulu" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Akukho senzo esiyiphutha esifaniswayo" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "Akukho kubambisana kweqembu le URL" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Iphutha elidlula umugqa wokuyala" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Iphutha elisebenzisa umyalezo" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "Isikhathi sokuphuma siphelile" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 msgid "Nameserver error" msgstr "Iphutha legamalomxhumanisi" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "Umthelela uvaliwe" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "Umsebenzi wokushaya ucishiwe" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Iphutha elingaziwa" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (Ikhode engafanele)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "Icwecwe 3.5\"" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "CD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "CD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "Icwecwe" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "Umnyango wokungenisa i-USB" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "Umnyango wokungnisa IEEE1394" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "CF" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "SD/MMC" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "Uthi Lenkumbulo" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "Umthonga Ohlakaniphile" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "Umnyango wokungenisa i-Zip" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Isithwebuli" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "DVD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "Ivolumu yempande" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "Icwecwe Elilalekalayo" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "Ivolumu engaziwa" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "Umsezi wolwembu" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ngakhoni ukuthola umkhawu wefloppy: Kungenza akuna-floppy emkhawini." #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ngakhoni ukuthola ivolumu. Kungeza akunamthonga esithweni." #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ngakhoni ukuthola umkhamu wefloppy. Kungenzeka ifloppy lesimweni " "esingetholakale." #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ngakhona ukuthola ivolumu ekhethiwe. Kungenzeka ivolumu isesimweni " "esingetholakale." #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "Ngakhoni ukuthola ukhawu wefloppy okhethiwe." #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "Ngakhoni ukuthola ivolumu ekhethiwe." #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "Ngakhoni ukungatholi ivolumu ekhethiwe." #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "Hlelekile ukuqala umlayelo" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "Ngakhoni ukukhipha umthonga" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "Ngakhoni ukungatholi isebenzisi esixhumanisiwe" #: modules/computer-method.c:545 msgid "Network" msgstr "Ulwembu" #: modules/computer-method.c:563 msgid "Home" msgstr "Ekhaya" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "Uhlelo-hele" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSFunaSikhundla %d ongaziwa" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Ifasitela lelwembu" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Isikhombisi sesiga-nyezi (%s) esibuqamama asaziwa." #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Lokhu kwenzeka uma ungena kwisiga-nyezi okokuqala.\n" "\n" "Isikhombisi esithunyelwe isiga-nyezi esibuqamama yi-%s. Mawufuna ukuqiniseka " "ukuthi ungaqhubeka, xhumana nomphathi hlelo." #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "Ngena nje" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "Cima umngenisi-ngena" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ngatholi ihele elihlelwe ngokomthetho e-%s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Sebenzisa i-%s enhlalweni eguqukayo ukukhomba indawo ehlukile.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Ibetho elijwayelekile leMoniker" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "ihele elikaMoniker elinwebiwe" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "pathelene neGnome VFS moniker wonke" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "pathelene nehele moniker" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Iphutha lesitho sokusetshenziswa sokubuka" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Iphutha lesigungu sokusetshenziswa" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Sebenzisa umgomo wephutha lesigungu" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Isisebenziso sokubona ohele abadinga isitho sokubabona. Isigamu %s " "sizokubuyiselwa ngehele URIs, isigamu %c sizokubuyiselwa ngesitho IID." #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Iphutha lesisebenzisi esigungwini sokusebenzisa izisebenzisi ezidinga " "isigungu." #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Umgomo osetshenziswa ukusebenzisa iphutha lesigungu sesisebenziso." #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Sebenzisa isilayezo esigungwini" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"aim\" URLs, uma igunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"callto\" URLs, uma igunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"ghelp\" URLs, uma igunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"h323\" URLs, uma ingunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"http\" URLs, uma ingunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"https\" URLs, uma ingunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"info\" URLs, uma ingunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"mailto\" URLs, uma ingunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"man\" URLs, uma ingunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Umlayezo osetshenziswa ukuphatha \"trash\" URLs, uma ingunyaziwe." #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Umphathi we \"aim\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Umphathi we \"callto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Umphathi we \"ghelp\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Umphathi we \"h323\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Umphathi we \"http\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Umphathi we \"https\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Umphathi we \"info\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Umphathi we \"mailto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Umphathi we \"man\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Umphathi we \"trash\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"aim\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"callto\" " "URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"ghelp\" " "URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"h323\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"http\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"https\" " "URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"info\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"mailto\" " "URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"man\" URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Iqiniso uma umlayezo oshiwo ku nkinombo \"command\" ungaphatha \"trash\" " "URLs." #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL " "lingasetshenziswa esigungwini." #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"aim\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"callto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"ghelp\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"h323\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"http\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"https\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"info\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"mailto\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"man\" URLs" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Noma umlayezo oshiwo ungaphatha \"trash\" URLs" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" "Ikhefana elahlukanise uhlu lwendawo yo-dns-sd okufanele ibonakela esabelweni " "solwembu." #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "Izindawo ezangezelelwe zokufuna izisebenzisi zedns-sd ku" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Utshengisa kanjani izisebenzisi zei-DNS-SD zasendaweni" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Amanani anganzeka ilawa \"hlangana\", \"hlukene\" kanye \"khininda\"." #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Qiniseka ngesixhumaniso sesibenzisi esingumbambeli" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Isilinganisi esingumbambeli esizenzekalelayo URL" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Igunyaza uhlelo lokubambisa uma ungena ku-HTTP ku-lwembu jikelele." #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Umbambeli wegama lommemi ku-FTP" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Umbambeli wetheku Ku-FTP" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Umbambeli wegama lommemi ku-HTTP" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Umbambeli womngenisi-bizo ku-HTTP" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Umbambeli wetheku ku-HTTP" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Umbambeli webizo-lukusetshenziswa ku-HTTP" #: schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Uma kuyiqiniso, izixhumanisi kusimbambeli sesisebenzisi sidinga isiqiniseko. " "Ibizo-lesisetshenziso/umngenisi-bizo elicacicwa ngo \"/system/http_proxy/" "authentication_user\" kanye \"/system/http_proxy/authentication_password\"." #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Ummemi ongayisibambisi" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Umngenisi-bizo wokungena njengesiqiniseko uma wenza isibambiso se-HTTP." #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Isimo sesibambiso sesilinganisi" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "umbambeli wegama lommemi ku-SOCKS" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "umbambeli wetheku ku-SOCKS" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Umbambeli wegama lommemi ku-HTTP elikhuselekile" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Umbambeli wethuku ku-HTTP okhuselekile" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Khetha isimo sesibambiso sesilinganisi. Amanani asekelwe yilawa \"ngekho\", " "\"manual\", \"zenzakalelayo\"." #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Igama lomshini kusibambeli se-FTP sidlulele." #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Igama lomshini kusibambeli se-HTTP sidlulele." #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Igama lomshini kusibambeli ikhusele i-HTTP ekudluleni." #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Igama lomshini kusibambeli sesocks sidlulele." #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Itheku emshinini lichazwa nge \"/system/http_proxy/host\" obambisela ngayo." #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Itheku emshinini lichazwa nge \"/system/proxy/ftp_host\" obambisela ngayo." #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Itheku emshinini lichazwa nge \"/system/proxy/secure_host\" obambisela ngayo." #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Itheku emshinini lichazwa nge \"/system/proxy/socks_host\" obambisela ngayo." #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Lenkinobho iqukethe uhlu lwezimmemi ezixhunywe ngqo, kuno kuthi usebenzise " "isibambeli (uma sisebenza). Amanani kungaba amabizo-mmemi, indawo " "(usebenzisa isikhethi sokuqala njenge *.foo.com), amakheli ommemi IP " "(omabili oIPv4 ne IPv6) kanye nekheli lolwembu nesidleke zokuzivala ubuso " "(into enjenge 192.168.0.0/24)." #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "iURL enikezela ngamanani esilinganisi sesibambeli." #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Sebenzisa isibambeli HTTP" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Umsebenzisi gama ezedlula njengesiqiniseko mawenza isibambeli se-HTTP." #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Iqembu lokusebenza SMB" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "Ifasitela leqembu lomsebenzi umsebenzisi ayiqembu lalo" #~ msgid "File could not be opened: %s" #~ msgstr "Ihele alivulekanga : %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "Yehlulekile ukuvula ihele '%s': %s" #~ msgid "File is empty" #~ msgstr "Ihele alinaluthu" #~ msgid "Failed to read from file '%s': %s" #~ msgstr "Ngehlulekile ukufunda kuhele '%s': %s" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "imingenelo yedesktop iqukethe umusho '%s' engesi umngeni, qembu, noma " #~ "uphawulo" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "" #~ "ihele leminingenelo yedesktop ayiqali ngeqembu lokuqala elisemthethweni" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "imingenelo yedesktop iqukethe umusho '%s' engesi yiUTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "imingenelo yedesktop iqukethe imibhalo eyimfihlo '%s' engaziwa" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "imingenelo yedesktop ayina qembu '%s'" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "imingenelo yedesktop ayinankinombo '%s'" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "imingenelo yedesktop iqukethe inkinombo '%s' enenani elingehunyushwe." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "imingenelo yedesktop ayiqukethe nani elihunyushiwe lenkinobho '%s' nge '%" #~ "s' yasendaweni." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "" #~ "imingenelo yedesktop iqukethe kulandelana kumbaleki '%s' ongekho " #~ "mthethweni" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "imingenelo yedesktop iqukethe isici sokubaleka ekugcineni komusha" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Inani '%s' lingehumushwe njengenombolo." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Inani '%s' lingehunyushwe njeboolean." #~ msgid "CD-ROM Disc" #~ msgstr "Ucwecwe lwe CD-ROM" #~ msgid "Blank CD-R Disc" #~ msgstr "Ucwecwe olungenalutho CD-R" #~ msgid "CD-R Disc" #~ msgstr "Ucwecwe CD-R" #~ msgid "Blank CD-RW Disc" #~ msgstr "Ucwecwe olungenalutho CD-RW" #~ msgid "CD-RW Disc" #~ msgstr "Ucwecwe CD-RW" #~ msgid "DVD-ROM Disc" #~ msgstr "Ucwecwe DVD-ROM" #~ msgid "Blank DVD-R Disc" #~ msgstr "Ucwecwe olungenalutho DVD-R" #~ msgid "DVD-R Disc" #~ msgstr "Ucwecwe DVD-R" #~ msgid "Blank DVD-RAM Disc" #~ msgstr "Ucwecwe olungenalutho DVD-RAM" #~ msgid "DVD-RAM Disc" #~ msgstr "Ucwecwe DVD-RAM" #~ msgid "Blank DVD-RW Disc" #~ msgstr "Ucwecwe olungenalutho DVD-RW " #~ msgid "DVD-RW Disc" #~ msgstr "Ucwecwe DVD-RW" #~ msgid "Blank DVD+RW Disc" #~ msgstr "Ucwecwe olungenalutho DVD+RW" #~ msgid "DVD+RW Disc" #~ msgstr "Ucwecwe DVD+RW" #~ msgid "Blank DVD+R Disc" #~ msgstr "Ucwecwe olungenalutho DVD+R" #~ msgid "DVD+R Disc" #~ msgstr "Ucwecwe DVD+R" #~ msgid "Optical Disc" #~ msgstr "Ucwecwe olusebenzisa ukukhanya" #~ msgid "Audio Disc" #~ msgstr "Icwecwe Elilalekalayo" #~ msgid "Compact Flash Media" #~ msgstr "Ucwecwe olukhungethe isisasazi" #~ msgid "Memory Stick Media" #~ msgstr "Umgqondo onamathelayo wesisasazi" #~ msgid "Smart Media Media" #~ msgstr "Isasazi esiyifaniso" #~ msgid "SD/MMC Media" #~ msgstr "Isisasazi SD/MMC" #~ msgid "Floppy Disk" #~ msgstr "Icwecwe lokuhlenga" #~ msgid "Mac OS disk" #~ msgstr "Mac OS icwecwe" #~ msgid "Mac OS X disk" #~ msgstr "Mac OS icwecwe" #~ msgid "Windows Disk" #~ msgstr "Icwecwe le Windows" #~ msgid "Linux Disk" #~ msgstr "Icwecwe le Linux" #~ msgid "Applications" #~ msgstr "Izisebenziso" #~ msgid "Cards" #~ msgstr "Amakhadi" #~ msgid "Files" #~ msgstr "Ohele" #~ msgid "Folders" #~ msgstr "Isibaya" #~ msgid "Help" #~ msgstr "Siza" #~ msgid "Hosts" #~ msgstr "Abammemi" #~ msgid "Links" #~ msgstr "Izixhumanisi" #~ msgid "Mail" #~ msgstr "Iposi" #~ msgid "Tools" #~ msgstr "Amathuluzi" #~ msgid "Windows" #~ msgstr "Amafasitela" gnome-vfs-2.24.4/po/bn.po0000644000175000001440000020602311354402652012003 00000000000000# Bengali Translation of GNOME-vfs # Copyright (C) 1999, 2000, 01, 02 Free Software Foundation, Inc. # This file is distributed under the same license as the GNOME-vfs package. # Sayamindu Dasgupta , 2003. # Mahay Alam Khan , 2005. # Samia Niamatullah , 2005. # Loba Yeasmeen , 2010. # Sadia Afroz , 2010. # msgid "" msgstr "" "Project-Id-Version: bn\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-01-25 20:43+0000\n" "PO-Revision-Date: 2010-03-08 15:50+0600\n" "Last-Translator: Sadia Afroz \n" "Language-Team: Bengali \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 ভলিউম" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u NUL অকà§à¦·à¦° ধারণ করে।" # msgstr "%s:%dতে নঞ-অকà§à¦·à¦° আছে" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u-ঠকোনো মেথডের নাম নেই।" # msgstr "%s:%dতে নঞ-অকà§à¦·à¦° আছে" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u-ঠঅপশনের কোনো সমাপà§à¦¤à¦¿ চিহà§à¦¨ (endmarker) নেই।" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u-ঠঅজানা অপশন %s রয়েছে।" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u-ঠকোনো মডিউলের নাম নেই।" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "কনফিগারেশন ফাইল `%s' খà§à¦à¦œà§‡ পাওয়া যায়নি: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d পারà§à¦¸ করার কাজ পরিতà§à¦¯à¦¾à¦— করেছে।" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS নেটওয়ারà§à¦• ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ খà§à¦à¦œà§‡ পাওয়া ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "সিডি ডিজিটাল অডিও" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "হারà§à¦¡à¦“à§Ÿà§à¦¯à¦¾à¦° ডিভাইস ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "সিসà§à¦Ÿà§‡à¦® ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "মেমরি ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "মিনিকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS নেটওয়ারà§à¦• ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "নেটওয়à§à¦¯à¦¾à¦° ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "উইনà§à¦¡à§‹à¦œà§‡à¦° শেয়ারকৃত ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "ডিভিডি ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "সোলারিস/BSD ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs সোলারিস ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs সোলারিস ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "অসà§à¦¥à¦¾à§Ÿà§€ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "বরà§à¦§à¦¿à¦¤ DOS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "উইনà§à¦¡à§‹à¦œ VFAT ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "জেনিকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS লিনাকà§à¦¸ ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS ভলিউম" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "অজানা" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s ভলিউম" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "কমপà§à¦¯à¦¾à¦•à§à¦Ÿ ফà§à¦²à§à¦¯à¦¾à¦¶ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "মেমরি সà§à¦Ÿà¦¿à¦• ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "সà§à¦®à¦¾à¦°à§à¦Ÿ মিডিয়া ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "জিপ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "জà§à¦¯à¦¾à¦œ ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "পেন ডà§à¦°à¦¾à¦‡à¦­" # the commonwords.po file says খেলোয়াড়, but in regard of music বাদক is more suitable - mak #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s মিউজিক পà§à¦²à§‡à§Ÿà¦¾à¦°" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s ডিজিটাল কà§à¦¯à¦¾à¦®à§‡à¦°à¦¾" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "বহিঃসà§à¦¥ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ফাà¦à¦•া CD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ফাà¦à¦•া CD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ফাà¦à¦•া DVD-RAM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ফাà¦à¦•া DVD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ফাà¦à¦•া DVD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ফাà¦à¦•া DVD+R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ফাà¦à¦•া DVD+RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "অডিও ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s অপসারণযোগà§à¦¯ ভলিউম" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ভলিউম" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "অপারেশনের ধরন %u অপরিচিত" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "GIOChannel খোলার জনà§à¦¯ পাইপ তৈরি করা যাচà§à¦›à§‡ না: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "কাজের ধরন %u অপরিচিত" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "অপারেশন থামানো হয়েছে" # পরিবরà§à¦§à¦¨ might be more apropriate, isn't it - mak #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "অবলোপকৃত ফাংশন। MIME ডাটাবেসে বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর পরিবরà§à¦¤à¦¨ à¦à¦–ন থেকে আর সমরà§à¦¥à¦¿à¦¤ নয়।" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "পারà§à¦¸ করা যায়নি: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "পরবরà§à¦¤à§€ পারà§à¦¸à¦¿à¦‚ তà§à¦°à§à¦Ÿà¦¿à¦¸à¦®à§‚হকে উপেকà§à¦·à¦¾ করা হবে।" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "কোন তà§à¦°à§à¦Ÿà¦¿ নেই" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ফাইল খà§à¦à¦œà§‡ পাওয়া যায়নি" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "সাধারণ তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "অভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦£ তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "অকারà§à¦¯à¦•র পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦°" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "অসমরà§à¦¥à¦¿à¦¤ অপারেশন" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "উপাতà§à¦¤ বিকৃত" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ফরমà§à¦¯à¦¾à¦Ÿ কারà§à¦¯à¦•র নয়" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "তà§à¦°à§à¦Ÿà¦¿à¦ªà§‚রà§à¦£ ফাইল হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ফাইল অতà§à¦¯à¦¾à¦§à¦¿à¦• বড়" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ডিভাইসে আর জায়গা নেই" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠযোগà§à¦¯ ফাইল সিসà§à¦Ÿà§‡à¦®" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "অকারà§à¦¯à¦•র URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ফাইল খোলা নেই" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "খোলার মোড কারà§à¦¯à¦•র নয়" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "পà§à¦°à¦¬à§‡à¦¶à¦¾à¦§à¦¿à¦•ার পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¤" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "অনেক বেশি সংখà§à¦¯à¦• ফাইল খোলা আছে" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ফাইলের শেষ" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ নয়" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "অপারেশন চলছে" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "অপারেশন বিঘà§à¦¨à¦¿à¦¤" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ফাইল বিদà§à¦¯à¦®à¦¾à¦¨" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "আবরà§à¦¤à¦¨à¦•ারী লিংক পাওয়া গেছে" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "অপারেশন অনà§à¦®à§‹à¦¦à¦¿à¦¤ নয়" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "à¦à¦•টি ডিরেকà§à¦Ÿà¦°à¦¿" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "পরà§à¦¯à¦¾à¦ªà§à¦¤ মেমরী নেই" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "হোসà§à¦Ÿ খà§à¦à¦œà§‡ পাওয়া যায়নি" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "হোসà§à¦Ÿà§‡à¦° নাম কারà§à¦¯à¦•র নয়" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "হোসà§à¦Ÿà§‡à¦° কোন ঠিকানা নেই" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "লগ-ইন বà§à¦¯à¦°à§à¦¥" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "অপারেশন বাতিল করা হয়েছে" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ বà§à¦¯à¦¸à§à¦¤" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ডিরেকà§à¦Ÿà¦°à¦¿ ফাà¦à¦•া নয়" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "অনেক বেশি লিংক" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠযোগà§à¦¯ ফাইল সিসà§à¦Ÿà§‡à¦®" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "à¦à¦•ই ফাইল সিসà§à¦Ÿà§‡à¦®à§‡ নেই" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "অতà§à¦¯à¦¾à¦§à¦¿à¦• বড় নাম" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "সেবা বিদà§à¦¯à¦®à¦¾à¦¨ নেই" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "অনà§à¦°à§‹à¦§ সেবার উপাতà§à¦¤ বাতিল করবে" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "পà§à¦°à§‹à¦Ÿà§‹à¦•ল তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "পà§à¦°à¦§à¦¾à¦¨ বà§à¦°à¦¾à¦‰à¦œà¦¾à¦° খà§à¦à¦œà§‡ পাওয়া যায়নি" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "কোন পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ কাজ ঠিক করা নেই" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL সà§à¦•ীমের জনà§à¦¯ কোন হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° নেই" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "কমানà§à¦¡ লাইন পারà§à¦¸ করার সময় তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "কমানà§à¦¡ চালà§à¦•রণে তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "সময় উতà§à¦¤à§€à¦°à§à¦£à§‡ পৌà¦à¦›à§‡à¦›à§‡" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "নামসারà§à¦­à¦¾à¦°à§‡ তà§à¦°à§à¦Ÿà¦¿" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "উৎস আবদà§à¦§" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ফাংশন কল অবলোপকৃত" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "অকারà§à¦¯à¦•র ফাইলের নাম" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "সিমà§à¦¬à¦²à¦¿à¦• লিংক নয়" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "অজানা তà§à¦°à§à¦Ÿà¦¿" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u বাইট" msgstr[1] "%u বাইট" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(অকারà§à¦¯à¦•র ইউনিকোড)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ফà§à¦²à¦ªà¦¿" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ডিসà§à¦•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ডà§à¦°à¦¾à¦‡à¦­" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "মেমরি সà§à¦Ÿà¦¿à¦•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "সà§à¦®à¦¾à¦°à§à¦Ÿ মিডিয়া" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "কà§à¦¯à¦¾à¦®à§‡à¦°à¦¾" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "ডিভিডি" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "রà§à¦Ÿ ভলিউম" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "অডিও সিডি" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "অজানা ভলিউম" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "নেটওয়ারà§à¦• সারà§à¦­à¦¾à¦°" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤ সমà§à¦­à¦¬à¦¤ ডà§à¦°à¦¾à¦‡à¦­à§‡ কোন ফà§à¦²à¦ªà¦¿ নেই।" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ভলিউম মাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤ সমà§à¦­à¦¬à¦¤ ডিভাইসে কোন মিডিয়া নেই।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­ মাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤ সমà§à¦­à¦¬à¦¤ ফà§à¦²à¦ªà¦¿à¦Ÿà¦¿ à¦à¦®à¦¨ কোনো ফরমà§à¦¯à¦¾à¦Ÿà§‡à¦° যেটা " "মাউনà§à¦Ÿ করা যাবে না।" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ভলিউম মাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤ à¦à¦Ÿà¦¿ যদি কোনো à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿà¦•ৃত ডà§à¦°à¦¾à¦‡à¦­ হয়ে থাকে, তাহলে " "সমà§à¦­à¦¬à¦¤ ভà§à¦² পাসওয়ারà§à¦¡ বা কী পà§à¦°à§Ÿà§‹à¦— করা হয়েছে।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউমটি মাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤ সমà§à¦­à¦¬à¦¤ ভলিউমটি à¦à¦®à¦¨ কোনো ফরমà§à¦¯à¦¾à¦Ÿà§‡à¦° যেটা " "মাউনà§à¦Ÿ করা যাবে না।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফà§à¦²à¦ªà¦¿ ডà§à¦°à¦¾à¦‡à¦­à¦•ে মাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউমকে মাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউমকে আনমাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤ ভলিউমটি à¦à¦• বা à¦à¦•াধিক পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®à§‡à¦° " "দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হচà§à¦›à§‡à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ভলিউমকে আনমাউনà§à¦Ÿ করতে অকà§à¦·à¦®à¥¤" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "চাইলà§à¦¡ পà§à¦°à¦¸à§‡à¦¸ %d থেকে তথà§à¦¯ পড়তে বà§à¦¯à¦°à§à¦¥ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty-ঠমাউনà§à¦Ÿ পà§à¦°à¦•à§à¦°à¦¿à§Ÿà¦¾ চালানো যায়নি" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "চাইলà§à¦¡ পà§à¦°à¦¸à§‡à¦¸ থেকে তথà§à¦¯ পড়ার সময় select()-তে অপà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ তà§à¦°à§à¦Ÿà¦¿ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "মাউনà§à¦Ÿ পà§à¦°à¦¸à§‡à¦¸à§‡à¦° জনà§à¦¯ পাসওয়ারà§à¦¡ পà§à¦°à§‡à¦°à¦£ করা যায়নি।" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid()-ঠঅপà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ তà§à¦°à§à¦Ÿà¦¿ (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "কমানà§à¦¡ আরমà§à¦­ করতে বà§à¦¯à¦°à§à¦¥" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "মিডিয়া বের করতে অকà§à¦·à¦®" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "সংযà§à¦•à§à¦¤ সারà§à¦­à¦¾à¦° আনমাউনà§à¦Ÿ করতে অকà§à¦·à¦®" #: ../modules/computer-method.c:543 msgid "Network" msgstr "নেটওয়ারà§à¦•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "হোম" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ফাইলসিসà§à¦Ÿà§‡à¦®" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "অজানা GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "উইনà§à¦¡à§‹à¦œ নেটওয়ারà§à¦•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "দূরবরà§à¦¤à§€ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡à¦° (%s) পরিচয় অজানা।" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "পà§à¦°à¦¥à¦®à¦¬à¦¾à¦° কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ লগ-ইন করার সময় à¦à¦®à¦¨à¦Ÿà¦¿ ঘটে।\n\nদূরবরà§à¦¤à§€ কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦° থেকে " "পাঠানো পরিচয় হচà§à¦›à§‡ %s। আপনি যদি পà§à¦°à¦•ৃতভাবে নিশà§à¦šà¦¿à¦¤ হতে চান যে চালিয়ে যাওয়া " "নিরাপদ, তবে সিসà§à¦Ÿà§‡à¦® পà§à¦°à¦¶à¦¾à¦¸à¦•ের সাথে যোগাযোগ করà§à¦¨à¥¤" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "যেকোনোভাবেই লগইন করা হবে" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "লগইন বাতিল" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s-ঠকোন কারà§à¦¯à¦•র সেটিংস ফাইল খà§à¦à¦œà§‡ পাওয়া যায়নি\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "ভিনà§à¦¨ কোনো অবসà§à¦¥à¦¾à¦¨ নিরà§à¦¦à§‡à¦¶ করতে %s à¦à¦¨à¦­à¦¾à§Ÿà¦°à¦¨à¦®à§‡à¦¨à§à¦Ÿ ভà§à¦¯à¦¾à¦°à¦¿à§Ÿà§‡à¦¬à¦² বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨à¥¤\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "আপনার বà§à¦¯à¦¬à¦¹à§ƒà¦¤ HTTP Proxy-তে আপনার à¦à¦–ন লগইন করা আবশà§à¦¯à¦•।\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "\"%s\" বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ আপনার লগইন করা আবশà§à¦¯à¦•।\n%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "আপনার পাসওয়ারà§à¦¡à¦Ÿà¦¿ আনà¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿà¦•ৃত অবসà§à¦¥à¦¾à§Ÿ পà§à¦°à§‡à¦°à¦¿à¦¤ হবে।" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "আপনার পাসওয়ারà§à¦¡à¦Ÿà¦¿ à¦à¦¨à¦•à§à¦°à¦¿à¦ªà§à¦Ÿà¦•ৃত অবসà§à¦¥à¦¾à§Ÿ পà§à¦°à§‡à¦°à¦¿à¦¤ হবে।" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%s ডোমেইন %s বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ আপনার লগইন করা আবশà§à¦¯à¦•\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° জনà§à¦¯ আপনার লগইন করা আবশà§à¦¯à¦•\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¦à¦°à§à¦¶à¦• অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ টারà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡à¦° জনà§à¦¯ Exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "যেসব ফাইল পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° জনà§à¦¯ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ আবশà§à¦¯à¦• সেসব ফাইল দেখার জনà§à¦¯ যে " "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে। পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° %s ফাইলের URI দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¿à¦¤ " "হবে, পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° %c কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ IID দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¿à¦¤ হবে।" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "যেসব অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ টারà§à¦®à¦¿à¦¨à¦¾à¦² পà§à¦°à§Ÿà§‹à¦œà¦¨ সেগà§à¦²à§‹à¦° জনà§à¦¯ পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ যে " "টারà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে। " #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ টারà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ যে Exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা " "হবে।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"aim\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"callto\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"ghelp\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"h323\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"http\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"https\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"info\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"mailto\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"man\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ \"trash\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়।" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"aim\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"callto\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা " "হয় তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"ghelp\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"h323\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"http\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"https\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"info\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"mailto\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা " "হয় তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"man\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "যদি \"command\" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে \"trash\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় " "তবে à¦à¦° মান সতà§à¦¯à¥¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"aim\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"callto\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"ghelp\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"h323\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"http\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"https\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"info\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"mailto\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"man\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" # my guess it would be: উলà§à¦²à§‡à¦–িত কমানà§à¦¡ \"trash\" ইউআরà¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦² করবে কিনা। - mak #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ \"trash\" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "DNS-SD ডোমেইনের কমা দà§à¦¬à¦¾à¦°à¦¾ পৃথককৃত তালিকা যা \"network:///\" অবসà§à¦¥à¦¾à¦¨à§‡ দৃশà§à¦¯à¦®à¦¾à¦¨ " "হওয়া উচিত।" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD সারà§à¦­à¦¿à¦¸ খোà¦à¦œà¦¾à¦° জনà§à¦¯ অতিরিকà§à¦¤ ডোমেইন" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "কিভাবে সà§à¦¥à¦¾à¦¨à§€à§Ÿ DNS-SD সারà§à¦­à¦¿à¦¸ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "সমà§à¦­à¦¾à¦¬à§à¦¯ মানসমূহ হচà§à¦›à§‡ \"merged\", \"separate\" à¦à¦¬à¦‚ \"disabled\"।" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦° কানেকশন পà§à¦°à¦®à¦¾à¦£ করা হবে" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿà§‡à¦° মাধà§à¦¯à¦®à§‡ HTTP-তে যোগাযোগ সà§à¦¥à¦¾à¦ªà¦¨ করার সময় পà§à¦°à¦•à§à¦¸à¦¿ সেটিংস সকà§à¦°à¦¿à§Ÿ " "করে।" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ পাসওয়ারà§à¦¡" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "যদি সতà§à¦¯ হয়, তবে পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦° সংযোগের জনà§à¦¯ পà§à¦°à¦®à¦¾à¦£à§€à¦•রণ আবশà§à¦¯à¦•। " "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম/পাসওয়ারà§à¦¡ কমà§à¦¬à§‹ \"/system/http_proxy/authentication_user\" " "à¦à¦¬à¦‚ \"/system/http_proxy/authentication_password\" দà§à¦¬à¦¾à¦°à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤à¥¤" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "যে হোসà§à¦Ÿà§‡à¦° জনà§à¦¯ পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হবে না" # C # :-) "C" for what - mak #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° সময় পà§à¦°à¦®à¦¾à¦£à§€à¦•রণ হিসেবে যে পাসওয়ারà§à¦¡ পà§à¦°à§‡à¦°à¦£ করা হবে।" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤ সমরà§à¦¥à¦¿à¦¤ মানসমূহ হলো \"none\", \"manual\", " "\"auto\"।" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "যে মেশিনের মধà§à¦¯ দিয়ে FTP পà§à¦°à¦•à§à¦¸à¦¿ করা হবে।" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "যে মেশিনের মধà§à¦¯ দিয়ে HTTP পà§à¦°à¦•à§à¦¸à¦¿ করা হবে।" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "যে মেশিনের মধà§à¦¯ দিয়ে নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ করা হবে।" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "যে মেশিনের মধà§à¦¯ দিয়ে socks পà§à¦°à¦•à§à¦¸à¦¿ করা হবে।" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "মেশিনে উলà§à¦²à§‡à¦–িত \"/system/http_proxy/host\" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা " "হবে।" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "মেশিনে উলà§à¦²à§‡à¦–িত \"/system/proxy/ftp_host\" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা " "হবে।" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "মেশিনে উলà§à¦²à§‡à¦–িত \"/system/proxy/secure_host\" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা " "হবে।" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "মেশিনে উলà§à¦²à§‡à¦–িত \"/system/proxy/socks_host\" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা " "হবে।" # OMG, it's huge.......guess its correct. - mak #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "à¦à¦‡ কী হোসà§à¦Ÿ তালিকা ধারণ করে, যারা পà§à¦°à¦•à§à¦¸à¦¿ না হয়ে সরাসরি সংযà§à¦•à§à¦¤ (যদি à¦à¦Ÿà¦¿ " "সকà§à¦°à¦¿à§Ÿ থাকে)। মান হতে পারে হোসà§à¦Ÿà§‡à¦°à¦¨à¦¾à¦®, ডোমেইন (যা *.foo.com-র মত পà§à¦°à¦¾à¦°à¦®à§à¦­à¦¿à¦• " "ওয়াইলà§à¦¡à¦•ারà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে), IP হোসà§à¦Ÿà§‡à¦° ঠিকানা (IPv4 à¦à¦¬à¦‚ IPv6 উভয় ধরনের) à¦à¦¬à¦‚ " "নেটমাসà§à¦• সহ (১৯২.১৬৮.০.০/২৪-র মত) নেটওয়ারà§à¦•ের ঠিকানা।" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "যেসব URL পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশনের মান পà§à¦°à¦¦à¦¾à¦¨ করে।" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করার সময় যে বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম পà§à¦°à¦®à¦¾à¦£à§€à¦•রণ হিসেবে পà§à¦°à§‡à¦°à¦£ " "করা হবে।" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ওয়ারà§à¦•গà§à¦°à§à¦ª" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "উইনà§à¦¡à§‹à¦œ নেটওয়ারà§à¦•িং ওয়ারà§à¦•গà§à¦°à§à¦ª বা ডোমেইন, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী যার অংশ। নতà§à¦¨ কোনো " "ওয়ারà§à¦•গà§à¦°à§à¦ª পà§à¦°à§‹à¦ªà§à¦°à¦¿ কারà§à¦¯à¦•র করার জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীকে লগআউট করে আবার লগইন " "করতে হতে পারে।" #~ msgid "Could not initialize Bonobo" #~ msgstr "বোনোবো চালৠকরা গেল না" #~ msgid "Could not initialize gnome vfs" #~ msgstr "গà§à¦¨à§‹à¦® ভি-à¦à¦«-à¦à¦¸ চালৠকরা গেল না" #~ msgid "Standard Moniker factory" #~ msgstr "সাধারন ফাইল মনিকার কারখানা" #~ msgid "file MonikerExtender" #~ msgstr "ফাইল মনিকারà¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à§à¦¡à¦¾à¦°" #~ msgid "generic Gnome VFS moniker" #~ msgstr "সাধারন গà§à¦¨à§‹à¦®-ভি-à¦à¦«-à¦à¦¸à§ মনিকার" #~ msgid "generic file moniker" #~ msgstr "সাধারন ফাইল মনিকার" #~ msgid "Display SCSI drives" #~ msgstr "সà§à¦•াজি ডà§à¦°à¦¾à¦‡à¦­ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করো" #~ msgid "Display SCSI optical drives" #~ msgstr "সà§à¦•াজি অপটিকà§à¦¯à¦¾à¦² ডà§à¦°à¦¾à¦‡à¦­ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করো" #~ msgid "Display drives with removable media" #~ msgstr "à¦à¦®à¦¨ ডà§à¦°à¦¾à¦‡à¦­ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ কর, যার মিডিয়া সরানো যায়" #~ msgid "Display external drives" #~ msgstr "বহিসà§à¦¥ ডà§à¦°à¦¾à¦‡à¦­ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করো" #~ msgid "Display internal hard drives" #~ msgstr "অভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦¨ ডà§à¦°à¦¾à¦‡à¦­ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করো" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "যদিও /system/storage/display_scsi_drives মিথà§à¦¯à¦¾ সেট করা থাকে, সà§à¦•াজি " #~ "অপটিকà§à¦¯à¦¾à¦² ডà§à¦°à¦¾à¦‡à¦­ দেখানো হবে কিনা।" #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "সà§à¦•াজি ডà§à¦°à¦¾à¦‡à¦­ থেকে ডà§à¦°à¦¾à¦‡à¦­ à¦à¦¬à¦‚ মাউনà§à¦Ÿà¦¯à§‹à¦—à§à¦¯ ভলিউম দেখানো হবে কিনা।" #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "অপসারণযোগà§à¦¯ মিডিয়া (যেসব ডà§à¦°à¦¾à¦‡à¦­à§‡ মিডিয় ঢোকানো à¦à¦¬à¦‚ অপসারণ করা যায়) থেকে " #~ "ডà§à¦°à¦¾à¦‡à¦­ à¦à¦¬à¦‚ মাউনà§à¦Ÿà¦¯à§‹à¦—à§à¦¯ ভলিউম দেখানো হবে কিনা।" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "বহিসà§à¦¥ ডà§à¦°à¦¾à¦‡à¦­ (হটপà§à¦²à¦¾à¦— করা যায় à¦à¦®à¦¨ ডà§à¦°à¦¾à¦‡à¦­; সিসà§à¦Ÿà§‡à¦® চলনà§à¦¤ অবসà§à¦¥à¦¾à§Ÿ à¦à¦Ÿà¦¾à¦š à¦à¦¬à¦‚ ডিটাচ " #~ "করা যায় à¦à¦®à¦¨ ডà§à¦°à¦¾à¦‡à¦­) থেকে ডà§à¦°à¦¾à¦‡à¦­ à¦à¦¬à¦‚ মাউনà§à¦Ÿà¦¯à§‹à¦—à§à¦¯ ভলিউম দেখানো হবে কিনা।" #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "অভà§à¦¯à¦¨à§à¦¤à¦°à§€à¦¨ ডà§à¦°à¦¾à¦‡à¦­ থেকে ডà§à¦°à¦¾à¦‡à¦­ à¦à¦¬à¦‚ মাউনà§à¦Ÿà¦¯à§‹à¦—à§à¦¯ ভলিউম দেখানো হবে কিনা। (সà§à¦•াজি নয় " #~ "à¦à¦®à¦¨ অপটিকà§à¦¯à¦¾à¦² ডà§à¦°à¦¾à¦‡à¦­ সরà§à¦¬à¦¦à¦¾à¦‡ পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হয়)" #~ msgid "The window workgroup the user is part of" #~ msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী যে ওয়ারà§à¦•গà§à¦°à§à¦ª-à¦à¦° সদসà§à¦¯" #, fuzzy #~ msgid "Memory Stick Media" #~ msgstr "মেমরি সà§à¦Ÿà¦¿à¦•à§â€Œ" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "উইনà§à¦¡à§‹à¦œ" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "%s-কে পড়ে কিছৠবোà¦à¦¾ গেল না" #, fuzzy #~ msgid "File is empty" #~ msgstr "ফাইলটা আগে থেকেই আছে" #~ msgid "Applications" #~ msgstr "অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন" #~ msgid "Cards" #~ msgstr "কারà§à¦¡" #~ msgid "Files" #~ msgstr "ফাইল সমূহ" #~ msgid "Folders" #~ msgstr "ফোলà§à¦¡à¦¾à¦° সমূহ" #~ msgid "Help" #~ msgstr "সহায়তা" #~ msgid "Hosts" #~ msgstr "হোসà§à¦Ÿ সমূহ" #~ msgid "Links" #~ msgstr "লিংক সমূহ" #~ msgid "Mail" #~ msgstr "মেইল" #~ msgid "Tools" #~ msgstr "যনà§à¦¤à¦ªà¦¾à¦¤à¦¿" #~ msgid "Windows" #~ msgstr "উইনà§à¦¡à§‹à¦œ" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "HTTP ইউ-আর-à¦à¦² সামলাও" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "HTTPS ইউ-আর-à¦à¦² সামলাও" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "HTTP ইউ-আর-à¦à¦² সামলানোর জনà§à¦¯ \"কমà§à¦¯à¦¾à¦¨à§à¦¡\"-ঠনিরà§à¦¦à¦¿à¦·à§à¦Ÿ পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® বà§à¦¯à¦¬à¦¹à¦¾à¦° করার জনà§à¦¯ " #~ "সতà§à¦¯ হিসাবে নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "HTTPS ইউ-আর-à¦à¦² সামলানোর জনà§à¦¯ \"কমà§à¦¯à¦¾à¦¨à§à¦¡\"-ঠনিরà§à¦¦à¦¿à¦·à§à¦Ÿ পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® বà§à¦¯à¦¬à¦¹à¦¾à¦° করার জনà§à¦¯ " #~ "সতà§à¦¯ হিসাবে নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨" #, fuzzy #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "" #~ "HTTP ইউ-আর-à¦à¦² সামলানোর জনà§à¦¯ \"কমà§à¦¯à¦¾à¦¨à§à¦¡\"-ঠনিরà§à¦¦à¦¿à¦·à§à¦Ÿ পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® বà§à¦¯à¦¬à¦¹à¦¾à¦° করার জনà§à¦¯ " #~ "সতà§à¦¯ হিসাবে নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨" #, fuzzy #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "" #~ "HTTPS ইউ-আর-à¦à¦² সামলানোর জনà§à¦¯ \"কমà§à¦¯à¦¾à¦¨à§à¦¡\"-ঠনিরà§à¦¦à¦¿à¦·à§à¦Ÿ পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® বà§à¦¯à¦¬à¦¹à¦¾à¦° করার জনà§à¦¯ " #~ "সতà§à¦¯ হিসাবে নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨" #~ msgid "H323 URL handler" #~ msgstr "H323 ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #~ msgid "HTTP URL handler" #~ msgstr "HTTP ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #~ msgid "HTTPS URL handler" #~ msgstr "HTTPS ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "man ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° " #~ msgid "callto URL handler" #~ msgstr "callto ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #~ msgid "ghelp URL handler" #~ msgstr "ghelp ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #~ msgid "info URL handler" #~ msgstr "info ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #~ msgid "mailto URL handler" #~ msgstr "mailto ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #~ msgid "man URL handler" #~ msgstr "man ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° " #~ msgid "trash URL handler" #~ msgstr "trash ইউ-আর-à¦à¦² হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦°" #~ msgid "1 byte" #~ msgstr "à§§ বাইট" gnome-vfs-2.24.4/po/mk.po0000644000175000001440000015071111334251016012007 00000000000000# translation of gnome-vfs.HEAD.mk.po to Macedonian # translation of gnome-vfs.HEAD.mk.po to # translation of gnome-vfs.HEAD.mk.po to # This file is distributed under the same license as the PACKAGE package. # Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER. # # Maratonec , 2002,2003. # Ivan Stojmirov , 2003. # Vladislav Bidikov , 2003. # Arangel Angov , 2004, 2005, 2006. # Tomislav Markovski , 2004. # Ðрангел Ðнгов , 2005. # Jovan Naumovski , 2006, 2007. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.mk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-04-24 03:37+0100\n" "PO-Revision-Date: 2007-08-12 03:12+0200\n" "Last-Translator: Jovan Naumovski \n" "Language-Team: Macedonian \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 : 1\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 Volume" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u Ñодржи NUL карактери." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u не Ñодржи име на метод." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u нема опции за крајниот обележувач." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u има непознати опции %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u не Ñодржи име на модул." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "КонфигурациÑката датотека „%s“ не е пронајдена: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d го прекина парÑирањето." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS мрежен уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "ÐвтоматÑки детектиран уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD дигитално аудио" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "ХардверÑки уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "СиÑтемÑка проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "МемориÑки уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS мрежен проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "ReiserFS Linux проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows Ñподелен проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "Супер монтиран проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD уред" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Привремен проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Подобрена DOS проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS проÑтор" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Ðепознато" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s проÑтор" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Флопи уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Компактен флеш уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Уред мемориÑка картичка" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Уред паметен медиум" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s пуштач на музика" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s дигитална камера" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ðадворешен %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Празен CD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Празен CD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Празен DVD-RAM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Празен DVD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Празен DVD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Празен DVD+R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Празен DVD+RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Ðудио диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s преноÑлив уред" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ПроÑтор" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Ðепознат тип на операција %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ðе можам да креирам цевка за отворање на GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "Ðепознат вид на работа %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "Операцијата е Ñтопирана" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ЗаÑтарена функција. Промените на базата на податоци за МИМЕ повеќе не Ñе " "поддржани." #: ../libgnomevfs/gnome-vfs-parse-ls.c:720 #, c-format msgid "Could not parse: %s" msgstr "Ðе можам да парÑирам: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:722 msgid "More parsing errors will be ignored." msgstr "Повеќе грешки при парÑирањето ќе бидат игнорирани." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ðема грешка" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Датотеката не е најдена" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Општа грешка" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Внатрешна грешка" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ðеправилни параметри" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Ðеподдржана операција" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O грешка" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Податоците Ñе корумпирани" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Ðевалиден формат" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Лошо име на датотека" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Датотеката е преголема" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ðема Ñлободен проÑтор на уредот" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "СиÑтемот на датотеки е Ñамо за читање" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ðевалиден URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Датотеката не е отворена" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Режимот за отворање не е дозволен" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ПриÑтапот е одбиен" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Премногу отворени датотеки" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Крај на датотека" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ðе е папка" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Операциите Ñе во тек" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Операциите беа преќинати" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Датотеката поÑтои" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Кружни линкови поÑтојат" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Операцијата не е дозволена" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Ова е папка" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ðема доволно меморија" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Домаќинот не беше пронајден" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Името на домаќинот не беше пронајдено" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Домаќинот нема адреÑа" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Логирањето не уÑпеа" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Операцијата беше прекината" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Папката е зафатена" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Директориумот не е празен" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Премногу линкови" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Само-читај фајл ÑиÑтем" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ðе Ñе наоѓа на иÑтиот фајл-ÑиÑтем" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Името е предолго" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "СервиÑот не е приÑутен" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Барањето е непотребно за тие податоци од ÑервиÑот" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Грешка во протоколот" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ðеможе да Ñе најде главниот прелиÑтувач" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Ðема номинална акција поÑтавено" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ðема ракувач за URL шемата" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Грешка при парÑирање на командната линија" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Грешка при ланÑирањето на командата" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Времето иÑтече" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Грешка Ñо Ñерверот за имиња" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "РеÑурÑот е заклучен" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Повикот на функцијата не Ñе кориÑти" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ðевалидно имет на датотека" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ðе е Ñимболична врÑка" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ðепозната грешка" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u бајт" msgstr[1] "%u бајти" msgstr[2] "%u бајти" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (невалиден Јуникод)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Флопи" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ДиÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB уред" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 уред" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "МемориÑки уред" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Паметен уред" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Камера" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Root проÑтор" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "Ðудио CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Ðепознат проÑтор" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "Мрежен Ñервер" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ðе можам да го монтирам флопи уредот. Ðајверојатно нема флопи во уредот." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ðе можам да го монитрам уредот. Ðајверојатно нема медиум во уредот." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ðе можам да го монитрам флопи уредот. Флопито е најверојатно во формат кој " "што не може да биде монтиран." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ðе уÑпеав да го монтирам проÑторот. Ðко Ñе работи за криптиран уред, тогаш " "кориÑтите погрешна лозинка или клуч." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ðе можам да го монитрам избраниот медиум. Медиумот е најверојатно во формат " "кој што не може да биде монтиран." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ðе можам да го монтирам избраниот флопи уред" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ðе можам да го монтирам избраниот медиум." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ðе можам да го демонитрам избраниот медиум. Медиумот е најверојатно Ñе " "кориÑти од Ñтрана на една или повеќе програми." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ðе можам да го демонтирам избраниот медиум." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Ðе уÑпеав да прочитам податоци од подпроцеÑот %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ðе можам да го извршам процеÑот за монтирање во pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Ðеочекувана грешка во select() читање на податоците од подпроцеÑот (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "Ðе можам да ја иÑпратам лозинката до процеÑот за монтирање." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Ðеочекувана грешка во waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Ðе уÑпеав да ја подигнам командата" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ðе можам да го извадам медиумот" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ðе можам да го демонитрам врзаниот Ñервер" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Мрежа" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Дома" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Датотечен ÑиÑтем" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ðепозната Gnome VFS пребарувачка позиција %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows мрежа" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Идентитетот на далечниот компјутер (%s) е непознат." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ова Ñе Ñлучува кога Ñе најавувате на компјутерот првпат.\n" "\n" "Идентитетот иÑпратен од Ñтрана на далечниот компјутер е %s. Ðко Ñакате да " "бидете Ñигурни дека е безбедно да продолжите , контактирајте го ÑиÑтем " "админиÑтраторот." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Ðајави Ñе " #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Откажи најава" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ðе можам да пронајдам датотека Ñо подеÑувања во %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "КориÑтете ја променливата за околина %s за да одреди друга локација. \n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Вашето HTTP прокÑи бара да Ñе најавите.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Мора да Ñе најавите за да приÑтапите на \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Вашата лозинка ќе биде иÑпратена неенкриптирана." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Вашата лозинка ќе биде иÑпратена енкриптирана." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Мора да Ñе најавите за да приÑтапите на %s домен %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Мора да Ñе најавите за да приÑтапите на %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Стандардна апликација за преглед на Ñодржина" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Стандардна апликација за терминал" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec аргумент за Ñтандарден терминал" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Ðпликацијата што ќе Ñе кориÑти за преглед на датотеки кои што имаат потреба " "од компонента за преглед. Параметарот %s ќе биде заменет од Ñтрана на URI, " "параметрот %c ќе биде заменете од IID на компонентата." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Стандардната апликација која што ќе Ñе кориÑти како терминал за апликациите " "кои имаат потреба од терминал." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Еxec аргументот за употреба Ñо Ñтандардната терминална апликација." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Изврши ја командата во терминал" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Ðко е вклучено, командата кориÑтена за Ñправување Ñо „aim“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „callto“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „ghelp“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „h323“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „http“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „https“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „info“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „mailto“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „man“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „trash“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Справувачот за \"aim\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Справувачот за \"callto\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Справувачот за \"ghelp\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Справувачот за \"h323\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Справувачот за \"http\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Справувачот за \"https\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Справувачот за \"info\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Справувачот за \"mailto\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Справувачот за \"man\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Справувачот за \"trash\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„aim“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„callto“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„ghelp“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„h323“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„http“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„https“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„info“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„mailto“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„man“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо " "„trash“ адреÑи." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи " "треба да биде извршена во терминал." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Дали наведената команда треба да Ñе Ñправи Ñо \"aim\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"callto\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"ghelp\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"h323\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"http\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"https\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"info\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"mailto\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"man\" URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Дали наведената команда да Ñе Ñправи Ñо \"trash\" URL" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "ЛиÑта разделена Ñо запирки од DNS-SD домените кои што би требало да Ñе " "видливи на локацијата „network:///“." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ЕкÑтра домени за пребарување на DNS-SD ÑервиÑи" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Како да ги прикаже локалните DNS-SD ÑервиÑи" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Можни вредноÑти Ñе \"припоено\", \"одделено\" и \"иÑкулучено\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Барај proxy автентикација за врÑките до Ñерверот" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL за автоматÑка конфигурација на proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Ги вклучува подеÑувањата за proxy кога Ñе приÑтапува на HTTP преку Интернет." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Име на хоÑÑ‚ за FTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Порта за FTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Име на хоÑÑ‚ за HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Лозинка за HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Порта за HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "КориÑничко име за HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ðко е точно, тогаш врÑките до proxy Ñерверот бараат проверка. КориÑничкото " "име и лозинката дефинирани од Ñтрана на „/system/http_proxy/" "authentication_user“ и „/system/http_proxy/authentication_password“." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ХоÑтови без proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Лозинка за преминување на автентикацијата кога Ñе работи преку HTTP proxy." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Режим за конфигурирање на proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS proxy име на хоÑÑ‚" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS proxy порта" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Име на хоÑÑ‚ за безбеден HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Безбедена HTTP proxy порта" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Изберете го режимот за конфигурирање на proxy. Поддржани вредноÑти Ñе \"ништо" "\", \"рачно\", \"автоматÑки\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Име на машината преку која Ñе преминува за FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Име на машината преку која Ñе преминува за HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Име на машината преку која безбедно Ñе преминува за HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Името на машината што ќе Ñе кориÑти како прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Портата на машината дефинирана во \"/system/http_proxy/host\" преку која што " "кориÑтите прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Портата на машината дефинирана во \"/system/proxy/ftp_host\" преку која што " "кориÑтите прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Портата на машината дефинирана во \"/system/proxy/secure_host\" преку која " "што кориÑтите прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Портата на машината дефинирана во \"/system/proxy/socks_host\" преку која " "што кориÑтите прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Копчето Ñодржи лиÑта на хоÑтови кои што Ñе врзани директно намеÑто " "прекупрокÑи (доколку е активно). ВредноÑтите можат да бидат имиња на " "хоÑтови, домени (Ñо кориÑтење на некој знак како на пример *.foo.com), IP " "адреÑи на хоÑтови (вклучувајќи IPv4 и IPv6) и мрежни адреÑи Ñо маÑки (нешто " "како 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL кое што Ñнабдува вредноÑÑ‚ за конфигурација на proxy" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "КориÑти HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "КориÑничко име и лозинка за проверка кога кориÑтите HTTP прокÑи." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB работна група" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Работната група или доменот на Windows чиј што член е кориÑникот. Зада биде " "додаден во нова работна група кориÑникот може ќе треба да Ñе одјави и " "повторно да Ñе најави." gnome-vfs-2.24.4/po/tr.po0000644000175000001440000013757711334251016012044 00000000000000# Turkish translation of GnomeVFS. # Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. # Sinan Imamoglu , 2002. # # # Baris Cicek , 2004, 2005, 2006, 2008. msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-09-09 15:45+0300\n" "PO-Revision-Date: 2008-09-09 15:45+0300\n" "Last-Translator: Baris Cicek \n" "Language-Team: Turkish \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 Sistemi" # libgnomevfs/gnome-vfs-configuration.c:224 #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u NUL karakterler içeriyor." # libgnomevfs/gnome-vfs-configuration.c:241 #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u metod adı içermiyor." # libgnomevfs/gnome-vfs-configuration.c:241 #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u seçenek sonlandırıcısı içermiyor." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u bilinmeyen seçeneklere sahip: %s" # libgnomevfs/gnome-vfs-configuration.c:270 #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u modül adı içermiyor." # libgnomevfs/gnome-vfs-configuration.c:323 #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Yapılandırma dosyası `%s' bulunamadı: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d iÅŸleme iptal edildi." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS AÄŸ Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Otomatik Tanınan Sistem" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM Sürücüsü" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD Sayısal Ses" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Donanım Aygıtı Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Sistem Biçimi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Bellek Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS AÄŸ Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows Paylaşılmış Sistem" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Geçici Sistem" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "GeliÅŸmiÅŸ DOS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS Sistemi" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS Sistemi" # libgnomevfs/gnome-vfs-result.c:141 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Bilinmeyen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s Sistemi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disket Sürücü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Hafıza ÇubuÄŸu Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip Sürücü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Sürücüsü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s Müzik Çalar" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Dijital FotoÄŸraf Makinesi" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Sürücü" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Harici %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "BoÅŸ CD-R Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "BoÅŸ CD-RW Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "BoÅŸ DVD-RAM Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "BoÅŸ DVD-R Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "BoÅŸ DVD-RW Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "BoÅŸ DVD+R Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "BoÅŸ DVD+RW Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Ses Diski" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Ayrılabilir Sistem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Sistemi" # libgnomevfs-pthread/gnome-vfs-job.c:712 #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Bilinmeyen iÅŸlem türü %u" # libgnomevfs-pthread/gnome-vfs-job.c:1000 # libgnomevfs-pthread/gnome-vfs-job.c:1145 #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Açık GIOChannel için boru yaratılamıyor: %s" # libgnomevfs-pthread/gnome-vfs-job.c:1603 #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "Bilinmeyen iÅŸ türü %u" # libgnomevfs-pthread/gnome-vfs-job.c:1639 #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "İşlem durduruldu" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Uygulamadan kalkmış fonksiyon. MIME veritabanına kullanıcı düzenlemesi artık " "desteklenmiyor." # libgnomevfs/gnome-vfs-parse-ls.c:654 #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "Ayrıştırılamadı: %s" # libgnomevfs/gnome-vfs-parse-ls.c:656 #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "Artık ayrıştırma hataları gözardı edilecek." # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Hata yok" # libgnomevfs/gnome-vfs-result.c:40 #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Dosya bulunamadı" # libgnomevfs/gnome-vfs-result.c:41 #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Genel hata" # libgnomevfs/gnome-vfs-result.c:42 #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Dahili hata" # libgnomevfs/gnome-vfs-result.c:43 #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Geçersiz parametreler" # libgnomevfs/gnome-vfs-result.c:44 #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Desteklenmeyen iÅŸlem" # libgnomevfs/gnome-vfs-result.c:45 #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "G/Ç hatası" # libgnomevfs/gnome-vfs-result.c:46 #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Veri bozulmuÅŸ" # libgnomevfs/gnome-vfs-result.c:47 #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Biçim geçersiz" # libgnomevfs/gnome-vfs-result.c:48 #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Yanlış dosya iÅŸleyicisi" # libgnomevfs/gnome-vfs-result.c:49 #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Dosya çok büyük" # libgnomevfs/gnome-vfs-result.c:50 #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Aygıtta boÅŸ alan kalmadı" # libgnomevfs/gnome-vfs-result.c:51 #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Salt okunur dosya sistemi" # libgnomevfs/gnome-vfs-result.c:52 #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Geçersiz URI" # libgnomevfs/gnome-vfs-result.c:53 #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Dosya açık deÄŸil" # libgnomevfs/gnome-vfs-result.c:54 #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Açma kipi geçersiz" # libgnomevfs/gnome-vfs-result.c:55 #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "EriÅŸim engellendi" # libgnomevfs/gnome-vfs-result.c:56 #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Çok fazla dosya açık" # libgnomevfs/gnome-vfs-result.c:57 #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Dosya sonu" # libgnomevfs/gnome-vfs-result.c:58 #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Dizin deÄŸil" # libgnomevfs/gnome-vfs-result.c:59 #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "İşlem sürüyor" # libgnomevfs/gnome-vfs-result.c:60 #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "İşlem durduruldu" # libgnomevfs/gnome-vfs-result.c:61 #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Dosya zaten var" # libgnomevfs/gnome-vfs-result.c:62 #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "İç içe baÄŸlantılarla karşılaşıldı" # libgnomevfs/gnome-vfs-result.c:63 #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "İşleme izin verilmiyor" # libgnomevfs/gnome-vfs-result.c:64 #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Bir dizindir" # libgnomevfs/gnome-vfs-result.c:65 #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Yetersiz bellek" # libgnomevfs/gnome-vfs-result.c:66 #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Makine bulunamadı" # libgnomevfs/gnome-vfs-result.c:67 #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Makine adı geçersiz" # libgnomevfs/gnome-vfs-result.c:68 #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Makinenin adresi yok" # libgnomevfs/gnome-vfs-result.c:69 #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "GiriÅŸ baÅŸarısız" # libgnomevfs/gnome-vfs-result.c:70 #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "İşlem iptal edildi" # libgnomevfs/gnome-vfs-result.c:71 #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Dizin meÅŸgul" # libgnomevfs/gnome-vfs-result.c:72 #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Dizin boÅŸ deÄŸil" # libgnomevfs/gnome-vfs-result.c:73 #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Çok fazla baÄŸlantı" # libgnomevfs/gnome-vfs-result.c:74 #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Salt okunur dosya sistemi" # libgnomevfs/gnome-vfs-result.c:75 #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Aynı dosya sistemi üzerinde deÄŸiller" # libgnomevfs/gnome-vfs-result.c:76 #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Ad çok uzun" # libgnomevfs/gnome-vfs-result.c:77 #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Servis mevcut deÄŸil" # libgnomevfs/gnome-vfs-result.c:78 #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "İstem hizmet verisinin yerine geçer" # libgnomevfs/gnome-vfs-result.c:39 #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokol hatası" # libgnomevfs/gnome-vfs-parse-ls.c:654 #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ana tarayıcı bulunamadı" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Hiçbir öntanımlı iÅŸlem iliÅŸkilendirilmemiÅŸ" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL ÅŸeması için tutacak yok" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Komut satırını ayrıştırırken hata" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Komut çalıştırılması sırasında hata oluÅŸtu" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Zaman aşımı" # libgnomevfs/gnome-vfs-result.c:41 #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "İsim sunucusu hatası" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Kaynak kilitli" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Fonksiyon çaÄŸrısı artık kullanılmıyor" # libgnomevfs/gnome-vfs-result.c:43 #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Geçersiz dosya ismi" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Sembolik bir baÄŸ deÄŸil" # libgnomevfs/gnome-vfs-result.c:141 #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Bilinmeyen hata" # libgnomevfs/gnome-vfs-utils.c:70 #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bayt" # libgnomevfs/gnome-vfs-utils.c:77 #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" # libgnomevfs/gnome-vfs-utils.c:81 #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" # libgnomevfs/gnome-vfs-utils.c:85 #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (geçersiz Unikod)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disket" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disket" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB Sürücü" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 Sürücü" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "FotoÄŸraf makinesi" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Kök Sistemi" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "Ses CD'si" # libgnomevfs/gnome-vfs-result.c:141 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Bilinmeyen sistem" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "AÄŸ sunucusu" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Disket sürücü baÄŸlanamadı. Sürücü içinde disket olmayabilir." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Bu sistem baÄŸlanamadı. Sürücü içinde aygıt olmayabilir." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Disket sürücü baÄŸlanamadı. Disket, baÄŸlanmasını engelleyen bir biçime sahip " "olabilir." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Sistem baÄŸlanamadı. EÄŸer bu bir ÅŸifrelenmiÅŸ sürücü ise, hatalı parola ya da " "anahtar kullandınız." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Seçilen sistem baÄŸlanamadı. Bu sistem muhtemelen baÄŸlanamayacak bir biçimde." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Seçilen disket sürücüsü baÄŸlanamadı." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Seçilen sistem baÄŸlanamadı." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Seçilen sistemin baÄŸlantısı kaldırılamadı. Bu sistem bir ya da daha fazla " "program tarafından kullanımda." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Seçilen sistem ayrılamadı." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "%d alt sürecinden veri okunurken hata oluÅŸtu (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty içinde mount süreci çalıştırılamadı" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Alt süreçten (%s) veri okunurken select() için beklenmedik hata" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "mount sürecine parola gönderilemedi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() için beklenmedik hata (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Komut baÅŸlatılamadı" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Aygıt çıkartılamadı" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "BaÄŸlı olan sunucudan ayrılma iÅŸlemi gerçekleÅŸtirilemedi" #: ../modules/computer-method.c:543 msgid "Network" msgstr "AÄŸ" #: ../modules/computer-method.c:561 msgid "Home" msgstr "BaÅŸlangıç" # libgnomevfs/gnome-vfs-result.c:61 #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Dosya sistemi" # modules/file-method.c:380 #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Bilinmeyen GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows Ağı" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Uzaktaki bilgisayarın (%s) kimliÄŸi bilinmiyor." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Bu bilgisayara ilk defa giriÅŸ yaptığınızdan olur.\n" "\n" "Uzaktaki bilgisayardan gelen kimlik bilgisi %s. EÄŸer devam etmenin " "kesinlikle güvenli olacağından emin olmak istiyorsanız, sistem yöneticisine " "danışın. " #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Gene de GiriÅŸ Yap" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "GiriÅŸi İptal Et" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s konumunda geçerli bir ayar dosyası yok\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "BaÅŸka bir konum belirtmek için %s çevre deÄŸiÅŸkenini kullanın.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "HTTP vekil sunucunuz kullanıcı giriÅŸi yapmanızı gerektiriyor.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" adresine eriÅŸmek için kullanıcı giriÅŸi yapmalısınız.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Parolanız ÅŸifrelenmemiÅŸ olarak gönderilecek." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Parolanız ÅŸifrelenmiÅŸ olarak gönderilecek." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "" "%2$s alanındaki %1$s kaynağına eriÅŸmek için kullanıcı giriÅŸi yapmalısınız.\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s adresine eriÅŸmek için kullanıcı giriÅŸi yapmalısınız.\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Öntanımlı içerik görüntüleme uygulaması" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Öntanımlı uçbirim uygulaması" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Öntanımlı uçbirim için çalıştırma argümanı" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Görüntülemek için kullanılan uygulama, görüntülemek için içerik gerektirir. %" "s parametresi doyaların URI 'si ile, %c parametresi ise içeriÄŸin IID'si ile " "deÄŸiÅŸtirilecek. " #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "Uçbirim gerektiren uygulamalar için öntanımlı uçbirim uygulaması." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Öntanımlı uçbirim uygulamsı için çalıştırma argümanları." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Komutu uçbirim içinde çalıştır" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "EÄŸer etkinse, \"aim\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "EÄŸer etkinse, \"callto\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "EÄŸer etkinse, \"ghelp\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "EÄŸer etkinse, \"h323\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "EÄŸer etkinse, \"http\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "EÄŸer etkinse, \"https\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "EÄŸer etkinse, \"info\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "EÄŸer etkinse, \"mailto\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "EÄŸer etkinse, \"man\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "EÄŸer etkinse, \"trash\" URL'lerinin iÅŸlemek için kullanılacak komut." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URL'leri için iÅŸleyici" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"aim\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"callto\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"ghelp\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" de belirtilen programın \"h323\" URL'lerini " "iÅŸletmek için ayarlanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"http\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"https\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"info\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"mailto\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"man\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "EÄŸer seçiliyse, \"command\" da belirtilen programın \"trash\" URL'lerini " "iÅŸletmesi için ayalalanır." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor " "demektir." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Belirtilen komutun \"aim\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Belirtilen komutun \"callto\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Belirtilen komutun \"ghelp\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Belirtilen komutun \"h323\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Belirtilen komutun \"http\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Belirtilen komutun \"https\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Belirtilen komutun \"info\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Belirtilen komutun \"mailto\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Belirtilen komutun \"man\" URL'lerini iÅŸlemesi" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Belirtilen komutun \"trash\" URL'lerini iÅŸlemesi" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "\"network:///\" konumunda görülmesi gereken DNS-SD alan adlarının virgül ile " "ayırılmış listesi." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "İçinde DNS-SD servislerini aramak için ek alan adları" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Yerel DNS-SD servislerinin nasıl gösterileceÄŸi" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Geçerli deÄŸerler, \"merged\" (birleÅŸik), \"separate\" (ayrık) ve \"disabled" "\" (kapalı)'dir." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Vekil sunucu baÄŸlantılarında kimlik doÄŸrulaması yap" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Otomatik vekil sunucu yapılandırma adresi" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "HTTP'ye İnternet üzerinden baÄŸlanırken vekili etkin kılar." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP vekil sunucu makine adı" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP vekil sunucu portu" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP vekil sunucu makine adı" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP vekil sunucu parolası" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP vekil sunucu portu" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP vekil sunucu kullanıcı adı" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "EÄŸer seçiliyse, vekil sunucusuna baÄŸlantılar kimlik doÄŸrulaması gerektirir. " "kullanıcı adı/parola ikilisi \"/system/http_proxy/authentication_user\" ve " "\"/system/http_proxy/authentication_password\" ile tanımlanır." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Vekil olmayan makineler" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP vekili kimlik doÄŸrulaması için kullanılacak ÅŸifre." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Vekil sunucu yapılandırma kipi" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS vekil sunucu adı" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCS vekil sunucu portu" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Güvenli HTTP vekil sunucu adı" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Güvenli HTTP sunucu portu" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Vekil yapılandırma kipi seç. Geçerli deÄŸerler \"none\", \"manual\" ve \"auto" "\"dur." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP için kullanılacak vekilin makine adı." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP için kullanılacak vekilin makine adı." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Güvenli HTTP için kullanılacak vekilin makine adı." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Socks için kullanılacak vekilin makine adı." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "\"/system/http_proxy/host\" ile tanımlanmış vekil olarak kullanacağınız " "makinenin portu." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "\"/system/proxy/ftp_host\" ile tanımlanmış vekil olarak kullanacağınız " "makinenin portu." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "\"/system/proxy/secure_host\" ile tanımlanmış vekil olarak kullanacağınız " "makinenin portu." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "\"/system/proxy/socks_host\" ile tanımlanmış vekil olarak kullanacağınız " "makinenin portu." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Bu anahtar vekil (eÄŸer aktifse) aracılığından daha çok, direk baÄŸlanmış " "sunucuların listesini içerir. DeÄŸerler, sunucu adları, alanları (enbaÅŸta " "maske kullanarak, *.foo.com), IP sunucu adresleri (hem IPv4 hem IPv6) ve aÄŸ " "maskeli aÄŸ adresleri (192.168.0.0/24 benzeri) olabilir." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "Vekil ayar deÄŸerlerini saÄŸlayan URL." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP vekili kullan" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP vekili kimlik doÄŸrulamasında kullanacağı kullanıcı adı." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB çalışma gurubu" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Kullanıcının parçası olduÄŸu Windows aÄŸ çalışma grubu ya da etki alanı. Yeni " "çalışma grubunun tam olarak iÅŸlemesi için kullanıcının çıkış yapıp tekrar " "giriÅŸ yapması gerekebilir." # libgnomevfs/gnome-vfs-parse-ls.c:654 #~ msgid "Could not initialize Bonobo" #~ msgstr "Bonobo baÅŸlatılamadı" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Gnome vfs baÅŸlatılamadı" #~ msgid "Standard Moniker factory" #~ msgstr "Standart İsimlendirici Üreticisi" #~ msgid "file MonikerExtender" #~ msgstr "dosya MonikerExtender'ı" #~ msgid "generic Gnome VFS moniker" #~ msgstr "genel Gnome VFS ismi" # libgnomevfs/gnome-vfs-result.c:41 #~ msgid "generic file moniker" #~ msgstr "genel dosya ismi" gnome-vfs-2.24.4/po/ast.po0000644000175000001440000013413111334251016012165 00000000000000# Asturian translation for gnome-vfs # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the gnome-vfs package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-02-10 09:21+0100\n" "PO-Revision-Date: 2009-01-21 16:49+0000\n" "Last-Translator: Astur \n" "Language-Team: Asturian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Launchpad-Export-Date: 2009-02-10 01:08+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volume ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contién carauteres nulos." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u nun contién un nome de métodu." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u nun tien nengún marcador de finalización d'opciones." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u tien opciones desconocíes %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u nun contién nengún nome de módulu." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Nun s'alcuentra l'archivu de configuración `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d albortó l'analís." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volume AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volume de rede AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volume autu-deteutáu" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "Unidá de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD de soníu dixital" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Volume de dispositivu hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "Volume EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Volume Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Volume Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "Volume MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "Volume BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "Volume FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "Volume MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "Volume CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Volume CDROM HSFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "Volume JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Volume Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Volume de sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Volume de memoria" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Volume Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "Volume de rede NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Volume Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Volume Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "Volume Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Volume compartíu de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "Volume SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "Volume DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Volume Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Volume Solaris UDFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Volume Solaris PCFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Volume Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Volume temporal" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Volume meyoráu de DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Volume VFAT de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Volume Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "Volume Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "Volume XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "Volume CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Desconocíu" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volume %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Unidá %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Unidá %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disquetera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Unidá Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Unidá de barra de memoria" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Unidá Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Unidá SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Unidá Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Unidá Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Reproductor de música %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Cámara dixital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unidá" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s esterna" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Discu CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Discu CD-ROM virxe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Discu CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Discu CD-RW virxe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Discu CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Discu DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Discu DVD-RAM virxe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Discu DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Discu DVD-R virxe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Discu DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Discu DVD-RW virxe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Discu DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Discu DVD+R virxe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Discu DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Discu DVD+RW virxe" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Discu DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Discu de soníu" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volume extrayíble %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tipu d'operación desconocíu %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nun se puede criar el pipe pal GIOChannel abiertu: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tipu de trabayu %u desconocíu" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Detúvose la operación" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Función obsoleta. Les modificaciones del usuariu a la base de datos MIME nun " "se sofiten dende agora." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Nun se pue analizar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "El restu de los errores d'analís inoraránse." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ensin erros" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Nun s'alcontró'l ficheru" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Error xenéricu" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Error internu" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parámetros non válidos" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "La operación nun ye sofitada" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Error I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Datos corruptos" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formatu non válidu" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Remanador d'archivos erróneu" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "L'archivu ye enforma grande" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nun queda espaciu nel dispositivu" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistema d'archivos de sólo lletura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "La URI nun es válida" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "L'archivu nun ta abiertu" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "El mou d'apertura nun ye válidu" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Accesu refugáu" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Hai munchos archivos abiertos" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fin d'archivu" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nun ye un direutoriu" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "La operación ta en progresu" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "La operación interrumpióse" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "L'archivu yá esiste" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Deteutóse una referencia circular d'enllaces" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operación non permitida" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Ye un direutoriu" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nun hai memoria bastante" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Nun s'alcontró el host" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "El nome del host nun ye válidu" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "El host nun tien direición" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Falló l'accesu" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "La operación cancelóse" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "El direutoriu ta perocupáu" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "El direutoriu nun ta ermu" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Hai munchos enllaces" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Sistema de sólo lletura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Non nel mesmu sistema d'archivos" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nome enforma llargu" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "El serviciu nun s'alcuentra disponible" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Request obsoletes service's data" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Erru de protocolu" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Nun s'alcontró l'esaminador principal" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nun hai aición predeterminada asociada" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Nun hai remanador pal esquema d'URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Erru al analizar la llinia de comandos" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Erru al llanzar comandu" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Algamóse el tiempu d'espera afitáu" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Erru del servidor de nomes" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "El recursu ta bloquiáu" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "La llamada de función ye obsoleta" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nome d'archivu inválidu" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nun ye un enllaz simbólicu" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Error desconocíu" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KiB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Gb" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode non válidu)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquete" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Discu" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Unidá USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Unidá IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Barra de memoria" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Cámara" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volume raíz" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD de Soníu" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volume desconocíu" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Servidor de rede" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Nun ye dable montar la unidá de disquetes. Seique nun heba disquete na unidá." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Nun ye dable montar el volume. Seique non introduxo un soporte nel " "dispositivu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Nun ye dable montar la unidá de disquetes. El disquete seique ta nún formatu " "que nun pue ser montáu." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Nun ye dable montar el volume. Si esta ye una unidá cifrada, entós usóse una " "contraseña o clave incorreuta." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Nun ye dable montar el volume seleicionáu. Seique'l volume tea nún formatu " "que nun pue ser montaú." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Nun ye dable montar la unidá de disquetes seleicionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Nun ye dable montar el volume seleicionáu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Nun ye dable desmontar el volume seleicionáu. Seique'l volume tea siendo " "usáu por otru o dellos programes." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Nun ye dable desmontar el volume seleicionáu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Falló al lleer los datos dende'l procesu fíu %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Nun se foi quien a executar el procesu de montax nún pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Erru non esperáu en select() al lleer datos dende un procesu fíu (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Nun se pudo unviar la contraseña al procesu de montax." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Erru inesperáu en waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Falló al aniciar el comandu" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nun se foi quien a espulsar el soporte" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nun se foi quien a desmontar el servidor coneutáu" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rede" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Entamu" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistema de ficheros" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d desconocía" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rede de Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "La identidá de la computadora remota (%s) ye desconocía." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Esto asocede cuando anicia sesión nuna computadora per primer vegada.\n" "\n" "La identidá unviada pola computadora remota ye %s. Si quier asegurase de que " "ye seguro continuar, consulte col alministrador del sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Aniciar sesión de toes formes" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancelar entamu de sesión" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "No s'alcontró un ficheru de configuración válidu pa %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Use la variable d'entorno %s pa especificar una llocalización diferente\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "El to Proxy HTTP requier que tes identificáu.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Tien de tar identificáu \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "La to clave sedrá unviada ensin encriptar" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "La to clave sedrá unviada encriptada" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Tienes de tar identificau p'aceder %s domain %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Tienes d'identificate p'acceder %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplicación visualizadora del componente" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplicación de terminal predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "L'argumentu exec pa la terminal predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "L'aplicación que s'usará p'adicar ficheros que requieren un componente pa " "velos. El parámetru %s podrá ser reemplazáu polos URIs del ficheru, el " "parámetru %c sedrá reemplazáu pol IID del componente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "La'aplicación de terminal predeterminada pa les aplicaciones que lo " "requieran." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "L'argumentu de exec a usar pa l'aplicación de terminal predeterminada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Executar el comandu nún terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 #, fuzzy msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «man», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «callto», si ta habilitáu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "El comandu usáu pa remanar los URLs «ghelp», si tan activaos." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «h323», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «http», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «https», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «info», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «mailto», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «man», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "El comandu usáu pa remanar les URLs «trash», si tan activaes." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 #, fuzzy msgid "The handler for \"aim\" URLs" msgstr "El remanador pa les URLs «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "El remanador pa les URLs «callto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "El remanador pa les URLs «ghelp»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "El remanador pa les URLs «h323»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "El remanador pa les URLs «http»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "El remanador pa les URLs «https»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "El remanador pa les URLs «info»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "El remanador pa les URLs «mailto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "El remanador pa les URLs «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "El remanador pa les URLs «trash»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «man»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «callto»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «ghelp»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «h323»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «http»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «https»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «info»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «mailto»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «man»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " "remanar les URLs «trash»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Afitar a «true» si'l programa que remana esta URL tien d'executase nún " "terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 #, fuzzy msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «callto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «ghelp»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «h323»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «http»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «https»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «info»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «mailto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «trash»" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Llista separtada por comes de dominios DNS-SD que tendríen de ser adicables " "nel llugar «network:///»." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dominios adicionales nos que buscar servicios DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Cómo amosar el serviciu DNS-SD llocal" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Los valores dables son «merged», «separate» y «disabled»." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autenticar conexones col servidor proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuración automática del proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Activa los axustes del proxy al acceder per HTTP a Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nome del host del proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Puertu del proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nome del host del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Contraseña del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Puertu del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Usuariu del proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Si ye «true» (braero), les conexones al servidor proxy requieren " "d'autenticación. La combinación usuariu/contraseña defínses en \"/system/" "http_proxy/authentication_user\" y \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Hosts ensin proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Contraseña pa usar como autenticación al coneutar col proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mou de configuración del proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nome del host del proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Puertu del proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nome del host del proxy HTTP seguru" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Puertu del proxy HTTP seguru" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Seleicione el mou de configuración del proxy. Los valores sofitaos son " "\"none\", \"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "El nome de la máquina pola que se fai proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "El nome de la máquina pola que se fai proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "El nome de la máquina pola que se fai proxy HTTP seguru." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "El nome de la máquina pela que se fai proxy socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "El puertu de la máquina definía por \"/system/HTTP_proxy/host\" que fai de " "proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "El puertu de la máquina definía por \"/system/proxy/ftp_host\" que fai de " "proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "El puertu de la máquina definía por \"/system/proxy/secure_host\" que fai de " "proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "El puertu de la máquina definía por \"/system/proxy/socks_host\" que fai de " "proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Esta clave contién una llista de hosts colos que ta coneutado direutamente, " "n'arróu de per aciu del proxy (si ta activu). Los valores puen ser nomes de " "anfitrión, dominios (usando un comodín auxiliar como *.foo.com), direiciones " "IP de hosts (tantu IPv4 como IPv6) y direiciones de rede con una máscara " "(daqué como 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL que proporciona valores de configuración de proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Usar proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Nome d'usuariu pa pasar como autenticación al facer proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grea de trabayu SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "La grea/grupu de trabayu de rede de Windows o el dominiu del que l'usuariu " "ye parte. Pa que un grupu nuevu tenga efeutu, l'usuariu pue necesitar zarrar " "la sesión y entrar de nuevu." #~ msgid "The command used to handle \"cdda\" URLs, if enabled." #~ msgstr "El comandu usáu pa remanar URLs «cdda», si ta habilitáu" #~ msgid "The handler for \"cdda\" URLs" #~ msgstr "El remanador pa URLs «cdda»" #~ msgid "" #~ "True if the command specified in the \"command\" key should handle \"cdda" #~ "\" URLs." #~ msgstr "" #~ "Afitar a «true» si'l programa especificáu na clave «comandu» tendría de " #~ "remanar les URLs «cdda»." #~ msgid "Whether the specified command should handle \"cdda\" URLs" #~ msgstr "Conseña si'l comandu especificáu tien de remanar les URLs «cdda»" gnome-vfs-2.24.4/po/gl.po0000644000175000001440000013502411450220305011776 00000000000000# translation of gnome-vfs-master-po-gl-33738.po to Galician # Galician translation of gnome-vfs. # Copyright (C) 1999-2004 Jesús Bravo Ãlvarez. # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en http://www.trasno.net # # First Version: 1999-12-29 16:22+0100 # # Jesús Bravo Ãlvarez , 1999-2004. # Ignacio Casal Quinteiro , 2005, 2006. # Ignacio Casal Quinteiro , 2007, 2008. # Mancomún - Centro de Referencia e Servizos de Software Libre , 2009. # Antón Méixome , 2009. # Fran Diéguez , 2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs-master-po-gl-33738\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-07-20 13:46+0200\n" "PO-Revision-Date: 2010-07-20 13:46+0200\n" "Last-Translator: Fran Diéguez \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volume ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contén caracteres nulos." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u non contén ningún nome de método." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u non ten marca de fin de opcións." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u ten opcións %s descoñecidas." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u non contén ningún nome de módulo." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Non foi posíbel encontrar o ficheiro de configuración `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s: %d análise interrompida." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volume AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volume de rede AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volume detectado automaticamente" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volume Btrfs de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Dispositivo de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD de son dixital" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volume de dispositivo hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volume EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volume eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volume Ext2 de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volume Ext3 de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volume Ext4 de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volume de MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volume de BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volume FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volume de MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volume de CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volume de CDROM en Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volume JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volume de Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volume de sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volume de memoria" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volume de Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volume de rede NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volume NTFS de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volume de Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volume de Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volume ReiserFS de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volume compartido de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volume SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volume de DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volume de Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volume Udfs de Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volume Pcfs de Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volume SAM-QFS de Sun" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volume temporal" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volume de DOS mellorado" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volume VFAT de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volume de Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volume XFS de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volume de XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volume CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Descoñecido" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volume %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Dispositivo %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Dispositivo %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disqueteira" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Dispositivo Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Dispositivo Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Dispositivo Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Dispositivo SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Dispositivo Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Dispositivo Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Memoria USB" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Reprodutor de música %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Cámara dixital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Dispositivo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s externo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disco CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disco CD-R en branco" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disco CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disco CD-RW en branco" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disco CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disco DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disco DVD-RAM en branco" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disco DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disco DVD-R en branco" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disco DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disco DVD-RW en branco" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disco DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disco DVD+R en branco" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disco DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disco DVD+RW en branco" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disco DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disco de audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volume extraíbel %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tipo de operación descoñecida %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Non é posíbel crear unha canalización para o GIOChannel aberto: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Clase de traballo %u descoñecida" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operación detida" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Función obsoleta. A base de datos MIME xa non admite modificacións feitas " "polo usuario." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Non foi posíbel analizar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "O resto de erros de análise ignoraranse." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Non hai erros" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Non se encontrou o ficheiro" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Erro xenérico" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Erro interno" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Os parámetros non son válidos" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Non se admite a operación" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Erro de E/S" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Os datos están corrompidos" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "O formato non é válido" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "O manexador de ficheiros non é válido" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "O ficheiro é demasiado grande" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Non hai espazo libre no dispositivo" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistema de ficheiros só de lectura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "O URI non é correcto" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "O ficheiro non está aberto" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "O modo de apertura non é válido" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Acceso denegado" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Hai demasiados ficheiros abertos" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fin do ficheiro" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Non é un cartafol" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operación en curso" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "A operación interrompeuse" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "O ficheiro xa existe" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Encontráronse ligazóns en bucle" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Non se permite a operación" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "É un cartafol" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Non hai suficiente memoria" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Non se localizou o host" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "O nome do host non é correcto" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "O host non ten un enderezo" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Produciuse un fallo no inicio da sesión" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Anulouse a operación" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "O cartafol está ocupado" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "O cartafol non está baleiro" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Hai demasiadas ligazóns" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Sistema de ficheiros só de lectura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Non están no mesmo sistema de ficheiros" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "O nome é demasiado longo" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Servizo non dispoñíbel" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "A petición fai obsoletos os datos do servizo" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Erro do protocolo" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Non foi posíbel atopar o navegador principal" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Non hai unha acción predefinida asociada" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Non hai un manipulador para o esquema do URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Produciuse un erro ao analizar a liña de ordes" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Produciuse un erro ao lanzar a orde" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Finalizou o tempo de espera" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Erro do servidor de nomes" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "O recurso está bloqueado" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "A chamada de función está anticuada" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "O nome do ficheiro non é correcto" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Non é unha ligazón simbólica" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Erro descoñecido" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (O Unicode non é correcto)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquete" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disco" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Dispositivo USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Dispositivo IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Tarxeta de memoria" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Cámara" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volume raíz" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD de audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volume descoñecido" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Servidor de rede" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Non é posíbel montar a disqueteira. Pode que non haxa ningún disquete " "inserido." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Non é posíbel montar o volume. Pode que non haxa soportes no dispositivo." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Non é posíbel montar a disqueteira. Pode que estea nun formato que non pode " "ser montado." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Non é posíbel montar o volume. Se este é un dispositivo cifrado, entón o " "contrasinal ou a chave usada non é correcta." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Non é posíbel montar o volume seleccionado. Pode que estea nun formato que " "non pode ser montado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Non é posíbel montar a disqueteira seleccionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Non é posíbel montar o volume seleccionado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Non é posíbel desmontar o volume seleccionado. O volume estase usando nun ou " "máis programas." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Non é posíbel desmontar o volume seleccionado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Produciuse un fallo ao ler os datos do proceso fillo %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Non foi posíbel executar o proceso de montar nun pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Produciuse un erro inesperado en select() lendo os datos do proceso fillo (%" "s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Non é posíbel enviar o contrasinal para montar o proceso." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Produciuse un erro inesperado en waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Produciuse un fallo ao iniciar a orde" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Non é posíbel extraer o soporte" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Non é posíbel desmontar o servidor conectado" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rede" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Home" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistema de ficheiros" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d descoñecido" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rede de Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "A identidade do computador remoto (%s) é descoñecida." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Isto acontece cando se rexistra nun computador por primeira vez.\n" "\n" "A identidade enviada polo computador remoto é %s. Se quere ter a certeza " "absoluta de que é seguro continuar, contacte coa persoa administradora do " "sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Rexistrarse de todas as formas" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Anular o inicio de sesión" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Non se localizou ningún ficheiro de propiedades válido en %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Usar a variábel de contorno %s para indicar unha localización diferente.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "O seu proxy HTTP require que inicie a sesión.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Ten que iniciar a sesión para acceder a «%s».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "O contrasinal transmitirase sen cifrar." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "O contrasinal transmitirase cifrado." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Ten que iniciar a sesión para acceder a %s, dominio %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Ten que iniciar a sesión para acceder a %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplicativo predefinido para o visualizador de compoñentes" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplicativo do terminal predefinido" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argumento exec para o terminal predefinido" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "O aplicativo usado para ver ficheiros que requiren un compoñente para " "visualizalos. O parámetro %s substitúese polos URI do ficheiro e o parámetro " "%c polo IID do compoñente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "O aplicativo do terminal predefinido para usar nos aplicativo que precisan " "dun terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "O argumento exec para usar co aplicativo do terminal predefinido." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Executar a orde nun terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"aim\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"callto\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"ghelp\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"h323\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"http\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"https\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"info\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"mailto\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"man\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "A orde usada para manipular os URL \"trash\", se está activada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "O manipulador dos URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "O manipulador dos URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "O manipulador dos URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "O manipulador dos URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "O manipulador dos URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "O manipulador dos URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "O manipulador dos URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "O manipulador dos URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "O manipulador dos URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "O manipulador dos URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "É true se a orde especificada na chave \"command\" debe manipular os URL " "\"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "É true se a orde usada para manipular este tipo de URL debe ser executada " "nun terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Indica se a orde especificada debe manipular os URL \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Lista separada por comas dos dominios DNS-SD que deben ser visíbeis na " "localización \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dominios adicionais onde buscar servizos DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Como mostrar o servizo DNS-SD local" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Os valores posíbeis son \"merged\", \"separate\" e \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autenticar as conexións co servidor proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuración automática do proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Activa as configuracións do proxy ao acceder a HTTP a través de Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nome do host proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Porto do proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nome do host proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Contrasinal do proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Porto do proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nome de usuario para o proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Se é true, as conexións ao servidor proxy requirirán autenticación. O nome " "do usuario e o contrasinal están definidos polas chaves \"/system/http_proxy/" "authentication_user\" e \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Hosts que non usan proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Contrasinal requirido como autenticación ao usar o proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Modo de configuración do proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nome do host do proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Porto do proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nome do host do proxy HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Porto do proxy HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Selecciona o modo de configuración do proxy. Os valores admitidos son \"none" "\", \"manual\" ou \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "O nome da máquina a través da que efectuar o proxy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "O nome da máquina a través da que efectuar o proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "O nome da máquina a través da que efectuar o proxy HTTP seguro." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "O nome da máquina a través da que efectuar o proxy socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "O porto da máquina definido por \"/system/http_proxy/host\" a través do que " "efectuar o proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "O porto da máquina definido por \"/system/proxy/ftp_host\" a través do que " "efectuar o proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "O porto da máquina definido por \"/system/proxy/secure_host\" a través do " "que efectuar o proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "O porto da máquina definido por \"/system/proxy/socks_host\" a través do que " "efectuar o proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Esta chave contén unha lista dos hosts que están conectados directamente en " "vez de a través do proxy (se está activado). Os valores poden ser nomes de " "host, dominios (usando un comodín inicial como *.foo.com), enderezos IP do " "host (tanto o IPv4 como o IPv6) e enderezos de rede con máscara (como " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL que fornece os valores de configuración do proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Usar proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Nome de usuario requirido na autenticación ao usar o proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grupo de traballo SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "O grupo de traballo en rede ou o dominio de Windows ao que o usuario " "pertence. Para que un grupo novo sexa completamente efectivo, o usuario pode " "necesitar terminar a sesión e iniciala de novo." gnome-vfs-2.24.4/po/uk.po0000644000175000001440000015241611354402652012031 00000000000000# Ukrainian translation of gnome-vfs. # Copyright (C) 1999 Free Software Foundation, Inc. # Yuri Syrota , 1999. # Maxim Dziumanenko , 2004-2006 # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-04 15:26+0200\n" "PO-Revision-Date: 2010-01-04 22:54+0300\n" "Last-Translator: Maxim Dziumanenko \n" "Language-Team: Ukrainian \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Том ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u міÑтить NUL Ñимволи." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u не міÑтить назви методу." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u не міÑтить маркера Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð²." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u міÑтить невідомий параметр %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u не міÑтить назви модулÑ." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Конфігураційний файл \"%s\" не знайдено: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d розбір перервано." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Том AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Мережний том AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Ðвтоматично визначений том" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Том Linux формату Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "ПриÑтрій CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Цифровий аудіо компакт-диÑк" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Том апаратного реÑурÑу" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Том EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Том eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Том Linux формату Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Том Linux формату Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Том Linux формату Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Том MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Том BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Том FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Том MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Том компакт-диÑка" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Том Hsfs компакт-диÑка" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Том JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Том Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "СиÑтемний том" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Том у пам'Ñті" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Том Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Мережний том NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Том NILFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Том Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Том Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Том ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Спільний том Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Том SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Том DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Том Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Том Udfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Том Pcfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Том Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "ТимчаÑовий том" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Розширений том DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Том Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Том Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Том XFS Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Том XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Том CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Ðевідомий" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Том %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "Компакт-диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "ДиÑк CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "ДиÑк CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "ДиÑк DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "ДиÑк DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "ДиÑк DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "ДиÑк DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "ДиÑк DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "ДиÑк DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "ДиÑк DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "ПриÑтрій %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "ПриÑтрій %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ДиÑковод" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "ПриÑтрій Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "ПриÑтрій зовнішньої пам'Ñті" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "ПриÑтрій Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "ПриÑтрій SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ZIP-приÑтрій" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ПриÑтрій Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "ПриÑтрій Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Музичний програвач %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Цифрова камера %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ПриÑтрій" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Зовнішній %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "ДиÑк CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ЧиÑтий диÑк CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "ДиÑк CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ЧиÑтий диÑк CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "ДиÑк CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "ДиÑк DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ЧиÑтий диÑк DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "ДиÑк DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ЧиÑтий диÑк DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "ДиÑк DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ЧиÑтий диÑк DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "ДиÑк DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ЧиÑтий диÑк DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "ДиÑк DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ЧиÑтий диÑк DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "ДиÑк DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Ðудіо диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Змінний ноÑій %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Том" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Ðевідомий тип операції %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ðеможливо Ñтворити канал Ð´Ð»Ñ GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Ðевідомий тип Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Операцію зупинено" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— не ÑхвалюєтьÑÑ. Зміни кориÑтувачем бази даних MIME " "більше не підтримуютьÑÑ." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ðе вдаєтьÑÑ Ð¿Ñ€Ð¾Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Інші помилки аналізу буде проігноровано." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Без помилок" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Файл не знайдено" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Загальна помилка" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ðеправильні параметри" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ підтримуєтьÑÑ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Помилка вводу/виводу" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Дані пошкоджені" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ÐеприпуÑтимий формат" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Ðеправильний деÑкриптор файлу" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Файл надто великий" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ВідÑутній вільний проÑтір на приÑтрої" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Файлова ÑиÑтема лише Ð´Ð»Ñ Ð·Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ðеправильний URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Файл не відкрито" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Ðеправильний режим відкриттÑ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ДоÑтуп заборонено" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Ðадто багато відкритих файлів" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Знайдено кінець файлу" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ðе Ñ” каталогом" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Операцію перервано" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Файл Ñ–Ñнує" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Знайдено циклічні поÑиланнÑ" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Операцію не дозволено" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Є каталогом" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ÐедоÑтатньо пам'Ñті" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Вузол не знайдено" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Ðеправильна назва вузла" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ВідÑÑƒÑ‚Ð½Ñ Ð°Ð´Ñ€ÐµÑа у вузла" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Вхід у ÑÐµÐ°Ð½Ñ Ð½Ðµ вдавÑÑ" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Операцію відмінено" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Каталог зайнÑто" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Каталог не порожній" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Ðадто багато поÑилань" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Файлова ÑиÑтема лише Ð´Ð»Ñ Ð·Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ðе на тій Ñамій файловій ÑиÑтемі" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Ðадто довге ім'Ñ" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Служба не доÑтупна" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Були запитані заÑтарілі дані Ñлужби" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Помилка протоколу" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ головний переглÑдач" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ВідÑÑƒÑ‚Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð° пов'Ñзана діÑ" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "ВідÑутній обробний Ð´Ð»Ñ Ñхеми URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Помилка розбору командного Ñ€Ñдка" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Помилка при виконанні команди" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Вийшов чаÑ" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Помилка Ñерверу назв" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "РеÑÑƒÑ€Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Виклик функції не ÑхвалюєтьÑÑ" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ðеправильна назва файлу" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ðе Ñ” Ñимволічним поÑиланнÑм" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ðевідома помилка" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u байт" msgstr[1] "%u байти" msgstr[2] "%u байтів" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f Кб" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f Мб" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Гб" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(неправильний Юнікод)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ДиÑкета" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "Компакт-диÑк/DVD-диÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "Компакт-диÑк/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "Компакт-диÑк/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "Компакт-диÑк/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "ДиÑк CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "ДиÑк CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "ДиÑк CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "ДиÑк CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "ДиÑк CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "ДиÑк CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "ДиÑк CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "ДиÑк CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ДиÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-приÑтрій" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-приÑтрій" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "Карта пам'Ñті (CF)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "ÐоÑій SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Модуль зовнішньої пам'Ñті" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "ÐоÑій Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Камера" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Кореневий том" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Ðудіо компакт-диÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Ðевідомий том" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Мережний Ñервер" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ диÑкету. Можливо, у диÑководі відÑÑƒÑ‚Ð½Ñ Ð´Ð¸Ñкета." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ том. Можливо, відÑутній ноÑій у приÑтрої." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ диÑкету. Можливо, диÑкета має такий формат, що вона " "не може бути підключена." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ том. Цей приÑтрій зашифрований, Ñ– було вказано " "неправильний пароль чи ключ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ вибраний том. Можливо, том має такий формат, що він " "не може бути підключений." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ вибрану диÑкету." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ðе вдаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ вибраний том." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ вибраний том. Том викориÑтовуєтьÑÑ Ð¾Ð´Ð½Ñ–Ñ”ÑŽ або " "кількома програмами." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ вибраний том." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Ðе вдаєтьÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані з допоміжного процеÑу %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ðе вдаєтьÑÑ Ð·Ð°Ð¿ÑƒÑтити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñƒ pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Ðеочікувана помилка у select() при читанні даних з дочірнього процеÑу (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Ðе вдаєтьÑÑ Ð½Ð°Ð´Ñ–Ñлати пароль процеÑу mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Ðеочікувана помилка у waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Ðе вдаєтьÑÑ Ð·Ð°Ð¿ÑƒÑтити команду" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ðе вдаєтьÑÑ Ð²Ð¸Ñ‚Ñгнути ноÑій" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ÑÑŒ від файлової ÑиÑтеми Ñервера" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Мережа" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Початок" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Файлова ÑиÑтема" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ðевідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Мережа Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ДоÑтовірніÑть віддаленого комп'ютера (%s) невідома." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Це траплÑєтьÑÑ ÐºÐ¾Ð»Ð¸ ви входите у ÑиÑтему перший раз.\n" "\n" "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ доÑтовірніÑть надіÑлана віддаленим комп'ютером - %s. Якщо ви " "бажаєте бути абÑолютно впевнені, що Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñ” безпечним, " "зв'ÑжітьÑÑ Ð· ÑиÑтемним адмініÑтратором." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Увійти попри вÑе" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "СкаÑувати вхід" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ðе знайдено правильний файл параметрів у %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "ВикориÑтовуйте змінну Ñередовища %s Ð´Ð»Ñ Ð²ÐºÐ°Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½ÑˆÐ¾Ð³Ð¾ розміщеннÑ.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Ваш Ñервер HTTP Proxy вимагає реєÑтрації.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу необхідно зареєÑтруватиÑÑŒ \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Ваш пароль буде передаватиÑÑŒ у незашифрованому виглÑді." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Ваш пароль буде передаватиÑÑŒ у зашифрованому виглÑді." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Ðеобхідно зареєÑтруватиÑÑŒ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу %s до домену %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Ðеобхідно зареєÑтруватиÑÑŒ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Типова програма переглÑду компонентів" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Типова програма терміналу" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Ðргументи Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ терміналу" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Програма, що викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду файлів, Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñких " "потрібен компонент. Параметр %s буде замінений адреÑою (URI) файлу, параметр " "%c - ідентифікатором (IID) компоненту." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Типова програма терміналу, що викориÑтовуєтьÑÑ Ð· програмами, Ñкім потрібен " "термінал." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Ðргументи виконаннÑ, що викориÑтовуютьÑÑ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾ÑŽ програмою терміналу." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Виконувати команду у терміналі" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Обробник URL типу \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Обробник URL типу \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Обробник URL типу \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Обробник URL типу \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Обробник URL типу \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Обробник URL типу \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Обробник URL типу \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Обробник URL типу \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Обробник URL типу \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Обробник URL типу \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Якщо команда вказана у ключі \"command\", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ " "(URL) типу \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна " "запуÑкатиÑÑŒ у терміналі." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Перелік розділених комою доменів DNS-SD, Ñкі повинні бути видимими за " "адреÑою \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Додаткові домени Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ у них Ñлужб DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Як відображати локальну Ñлужбу DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Можливими значеннÑми Ñ” \"merged\", \"separate\" and \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· прокÑÑ–-Ñервером вимагають автентифікації" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) на автоматичне Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñлужби" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Вмикає параметри прокÑÑ–-Ñлужби Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ HTTP через Інтернет." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Ðазва вузла прокÑÑ–-Ñервера протоколу FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Порт прокÑÑ–-Ñервера протоколу FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Ðазва вузла прокÑÑ–-Ñервера протоколу HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Пароль Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñервера протоколу HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Порт прокÑÑ–-Ñервера протоколу HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача прокÑÑ–-Ñервера протоколу HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Якщо ввімкнено, з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· прокÑÑ–-Ñервером вимагатимуть аутентифікації. " "Пара параметрів ім'Ñ/пароль визначаєтьÑÑ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸ \"/system/http_proxy/" "authentication_user\" та \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Вузли поза прокÑÑ–-Ñлужбою" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Пароль Ð´Ð»Ñ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— прокÑÑ–-Ñлужбою протоколу HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Режим Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñлужби" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Вузол прокÑÑ–-Ñлужби протоколу SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Порт прокÑÑ–-Ñлужби протоколу SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Ðазва вузла прокÑÑ–-Ñервера захищеного протоколу HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Порт прокÑÑ–-Ñервера захищеного протоколу HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Виберіть режим Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñлужби. Можливі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \"none\", " "(немає) \"manual\", (вручну) \"auto\" (автоматично)." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Ðазва вузла прокÑÑ–-Ñервера протоколу FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Ðазва вузла прокÑÑ–-Ñервера протоколу HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Ðазва вузла прокÑÑ–-Ñервера захищеного протоколу HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Ðазва вузла прокÑÑ–-Ñервера протоколу SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем \"/system/http_proxy/host" "\"." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем \"/system/proxy/ftp_host" "\"." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем \"/system/proxy/" "secure_host\"." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем \"/system/proxy/socks_host" "\"." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Цей ключ міÑтить перелік вузлів, з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñкими вÑтановлюєтьÑÑ " "безпоÑередньо, обминаючи прокÑÑ–-Ñлужбу (Ñкщо вона активна). Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ " "бути іменами вузлів, доменами (з викориÑтаннÑм шаблонів подібних до *.foo." "com), IP адреÑами вузлів (Ñк IPv4, так Ñ– IPv6) та адреÑами мереж з " "викориÑтаннÑм маÑки (щоÑÑŒ Ñхоже не, 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL), що забезпечує Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ " "прокÑÑ–-Ñлужби." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "ВикориÑтовувати HTTP прокÑÑ–" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, що викориÑтовуєтьÑÑ Ð¿Ñ€Ð¸ автентифікацій прокÑÑ–-Ñлужбою " "протоколу HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Робоча група протоколу SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Робоча група чи домен Windows, членом Ñкого Ñ” кориÑтувач. При вказуванні " "нової робочої групи Ð´Ð»Ñ Ð½Ð°Ð±Ñ€Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð°Ð¼Ð¸ повної Ñили кориÑтувачу може " "знадобитиÑÑŒ вийти з ÑенÑу та увійти знову." gnome-vfs-2.24.4/po/LINGUAS0000644000175000001440000000056711354402652012076 00000000000000# please keep this list sorted alphabetically # af am ar as ast az be bg bn bn_IN bs ca ca@valencia cs cy da de dz el en_CA en_GB en@shaw eo es et eu fa fi fr ga gl gu he hi hr hu id is it ja ka kn ko ku li lt lv mai mg mk ml mn mr ms nb ne nl nn nso oc or pa pl pt pt_BR ro ru rw sk sl sq sr sr@latin sr@ije sv ta te th tr uk uz uz@cyrillic vi wa xh yi zh_CN zh_HK zh_TW zu gnome-vfs-2.24.4/po/en_CA.po0000644000175000001440000012735611334251016012356 00000000000000# English/Canada translation of gnome-vfs. # Copyright (C) 2004-2005 Adam Weinberger and the GNOME Foundation # This file is distributed under the same licence as the gnome-vfs package. # Adam Weinberger , 2004, 2005. # # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-08-15 14:24-0400\n" "PO-Revision-Date: 2005-07-18 16:30-0400\n" "Last-Translator: Adam Weinberger \n" "Language-Team: Canadian English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 Volume" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contains NUL characters." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u contains no method name." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u has no options endmarker." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u has unknown options %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u contains no module name." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Configuration file `%s' was not found: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d aborted parsing." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS Network Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Auto-detected Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM Drive" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "CD Digital Audio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Hardware Device Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "System Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Memory Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS Network Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows Shared Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Temporary Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Enhanced DOS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS Volume" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Unknown" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s Volume" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Floppy Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s Music Player" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Digital Camera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "External %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Blank CD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Blank CD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Blank DVD-RAM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Blank DVD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Blank DVD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Blank DVD+R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Blank DVD+RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audio Disc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Removable Volume" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volume" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Unknown operation type %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Cannot create pipe for open GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "Unknown job kind %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "Operation stopped" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Deprecated function. User modifications to the MIME database are no longer " "supported." #: ../libgnomevfs/gnome-vfs-parse-ls.c:720 #, c-format msgid "Could not parse: %s" msgstr "Could not parse: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:722 msgid "More parsing errors will be ignored." msgstr "More parsing errors will be ignored." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "No error" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "File not found" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Generic error" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Internal error" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Invalid parameters" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Unsupported operation" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O error" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Data corrupted" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format not valid" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Bad file handle" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "File too big" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "No space left on device" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Read-only file system" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Invalid URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "File not open" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Open mode not valid" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Access denied" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Too many open files" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "End of file" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Not a directory" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operation in progress" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operation interrupted" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "File exists" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Looping links encountered" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operation not permitted" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Is a directory" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Not enough memory" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Host not found" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Host name not valid" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Host has no address" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Login failed" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operation canceled" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directory busy" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Directory not empty" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Too many links" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Read-only file system" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Not on the same file system" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Name too long" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Service not available" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Request obsoletes service's data" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protocol error" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Could not find master browser" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "No default action associated" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "No handler for URL scheme" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Error parsing command line" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Error launching command" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Timeout reached" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Nameserver error" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "The resource is locked" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Function call deprecated" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Invalid filename" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Not a symbolic link" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Unknown error" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (invalid Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Floppy" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB Drive" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 Drive" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Camera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Root Volume" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Unknown volume" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "Network server" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Unable to mount the floppy drive. There is probably no floppy in the drive." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Unable to mount the volume. There is probably no media in the device." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Unable to mount the selected floppy drive." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Unable to mount the selected volume." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Unable to unmount the selected volume." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Failed to read data from child process %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Could not run mount process in a pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Unexpected error in select() reading data from a child process (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Could not send password to mount(1) process." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Unexpected error in waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Failed to start command" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Unable to eject media" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Unable to unmount connected server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Network" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Home" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Filesystem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Unknown GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows Network" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "The identity of the remote computer (%s) is unknown." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "This happens when you log in to a computer for the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Log In Anyway" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancel Login" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Didn't find a valid settings file at %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Use the %s environment variable to specify a different location.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Your HTTP Proxy requires you to log in.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "You must log in to access \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Your password will be transmitted unencrypted." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Your password will be transmitted encrypted." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "You must log in to access %s domain %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "You must log in to access %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Default component viewer application" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Default terminal application" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec argument for default terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, and the " "parameter %c will be replaced by the component IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "The default terminal application to use for applications that require a " "terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "The exec argument to use for the default terminal application." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Run the command in a terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "The command used to handle \"aim\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "The command used to handle \"callto\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "The command used to handle \"ghelp\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "The command used to handle \"h323\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "The command used to handle \"http\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "The command used to handle \"https\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "The command used to handle \"info\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "The command used to handle \"mailto\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "The command used to handle \"man\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "The command used to handle \"trash\" URLs, if enabled." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "The handler for \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "The handler for \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "The handler for \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "The handler for \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "The handler for \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "The handler for \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "The handler for \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "The handler for \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "The handler for \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "The handler for \"trash\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "True if the command used to handle this type of URL should be run in a " "terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Whether the specified command should handle \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Whether the specified command should handle \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Whether the specified command should handle \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Whether the specified command should handle \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Whether the specified command should handle \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Whether the specified command should handle \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Whether the specified command should handle \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Whether the specified command should handle \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Whether the specified command should handle \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Whether the specified command should handle \"trash\" URLs" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Comma-separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Extra domains in which to look for DNS-SD services" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "How to display local DNS-SD service" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Possible values are \"merged\", \"separate\" and \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Authenticate proxy server connections" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automatic proxy configuration URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Enables the proxy settings when accessing HTTP over the Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP proxy password" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP proxy username" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Non-proxy hosts" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Password to pass as authentication when doing HTTP proxying." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxy configuration mode" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS proxy port" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Secure HTTP proxy host name" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Secure HTTP proxy port" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", and \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "The machine name to proxy FTP through." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "The machine name to proxy HTTP through." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "The machine name to proxy secure HTTP through." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "The machine name to proxy socks through." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL that provides proxy configuration values." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Use HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Username to pass as authentication when doing HTTP proxying." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB workgroup" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." gnome-vfs-2.24.4/po/eu.po0000644000175000001440000013312011354402652012012 00000000000000# translation of eu.po to Basque # Copyright (C) 2001, 2004, 2005, 2006, 2007, 2010 Free Software Foundation, Inc. # # Hizkuntza Politikarako Sailburuordetza , 2004. # Iñaki Larrañaga Murgoitio , 2004, 2005, 2006, 2010. # Iñaki Larrañaga Murgoitio , 2007. msgid "" msgstr "" "Project-Id-Version: eu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-27 12:55+0100\n" "PO-Revision-Date: 2010-03-27 12:55+0100\n" "Last-Translator: Iñaki Larrañaga Murgoitio \n" "Language-Team: Basque \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" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 bolumena" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u(e)k karaktere NULUAK ditu." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u(e)k ez du metodo-izenik." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u(e)k ez du amaierako markarik." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u(e)k aukera ezezaguna du, %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u(e)k ez du modulu-izenik." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Ezin izan da `%s' konfigurazio-fitxategia aurkitu: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d analisia bertan behera utzi da." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS sareko bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Autodetektatutako bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM unitatea" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Audio digitala" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Hardware gailuaren bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CD-ROM bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CD-ROM bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Sistemaren bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Memoriaren bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS sareko bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows partekatua bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "PcFS Solaris bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Aldi baterako bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "DOS hobetua bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS bolumena" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Ezezaguna" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s bolumena" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROMa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-Ra" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RWa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROMa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+Ra" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RWa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-Ra" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RWa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAMa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±Ra" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RWa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskete unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memoria arkatz unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ZIP unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Arkatz unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s musika erreproduzitzailea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s kamera digitala" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unitatea" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Kanpoko %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "CD-R disko garbia" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "CD-RW disko garbia" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "DVD-RAM disko garbia" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "DVD-R disko garbia" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "DVD-RW disko garbia" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "DVD+R disko garbia" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "DVD+RW disko garbia" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Audioko diskoa" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s bolumen aldagarria" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Bolumena" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "%u eragiketa mota ezezaguna" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ezin izan da GIOChannel irekitzeko kanalizazioa sortu: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "%u lan-mota ezezaguna" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Eragiketa geldiarazita" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Funtzio zaharkitua. erabiltzaileak egindako MIME datu-basearen aldaketarik " "ez da onartuko" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ezin izan da hau analizatu: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Gainerako analisi-erroreei ez zaie jaramonik egingo." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Errorerik ez" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Ez da fitxategia aurkitu" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Errore generikoa" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Barne-errorea" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Baliogabeko parametroak" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Eragiketa hori ez dago baimenduta" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "S/Iko errorea" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Datuak hondatuta" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formatua ez da baliozkoa" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Fitxategi-heldulekua oker" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fitxategia handiegia da" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ez da lekurik geratzen gailuan" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Irakurtzeko soilik den fitxategi-sistema" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI baliogabea" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Ez da fitxategia ireki" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Irekitze-modua ez da baliozkoa" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Sarbidea ukatuta" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Fitxategi gehiegi daude irekita" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fitxategi-amaiera" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ez da direktorioa" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Eragiketa egiten ari da" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Eragiketa eten egin da" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Fitxategia badago" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Begizta-estekak aurkitu ditu" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Ez da eragiketa hori onartzen" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Direktorioa da" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ez dago nahikoa memoria" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Ez da ostalaria aurkitu" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Ostalari-izena ez da baliozkoa" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Ostalariak ez du helbiderik" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Saio-hasierak huts egin du" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Eragiketa bertan behera utzi da" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Direktorioa lanpetuta" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Direktorioa ez dago hutsik" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Esteka gehiegi" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Irakurtzeko soilik den fitxategi-sistema" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ez dago fitxategi-sistema berean" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Izen luzeegia da" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Zerbitzua ez dago erabilgarri" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Zerbitzu-datu zaharkituak eskatu dira" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokolo-errorea" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Arakatzaile maisua ezin izan da aurkitu" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Ez dago asoziatutako ekintza lehenetsirik" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ez dago URL eskemarako kudeatzailerik" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Errorea komando-lerroa analizatzean" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Errorea komandoa abiaraztean" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Denbora-mugara iritsi da" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Zerbitzari-izenaren errorea" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Baliabidea blokeatuta dago" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Funtzioaren deia zaharkitua" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Baliogabeko fitxategi-izena" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ez da esteka sinbolikoa" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Errore ezezaguna" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "byte %u" msgstr[1] "%u byte" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode baliogabea)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disketea" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROMa/DVD-ROMa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROMa/DVD-RAMa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROMa/DVD-Ra" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROMa/DVD-RWa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-Ra/DVD-ROMa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-Ra/DVD-RAMa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-Ra/DVD-Ra" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-Ra/DVD-RWa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RWa/DVD-ROMa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RWa/DVD-RAMa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RWa/DVD-Ra" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RWa/DVD-RWa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Diskoa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB gailua" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 gailua" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC euskarria" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memoria arkatza" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart euskarria" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVDa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Erroa bolumena" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD audioa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Bolumen ezezaguna" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Sareko zerbitzaria" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ezin da diskete gailua muntatu. Baliteke gailuan disketerik ez egotea." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ezin da bolumena muntatu. Baliteke gailuan euskarririk ez egotea." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ezin da diskete gailua muntatu. Baliteke disketeak muntatu ezin daitekeen " "formatua edukitzea." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ezin da bolumena muntatu. Enkriptatutako unitatea bada, pasahitz edo gako " "okerra erabili da." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ezin da hautatutako bolumena muntatu. Baliteke bolumenak muntatu ezin " "daitekeen formatua edukitzea." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ezin da hautatutako diskete gailua muntatu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ezin da hautatutako bolumena muntatu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ezin da hautatutako bolumena muntatu. Programa batek (edo gehiagok) darabil " "bolumena." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ezin da hautatutako bolumena desmuntatu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Huts egin du %d (%s) ume-prozesutik datuak irakurtzean" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ezin izan da muntatze-prozesua exekutatu 'pty' batean" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Ustekabeko errorea select() funtzioan ume-prozesutik (%s) datuak irakurtzean" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Ezin izan da pasahitza muntatzeko prozesuari bidali" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Ustekabeko errorea waitpid() (%s) funtzioan" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Huts egin du komandoa abiatzean." #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ezin da euskarria egotzi." #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ezin da konektatutako zerbitzaria desmuntatu." #: ../modules/computer-method.c:543 msgid "Network" msgstr "Sarea" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Etxea" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Fitxategi-sistema" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "%d GnomeVFSSeekPosition ezezaguna" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows sarea" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Urruneko ordenagailuaren (%s) identitatea ezezaguna da." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ordenagailuan lehen aldiz saioa hastean gertatzen da.\n" "\n" "Urruneko ordenagailuak bidalitako identitatea %s da. Jar zaitez sistemako " "arduradunarekin harremanetan, erabateko segurtasuna duela ziurtatzeko." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Sartu hala ere" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Utzi saioa amaitzea bertan behera" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ez da ezarpen-fitxategi baliozkoa aurkitu %s-(e)n\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Erabili %s inguruneko aldagaia beste kokaleku bat zehazteko.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "HTTP proxy-ak saioa hastea eskatzen dizu.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Saioa hasi behar duzu \"%s\"(e)n sartzeko.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Pasahitza enkriptatu gabe transmitituko da." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Pasahitza enkriptatuta transmitituko da." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Saioa hasi behar duzu %s %s domeinuan sartzeko\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Saioa hasi behar duzu %s(e)n sartzeko\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Osagaien ikustaile lehenetsia" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Terminal aplikazio lehenetsia" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec argumentua, terminal lehenetsirako" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Fitxategiak bistaratzeko eta hauek ikusteko behar duen osagaia eskatzen duen " "aplikazioa. %s parametroa fitxategiaren URIagatik, eta %c parametroa IID " "osagaiagatik ordeztuko dira." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Terminal aplikazio lehenetsia, terminala eskatzen duten aplikazioetan " "erabiltzeko." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Exec argumentua terminal aplikazio lehenetsian erabiltzeko." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Exekutatu komandoa terminalean" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" URLak kudeatzeko komandoa, gaitua egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" URLak kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" URLak kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" URLak kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" URLak kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" komandoa kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" URLak kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\" URLak kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" URLak kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" komandoa kudeatzeko komandoa, gaituta egonez gero." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLen kudeatzailea" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"aim\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"callto\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"ghelp\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"h323\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"http\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"https\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"info\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"mailto\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"man\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Ezarri egi gisa (true) \"komandoa\" gakoan zehaztutako komandoak \"trash\" " "URLak kudeatuko baditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Hemen zehaztutako komandoak \"aim\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Hemen zehaztutako komandoak \"callto\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Hemen zehaztutako komandoak \"ghelp\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Hemen zehaztutako komandoak \"h323\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Hemen zehaztutako komandoak \"http\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Hemen zehaztutako komandoak \"https\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Hemen zehaztutako komandoak \"info\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Hemen zehaztutako komandoak \"mailto\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Hemen zehaztutako komandoak \"man\" URLak kudeatuko ditu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Hemen zehaztutako komandoak \"trash\" URLak kudeatuko ditu." #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Komaz bereiztutako DNS-SD domeinuen zerrenda, \"network:///\" helbidean " "ikusgai izango dena." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domeinu gehigarriak DNS-SD zerbitzuetan bilatzeko" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "DNS-SD zerbitzua bistaratzeko modua" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Balio erabilgarriak \"merged\", \"separate\" eta \"disabled\" dira." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentifikatu proxy zerbitzariaren konexioak" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Proxy konfigurazio automatikoaren URLa" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Proxy-aren konfigurazioa gaitzen du HTTP internet bidez sarbidetzean" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP proxy ostalariaren izena" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP proxy-aren ataka" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP proxy ostalariaren izena" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP proxy-aren pasahitza" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP proxy-aren ataka" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP proxy-ko erabiltzaile-izena" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Egia bada, proxy zerbitzarira konektatzeko autentifikazioa eskatuko da. " "Erabiltzailea/pasahitza bikotea \"/system/http_proxy/authentication_user\"-" "ean eta \"/system/http_proxy/authentication_password\"-ean definitzen dira." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Proxy-rik gabe konektatuko diren ostalariak" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Pasahitza, HTTP proxy-a erabiltzean autentifikatzeko." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Proxy-aren konfigurazio modua" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS proxy ostalariaren izena" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS proxy-aren ataka" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "HTTP Seguruaren proxy ostalariaren izena" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "HTTP Seguruaren proxy -aren ataka" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Hautatu proxy-aren konfigurazio modua. Onartutako balioak \"none\", \"manual" "\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Ordenagailuaren izena, proxy FTPa egiten duenarena." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Ordenagailuaren izena, proxy HTTPa egiten duenarena." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Ordenagailuaren izena, proxy HTTP segurua egiten duenarena." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Ordenagailuaren izena, proxy socks egiten duenarena." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Ordenagailuaren ataka, \"/system/http_proxy/host\"-ean definituta proxy-" "arena egiteko." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Ordenagailuaren ataka, \"/system/proxy/ftp_host\"-ean definituta proxy-arena " "egiteko." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Ordenagailuaren ataka, \"/system/proxy/secure_host\"-ean definituta proxy-" "arena egiteko." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Ordenagailuaren ataka, \"/system/proxy/socks_host\"-ean definituta proxy-" "arena egiteko." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Gako honek zuzenean konektatzen diren ostalarien zerrenda dauka, proxy-aren " "bitartez egin beharrean (nahiz eta abioan egon). Balioak ostalarien izenak, " "domeinuak (*.lelo.com bezalako hasierako komodina erabiliz), IP helbideak " "(bai IPv4 bai IPv6) eta sareko helbideak, sare-maskarekin, (192.168.0.0/24 " "bezalakoak)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URLa proxy-aren konfigurazioko balioak eskaintzeko." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Erabili HTTP proxy-a" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Erabiltzaile-izena HTTP proxy-a egiterakoan egiaztatzeko." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB lan-taldea" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Erabiltzailea harpidetuta dagoen Windows sareko lan-taldea edo domeinua. Lan-" "talde berri batek erabateko eragina edukitzeko erabiltzaileak saioa amaitu " "eta berriro saioa hasi beharko du." gnome-vfs-2.24.4/po/el.po0000644000175000001440000016237311354402652012015 00000000000000# GNOME VFS Greek translation. # Copyright (C) 2000-2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. # Spiros did 90 messages. # Simos added 34. (15/07/2000) # kostas:203 messages 16Dec2003 # kostas: 23Dec2003, one more update # Nikos: review 15Mar2004 # Nikos: 24Aug2004 Update and QA for Gnome2.8 # # simos: 384 messages, 14Feb2001, (sgpbea). # simos: 384 messages, 18Feb2001, two fuzzies. # simos: 405 messages, 27Feb2001, (rgmtsgpbea). # simos: 406 messages, 01Mar2001, (rgmtsgpbea). # kostas:66 messages, 07Jan2003,updated translation for Gnome2.1x. # kostas:80 messages, 03Sep2003,updated translation for Gnome2.4x. # kostas: messages, 120 messages 02Nov2003,updated translation for Gnome2.6. # Spiros Papadimitriou , 2000. # Simos Xenitellis , 2000, 2001. # Kostas Papadimas , 2002, 2003, 2004, 2006. # Nikos Charonitakis , 2004. # Simos Xenitellis , 2005. # Jennie Petoumenou , 2009. msgid "" msgstr "" "Project-Id-Version: el\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-23 02:58+0200\n" "PO-Revision-Date: 2010-03-23 00:37+0200\n" "Last-Translator: Bakaoukas Nikolaos \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" "X-Generator: Lokalize 0.2\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Τόμος ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "Το %s:%u πεÏιέχει χαÏακτήÏες NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "Το %s:%u δεν πεÏιέχει όνομα μεθόδου." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u δεν έχει endmarker επιλογών." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "Το %s:%u έχει άγνωστες επιλογές %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "Το %s:%u δεν πεÏιέχει όνομα αÏθÏώματος." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Το αÏχείο Ïυθμίσεων `%s' δε βÏέθηκε: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d εγκατάλειψε την ανάλυση." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Τόμος AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Τόμος ΔικτÏου AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Τόμος αυτόματου εντοπισμοÏ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Τόμος Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Οδηγός CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Ψηφιακός Ήχος CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Τόμος Συσκευής ΥλικοÏ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Τόμος EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Τόμος eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Τόμος Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Τόμος Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Τόμος Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Τόμος MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Τόμος BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Τόμος FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Τόμος MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Τόμος CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Τόμος CDROM HSFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Τόμος JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Τόμος Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Τόμος Συστήματος" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Τόμος μνήμης" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Τόμος Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Τόμος ΔικτÏου NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Τόμος Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Τόμος Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Τόμος Reiser4 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Τόμος Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "ΚοινόχÏηστος τόμος Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Τόμος SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Τόμος DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Τόμος Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Τόμος Solaris UDFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Τόμος Solaris PCFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Τόμος Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "ΠÏοσωÏινός τόμος" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Τόμος Enhanced DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Τόμος VFAT Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Τόμος Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Τόμος Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Τόμος XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Τόμος CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Άγνωστος" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s Τόμος" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Οδηγός %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Οδηγός %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Οδηγός δισκέτας" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Οδηγός Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Οδηγός Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Οδηγός Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Οδηγός SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Οδηγός zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Οδηγός Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pen Drive" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s Music Player" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s Ψηφιακή κάμεÏα" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Οδηγός" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "ΕξωτεÏικός %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Δίσκος CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Άδειος Δίσκος CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Δίσκος CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Άδειος Δίσκος CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Δίσκος CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Δίσκος DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Δίσκος DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Άδειος Δίσκος DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Δίσκος DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Άδειος Δίσκος DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Δίσκος DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Άδειος Δίσκος DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Δίσκος DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Άδειος Δίσκος DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Δίσκος DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Δίσκος Audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s αφαιÏοÏμενος τόμος" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Τόμος" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Άγνωστος Ï„Ïπος λειτουÏγίας %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ανεπιτυχής δημιουÏγία διασωλήνωσης για το ανοιχτό GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Άγνωστη είδος εÏγασίας %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Η λειτουÏγία διακόπηκε" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ΛειτουÏγία σε αχÏηστία. Οι Ï„Ïοποποιήσεις από το χÏήστη στη βάση δεδομένων " "MIME δεν υποστηÏίζονται πια." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "ΑδÏνατη η συντακτική ανάλυση: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Επιπλεόν συντακτικά σφάλματα θα αγνοηθοÏν." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Κανένα σφάλμα" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Το αÏχείο δε βÏέθηκε" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Γενικό σφάλμα" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ΕσωτεÏικό σφάλμα" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Μη έγκυÏες παÏαμέτÏοι" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Μη υποστηÏιζόμενη λειτουÏγία" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Σφάλμα εισόδου/εξόδου" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Αλλοιωμένα δεδομένα" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ΆκυÏη μοÏφή" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ΆκυÏος χειÏιστής αÏχείου" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ αÏχείο" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Δεν υπάÏχει ελεÏθεÏος χώÏος στη συσκευή" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ΣÏστημα αÏχείων μόνο για ανάγνωση" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ΆκυÏο URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Το αÏχείο δεν είναι ανοιχτό" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "ΆκυÏη κατάσταση ανοίγματος" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ΆÏνηση Ï€Ïόσβασης" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "ΠάÏα πολλά ανοιχτά αÏχεία" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Τέλος αÏχείου" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Δεν είναι κατάλογος" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ΛειτουÏγία σε εξέλιξη" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Διακοπή λειτουÏγίας" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Το αÏχείο υπάÏχει" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Î’Ïέθηκε βÏόγχος συντομεÏσεων" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Η λειτουÏγία δεν επιτÏέπεται" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Είναι κατάλογος" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ΑνεπαÏκής μνήμη" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Δε βÏέθηκε ο κόμβος" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ΆκυÏο όνομα κόμβου" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Ο κόμβος δεν έχει διεÏθυνση" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Αποτυχία εισόδου στο σÏστημα" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ΑκÏÏωση λειτουÏγίας" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Απασχολημένος κατάλογος" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Ο κατάλογος δεν είναι άδειος" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "ΠάÏα πολλές συντομεÏσεις" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ΣÏστημα αÏχείων μόνο για ανάγνωση" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Δε βÏίσκονται στο ίδιο σÏστημα αÏχείων" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "ΥπεÏβολικά μεγάλο όνομα" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Η υπηÏεσία δεν είναι διαθέσιμη" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Η αίτηση απαÏχαιώνει τα δεδομένα της υπηÏεσίας" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Σφάλμα Ï€Ïωτοκόλου" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ΑδÏνατη η εÏÏεση Ï€ÏωτεÏοντος φυλλομετÏητή" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Δεν έχει συσχετιστεί Ï€Ïοεπιλεγμένη ενέÏγεια" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Δεν υπάÏχει χειÏιστής για σχήμα URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Σφάλμα ανάλυσης γÏαμμής εντολών" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Σφάλμα εκκίνησης εντολής" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Λήξη οÏίου χÏόνου" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Σφάλμα Nameserver" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Ο πόÏος είναι κλειδωμένος" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Function call deprecated" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Μη έγκυÏο όνομα αÏχείου" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Δεν είναι συμβολικός σÏνδεσμος" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Άγνωστο σφάλμα" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GÎ’" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (μη έγκυÏο Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Δισκέτα" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Δίσκος" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Οδηγός USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 Drive" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "ΦωτογÏαφική μηχανή" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Τόμος Root" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Audio CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Άγνωστος τόμος" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "ΕξυπηÏετητής δικτÏου" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Αδυναμία Ï€ÏοσάÏτησης του Î¿Î´Î·Î³Î¿Ï Î´Î¹ÏƒÎºÎ­Ï„Î±Ï‚. Πιθανόν να μην υπάÏχει δισκέτα " "στον οδηγό." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Αδυναμία Ï€ÏοσάÏτησης του τόμου. Πιθανόν να μην υπάÏχει μέσο στη συσκευή." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Αδυναμία Ï€ÏοσάÏτησης του Î¿Î´Î·Î³Î¿Ï Î´Î¹ÏƒÎºÎ­Ï„Î±Ï‚. Πιθανώς η δισκέτα να είναι σε " "μοÏφή που δεν μποÏεί να Ï€ÏοσαÏτηθεί." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Αδυναμία Ï€ÏοσάÏτησης του τόμου. Αν αυτός είναι ένας κÏυπτογÏαφημένος τόμος, " "τότε χÏησιμοποιήσατε λάθος κωδικό ή κλειδί." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Αδυναμία Ï€ÏοσάÏτησης του τόμου. Πιθανώς ο τόμος να είναι σε μοÏφή που δεν " "μποÏεί να Ï€ÏοσαÏτηθεί." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Αδυναμία Ï€ÏοσάÏτησης του επιλεγμένου Î¿Î´Î·Î³Î¿Ï Î´Î¹ÏƒÎºÎ­Ï„Î±Ï‚." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Αδυναμία Ï€ÏοσάÏτησης του επιλεγμένου τόμου." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Αδυναμία Ï€ÏοσάÏτησης του επιλεγμένου τόμου. Πιθανόν ο τόμος να είναι σε " "χÏήση από έναή πεÏισσότεÏα Ï€ÏογÏάμματα." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Αδυναμία αποπÏοσάÏτησης του επιλεγμένου τόμου." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Αποτυχία ανάγνωσης δεδομένων από θυγατÏική διεÏγασία %d·(%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Αδυναμία εκτέλεσης διεÏγασίας Ï€ÏοσάÏτησης σε ένα pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "ΑπÏόσμενο σφάλμα στο select() ανάγνωσης δεδομένων από μια θυγατÏική " "διεÏγασία (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Αδυναμία αποστολής ÎºÏ‰Î´Î¹ÎºÎ¿Ï ÏƒÏ„Î· διεÏγασία Ï€ÏοσάÏτησης" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "ΑπÏόσμενο σφάλμα στο waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Αποτυχία έναÏξης εντολής" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Αδυναμία αποβολής μέσου" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Αδυναμία αποπÏοσάÏτησης συνδεδεμένου εξυπηÏετητή" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Δίκτυο" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ΑÏχή" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ΣÏστημα αÏχείων" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Άγνωστη GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Δίκτυο Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Η ταυτότητα του απομακÏυσμένου υπολογιστή (%s) είναι άγνωστη. " #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Αυτό συμβαίνει όταν μπαίνετε για Ï€Ïώτη φοÏά στον υπολογιστή σας\n" "\n" "Η ταυτότητα που στέλνεται από τον απομακÏυσμένο υπολογιστή είναι %s. Αν " "θέλετε να είστε σίγουÏοι ότι είναι απόλυτα ασφαλές να συνεχίσετε, " "επικοινωνήστε με το διαχειÏιστή του συστήματος σας." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Είσοδος οπωσδήποτε" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ΑκÏÏωση ΣÏνδεσης" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Δε βÏέθηκε αÏχείο έγκυÏων Ïυθμίσεων στο %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "ΧÏήση της μεταβλητής πεÏιβάλλοντος %s για τον καθοÏισμό μιας διαφοÏετικής " "τοποθεσίας.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Ο διαμεσολαβητής HTTP απαιτεί να συνδεθείτε με το λογαÏιασμό σας.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "ΠÏέπει να συνδεθείτε στο διαμεσολαβητή για να Ï€Ïοσπελάσετε το \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Ο κωδικός σας θα μεταδοθεί μη κÏυπτογÏαφημένα." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Ο κωδικός σας θα μεταδοθεί κÏυπτογÏαφημένα." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "ΠÏέπει να συνδεθείτε στο σÏστημα για να Ï€Ïοσπελάσετε το %s τομέας %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "ΠÏέπει να συνδεθείτε στο σÏστημα για να Ï€Ïοσπελάσετε το %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "ΠÏοεπιλεγμένο συστατικό εφαÏμογής Ï€Ïοβολής" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ΠÏοεπιλεγμένη εφαÏμογή τεÏματικοÏ" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ΠαÏάμετÏος Exec για Ï€Ïοεπιλεγμένο τεÏματικό" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Η εφαÏμογή για την Ï€Ïοβολή αÏχείων που απαιτοÏν ένα συστατικό για την " "Ï€Ïοβολή τους. Η παÏάμετÏος %s θα αντικαταστηθεί από το URIs αÏχείου και η " "παÏάμετÏος %c θα αντικατασταθεί από το IID συστατικοÏ." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Η Ï€Ïοεπιλεγμένη εφαÏμογή τεÏÎ¼Î±Ï„Î¹ÎºÎ¿Ï Î³Î¹Î± χÏήση σε εφαÏμογές που απαιτοÏν ένα " "τεÏματικό." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Η παÏάμετÏος exec για χÏήση στην Ï€Ïοεπιλεγμένη εφαÏμογή τεÏματικοÏ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Εκτέλεση της εντολής σε τεÏματικό" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"aim\" URLs, αν ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"callto\" URLs, αν " "ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"ghelp\" URLs, αν " "ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"h323\" URLs, αν ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"http\" URLs, αν ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"https\" URLs, αν " "ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"info\" URLs, αν ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"mailto\" URLs, αν " "ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"man\" URLs, αν ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Η εντολή που χÏησιμοποιείται για το χειÏισμό \"trash\" URLs, αν " "ενεÏγοποιηθεί." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± \"trash\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"aim\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"callto\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"ghelp\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"h323\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"http\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"https\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"info\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"mailto\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"man\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο \"command\" key θα Ï€Ïέπει να " "χειÏίζεται \"trash\" URLs." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε " "τεÏματικό." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"aim\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"callto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"ghelp\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"h323\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"http\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"https\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"info\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"mailto\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"man\" URLs" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Αν η καθοÏισμένη εντολή θα χειÏίζεται \"trash\" URLs" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Λίστα διαχωÏισμένη με κόμμα από τομείς dns-sd που θα Ï€Ïέπει να είναι οÏατοί " "στην τοποθεσία \"network:///\" " #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ΕπιπÏόσθετοι τομείς για αναζήτηση υπηÏεσιών dns-sd" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Πως να εμφανίζεται η τοπική υπηÏεσία DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Πιθανές τιμές είναι \"merged\", \"separate\" and \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Πιστοποίηση συνδέσεων στον εξυπηÏετητή διαμεσολάβησης" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Αυτόματη ÏÏθμιση URL ÏÏθμισης διαμεσολαβητή" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "ΕνεÏγοποιεί τις Ïυθμίσεις διαμεσολαβητή κατά την Ï€Ïόσβαση HTTP στο διαδίκτυο." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Όνομα συστήματος διαμεσολαβητή FTP " #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "ΘÏÏα διαμεσολαβητή FTP " #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Όνομα συστήματος διαμεσολαβητή HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Κωδικός διαμεσολαβητή HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "ΘÏÏα διαμεσολαβητή HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Όνομα χÏήστη διαμεσολαβητή HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Αν αληθές, τότε οι συνδέσεις στο διαμεσολαβητή απαιτοÏν πιστοποίηση. Τα " "όνομα χÏήστη/κωδικός καθοÏίζονται από το \"/system/http_proxy/" "authentication_user\" και \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Συστήματα χωÏίς διαμεσολαβητή" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Κωδικός Ï€Ïόσβασης για πιστοποίηση όταν γίνεται διαμεσολάβηση HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "ΛειτουÏγία Ïυθμίσεων διαμεσολαβητή" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Όνομα συστήματος διαμεσολαβητή SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "ΘÏÏα διαμεσολαβητή SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Όνομα συστήματος ασφαλοÏÏ‚ διαμεσολαβητή HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "ΘÏÏα ασφαλοÏÏ‚ διαμεσολαβητή HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Επιλογή λειτουÏγίας ÏÏθμισης διαμεσολαβητή. ΥποστηÏιζόμενες τιμές είναι " "\"καμμία\", \"χειÏοκίνητη\", \"αυτόματη\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" "Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση ασφαλοÏÏ‚ HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Η θÏÏα στο σÏστημα που καθοÏίζεται από το \"/system/http_proxy/host\" μέσω " "του οποίου γίνεται διαμεσολάβηση." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Η θÏÏα στο σÏστημα που καθοÏίζεται από το \"/system/proxy/ftp_host\" μέσω " "του οποίου γίνεται διαμεσολάβηση." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Η θÏÏα στο σÏστημα που καθοÏίζεται από το \"/system/proxy/secure_host\" μέσω " "του οποίου γίνεται διαμεσολάβηση." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Η θÏÏα στο σÏστημα που καθοÏίζεται από το \"/system/proxy/socks_host\" μέσω " "του οποίου γίνεται διαμεσολάβηση." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Αυτό το κλειδί πεÏιέχει μια λίστα από συστήματα στα οποία γίνεται απευθείας " "σÏνδεση, παÏά μέσω του διαμεσολαβητή (αν είναι ενεÏγός). Οι τιμές μποÏεί να " "είναι ονόματα συστήματος, τομείς (με τη χÏήση μιας αÏχικής wildcard όπως *." "foo.com), διευθÏνσεις IP (και IPv4 και IPv6) και διευθÏνσεις δικτÏου με " "netmask (κάτι σαν 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "Το URL που παÏέχει τιμές ÏÏθμισης διαμεσολαβητή." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "ΧÏήση διαμεσολαβητή HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Όνομα χÏήστη για να πεÏάσει ως πιστοποίηση κατά τη διαμεσολάβηση http." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Ομάδα εÏγασίας SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Το Windows networking workgroup ή ο τομέας όπου ανήκει ο χÏήστης. Για να " "Ï€Ïαγματοποιηθεί η δημιουÏγία ενός νέου workgroup ο χÏήστης θα Ï€Ïέπει να " "αποσυνδεθεί καινα επανασυνδεθεί." #~ msgid "Could not initialize Bonobo" #~ msgstr "ΑδÏνατη η αÏχικοποίηση του Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Αδυναμία αÏχικοποίησης gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "ΕÏγοστάσιο Standard Moniker" #~ msgid "file MonikerExtender" #~ msgstr "file MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "γενικό Gnome VFS moniker" #~ msgid "generic file moniker" #~ msgstr "γενικό αÏχείο moniker" #~ msgid "Display SCSI drives" #~ msgstr "ΠÏοβολή δίσκων SCSI" #~ msgid "Display SCSI optical drives" #~ msgstr "ΠÏοβολή οτικών δίσκων SCSI " #~ msgid "Display drives with removable media" #~ msgstr "ΠÏοβολή δίσκων με αφαιÏοÏμενα μέσα" #~ msgid "Display external drives" #~ msgstr "ΠÏοβολή εξωτεÏικών δίσκων" #~ msgid "Display internal hard drives" #~ msgstr "ΠÏοβολή εσωτεÏικών σκληÏών δίσκων" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Αν θα εμφανίζονται οπτικοί δίσκοι SCSI ακόμα και αν το /system/storage/" #~ "display_scsi_drives έχει οÏισθεί σε FALSE." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "Αν θα Ï€Ïοβάλλονται δίσκοι και Ï€ÏοσαÏτημένοι τόμοι απο δίσκους SCSI" #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Αν θα εμφανίζονται δίσκοι και Ï€ÏοσαÏτημένοι τόμοι από δίσκους με " #~ "αφαιÏοÏμενα μέσα" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Αν θα εμφανίζονται οπτικοί δίσκοι και Ï€Ïοσατημένοι τόμοι από εξωτεÏικοÏÏ‚ " #~ "δίσκους(Ï€.χ. από δίσκους που είναι hotpluggable, δηλ δίσκοι που μποÏοÏν " #~ "να αφαιÏεθοÏν καινα τοποθετηθοÏν ενώ το σÏστημα Ï„Ïέχει)" #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Αν θα εμφανίζονται δίσκοι και Ï€ÏοσαÏτημένοι τόμοι από εσωτεÏικοÏÏ‚ " #~ "σκληÏοÏÏ‚ δίσκους(οι μη - SCSI δίσκοι Ï€Ïοβάλλονται πάντα)" gnome-vfs-2.24.4/po/fa.po0000644000175000001440000007600611334251016011772 00000000000000# translation of gnome-vgs to Persian # Copyright (C) 2002 The FarsiWeb Project Group # Roozbeh Pournader , 2002 # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2002-08-25 14:27+0430\n" "Last-Translator: Roozbeh Pournader \n" "Language-Team: Persian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: daemon/gnome-vfs-daemon.c:596 #, fuzzy msgid "Could not initialize Bonobo" msgstr "نمی‌توان تجزیه کرد: %s" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "â€â€Ž%s:%d‎ نویسه‌ی NUL دارد." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "â€â€Ž%s:%d‎ هیچ نام متدی ندارد." #: libgnomevfs/gnome-vfs-configuration.c:284 #, fuzzy, c-format msgid "%s:%d has no options endmarker." msgstr "â€â€Ž%s:%d‎ هیچ نام متدی ندارد." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "â€â€Ž%s:%d‎ هیچ نام پیمانه‌ای ندارد." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "پرونده‌ی پیکربندی ‎`%s'‎ ÛŒØ§ÙØª نشد: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 #, fuzzy msgid "Unknown" msgstr "خطای ناشناخته" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "نوع عملیات ناشناخته %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "نمی‌توان برای GIOChannel باز لوله ایجاد کرد: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "نوع کار ناشناخته %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "عملیات متوق٠شد" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "نمی‌توان تجزیه کرد: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "خطاهای تجزیه‌ی بعدی نادیده Ú¯Ø±ÙØªÙ‡ خواهند شد." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "خطایی نیست" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "پرونده ÛŒØ§ÙØªÙ‡ نشد" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "خطای عمومی" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "خطای داخلی" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "پارامترهای نامعتبر" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "عملیات پشتیبانی‌نشده" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "خطای ورودی/خروجی" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "داده‌ها مخدوشند" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "قالب معتبر نیست" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "دست‌گیره پرونده‌ی خراب" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "پرونده خیلی بزرگ است" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "هیچ جایی روی دستگاه باقی نمانده" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "سیستم پرونده‌ای Ùقط‌خواندنی" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "نشانی جهانی نامعتبر" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "پرونده باز نیست" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "حالت باز کردن معتبر نیست" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "دست‌یابی منع شد" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "پرونده‌های باز خیلی زیادند" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "پایان پرونده" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "شاخه نیست" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "عملیات در حال پیش‌روی است" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "عملیات دچار وقÙÙ‡ شد" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "پرونده وجود دارد" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "به پیوندهای حلقه‌ای برخورده شد" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "عملیات مجاز نیست" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "شاخه است" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Ø­Ø§ÙØ¸Ù‡â€ŒÛŒ ناکاÙÛŒ" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "میزبان ÛŒØ§ÙØªÙ‡ نشد" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "نام میزبان معتبر نیست" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "میزبان نشانی ندارد" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "ورود به سیستم شکست خورد" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "عملیات لغو شد" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "شاخه مشغول است" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "شاخه خالی نیست" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "پیوندها خیلی زیادند" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "سیستم پرونده‌ای Ùقط‌خواندنی" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "روی همان سیستم پرونده‌ای نیست" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "نام خیلی بلند است" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "خدمت در دست‌رس نیست" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "درخواست، داده‌های خدمت را قدیمی می‌کند" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "خطای قرارداد" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 #, fuzzy msgid "Could not find master browser" msgstr "نمی‌توان تجزیه کرد: %s" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "خطای عمومی" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "خطای ناشناخته" #: libgnomevfs/gnome-vfs-utils.c:85 #, fuzzy, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u بایت" msgstr[1] "%u بایت" #: libgnomevfs/gnome-vfs-utils.c:91 #, fuzzy, c-format msgid "%.1f KB" msgstr "%.1f K" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 #, fuzzy msgid "Unknown volume" msgstr "خطای ناشناخته" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "" #: modules/computer-method.c:545 msgid "Network" msgstr "" #: modules/computer-method.c:563 msgid "Home" msgstr "" #: modules/computer-method.c:581 #, fuzzy msgid "Filesystem" msgstr "پرونده وجود دارد" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "â€GnomeVFSSeekPosition ناشناخته‌ی %d" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "پرونده‌ی تنظیمات معتبری در %s ÛŒØ§ÙØª نشد\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "از متغیر محیطی %s برای مشخص کردن یک مکان دیگر Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "نمی‌توان تجزیه کرد: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "پرونده وجود دارد" #, fuzzy #~ msgid "Files" #~ msgstr "پرونده وجود دارد" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "دست‌گیره پرونده‌ی خراب" #, fuzzy #~ msgid "mailto URL handler" #~ msgstr "دست‌گیره پرونده‌ی خراب" #~ msgid "1 byte" #~ msgstr "Û± بایت" gnome-vfs-2.24.4/po/oc.po0000644000175000001440000011105211334251016011774 00000000000000# Translation of oc.po to Occitan # Occitan translation of gnome-vfs. # Copyright (C) 1999-2005, 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # # Yannig Marchegay (Kokoyaya) , 2006-2008. msgid "" msgstr "" "Project-Id-Version: oc\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-07-02 08:59+0200\n" "PO-Revision-Date: 2007-12-27 13:34+0100\n" "Last-Translator: Yannig Marchegay (Kokoyaya) \n" "Language-Team: Occitan \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volum ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Impossible de trobar lo fichièr de configuracion '%s' : %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volum AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volum ret AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "Legidor de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Volum periferic material" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Volum Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Volum Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "Volum MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "Volum FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "Volum MacOs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "Volum CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Volum CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "Volum JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Volum Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Volum sistèma" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Volum memòria" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Volum Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "Volum ret NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Volum Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Volum Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "Volum Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "Volum SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "Volum DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Volum Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Volum Udfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Volum Pcfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Volum Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Volum temporari" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Volum Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Volum Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "Volum Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "Volum XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "Volum CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Desconegut" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volum %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Legidor %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Legidor %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Legidor de disquetas" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Legidor Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Legidor Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Legidor SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Legidor Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Legidor Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Legidor Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Legidor" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s extèrn" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disc CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disc CD-R void" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disc CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disc CD-RW void" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disc CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disc DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disc DVD-RAM void" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disc DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "DVD-R void" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disc DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "DVD-RW void" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disc DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "DVD+R void" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disc DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "DVD+RW void" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disc DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disc audiò" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volum" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Tipe d'operacion %u desconegut" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "Impossible d'analisar : %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Pas cap d'error" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Impossible de trobar lo fichièr" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Error intèrna" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Error E/S" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fichièr pas dobèrt" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Tròp de fichièrs dobèrts" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fin de fichièr" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Pas un repertòri" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Lo fichièr existís" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Es un repertòri" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Pas pro de memòria" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Ã’ste pas trobat" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Lo repertòri es pas void" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Tròp de ligams" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nom tròp long" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Servici pas disponible" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Error de protocòl" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nom d'òste invalid" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Error desconeguda" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u octet" msgstr[1] "%u octets" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f ko" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f Mo" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Go" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disqueta" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disc" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Legidor USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Legidor IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Aparelh de fotografiar" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Volum raiç" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "CD audiò" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Volum desconegut" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "Servidor ret" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Ret" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Ostal" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistèma de fichièrs" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Ret Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Anullar l'identificacion" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Vòstre proxy HTTP necessita que vos connectetz.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Vos debètz connectar per accedir a '%s'.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Vòstre mot de pas serà transmes descriptat." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Vòstre mot de pas serà transmes criptat." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Vos devètz connectar per accedir a %s dins lo domani %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Vos debètz connectar per accedir a %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Terminal per defaut" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grop de trabalh SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" gnome-vfs-2.24.4/po/cy.po0000644000175000001440000015736411354402652012034 00000000000000# gnome-vfs yn Gymraeg. # www.gyfieithu.co.uk , 2003. # Dafydd Harries , 2003 2004. # Rhys Jones , 2003. # (RJ) Bathiad: Memory stick -> tocyn cof # (RJ) Fe ddefnyddiais i 'gyriant' yn hytrach na 'gyrrydd' - ceir # enghreifftiau o'r ddau yn nautilus ar hyn o bryd. # rhysj, 8ed Chw 2005 # Wedi cysoni'r ffurfiau lluosog # Wedi gyrru'r cyfan drwy Cysill # Iestyn Pryce , 2009. msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-20 12:18+0000\n" "PO-Revision-Date: 2009-12-20 12:18+0100\n" "Last-Translator: Iestyn Pryce \n" "Language-Team: Welsh \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cy\n" "Plural-Forms: nplurals=4; plural= (n==1) ? 0 : (n==2) ? 1 : (n != 8 && n !=11) ? 2 : 3;\n" "X-Generator: Virtaal 0.5.0\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Cyfrol ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "Mae %s:%u yn cynnwys nodau NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "Nid yw %s:%u yn cynnwys enw dull." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "Nid yw %s:%u yn cynnwys marc i ddynodi diwedd yr opsiynau." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "Mae gan %s:%u yr opsiynau anhysbys %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "Nid yw %s:%u yn cynnwys enw modiwl." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Ni chanfuwyd y ffeil cyfluniad `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s: %d wedi diddymu'r gramadegu." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Cyfrol AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Cyfrol Rhwydwaith AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Cyfrol a Ganfuwyd yn Awtomatig" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Cyfrol Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Chwaraewr CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Sain Ddigidol" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Cyfrol Dyfais Caledwedd" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Cyfrol EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Cyfrol eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Cyfrol Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Cyfrol Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Cyfrol Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Cyfrol MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Cyfrol BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Cyfrol FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Cyfrol MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Cyfrol CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Cyfrol CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Cyfrol JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Cyfrol Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Cyfrol System" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Cyfrol Cof" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Cyfrol Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Cyfrol Rhwydwaith NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Cyfrol Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Cyfrol Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Cyfrol Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Cyfrol Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Cyfrol Rhannu Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Cyfrol SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Cyfrol DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Cyfrol Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Cyfrol Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Cyfrol Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Cyfrol SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Cyfrol Dros Dro" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Cyfrol DOS Gwell" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Cyfrol Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Cyfrol Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Cyfrol Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Cyfrol XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Cyfrol CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Anhysbys" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Cyfrol %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Gyriant %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Gyriant %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Gyriant Disg Hyblyg" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Gyriant Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Gyriant Tocyn Cof" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Gyriant Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Gyriant SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Gyriant Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Gyriant Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Gyriant Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Chwaraeydd Cerddoriaeth %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Camera Digidol %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Gyriant" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s Allanol" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disg CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disg CD-R Gwag" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disg CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disg CD-RW Gwag" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disg CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disg DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disg DVD-RAM Gwag" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disg DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disg DVD-R Gwag" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disg DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disg DVD-RW Gwag" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disg DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disg DVD+R Gwag" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disg DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disg DVD+RW Gwag" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disg DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disg Sain" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Cyfrol %s y Gellir ei Thynnu" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Cyfrol" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Math gweithred anhysbys %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ni ellir creu pibell ar gyfer GIOChannel agored: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tasg anhysbys, math %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Ataliwyd y gweithrediad" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Ffwythiant a anargymhellir. Ni chynhelir newidiadau defnyddiwr i'r gronfa " "ddata MIME bellach." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Methu gramadegu: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Anwybyddir gwallau gramadegu pellach." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Dim gwall" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Ni chanfuwyd y ffeil" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Gwall generig" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Gwall mewnol" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Paramedrau annilys" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Gweithred heb ei chynnal" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Gwall M/A" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Llygrwyd data" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Fformat annilys" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Dolen ffeil annilys" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Ffeil rhy fawr" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Dim lle ar ôl ar y ddyfais" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "System ffeil darllen-yn-unig" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI annilys" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Nid yw'r ffeil ar agor" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Modd agor annilys" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Gwrthodwyd mynediad" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Gormod o ffeiliau ar agor" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Diwedd ffeil" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nid yw'n gyfeiriadur" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Wrthi'n gweithredu" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Ymyrrwyd â'r weithred" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Mae'r ffeil yn bodoli" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Canfuwyd cysylltiadau cylchol" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Ni chaniateir y weithred" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Mae'n gyfeiriadur" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Dim digon o gof" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Ni chanfuwyd y gwesteiwr" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Enw gwesteiwr annilys" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Nid oes cyfeiriad gan y gwesteiwr" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Methu mewngofnodi" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Diddymwyd y weithred" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Mae'r cyfeiriadur yn brysur" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Nid yw'r cyfeiriadur yn wag" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Gormod o gysylltiadau" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "System ffeil darllen-yn-unig" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ddim ar yr un system ffeil" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Enw rhy hir" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Nid yw'r gwasanaeth ar gael" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Mae'r cais yn anarferu data'r gwasanaeth" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Gwall brotocol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Methu canfod y meistr-borwr" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Dim gweithred ragosodedig wedi ei chysylltu" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Dim trinydd ar gyfer y cynllun LAU" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Gwall wrth ddehongli'r llinell orchymyn" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Gwall wrth weithredu'r gorchymyn" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Cyrhaeddwyd goramser" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Gwall gweinydd enw" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Mae'r adnodd wedi ei gloi" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Dirmygir y galwad ffwythiant" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Enw ffeil annilys" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ddim yn cyswllt symbolaidd" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Gwall anhysbys" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u beit" msgstr[1] "%u beit" msgstr[2] "%u feit" msgstr[3] "%u beit" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f CB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode annilys)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disg hyblyg" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disg" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Gyriant USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Gyriant IEEE 1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "Fflach Cryno" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Tocyn Cof" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Camera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Cyfrol Gwraidd" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD Sain" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Cyfrol anhysbys" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Gweinydd rhwydwaith" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Methu rhagosod y gyriant disg hyblyg. Hwyrach nad oes disg yn y gyriant." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Methu rhagosod y gyfrol. Hwyrach nad oes dim yn y ddyfais." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Methu rhagosod y gyriant disg hyblyg. Hwyrach fod y disg hyblyg mewn ffurf " "na ellir ei osod." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Methu gosod y gyfrol. Os yw hwn yn yriant wedi ei amgryptio, defnyddiwyd y " "cyfrinair neu'r allwedd anghywir." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Methu a gosod y gyfrol a ddewiswyd. Hwyrach ei fod mewn ffurf na ellir ei " "osod." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Methu gosod y gyriant disg hyblyg ddewiswyd." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Methu gosod y gyfrol a ddewiswyd." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Methu gosod y gyfrol a ddewiswyd. Hwyrach fod un neu fwy o raglenni yn ei " "defnyddio." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Methu dadosod y gyfrol a ddewiswyd." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Methwyd darllen data o'r broses blentyn %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Methwyd rhedeg y broses osod mewn pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Gwall annisgwyl o fewn select() wrth ddarllen data o broses blentyn (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Methu anfon cyfrinair at y broses osod." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Gwall annisgwyl o fewn waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Methwyd a chychwyn y gorchymyn" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Methu allfwrw'r disg neu'r modd" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Methu dadosod y gweinydd sy'n gysylltiedig" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rhwydwaith" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Cartref" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "System Ffeil" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition anhysbys %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rhwydwaith Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Nid yw hunaniaeth y cyfrifiadur pell (%s) yn hysbys." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Mae hyn yn digwydd pan rydych chi'n mewngofnodi i gyfrifiadur y tro cyntaf.\n" "%s yw'r hunaniaeth a ddanfonwyd gan y cyfrifiadur pell. Os ydych chi eisiau " "bod yn hollol siŵr ei bod hi'n ddiogel i fynd ymlaen, cysylltwch â gweinydd " "y system." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Mewngofnodi Fodd Bynnag" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Diddymu Mewngofnodi" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Ni chanfuwyd ffeil gosodiadau dilys yn %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Defnyddiwch y newidyn amgylcheddol %s er mwyn pennu lleoliad arall.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Mae gofyn i chi fewngofnodi i'ch Dirprwy HTTP.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Rhaid i chi fewngofnodi cyn cael mynediad at \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Bydd eich cyfrinair yn cael ei anfon heb ei amgryptio." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Bydd eich cyfrinair yn cael ei anfon wedi ei amgryptio." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Rhaid i chi fewngofnodi cyn cael mynediad at %s ym mharth %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Rhaid i chi fewngofnodi cyn cael mynediad at %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Porwr cydran rhagosodedig" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Rhaglen terfynell rhagosodedig" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Ymresymiad exec ar gyfer y derfynell rhagosodedig" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Y rhaglen i'w ddefnyddio i bori ffeiliau sydd angen cydran er mwyn eu " "gwylio. Amnewidir y paramedr %s gan URI y ffeil, ac amnewidir y paramedr %c " "gan IID y gydran." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Y rhaglen derfynell rhagosodedig a ddefnyddir gan raglenni sydd angen " "terfynell." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "Yr ymresymiad exec i'w ddefnyddio ar gyfer y rhaglen derfynell rhagosodedig." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Rhedeg y gorchymyn mewn terfynell" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"aim\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"callto\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"ghelp\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"h323\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"http\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"https\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"info\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"mailto\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"man\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU \"trash\", os yn alluog." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Y trinydd ar gyfer LAU \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Y trinydd ar gyfer LAU \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Y trinydd ar gyfer LAU \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Y trinydd ar gyfer LAU \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Y trinydd ar gyfer LAU \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Y trinydd ar gyfer LAU \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Y trinydd ar gyfer LAU \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Y trinydd ar gyfer LAU \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Y trinydd ar gyfer LAU \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Y trinydd ar gyfer LAU \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Gwir os ddylai'r gorchymyn a benodir yn yr allwedd \"command\" ymdrin â LAU " "\"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn " "terfynell." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "A ddylai'r gorchymyn penodedig ymdrin â LAU \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Rhestr o barthau DNS-SD, wedi'u gwahanu gan gomáu, a ddylai fod yn weladwy " "yn y lleoliad \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Parthau ychwanegol i chwilio am wasanaethau DNS-SD ynddynt" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Sut i ddangos gwasanaeth DNS-SD lleol" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Gwerthoedd posib: \"merged\", \"separate\" a \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Dilysu cysylltiadau â'r gweinydd dirprwy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "LAU i gyflunio'r dirprwy'n awtomatig" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Galluogi'r gosodiadau dirprwy wrth gyrchu HTTP dros y Rhyngrwyd." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Enw'r gweinydd dirprwy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Porth gweinydd dirprwy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Enw'r gweinydd dirprwy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Cyfrinair y dirprwy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Porth gweinydd dirprwy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Enw defnyddiwr y dirprwy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Os yn wir, bydd angen dilysu cysylltiadau â'r gweinydd dirprwy. Defnyddir y " "pâr enw defnyddiwr/cyfrinair a benodir gan \"/system/http_proxy/" "authentication_user\" a \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Gweinyddion di-ddirprwy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Cyfrinair i'w basio i'r dirprwy HTTP wrth ddilysu." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Modd cyfluniad y dirprwy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Enw gweinydd y dirprwy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Porth gweinydd dirprwy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Enw'r gweinydd dirprwy HTTP diogel" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Porth gweinydd dirprwy HTTP diogel" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Dewiswch fodd rhagosod y dirprwy. Y gwerthoedd caniateir yw \"none\", " "\"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Enw'r peiriant i'w ddefnyddio fel dirprwy FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Enw'r peiriant i'w ddefnyddio fel dirprwy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Enw'r peiriant i'w ddefnyddio fel dirprwy HTTP diogel." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Enw'r peiriant i'w ddefnyddio fel dirprwy SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Y porth ar y peiriant a ddiffinnir gan \"/system/http_proxy/host\" yr ydych " "yn ei ddefnyddio fel dirprwy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Y porth ar y peiriant a ddiffinnir gan \"/system/proxy/ftp_host\" yr ydych " "yn ei ddefnyddio fel dirprwy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Y porth ar y peiriant a ddiffinnir gan \"/system/proxy/secure_host\" yr " "ydych yn ei ddefnyddio fel dirprwy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Y porth ar y peiriant a ddiffinnir gan \"/system/proxy/socks_host\" yr ydych " "yn ei ddefnyddio fel dirprwy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Mae'r allwedd hon yn cynnwys rhestr o weinyddion y cysylltir â hwy yn " "uniongyrchol, yn hytrach na thrwy'r dirprwy (os defnyddir). Medrwch roi fan " "hyn enwau gweinyddion, parth-enwau (gan ddefnyddio gwylltnod i ddechrau, fel " "*.foo.com), rhifau IP gweinyddion (IPv6 yn ogystal â IPv4) a rhifau " "rhwydwaith gyda masg rhwydwaith (tebyg i 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL sy'n rhoi manylion cyflunio'r dirprwy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Defnyddio dirprwy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Enw'r defnyddiwr i'w basio i'r dirprwy HTTP wrth ddilysu" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grŵp gwaith SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Y grŵp gwaith neu'r parth rhwydweithio Windows mae'r defnyddiwr yn rhan " "ohono. Cyn i grŵp gwaith newydd ddod i rym, efallai bydd rhaid i'r " "defnyddiwr allgofnodi a mewngofnodi eto." #~ msgid "Could not initialize Bonobo" #~ msgstr "Methwyd ymgychwyn Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Methwyd ymgychwyn gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "Ffatri Moniker safonol" #~ msgid "file MonikerExtender" #~ msgstr "ffeil MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "moniker Gnome VFS generig" #~ msgid "generic file moniker" #~ msgstr "moniker ffeil generig" #~ msgid "Display SCSI drives" #~ msgstr "Dangos gyriannau SCSI" #~ msgid "Display SCSI optical drives" #~ msgstr "Dangos gyriannau optegol SCSI" #~ msgid "Display drives with removable media" #~ msgstr "Dangos gyriannau gyda disgiau a ellir eu tynnu" #~ msgid "Display external drives" #~ msgstr "Dangos gyriannau allanol" #~ msgid "Display internal hard drives" #~ msgstr "Dangos gyriannau caled mewnol" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "P'un ai i ddangos gyriannau optegol SCSI hyd yn oed os yw /system/storage/" #~ "display_scsi_drives wedi ei osod yn FFALS." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "" #~ "P'un ai i ddangos gyriannau a chyfrolau a ellir eu gosod o yriannau SCSI." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "P'un ai i ddangos gyriannau a chyfrolau a ellir eu gosod o yriannau gyda " #~ "disgiau a ellir eu tynnu." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "P'un ai i ddangos gyriannau a chyfrolau a ellir eu gosod o yriannau " #~ "allanol (e.e. gyriannau y gellir eu tynnu a'u gosod tra'u bod nhw, neu'r " #~ "system, yn rhedeg)" #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "P'un ai i ddangos gyriannau a chyfrolau a ellir eu gosod o yriannau " #~ "mewnol (dangosir bob amser yriannau optegol sydd ddim yn rai SCSI)." #~ msgid "The window workgroup the user is part of" #~ msgstr "Y grŵp Windows mae'r defnyddiwr yn rhan ohoni" #~ msgid "Optical Disc" #~ msgstr "Disg Optig" #~ msgid "Memory Stick Media" #~ msgstr "Cyfrwng Tocyn Cof" #~ msgid "Smart Media Media" #~ msgstr "Cyfrwng Smart Media" #~ msgid "Mac OS disk" #~ msgstr "Disg Mac OS" #~ msgid "Mac OS X disk" #~ msgstr "Disg Max OS X" #~ msgid "Windows Disk" #~ msgstr "Disg Windows" #~ msgid "Linux Disk" #~ msgstr "Disg Linux" #~ msgid "File could not be opened: %s" #~ msgstr "Methwyd agor y ffeil: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "Methwyd agor ffeil '%s': %s" #~ msgid "File is empty" #~ msgstr "Mae'r ffeil yn wag" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "mae'r cofnodion penbwrdd yn cynnwys llinell '%s' nad yw'r cofnod, grŵp na " #~ "sylw" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "" #~ "nid yw'r ffeil cofnodion penbwrdd yn cychwyn gyda grŵp cychwyn dilys" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "mae'r cofnodion penbwrdd yn cynnwys llinell '%s' nad yw'n UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "mae'r cofnodion penbwrdd yn cynnwys amgodiad anhysbys '%s'" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "nid oes grŵp '%s' gan y cofnodion penbwrdd" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "nid oes allwedd '%s' gan y cofnodion penbwrdd" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "mae'r cofnodion penbwrdd yn cynnwys bysell '%s' sydd â gwerth ni ellir ei " #~ "ddehongli" #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "nid yw'r cofnodion penbwrdd yn cynnwys gwerth cyfieithiedig o'r bysell '%" #~ "s' â'r locale '%s'." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "mae'r cofnodion penbwrdd yn cynnwys dilyniant dianc annilys '%s'" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "mae'r cofnodion penbwrdd yn cynnwys nod dianc ar ddiwedd llinell" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Ni ellir dehongli'r gwerth '%s' fel rhif." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Ni ellir dehongli'r gwerth '%s' fel gwerth booleaidd." #~ msgid "Applications" #~ msgstr "Rhaglenni" #~ msgid "Cards" #~ msgstr "Cardiau" #~ msgid "Files" #~ msgstr "Ffeiliau" #~ msgid "Folders" #~ msgstr "Plygellau" #~ msgid "Help" #~ msgstr "Cymorth" #~ msgid "Hosts" #~ msgstr "Gwesteiwyr" #~ msgid "Links" #~ msgstr "Cysylltion" #~ msgid "Mail" #~ msgstr "Post" #~ msgid "Tools" #~ msgstr "Offer" #~ msgid "Windows" #~ msgstr "Ffenestri" #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU HTTP, os yn alluog." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "Y gorchymyn a ddefnyddir i ymdrin â LAU HTTPS, os yn alluog." #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "Ymdrin â LAU HTTP" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "Ymdrin â LAU HTTP diogel" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU HTTPS." #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU HTTPS." #, fuzzy #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "A ddylai'r gorchymyn penodedig ymdrin a LAU HTTP" #, fuzzy #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "A ddylai'r gorchymyn penodedig ymdrin a LAU HTTPS" #~ msgid "H323 URL handler" #~ msgstr "trinydd LAU H323" #~ msgid "HTTP URL handler" #~ msgstr "trinydd LAU HTTP" #~ msgid "HTTPS URL handler" #~ msgstr "trinydd LAU HTTP diogel" #~ msgid "Handle callto URLs" #~ msgstr "Ymdrin â LAU \"callto\"" #~ msgid "Handle ghelp URLs" #~ msgstr "Ymdrin â LAU \"ghelp\"" #~ msgid "Handle info URLs" #~ msgstr "Ymdrin â LAU \"info\"" #~ msgid "Handle man URLs" #~ msgstr "Ymdrin â LAU \"man\"" #~ msgid "Handle trash URLs" #~ msgstr "Ymdrin â LAU sbwriel" #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle H323 URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU H323." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle HTTP URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU HTTP." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle HTTPS URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU HTTP diogel." #, fuzzy #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle aim URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU \"man\"." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle callto URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU \"callto\"." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle ghelp URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU \"ghelp\"." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle info URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU \"info\"." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle mailto URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU \"mailto\"." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle man URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU \"man\"." #~ msgid "" #~ "Set to true to have a program specified in \"command\" handle trash URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU sbwriel." #, fuzzy #~ msgid "aim URL handler" #~ msgstr "trinydd LAU \"man\"" #~ msgid "callto URL handler" #~ msgstr "trinydd LAU \"callto\"" #~ msgid "ghelp URL handler" #~ msgstr "trinydd LAU \"ghelp\"" #~ msgid "info URL handler" #~ msgstr "trinydd LAU \"info\"" #~ msgid "mailto URL handler" #~ msgstr "trinydd LAU \"mailto\"" #~ msgid "man URL handler" #~ msgstr "trinydd LAU \"man\"" #~ msgid "trash URL handler" #~ msgstr "trinydd LAU sbwriel" #~ msgid "Bookmark saving failed (%s)" #~ msgstr "Methodd cadw llyfrnod (%s)" #~ msgid "Could not get information for file '%s': %s" #~ msgstr "Methwyd cyrchu gwybodaeth ar gyfer ffeil '%s': %s" #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "Methwyd llwytho delwedd '%s': rheswm anhysbys, hwyrach ffeil delwedd " #~ "annilys" #~ msgid "" #~ "Set to true to have the command specified in \"command\" handle mailto " #~ "URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU \"mailto\"." #~ msgid "" #~ "Set to true to have the command specified in the \"command\" key handle " #~ "http URLs." #~ msgstr "" #~ "Gosodwch hyn yn wir er mwyn i'r rhaglen a benodir yn \"command\" i ymdrin " #~ "â LAU HTTP." #~ msgid "URL handler for H323 locations" #~ msgstr "Trinydd LAU ar gyfer lleoliadau H323" #~ msgid "URL handler for HTTP locations" #~ msgstr "Trinydd LAU ar gyfer lleoliadau HTTP" #~ msgid "URL handler for HTTPS locations" #~ msgstr "Trinydd LAU ar gyfer lleoliadau HTTPS" #~ msgid "1 byte" #~ msgstr "1 beit" gnome-vfs-2.24.4/po/en@shaw.po0000644000175000001440000016700511413132751012773 00000000000000# Shavian translation for gnome-vfs. # Copyright (C) 2009 The Gnome Foundation. # Thomas Thurman , 2009. msgid "" msgstr "" "Project-Id-Version: metacity\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2010-04-22 22:48+0000\n" "PO-Revision-Date: 2010-05-12 18:36 -0400\n" "Last-Translator: Thomas Thurman \n" "Language-Team: Shavian \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-configuration.c:225 msgid "%s:%u contains NUL characters." msgstr "%s:%u ð‘’ð‘©ð‘¯ð‘‘ð‘±ð‘¯ð‘Ÿ ð‘¯ð‘´ ð‘¥ð‘§ð‘”ð‘©ð‘› ð‘¯ð‘±ð‘¥." #, c-format #: ../libgnomevfs/gnome-vfs-configuration.c:242 msgid "%s:%u contains no method name." msgstr "%s:%u ð‘’ð‘©ð‘¯ð‘‘ð‘±ð‘¯ð‘Ÿ ð‘¯ð‘´ ð‘¥ð‘§ð‘”ð‘©ð‘› ð‘¯ð‘±ð‘¥." #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-configuration.c:282 msgid "%s:%u has no options endmarker." msgstr "%s:%u ð‘£ð‘¨ð‘Ÿ ð‘³ð‘¯ð‘´ð‘¯ ð‘ªð‘ð‘–ð‘©ð‘¯ð‘Ÿ %s." #, c-format #: ../libgnomevfs/gnome-vfs-configuration.c:293 msgid "%s:%u has unknown options %s." msgstr "%s:%u ð‘£ð‘¨ð‘Ÿ ð‘³ð‘¯ð‘´ð‘¯ ð‘ªð‘ð‘–ð‘©ð‘¯ð‘Ÿ %s." #, c-format #: ../libgnomevfs/gnome-vfs-configuration.c:312 msgid "%s:%u contains no module name." msgstr "%s:%u ð‘’ð‘©ð‘¯ð‘‘ð‘±ð‘¯ð‘Ÿ ð‘¯ð‘´ ð‘¥ð‘ªð‘›ð‘¿ð‘¤ ð‘¯ð‘±ð‘¥." #, c-format #: ../libgnomevfs/gnome-vfs-configuration.c:363 msgid "Configuration file `%s' was not found: %s" msgstr "ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘“ð‘²ð‘¤ `%s' ð‘¢ð‘ªð‘Ÿ ð‘¯ð‘ªð‘‘ ð‘“ð‘¬ð‘¯ð‘›: %s" #. stop parsing if we failed #, c-format #: ../libgnomevfs/gnome-vfs-configuration.c:382 msgid "%s:%d aborted parsing." msgstr "%s:%d ð‘©ð‘šð‘¹ð‘‘ð‘©ð‘› ð‘ð‘¸ð‘•ð‘¦ð‘™." #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "ð‘·ð‘‘ð‘´-ð‘›ð‘¦ð‘‘ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD ð‘›ð‘¦ð‘¡ð‘©ð‘‘ð‘©ð‘¤ ð‘·ð‘›ð‘¦ð‘´" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "ð‘£ð‘­ð‘®ð‘›ð‘¢ð‘§ð‘® ð‘›ð‘¦ð‘ð‘²ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "ð‘“ð‘˜ð‘µð‘Ÿ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs ð‘•ð‘°ð‘›ð‘°ð‘®ð‘­ð‘¥ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "ð‘¢ð‘¦ð‘¯ð‘›ð‘´ð‘Ÿ NT ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "ð‘•ð‘¦ð‘•ð‘‘ð‘©ð‘¥ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "ð‘¥ð‘§ð‘¥ð‘¼ð‘¦ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "·ð‘¥ð‘¦ð‘¯ð‘¦ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "·ð‘¯ð‘§ð‘‘ð‘¢ð‘§ð‘® ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "·ð‘®ð‘²ð‘Ÿð‘¼4 ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "·ð‘¢ð‘¦ð‘¯ð‘›ð‘´ð‘Ÿ ð‘–ð‘ºð‘› ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "ð‘•ð‘´ð‘¤ð‘§ð‘®ð‘¦ð‘•/BSD ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs ð‘•ð‘´ð‘¤ð‘§ð‘®ð‘¦ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs ð‘•ð‘´ð‘¤ð‘§ð‘®ð‘¦ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "ð‘•ð‘³ð‘¯ ·ð‘•ð‘¨ð‘¥-QFS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "ð‘‘ð‘§ð‘¥ð‘ð‘¼ð‘¼ð‘¦ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "ð‘§ð‘¯ð‘£ð‘¨ð‘¯ð‘•𑑠·ð‘›ð‘µð‘Ÿ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "ð‘¢ð‘¦ð‘¯ð‘›ð‘´ð‘Ÿ VFAT ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS ·ð‘¤ð‘¦ð‘¯ð‘©ð‘’ð‘• ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "ð‘³ð‘¯ð‘´ð‘¯" #, c-format #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 msgid "%s Volume" msgstr "%s ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "·ð‘’·ð‘›-ð‘®ð‘­ð‘¥" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "·ð‘’·ð‘›-ð‘­ð‘®" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "·ð‘’·ð‘›-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ð‘®ð‘­ð‘¥" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+ð‘­ð‘®" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "·ð‘›Â·ð‘·ð‘›+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-ð‘­ð‘®" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "·ð‘›Â·ð‘·ð‘›-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-ð‘®ð‘¨ð‘¥" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±ð‘­ð‘®" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "·ð‘›Â·ð‘·ð‘›Â±RW" #, c-format #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 msgid "%s/%s Drive" msgstr "%s/%s ð‘›ð‘®ð‘²ð‘" #, c-format #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 msgid "%s Drive" msgstr "%s ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ð‘“ð‘¤ð‘­ð‘ð‘° ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "ð‘’ð‘©ð‘¥ð‘ð‘¨ð‘’ð‘‘ ð‘“ð‘¤ð‘¨ð‘– ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "ð‘¥ð‘§ð‘¥ð‘¼ð‘¦ ð‘•ð‘‘ð‘¦ð‘’ ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "ð‘•ð‘¥ð‘¸ð‘‘ ð‘¥ð‘°ð‘›ð‘¦ð‘© ð‘›ð‘®ð‘²ð‘" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ð‘Ÿð‘¦ð‘ ð‘›ð‘®ð‘²ð‘" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "ð‘ð‘§ð‘¯ ð‘›ð‘®ð‘²ð‘" #, c-format #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 msgid "%s %s Music Player" msgstr "%s %s ð‘¥ð‘¿ð‘Ÿð‘¦ð‘’ ð‘ð‘¤ð‘±ð‘¼" #, c-format #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 msgid "%s %s Digital Camera" msgstr "%s %s ð‘›ð‘¦ð‘¡ð‘©ð‘‘ð‘©ð‘¤ ð‘’ð‘¨ð‘¥ð‘»ð‘©" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ð‘›ð‘®ð‘²ð‘" #, c-format #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 msgid "External %s" msgstr "ð‘¦ð‘’ð‘•ð‘‘ð‘»ð‘¯ð‘©ð‘¤ %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "·ð‘’·ð‘›-ð‘®ð‘­ð‘¥ ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ð‘šð‘¤ð‘¨ð‘™ð‘’ ·ð‘’·ð‘›-ð‘­ð‘® ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "·ð‘’·ð‘›-ð‘­ð‘® ð‘›ð‘¦ð‘•ð‘’" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ð‘šð‘¤ð‘¨ð‘™ð‘’ ·ð‘’·ð‘›-RW ð‘›ð‘¦ð‘•ð‘’" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "·ð‘’·ð‘›-RW ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ð‘®ð‘­ð‘¥ ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ð‘šð‘¤ð‘¨ð‘™ð‘’ DVD-RAM ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ð‘šð‘¤ð‘¨ð‘™ð‘’ DVD-R ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R ð‘›ð‘¦ð‘•ð‘’" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ð‘šð‘¤ð‘¨ð‘™ð‘’ ·ð‘›Â·ð‘·ð‘›-RW ð‘›ð‘¦ð‘•ð‘’" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "·ð‘›Â·ð‘·ð‘›-RW ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ð‘šð‘¤ð‘¨ð‘™ð‘’ DVD+R ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R ð‘›ð‘¦ð‘•ð‘’" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ð‘šð‘¤ð‘¨ð‘™ð‘’ ·ð‘›Â·ð‘·ð‘›+RW ð‘›ð‘¦ð‘•ð‘’" #, fuzzy #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "·ð‘›Â·ð‘·ð‘›+RW ð‘›ð‘¦ð‘•ð‘’" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "ð‘·ð‘›ð‘¦ð‘´ ð‘›ð‘¦ð‘•ð‘’" #, c-format #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 msgid "%s Removable Volume" msgstr "%s ð‘®ð‘¦ð‘¥ð‘µð‘ð‘©ð‘šð‘©ð‘¤ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ð‘ð‘ªð‘¤ð‘¿ð‘¥" #, c-format #: ../libgnomevfs/gnome-vfs-job.c:733 msgid "Unknown operation type %u" msgstr "ð‘³ð‘¯ð‘´ð‘¯ ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘‘ð‘²ð‘ %u" #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘’ð‘®ð‘¦ð‘±ð‘‘ ð‘ð‘²ð‘ ð‘“𑹠ð‘´ð‘ð‘©ð‘¯ GIOChannel: %s" #, c-format #: ../libgnomevfs/gnome-vfs-job.c:1691 msgid "Unknown job kind %u" msgstr "ð‘³ð‘¯ð‘´ð‘¯ ð‘¡ð‘ªð‘š ð‘’ð‘²ð‘¯ð‘› %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘•ð‘‘ð‘ªð‘ð‘‘" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "ð‘›ð‘§ð‘ð‘®ð‘©ð‘’ð‘±ð‘‘ð‘©ð‘› ð‘“ð‘³ð‘™ð‘’ð‘–ð‘©ð‘¯. ð‘¿ð‘Ÿð‘¼ ð‘¥ð‘ªð‘›ð‘¦ð‘“ð‘¦ð‘’ð‘±ð‘–ð‘©ð‘¯ð‘Ÿ 𑑠𑞠MIME ð‘›ð‘±ð‘‘ð‘©ð‘šð‘±ð‘• 𑸠ð‘¯ð‘´ ð‘¤ð‘ªð‘™ð‘œð‘¼ ð‘•ð‘©ð‘ð‘¹ð‘‘ð‘©ð‘›." #, c-format #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 msgid "Could not parse: %s" msgstr "ð‘’ð‘«ð‘› ð‘¯ð‘ªð‘‘ ð‘ð‘¸ð‘•: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ð‘¥ð‘¹ ð‘ð‘¸ð‘•ð‘¦ð‘™ ð‘»ð‘¼ð‘Ÿ ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘¦ð‘œð‘¯ð‘¹ð‘›." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "ð‘¯ð‘´ ð‘»ð‘¼" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ð‘“ð‘²ð‘¤ ð‘¯ð‘ªð‘‘ ð‘“ð‘¬ð‘¯ð‘›" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ð‘¡ð‘©ð‘¯ð‘§ð‘®ð‘¦ð‘’ ð‘»ð‘¼" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ð‘¦ð‘¯ð‘‘ð‘»ð‘¯ð‘©ð‘¤ ð‘»ð‘¼" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘ð‘¼ð‘Ÿ" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ð‘³ð‘¯ð‘•ð‘©ð‘ð‘¹ð‘‘ð‘©ð‘› ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O ð‘»ð‘¼" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "ð‘›ð‘±ð‘‘ð‘© ð‘’ð‘¼ð‘³ð‘ð‘‘ð‘©ð‘›" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "ð‘“ð‘¹ð‘¥ð‘¨ð‘‘ ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘›" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ð‘šð‘¨ð‘› ð‘“ð‘²ð‘¤ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ð‘“ð‘²ð‘¤ ð‘‘𑵠ð‘šð‘¦ð‘œ" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ð‘¯ð‘´ ð‘•ð‘ð‘±ð‘• ð‘¤ð‘§ð‘“ð‘‘ ð‘ªð‘¯ ð‘›ð‘¦ð‘ð‘²ð‘•" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ð‘®ð‘§ð‘›-ð‘´ð‘¯ð‘¤ð‘¦ ð‘“ð‘²ð‘¤ ð‘•ð‘¦ð‘•ð‘‘ð‘©ð‘¥" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ð‘“ð‘²ð‘¤ ð‘¯ð‘ªð‘‘ ð‘´ð‘ð‘©ð‘¯" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "ð‘´ð‘ð‘©ð‘¯ ð‘¥ð‘´ð‘› ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘›" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ð‘¨ð‘’ð‘•ð‘§ð‘• ð‘›ð‘¦ð‘¯ð‘²ð‘›" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "ð‘‘𑵠ð‘¥ð‘§ð‘¯ð‘¦ ð‘´ð‘ð‘©ð‘¯ ð‘“ð‘²ð‘¤ð‘Ÿ" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ð‘§ð‘¯ð‘› ð‘ ð‘“ð‘²ð‘¤" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ð‘¯ð‘ªð‘‘ ð‘© ð‘›ð‘²ð‘®ð‘§ð‘’ð‘‘ð‘¼ð‘¦" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¦ð‘¯ ð‘ð‘®ð‘´ð‘œð‘®ð‘§ð‘•" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¦ð‘¯ð‘‘ð‘¼ð‘³ð‘ð‘‘ð‘©ð‘›" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ð‘“ð‘²ð‘¤ ð‘§ð‘’ð‘Ÿð‘¦ð‘•ð‘‘ð‘•" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ð‘¤ð‘µð‘ð‘¦ð‘™ ð‘¤ð‘¦ð‘™ð‘’ð‘• ð‘¦ð‘¯ð‘’ð‘¶ð‘¯ð‘‘ð‘»ð‘›" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¯ð‘ªð‘‘ ð‘ð‘¼ð‘¥ð‘¦ð‘‘ð‘©ð‘›" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ð‘¦ð‘Ÿ ð‘© ð‘›ð‘²ð‘®ð‘§ð‘’ð‘‘ð‘¼ð‘¦" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ð‘¯ð‘ªð‘‘ ð‘¦ð‘¯ð‘³ð‘“ ð‘¥ð‘§ð‘¥ð‘¼ð‘¦" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘ªð‘‘ ð‘“ð‘¬ð‘¯ð‘›" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥ ð‘¯ð‘ªð‘‘ ð‘ð‘¨ð‘¤ð‘¦ð‘›" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ð‘£ð‘´ð‘•ð‘‘ ð‘£ð‘¨ð‘Ÿ ð‘¯ð‘´ ð‘©ð‘›ð‘®ð‘§ð‘•" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ð‘¤ð‘ªð‘œð‘¦ð‘¯ ð‘“ð‘±ð‘¤ð‘›" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ð‘ªð‘ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘’ð‘¨ð‘¯ð‘•ð‘©ð‘¤ð‘›" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "ð‘›ð‘²ð‘®ð‘§ð‘’ð‘‘ð‘¼ð‘¦ ð‘šð‘¦ð‘Ÿð‘°" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ð‘›ð‘²ð‘®ð‘§ð‘’ð‘‘ð‘¼ð‘¦ ð‘¯ð‘ªð‘‘ ð‘§ð‘¥ð‘ð‘‘ð‘¦" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "ð‘‘𑵠ð‘¥ð‘§ð‘¯ð‘¦ ð‘¤ð‘¦ð‘™ð‘’ð‘•" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ð‘®ð‘§ð‘› ð‘´ð‘¯ð‘¤ð‘¦ ð‘“ð‘²ð‘¤ ð‘•ð‘¦ð‘•ð‘‘ð‘©ð‘¥" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ð‘¯ð‘ªð‘‘ ð‘ªð‘¯ 𑞠ð‘•ð‘±ð‘¥ ð‘“ð‘²ð‘¤ ð‘•ð‘¦ð‘•ð‘‘ð‘©ð‘¥" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "ð‘¯ð‘±ð‘¥ ð‘‘𑵠ð‘¤ð‘ªð‘™" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "ð‘•ð‘»ð‘ð‘¦ð‘• ð‘¯ð‘ªð‘‘ ð‘©ð‘ð‘±ð‘¤ð‘©ð‘šð‘©ð‘¤" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "ð‘®ð‘¦ð‘’ð‘¢ð‘§ð‘•ð‘‘ ð‘­ð‘šð‘•ð‘©ð‘¤ð‘°ð‘‘ð‘• ð‘•ð‘»ð‘ð‘¦ð‘•'ð‘• ð‘›ð‘±ð‘‘ð‘©" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "ð‘ð‘®ð‘´ð‘‘ð‘©ð‘’ð‘ªð‘¤ ð‘»ð‘¼" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ð‘’ð‘«ð‘› ð‘¯ð‘ªð‘‘ ð‘“ð‘²ð‘¯ð‘› ð‘¥ð‘­ð‘•ð‘‘𑼠ð‘šð‘®ð‘¬ð‘Ÿð‘¼" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ð‘¯ð‘´ ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘¨ð‘’ð‘–ð‘©ð‘¯ ð‘©ð‘•ð‘´ð‘–ð‘¦ð‘±ð‘‘ð‘©ð‘›" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "ð‘¯ð‘´ ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠URL ð‘•ð‘’ð‘°ð‘¥" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "ð‘»ð‘¼ ð‘ð‘¸ð‘•ð‘¦ð‘™ ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¤ð‘²ð‘¯" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "ð‘»ð‘¼ ð‘¤ð‘·ð‘¯ð‘—ð‘¦ð‘™ ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘›" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ð‘‘ð‘²ð‘¥ð‘¬ð‘‘ ð‘®ð‘°ð‘—ð‘‘" #. GNOME_VFS_ERROR_NAMESERVER #, fuzzy #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Nameserver ð‘»ð‘¼" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "𑞠ð‘®ð‘¦ð‘Ÿð‘¹ð‘• ð‘¦ð‘Ÿ ð‘¤ð‘ªð‘’ð‘‘" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ð‘“ð‘³ð‘™ð‘’ð‘–ð‘©ð‘¯ ð‘’ð‘·ð‘¤ ð‘›ð‘§ð‘ð‘®ð‘©ð‘’ð‘±ð‘‘ð‘©ð‘›" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘“ð‘²ð‘¤ð‘¯ð‘±ð‘¥" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "ð‘¯ð‘ªð‘‘ ð‘© ð‘•ð‘¦ð‘¥ð‘šð‘ªð‘¤ð‘¦ð‘’ ð‘¤ð‘¦ð‘™ð‘’" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ð‘³ð‘¯ð‘´ð‘¯ ð‘»ð‘¼" #, c-format #: ../libgnomevfs/gnome-vfs-utils.c:78 msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ð‘šð‘²ð‘‘" msgstr[1] "%u ð‘šð‘²ð‘‘ð‘•" #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-utils.c:84 msgid "%.1f KB" msgstr "%.1f MB" #, c-format #: ../libgnomevfs/gnome-vfs-utils.c:88 msgid "%.1f MB" msgstr "%.1f MB" #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-utils.c:92 msgid "%.1f GB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ð‘¦ð‘¯ð‘ð‘¨ð‘¤ð‘¦ð‘› ·ð‘¿ð‘¯ð‘¦ð‘’ð‘´ð‘›)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ð‘“ð‘¤ð‘­ð‘ð‘°" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "·ð‘’·ð‘›-ð‘®ð‘­ð‘¥/·ð‘›Â·ð‘·ð‘›-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "·ð‘’·ð‘›-ð‘­ð‘®/·ð‘›Â·ð‘·ð‘›-RW" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "·ð‘’·ð‘›-RW/·ð‘›Â·ð‘·ð‘›-ð‘®ð‘­ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "·ð‘’·ð‘›-RW/·ð‘›Â·ð‘·ð‘›-ð‘®ð‘¨ð‘¥" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "·ð‘’·ð‘›-RW/·ð‘›Â·ð‘·ð‘›-ð‘­ð‘®" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "·ð‘’·ð‘›-RW/·ð‘›Â·ð‘·ð‘›-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ð‘›ð‘¦ð‘•ð‘’" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ð‘›ð‘®ð‘²ð‘" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ð‘›ð‘®ð‘²ð‘" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "ð‘¥ð‘§ð‘¥ð‘¼ð‘¦ ð‘•ð‘‘ð‘¦ð‘’" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "ð‘•ð‘¥ð‘¸ð‘‘ ð‘¥ð‘°ð‘›ð‘¦ð‘©" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "ð‘’ð‘¨ð‘¥ð‘»ð‘©" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "ð‘®ð‘µð‘‘ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "ð‘·ð‘›ð‘¦ð‘´ CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "ð‘³ð‘¯ð‘´ð‘¯ ð‘ð‘ªð‘¤ð‘¿ð‘¥" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’ ð‘•ð‘»ð‘ð‘¼" #. Handle floppy case #, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘“ð‘¤ð‘­ð‘ð‘° ð‘›ð‘®ð‘²ð‘. ð‘žð‘º ð‘¦ð‘Ÿ ð‘ð‘®ð‘ªð‘šð‘©ð‘šð‘¤ð‘¦ ð‘¯ð‘´ ð‘“ð‘¤ð‘­ð‘ð‘° ð‘¦ð‘¯ 𑞠ð‘›ð‘®ð‘²ð‘." #. All others #, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘ð‘ªð‘¤ð‘¿ð‘¥. ð‘žð‘º ð‘¦ð‘Ÿ ð‘ð‘®ð‘ªð‘šð‘©ð‘šð‘¤ð‘¦ ð‘¯ð‘´ ð‘¥ð‘°ð‘›ð‘¦ð‘© ð‘¦ð‘¯ 𑞠ð‘›ð‘¦ð‘ð‘²ð‘•." #, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘“ð‘¤ð‘­ð‘ð‘° ð‘›ð‘®ð‘²ð‘. 𑞠ð‘“ð‘¤ð‘­ð‘ð‘° ð‘¦ð‘Ÿ ð‘ð‘®ð‘ªð‘šð‘©ð‘šð‘¤ð‘¦ ð‘¦ð‘¯ ð‘© ð‘“ð‘¹ð‘¥ð‘¨ð‘‘ ð‘žð‘¨ð‘‘ ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° " "ð‘¥ð‘¬ð‘¯ð‘‘ð‘©ð‘›." #. Probably a wrong password #, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘ð‘ªð‘¤ð‘¿ð‘¥. ð‘¦ð‘“ ð‘žð‘¦ð‘• ð‘¦ð‘Ÿ ð‘©ð‘¯ ð‘¦ð‘¯ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘©ð‘› ð‘›ð‘®ð‘²ð‘, ð‘žð‘§ð‘¯ 𑞠ð‘®ð‘ªð‘™ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› 𑹠ð‘’ð‘° ð‘¢ð‘ªð‘Ÿ " "ð‘¿ð‘Ÿð‘›." #, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘•ð‘©ð‘¤ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘ð‘ªð‘¤ð‘¿ð‘¥. 𑞠ð‘ð‘ªð‘¤ð‘¿ð‘¥ ð‘¦ð‘Ÿ ð‘ð‘®ð‘ªð‘šð‘©ð‘šð‘¤ð‘¦ ð‘¦ð‘¯ ð‘© ð‘“ð‘¹ð‘¥ð‘¨ð‘‘ ð‘žð‘¨ð‘‘ ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° " "ð‘¥ð‘¬ð‘¯ð‘‘ð‘©ð‘›." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘•ð‘©ð‘¤ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘“ð‘¤ð‘­ð‘ð‘° ð‘›ð‘®ð‘²ð‘." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘•ð‘©ð‘¤ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘ð‘ªð‘¤ð‘¿ð‘¥." #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ 𑞠ð‘•ð‘©ð‘¤ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘ð‘ªð‘¤ð‘¿ð‘¥. 𑞠ð‘ð‘ªð‘¤ð‘¿ð‘¥ ð‘¦ð‘Ÿ ð‘ð‘®ð‘ªð‘šð‘©ð‘šð‘¤ð‘¦ ð‘¦ð‘¯ ð‘© ð‘“ð‘¹ð‘¥ð‘¨ð‘‘ ð‘žð‘¨ð‘‘ ð‘’ð‘¨ð‘¯ð‘ªð‘‘ ð‘šð‘° " "ð‘¥ð‘¬ð‘¯ð‘‘ð‘©ð‘›." #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ unmount 𑞠ð‘•ð‘©ð‘¤ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘ð‘ªð‘¤ð‘¿ð‘¥." #, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 msgid "Failed to read data from child process %d (%s)" msgstr "ð‘“ð‘±ð‘¤ð‘› ð‘‘ ð‘®ð‘°ð‘› ð‘›ð‘±ð‘‘ð‘© ð‘“ð‘®ð‘ªð‘¥ ð‘—ð‘²ð‘¤ð‘› ð‘ð‘®ð‘´ð‘•ð‘§ð‘• %d (%s)" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ð‘’ð‘«ð‘›ð‘¯ð‘‘ ð‘®ð‘³ð‘¯ ð‘¥ð‘¬ð‘¯ð‘‘ ð‘ð‘®ð‘´ð‘•ð‘§ð‘• ð‘¦ð‘¯ ð‘© ð‘‘ð‘²" #, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "ð‘³ð‘¯ð‘¦ð‘’ð‘•ð‘ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘»ð‘¼ ð‘¦ð‘¯ ð‘•ð‘©ð‘¤ð‘§ð‘’ð‘‘() ð‘®ð‘°ð‘›ð‘¦ð‘™ ð‘›ð‘±ð‘‘ð‘© ð‘“ð‘®ð‘ªð‘¥ ð‘© ð‘—ð‘²ð‘¤ð‘› ð‘ð‘®ð‘´ð‘•ð‘§ð‘• (%s)" #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 msgid "Couldn't send password to mount process." msgstr "ð‘’ð‘«ð‘›ð‘¯ð‘‘ ð‘•ð‘§ð‘¯ð‘› ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘¥ð‘¬ð‘¯ð‘‘ ð‘ð‘®ð‘´ð‘•ð‘§ð‘•." #, fuzzy, c-format #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 msgid "Unexpected error in waitpid() (%s)" msgstr "ð‘³ð‘¯ð‘¦ð‘’ð‘•ð‘ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘»ð‘¼ ð‘¦ð‘¯ waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ð‘“ð‘±ð‘¤ð‘› ð‘‘ ð‘•ð‘‘ð‘¸ð‘‘ ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘›" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ ð‘¦ð‘¡ð‘§ð‘’ð‘‘ ð‘¥ð‘°ð‘›ð‘¦ð‘©" #, fuzzy #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "ð‘³ð‘¯ð‘±ð‘šð‘©ð‘¤ ð‘‘ unmount ð‘’ð‘©ð‘¯ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘•ð‘»ð‘ð‘¼" #: ../modules/computer-method.c:543 msgid "Network" msgstr "ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’" #: ../modules/computer-method.c:561 msgid "Home" msgstr "ð‘£ð‘´ð‘¥" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ð‘“ð‘²ð‘¤ð‘•ð‘¦ð‘•ð‘‘ð‘©ð‘¥" #, fuzzy, c-format #: ../modules/file-method.c:497 msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ð‘³ð‘¯ð‘´ð‘¯ GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "·ð‘¢ð‘¦ð‘¯ð‘›ð‘´ð‘Ÿ ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’" #, c-format #: ../modules/sftp-method.c:1424 msgid "The identity of the remote computer (%s) is unknown." msgstr "𑞠ð‘²ð‘›ð‘§ð‘¯ð‘‘ð‘¦ð‘‘𑦠ð‘ 𑞠ð‘®ð‘¦ð‘¥ð‘´ð‘‘ ð‘’ð‘©ð‘¥ð‘ð‘¿ð‘‘𑼠(%s) ð‘¦ð‘Ÿ ð‘³ð‘¯ð‘´ð‘¯." #, c-format #: ../modules/sftp-method.c:1425 msgid "" "This happens when you log in to a computer the first time.\n\nThe identity " "sent by the remote computer is %s. If you want to be absolutely sure it is " "safe to continue, contact the system administrator." msgstr "" "ð‘žð‘¦ð‘• ð‘£ð‘¨ð‘ð‘©ð‘¯ð‘Ÿ ð‘¢ð‘§ð‘¯ ð‘¿ ð‘¤ð‘ªð‘œ ð‘¦ð‘¯ ð‘‘ ð‘© ð‘’ð‘©ð‘¥ð‘ð‘¿ð‘‘𑼠𑞠ð‘“ð‘»ð‘•ð‘‘ ð‘‘ð‘²ð‘¥.\n\n𑞠ð‘²ð‘›ð‘§ð‘¯ð‘‘ð‘¦ð‘‘𑦠ð‘•ð‘§ð‘¯ð‘‘ ð‘šð‘² 𑞠ð‘®ð‘¦ð‘¥ð‘´ð‘‘ " "ð‘’ð‘©ð‘¥ð‘ð‘¿ð‘‘𑼠ð‘¦ð‘Ÿ %s. ð‘¦ð‘“ ð‘¿ ð‘¢ð‘ªð‘¯ð‘‘ ð‘‘ ð‘šð‘° ð‘¨ð‘šð‘•ð‘´ð‘¤ð‘µð‘‘ð‘¤ð‘¦ ð‘–ð‘«ð‘¼ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘•ð‘±ð‘“ ð‘‘ ð‘’ð‘©ð‘¯ð‘‘ð‘¦ð‘¯ð‘¿, ð‘’ð‘ªð‘¯ð‘‘ð‘¨ð‘’𑑠𑞠" "ð‘•ð‘¦ð‘•ð‘‘ð‘©ð‘¥ ð‘©ð‘›ð‘¥ð‘¦ð‘¯ð‘¦ð‘•ð‘‘ð‘®ð‘±ð‘‘ð‘¼." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "ð‘¤ð‘ªð‘œ ð‘¦ð‘¯ ð‘§ð‘¯ð‘¦ð‘¢ð‘±" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ð‘’ð‘¨ð‘¯ð‘•ð‘©ð‘¤ ð‘¤ð‘ªð‘œð‘¦ð‘¯" #. FIXME: we probably shouldn't use printf to output the message #, fuzzy, c-format #: ../modules/test-method.c:587 msgid "Didn't find a valid settings file at %s\n" msgstr "ð‘›ð‘¦ð‘›ð‘¯ð‘‘ ð‘“ð‘²ð‘¯ð‘› ð‘© ð‘ð‘¨ð‘¤ð‘¦ð‘› ð‘•ð‘§ð‘‘ð‘¦ð‘™ð‘Ÿ ð‘“ð‘²ð‘¤ ð‘¨ð‘‘ %s\n" #, c-format #: ../modules/test-method.c:589 msgid "Use the %s environment variable to specify a different location.\n" msgstr "ð‘¿ð‘Ÿ 𑞠%s ð‘§ð‘¯ð‘ð‘²ð‘¼ð‘¯ð‘¥ð‘©ð‘¯ð‘‘ ð‘ð‘ºð‘¦ð‘©ð‘šð‘©ð‘¤ ð‘‘ ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“𑲠𑩠ð‘›ð‘¦ð‘“ð‘¼ð‘©ð‘¯ð‘‘ ð‘¤ð‘´ð‘’ð‘±ð‘–ð‘©ð‘¯.\n" #, c-format #: ../programs/authentication.c:106 msgid "Your HTTP Proxy requires you to log in.\n" msgstr "ð‘¿ð‘¼ HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ð‘Ÿ ð‘¿ ð‘‘ ð‘¤ð‘ªð‘œ ð‘¦ð‘¯.\n" #, c-format #: ../programs/authentication.c:107 msgid "You must log in to access \"%s\".\n%s" msgstr "ð‘¿ ð‘¥ð‘³ð‘•ð‘‘ ð‘¤ð‘ªð‘œ ð‘¦ð‘¯ ð‘‘ ð‘¨ð‘’ð‘•ð‘§ð‘• \"%s\".\n%s" #, fuzzy #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "ð‘¿ð‘¼ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘‘ð‘®ð‘¨ð‘¯ð‘•ð‘¥ð‘¦ð‘‘ð‘©ð‘› unencrypted." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "ð‘¿ð‘¼ ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘‘ð‘®ð‘¨ð‘¯ð‘•ð‘¥ð‘¦ð‘‘ð‘©ð‘› ð‘¦ð‘¯ð‘’ð‘®ð‘¦ð‘ð‘‘ð‘©ð‘›." #, c-format #: ../programs/authentication.c:163 msgid "You must log in to access %s domain %s\n" msgstr "ð‘¿ ð‘¥ð‘³ð‘•ð‘‘ ð‘¤ð‘ªð‘œ ð‘¦ð‘¯ ð‘‘ ð‘¨ð‘’ð‘•ð‘§ð‘• %s ð‘›ð‘´ð‘¥ð‘±ð‘¯ %s\n" #, c-format #: ../programs/authentication.c:165 msgid "You must log in to access %s\n" msgstr "ð‘¿ ð‘¥ð‘³ð‘•ð‘‘ ð‘¤ð‘ªð‘œ ð‘¦ð‘¯ ð‘‘ ð‘¨ð‘’ð‘•ð‘§ð‘• %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ ð‘ð‘¿ð‘¼ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "ð‘§ð‘œð‘Ÿð‘§ð‘’ ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘ ð‘“𑹠ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤" #, no-c-format #: ../schemas/desktop_default_applications.schemas.in.h:5 msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "𑞠ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘‘ ð‘¿ð‘• ð‘“𑹠ð‘ð‘¿ð‘¦ð‘™ ð‘“ð‘²ð‘¤ð‘Ÿ ð‘žð‘¨ð‘‘ ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ ð‘© ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ ð‘‘ ð‘ð‘¿ ð‘žð‘§ð‘¥. 𑞠ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘𑼠%s " "ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘®ð‘¦ð‘ð‘¤ð‘±ð‘•ð‘‘ ð‘šð‘² 𑞠file's URIs, 𑞠ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘𑼠%c ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘®ð‘¦ð‘ð‘¤ð‘±ð‘•ð‘‘ ð‘šð‘² 𑞠ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ " "IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "𑞠ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘‘ ð‘¿ð‘• ð‘“𑹠ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ð‘Ÿ ð‘žð‘¨ð‘‘ ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "𑞠ð‘§ð‘œð‘Ÿð‘§ð‘’ ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘ ð‘‘ ð‘¿ð‘• ð‘“𑹠𑞠ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"aim\" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"callto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"ghelp\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"h323\" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"http\" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"https\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"info\" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"mailto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"man\" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"trash\" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"aim\" URLð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"callto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"ghelp\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"h323\" URLð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"http\" URLð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"https\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"info\" URLð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"mailto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"man\" URLð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠\"trash\" URLð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"command\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"aim\" URLð‘Ÿ." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘›\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"callto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘›\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"ghelp\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"command\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"h323\" URLð‘Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"command\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"http\" URLð‘Ÿ." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘›\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"https\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"command\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"info\" URLð‘Ÿ." #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘›\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"mailto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"command\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"man\" URLð‘Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠\"command\" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"trash\" URLð‘Ÿ." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"aim\" URLð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"callto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"ghelp\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"h323\" URLð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"http\" URLð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"https\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"info\" URLð‘Ÿ" #, fuzzy #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"mailto\" ·ð‘¿Â·ð‘®Â·ð‘¤ð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"man\" URLð‘Ÿ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ \"trash\" URLð‘Ÿ" #, fuzzy #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "ð‘’ð‘ªð‘¥ð‘© ð‘•ð‘§ð‘ð‘¼ð‘±ð‘‘ð‘©ð‘› ð‘¤ð‘¦ð‘•ð‘‘ ð‘ DNS-SD ð‘›ð‘´ð‘¥ð‘±ð‘¯ð‘Ÿ ð‘žð‘¨ð‘‘ ð‘–ð‘«ð‘› ð‘šð‘° ð‘ð‘¦ð‘•ð‘¦ð‘šð‘©ð‘¤ ð‘¦ð‘¯ 𑞠\"ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’:///\" " "ð‘¤ð‘´ð‘’ð‘±ð‘–ð‘©ð‘¯." #, fuzzy #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ð‘§ð‘’ð‘•ð‘‘ð‘®ð‘© ð‘›ð‘´ð‘¥ð‘±ð‘¯ð‘Ÿ ð‘‘ ð‘¤ð‘«ð‘’ ð‘“𑹠DNS-SD ð‘•ð‘»ð‘ð‘¦ð‘•ð‘©ð‘Ÿ ð‘¦ð‘¯" #, fuzzy #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "ð‘£ð‘¬ ð‘‘ ð‘›ð‘¦ð‘•ð‘ð‘¤ð‘± ð‘¤ð‘´ð‘’ð‘©ð‘¤ DNS-SD ð‘•ð‘»ð‘ð‘¦ð‘•" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "ð‘ð‘ªð‘•ð‘©ð‘šð‘©ð‘¤ ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ 𑸠\"merged\", \"separate\" 𑯠\"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘»ð‘𑼠ð‘’ð‘©ð‘¯ð‘§ð‘’ð‘–ð‘©ð‘¯ð‘Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ð‘·ð‘‘ð‘´ð‘¥ð‘¨ð‘‘ð‘¦ð‘’ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘Ÿ 𑞠ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘§ð‘‘ð‘¦ð‘™ð‘Ÿ ð‘¢ð‘§ð‘¯ ð‘¨ð‘’ð‘•ð‘§ð‘•ð‘¦ð‘™ HTTP ð‘´ð‘𑼠𑞠·ð‘¦ð‘¯ð‘‘ð‘¼ð‘¯ð‘§ð‘‘." #, fuzzy #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥" #, fuzzy #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘¹ð‘‘" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘›" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘¹ð‘‘" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘¿ð‘Ÿð‘¼ð‘¯ð‘±ð‘¥" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by " "\"/system/http_proxy/authentication_user\" and " "\"/system/http_proxy/authentication_password\"." msgstr "" "ð‘¦ð‘“ ð‘‘ð‘®ð‘µ, ð‘žð‘§ð‘¯ ð‘’ð‘©ð‘¯ð‘§ð‘’ð‘–ð‘©ð‘¯ð‘Ÿ 𑑠𑞠ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘»ð‘𑼠ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘–ð‘©ð‘¯. 𑞠ð‘¿ð‘Ÿð‘¼ð‘¯ð‘±ð‘¥/ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› " "ð‘’ð‘­ð‘¥ð‘šð‘´ ð‘¦ð‘Ÿ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² \"/system/http_proxy/authentication_user\" 𑯠" "\"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ð‘¯ð‘ªð‘¯-ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ð‘•" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘ð‘­ð‘• ð‘¨ð‘Ÿ ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘–ð‘©ð‘¯ ð‘¢ð‘§ð‘¯ ð‘›ð‘µð‘¦ð‘™ HTTP ð‘ð‘®ð‘ªð‘’ð‘•ð‘¦ð‘¦ð‘™." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¥ð‘´ð‘›" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "·ð‘•ð‘ªð‘’ð‘• ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "·ð‘•ð‘ªð‘’ð‘• ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘¹ð‘‘" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘¹ð‘‘" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", " "\"manual\", \"auto\"." msgstr "" "ð‘•ð‘©ð‘¤ð‘§ð‘’𑑠𑞠ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¥ð‘´ð‘›. ð‘•ð‘©ð‘ð‘¹ð‘‘ð‘©ð‘› ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ 𑸠\"none\", \"manual\", " "\"auto\"." #, fuzzy #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠FTP ð‘”ð‘®ð‘µ." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠HTTP ð‘”ð‘®ð‘µ." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ HTTP ð‘”ð‘®ð‘µ." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠·ð‘•ð‘ªð‘’ð‘• ð‘”ð‘®ð‘µ." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you proxy " "through." msgstr "" "𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² \"/system/http_proxy/host\" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² \"/system/proxy/ftp_host\" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² \"/system/proxy/secure_host\" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² \"/system/proxy/socks_host\" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ." #, fuzzy #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ð‘žð‘¦ð‘• ð‘’ð‘° ð‘’ð‘©ð‘¯ð‘‘ð‘±ð‘¯ð‘Ÿ ð‘© ð‘¤ð‘¦ð‘•ð‘‘ ð‘ ð‘£ð‘´ð‘•ð‘‘ð‘• ð‘¢ð‘¦ð‘— 𑸠ð‘’ð‘©ð‘¯ð‘§ð‘’ð‘‘ð‘©ð‘› ð‘‘ ð‘›ð‘²ð‘®ð‘§ð‘’ð‘‘ð‘¤ð‘¦, ð‘®ð‘­ð‘žð‘¼ ð‘žð‘¨ð‘¯ ð‘ð‘²ð‘© 𑞠" "ð‘ð‘®ð‘ªð‘’ð‘•𑦠(ð‘¦ð‘“ ð‘¦ð‘‘ ð‘¦ð‘Ÿ ð‘¨ð‘’ð‘‘ð‘¦ð‘). 𑞠ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ ð‘’ð‘¨ð‘¯ ð‘šð‘° hostnames, ð‘›ð‘´ð‘¥ð‘±ð‘¯ð‘Ÿ (ð‘¿ð‘Ÿð‘¦ð‘™ ð‘©ð‘¯ ð‘¦ð‘¯ð‘¦ð‘–ð‘©ð‘¤ " "ð‘¢ð‘²ð‘¤ð‘›ð‘’ð‘­ð‘®ð‘› ð‘¤ð‘²ð‘’ *.ð‘“ð‘µ.ð‘’ð‘ªð‘¥), ·ð‘¦Â·ð‘ ð‘£ð‘´ð‘•ð‘‘ ð‘©ð‘›ð‘®ð‘§ð‘•ð‘©ð‘Ÿ (ð‘šð‘´ð‘” IPv4 𑯠IPv6) 𑯠ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’ ð‘©ð‘›ð‘®ð‘§ð‘•ð‘©ð‘Ÿ " "ð‘¢ð‘¦ð‘ž ð‘© netmask (ð‘•ð‘³ð‘¥ð‘”ð‘¦ð‘™ ð‘¤ð‘²ð‘’ 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL ð‘žð‘¨ð‘‘ ð‘ð‘®ð‘©ð‘ð‘²ð‘›ð‘Ÿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "ð‘¿ð‘Ÿ HTTP ð‘ð‘®ð‘ªð‘’ð‘•ð‘¦" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "ð‘¿ð‘Ÿð‘¼ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘­ð‘• ð‘¨ð‘Ÿ ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘–ð‘©ð‘¯ ð‘¢ð‘§ð‘¯ ð‘›ð‘µð‘¦ð‘™ HTTP ð‘ð‘®ð‘ªð‘’ð‘•ð‘¦ð‘¦ð‘™." #, fuzzy #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ð‘¢ð‘»ð‘’ð‘œð‘®ð‘µð‘" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In order " "for a new workgroup to fully take effect the user may need to log out and log " "back in." msgstr "" "𑞠·ð‘¢ð‘¦ð‘¯ð‘›ð‘´ð‘Ÿ ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’ð‘¦ð‘™ ð‘¢ð‘»ð‘’ð‘œð‘®ð‘µð‘ 𑹠ð‘›ð‘´ð‘¥ð‘±ð‘¯ ð‘žð‘¨ð‘‘ 𑞠ð‘¿ð‘Ÿð‘¼ ð‘¦ð‘Ÿ ð‘ð‘¸ð‘‘ ð‘. ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘“𑹠𑩠ð‘¯ð‘¿ ð‘¢ð‘»ð‘’ð‘œð‘®ð‘µð‘ " "ð‘‘ ð‘“ð‘«ð‘¤ð‘¦ ð‘‘ð‘±ð‘’ ð‘¦ð‘“ð‘§ð‘’𑑠𑞠ð‘¿ð‘Ÿð‘¼ ð‘¥ð‘± ð‘¯ð‘°ð‘› ð‘‘ ð‘¤ð‘ªð‘œ ð‘¬ð‘‘ 𑯠ð‘¤ð‘ªð‘œ ð‘šð‘¨ð‘’ ð‘¦ð‘¯." gnome-vfs-2.24.4/po/POTFILES.in0000644000175000001440000000170011334251016012606 00000000000000# List of source files containing translatable strings. # Please keep this file sorted alphabetically. [encoding: UTF-8] libgnomevfs/gnome-vfs-cdrom.c libgnomevfs/gnome-vfs-configuration.c libgnomevfs/gnome-vfs-file-info.c libgnomevfs/gnome-vfs-filesystem-type.c libgnomevfs/gnome-vfs-hal-mounts.c libgnomevfs/gnome-vfs-init.c libgnomevfs/gnome-vfs-job.c libgnomevfs/gnome-vfs-mime-handlers.c libgnomevfs/gnome-vfs-mime-info.c libgnomevfs/gnome-vfs-parse-ls.c libgnomevfs/gnome-vfs-result.c libgnomevfs/gnome-vfs-utils.c libgnomevfs/gnome-vfs-volume-monitor-daemon.c libgnomevfs/gnome-vfs-volume-ops.c modules/computer-method.c modules/file-method.c modules/ftp-method.c modules/network-method.c modules/sftp-method.c modules/test-method.c programs/authentication.c schemas/desktop_default_applications.schemas.in schemas/desktop_gnome_url_handlers.schemas.in schemas/system_dns_sd.schemas.in schemas/system_http_proxy.schemas.in schemas/system_smb.schemas.in gnome-vfs-2.24.4/po/mr.po0000644000175000001440000016043511413132751012024 00000000000000# translation of mr.po to Marathi # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Sandeep Shedmake , 2008, 2009. # Sandeep Shedmake , 2009, 2010. msgid "" msgstr "" "Project-Id-Version: mr\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-vfs&component=general\n" "POT-Creation-Date: 2010-04-05 14:34+0000\n" "PO-Revision-Date: 2010-04-13 17:17+0530\n" "Last-Translator: Sandeep Shedmake \n" "Language-Team: Marathi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 खंड" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u मधà¥à¤¯à¥‡ NUL अकà¥à¤·à¤°à¥‡ समाविषà¥à¤Ÿà¥€à¤¤." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u मधà¥à¤¯à¥‡ कारà¥à¤¯à¤ªà¤§à¥à¤¦à¤¤à¥€ नाव समाविषà¥à¤Ÿà¥€à¤¤ नाही." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u कडे endmarker परà¥à¤¯à¤¾à¤¯ नाही." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u कडे अपरिचीत परà¥à¤¯à¤¾à¤¯ %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u मधà¥à¤¯à¥‡ विभाग नाव समाविषà¥à¤Ÿà¥€à¤¤ नाही." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "संयोजना फाइल '%s' नाही मिळाली : %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d ने वाचन रदà¥à¤¦ केले." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS महाजाल खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "सà¥à¤µà¤¯à¤‚शोधीत खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "सीडीरॉम डà¥à¤°à¤¾à¤ˆà¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "सिडी सांकेतिक शà¥à¤°à¤µà¤£ कृती" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "हारà¥à¤¡à¤µà¥‡à¤…र साधन खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs सीडीरॉम खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "पà¥à¤°à¤£à¤¾à¤²à¥€ खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "सà¥à¤®à¥ƒà¤¤à¥€ खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS महाजाल खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Windows सहभागीय खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "डिवà¥à¤¹à¥€à¤¡à¥€ खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "तातà¥à¤ªà¥à¤°à¤¤à¥‡ खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "विसà¥à¤¤à¤¾à¤°à¥€à¤¤ DOS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS खंड" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "अजà¥à¤žà¤¾à¤¤" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s खंड" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "à¤à¤•ीकृत फà¥à¤²à¥…श डà¥à¤°à¤¾à¤ˆà¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "सà¥à¤®à¥ƒà¤¤à¥€ सà¥à¤Ÿà¥€à¤• डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "सà¥à¤®à¤¾à¤°à¥à¤Ÿ मिडीया डà¥à¤°à¤¾à¤ˆà¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "à¤à¥€à¤ª डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "पेन डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s संगित वादक" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s डिजिटल कॅमेरा" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "बाहेरील %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "रिकामी CD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "सीडी-आर डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "रिकामी CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "डिवà¥à¤¹à¥€à¤¡à¥€-रॉम डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "रिकामी डिवà¥à¤¹à¥€à¤¡à¥€-रॅम डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "डिवà¥à¤¹à¥€à¤¡à¥€-रॅम डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "रिकामी डिवà¥à¤¹à¥€à¤¡à¥€-आर डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "रिकामी DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "रिकामी DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "रिकामी DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "शà¥à¤°à¤¾à¤µà¥à¤¯ डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Removable खंड" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "खंड" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "अजà¥à¤žà¤¾à¤¤ कारà¥à¤¯à¤ªà¤§à¥à¤¦à¤¤à¥€ पà¥à¤°à¤•ार %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "खà¥à¤²à¥à¤¯à¤¾ GIO चैनलसाठी पाइप निरà¥à¤®à¤¿à¤¤ नाही करू शकत : %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "अजà¥à¤žà¤¾à¤¤ कारà¥à¤¯ पà¥à¤°à¤•ार %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ थांबवीली आहे" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "कारà¥à¤¯à¤ªà¤§à¥à¤¦à¤¤à¥€ वापरणीत नाही. MIME माहीतीकोश मधील वापरकरà¥à¤¤à¤¾ बदलांना पाठींबा नाही." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "वाचू शकत नाही: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "अधिक वाचन तà¥à¤°à¥à¤Ÿà¥€à¤‚ना दà¥à¤°à¥à¤²à¤•à¥à¤·à¤¿à¤¤ केले जाईल." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "तà¥à¤°à¥à¤Ÿà¥€ नाही" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "फाइल नाही मिळाली" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "मà¥à¤²à¤­à¥‚त तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "आंतरिक तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "अवैध बाब" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ समरà¥à¤¥à¤¿à¤¤ नाही" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "माहीती मधà¥à¤¯à¥‡ तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "रचना वैध नाही" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "फाइल पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® अयोगà¥à¤¯" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "फाइल अतà¥à¤¯à¤‚त मोठी" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "डिवाइस वर जागा उपलबà¥à¤§ नाही" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "फकà¥à¤¤ वाचनीय फाइल पà¥à¤°à¤£à¤¾à¤²à¥€" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "अवैध URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "फाइल उघडली नाही" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "उघडणà¥à¤¯à¤¾à¤š मोड वैध नाही" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "संपरà¥à¤•ास मनाई" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "अतà¥à¤¯à¤‚त अधिक फाइल उघडलà¥à¤¯à¤¾ आहेत" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "फाइल समापà¥à¤¤" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "संचयीका नाही" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ चालू आहे" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¥‡à¤¤ वà¥à¤¯à¤¤à¥à¤¯à¤¯" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "फाइल उपलबà¥à¤§ आहे" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "लूप करीताचे लींक आढळले" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾à¤²à¤¾ अनà¥à¤®à¤¤à¥€ नाही" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "à¤à¤• संचयीका आहे" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "परà¥à¤¯à¤¾à¤ªà¥à¤¤ सà¥à¤®à¥ƒà¤¤à¥€ नाही" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "यजमान आढळला नाही" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "यजमान नाव वैध नाही" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "यजमानचा पता परिभाषित नाही" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "दाखलन असफल" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ रदà¥à¤¦" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "संचयीका वà¥à¤¯à¤¸à¥à¤¤ आहे" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "संचयीका रिकामी नाही" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "अतà¥à¤¯à¤‚त अधिक लिंक आहेत" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "फकà¥à¤¤ वाचनीय फाइल पà¥à¤°à¤£à¤¾à¤²à¥€" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "या फाइल पà¥à¤°à¤£à¤¾à¤²à¥€ वर नाही" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "नाव अतà¥à¤¯à¤‚त मोठे" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "सà¥à¤µà¤¿à¤§à¤¾ उपलबà¥à¤§ नाही" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "वापरणीत नसलेलà¥à¤¯à¤¾ सेवांचà¥à¤¯à¤¾ माहिती करीता विनंती करतो" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "शिषà¥à¤Ÿà¤¾à¤šà¤¾à¤° तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "मà¥à¤³ बà¥à¤°à¤¾à¤‰à¤¸à¤° शोधू शकत नाही" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "मà¥à¤²à¤­à¥‚त कृतीशी सलंगà¥à¤¨ नाही" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL योजनेसाठी दाता नाही" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "आदेश ओळ पासून वाचतेवेळी तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "आदेश दाखल करेतेवेळी तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "कालबाहà¥à¤¯ होणार" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "नामदरà¥à¤¶à¤• तà¥à¤°à¥à¤Ÿà¥€" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "सà¥à¤¤à¥à¤°à¥‹à¤¤ कà¥à¤²à¥à¤ª बंद आहे" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "कारà¥à¤¯à¤µà¤¿à¤·à¤¯à¤• विनंती वापरणीत नाही" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "अवैध फाइलनाव" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "चिनà¥à¤¹à¤¾à¤•ृत लिंक नाही" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u बाईट" msgstr[1] "%u बाईट" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(अवैध यà¥à¤¨à¤¿à¤•ोड)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "फà¥à¤²à¥‰à¤ªà¥€ डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "सà¥à¤®à¥ƒà¤¤à¥€ कांडी" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "सà¥à¤®à¤¾à¤°à¥à¤Ÿ मिडिया" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "कैमेरा" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "रूट पà¥à¤°à¤®à¤¾à¤£" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "शà¥à¤°à¤¾à¤µà¥à¤¯ सीडी" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "अपरिचीत खंड" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "महाजाल सरà¥à¤µà¤°" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹ आरोहीत करता येत नाही. कदाचित डà¥à¤°à¤¾à¤ˆà¤µà¥à¤¹à¤®à¤§à¥à¤¯à¥‡ फà¥à¤²à¥‰à¤ªà¥€ नाही." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "खंड आरोहीत करता येत नाही. कदाचित यंतà¥à¤°à¤®à¤§à¥à¤¯à¥‡ माधà¥à¤¯à¤® नाही." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹ आरोहीत à¤•रता येत नाही. कदाचित ही फà¥à¤²à¥‰à¤ªà¥€ जà¥à¤¯à¤¾ सà¥à¤µà¤°à¥‚पात आहे तà¥à¤¯à¤¾ सà¥à¤¥à¤¿à¤¤à¥€à¤¤ " "आरोहीत करता येणार नाही." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "खंड आरोहीत करता येत नाही. कदाचित ही फà¥à¤²à¥‰à¤ªà¥€ जà¥à¤¯à¤¾ सà¥à¤µà¤°à¥‚पात आहे तà¥à¤¯à¤¾ सà¥à¤¥à¤¿à¤¤à¥€à¤¤ आरोहीत करता " "येणार नाही." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "निवडलेले खंड आरोहीत करता येत नाही. कदाचित खंड जà¥à¤¯à¤¾ सà¥à¤µà¤°à¥‚पात आहे तà¥à¤¯à¤¾ सà¥à¤¥à¤¿à¤¤à¥€à¤¤ आरोहीत " "करता येत नाही." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "निवडलेले फà¥à¤²à¥‰à¤ªà¥€ डà¥à¤°à¤¾à¤ˆà¤µà¥à¤¹ आरोहीत करता येत नाही." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "निवडलेले खंड आरोहीत करता येत नाही." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "निवडलेले आवाज अनारोहीत करता येत नाही. कदाचीत खंड à¤à¤•ा पेकà¥à¤·à¤¾ जासà¥à¤¤ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— दà¥à¤µà¤¾à¤°à¥‡ " "वापरणीत आहे." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "निवडलेले खंड अनारोहीत करता येत नाही." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "उप कारà¥à¤¯à¤ªà¤§à¥à¤¦à¤¤à¥€ %d (%s) पासून माहिती वाचणà¥à¤¯à¤¾à¤¸ अयशसà¥à¤µà¥€" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty मधà¥à¤¯à¥‡ mount कारà¥à¤¯à¤ªà¤§à¥à¤¦à¤¤à¥€ चालवू शकत नाही" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "उप कारà¥à¤¯ (%s) पासून माहिती वाचतेवेळी select() मधà¥à¤¯à¥‡ अपरिचीत तà¥à¤°à¥‚टी आढळली" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "कारà¥à¤¯à¤ªà¤§à¥à¤¦à¤¤à¥€à¤•डे गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ पाठवू शकले नाही." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() (%s) मधà¥à¤¯à¥‡ अपरिचीत तà¥à¤°à¥‚टी आढळली" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "आदेश सà¥à¤°à¥‚ करणà¥à¤¯à¤¾à¤¸ अयशसà¥à¤µà¥€" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "मिडीया बाहेर काढू शकत नाही" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "जोडलेला सरà¥à¤µà¤° अनारोहीत करता येत नाही" #: ../modules/computer-method.c:543 msgid "Network" msgstr "नेटवरà¥à¤•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "मà¥à¤–à¥à¤¯" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "फाइलपà¥à¤°à¤£à¤¾à¤²à¥€" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "अपरिचीत GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows नेटवरà¥à¤•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "दूरसà¥à¤¥ संगणक (%s) ची ओळख अपरिचीत आहे." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "जेवà¥à¤¹à¤¾ तà¥à¤®à¥à¤¹à¥€ पà¥à¤°à¤¥à¤®à¤¤à¤¾ संगणकामधà¥à¤¯à¥‡ पà¥à¤°à¤µà¥‡à¤¶ करता तà¥à¤¯à¤¾à¤µà¥‡à¤³à¥€ असे घडते.\n" "\n" "दूरसà¥à¤¥ संगणकाने पाठविलेला परिचय %s आहे. कारà¥à¤¯ सà¥à¤°à¥‚ करणà¥à¤¯à¤¾à¤ªà¥‚रà¥à¤µà¥€ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ पकà¥à¤•ी कातà¥à¤°à¥€ हवी " "असेल तर, तà¥à¤®à¤šà¥à¤¯à¤¾ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¥‡à¤šà¥à¤¯à¤¾ संगणक वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾à¤•डे जा." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "कसेही करून दाखल करा" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "दाखलन रदà¥à¤¦ करा" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s वर कोणतीही वैध समायोजन फाइल नाही मिळाली \n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "अनà¥à¤¯ विशिषà¥à¤  जागा दखविणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ इनवाॅयरमेनà¥à¤Ÿ परिवरà¥à¤¤à¤¨à¤¾à¤‚क %s चा पà¥à¤°à¤¯à¥‹à¤— करा \n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "तà¥à¤®à¤šà¥à¤¯à¤¾ HTTP पà¥à¤°à¥‰à¤•à¥à¤¸à¥€à¤²à¤¾ तà¥à¤®à¥à¤¹à¥€ पà¥à¤°à¤µà¥‡à¤¶ करणà¥à¤¯à¤¾à¤šà¥€ आवशà¥à¤¯à¤•ता आहे.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "\"%s\" चा वापर करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ पà¥à¤°à¤µà¥‡à¤¶ करायला हवे.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "तà¥à¤®à¤šà¤¾ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ कà¥à¤Ÿà¤µà¤¿à¤°à¤¹à¥€à¤¤ पà¥à¤°à¤¸à¤¾à¤°à¥€à¤¤ केला जाईल." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "तà¥à¤®à¤šà¤¾ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ कà¥à¤Ÿà¤¯à¥à¤•à¥à¤¤ पà¥à¤°à¤¸à¤¾à¤°à¥€à¤¤ केला जाईल." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "%2$s कà¥à¤·à¥‡à¤¤à¥à¤°à¤¾à¤¤à¥€à¤² %1$s चा वापर करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ पà¥à¤°à¤µà¥‡à¤¶ केला पाहिजे\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "%s चा वापर करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¤šà¥‡ दाखलन आवशà¥à¤¯à¤• आहे\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "मà¥à¤²à¤­à¥‚त भाग दरà¥à¤¶à¤• कारà¥à¤¯à¤•à¥à¤°à¤®" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "मà¥à¤²à¤­à¥‚त टरà¥à¤®à¤¿à¤¨à¤² कारà¥à¤¯à¤•à¥à¤°à¤®" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "मà¥à¤²à¤­à¥‚त कारà¥à¤¯à¤•à¥à¤°à¤®à¤¾à¤‚साठी Exec बाब" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "घटकाची आवशà¥à¤¯à¤•ता लागत असणाऱà¥à¤¯à¤¾ फाइलला पहाणà¥à¤¯à¤¾à¤•रीताचे अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—. घटक %s फाइलचà¥à¤¯à¤¾ URI " "बदलविले जाईल, बाब %c घटकाचà¥à¤¯à¤¾ IID शी बदलविले जाईल." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "जà¥à¤¯à¤¾ कारà¥à¤¯à¤•à¥à¤°à¤®à¤¾à¤¸à¤¾à¤ à¥€ टरà¥à¤®à¤¿à¤¨à¤²à¤šà¥€ गरज आहे अशा कारà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ मà¥à¤²à¤­à¥‚त टरà¥à¤®à¤¿à¤¨à¤²." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "मà¥à¤²à¤­à¥‚त टरà¥à¤®à¤¿à¤¨à¤² कारà¥à¤¯à¤•à¥à¤°à¤®à¤¾à¤¸à¤¾à¤ à¥€ लागणारी exec बाब." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"aim\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URL करीता हॅनà¥à¤¡à¤²à¤°" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"aim\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"callto\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"ghelp\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"h323\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"http\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"https\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"info\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"mailto\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"man\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "\"command\" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ \"trash\" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "सूचित आदेशने \"aim\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "सूचित आदेशने \"callto\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "सूचित आदेशने \"ghelp\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "सूचित आदेशने \"h323\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "सूचित आदेशने \"http\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "सूचित आदेशने \"https\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "सूचित आदेशने \"info\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "सूचित आदेशने \"mailto\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "सूचित आदेशने \"man\" URL हाताळावे की नाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "सूचित आदेशने \"trash\" URL हाताळावे की नाही" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "\"network:///\" सà¥à¤¥à¤¾à¤¨à¤¾à¤µà¤° दिसणà¥à¤¯à¤¾à¤¯à¥‹à¤—à¥à¤¯ अलà¥à¤ªà¤µà¤¿à¤°à¤¾à¤®à¤¦à¥à¤µà¤¾à¤°à¤¾ वेगळी केलेली DNS-SD कà¥à¤·à¥‡à¤¤à¥à¤°." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD सेवांकरीता पहाचे ते अगाऊ कà¥à¤·à¥‡à¤¤à¥à¤°" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "सà¥à¤¥à¤¾à¤¨à¥€à¤• DNS-SD सेवा कसे दरà¥à¤¶à¤µà¤¾à¤¯à¤šà¥‡" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "संभावà¥à¤¯ मूलà¥à¤¯à¥‡ \"विलीन\", \"विभाजीत\" आणि \"अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤\" अशी आहेत." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "परà¥à¤¯à¤¾à¤¯à¥€ सरà¥à¤µà¤° जोडणी अधिकृतपणे तपासून पहा" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "सà¥à¤µà¤¯à¤‚सिदà¥à¤§ परà¥à¤¯à¤¾à¤¯à¥€ संयोजना URL अधिकृतपणे तपासून पहा" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "महाजाल वरील HTTP पà¥à¤°à¤µà¥‡à¤¶ दाखल करतेवेळी पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ संयोजना कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करतो." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP परà¥à¤¯à¤¾à¤¯à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP परà¥à¤¯à¤¾à¤¯à¥€ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP परà¥à¤¯à¤¾à¤¯à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP परà¥à¤¯à¤¾à¤¯à¥€ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "जर ठिक असेल तर, परà¥à¤¯à¤¾à¤¯à¥€ सरà¥à¤µà¤° जोडणीला होकार दà¥à¤¯à¤¾à¤µà¤¾ लागेल. वापरकरà¥à¤¤à¤¾/गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦à¤¾à¤šà¥‡ " "निशà¥à¤šà¤¿à¤¤à¥€à¤•रण \"/system/http_proxy/authentication_user\" आणि \"/system/" "http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "परà¥à¤¯à¤¾à¤¯ विहीत सà¥à¤µà¤¾à¤—तकरà¥à¤¤à¥‡" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "निशà¥à¤šà¤¿à¤¤à¥€à¤•रणासाठी गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ टाकून HTTP परà¥à¤¯à¤¾à¤¯à¥€à¤•रण होत असलà¥à¤¯à¤¾à¤šà¥‡ पहा." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "परà¥à¤¯à¤¾à¤¯à¥€ संयोजनाची रीत" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS परà¥à¤¯à¤¾à¤¯à¥€ सà¥à¤¥à¤¾à¤¨" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "HTTP परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करा" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "HTTP परà¥à¤¯à¤¾à¤¯à¥€ सà¥à¤¥à¤¾à¤¨ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ आहे" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "परà¥à¤¯à¤¾à¤¯à¥€ संयोजनाची रीत निवडा. \"à¤à¤•ही नाही\", \"सà¥à¤µà¤¯à¤‚सिदà¥à¤§\", \"हसà¥à¤¤à¥‡\" ही सà¥à¤µà¥€à¤•ृत मूलà¥à¤¯à¥‡ " "आहेत." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "परà¥à¤¯à¤¾à¤¯à¥€ FTP साठी यांतà¥à¤°à¤¿à¤• नाव." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "परà¥à¤¯à¤¾à¤¯à¥€ HTTP साठी यांतà¥à¤°à¤¿à¤• नाव." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ परà¥à¤¯à¤¾à¤¯à¥€ HTTP साठी पà¥à¤°à¤£à¤¾à¤²à¥€ नाव." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "परà¥à¤¯à¤¾à¤¯à¥€ सॉकà¥à¤¸ साठी यातà¥à¤°à¤¿à¤• नाव." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ \"/system/http_proxy/host\" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ वापरू " "शकता." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ \"/system/proxy/ftp_host\" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ वापरू " "शकता." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ \"/system/proxy/secure_host\" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ " "वापरू शकता." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ \"/system/proxy/socks_host\" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ " "वापरू शकता." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "या किलà¥à¤²à¥€à¤¤ पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¤¿à¤¤à¥à¤¯à¤¾ जà¥à¤³à¤²à¥‡à¤²à¥€ यजमानची यादी, पà¥à¤°à¥‰à¤•à¥à¤¸à¥€à¤šà¥à¤¯à¤¾ (सकà¥à¤°à¥€à¤¯ असलà¥à¤¯à¤¾à¤¸) à¤à¤µà¤œà¥€ " "समाविषà¥à¤Ÿà¥€à¤¤ आहे. मà¥à¤²à¥à¤¯ यजमाननाव, कà¥à¤·à¥‡à¤¤à¥à¤° (पà¥à¤°à¤¾à¤°à¤‚भीक वाईलà¥à¤¡à¤•ारà¥à¤¡ जसे की *.foo.com), IP " "यजमान पतà¥à¤¤à¤¾ (दोनà¥à¤¹à¥€ IPv4 व IPv6) व संजाळ पतà¥à¤¤à¤¾ सह नेटमासà¥à¤• (काहितरी यासारखे " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "परà¥à¤¯à¤¾à¤¯à¥€ संयोजना मà¥à¤²à¥à¤¯ दरà¥à¤¶à¤µà¤¿à¤£à¤¾à¤°à¤¾ URL." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ वापरा" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP साठी पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ निवडतेवेळी वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव टाकून अधिकृतपणे निशà¥à¤šà¤¿à¤¤ करा." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB कारà¥à¤¯à¤—ट" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "वापरकरà¥à¤¤à¤¾ जà¥à¤¯à¤¾ कारà¥à¤¯à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤šà¤¾ किंवा विंडोज नेटवरà¥à¤•ीग करणाऱà¥à¤¯à¤¾ गटाचा भाग असेल ते सà¥à¤¥à¤¾à¤¨ " "à¤à¤–ादà¥à¤¯à¤¾ नवà¥à¤¯à¤¾ कारà¥à¤¯à¤—टाचा पूरà¥à¤£ उपयोग करायचा असेल तर वापर करतà¥à¤¯à¤¾à¤¨à¥‡ पà¥à¤°à¤¥à¤® पà¥à¤°à¤µà¥‡à¤¶à¤¾à¤¤à¥‚न बाहेर " "जावे आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤µà¥‡à¤¶ करावा." gnome-vfs-2.24.4/po/pt.po0000644000175000001440000015732611354402652012042 00000000000000# gnome-vfs's Portuguese Translation. # Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 gnome-vfs # Distributed under the same licence as the gnome-vfs package # Duarte Loreto , 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010. # msgid "" msgstr "" "Project-Id-Version: 2.30\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-01 00:54+0000\n" "PO-Revision-Date: 2010-03-01 00:55+0000\n" "Last-Translator: Duarte Loreto \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Unidade ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u contém caracteres NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u não contém nome de método." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u não contém terminador de opções." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u contém opções desconhecidas %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u não contém nome de módulo." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Não foi encontrado ficheiro de configuração `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d abortou o processamento." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Unidade AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Unidade de Rede AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Unidade Detectada Automaticamente" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Unidade Linux Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Dispositivo CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD Audio Digital" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Unidade de Dispositivo de Hardware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Unidade EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Unidade eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Unidade Linux Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Unidade Linux Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Unidade Linux Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Unidade MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Unidade BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Unidade FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Unidade MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Unidade CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Unidade CDROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Unidade JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Unidade Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Unidade de Sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Unidade em Memória" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Unidade Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Unidade de Rede NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Unidade Linux NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Unidade Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Unidade Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Unidade Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Unidade Partilhado Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Unidade SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Unidade DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Unidade Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Unidade Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Unidade Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Unidade Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Unidade Temporária" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Unidade DOS Melhorado" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Unidade Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Unidade Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Unidade Linux XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Unidade XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Unidade CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Desconhecido" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Unidade %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Dispositivo %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Dispositivo %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Dispositivo de Disquette" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Dispositivo de Flash Compacta" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Dispositivo de Caneta de Memória" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Dispositivo de Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Dispositivo SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Dispositivo Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Dispositivo Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Dispositivo Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Reprodutor de Música %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Câmara Digital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Dispositivo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s Externo" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disco CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disco CD-R Virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disco CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disco CD-RW Virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disco CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disco CVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disco DVD-RAM Virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disco DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disco DVD-R Virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disco DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disco DVD-RW Virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disco DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disco DVD+R Virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disco DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disco DVD+RW Virgem" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disco DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disco Audio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Unidade Removível %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Unidade" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tipo de operação %u desconhecido" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Incapaz de criar canal para GIOChannel aberto: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tipo de trabalho %u desconhecido" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operação parada" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Função obsoleta. Não são mais suportadas alterações pelo utilizador à base " "de dados MIME." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Incapaz de processar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Erros de processamento subsequentes serão ignorados." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Nenhum erro" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Ficheiro não encontrado" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Erro genérico" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Erro interno" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Parâmetros inválidos" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operação não suportada" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Erro I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Dados corrompidos" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formato inválido" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Ponteiro para ficheiro inválido" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Ficheiro demasiado grande" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Dispositivo sem espaço livre" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistema de ficheiros apenas de leitura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI inválido" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Ficheiro não aberto" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Modo de abertura inválido" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Acesso negado" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Demasiados ficheiros abertos" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Final de ficheiro" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Não é um directório" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operação em execução" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operação interrompida" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Ficheiro existe" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Encontrados atalhos circulares" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operação não permitida" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "É um directório" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Memória insuficiente" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Máquina não encontrada" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Nome de máquina inválido" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Máquina não possui endereço" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Falha ao iniciar sessão" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operação cancelada" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directório ocupado" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Directório não vazio" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Demasiados atalhos" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Sistema de ficheiros apenas de leitura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Não está no mesmo sistema de ficheiros" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nome demasiado longo" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Serviço indisponível" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Pedido de dados a serviço obsoleto" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Erro de protocolo" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Incapaz de encontrar browser principal" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nenhuma acção por omissão associada" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Nenhum manipulador de esquema de URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Erro ao processar linha de comando" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Erro ao executar comando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Tempo limite atingido" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Erro de servidor de nomes" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "O recurso está em utilização exclusiva" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Chamada de função obsoleta" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Nome de ficheiro inválido" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Não é uma ligação simbólica" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Erro desconhecido" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode inválido)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquette" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disco" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Dispositivo USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Dispositivo IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Caneta de Memória" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Câmara" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Unidade Raíz" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD Audio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Unidade desconhecida" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Servidor de rede" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Incapaz de montar o dispositivo de disquette. Provavelmente não existe " "nenhuma disquette dentro do dispositivo." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Incapaz de montar a unidade. Provavelmente não existe nenhum media no " "dispositivo." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Incapaz de montar o dispositivo de disquette. Provavelmente a disquette " "encontra-se num formato que não pode ser montado." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Incapaz de montar o volume. Se este for um dispositivo encriptado, foi " "utilizada a senha ou chave incorrecta." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Incapaz de montar a unidade seleccionada. Provavelmente a unidade encontra-" "se num formato que não pode ser montado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Incapaz de montar o dispositivo de disquette seleccionado." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Incapaz de montar a unidade seleccionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Incapaz de desmontar a unidade seleccionada. A unidade encontra-se em " "utilização por uma ou mais aplicações." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Incapaz de desmontar a unidade seleccionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Falha ao ler dados do processo filho %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Incapaz de executar o processo de montagem numa pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Erro inesperado no select() ao ler dados de um processo filho (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Incapaz de enviar a senha para um processo de montagem." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Erro inesperado no waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Falha ao iniciar comando" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Incapaz de ejectar media" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Incapaz de desmontar servidor ligado" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Rede" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Pasta Pessoal" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistema de ficheiros" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d desconhecida" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Rede Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Desconhece-se a identidade do comuptador remoto (%s)." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Isto acontece quando inicia uma sessão num computador pela primeira vez.\n" "\n" "A identidade enviada pelo computador remoto é %s. Se deseja ter a certeza " "absoluta de que é seguro prosseguir, contacte o administrador de sistemas." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Ainda Assim Iniciar Sessão" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancelar o Início de Sessão" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Não foi encontrado um ficheiro de definições válido em %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Utilize a variável de ambiente %s para especificar uma localização " "diferente.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "A sua Proxy HTTP necessita que inicie uma sessão.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Tem de iniciar uma sessão para aceder a \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "A sua senha será transmitida sem encriptação." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "A sua senha será transmitida encriptada." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Tem de iniciar uma sessão para aceder a %s no domínio %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Tem de iniciar uma sessão para aceder a %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplicação visualizadora por omissão de componente" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplicação de consola por omissão" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argumentos de execução para consola por omissão" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "A aplicação a utilizar para visualizar ficheiros que requerem um componente " "para que possam ser visualizadas. O parâmetro %s será substituído pelo URI " "do ficheiro, o parâmetro %c será substituído pelo IID do componente." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "A aplicação de consola a utilizar por omissão para aplicações que necessitem " "de uma consola." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "O argumento de execução a utilizar para a aplicação de consola por omissão." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Executar o comando numa consola" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"aim\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"callto\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"ghelp\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"h323\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"http\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"https\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"info\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"mailto\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"man\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "O comando utilizado para manipular URLs \"trash\", se activo." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "O manipulador de URLs \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "O manipulador de URLs \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "O manipulador de URLs \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "O manipulador de URLs \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "O manipulador de URLs \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "O manipulador de URLs \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "O manipulador de URLs \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "O manipulador de URLs \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "O manipulador de URLs \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "O manipulador de URLs \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Verdadeiro se o comando especificado na chave \"command\" deverá manipular " "URLs \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser " "executado numa consola." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Se o comando especificado deverá manipular URLs \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Lista separada por vírgulas de domínios DNS-SD que deverão ser visíveis na " "localização de rede \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Domínios adicionais onde procurar serviços DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Como apresentar o serviço DNS-SD local" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Valores possíveis são \"merged\", \"separate\" e \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autenticar ligações ao servidor proxy" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuração automática de proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Activa as definições de proxy ao aceder por HTTP à Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nome de máquina da proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Porto do proxy FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nome de máquina da proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Senha da proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Porto do proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Utilizador da proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Se verdadeiro, ligações ao servidor proxy requerem autenticação. O conjunto " "utilizador/senha é definido por \"/system/http_proxy/authentication_user\" e " "\"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Máquina não-proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Senha a indicar como autenticação ao efectuar proxy de HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Modo de configuração proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nome de máquina de proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Porto de proxy SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Nome de máquina de proxy de HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Porto de proxy de HTTP seguro" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Seleccione o modo de configuração de proxy. Valores suportados são \"none" "\" (nenhum), \"manual\", \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "O nome da máquina através da qual efectuar proxy de FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "O nome da máquina através da qual efectuar proxy de HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "O nome da máquina através da qual efectuar proxy de HTTP seguro." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "O nome da máquina através da qual efectuar proxy socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "O porto na máquina, definido por \"/system/http_proxy/host\", através do " "qual efectuar proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "O porto na máquina, definido por \"/system/proxy/ftp_host\", através do qual " "efectuar proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "O porto na máquina, definido por \"/system/proxy/secure_host\", através do " "qual efectuar proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "O porto na máquina, definido por \"/system/proxy/socks_host\", através do " "qual efectuar proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Esta chave contém uma lista de máquinas às quais a ligação deverá ser " "directa, e não através da proxy (caso esteja activa). Os valores podem ser " "nomes de máquinas, domínios (utilizando um caracter global tal como *." "exemplo.pt), endereços IP (tanto IPv4 como IPv6) e endereços de rede com uma " "máscara de rede (algo como 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL que disponibiliza valores de configuração da proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Utilizar proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Utilizador a indicar como autenticação ao efectuar proxy de HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grupo de trabalho SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "O grupo de trabalho de rede Windows ou o domínio a que o utilizador " "pertence. Para que um novo grupo de trabalho tenha efeito total o utilizador " "poderá ter de terminar a sessão e iniciá-la novamente." #~ msgid "Could not initialize Bonobo" #~ msgstr "Incapaz de inicializar Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Incapaz de inicializar gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "Fábrica de Moniker padrão" #~ msgid "file MonikerExtender" #~ msgstr "ficheiro MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "moniker Gnome VFS genérico" #~ msgid "generic file moniker" #~ msgstr "ficheiro moniker genérico" #~ msgid "Display SCSI drives" #~ msgstr "Apresentar dispositivos SCSI" #~ msgid "Display SCSI optical drives" #~ msgstr "Apresentar dispositivos ópticos SCSI" #~ msgid "Display drives with removable media" #~ msgstr "Apresentar dispositivos com media amovível" #~ msgid "Display external drives" #~ msgstr "Apresentar dispositivos externos" #~ msgid "Display internal hard drives" #~ msgstr "Apresentar discos rígidos internos" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Se apresentar ou não dispositivos ópticos SCSI mesmo se /system/storage/" #~ "display_scsi_drives estiver definido como FALSE." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "" #~ "Se apresentar ou não dispositivos e unidades montáveis de dispositivos " #~ "SCSI." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Se apresentar ou não dispositivos e unidades montáveis de dispositivos " #~ "com media amovível (por ex. dispositivos onde pode ser inserido e " #~ "removido media)." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Se apresentar ou não dispositivos e volumes montáveis de dispositivos " #~ "externos (por ex. dispositivos que são \"hotpluggable\"; por ex. " #~ "dispositivos que podem ser ligados e desligados do computador enquanto " #~ "este funciona)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Se apresentar ou não dispositivos e volumes montáveis de discos rígidos " #~ "internos (dispositivos ópticos não-SCSI são sempre apresentados)." #~ msgid "The window workgroup the user is part of" #~ msgstr "O grupo de trabalho windows a que o utilizador pertence" #~ msgid "Optical Disc" #~ msgstr "Disco Óptico" #~ msgid "Memory Stick Media" #~ msgstr "Media de Caneta de Memória" #~ msgid "Smart Media Media" #~ msgstr "Media Smart Media" #~ msgid "Mac OS disk" #~ msgstr "Disco Mac OS" #~ msgid "Mac OS X disk" #~ msgstr "Disco Mac OS X" #~ msgid "Windows Disk" #~ msgstr "Disco Windows" #~ msgid "Linux Disk" #~ msgstr "Disco Linux" #~ msgid "File could not be opened: %s" #~ msgstr "Incapaz de abrir o ficheiro: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "Falha ao abrir o ficheiro '%s': %s" #~ msgid "File is empty" #~ msgstr "O ficheiro está vazio" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "entradas de área de trabalho contêm a linha '%s' que não é uma entrada, " #~ "grupo ou comentário" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "" #~ "ficheiro de entradas de área de trabalho não começa por um grupo inicial " #~ "permitido" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "entradas de área de trabalho contêm a linha '%s' que não é UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "entradas de área de trabalho contêm a codificação desconhecida '%s'" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "entradas de área de trabalho não possuem o grupo '%s'" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "entradas de área de trabalho não possuem a chave '%s'" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "entradas de área de trabalho contêm a chave '%s' que possui um valor que " #~ "não pode ser interpretado." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "entradas de área de trabalho não contêm um valor traduzido para a chave '%" #~ "s' com a configuração regional '%s'." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "" #~ "entradas de área de trabalho contêm sequencia de escape inválida '%s'" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "" #~ "entradas de área de trabalho contêm caracter de escape no final da linha" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "Valor '%s' não pode ser interpretado como um número." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "Valor '%s' não pode ser interpretado como uma boleana." #~ msgid "Applications" #~ msgstr "Aplicações" #~ msgid "Cards" #~ msgstr "Cartões" #~ msgid "Files" #~ msgstr "Ficheiros" #~ msgid "Folders" #~ msgstr "Pastas" #~ msgid "Help" #~ msgstr "Ajuda" #~ msgid "Hosts" #~ msgstr "Máquinas" #~ msgid "Links" #~ msgstr "Atalhos" #~ msgid "Mail" #~ msgstr "Correio" #~ msgid "Tools" #~ msgstr "Ferramentas" #~ msgid "Windows" #~ msgstr "Janelas" #~ msgid "CD Disc" #~ msgstr "Disco CD" #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "O comando utilizado para manipular URLs HTTP, se activo." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "O comando utilizado para manipular URLs HTTPS, se activo." #~ msgid "The handler for HTTP URLs" #~ msgstr "O manipulador de URLs HTTP" #~ msgid "The handler for HTTPS URLs" #~ msgstr "O manipulador de URLs HTTPS" #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Verdadeiro se o comando especificado na chave \"command\" deverá " #~ "manipular URLs HTTP." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Verdadeiro se o comando especificado na chave \"command\" deverá " #~ "manipular URLs HTTPS." #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "Se o comando especificado deverá manipular URLs HTTP." #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "Se o comando especificado deverá manipular URLs HTTPS." #~ msgid "H323 URL handler" #~ msgstr "Manipulador de URL H323" #~ msgid "HTTP URL handler" #~ msgstr "Manipulador de URL HTTP" #~ msgid "HTTPS URL handler" #~ msgstr "Manipulador de URL HTTPS" #~ msgid "Handle callto URLs" #~ msgstr "Manipulador de URLs callto" #~ msgid "Handle ghelp URLs" #~ msgstr "Manipulador de URLs ghelp" #~ msgid "Handle info URLs" #~ msgstr "Manipulador de URLs info" #~ msgid "Handle mailto URLs" #~ msgstr "Manipulador de URLs mailto" #~ msgid "Handle man URLs" #~ msgstr "Manipulador de URLs man" #~ msgid "Handle trash URLs" #~ msgstr "Manipulador de URLs de lixo" #~ msgid "aim URL handler" #~ msgstr "Manipulador de URL aim" #~ msgid "callto URL handler" #~ msgstr "Manipulador de URL callto" #~ msgid "ghelp URL handler" #~ msgstr "Manipulador de URL ghelp" #~ msgid "info URL handler" #~ msgstr "Manipulador de URL info" #~ msgid "mailto URL handler" #~ msgstr "Manipulador de URL mailto" #~ msgid "man URL handler" #~ msgstr "Manipulador de URL man" #~ msgid "trash URL handler" #~ msgstr "Manipulador de URL de lixo" #~ msgid "Bookmark saving failed (%s)" #~ msgstr "Falha ao gravar marcadores (%s)" #~ msgid "Could not get information for file '%s': %s" #~ msgstr "Incapaz de obter informação para o ficheiro '%s': %s" #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "Falha ao ler a imagem '%s': motivo desconhecido, provavelmente um " #~ "ficheiro de imagem corrompido" #~ msgid "How to handle http URLs" #~ msgstr "Como manipulador URLs http" #~ msgid "How to handle https URLs" #~ msgstr "Como manipulador URLs https" #~ msgid "Set to true to have a program specified in command handle https URLs" #~ msgstr "" #~ "Definir como verdadeiro para que aplicação especificada no comando " #~ "manipule URLs https" #~ msgid "" #~ "Set to true to have a program specified in programs/ghelp handle ghelp " #~ "URLs" #~ msgstr "" #~ "Definir como verdadeiro para que aplicação especificada em aplicações/" #~ "ghelp manipule URLs ghelp" #~ msgid "" #~ "Set to true to have a program specified in programs/info handle info URLs" #~ msgstr "" #~ "Definir como verdadeiro para que aplicação especificada em aplicações/" #~ "info manipule URLs info" #~ msgid "" #~ "Set to true to have a program specified in programs/man handle man URLs" #~ msgstr "" #~ "Definir como verdadeiro para que aplicação especificada em aplicações/man " #~ "manipule URLs man" #~ msgid "URL handler for h323 uris" #~ msgstr "Manipulador de URL para uris h323" #~ msgid "URL handler for http uris" #~ msgstr "Manipulador de URL para uris http" #~ msgid "URL handler for https uris" #~ msgstr "Manipulador de URL para uris https" #~ msgid "Hosts are not contacted via the proxy" #~ msgstr "Máquinas não são contactadas através da proxy" #~ msgid "The machine name to proxy http through." #~ msgstr "O nome da máquina através da qual efectuar proxy de http." #~ msgid "Use proxy settings when accessing http" #~ msgstr "Utilizar definições da proxy ao aceder por http" #~ msgid "http proxy password" #~ msgstr "Senha de proxy http" #~ msgid "http proxy username" #~ msgstr "Utilizador de proxy http" gnome-vfs-2.24.4/po/mn.po0000644000175000001440000014177511334251016012024 00000000000000# translation of mn.po to Mongolian # translation of gnome-vfs.HEAD.po to Mongolian # translation of gnome-vfs.HEAD.po to mongolian # This file is distributed under the same license as the PACKAGE package. # Copyright (C) 2003. # Sanlig Badral , 2003. # Sanlig Badral , 2003, 2004. # Sanlig Badral , 2004. # msgid "" msgstr "" "Project-Id-Version: mn\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-08-10 00:50+0200\n" "Last-Translator: Sanlig Badral \n" "Language-Team: Mongolian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "Bonobo-г инициацалж чадÑангүй" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "гноме vfs -г инициацлаж чадахгүй байна." #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "ИСО 9660 :өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d NUL Ñ‚ÑмдÑгт агуулж байна." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d методын нÑÑ€ агуулаагүй байна." #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d үйлдлийн төгÑгөл Ñ‚ÑмдÑглÑгч агуулаагүй байна." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "%s:%d мÑдÑгдÑхгүй %s Ñонголттой байна." #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d модулын нÑÑ€ агуулаагүй байна." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "»%s« Тохируулгын файл олдÑонгүй: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "AFFS өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "AFS ÑүлжÑÑний өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "автомат танигдагч хөгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "КД-РОМ хөтлөгч" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "CD дижитал аудио" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "Техник хангамжийн өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Ext2 Ð»Ð¸Ð½ÑƒÐºÑ Ó©Ð³Ó©Ð³Ð´Ó©Ð» хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Ext3 өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "MSDOS өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "MacOS өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "КДРОМ өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Hsfs КДРОМ өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "JFS өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Ð’Ð¸Ð½Ð´Ð¾Ð²Ñ ÐТ өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "СиÑтемийн өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "Санах ойн өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Minix өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "NFS ÑүлжÑÑ Ó©Ð³Ó©Ð³Ð´Ó©Ð» хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Техникийн өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Ð»Ð¸Ð½ÑƒÐºÑ Ó©Ð³Ó©Ð³Ð´Ó©Ð» хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "Ð’Ð¸Ð½Ð´Ð¾Ð²Ñ Ñ…Ð°Ð¼Ñ‚Ñ‹Ð½ өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "SuperMount өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "DVD өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "ӨргөтгөÑөн ДОС өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Ð’Ð¸Ð½Ð´Ð¾Ð²Ñ VFAT өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Xenix өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "XFS Ð»Ð¸Ð½ÑƒÐºÑ Ó©Ð³Ó©Ð³Ð´Ó©Ð» хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "XIAFS өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Тодорхойгүй" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Тодорхойгүй үйлдийн төрөл %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "GIOChannel нÑÑÑ… шугам Ò¯Ò¯ÑгÑгдÑхгүй байна: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Тодорхойгүй ажилын Ñ…Ñв %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "ҮйлдÑл зоÑлоо" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Буруу функц. Ð¥ÑÑ€ÑглÑгч өөрчилөлтөө MIME өгөгдлийн бааз руу бичдÑг байÑнаа " "больÑон." #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Задлан Ñлгал боломжгүй: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "Цаашдын задлан Ñлгалын алдааг Ñ…ÑÑ€ÑгÑÑхгүй." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Ðлдаагүй" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Файл олдÑонгүй" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Ерөнхий алдаа" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Дотоод алдаа" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Хүчингүй параметр" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "ДÑмжигдÑÑгүй үйлдÑл" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "О/Г-Ðлдаа" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Файл ÑвдÑрчÑÑ" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Формат хүчингүй" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Буруу файлын заагч" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Файл Ñ…ÑÑ‚Ñрхий том" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Төхөөрөмж дÑÑÑ€ үлдÑÑн зай алга" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "БичихÑÑÑ Ñ…Ð°Ð¼Ð³Ð°Ð°Ð»Ð°Ð³Ð´Ñан Ñ„Ð°Ð¹Ð»Ñ‹Ñ ÑиÑтем" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "Хүчингүй URI" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Файл нÑÑлттÑй биш" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "ÐÑÑÑ… горим хүчингүй" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Хандалт нурлаа" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "Ð¥ÑÑ‚ олон нÑÑлттÑй файл" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "Файлын төгÑгөл" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Лавлах биш" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "ҮйлдÑл Ñвж байна" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "ҮйлдÑл таÑарлаа" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Файл оршин байна" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Цикл Ñ…Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð¸Ð»ÑрлÑÑ" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "ҮйлдÑл зөвшөөрөгдөөгүй" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Лавлах уу" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Хангалтгүй Ñанах ой" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "ХоÑÑ‚ олдÑонгүй" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "ХоÑтын нÑÑ€ хүчингүй" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "ХоÑÑ‚ хаÑггүй байна" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "БүртгÑл бүтÑÑнгүй" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "ҮйлдÑл буцаагдлаа" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Лавлах Ñ…ÑÑ€ÑглÑгдÑж байна" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Лавлах хооÑон биш" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Ð¥ÑÑ‚Ñрхий олон холбооÑ" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "БичихÑÑÑ Ñ…Ð°Ð¼Ð³Ð°Ð°Ð»Ð°Ð³Ð´Ñан файлын ÑиÑтем" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Өөрийнх нь файлын ÑиÑтем дÑÑÑ€ биш" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "ÐÑÑ€ Ñ…ÑÑ‚ урт" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "ҮйлчилгÑÑ Ñ…Ò¯Ñ€ÑÑ… боломжгүй" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Ð¥Ò¯ÑÑлт үйлчилгÑÑний өгөгдлийг хуучирууллаа" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Протоколлын алдаа" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "ЭрхÑм хөтлөгч олдÑонгүй" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Стандарт үйлдÑл холбогдоогүй б/а." #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "URL Ñхемийн хувьд тодорхойлогч алга" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Тушаалын мөр шинжилж байхад алдаа" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Тушаал ажиллуулахад алдаа" # GNOME_VFS_ERROR_TIMEOUT #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "Хугацаа Ñ…ÑÑ‚ÑрлÑÑ" # GNOME_VFS_ERROR_NAMESERVER #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 msgid "Nameserver error" msgstr "ÐÑрний Ñерверийн алдаа" # GNOME_VFS_ERROR_LOCKED #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "Ðөөц түгжигдÑÑн" # GNOME_VFS_ERROR_DEPRECATED_FUNCTION #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "Функцийн дуудалт буруу" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Тодорхойгүй алдаа" #: libgnomevfs/gnome-vfs-utils.c:85 #, fuzzy, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u байт" msgstr[1] "%u байт" #: libgnomevfs/gnome-vfs-utils.c:91 #, c-format msgid "%.1f KB" msgstr "%.1f КБ" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f МБ" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f ГБ" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (хүчингүй юникод)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "УÑн диÑк" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 #, fuzzy msgid "CD-R" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 #, fuzzy msgid "CD-RW" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 #, fuzzy msgid "DVD-ROM" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 #, fuzzy msgid "DVD-RAM" msgstr "DVD-RAM ДиÑк" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 #, fuzzy msgid "DVD-R" msgstr "DVD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 #, fuzzy msgid "DVD-RW" msgstr "DVD-RW ДиÑк" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 #, fuzzy msgid "CD-ROM/DVD-ROM" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 #, fuzzy msgid "CD-ROM/DVD-RAM" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 #, fuzzy msgid "CD-ROM/DVD-R" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 #, fuzzy msgid "CD-ROM/DVD-RW" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #, fuzzy msgid "CD-R/DVD-ROM" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 #, fuzzy msgid "CD-RW/DVD-ROM" msgstr "КД-РОМ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 #, fuzzy msgid "USB Drive" msgstr "Зип хөтлөгч" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 #, fuzzy msgid "SD/MMC" msgstr "SD/MMC зөөвөрлөгч" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "Мемори Ñтек" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 #, fuzzy msgid "Smart Media" msgstr "Смарт Медиа зөөвөрлөгч" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "Зип хөтлөгч" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Камер" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "DVD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "ҮндÑÑн өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "Дууны КД" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 msgid "Unknown volume" msgstr "Тодорхойгүй өгөгдөл хадгалагч" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "СүлжÑÑний Ñервер" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "УÑн диÑк хөтлөгчийг залгах боломжгүй. Хөтлөгчид магад диÑк алга." #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Өгөгдөл хадгалагчийг залгах боломжгүй. Төхөөрөмжид өгөгдөл хадгалагч алга." #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "УÑн диÑк хөтлөгчийг залгах боломжгүй. УÑн диÑк магад залгагдах нөхцөлгүй " "Ñ…ÑлбÑрт байна." #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "СонгоÑон өгөгдөл хадгалагчийг залгах боломжгүй. Магад өгөгдөл хадгалагч " "залгагдах нөхцөлгүй Ñ…ÑлбÑрт байна." #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "СонгоÑон уÑн диÑк хөтлөгчийг залгах боломжгүй." #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "СонгоÑон өгөгдөл хадгалагчийг залгах боломжгүй." #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "СонгоÑон өгөгдөл хадгалагчийг Ñалгах боломжгүй." #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "Тушаалыг Ñхлүүлж чадÑангүй" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "ДиÑкийг түлхÑÑ… боломжгүй" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "Холбоотой Ñерверийг Ñалгах боломжгүй" #: modules/computer-method.c:545 msgid "Network" msgstr "СүлжÑÑ" #: modules/computer-method.c:563 msgid "Home" msgstr "ГÑÑ€" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "Файл ÑиÑтем" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Тодорхойгүй GNOMEVFSSeekPosition %d" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "Ð’Ð¸Ð½Ð´Ð¾Ð²Ñ Ð¡Ò¯Ð»Ð¶ÑÑ" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ÐлÑын компьютерын (%s) таних Ñ‚ÑмдÑг мÑдÑгдÑÑнгүй." #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Та анх удаа компьютер луу нÑвтрÑÑ…Ñд ÑÐ½Ñ Ð³Ð°Ñ€Ð½Ð°.\n" "\n" "ÐлÑын ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð°Ð°Ñ Ð¸Ð»Ð³ÑÑÑÑн Ñ‚ÑмдÑг %s байна. Ð¥ÑÑ€Ñв та бүрÑн итгÑлтÑй байвал " "ÑиÑтемийн удирдагчдаа мÑдÑгдÑÑд цааш үргÑлжлүүлÑÑ…Ñд Ñмар ч аюулгүй." #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "Яаж ийгÑÑд нÑвтÑÑ€" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "ÐÑвтрÑÑ…ÑÑ Ð±Ð¾Ð»ÑŒÐµ" # CHECK #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "ХүчинтÑй тохируулгын файл %s -д олдÑонгүй\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Ó¨Ó©Ñ€ байрлал тодорхойлохын тулд %s орчины хувьÑагч Ñ…ÑÑ€ÑглÑÐ½Ñ Ò¯Ò¯.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Стандарт-Moniker-ҮйлдвÑÑ€" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "Файл MonikerExtender" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "Ерөнхий GNOME-VFS-Moniker" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "Ерөнхий файл мoniker" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Стандарт бүрÑлдÑхүүн харагч програм" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Стандарт терминал програм" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Стандарт терминалын хувьд аргументыг гүйцÑтгÑ" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Харуулах бүрÑлдÑхүүн шаардлагатай файлууд харуулахад Ñ…ÑÑ€ÑглÑгдÑÑ… програм. %s " "параметр файлын хаÑгаар, %c параметр бүрÑлдÑхүүний-IID -Ñ€ орлуулагдана." #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Терминал шаарддаг Ñ…ÑÑ€ÑглÑÑний програмуудад Ñ…ÑÑ€ÑглÑгдÑÑ… Ñтандарт терминал " "програм." #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Стандарт терминалын хувьд гүйцÑтгÑÑ… аргумент." #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Програмыг терминалд ажиллуулах" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"aim\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"callto\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"ghelp\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 #, fuzzy msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол H323 URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 #, fuzzy msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"ghelp\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 #, fuzzy msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"trash\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"info\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"mailto\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"man\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол \"trash\" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URLs тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLs-н тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLs тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 #, fuzzy msgid "The handler for \"h323\" URLs" msgstr "H323 URLs-н тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 #, fuzzy msgid "The handler for \"http\" URLs" msgstr "\"ghelp\" URLs тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 #, fuzzy msgid "The handler for \"https\" URLs" msgstr "\"ghelp\" URLs тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URLs тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLs-н тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URLs тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLs тодорхойлогч" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, програмд \"aim\" URLs-н тодорхойлогчийг »command« -д " "өгнө." #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"callto\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"ghelp\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр H323 URLs-г авч үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"ghelp\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 #, fuzzy msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"ghelp\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"info\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"mailto\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"man\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр \"trash\" URLs-г авч " "үзÑхийгзаана." #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад " "Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "СонгоÑон тушаал \"aim\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "СонгоÑон тушаал \"callto\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "СонгоÑон тушаал \"ghelp\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 #, fuzzy msgid "Whether the specified command should handle \"h323\" URLs" msgstr "СонгоÑон тушаал H323 URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 #, fuzzy msgid "Whether the specified command should handle \"http\" URLs" msgstr "СонгоÑон тушаал \"ghelp\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 #, fuzzy msgid "Whether the specified command should handle \"https\" URLs" msgstr "СонгоÑон тушаал \"trash\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "СонгоÑон тушаал \"info\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "СонгоÑон тушаал \"mailto\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "СонгоÑон тушаал \"man\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "СонгоÑон тушаал \"trash\" URLs-г авч үзÑÑ… ÑÑÑÑ…" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" "СүлжÑÑний барлал үзүүлÑгч dns-sd домайны таÑлалаар туÑгаарлагдÑан жагÑаалт." #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "Дараахад dns-sd ÑÐµÑ€Ð²Ð¸Ñ Ñ‚ÑƒÑгай домайнууд хайх" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Яаж локал DNS-SD ÑервиÑийг харуулах вÑ" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Боломжит утгууд \"merged\", \"separate\" ба \"disabled\"." #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "ИтгÑмжилÑгч Ñервер холболтыг батал" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ИтгÑмжилÑгч Ñерверийн автомат тохиргоо хаÑг." #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "HTTP-Ñ€ интернÑÑ‚ Ñ€Ò¯Ò¯ хандахад итгÑмжилÑгчийн тохиргоог нÑÑÑ…" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTPитгÑмжилÑгч хоÑÑ‚ нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP итгÑмжилÑгчийн порт" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP итгÑмжилÑгч хоÑтын нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP итгÑмжилÑгчийн нууц үг" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP итгÑмжилÑгчийн порт" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP итгÑмжилÑгчийн Ñ…ÑÑ€ÑглÑгчийн нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:10 #, fuzzy msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ð¥ÑÑ€Ñв үнÑн бол итгÑлжилÑгч Ñервер лүү холбогдоход батламж Ñ…ÑÑ€ÑглÑнÑ. " "Ð¥ÑÑ€ÑглÑгчийн нÑÑ€/нууц үгÑнд \"/system/http_proxy/authentication_user\" ба \"/" "system/http_proxy/authentication_password\" утгууд Ñ…ÑÑ€ÑглÑгдÑнÑ." #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ИтгÑмжилÑгчгүй хоÑÑ‚" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP итгÑмжилÑл хийх үеийн батламжийн нууц үг." #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "ИтгÑмжилÑгч тохируулах горим" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS ИтгÑмжилÑгчийн хоÑтын нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS итгÑмжилÑгчийн порт" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Хамгаалалттай HTTP итгÑмжилÑгчийн хоÑÑ‚ нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Хамгаалалттай HTTP итгÑмжилÑгчийн порт" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Хамгаалалттай итгÑмжилÑгчийн тохируулах горим. Боломжит утгууд \"none\", " "\"manual\", \"auto\"." #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "ИтгÑмжилÑгч FTP -н машины нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "ИтгÑмжилÑгч HTTP-н машины нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "ИтгÑмжилÑгч хамгаалалттай HTTP-н машины нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "ИтгÑмжилÑгч socks-н машины нÑÑ€" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "ИтгÑмжилÑгч порт \"/system/http_proxy/host\" гÑж тодорхойлогдÑон хоÑÑ‚" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "ИтгÑмжилÑгч порт \"/system/proxy/ftp_host\" гÑж тодорхойлогдÑон хоÑÑ‚" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "ИтгÑмжилÑгч порт \"/system/proxy/secure_host\" гÑж тодорхойлогдÑон хоÑÑ‚" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "ИтгÑмжилÑгч порт \"/system/proxy/socks_host\" гÑж тодорхойлогдÑон хоÑÑ‚" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ итгÑмжилÑгчÑÑÑ€ биш (идÑвхитÑй үед) шууд холболт хийгдÑÑ… Ñ‘Ñтой " "хоÑтуудын жагÑаалтыг агуулна. Утгууд нь ХоÑтын нÑÑ€, Домайн (Wildcard, ж.нь *." "foo.mn), ХоÑтын IP-хаÑг (түүнчилÑн IPv4 ба IPv6) болон ÑүлжÑÑний маÑктай " "ÑүлжÑÑний хаÑгууд (192.168.0.0/24 Ñ…ÑлбÑртÑй) байна." #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "ИтгÑмжилÑгчийн тохиргоог нийлүүлÑÑ… утгын хаÑг" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "HTTP итгÑмжилÑгч Ñ…ÑÑ€ÑглÑÑ…" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP итгÑмжилÑл хийж байхад бататгах Ñ…ÑÑ€ÑглÑгчийн нÑÑ€" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB ажлын Ñ…ÑÑÑг" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "Цонхны ажлын Ñ…ÑÑгийн Ñ…ÑÑ€ÑглÑгч бол:" #, fuzzy #~ msgid "CD-ROM Disc" #~ msgstr "CD-R диÑк" #~ msgid "Blank CD-R Disc" #~ msgstr "ХооÑон CD-R диÑк" #~ msgid "CD-R Disc" #~ msgstr "CD-R диÑк" #~ msgid "Blank CD-RW Disc" #~ msgstr "ХооÑон CD-RW диÑк" #~ msgid "CD-RW Disc" #~ msgstr "CD-RW диÑк" #~ msgid "DVD-ROM Disc" #~ msgstr "DVD-ROM диÑк" #~ msgid "Blank DVD-R Disc" #~ msgstr "ХооÑон DVD-R диÑк" #~ msgid "DVD-R Disc" #~ msgstr "DVD-R ДиÑк" #~ msgid "Blank DVD-RAM Disc" #~ msgstr "ХооÑон DVD-RAM диÑк" #~ msgid "DVD-RAM Disc" #~ msgstr "DVD-RAM ДиÑк" #~ msgid "Blank DVD-RW Disc" #~ msgstr "ХооÑон DVD-RW диÑк" #~ msgid "DVD-RW Disc" #~ msgstr "DVD-RW ДиÑк" #~ msgid "Blank DVD+RW Disc" #~ msgstr "ХооÑон DVD+RW диÑк" #~ msgid "DVD+RW Disc" #~ msgstr "DVD+RW ДиÑк" #~ msgid "Blank DVD+R Disc" #~ msgstr "ХооÑон DVD+R ДиÑк" #~ msgid "DVD+R Disc" #~ msgstr "DVD+R ДиÑк" #~ msgid "Optical Disc" #~ msgstr "Оптик ДиÑк" #~ msgid "Audio Disc" #~ msgstr "Дууны диÑк" #~ msgid "Compact Flash Media" #~ msgstr "Компакт Флаш зөөвөрлөгч" #~ msgid "Memory Stick Media" #~ msgstr "Мемори Ñтек зөөвөрлөгч" #~ msgid "Smart Media Media" #~ msgstr "Смарт Медиа зөөвөрлөгч" #~ msgid "SD/MMC Media" #~ msgstr "SD/MMC зөөвөрлөгч" #~ msgid "Floppy Disk" #~ msgstr "УÑн диÑк" #~ msgid "Mac OS disk" #~ msgstr "Mac OS диÑк" #~ msgid "Mac OS X disk" #~ msgstr "Mac OS X диÑк" #~ msgid "Windows Disk" #~ msgstr "Ð’Ð¸Ð½Ð´Ð¾Ð²Ñ Ð´Ð¸Ñк" #~ msgid "Linux Disk" #~ msgstr "Ð›Ð¸Ð½ÑƒÐºÑ Ð´Ð¸Ñк" #~ msgid "File could not be opened: %s" #~ msgstr "Файл нÑÑгдÑÑ… боломжгүй: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "'%s' файлыг нÑÑж чадÑангүй: %s" #~ msgid "File is empty" #~ msgstr "Файл хооÑон байна" #~ msgid "Failed to read from file '%s': %s" #~ msgstr "'%s' Ñ„Ð°Ð¹Ð»Ð°Ð°Ñ ÑƒÐ½ÑˆÐ¸Ð¶ чадÑангүй: %s" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "Тавцангийн Ñлементүүд бичлÑг, бүлÑг, тайлбар ч байхгүй '%s' мөр агуулж " #~ "байна" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "Тавцангийн Ñлементүүдийн файл Ñнгийн бүлгÑÑÑ€ ÑхлÑхгүй" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "Тавцангийн Ñлементүүд ЮТФ-8 биш '%s' мөр агуулж байна" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "Тавцангийн Ñлементүүд танигдахгүй '%s' кодчилол агуулж байна" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "Тавцангийн ÑлементүүдÑд '%s' бүлÑг алга" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "Тавцангийн ÑлементүүдÑд '%s' түлхүүр алга" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "Тавцангийн Ñлементүүд хөрвөх боломжгүй утгатай '%s' түлхүүр агуулж байна." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "Тавцангийн Ñлементүүд '%s' түлхүүрийн хувьд орчуулагдаагүй утгатай " #~ "түлхүүр '%s' локал дÑÑÑ€ агуулж байна." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "Тавцангийн Ñлементүүд хүчингүй '%s' буцах дараалал агуулж байна" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "Тавцангийн Ñлементүүд мөрийн төгÑгөлдөө escape Ñ‚ÑмдÑгт агуулж байна" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "'%s' утга тоогоор хөрвөх боломжгүй." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "'%s' утга бүүл утгаар хөрвөх боломжгүй." #~ msgid "Applications" #~ msgstr "Ð¥.програмууд" #~ msgid "Cards" #~ msgstr "Карт" #~ msgid "Files" #~ msgstr "Файлууд" #~ msgid "Folders" #~ msgstr "Лавлахууд" #~ msgid "Help" #~ msgstr "ТуÑламж" #~ msgid "Hosts" #~ msgstr "ХоÑÑ‚" #~ msgid "Links" #~ msgstr "ХолбооÑууд" #~ msgid "Mail" #~ msgstr "Э-захиа" #~ msgid "Tools" #~ msgstr "Ð¥ÑÑ€ÑгÑÑÑл" #~ msgid "Windows" #~ msgstr "Цонхнууд" #~ msgid "CD Disc" #~ msgstr "CD ДиÑк" #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол HTTP URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол HTTPS URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ." #~ msgid "The handler for HTTP URLs" #~ msgstr " HTTP URLs-н тодорхойлогч" #~ msgid "The handler for HTTPS URLs" #~ msgstr "HTTPS URLs-н тодорхойлогч" #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр HTTP URLs-г авч " #~ "үзÑхийгзаана." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр HTTPS URLs-г авч " #~ "үзÑхийгзаана." #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "СонгоÑон тушаал HTTP URLs-г авч үзÑÑ… ÑÑÑÑ…" #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "СонгоÑон тушаал HTTPS URLs-г авч үзÑÑ… ÑÑÑÑ…" gnome-vfs-2.24.4/po/zh_HK.po0000644000175000001440000013724711354402652012422 00000000000000# Chinese (Hong Kong) translation of gnome-vfs. # Copyright (C) 2001, 02, 03, 04, 05 Free Software Foundation, Inc. # Joe Man , 2001. # Woodman Tuen , 2004 # Li-Jen Hsin , 2004 # Chao-Hsiung Liao , 2005 # Abel Cheung , 2002-2003, 2005. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.24.e\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-10 05:58+0800\n" "PO-Revision-Date: 2010-02-10 05:58+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Hong Kong) \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660 檔案系統" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u 䏭嫿œ‰ NUL 字符。" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u 中沒有 method å稱。" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u 沒有é¸é …çµæŸæ¨™è¨˜ã€‚" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u æœ‰ä¸æ˜Žçš„é¸é … %s。" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u 中沒有模組å稱。" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "找ä¸åˆ°è¨­å®šæª”‘%s’:%s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d åœæ­¢åˆ†æžå…§å®¹ã€‚" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFFS 網絡檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "è‡ªå‹•åµæ¸¬æª”案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "光碟機" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD 數碼音樂" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "硬件è£ç½®æª”案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "光碟檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs 光碟檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "系統檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "記憶體檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS 網絡檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Windows 共享檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "暫時檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "增強型 DOS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS 檔案系統" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "䏿˜Ž" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s 檔案系統" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "軟碟機" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Memory Stick ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "隨身碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s 音樂播放器" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s 數碼相機" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "外接的 %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "空白 CD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "空白 CD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "空白 DVD-RAM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "空白 DVD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "空白 DVD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "空白 DVD+R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "空白 DVD+RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW 光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "音樂光碟" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s 坿”œè£ç½®" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "è£ç½®" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "䏿˜Žçš„æ“ä½œé¡žåž‹ %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "無法建立用以開啟 GIOChannel çš„ pipe:%s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "䏿˜Žçš„工作類型 %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "æ“ä½œå·²åœæ­¢" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "本功能已ä¸å†ä½¿ç”¨ã€‚ç¾åœ¨å·²ä¸å†æ”¯æ´è®“使用者直接修改 MIME 資料庫。" #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "無法解æžï¼š%s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "將會忽略更多的解æžéŒ¯èª¤ã€‚" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "沒有錯誤" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "找ä¸åˆ°æª”案" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "一般錯誤" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "內部的錯誤" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ç„¡æ•ˆçš„åƒæ•¸" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "䏿”¯æ´çš„æ“ä½œ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O 錯誤" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "資料已æå£ž" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "æ ¼å¼ç„¡æ•ˆ" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "錯誤的 file handle" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "檔案éŽå¤§" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "儲存設備沒有剩餘空間" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "唯讀的檔案系統" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "無效的 URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "檔案沒有開啟" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "開啟模å¼ç„¡æ•ˆ" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "å­˜å–被拒" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "已開啟的檔案太多" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "å·²åˆ°é”æª”案的末端" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "䏿˜¯ä¸€å€‹ç›®éŒ„" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "æ“作程åºé€²è¡Œä¸­" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "æ“作程åºè¢«ä¸­æ–·" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "檔案已存在" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "é‡ä¸Šå¾ªç’°çš„連çµ" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ä¸å…許的æ“作程åº" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "是目錄" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "記憶體ä¸è¶³" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "找ä¸åˆ°ä¸»æ©Ÿ" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "主機å稱無效" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "主機沒有地å€" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "登入失敗" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "æ“作程åºå·²å–消" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "目錄正在忙碌處ç†è³‡æ–™" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "ç›®éŒ„ä¸æ˜¯ç©ºçš„" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "連çµéŽå¤š" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "唯讀的檔案系統" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "䏿˜¯åœ¨ç›¸åŒçš„æª”案系統內" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "å稱éŽé•·" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "無法æä¾›æœå‹™" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "è¦æ±‚æŸäº›å·²éŽæ™‚æœå‹™çš„資料" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "通訊å”定錯誤" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "找ä¸åˆ°ä¸»ç€è¦½å™¨" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "沒有é è¨­çš„è™•ç†æ–¹å¼" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "沒有該類 URL 的處ç†ç¨‹åº" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "è§£æžæŒ‡ä»¤æ™‚出ç¾éŒ¯èª¤" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "啟動指令時出ç¾éŒ¯èª¤" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "逾時" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "主機å稱伺æœå™¨éŒ¯èª¤" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "資æºè¢«éŽ–ä½äº†" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "å‡½æ•¸å·²ç¶“éŽæ™‚了" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "無效的檔案å稱" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "䏿˜¯ç¬¦è™Ÿé€£çµ" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "䏿˜Žçš„錯誤" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ä½å…ƒçµ„" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(無效的è¬åœ‹ç¢¼ï¼‰" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "軟碟" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ç£ç¢Ÿ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 ç£ç¢Ÿæ©Ÿ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "照相機" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Root 檔案系統" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "音樂 CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "䏿˜Žçš„æª”案系統" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "網絡伺æœå™¨" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "無法è£è¼‰è»Ÿç¢Ÿæ©Ÿã€‚å¯èƒ½è»Ÿç¢Ÿæ©Ÿå…§ä¸¦æ²’有ç£ç‰‡ã€‚" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "無法è£è¼‰æª”案系統。å¯èƒ½è£ç½®ä¸­æ²’有任何媒體。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "無法è£è¼‰è»Ÿç¢Ÿæ©Ÿã€‚å¯èƒ½è»Ÿç¢Ÿæ©Ÿæ‰€ä½¿ç”¨çš„æ ¼å¼ä¸èƒ½è¢«è£è¼‰ã€‚" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "無法è£è¼‰æª”æ¡ˆç³»çµ±ã€‚å¦‚æžœé€™æ˜¯å€‹å·²åŠ å¯†çš„æª”æ¡ˆç³»çµ±ï¼Œå³æ˜¯è¡¨ç¤ºå¯†ç¢¼æˆ–密碼匙錯誤。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "無法è£è¼‰å·²é¸çš„æª”案系統。å¯èƒ½è©²æª”案系統的所使用的格å¼ä¸èƒ½è£è¼‰ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "無法è£è¼‰å·²é¸çš„軟碟機。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "無法è£è¼‰å·²é¸çš„æª”案系統。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "無法è£è¼‰å·²é¸çš„æª”案系統。å¯èƒ½è©²æª”案系統正在被其它程å¼ä½¿ç”¨ã€‚" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "無法å¸è¼‰å·²é¸çš„æª”案系統。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "無法從å­é€²ç¨‹ %d 讀å–資料 (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "無法在 pty 中è£è¼‰æª”案系統" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "ç•¶ select() 從å­ç¨‹åºè®€å–è³‡æ–™æ™‚ç™¼ç”Ÿæœªé æœŸçš„錯誤 (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "無法將密碼é€å…¥è£è¼‰æª”案系統的進程。" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() ç™¼ç”Ÿæœªé æœŸçš„錯誤 (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "指令啟動失敗" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "無法退出媒體" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "無法å¸è¼‰å·²é€£æŽ¥çš„伺æœå™¨" #: ../modules/computer-method.c:543 msgid "Network" msgstr "網絡" #: ../modules/computer-method.c:561 msgid "Home" msgstr "個人資料夾" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "檔案系統" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "䏿˜Žçš„ GnomeVFSSeekPosition (æœå°‹ä½ç½®) %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows 網絡" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "é ç«¯é›»è…¦ (%s) çš„èº«åˆ†ä¸æ˜Žã€‚" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "當你首次登入一å°ä¸»æ©Ÿæ™‚會發生。\n" "\n" "é ç«¯ä¸»æ©Ÿå‚³é€ä¾†çš„身分為 %s。若你肯定繼續使用是安全的,請與系統管ç†è€…接洽。" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "強制登入" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "å–æ¶ˆç™»å…¥" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "在 %s 中找ä¸åˆ°æœ‰æ•ˆçš„設定檔\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "使用 %s 環境變數來指定å¦ä¸€å€‹ä½ç½®ã€‚\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "ä½ çš„ HTTP 代ç†ä¼ºæœå™¨è¦æ±‚你登入。\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "你必須登入方å¯å­˜å–“%sâ€ã€‚\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "你的密碼會以沒有加密的方å¼å‚³é€ã€‚" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "你的密碼會以加密的方å¼å‚³é€ã€‚" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "你必須登入方å¯å­˜å– %s (網域 %s)\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "你必須登入方å¯å­˜å– %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "é è¨­çš„元件檢視程å¼" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "é è¨­çš„終端機" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "é è¨­çµ‚端機的 Exec åƒæ•¸" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "æœ‰äº›æª”æ¡ˆéœ€è¦æœ‰ä¸€å€‹å…ƒä»¶ä¾†æª¢è¦–å®ƒå€‘ï¼Œé€™è£æŒ‡å®šæª¢è¦–所用的程å¼ã€‚åƒæ•¸ %s 會被檔案的 URI 所å–ä»£ï¼Œåƒæ•¸ %c 會被元件 IID 所å–代。" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "應用程å¼éœ€è¦ä½¿ç”¨çµ‚端機時,é è¨­åŸ·è¡Œçš„終端機。" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "é è¨­çµ‚端機所使用的 exec åƒæ•¸ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "在終端機中執行指令" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œaimâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œcalltoâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œghelpâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œh323â€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œhttpâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œhttpsâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œinfoâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œmailtoâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œmanâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "若有啟用,用來處ç†â€œtrashâ€URL 的指令。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "沒有處ç†â€œaimâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "處ç†â€œcalltoâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "處ç†â€œghelpâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "處ç†â€œh323â€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "處ç†â€œhttpâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "處ç†â€œhttpsâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "處ç†â€œinfoâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "處ç†â€œmailtoâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "處ç†â€œmanâ€URL 的處ç†ç¨‹åº" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "處ç†â€œtrashâ€URL 的處ç†ç¨‹åº" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œaimã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)中的指令為處ç†ã€Œcalltoã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œghelpã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œh323ã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpsã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œinfoã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmailtoã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmanã€URL 的程å¼ã€‚" # (pofilter) gconf: do not translate gconf attribute: "command" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œtrashã€URL 的程å¼ã€‚" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "指定的指令應å¦è™•ç†â€œaimâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "指定的指令應å¦è™•ç†â€œcalltoâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "指定的指令應å¦è™•ç†â€œghelpâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "指定的指令應å¦è™•ç†â€œh323â€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "指定的指令應å¦è™•ç†â€œhttpâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "指定的指令應å¦è™•ç†â€œhttpsâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "指定的指令應å¦è™•ç†â€œinfoâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "指定的指令應å¦è™•ç†â€œmailtoâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "指定的指令應å¦è™•ç†â€œmanâ€URL" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "指定的指令應å¦è™•ç†â€œtrashâ€URL" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "在“network:///â€ä½ç½®ä¸­é¡¯ç¤ºçš„ DNS-SD 網域清單,以逗號隔開。" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "找尋 DNS-SD æœå‹™çš„é¡å¤–網域" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "如何顯示本地端的 DNS-SD æœå‹™" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "å¯èƒ½å€¼ç‚ºâ€œmergedâ€,“separateâ€ä»¥åŠâ€œdisabledâ€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "驗證代ç†ä¼ºæœå™¨é€£ç·š" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "自動代ç†ä¼ºæœå™¨çµ„æ…‹ç¶²å€" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "經互è¯ç¶²å­˜å– HTTP 時啟用代ç†ä¼ºæœå™¨è¨­å®šã€‚" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP 代ç†ä¼ºæœå™¨åŸ è™Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP 代ç†ä¼ºæœå™¨å¯†ç¢¼" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ " #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP 代ç†ä¼ºæœå™¨ä½¿ç”¨è€…å稱" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "如設定為“trueâ€ï¼Œé‚£éº¼é€£æŽ¥åˆ°ä»£ç†ä¼ºæœå™¨æ™‚需è¦èªè­‰ã€‚使用者/密碼的組åˆåœ¨\n" "“/system/http_proxy/authentication_userâ€å’Œâ€œ/system/http_proxy/authentication_passwordâ€ä¸­è¨­å®šã€‚" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "ä¸ä½¿ç”¨ä»£ç†ä¼ºæœå™¨çš„主機" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "使用 HTTP 代ç†ä¼ºæœå™¨æ™‚進行èªè­‰çš„密碼。" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "代ç†ä¼ºæœå™¨çµ„態模å¼" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ " #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ " #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "鏿“‡ä»£ç†ä¼ºæœå™¨è¨­ç½®æ¨¡å¼ã€‚支æ´çš„值有“noneâ€ã€â€œmanualâ€ã€â€œautoâ€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "ç”¨åœ¨å®‰å…¨å¼ HTTP 的代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "socks 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "在“/system/http_proxy/host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "在“/system/proxy/ftp_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "在“/system/proxy/secure_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "在“/system/proxy/socks_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "這個éµå€¼åŒ…å«äº†è¦ç›´æŽ¥é€£ç·šï¼Œä¸é€éŽä»£ç†ä¼ºæœå™¨ï¼ˆå¦‚果有使用)的主機。數值å¯ä»¥ç‚ºä¸»æ©Ÿå稱ã€ç¶²åŸŸï¼ˆé–‹é ­ä½¿ç”¨è¬ç”¨å­—符如 *.foo.com)ã€IP ä½å€ï¼ˆIPv4 å’Œ IPv6 皆å¯ï¼‰æˆ–帶有å­ç¶²çµ¡é®ç½©çš„ä½å€ï¼ˆåƒæ˜¯ 192.168.0.0/24)。" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "æä¾›ä»£ç†ä¼ºæœå™¨çµ„態的網å€ã€‚" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "使用 HTTP 代ç†ä¼ºæœå™¨" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "使用 HTTP 代ç†ä¼ºæœå™¨æ™‚用來驗證的使用者å稱。" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB 工作羣組" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "使用者所屬的 Windows 網絡羣組或網域。新的羣組å¯èƒ½è¦ç­‰ä½¿ç”¨è€…å†ç™»å…¥å¾Œæ‰èƒ½å®Œå…¨ç”Ÿæ•ˆï¼Œ" #~ msgid "Could not initialize Bonobo" #~ msgstr "Bonobo 無法åˆå§‹åŒ–" #~ msgid "Could not initialize gnome vfs" #~ msgstr "gnome vfs 無法åˆå§‹åŒ–" #~ msgid "Server certificate was missing commonName attribute in subject name" #~ msgstr "伺æœå™¨æ†‘證的 subject 欄ä½ç¼ºå°‘了 commonName 屬性" #~ msgid "SSL negotiation failed: %s" #~ msgstr "SSL å”議失敗:%s" #~ msgid "Server did not send certificate chain" #~ msgstr "伺æœå™¨æ²’有é€å‡ºä¸­ç¹¼æ†‘è­‰ (chain certificate)" #~ msgid "Response exceeds maximum property count" #~ msgstr "回應資料的屬性數目超éŽä¸Šé™" #~ msgid "Could not parse response: %s" #~ msgstr "無法解æžå›žæ‡‰è³‡æ–™ï¼š%s" #~ msgid "Standard Moniker factory" #~ msgstr "標準 Moniker 工廠" #~ msgid "file MonikerExtender" #~ msgstr "檔案 MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "一般的 GNOME VFS moniker" #~ msgid "generic file moniker" #~ msgstr "一般的 file moniker" #~ msgid "Display SCSI drives" #~ msgstr "顯示 SCSI 硬碟" #~ msgid "Display SCSI optical drives" #~ msgstr "顯示 SCSI 光碟機" #~ msgid "Display drives with removable media" #~ msgstr "é¡¯ç¤ºå¯æŠ½å–å¼ç£ç¢Ÿ" #~ msgid "Display external drives" #~ msgstr "顯示外置硬碟" #~ msgid "Display internal hard drives" #~ msgstr "顯示內置硬碟" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "è‹¥ /system/storage/display_scsi_drives 設定為「FALSEã€æ™‚,是å¦é¡¯ç¤º SCSI å…‰" #~ "碟機。" #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "是å¦é¡¯ç¤º SCSI 硬碟åŠå…¶å¯è£è¼‰çš„æª”案系統。" #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "是å¦é¡¯ç¤ºå¯æŠ½å–å¼ç£ç¢ŸåŠå…¶å¯è£è¼‰çš„æª”案系統。(例如:å¯ä»¥æ’å…¥åŠç§»é™¤åª’體的硬" #~ "碟)。" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "是å¦é¡¯ç¤ºå¤–置硬碟åŠå…¶å¯è£è¼‰çš„æª”æ¡ˆç³»çµ±ã€‚ï¼ˆä¾‹å¦‚ï¼šç†±æ’æ‹”å¼ç¡¬ç¢Ÿï¼›ç³»çµ±æ­£åœ¨é‹è¡Œæ™‚" #~ "å¯ä»¥æ’å…¥ã€æ‹”出的è£ç½®ï¼‰ã€‚" #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "是å¦é¡¯ç¤ºå…§ç½®ç¡¬ç¢ŸåŠå…¶å¯è£è¼‰çš„æª”æ¡ˆç³»çµ±ã€‚ï¼ˆéž SCSI 光碟也會顯示)。" gnome-vfs-2.24.4/po/mai.po0000644000175000001440000016347211334251016012156 00000000000000# translation of gnome-vfs.HEAD.po to Maithili # Copyright (C) 2006 The GNOME Foundation # This file is distributed under the same license as the PACKAGE package. # BOSS GNU/Linux , 2008. msgid "" msgstr "" "Project-Id-Version: gedit.HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-08-19 13:02+0000\n" "PO-Revision-Date: 2008-01-25 13:49+0530\n" "Last-Translator: Sangeeta Kumari\n" "Language-Team: \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" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "आईà¤à¤¸à¤“ 9660 वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u मे रिकà¥à¤¤ संपà¥à¤°à¤¤à¥€à¤• अछि." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u मे कोनो विधि नाम नहि अछि." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u मे à¤à¤£à¥à¤¡-मारà¥à¤•र विकलà¥à¤ª नहि अछि." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u मे अजà¥à¤žà¤¾à¤¤ विकलà¥à¤ª अछि %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u मे कोनो मोडà¥à¤¯à¥‚ल नाम नहि अछि." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "बिनà¥à¤¯à¤¾à¤¸ फाइल '%s' नहि मिलल: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d विशà¥à¤²à¥‡à¤·à¤£ विफल." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "à¤à¤à¤«à¤à¤«à¤à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "à¤à¤à¤«à¤à¤¸ नेटवरà¥à¤• वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पता लगाà¤à¤² गेल वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "सीडी-रोम डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "सीडी डिज़िटल आडिओ" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "हारà¥à¤¡à¤µà¥‡à¤¯à¤° अओजार वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "ईà¤à¤•à¥à¤¸à¤Ÿà¥€2 लाइनेकà¥à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "ईà¤à¤•à¥à¤¸à¤Ÿà¥€3 लाइनेकà¥à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "à¤à¤®à¤à¤¸-डास वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "मैक-ओà¤à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "सीडी-रोम वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "à¤à¤šà¤à¤¸à¤à¤«à¤à¤¸ सीडीरोम वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "जेà¤à¤«à¤à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "विनà¥à¤¡à¥‹à¤œà¤¼ à¤à¤¨à¤Ÿà¥€ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "सिसà¥à¤Ÿà¤® वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "मेमोरी वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "मिनिकà¥à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "à¤à¤¨à¤à¤«à¤à¤¸ नेटवरà¥à¤• वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "नेटवेयर वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "रेइजर-à¤à¤«à¤à¤¸ लाइनेकà¥à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "विनà¥à¤¡à¥‹à¤œ शेयरà¥à¤¡ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "सà¥à¤ªà¤°-माउणà¥à¤Ÿ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "डीवीडी वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "सोलारिस/बीà¤à¤¸à¤¡à¥€ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "यूडीà¤à¤«à¤à¤¸ सोलारिस वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "पीसीà¤à¤«à¤à¤¸ सोलारिस वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "असà¥à¤¥à¤¾à¤¯à¥€ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "à¤à¤¨à¤¹à¥ˆà¤‚सà¥à¤¡ डॉस वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "विनà¥à¤¡à¥‹à¤œà¤¼ वीà¤à¤«à¤¼à¤à¤Ÿà¥€ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "जेनिकà¥à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "à¤à¤•à¥à¤¸à¤à¤«à¤à¤¸ लाइनेकà¥à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "à¤à¤•à¥à¤¸à¤†à¤ˆà¤à¤«à¤à¤¸ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "अजà¥à¤žà¤¾à¤¤" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "सीडी-रोम" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "सीडी-आर" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "सीडी-आरडबà¥à¤²à¥à¤¯à¥‚" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "डीवीडी-रोम" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "डीवीडी-आर" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "डीवीडी-आरडबलà¥à¤¯à¥‚" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "डीवीडी-रैम" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s चालन" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s चालन" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "फà¥à¤²à¥‹à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "संकà¥à¤šà¤¿à¤¤ फà¥à¤²à¥ˆà¤¶ चालन" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "मेमोरी सà¥à¤Ÿà¤¿à¤• चालन" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "चतà¥à¤° मीडिया चालन" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC चालन" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ज़िप डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ज़िप डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "पेन डà¥à¤°à¤¾à¤‡à¤µ" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s मà¥à¤¯à¥‚जिक पà¥à¤²à¥‡à¤¯à¤°" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s डिजिटल कैमरा" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "चालन" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "बाहरी %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "सीडी-रोम डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "खाली CD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "खाली CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "खाली DVD-RAM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "खाली DVD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "खाली DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "खाली DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "खाली DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "आडिओ डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s विसà¥à¤¥à¤¾à¤ªà¤¨à¥€à¤¯ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "आवाज" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "अजà¥à¤žà¤¾à¤¤ संकà¥à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¤•ार %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "खà¥à¤²à¤² जीआईओ-चैनल लेल पाइप बनाठनहि सकल: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "अजà¥à¤žà¤¾à¤¤ कारà¥à¤¯ पà¥à¤°à¤•ार %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "आपरेशन रोकल गेल" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "पदावनत पà¥à¤°à¤•ारà¥à¤¯. MIME डाटाबेसमे पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ रूपांतरण आब समरà¥à¤¥à¤¿à¤¤ नहि अछि." #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "विशà¥à¤²à¥‡à¤·à¤£ नहि कठसकल: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "आओर बेसी पारसिंग तà¥à¤°à¥à¤Ÿà¤¿à¤¸à¤­à¤•ेठअनदेखा कà¤à¤² जà¤à¤¤à¤¾à¤¹." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "कोनो तà¥à¤°à¥à¤Ÿà¤¿ नहि" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "फाइल नहि मिलल" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "जेनेरिक तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "भितरका तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "अवैध पैरामीटर" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "असमरà¥à¤¥à¤¿à¤¤ आपरेशन" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "आई/ओ तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "आà¤à¤•ड़ा खराब भ' गेल" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "फ़ॉरà¥à¤®à¥‡à¤Ÿ वैध नहि अछि" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "अधलाह फाइल नियंतà¥à¤°à¤£" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "फाइल बेसी पैघ अछि" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "उपकरण पर कोनो सà¥à¤¥à¤¾à¤¨ शेष नहि अछि" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "सिरà¥à¤« पढ़बा योगà¥à¤¯ फाइल सिसà¥à¤Ÿà¤®" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "अवैध यूआरआई" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "फाइल खà¥à¤²à¤² नहि अछि" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "खà¥à¤²à¤² मोड वैध नहि अछि" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "पहà¥à¤à¤š नकारल गेल" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "बहà¥à¤¤ बेसी फाइलसभ खà¥à¤²à¤² अछि" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "फाइल समापà¥à¤¤" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•ा नहि अछि" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "आपरेशन पà¥à¤°à¤—ति पर" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "आपरेशन अवरूदà¥à¤§" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "फाइल मोजà¥à¤¦ अछि" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "लिंकà¥à¤¸ क' लूप भेटल" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "आपरेशनक अनà¥à¤®à¤¤à¤¿ नहि अछि" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ई à¤à¤•टा निरà¥à¤¦à¥‡à¤¶à¤¿à¤•ा अछि" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "परà¥à¤¯à¤¾à¤ªà¥à¤¤ सà¥à¤®à¥ƒà¤¤à¤¿ नहि अछि" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "होसà¥à¤Ÿ नहि मिलल" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "होसà¥à¤Ÿ नाम वैध नहि अछि" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "होसà¥à¤Ÿ क' कोनो पता नहि अछि" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "लागिन असफल" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "आपरेशन रदà¥à¤¦" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•ा वà¥à¤¯à¤¸à¥à¤¤ अछि" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•ा रिकà¥à¤¤ नहि अछि" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "बहà¥à¤¤ बेसी लिंकà¥à¤¸" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "सिरà¥à¤« पढ़बा योगà¥à¤¯ फाइल सिसà¥à¤Ÿà¤®" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ई फाइल सिसà¥à¤Ÿà¤® पर नहि" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "नाम बहà¥à¤¤ नमहर अछि" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "सेवा उपलबà¥à¤§ नहि अछि" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "कालातीत सेवा क' आà¤à¤•ड़ा निवेदित" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ाल तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "मासà¥à¤Ÿà¤° बà¥à¤°à¤¾à¤‰à¤œà¤° ढूà¤à¤¢ नहि सकल" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "कोनो मूलभूत कà¥à¤°à¤¿à¤¯à¤¾ समà¥à¤¬à¤¦à¥à¤§ नहि अछि" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "यूआरà¤à¤² पà¥à¤°à¤¸à¤‚ग लेल कोनो नियà¤à¤¤à¥à¤°à¤£ नहि अछि" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "कमाणà¥à¤¡ लाइन विशà¥à¤²à¥‡à¤·à¤£ करबामे तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "कमाणà¥à¤¡ चलाबैमे तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "समय समापà¥à¤¤ भेल" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "नामसरà¥à¤µà¤° तà¥à¤°à¥à¤Ÿà¤¿" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "संसाधन लाक अछि" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "पà¥à¤°à¤•ारà¥à¤¯ काल पदावनत" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "अवैध फाइलनाम" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "सांकेतिक लिंक नहि" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u बाइट" msgstr[1] "%u बाइट" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f कि.बा." #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f मे.बा." #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f गी.बा." #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(अवैध यूनिकोड)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "फà¥à¤²à¥‹à¤ªà¥€" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "डिसà¥à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB चालन" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394 चालन" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "मेमोरी सà¥à¤Ÿà¤¿à¤•" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "चतà¥à¤° मीडिया" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "कैमरा" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "डीवीडी" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "रूट वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "ऑडियो सीडी" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "अजà¥à¤žà¤¾à¤¤ वालà¥à¤¯à¥‚म" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "नेटवरà¥à¤• सरà¥à¤µà¤°" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "फà¥à¤²à¥‹à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µ माउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®. साइत डà¥à¤°à¤¾à¤‡à¤µà¤®à¥‡ कोनो फà¥à¤²à¥‹à¤ªà¥€ नहि अछि." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "वालà¥à¤¯à¥‚म माउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®. साइत अओजारमे कोनो मीडिया नहि अछि." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "फà¥à¤²à¥‹à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µ माउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®. फà¥à¤²à¥‹à¤ªà¥€ साइत कोनो à¤à¤¹à¤¨ पà¥à¤°à¤¾à¤°à¥‚पमे अछि जकरा माउणà¥à¤Ÿ नहि " "कà¤à¤² जाठसकैत अछि" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "वालà¥à¤¯à¥‚म केठमाउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®. जठई विगोपित चालन अछि तखन गलत कूटशबà¥à¤¦ अथवा कà¥à¤à¤œà¥€ पà¥à¤°à¤¯à¥à¤•à¥à¤¤ " "भेल छला." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "चà¥à¤¨à¤² वालà¥à¤¯à¥‚मकेठमाउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®. वालà¥à¤¯à¥‚म साइत कोनो à¤à¤¹à¤¨ फ़ॉरà¥à¤®à¥‡à¤Ÿà¤®à¥‡ अछि जकरा माउंट नहि " "कà¤à¤² जाठसकैत अछि." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "चà¥à¤¨à¤²à¤•ा फà¥à¤²à¥‹à¤ªà¥€ डà¥à¤°à¤¾à¤‡à¤µà¤•ेठमाउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "चà¥à¤¨à¤²à¤•ा वालà¥à¤¯à¥‚मकेठमाउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "चà¥à¤¨à¤²à¤•ा वालà¥à¤¯à¥‚मकेठमाउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®. वालà¥à¤¯à¥‚म à¤à¤•टासठबेसी पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® क' दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥‹à¤—मे अछि." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "चà¥à¤¨à¤²à¤•ा वालà¥à¤¯à¥‚मकेठअनमाउणà¥à¤Ÿ करबामे अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "%d (%s) चाइलà¥à¤¡ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾à¤¸à¤ पठन आà¤à¤•ड़ामे विफल" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "pty मे आरोह पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ चलाठनहि सकल" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "à¤à¤•टा चाइलà¥à¤¡ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ (%s) सठचà¥à¤¨à¥‡à¤‚() पढ़बाक आà¤à¤•ड़ामे अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆ" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "माउणà¥à¤Ÿ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾à¤®à¥‡ कूटशबà¥à¤¦ नहि भेजि सकल." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid() (%s) मे अपà¥à¤°à¤¤à¥à¤¯à¤¾à¤¶à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¤¿" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "कमाणà¥à¤¡ पà¥à¤°à¤¾à¤°à¤‚भ करबामे असफल" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "मीडिया निकालै मे अकà¥à¤·à¤®." #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "कनेकà¥à¤Ÿà¥‡à¤¡ सरà¥à¤µà¤°à¤•ेठअनमाउनà¥à¤Ÿ करबामे अकà¥à¤·à¤®" #: ../modules/computer-method.c:543 msgid "Network" msgstr "नेटवरà¥à¤•" #: ../modules/computer-method.c:561 msgid "Home" msgstr "घर" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "फ़ाइलसिसà¥à¤Ÿà¤®" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "अजà¥à¤žà¤¾à¤¤ गनोम-वीà¤à¤«à¤à¤¸-सीक-सà¥à¤¥à¤¿à¤¤à¤¿ %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "विंडोज नेटवरà¥à¤•" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "(%s) दूरसà¥à¤¥ कंपà¥à¤¯à¥‚टरक पहचान अनजान अछि." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "ई तखन होइछ जखन पहिल बेर अहाठकंपà¥à¤¯à¥‚टरमे लॉग इन करैत छी.\n" "\n" "दूरसà¥à¤¥ कंपà¥à¤¯à¥‚टरक दà¥à¤µà¤¾à¤°à¤¾ भेजल पहचान %s अछि. जठअहाठजारी रखबाक लेल पूरà¥à¤£ रूपेठसà¥à¤°à¤•à¥à¤·à¤¿à¤¤ " "राखै चाहैत छी, सिसà¥à¤Ÿà¤® पà¥à¤°à¤¶à¤¾à¤¸à¤•केठसंपरà¥à¤• करू." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "कोनो तरह लागिन करू" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "लागिन रदà¥à¤¦ करू" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s पर कोनो वैध बिनà¥à¤¯à¤¾à¤¸ फाइल नहि भेटल\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "भिनà¥à¤¨ सà¥à¤¥à¤¾à¤¨à¤•ेठनिरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करबा लेल %s वातावरण चर क' उपयोग करू \n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "अहाà¤à¤• HTTP पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ अहाà¤à¤• लागिन क' लेल जरूरत महसूस करैत अछि.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "अहाà¤à¤• \"%s\" क' अभिगम क' लेल जरूर लाग कà¤à¤¨à¤¾à¤‡ चाही.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "अहाà¤à¤• कूटशबà¥à¤¦ विगोपित रूपमे भेजल जाà¤à¤¤." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "कूटशबà¥à¤¦ गोपित रूपमे जà¤à¤¤à¤¾à¤¹." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "अहाà¤à¤• %s क' %s डोमेन अभिगम क' लेल जरूर लाग करबा चाही\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "अहाà¤à¤• %s क' अभिगम क' लेल जरूर लाग कà¤à¤¨à¤¾à¤‡ चाही\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "मूलभूत अवयव पà¥à¤°à¤¦à¤°à¥à¤¶à¤• अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "मूलभूत टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "मूलभूत टरà¥à¤®à¤¿à¤¨à¤² लेल ईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "फाइल देखबाक लेल पà¥à¤°à¤¯à¥‹à¤—ारà¥à¤¥ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जे हà¥à¤¨à¤•ा देखबाक लेल à¤à¤•टा घटक क' जरूरत समà¤à¥ˆà¤¤ अछि. " "पैरामीटर %s फाइल URIs क' दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ हà¤à¤¤à¤¾à¤¹, पैरामीटर %c केठघटक IID सठ" "विसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ कà¤à¤² जà¤à¤¤à¤¾à¤¹." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "ओ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—सभक लेल मूलभूत टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जकरा टरà¥à¤®à¤¿à¤¨à¤²à¤• आवशà¥à¤¯à¤•ता होइछ." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "मूलभूत टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—मे उपयोग लेल ईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "\"aim\" URL क' नियंतà¥à¤°à¤£ लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² छल" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "\"callto\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "\"ghelp\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "\"h323\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "\"http\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "\"https\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "\"info\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "\"mailto\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "\"man\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "\"trash\" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" URL क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "\"ghelp\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" URLs क' लेल नियंतà¥à¤°à¤•" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "सही अछि जठ\"command\" कà¥à¤‚जीमे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाà¤à¤¡à¤• \"aim\" URL क' नियंतà¥à¤°à¤¿à¤¤ कà¤à¤¨à¤¾à¤‡ चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"callto\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ " "चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"ghelp\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ " "चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"h323\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"http\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"https\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ " "चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"info\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"mailto\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ " "चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"man\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "सही जठ\"command\" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"trash\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ " "चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाà¤à¤¡à¤• \"aim\" URL केठनियंतà¥à¤°à¤¿à¤¤ कà¤à¤¨à¤¾à¤ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"callto\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"ghelp\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"h323\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"http\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"https\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"info\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"mailto\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"man\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ\"trash\" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "DNS-SD डोमेन क' कोमा सठअलग सूची जकरा \"network:///\" सà¥à¤¥à¤¾à¤¨à¤®à¥‡ दृशà¥à¤¯ होनाइ चाही." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "DNS-SD सेवामे देखबाक लेल अतिरिकà¥à¤¤ डोमेन" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "सà¥à¤¥à¤¾à¤¨à¥€à¤¯ DNS-SD सेवा कहिना देखाà¤à¤¨à¤¾à¤‡ अछि" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "संभावित मान अछि \"merged\", \"separate\" आओर \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ सरà¥à¤µà¤° कनेकà¥à¤¶à¤¨à¥à¤¸ पà¥à¤°à¤¾à¤®à¤¾à¤£à¤¿à¤¤ करू" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ यूआरà¤à¤²" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "जखन इंटरनेट पर à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ à¤à¤•à¥à¤¸à¥‡à¤¸ कà¤à¤² जाठतठपà¥à¤°à¥‹à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ सकà¥à¤·à¤® करू." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ कूटशबà¥à¤¦" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ नाम" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "जठसही अछि तखन पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¤°à¤®à¥‡ संबंधन क' लेल सतà¥à¤¯à¤¾à¤ªà¤¨à¤• जरूरत होइछ. पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾à¤¨à¤¾à¤®/" "कूटशबà¥à¤¦ कोंबो केठ\"/system/http_proxy/authentication_user\" आओर \"/system/" "http_proxy/authentication_password\" क' दà¥à¤µà¤¾à¤°à¤¾ परिभाषित हठछै." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "नान-पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¸à¤­" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "जखन à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ कठरहल अछि तठपà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण लेल पास करबाक लेल कूटशबà¥à¤¦." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ मोड" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "साकà¥à¤¸ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "साकà¥à¤¸ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸à¤• मोड चà¥à¤¨à¥‚. समरà¥à¤¥à¤¿à¤¤ मूलà¥à¤¯ अछि \"किछॠनहि\", \"हसà¥à¤¤à¤šà¤¾à¤²à¤¿à¤¤\", \"सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "मशीन नाम जकरासठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ à¤à¤«à¤Ÿà¥€à¤ªà¥€ कà¤à¤¨à¤¾à¤‡ अछि." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "मशीन नाम जकरासठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ कà¤à¤¨à¤¾à¤‡ अछि." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "मशीन नाम जकरासठपà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सिकà¥à¤¯à¥‹à¤° à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ कà¤à¤¨à¤¾à¤‡ अछि." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "मशीन नाम जकरासठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ साकà¥à¤¸ कà¤à¤¨à¤¾à¤‡ अछि." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि \"/system/http_proxy/host\" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठ" "पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करैत अछि." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि \"/system/proxy/ftp_host\" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठ" "पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ करैत अछि." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि \"/system/proxy/secure_host\" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठ" "पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ करैत अछि." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि \"/system/proxy/socks_host\" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठ" "पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ करैत अछि." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "ई कà¥à¤à¤œà¥€à¤®à¥‡ मेजबानसभक सूची सामिल अछि जे सीधे जà¥à¤¡à¤¼à¤² अछि. बजाठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ सठभ' कठ(जठई " "सकà¥à¤°à¤¿à¤¯ अछि). मान मेजबाननाम, डोमेन (*.foo.com क तरह क' आरंभिक वाइलà¥à¤¡à¤•ारà¥à¤¡), IP " "मेजबान पता (दà¥à¤¨à¥‚ IPv4 आओर IPv6) आओर नेटमासà¥à¤• क' सà¤à¤— सà¤à¤œà¤¾à¤² पता (किछॠई तरह क' " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "यूआरà¤à¤² जे पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ मानसभकेठपà¥à¤°à¤¦à¤¾à¤¨ करैत अछि." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤— करू" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "जखन à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ कठरहल छी तठपà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण लेल पास करबाक लेल पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ नाम." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "à¤à¤¸à¤à¤®à¤¬à¥€ वरà¥à¤•गà¥à¤°à¥à¤ª" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows सà¤à¤œà¤¾à¤² कारà¥à¤¯à¤¸à¤®à¥‚ह अथवा डोमेन जकर पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ हिसà¥à¤¸à¤¾ अछि. नवीन कारà¥à¤¯à¤¸à¤®à¥‚ह क' पूरà¥à¤£ रूपेठ" "पà¥à¤°à¤­à¤¾à¤µà¥€ हà¤à¤¬à¤¾à¤• लेल पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ केठलाग आउट आ लाग बैक हà¤à¤¬à¤¾à¤• जरूरत अछि." gnome-vfs-2.24.4/po/th.po0000644000175000001440000017325711354402652012033 00000000000000# Thai translation for gnome-vfs. # Copyright (C) 2004-2009 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # # Sittichai Makekhuntod , 2003. # Paisa Seeluangsawat , 2004. # Theppitak Karoonboonyanan , 2005-2009. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-12-14 21:54+0000\n" "PO-Revision-Date: 2009-12-23 07:35+0700\n" "Last-Translator: Theppitak Karoonboonyanan \n" "Language-Team: Thai \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" #: libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "โวลุม ISO 9660" #: libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u มีตัวอัà¸à¸©à¸£ NUL" #: libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ไม่มีชื่อวิธี" #: libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ไม่มีตัวปิดท้ายตัวเลือà¸" #: libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u มีตัวเลือภ%s ที่ไม่รู้จัà¸" #: libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ไม่มีชื่อโมดูล" #: libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡à¸›à¸£à¸±à¸šà¹à¸•่ง `%s': %s" #. stop parsing if we failed #: libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d เลิà¸à¹à¸ˆà¸‡à¸•่อ" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "โวลุม AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "โวลุมเครือข่าย AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "โวลุมที่ค้นพบโดยอัตโนมัติ" #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "โวลุม Btrfs ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "ไดรว์ซีดี" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "เสียงดิจิทัลจาà¸à¸‹à¸µà¸”ี" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "โวลุมอุปà¸à¸£à¸“์ฮาร์ดà¹à¸§à¸£à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "โวลุม EncFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "โวลุม eCryptfs" #: libgnomevfs/gnome-vfs-filesystem-type.c:49 #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "โวลุม Ext2 ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "โวลุม Ext3 ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 #: libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "โวลุม Ext4 ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:68 #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "โวลุม MSDOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "โวลุม BSD" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "โวลุม FUSE" #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "โวลุม MacOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "โวลุมซีดี" #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "โวลุม Hsfs บนซีดี" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "โวลุม JFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:71 #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "โวลุมวินโดวส์ NT" #: libgnomevfs/gnome-vfs-filesystem-type.c:63 #: libgnomevfs/gnome-vfs-filesystem-type.c:65 #: libgnomevfs/gnome-vfs-filesystem-type.c:75 #: libgnomevfs/gnome-vfs-filesystem-type.c:76 #: libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "โวลุมระบบ" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "โวลุมหน่วยความจำ" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "โวลุม Minix" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "โวลุมเครือข่าย NFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "โวลุม NILFS ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "โวลุม Netware" #: libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "โวลุม Reiser4 ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "โวลุม ReiserFS ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "โวลุมใช้ร่วมของวินโดวส์" #: libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "โวลุม SuperMount" #: libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "โวลุม DVD" #: libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "โวลุม Solaris/BSD" #: libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "โวลุม Udfs ของ Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "โวลุม Pcfs ของ Solaris" #: libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "โวลุม SAM-QFS ของซัน" #: libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "โวลุมชั่วคราว" #: libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "โวลุม DOS à¹à¸šà¸šà¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡" #: libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "โวลุม VFAT ของวินโดวส์" #: libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "โวลุม Xenix" #: libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "โวลุม XFS ของลินุà¸à¸‹à¹Œ" #: libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "โวลุม XIAFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "โวลุม CIFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "ไม่ทราบชนิด" #: libgnomevfs/gnome-vfs-hal-mounts.c:356 #: libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "โวลุม %s" #: libgnomevfs/gnome-vfs-hal-mounts.c:372 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: libgnomevfs/gnome-vfs-hal-mounts.c:374 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: libgnomevfs/gnome-vfs-hal-mounts.c:376 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: libgnomevfs/gnome-vfs-hal-mounts.c:380 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: libgnomevfs/gnome-vfs-hal-mounts.c:386 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: libgnomevfs/gnome-vfs-hal-mounts.c:388 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: libgnomevfs/gnome-vfs-hal-mounts.c:390 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "ไดรว์ %s/%s" #: libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "ไดรว์ %s" #: libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ไดรว์ฟลอปปี้" #: libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "ไดรว์ Compact Flash" #: libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "ไดรว์ Memory Stick" #: libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "ไดรว์ Smart Media" #: libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "ไดรว์ SD/MMC" #: libgnomevfs/gnome-vfs-hal-mounts.c:417 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ไดรว์ Zip" #: libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ไดรว์ Jaz" #: libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "ไดรว์ปาà¸à¸à¸²" #: libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "เครื่องเล่นเพลง %s %s" #: libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "à¸à¸¥à¹‰à¸­à¸‡à¸”ิจิทัล %s %s" #: libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "ไดรว์" #: libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s ภายนอà¸" #: libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "à¹à¸œà¹ˆà¸™ CD-ROM" #: libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "à¹à¸œà¹ˆà¸™ CD-R เปล่า" #: libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "à¹à¸œà¹ˆà¸™ CD-R" #: libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "à¹à¸œà¹ˆà¸™ CD-RW เปล่า" #: libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "à¹à¸œà¹ˆà¸™ CD-RW" #: libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD-ROM" #: libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD-RAM เปล่า" #: libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD-RAM" #: libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD-R เปล่า" #: libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD-R" #: libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD-RW เปล่า" #: libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD-RW" #: libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD+R เปล่า" #: libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD+R" #: libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD+RW เปล่า" #: libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "à¹à¸œà¹ˆà¸™ DVD+RW" #: libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "à¹à¸œà¹ˆà¸™à¹€à¸žà¸¥à¸‡" #: libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "โวลุมถอดเสียบ %s" #: libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "โวลุม" #: libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "ไม่รู้จัà¸à¸›à¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¸Šà¸™à¸´à¸” %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ไม่สามารถสร้างไปป์สำหรับเปิด GIOChannel: %s" #: libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "ไม่รู้จัà¸à¸‡à¸²à¸™à¸Šà¸™à¸´à¸” %u" #: libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "หยุดปà¸à¸´à¸šà¸±à¸•ิà¹à¸¥à¹‰à¸§" #: libgnomevfs/gnome-vfs-mime-handlers.c:103 #: libgnomevfs/gnome-vfs-mime-handlers.c:231 #: libgnomevfs/gnome-vfs-mime-handlers.c:282 #: libgnomevfs/gnome-vfs-mime-handlers.c:365 #: libgnomevfs/gnome-vfs-mime-handlers.c:386 #: libgnomevfs/gnome-vfs-mime-handlers.c:406 #: libgnomevfs/gnome-vfs-mime-handlers.c:427 #: libgnomevfs/gnome-vfs-mime-handlers.c:448 #: libgnomevfs/gnome-vfs-mime-handlers.c:541 #: libgnomevfs/gnome-vfs-mime-handlers.c:565 #: libgnomevfs/gnome-vfs-mime-handlers.c:586 #: libgnomevfs/gnome-vfs-mime-handlers.c:607 #: libgnomevfs/gnome-vfs-mime-handlers.c:628 #: libgnomevfs/gnome-vfs-mime-handlers.c:647 #: libgnomevfs/gnome-vfs-mime-handlers.c:666 #: libgnomevfs/gnome-vfs-mime-handlers.c:686 #: libgnomevfs/gnome-vfs-mime-handlers.c:706 #: libgnomevfs/gnome-vfs-mime-info.c:631 libgnomevfs/gnome-vfs-mime-info.c:638 #: libgnomevfs/gnome-vfs-mime-info.c:646 libgnomevfs/gnome-vfs-mime-info.c:653 #: libgnomevfs/gnome-vfs-mime-info.c:661 libgnomevfs/gnome-vfs-mime-info.c:678 #: libgnomevfs/gnome-vfs-mime-info.c:685 libgnomevfs/gnome-vfs-mime-info.c:692 #: libgnomevfs/gnome-vfs-mime-info.c:699 libgnomevfs/gnome-vfs-mime-info.c:707 #: libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™à¹€à¸¥à¸´à¸à¹ƒà¸Šà¹‰à¹à¸¥à¹‰à¸§ ไม่รองรับà¸à¸²à¸£à¹à¸à¹‰à¹„ขà¸à¸²à¸™à¸‚้อมูล MIME อีà¸à¸•่อไป" #: libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "ไม่สามารถà¹à¸ˆà¸‡: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "จะไม่สนใจข้อผิดพลาดในà¸à¸²à¸£à¹à¸ˆà¸‡à¸—ี่เหลือ" #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "ไม่มีข้อผิดพลาด" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "เà¸à¸´à¸”ข้อผิดพลาดทั่วไป" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "เà¸à¸´à¸”ข้อผิดพลาดภายใน" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "พารามิเตอร์ใช้ไม่ได้" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ไม่รองรับปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¸™à¸µà¹‰" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "ผิดพลาดเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸š I/O" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "ข้อมูลเสีย" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "รูปà¹à¸šà¸šà¹ƒà¸Šà¹‰à¹„ม่ได้" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ไฟล์à¹à¸®à¸™à¹€à¸”ิลเสีย" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "à¹à¸Ÿà¹‰à¸¡à¹ƒà¸«à¸à¹ˆà¹€à¸à¸´à¸™à¹„ป" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ไม่เหลือที่ว่างบนอุปà¸à¸£à¸“์" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ระบบà¹à¸Ÿà¹‰à¸¡à¸­à¹ˆà¸²à¸™à¹„ด้เท่านั้น" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI ใช้ไม่ได้" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "à¹à¸Ÿà¹‰à¸¡à¹„ม่ได้เปิดอยู่" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "โหมดà¸à¸²à¸£à¹€à¸›à¸´à¸”ใช้ไม่ได้" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ถูà¸à¸›à¸à¸´à¹€à¸ªà¸˜à¸à¸²à¸£à¹€à¸‚้าใช้" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "มีà¹à¸Ÿà¹‰à¸¡à¹€à¸›à¸´à¸”อยู่มาà¸à¹€à¸à¸´à¸™à¹„ป" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "จบà¹à¸Ÿà¹‰à¸¡" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ไม่ใช่โฟลเดอร์" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "à¸à¸³à¸¥à¸±à¸‡à¸”ำเนินà¸à¸²à¸£" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¸–ูà¸à¸‚ัดจังหวะ" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "à¹à¸Ÿà¹‰à¸¡à¸¡à¸µà¸­à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "จุดเชื่อมวนรอบà¸à¸¥à¸±à¸šà¸¡à¸²à¸«à¸²à¸•ัวเอง" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¸™à¸µà¹‰à¹„ม่อนุà¸à¸²à¸•" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "เป็นโฟลเดอร์" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "หน่วยความจำไม่พอ" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ไม่พบโฮสต์" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ชื่อโฮสต์ไม่ถูà¸à¸•้อง" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "โฮสต์นี้ไม่มีที่อยู่" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "เข้าระบบไม่สำเร็จ" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¸–ูà¸à¸¢à¸à¹€à¸¥à¸´à¸" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "โฟลเดอร์ยุ่งอยู่" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "โฟลเดอร์ไม่ว่าง" # See docs for EMLINK -- This file has too many hard links. #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "à¹à¸Ÿà¹‰à¸¡à¸™à¸µà¹‰à¸¡à¸µà¸®à¸²à¸£à¹Œà¸”ลิงà¸à¹Œà¸¡à¸²à¸à¹€à¸à¸´à¸™à¹„ป" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ระบบà¹à¸Ÿà¹‰à¸¡à¸­à¹ˆà¸²à¸™à¹„ด้เท่านั้น" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ไม่ได้อยู่ระบบà¹à¸Ÿà¹‰à¸¡à¹€à¸”ียวà¸à¸±à¸™" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "ชื่อยาวไป" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "บริà¸à¸²à¸£à¹„ม่มีให้ใช้" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "ร้องขอข้อมูลของบริà¸à¸²à¸£à¸—ี่ล้าสมัย" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "โพรโทคอลผิดพลาด" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "ไม่พบเบราว์เซอร์หลัà¸" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ไม่มีปà¸à¸´à¸šà¸±à¸•ิà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”ไว้ใช้" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "ไม่มีโปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ URL ชนิดนี้" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "à¹à¸ˆà¸‡à¸„ำสั่งไม่สำเร็จ" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "เรียà¸à¹ƒà¸Šà¹‰à¸„ำสั่งไม่สำเร็จ" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "หมดเวลาคอย" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "เà¸à¸´à¸”ข้อผิดพลาดà¸à¸±à¸š name server" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "ทรัพยาà¸à¸£à¸–ูà¸à¸¥à¹‡à¸­à¸„อยู่" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™à¹€à¸¥à¸´à¸à¹ƒà¸Šà¹‰à¹à¸¥à¹‰à¸§" #. GNOME_VFS_ERROR_INVALID_FILENAME #: libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ชื่อà¹à¸Ÿà¹‰à¸¡à¹ƒà¸Šà¹‰à¹„ม่ได้" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "ไม่ใช่ลิงà¸à¹Œà¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸“์" #: libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ข้อผิดพลาดที่ไม่รู้จัà¸" #: libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ไบต์" #: libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1108 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ยูนิโค้ดผิดรูปà¹à¸šà¸š)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ฟลอปปี้" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ดิสà¸à¹Œ" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "ไดรว์ USB" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "ไดรว์ IEEE 1394" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "à¸à¸¥à¹‰à¸­à¸‡" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "โวลุม root" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "ซีดีเพลง" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "โวลุมไม่ทราบชนิด" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "เซิร์ฟเวอร์เครือข่าย" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "เมานท์ฟลอปปี้ไม่สำเร็จ อาจจะไม่มีà¹à¸œà¹ˆà¸™à¸­à¸¢à¸¹à¹ˆà¹„ม่ตัวอ่าน" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "เมานท์โวลุมนี้ไม่สำเร็จ อาจจะไม่มีà¹à¸œà¹ˆà¸™à¸­à¸¢à¸¹à¹ˆà¹„ม่ตัวอ่าน" #: libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "เมานท์ฟลอปปี้ไม่สำเร็จ à¹à¸œà¹ˆà¸™à¸­à¸²à¸ˆà¸ˆà¸°à¹ƒà¸Šà¹‰à¸£à¸¹à¸›à¹à¸šà¸šà¸ˆà¸±à¸”เà¸à¹‡à¸šà¸—ี่ไม่รู้จัà¸" #. Probably a wrong password #: libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "ไม่สามารถเมานท์โวลุมได้ ถ้าเป็นไดรว์ที่เข้ารหัสไว้ à¸à¹‡à¹€à¸›à¹‡à¸™à¹„ปได้ว่ารหัสผ่านหรือà¸à¸¸à¸à¹à¸ˆà¸œà¸´à¸”" #: libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "เมานท์โวลุมนี้ไม่สำเร็จ à¹à¸œà¹ˆà¸™à¸­à¸²à¸ˆà¸ˆà¸°à¹ƒà¸Šà¹‰à¸£à¸¹à¸›à¹à¸šà¸šà¸ˆà¸±à¸”เà¸à¹‡à¸šà¸—ี่ไม่รู้จัà¸" #: libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "เมานท์ไดรว์ฟลอปปี้ที่เลือà¸à¹„ม่สำเร็จ" #: libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "เมานท์โวลุมที่เลือà¸à¹„ม่สำเร็จ" #: libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "เลิà¸à¹€à¸¡à¸²à¸™à¸—์โวลุมที่เลือà¸à¹„ม่สำเร็จ อาจมีโปรà¹à¸à¸£à¸¡à¸­à¸·à¹ˆà¸™à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸­à¸¢à¸¹à¹ˆ" #: libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "เลิà¸à¹€à¸¡à¸²à¸™à¸—์โวลุมที่เลือà¸à¹„ม่สำเร็จ" #: libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ไม่สามารถอ่านข้อมูลจาà¸à¹‚พรเซสลูภ%d ได้ (%s)" #: libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "ไม่สามารถเรียà¸à¹‚พรเซสเมานท์ใน pty ได้" #: libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "เà¸à¸´à¸”ข้อผิดพลาดà¸à¸£à¸°à¸—ันหันใน select() ระหว่างอ่านข้อมูลจาà¸à¹‚พรเซสลูภ(%s)" #: libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "ไม่สามารถส่งรหัสผ่านไปยังโพรเซสเมานท์ได้" #: libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "เà¸à¸´à¸”ข้อผิดพลาดà¸à¸£à¸°à¸—ันหันใน waitpid() (%s)" #: libgnomevfs/gnome-vfs-volume-ops.c:669 #: libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "เรียà¸à¹ƒà¸Šà¹‰à¸„ำสั่งไม่สำเร็จ" #: libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "ดันà¹à¸œà¹ˆà¸™à¸­à¸­à¸à¹„ม่สำเร็จ" #: libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "เลิà¸à¹€à¸¡à¸²à¸™à¸—์เซิร์ฟเวอร์ที่ต่ออยู่ไม่สำเร็จ" #: modules/computer-method.c:543 msgid "Network" msgstr "เครือข่าย" #: modules/computer-method.c:561 msgid "Home" msgstr "บ้าน" #: modules/computer-method.c:579 msgid "Filesystem" msgstr "ระบบà¹à¸Ÿà¹‰à¸¡" #: modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ไม่รู้จัภGnomeVFSSeekPosition %d" #: modules/network-method.c:1399 msgid "Windows Network" msgstr "เครือข่ายวินโดวส์" #: modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "ไม่สามารถจำà¹à¸™à¸à¹€à¸­à¸à¸¥à¸±à¸à¸©à¸“์ของเครื่องà¸à¸±à¹ˆà¸‡à¹‚น้น (%s) ได้" #: modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "เหตุà¸à¸²à¸£à¸“์นี้จะเà¸à¸´à¸”เมื่อคุณเข้าระบบไปยังคอมพิวเตอร์à¸à¸±à¹ˆà¸‡à¹‚น้นเป็นครั้งà¹à¸£à¸\n" "\n" "ข้อความบอà¸à¹€à¸­à¸à¸¥à¸±à¸à¸©à¸“์ที่เครื่องà¸à¸±à¹ˆà¸‡à¹‚น้นส่งมาคือ \"%s\" " "ถ้าคุณต้องà¸à¸²à¸£à¸¡à¸±à¹ˆà¸™à¹ƒà¸ˆà¸§à¹ˆà¸²à¸›à¸¥à¸­à¸”ภัยที่จะดำเนินà¸à¸²à¸£à¸•่อ à¸à¸£à¸¸à¸“าติดต่อผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š" #: modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "เข้าระบบต่อไป" #: modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¹€à¸‚้าระบบ" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "ไม่พบà¹à¸Ÿà¹‰à¸¡à¸›à¸£à¸±à¸šà¹à¸•่งที่ใช้ได้ใน %s\n" #: modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "ใช้ตัวà¹à¸›à¸£à¹à¸§à¸”ล้อม %s ถ้าต้องà¸à¸²à¸£à¸à¸³à¸«à¸™à¸”เป็นตำà¹à¸«à¸™à¹ˆà¸‡à¸­à¸·à¹ˆà¸™\n" #: programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "พร็อà¸à¸‹à¸µ HTTP ของคุณ ต้องล็อà¸à¸­à¸´à¸™à¸à¹ˆà¸­à¸™à¹ƒà¸Šà¹‰\n" #: programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "คุณต้องล็อà¸à¸­à¸´à¸™à¹€à¸žà¸·à¹ˆà¸­à¹€à¸‚้าใช้ \"%s\"\n" "%s" #: programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "รหัสผ่านของคุณจะถูà¸à¸ªà¹ˆà¸‡à¹„ปโดยไม่มีà¸à¸²à¸£à¹€à¸‚้ารหัสลับ" #: programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "รหัสผ่านของคุณจะถูà¸à¸ªà¹ˆà¸‡à¹„ปโดยเข้ารหัสลับ" #: programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "คุณต้องล็อà¸à¸­à¸´à¸™à¹€à¸žà¸·à¹ˆà¸­à¹€à¸‚้าใช้ %s ในโดเมน %s\n" #: programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "คุณต้องล็อà¸à¸­à¸´à¸™à¹€à¸žà¸·à¹ˆà¸­à¹€à¸‚้าใช้ %s\n" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "โปรà¹à¸à¸£à¸¡à¹à¸ªà¸”งปริยาย" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "โปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัลปริยาย" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "อาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•์ exec สำหรับเทอร์มินัลปริยาย" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "โปรà¹à¸à¸£à¸¡à¹à¸ªà¸”ง à¹à¸Ÿà¹‰à¸¡à¸—ี่ต้องใช้คอมโพเนนต์à¹à¸ªà¸”ง %s จะถูà¸à¹à¸—นที่ด้วย URI ของà¹à¸Ÿà¹‰à¸¡ à¹à¸¥à¸° %c " "จะถูà¸à¹à¸—นที่ด้วย IID ของคอมโพเนนต์" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "โปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัลปริยาย ไว้ใช้สำหรับ โปรà¹à¸à¸£à¸¡à¸—ี่ต้องใช้เทอร์มินัล" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "อาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•์สำหรับโปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัลปริยาย" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด aim (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด callto (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด ghelp (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด h323 (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด http (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด https (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด info (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด mailto (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด man (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด trash (ถ้าเปิดใช้)" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด aim" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด callto" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด ghelp" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด h323" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด http" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด https" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด info" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด mailto" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด man" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "คำสั่งจัดà¸à¸²à¸£ URL ชนิด trash" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด aim" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด callto" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด ghelp" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด h323" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด http" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด https" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™ \"command\" จัดà¸à¸²à¸£ URL ชนิด info" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด mailto" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด man" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ \"command\" จัดà¸à¸²à¸£ URL ชนิด trash" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด aim" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด callto" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด ghelp" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด h323" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด http" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด https" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด info" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด mailto" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด man" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด trash" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "รายà¸à¸²à¸£à¹‚ดเมน DNS-SD (คั่นด้วยจุลภาค) ที่น่าจะมองเห็นได้ในตำà¹à¸«à¸™à¹ˆà¸‡ \"network:///\"" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "โดเมนเพิ่มเติมที่จะมองหาบริà¸à¸²à¸£ DNS-SD" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "วิธีà¹à¸ªà¸”งผลบริà¸à¸²à¸£ DNS-SD ในเครือข่ายท้องถิ่น" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "ค่าที่เป็นไปได้คือ \"merged\", \"separate\" à¹à¸¥à¸° \"disabled\"" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "ตรวจสอบสิทธิ์à¸à¹ˆà¸­à¸™à¹ƒà¸Šà¹‰à¸žà¸£à¹‡à¸­à¸à¸‹à¸µ" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL สำหรับตั้งค่าพร็อà¸à¸‹à¸µà¹‚ดยอัตโนมัติ" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ใช้ค่าพร็อà¸à¸‹à¸µà¸—ี่ตั้งไว้เวลาใช้ HTTP บนอินเทอร์เน็ต" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "ชื่อโฮสต์พร็อà¸à¸‹à¸µ FTP" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "พอร์ตพร็อà¸à¸‹à¸µ FTP" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "ชื่อโฮสต์พร็อà¸à¸‹à¸µ HTTP" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "รหัสผ่านพร็อà¸à¸‹à¸µ HTTP" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "พอร์ตพร็อà¸à¸‹à¸µ HTTP" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "ชื่อบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸žà¸£à¹‡à¸­à¸à¸‹à¸µ HTTP" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "ถ้าตั้งเป็นค่าจริง à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อผ่านพร็อà¸à¸‹à¸µà¸ˆà¸°à¸•้องผ่านà¸à¸²à¸£à¸•รวจสอบสิทธิ์à¸à¹ˆà¸­à¸™ " "ชื่อผู้ใช้à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹€à¸­à¸²à¸¡à¸²à¸ˆà¸²à¸ \"/system/http_proxy/authentication_user\" à¹à¸¥à¸° \"/" "system/http_proxy/authentication_password\"" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "โอสต์ที่ไม่ติดต่อผ่านพร็อà¸à¸‹à¸µ" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "รหัสผ่านสำหรับà¸à¸²à¸£à¸•รวจสอบสิทธิ์ใช้พร็อà¸à¸‹à¸µ HTTP" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "โหมดà¸à¸²à¸£à¸•ั้งค่าพร็อà¸à¸‹à¸µ" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "ชื่อโฮสต์พร็อà¸à¸‹à¸µ SOCKS" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "พอร์ตพร็อà¸à¸‹à¸µ SOCKS" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "ชื่อโฮสต์พร็อà¸à¸‹à¸µ Secure HTTP" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "พอร์ตพร็อà¸à¸‹à¸µ Secure HTTP" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "เลือà¸à¹‚หมดà¸à¸²à¸£à¸•ั้งค่าพร็อà¸à¸‹à¸µ สามารถตั้งเป็น \"none\", \"manual\", \"auto\"" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "ชื่อเครื่องที่จะติดต่อ FTP ผ่าน" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "ชื่อเครื่องที่จะติดต่อ HTTP ผ่าน" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "ชื่อเครื่องที่จะติดต่อ Secure HTTP ผ่าน" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "ชื่อเครื่องที่จะติดต่อ socks ผ่าน" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "พอร์ตบนเครื่องที่ตั้งไว้ใน \"/system/http_proxy/host\" ที่จะใช้ติดต่อผ่าน" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "พอร์ตบนเครื่องที่ตั้งไว้ใน \"/system/proxy/ftp_host\" ที่จะใช้ติดต่อผ่าน" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "พอร์ตบนเครื่องที่ตั้งไว้ใน \"/system/proxy/secure_host\" ที่จะใช้ติดต่อผ่าน" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "พอร์ตบนเครื่องที่ตั้งไว้ใน \"/system/proxy/socks_host\" ที่จะใช้ติดต่อผ่าน" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "คีย์นี้เà¸à¹‡à¸šà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¹‚ฮสต์ที่ให้ติดต่อโดยตรง à¹à¸—นที่จะผ่านพร็อà¸à¸‹à¸µ (ถ้าเปิดทำงานอยู่) สามารถตั้งเป็น " "ชื่อโฮสต์ โดเมน (ใช้ wildcard ข้างหน้าเช่น *.foo.com), ที่อยู่ IP (ทั้ง IPv4 à¹à¸¥à¸° IPv6) " "หรือที่อยู่บนเครือข่ายพร้อมà¸à¸±à¸š netmask (เช่น 192.168.0.0/24)" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL ที่จัดส่งค่าตั้งพร็อà¸à¸‹à¸µ" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "ใช้พร็อà¸à¸‹à¸µ HTTP" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "ชื่อบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸ªà¸³à¸«à¸£à¸±à¸šà¸•รวจสอบสิทธิ์à¸à¸±à¸šà¸žà¸£à¹‡à¸­à¸à¸‹à¸µ HTTP" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "เวิร์à¸à¸à¸£à¸¸à¸› SMB" #: schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "เวิร์à¸à¸à¸£à¸¸à¸›à¸«à¸£à¸·à¸­à¹‚ดเมนของเครือข่ายวินโดวส์ที่ผู้ใช้อาศัยอยู่ " "ผู้ใช้อาจต้องออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¹à¸¥à¹‰à¸§à¹€à¸‚้าใหม่เพื่อจะเริ่มใช้เวิร์à¸à¸à¸£à¸¸à¸›à¹ƒà¸«à¸¡à¹ˆà¹„ด้" #~ msgid "Could not initialize Bonobo" #~ msgstr "เริ่มใช้ Bonobo ไม่สำเร็จ" #~ msgid "Could not initialize gnome vfs" #~ msgstr "เริ่มใช้ gnome vfs ไม่สำเร็จ" #~ msgid "Standard Moniker factory" #~ msgstr "โรงงานมอนิเà¸à¸­à¸£à¹Œà¸¡à¸²à¸•รà¸à¸²à¸™" #~ msgid "file MonikerExtender" #~ msgstr "ส่วนขยายมอนิเà¸à¸­à¸£à¹Œà¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸Ÿà¹‰à¸¡" #~ msgid "generic Gnome VFS moniker" #~ msgstr "มอนิเà¸à¸­à¸£à¹Œ GNOME VFS ทั่วไป" #~ msgid "generic file moniker" #~ msgstr "มอนิเà¸à¸­à¸£à¹Œà¹à¸Ÿà¹‰à¸¡à¸—ั่วไป" #~ msgid "Server certificate was missing commonName attribute in subject name" #~ msgstr "ใบรับรองของเซิร์ฟเวอร์ขาดข้อมูล commonName ในชื่อเรื่อง" #~ msgid "SSL negotiation failed: %s" #~ msgstr "à¸à¸²à¸£à¹€à¸ˆà¸£à¸ˆà¸²à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อ SSL ล้มเหลว: %s" #~ msgid "Server did not send certificate chain" #~ msgstr "เซิร์ฟเวอร์ไม่ได้ส่งชุดใบรับรองมาให้" #~ msgid "Response exceeds maximum property count" #~ msgstr "คำตอบที่ได้เà¸à¸´à¸™à¸ˆà¸³à¸™à¸§à¸™à¸‚้อมูลสูงสุดที่à¸à¸³à¸«à¸™à¸”" #~ msgid "Could not parse response: %s" #~ msgstr "ไม่สามารถà¹à¸ˆà¸‡à¸„ำตอบ: %s" #~ msgid "Display SCSI drives" #~ msgstr "à¹à¸ªà¸”งไดรว์ SCSI" #~ msgid "Display SCSI optical drives" #~ msgstr "à¹à¸ªà¸”งไดรว์ซีดี/ดีวีดี SCSI" #~ msgid "Display drives with removable media" #~ msgstr "à¹à¸ªà¸”งไดรว์ถอดเสียบ" #~ msgid "Display external drives" #~ msgstr "à¹à¸ªà¸”งไดรว์ภายนอà¸" #~ msgid "Display internal hard drives" #~ msgstr "à¹à¸ªà¸”งฮาร์ดดิสà¸à¹Œà¸ à¸²à¸¢à¹ƒà¸™" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "à¸à¸³à¸«à¸™à¸”ว่าจะà¹à¸ªà¸”งไดรว์ซีดี/ดีวีดี SCSI à¹à¸¡à¹‰à¸§à¹ˆà¸²à¸ˆà¸°à¸à¸³à¸«à¸™à¸” /system/storage/" #~ "display_scsi_drives เป็น FALSE หรือไม่" #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "à¸à¸³à¸«à¸™à¸”ว่าจะà¹à¸ªà¸”งไดรว์à¹à¸¥à¸°à¹‚วลุมที่เมานท์ได้ผ่านไดรว์ SCSI หรือไม่" #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "à¸à¸³à¸«à¸™à¸”ว่าจะà¹à¸ªà¸”งไดรว์à¹à¸¥à¸°à¹‚วลุมที่เมานท์ได้ผ่านไดรว์ถอดเสียบ (เช่น " #~ "ไดรว์ที่สามารถเปลี่ยนà¹à¸œà¹ˆà¸™à¹„ด้) หรือไม่" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "à¸à¸³à¸«à¸™à¸”ว่าจะà¹à¸ªà¸”งไดรว์à¹à¸¥à¸°à¹‚วลุมที่เมานท์ผ่านไดรว์ภายนอภ(เช่น ไดรว์ที่ hotplug ได้ " #~ "หรือสามารถถอดหรือเพิ่มในระหว่างที่ระบบทำงานอยู่ได้) หรือไม่" #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "à¸à¸³à¸«à¸™à¸”ว่าจะà¹à¸ªà¸”งไดรว์à¹à¸¥à¸°à¹‚วลุมที่เมานท์ได้ผ่านฮาร์ดไดรว์ภายในหรือไม่ (ไดรว์ซีดี/ดีวีดีที่ไม่ใช่ " #~ "SCSI จะà¹à¸ªà¸”งเสมอ)" #~ msgid "The window workgroup the user is part of" #~ msgstr "workgroup บนวินโดวส์ที่ผู้ใช้อยู่" #, fuzzy #~ msgid "Memory Stick Media" #~ msgstr "Memory Stick" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "หน้าต่าง" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "ไม่สามารถà¹à¸šà¹ˆà¸‡à¸„ำ: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "à¹à¸Ÿà¹‰à¸¡à¸¡à¸µà¸­à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§" #~ msgid "Applications" #~ msgstr "โปรà¹à¸à¸£à¸¡" #~ msgid "Cards" #~ msgstr "บัตร" #~ msgid "Files" #~ msgstr "à¹à¸Ÿà¹‰à¸¡" #~ msgid "Folders" #~ msgstr "โฟลเดอร์" #~ msgid "Help" #~ msgstr "วิธีใช้" #~ msgid "Hosts" #~ msgstr "โฮสต์" #~ msgid "Links" #~ msgstr "ลิงà¸à¹Œ" #~ msgid "Mail" #~ msgstr "เมล" #~ msgid "Tools" #~ msgstr "เครื่องมือ" #~ msgid "Windows" #~ msgstr "หน้าต่าง" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "จัดà¸à¸²à¸£ URL ชนิด HTTP" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "จัดà¸à¸²à¸£ URL ชนิด HTTPS" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "ตั้งเป็น true ถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™ \"command\" จัดà¸à¸²à¸£ URL ชนิด HTTP" #, fuzzy #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "ตั้งเป็น true ถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™ \"command\" จัดà¸à¸²à¸£ URL ชนิด HTTPS" #, fuzzy #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "ตั้งเป็น true ถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™ \"command\" จัดà¸à¸²à¸£ URL ชนิด HTTP" #, fuzzy #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "ตั้งเป็น true ถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™ \"command\" จัดà¸à¸²à¸£ URL ชนิด HTTPS" #~ msgid "H323 URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ H323 URL" #~ msgid "HTTP URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ HTTP URL" #~ msgid "HTTPS URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ HTTPS URL" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ man URL" #~ msgid "callto URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ callto URL" #~ msgid "ghelp URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ ghelp URL" #~ msgid "info URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ info URL" #~ msgid "mailto URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ mailto URL" #~ msgid "man URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ man URL" #~ msgid "trash URL handler" #~ msgstr "โปรà¹à¸à¸£à¸¡à¸ˆà¸±à¸”à¸à¸²à¸£ trash URL" #~ msgid "1 byte" #~ msgstr "1 ไบต์" gnome-vfs-2.24.4/po/ga.po0000644000175000001440000007306411334251016011774 00000000000000# Irish language translations for gnome-vfs # Copyright (C) 2000,2004 Free Software Foundation, Inc. # Alastair McKinstry, 2000. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs HEAD\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2004-01-20 07:00+0000\n" "Last-Translator: Alastair McKinstry \n" "Language-Team: Irish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: daemon/gnome-vfs-daemon.c:596 msgid "Could not initialize Bonobo" msgstr "" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "Imleabhar ISO 9660" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:284 #, c-format msgid "%s:%d has no options endmarker." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "Imleabhar AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "Imleabhar Linux Ext2" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "Imleabhar Linux Ext3" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "Imleabhar MSDSOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "Imleabhar MacOS" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "Imleabhar CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "Imleabhar Hsfs CDROM" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "Imleabhar JFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "Foirt 'Windows NT'" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "Imleabhar Chorás" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "Imleabhar Chuimhe" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "Imleabhar Minix" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "Imleabhar Lín NFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "Imleabhar Netware" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "Imleabhar Linux ReiserFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "Imleabhar SuperMount" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "Imleabhar DVD" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "Imleabhar Solaris/BSD" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "Imleabhar Solaris Udfs" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "Imleabhar Solaris Pcfs" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 #, fuzzy msgid "Sun SAM-QFS Volume" msgstr "Imleabhar AFFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "Imleabhar 'Windows' VFAT" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "Imleabhar Xenis" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "Imleabhar Linux XFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "Imleabhar XIAFS" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 msgid "Unknown" msgstr "Gan fhois" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Saghas job gan fhios %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Saghas job gan fhios %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "" #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Gan earraidh" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Earraidh inmheánach" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "Earraidh I/A" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Formóid neamh-dhleathach" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Comhad ró-mhór" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Níl aon spás fágtha ar an ghléas" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "Corás chomad leámh-amhain" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "IRI neamh" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "An iomarca comhaid oscailte" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Níl aon filltéan ann" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Tá an comhad ann cheana" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Oibríocht neamhcheadaithe" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Is fillteán ann" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Cuimhne úsáidte" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Teip ar logann" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Níl an fillteán folamh" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "An iomarca naisc" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "Corás chomad leámh-amhain" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Ainm ró-fhada" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Earráid phrótacail" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 msgid "Nameserver error" msgstr "" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Earraidh gan aithne" #: libgnomevfs/gnome-vfs-utils.c:85 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "" msgstr[1] "" #: libgnomevfs/gnome-vfs-utils.c:91 #, fuzzy, c-format msgid "%.1f KB" msgstr "%.1fK" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (Unicôd neamhbhailî)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "Diosca Flapach" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "Ceamara" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 #, fuzzy msgid "Unknown volume" msgstr "Earraidh gan aithne" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "" #: modules/computer-method.c:545 msgid "Network" msgstr "Greasan" #: modules/computer-method.c:563 msgid "Home" msgstr "Baile" #: modules/computer-method.c:581 msgid "Filesystem" msgstr "" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d gan aithne" #: modules/network-method.c:1396 #, fuzzy msgid "Windows Network" msgstr "Greasan" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "" #, fuzzy #~ msgid "Floppy Disk" #~ msgstr "Diosca Flapach" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "Fuinneoga" #, fuzzy #~ msgid "File is empty" #~ msgstr "Tá an comhad ann cheana" #~ msgid "Folders" #~ msgstr "Fillteáin" #~ msgid "Help" #~ msgstr "Cúidiû" #~ msgid "Mail" #~ msgstr "Post" #~ msgid "Tools" #~ msgstr "Úirlisí" #~ msgid "Windows" #~ msgstr "Fuinneoga" gnome-vfs-2.24.4/po/sk.po0000644000175000001440000013304011354402652012017 00000000000000# Slovak translation for gnome-vfs. # Copyright (C) 2000, 2001, 2003, 2004, 2005, 2008, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-vfs package. # Stanislav Visnovsky , 2000, 2001, 2003, 2004. # Ivan Noris , 2004, 2005. # Marcel Telka , 2008, 2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2010-02-19 10:35+0000\n" "PO-Revision-Date: 2010-02-23 00:53+0100\n" "Last-Translator: Marcel Telka \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Zväzok ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u obsahuje znaky NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u neobsahuje názov metódy." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u neobsahuje koncovú znaÄku volieb." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u obsahuje neznáme voľby %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u neobsahuje názov modulu." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "KonfiguraÄný súbor '%s' nebol nájdený: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d analýza zlyhala." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Zväzok AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "SieÅ¥ový zväzok AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automaticky urÄený zväzok" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Linuxový zväzok Btrfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Mechanika CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Zvukové CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Zväzok hardvérového zariadenia" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Zväzok EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Zväzok eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Linuxový zväzok Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Linuxový zväzok Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Linuxový zväzok Ext4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Zväzok MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Zväzok BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Zväzok FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Zväzok MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Zväzok CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Zväzok Hsfs CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Zväzok JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Zväzok Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Systémový zväzok" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Pamäťový zväzok" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Zväzok Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "SieÅ¥ový zväzok NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Linuxový zväzok NILFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Zväzok Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Linuxový zväzok Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Linuxový zväzok ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Zdieľaný zväzok Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Zväzok SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Zväzok DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Zväzok Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Zväzok Solaris Udfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Zväzok Solaris Pcfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Zväzok Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "DoÄasný zväzok" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Rozšírený zväzok DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Zväzok Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Zväzok Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Linuxový zväzok XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Zväzok XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Zväzok CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Neznámy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Zväzok %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Mechanika %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Mechanika %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Disketová mechanika" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Mechanika Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Mechanika Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Mechanika Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Mechanika SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Mechanika Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Mechanika Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Mechanika Pen" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "PrehrávaÄ hudby %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Digitálny fotoaparát %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Mechanika" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Externá %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disk CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ÄŒistý disk CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disk CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ÄŒistý disk CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disk CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disk DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ÄŒistý disk DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disk DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ÄŒistý disk DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disk DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ÄŒistý disk DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disk DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ÄŒistý disk DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disk DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ÄŒistý disk DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disk DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Zvukový disk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Výmenný zväzok %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Zväzok" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Neznámy typ operácie %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Nemožno vytvoriÅ¥ rúru pre otvorenie GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Neznámy druh úlohy %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operácia zastavená" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Zastaralá funkcia. Používateľské zmeny MIME databázy už nie sú podporované." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Nepodarilo sa analyzovaÅ¥: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ÄŽalÅ¡ie chyby analýzy budú ignorované." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Bez chyby" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Súbor nenájdený" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "VÅ¡eobecná chyba" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Interná chyba" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Neplatné parametre" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Nepodporovaná operácia" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "V/V chyba" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "PoÅ¡kodené dáta" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Neplatný formát" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Chybný handle súboru" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "PríliÅ¡ veľký súbor" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Nedostatok miesta na zariadení" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Súborový systém len pre Äítanie" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Neplatné URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Neotvorený súbor" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Mód otvorenia neplatný" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Prístup odmietnutý" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "PríliÅ¡ veľa otvorených súborov" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Koniec súboru" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Nie je prieÄinok" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operácia prebieha" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operácia preruÅ¡ená" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Súbor existuje" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Vyskytli sa cyklické odkazy" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Nedovolená operácia" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Je prieÄinok" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Nedostatok pamäti" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Hostiteľ nenájdený" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Neplatné meno hostiteľa" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Hostiteľ nemá adresu" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Zlyhalo prihlásenie" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operácia zruÅ¡ená" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "PrieÄinok zaneprázdnený" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "PrieÄinok nie je prázdny" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "PríliÅ¡ veľa odkazov" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Súborový systém len pre Äítanie" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Nie je na rovnakom súborovom systéme" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Názov príliÅ¡ dlhý" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Služba nie je k dispozícii" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Požiadavka zneplatňuje dáta služby" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Chyba protokolu" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Nepodarilo sa nájsÅ¥ hlavný prehliadaÄ" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Nedefinovaná žiadna Å¡tandardná akcia" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Pre URL schému nie je ovládací program" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Chyba pri analýze príkazového riadku" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Chyba pri spúšťaní príkazu" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ÄŒas vyprÅ¡al" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Chyba menného servera" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Prostriedok je uzamknutý" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Volanie funkcie je zastaralá" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Neplatný názov súboru" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Nie je symbolický odkaz" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Neznáma chyba" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bajtov" msgstr[1] "%u bajt" msgstr[2] "%u bajty" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (neplatný kód Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disketa" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Mechanika USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Mechanika IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Fotoaparát" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Koreňový zväzok" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Zvukové CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Neznámy zväzok" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "SieÅ¥ový server" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Nepodarilo sa pripojiÅ¥ disketu. Možno v mechanike žiadna nie je." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Nepodarilo sa pripojiÅ¥ zväzok. Možno v mechanike nie je médium." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Nepodarilo sa pripojiÅ¥ disketu. Disketa asi nie je v podporovanom formáte." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Nepodarilo sa pripojiÅ¥ zväzok. Ak je tento zväzok zaÅ¡ifrovaný, bolo použité " "nesprávne heslo alebo kľúÄ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Nepodarilo sa pripojiÅ¥ zadaný zväzok. Zväzok asi nie je v podporovanom " "formáte." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Nepodarilo sa pripojiÅ¥ zadanú disketu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Nepodarilo sa pripojiÅ¥ zadaný disk." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Nepodarilo sa odpojiÅ¥ zadaný zväzok. Zväzok je používaný jedným alebo " "viacerými programami." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Nepodarilo sa odpojiÅ¥ zadaný zväzok." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Čítanie údajov z procesu potomka %d zlyhalo (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Proces mount nemohol byÅ¥ spustený v pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "NeoÄakávaná chyba v select() pri Äítaní údajov z procesu potomka (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Nepodarilo sa poslaÅ¥ heslo do procesu mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "NeoÄakávaná chyba vo waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Nepodarilo sa spustiÅ¥ príkaz" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Nepodarilo sa vysunúť médium" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Nepodarilo sa odpojiÅ¥ pripojený server" #: ../modules/computer-method.c:543 msgid "Network" msgstr "SieÅ¥" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Domovský prieÄinok" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Systém súborov" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Neznáma GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "SieÅ¥ Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "TotožnosÅ¥ vzdialeného poÄítaÄa (%s) je neznáma." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Toto sa stane pri prvom prihlásení k poÄítaÄu.\n" "\n" "TotožnosÅ¥ odoslaná vzdialeným poÄítaÄom je %s. Ak chcete maÅ¥ absolútnu " "istotu, že je bezpeÄné pokraÄovaÅ¥, kontaktujte správcu systému." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Aj tak sa prihlásiÅ¥" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ZruÅ¡iÅ¥ prihlásenie" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Nepodarilo sa nájsÅ¥ platný súbor s nastavením v %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Pre zadanie iného umiestnenia použite premennú prostredia %s.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "VaÅ¡e HTTP proxy vyžaduje vaÅ¡e prihlásenie.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Aby ste mohli pristupovaÅ¥ k \"%s\", musíte sa prihlásiÅ¥.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "VaÅ¡e heslo bude prenesené nezaÅ¡ifrované." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "VaÅ¡e heslo bude prenesené zaÅ¡ifrované." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Aby ste mohli pristupovaÅ¥ k %s domény %s, musíte sa prihlásiÅ¥\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Aby ste mohli pristupovaÅ¥ k %s, musíte sa prihlásiÅ¥\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Å tandardná aplikácia prehliadaÄa súÄastí" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Å tandardná aplikácia terminálu" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument spustenia pre Å¡tandardný terminál" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Aplikácia používaná pre zobrazenie súborov, ktoré vyžadujú nejakú súÄasÅ¥ pre " "zobrazenie. Parameter %s bude nahradený URI súborov, parameter %c bude " "nahradený IID súÄasti." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Å tandardná aplikácia terminálu používaná pre aplikácie, ktoré vyžadujú " "terminál." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Parameter používaný pri spúšťaní Å¡tandardnej aplikácie terminálu." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "SpustiÅ¥ program v termináli" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"aim\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"callto\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"ghelp\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"h323\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"http\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"https\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"info\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"mailto\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"man\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Príkaz použitý na obsluhovanie URL \"trash\", ak je povolené." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Obslužný program pre URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Obslužný program pre URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Obslužný program pre URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Obslužný program pre URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Obslužný program pre URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Obslužný program pre URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Obslužný program pre URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Obslužný program pre URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Obslužný program pre URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Obslužný program pre URL \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "True, ak program zadaný v kľúÄi \"command\" by mal obsluhovaÅ¥ URL \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v " "termináli." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "ÄŒi má zadaný príkaz obsuhovaÅ¥ URL \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "ÄŒiarkou oddelený zoznam DNS-SD domén, ktoré majú byÅ¥ viditeľné v umiestnení " "\"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ÄŽalÅ¡ie domény, v ktorých sa majú hľadaÅ¥ služby DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Ako sa má zobraziÅ¥ miestna služba DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Prípustné hodnoty sú \"merged\", \"separate\" a \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "OverovaÅ¥ totožnosÅ¥ spojení s proxy serverom" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL pre automatické nastavenie proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Povolí nastavenie proxy pri prístupe pomocou HTTP na Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Hostiteľ pre FTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port pre FTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Hostiteľ pre HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Heslo pre HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port pre HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Meno používateľa pre HTTP proxy" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Ak je true, pripojenia k proxy serveru vyžadujú overenie totožnosti. " "Kombinácia používateľ/heslo je definovaná v \"/system/http_proxy/" "authentication_user\" a \"/system/http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Hostitelia bez použitia proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Heslo používané pre prihlásenie k proxy HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Režim nastavenia proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Hostiteľ proxy pre SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port proxy pre SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Hostiteľ proxy pre zabezpeÄené HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port proxy pre zabezpeÄené HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Výber režimu nastavenia proxy. Podporované hodnoty sú \"none\", \"manual\", " "\"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre zabezpeÄené HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port poÄítaÄa definovaného v \"/system/http_proxy/host\", ktorý používate " "ako proxy." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port poÄítaÄa definovaného v \"/system/proxy/ftp_host\", ktorý používate ako " "proxy." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port poÄítaÄa definovaného v \"/system/proxy/secure_host\", ktorý používate " "ako proxy." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port poÄítaÄa definovaného v \"/system/proxy/socks_host\", ktorý používate " "ako proxy." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Tento kÄ¾ÃºÄ obsahuje zoznam hostiteľov, ku ktorým sa radÅ¡ej pripojiÅ¥ priamo a " "nie cez proxy (ak je atívne). Hodnoty môžu byÅ¥ názvy hostiteľov, domény " "(pomocou poÄiatoÄných žolíkov, napr. *.foo.com), IP adresy (IPv4 aj IPv6) a " "sieÅ¥ové adresy s maskou (napr. 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL, ktoré poskytuje hodnoty konfigurácie proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "PoužiÅ¥ proxy HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Používateľ poskytnutý pri overení totožnosti poÄas proxy HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Pracovná skupina SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "SieÅ¥ová pracovná skupina alebo doména Windows, do ktorej patrí používateľ. " "Aby sa nová pracovná skupina úplne prejavila, použivateľ sa možno bude " "musieÅ¥ odhlásiÅ¥ a prihlásiÅ¥." gnome-vfs-2.24.4/po/fi.po0000644000175000001440000014040111354402652011777 00000000000000# gnome-vfs Finnish translation # Suomennos: http://gnome-fi.sourceforge.net/ # # Copyright (C) 2002 Free Software Foundation, Inc. # Pauli Virtanen , 2000-2005. # Ilkka Tuohela , 2005. # Tommi Vainikainen , 2010. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-19 23:50+0200\n" "PO-Revision-Date: 2010-03-19 23:50+0200\n" "Last-Translator: Tommi Vainikainen \n" "Language-Team: Finnish \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO-9660-taltio" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u sisältää NUL-merkkejä." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ei sisällä metodin nimeä." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u ei sisällä valitsimien loppumerkintää." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u sisältää tuntemattomia valitsimia %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u ei sisällä moduulin nimeä." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Asetustiedostoa â€%s†ei löytynyt: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d tulkitseminen keskeytetty." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS-verkkotaltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automaattisesti tunnistunut taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM-asema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "CD-digitaaliääni" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Laitetiedostotaltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CDROM-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM -taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT -taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Järjestelmätaltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Muistitaltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS-verkkotaltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Jaettu Windows-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs-Solaris-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs-Solaris-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS -taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Väliaikainen taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Paranneltu DOS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows-VFAT-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS-Linux-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS-taltio" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Tuntematon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-taltio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-asema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-asema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Levykeasema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Muistitikku" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip-asema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz-asema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Kynäasema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s musiikkisoitin" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitaalikamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Asema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ulkoinen %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM-asema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Tyhjä CD-R-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R-asema" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Tyhjä CD-RW-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "DVD-RAM-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Tyhjä DVD-R-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Tyhjä DVD-RW-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Tyhjä DVD+R-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Tyhjä DVD+RW-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW-levy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Äänilevy" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s irrotettava taltio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Taltio" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Tuntematon toimintotyyppi %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "GIOChannelille ei voi luoda putkea: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Tuntematon työtyyppi %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Toiminta pysäytetty" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Ei-suositeltu funktio. Käyttäjän tekemät MIME-tietokannan muutokset eivät " "enää toimi." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ei voitu jäsentää: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Mahdolliset seuraavat jäsennysvirheet jäävät huomiotta." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ei virhettä" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Tiedostoa ei löytynyt" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Yleinen virhe" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Sisäinen virhe" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Virheellisiä parametreja" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Ei-tuettu toiminto" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/O-virhe" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Data vahingoittunut" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Muoto on virheellinen" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Virheellinen tiedostokahva" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Tiedosto on liian suuri" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Levyllä ei ole jäljellä tilaa" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Tiedostojärjestelmästä voi vain lukea" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Virheellinen URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Tiedosto ei ole auki" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Avaustapa on virheellinen" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Ei käyttöoikeutta" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Liian monta tiedostoa avoinna" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Tiedoston loppu" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ei ole kansio" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Toiminto käynnissä" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Toiminto keskeytetty" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Tiedosto on olemassa" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Linkkien silmukka havaittu" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Toiminto ei ole sallittu" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "On kansio" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ei tarpeeksi muistia" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Konetta ei löytynyt" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Koneen nimi ei kelpaa" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Koneella ei ole osoitetta" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Sisäänkirjautuminen epäonnistui" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Toiminto peruttu" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Kansio varattu" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Kansio ei ole tyhjä" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Liian monta linkkiä" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Tiedostojärjestelmästä voi vain lukea" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Eivät ole samassa tiedostojärjestelmässä" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nimi on liian pitkä" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Palvelu ei saatavilla" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Pyyntö vanhentaa palvelun datan" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokollavirhe" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Pääselainta ei löytynyt" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Oletusarvoista toimintoa ei ole kytketty" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "URL-tyypille ei ole käsittelintä" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Komentorivin jäsennysvirhe" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Komennon käynnistysvirhe" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Aikakatkaisu" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Nimipalvelinvirhe" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Resurssi on lukittu" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Funktiokutsua ei suositella" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Virheellinen tiedostonimi" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ei ole symbolinen linkki" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Tuntematon virhe" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u tavu" msgstr[1] "%u tavua" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f kt" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f Mt" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f Gt" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (virheellistä Unicodea)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Levyke" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CDR-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Levy" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-asema" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-asema" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Muistitikku" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Juuritaltio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Ääni-CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Tuntematon taltio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Verkkopalvelin" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Levykeaseman liittäminen ei onnistu. Luultavasti asemassa ei ole levykettä." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Taltion liittäminen ei onnistu. Luultavasti asemassa ei ole levyä." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Levykeaseman liittäminen ei onnistu. Levyke on luultavasti muodossa, jota ei " "voi liittää." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Taltiota ei voida liittää. Jos taltio oli salattu, voi olla että syötit " "väärän salasanan tai avaimen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Valitun taltion liittäminen ei onnistu. Taltio on luultavasti muodossa, jota " "ei voi liittää." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Valitun levykeaseman liittäminen ei onnistu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Valitun taltion liittäminen ei onnistu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Valittua taltiota ei voitu irrottaa. Yksi tai useampi sovellus käyttää tätä " "taltiota." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Valitun taltion irrottaminen ei onnistu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Tietoja ei voitu lukea lapsiprosessilta %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Prosessia mount ei voitu suorittaa pty:ssä" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Odottamaton virhe select()-kutsussa luettaessa tietoja lapsiprosessilta (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Salasanaa ei voitu lähettää prosessille mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Odottamaton virhe komennossa waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Komennon käynnistäminen epäonnistui" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Levyn poistaminen asemasta ei onnistu" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Yhdistetyn palvelimen irrottaminen ei onnistu" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Verkko" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Koti" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Tiedostojärjestelmä" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Tuntematon GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows-verkko" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Etäkoneen (%s) identiteetti on tuntematon." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Näin käy, kun kirjaudut tietokoneelle ensimmäistä kertaan.\n" "\n" "Etäkoneen identiteetti on %s. Jos ehdottoman varmuuden, että on turvallista " "jatkaa, ota yhteys järjestelmän ylläpitäjään." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Kirjaudu silti sisään" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Peru kirjautuminen" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "%s ei ole kelvollinen asetustiedosto\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Määrittele toinen sijainti käyttämällä ympäristömuuttujaa %s.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "HTTP-välipalvelimesi vaatii kirjautumista.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Pääsy kohteeseen â€%s†vaatii kirjautumista.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Salasanasi lähetetään salaamattomana." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Salasanasi lähetetään salattuna." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Pääsy kohteeseen â€%s†toimialueessa â€%s†vaatii kirjautumisen\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Pääsy kohteeseen â€%s†vaatii kirjautumisen\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Oletusarvoinen komponenttien katselusovellus" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Oletusarvoinen päätesovellus" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Päätesovelluksen suoritusvalitsin" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Katseluun komponentin vaativien tiedostojen katselusovellus. Parametri %s " "korvautuu tiedoston URI:lla, parametri %c komponentin IID:llä." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "Oletusarvoinen päätesovellus päätteen vaativille sovelluksille." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Päätesovelluksen valitsin, joka määrittää mitä suoritetaan." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Suorita sovellus päätteessä" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "â€aimâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "â€calltoâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "â€ghelpâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "â€h323â€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "â€httpâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "â€httpsâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "â€infoâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "â€mailtoâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "â€manâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "â€trashâ€-tyyppiset URL:t käsittelevä komento, jos käytössä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "â€aimâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "â€calltoâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "â€ghelpâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "â€h323â€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "â€httpâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "â€httpsâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "â€infoâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "â€mailtoâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "â€manâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "â€trashâ€-URL:ien käsittelykomento" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€aimâ€-tyyppisiä URL:" "eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€calltoâ€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€ghelpâ€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€h323â€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€httpâ€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€httpsâ€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€infoâ€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€mailtoâ€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€manâ€-tyyppisiä URL:" "eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Tosi, jos avaimessa â€command†annettu komento käsittelee â€trashâ€-tyyppisiä " "URL:eja." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää " "päätteessä." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Käsitteleekö annettu komento â€aimâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Käsitteleekö annettu komento â€calltoâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Käsitteleekö annettu komento â€ghelpâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Käsitteleekö annettu komento â€h323â€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Käsitteleekö annettu komento â€httpâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Käsitteleekö annettu komento â€httpsâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Käsitteleekö annettu komento â€infoâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Käsitteleekö annettu komento â€mailtoâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Käsitteleekö annettu komento â€manâ€-URL:eja" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Käsitteleekö annettu komento â€trashâ€-URL:eja" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Pilkuilla eroteltu luettelo DNS-SD-verkkoalueista, jotka näkyvät sijainnissa " "â€network:///â€." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Lisäverkkoalueet, joilta etsiä DNS-SD-palveluja" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Miten paikallinen DNS-SD-palvelu näkyy" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Mahdollisia arvoja ovat â€merged†(yhdessä), â€separate†(erillinen) ja " "â€disabled†(ei käytössä)." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Todenna välipalvelinyhteydet" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "Automaattisten välipalvelinasetusten URL" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Ota välipalvelinasetukset käyttöön, kun HTTP:tä käytetään Internetissä." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "FTP-välipalvelimen nimi" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "FTP-välipalvelimen portti" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "HTTP-välipalvelimen nimi" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "HTTP-välipalvelimen salasana" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "HTTP-välipalvelimen portti" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "HTTP-välipalvelimen käyttäjätunnus" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Jos tosi, yhteydet välipalvelimeen vaativat todennuksen. Käyttäjätunnus-" "salasana-yhdistelmän määrittelevät avaimet â€/system/http_proxy/" "authentication_user†ja â€/system/http_proxy/authentication_passwordâ€." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Välipalvelinta käyttämättömät isäntäkoneet" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "HTTP-välipalvelimelle välittyvä todentava salasana." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Välipalvelimen asetustapa" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "SOCKS-välipalvelimen nimi" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "SOCKS-välipalvelimen portti" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "SHTTP-välipalvelimen nimi" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "SHTTP-välipalvelimen portti" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Valitse välipalvelimen asetustapa. Mahdolliset arvot ovat â€none†(ei " "mikään), â€manual†(asetukset käsin), â€auto†(automaattinen)." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "FTP-välipalvelimena toimivan koneen nimi." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "HTTP-välipalvelimena toimivan koneen nimi." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "SHTTP-välipalvelimena toimivan koneen nimi." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "SOCKS-välipalvelimena toimivan koneen nimi." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/" "http_proxy/hostâ€." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/proxy/" "ftp_hostâ€." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/proxy/" "secure_hostâ€." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/proxy/" "socks_hostâ€." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Tämä avain sisältää luettelon isäntäkoneista, joihin yhteys muodostetaan " "suoraan, ei välipalvelimen kautta (vaikka se olisi toiminnassa). Arvot " "voivat olla konenimiä, verkkoalueita (joissa alussa jokerimerkki, kuten *." "testi.fi), IP-osoitteita (IPv4 tai IPv6) ja verkko-osoitteita " "verkkopeitteellä (kuten 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL, joka tarjoaa välipalvelinasetukset." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Käytä HTTP-välipalvelinta" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "HTTP-välipalvelimelle välittyvä todentava käyttäjätunnus" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-työryhmä" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows-verkkojen työryhmä tai aluenimi, johon käyttäjä kuuluu. Jotta uusi " "työryhmänimi toimii kaikkialla, voi olla tarpeen kirjautua uudestaan sisään " "järjestelmään muutoksen jälkeen." #~ msgid "Could not initialize Bonobo" #~ msgstr "Bonobon käynnistys epäonnistui" #~ msgid "Could not initialize gnome vfs" #~ msgstr "Gnome-vfs:n alustus epäonnistui" #~ msgid "Standard Moniker factory" #~ msgstr "Standardimoniker-tehdas" #~ msgid "file MonikerExtender" #~ msgstr "tiedosto-MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "yleinen Gnome VFS -moniker" #~ msgid "generic file moniker" #~ msgstr "yleinen tiedostomoniker" #~ msgid "Server certificate was missing commonName attribute in subject name" #~ msgstr "Palvelimen varmenteen aiheen nimestä puuttuu attribuutti commonName" #~ msgid "SSL negotiation failed: %s" #~ msgstr "SSL-kättely epäonnistui: %s" #~ msgid "Server did not send certificate chain" #~ msgstr "Palvelin ei lähettänyt varmenneketjua" #~ msgid "Response exceeds maximum property count" #~ msgstr "Vastauksessa on useampia ominaisuuksia kuin on sallittu" #~ msgid "Could not parse response: %s" #~ msgstr "Vastausta ei voitu tulkita: %s" #~ msgid "Display SCSI drives" #~ msgstr "Näytä SCSI-väylän asemat" #~ msgid "Display SCSI optical drives" #~ msgstr "Näytä SCSI-väylän optiset asemat" #~ msgid "Display drives with removable media" #~ msgstr "Näytä irroitettavat asemat" #~ msgid "Display external drives" #~ msgstr "Näytä ulkoiset asemat" #~ msgid "Display internal hard drives" #~ msgstr "Näytä sisäiset kiintolevyt" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Näytetäänkö SCSI-väylän optiset laitteet, vaikka avain /system/storage/" #~ "display_scsi_drives olisi asetettu arvoon FALSE." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "Näytetäänkö SCSI-väylän kiintolevyt ja liitettävät asemat" #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Näytetäänkö asemat ja liitettävät taltiot irroitettavilta asemilta " #~ "(asemilta joissa mediaa voidaan laittaa ja poistaa asemasta)" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Näytetäänkö asemat ja liitettävät taltiot ulkoisilta kiintolevyiltä " #~ "(kiintolevyiltä, jotka voidaan liittää ja irroittaa järjestelmästä " #~ "järjestelmän ollessa käytössä)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Näytetäänkö asemat asemat ja liitettävät taltiot sisäisiltä " #~ "kiintolevyiltä (Optiset asemat muissa kuin SCSI-väylässä näytetään aina)." #~ msgid "The window workgroup the user is part of" #~ msgstr "Windows-työryhmä, johon käyttäjä kuuluu" gnome-vfs-2.24.4/po/ca@valencia.po0000644000175000001440000023347611413132751013602 00000000000000# gnome-vfs translation to Catalan. # Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006 The Free Software Foundation, Inc. # Softcatalà , 2000, 2001. # Jordi Mallach , 2002-2006. # Xavier Conde Rueda , 2006 # Gil Forcada , 2009 # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.11.92\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-23 00:47+0200\n" "PO-Revision-Date: 2010-03-29 20:57+0200\n" "Last-Translator: Gil Forcada \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Volum ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u conté caràcters NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u no conté cap nom de mètode." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u no té un marcador final d'opcions." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u té opcions desconegudes %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u no conté cap nom de mòdul." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "El fitxer de configuració `%s' no ha estat trobat: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d s'ha cancel·lat l'anàlisi." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Volum AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Volum de xarxa AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Volum autodetectat" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Volum de Btrfs Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Unitat de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Àudio digital de CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volum de dispositiu de maquinari" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Volum d'EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Volum d'eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Volum d'Ext2 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Volum d'Ext3 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Volum d'Ext4 Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Volum d'MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Volum de BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Volum de FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Volum del MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Volum de CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Volum de CD-ROM Hsfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Volum de JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Volum de Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Volum del sistema" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Volum de memòria" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Volum de Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Volum de xarxa NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Volum NILFS de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Volum de Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Volum de Linux Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Volum de Linux ReiserFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Volum compartit de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Volum de Supermount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Volum de DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Volum de Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Volum Udfs de Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Volum Pcfs de Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Volum SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Volum temporal" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Volum millorat de DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Volum VFAT de Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Volum de Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Volum XFS de Linux" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Volum de XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Volum de CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Desconegut" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Volum de %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "Unitat %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "Unitat %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Unitat de disquet" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Unitat Compact Flash" # No tradueixo Memory Stick pq crec que és el producte concret, no una "memòria portàtil" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Unitat Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Unitat Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "Unitat SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Unitat Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Unitat Jaz" # "pen drive" -> "llapis de memòria" (termcat) /josep #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Unitat de memòria portàtil" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Reproductor de música %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Càmera digital %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Unitat" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s extern" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Disc CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Disc CD-R en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Disc CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Disc CD-RW en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Disc CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Disc DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Disc DVD-RAM en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "Disc DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Disc DVD-R en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Disc DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Disc DVD-RW en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Disc DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Disc DVD+R en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Disc DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Disc DVD+RW en blanc" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Disc DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Disc d'àudio" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Volum extraïble %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volum" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "No es coneix el tipus d'operació %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "No es pot crear la connexió per obrir GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "No es coneix el tipus de treball %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Operació aturada" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "La funció està desaconsellada. Ja no es permeten les modificacions d'usuari " "a la base de dades MIME." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "No s'ha pogut analitzar: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "S'ignoraran els següents errors d'anàlisi." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Cap error" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fitxer no trobat" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Error genèric" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Error intern" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Paràmetres no vàlids" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Operació no implementada" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Error E/S" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Dades corruptes" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Format no vàlid" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Fitxer associat incorrecte" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fitxer massa gran" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "No hi ha prou espai en el dispositiu" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Sistema de fitxers de només lectura" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI no vàlid" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fitxer no obert" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "El mode d'obertura no és vàlid" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Accés denegat" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Massa fitxers oberts" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Fi del fitxer" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "No és un directori" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operació en progrés" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operació interrompuda" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "El fitxer ja existeix" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "S'han trobat enllaços amb bucles" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "L'operació no es permet" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "És un directori" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "No hi ha prou memòria" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "No s'ha trobat el servidor" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "El nom de servidor no és vàlid" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "El servidor no té adreça" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Ha fallat l'entrada" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "S'ha cancel·lat l'operació" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Directori ocupat" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "El directori no és buit" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Hi ha massa enllaços" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "El sistema de fitxers és de només lectura" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "No és del mateix sistema de fitxers" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Nom massa llarg" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "El servei no està disponible" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Sol·licita les dades de serveis obsolets" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Error de protocol" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "No s'ha trobat el navegador mestre" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "No hi ha cap acció per defecte associada" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "No hi ha cap gestor per l'esquema d'URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "S'ha produït un error en analitzar la línia d'ordes" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "S'ha produït un error en executar l'orde" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "S'ha esgotat el temps d'espera" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Error del servidor de noms" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "El recurs és blocat" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "La crida a la funció està desaconsellada" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "El nom del fitxer no és vàlid" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "No és un enllaç simbòlic" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Error desconegut" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u octets" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (Unicode invàlid)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Disquet" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disc" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "Unitat USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "Unitat IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memòria portàtil" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Càmera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Volum arrel" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "CD d'àudio" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Volum desconegut" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Servidor de xarxa" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "No s'ha pogut muntar la disquetera. Segurament no hi ha cap disquet a la " "unitat." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "No s'ha pogut muntar el volum. Segurament no hi ha cap medi al dispositiu." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "No s'ha pogut muntar la disquetera. El disquet probablement és en un format " "que no es pot muntar." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "No s'ha pogut muntar el volum. Si és una unitat xifrada, potser s'ha fet " "servir una contrasenya o clau incorrectes." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "No s'ha pogut muntar el volum seleccionat. El volum probablement és en un " "format que no es pot muntar." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "No s'ha pogut muntar la unitat de disquet seleccionada." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "No s'ha pogut muntar el volum seleccionat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "No s'ha pogut muntar el volum seleccionat. Hi ha un o més programes que " "l'utilitzen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "No s'ha pogut desmuntar el volum seleccionat." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "No s'ha pogut llegir del procés fill %d: (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "No s'ha pogut executar el procés de muntatge en un pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "S'ha produït un error inesperat a select() durant la lectura de dades d'un " "procés fill (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "No s'ha pogut enviar una contrasenya al procés de mount." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "S'ha produït un error inesperat a waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "No s'ha pogut iniciar l'orde" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "No s'ha pogut ejectar el medi" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "No s'ha pogut desmuntar el servidor connectat." #: ../modules/computer-method.c:543 msgid "Network" msgstr "Xarxa" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Inici" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Sistemes de fitxers" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "GnomeVFSSeekPosition %d desconeguda" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Xarxa de Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "No es coneix la identitat de l'ordinador remot (%s)." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Això passa quan entreu en un ordinador per primera vegada.\n" "\n" "La identitat enviada per l'ordinador remot és %s. Si voleu estar " "completament segur que és prudent continuar, contacteu amb l'administrador " "del sistema." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Entra igualment" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Cancel·la l'entrada" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "No s'ha trobat un fitxer de configuració vàlid a %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Utilitzeu la variable d'entorn %s per a especificar una localització " "diferent.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "El vostre servidor intermediari d'HTTP requereix que hi entreu.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Heu d'entrar primer per a poder accedir a «%s».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "La vostra contrasenya es transmetrà sense xifrar." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "La vostra contrasenya es transmetrà xifrada." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Heu d'entrar per a poder accedir a %s sota el domini %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Heu d'entrar per a poder accedir a %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Aplicació de visualització de components predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Aplicació de terminal predeterminada" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Argument d'execució per al terminal predeterminat" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "L'aplicació a usar per a visualitzar fitxers que requereixen un component " "per a poder ser visualitzats. Es reemplaçarà el paràmetre %s amb l'URI del " "fitxer, i es reemplaçarà el paràmetre %c amb l'IID del component." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "L'aplicació de terminal a usar per defecte per a aplicacions que " "requerisquen un terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" "L'argument d'execució a usar per a l'aplicació de terminal predeterminada." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Executa l'orde en un terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «aim», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «callto», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «ghelp», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «h323», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «http», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «https», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «info», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «mailto», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «man», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "L'orde utilitzada per a gestionar URL «trash», si estan habilitades." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "El gestor per a els URL «aim»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "El gestor per a els URL «callto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "El gestor per a els URL «ghelp»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "El gestor per a els URL «h323»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "El gestor per a els URL «http»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "El gestor per a els URL «https»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "El gestor per a els URL «info»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "El gestor per a els URL «mailto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "El gestor per a els URL «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "El gestor per a els URL «trash»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «aim»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «callto»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «ghelp»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «h323»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «http»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «https»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «info»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «mailto»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «man»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Vertader si el programa especificat en la clau «command» hauria de gestionar " "els URL «trash»." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Vertader si el programa per a gestionar este URL hauria d'executar-se en un " "terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «aim»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «callto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «ghelp»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «h323»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «http»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «https»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «info»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «mailto»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «man»" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Si l'orde especificada hauria de gestionar els URL «trash»" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Llista separada per comes de dominis DNS-SD que haurien de ser visibles a la " "ubicació «network:///»." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Dominis extra dins dels quals cercar serveis DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Com mostrar serveis DNS-SD locals" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Els valors possibles són «merged», «separate» i «disabled»." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentica les connexions al servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL de configuració automàtica del servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" "Habilita els paràmetres del servidor intermediari quan s'accedeix a HTTP per " "Internet." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Nom del servidor intermediari d'FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port del servidor intermediari d'FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Nom del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Contrasenya del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Nom d'usuari del servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Si és vertader, les connexions al servidor intermediari requereixen " "autenticació. La combinació usuari/contrasenya és definida per «/system/" "http_proxy/authentication_user» i «/system/http_proxy/" "authentication_password»." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Ordinadors sense servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Contrasenya a passar com autenticació quan es fa servir el servidor " "intermediari d'HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Mode de configuració del servidor intermediari" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Nom del servidor intermediari de SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port del servidor intemediari de SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Port del servidor intermediari d'HTTP segur" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port del servidor intermediari d'HTTP segur" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Selecciona el mode de configuració del servidor intermediari. Els valors " "disponibles són «none» (cap), «manual», «auto»." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "El nom del servidor que fa de servidor intermediari d'FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "El nom del servidor que fa de servidor intemediari d'HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "El nom del servidor que fa de servidor intermediari d'HTTP segur." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "El nom del servidor que fa de servidor intermediari de socks." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "El port a l'ordinador definit per «/system/http_proxy/host» pel que escolta " "el servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "El port a l'ordinador definit per «/system/proxy/ftp_host» pel que escolta el " "servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "El port a l'ordinador definit per «/system/proxy/secure_host» pel que escolta " "el servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "El port a l'ordinador definit per «/system/proxy/socks_host» pel que escolta " "el servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Esta clau conté una llista d'ordinadors als que s'està connectat " "directament, i no a través d'un servidor intermediari (si és actiu). Els " "valors poden ser noms d'ordinador, dominis (usant un comodí inicial, com *." "foo.com), adreces IP d'ordinadors (tant IPv4 com IPv6) i adreces de xarxa " "amb una màscara de xarxa (alguna cosa com 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL que proveeix valors de configuració del servidor intermediari." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Utilitza un servidor intermediari d'HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Nom d'usuari a passar com autenticació quan es fa servir el servidor " "intermediari d'HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Grup de treball d'SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "El grup de treball o domini de la xarxa de Windows al qual pertany l'usuari. " "Per a que un grup de treball nou tinga efecte, és possible que l'usuari " "necessite eixir i tornar a entrar." #~ msgid "Could not initialize Bonobo" #~ msgstr "No s'ha pogut inicialitzar Bonobo" #~ msgid "Could not initialize gnome vfs" #~ msgstr "No s'ha pogut inicialitzar gnome vfs" #~ msgid "Standard Moniker factory" #~ msgstr "Factoria de Moniker estàndard" #~ msgid "file MonikerExtender" #~ msgstr "fitxer MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "Moniker de Gnome VGS genèric" #~ msgid "generic file moniker" #~ msgstr "Moniker de fitxer genèric" #~ msgid "Display SCSI drives" #~ msgstr "Mostra les unitats SCSI" #~ msgid "Display SCSI optical drives" #~ msgstr "Mostra les unitats òptiques SCSI" #~ msgid "Display drives with removable media" #~ msgstr "Mostra les unitats amb medis extraïbles" #~ msgid "Display external drives" #~ msgstr "Mostra les unitats externes" #~ msgid "Display internal hard drives" #~ msgstr "Mostra els discs durs interns" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats òptiques SCSI encara que /system/" #~ "storage/display_scsi_drives siga FALS." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats i volums muntables de les unitats SCSI." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Si s'hauria de mostrar unitats i volums muntables de les unitats amb " #~ "medis extraïbles (p. ex. unitats on els medis es poden inserir i " #~ "extraure)." #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats i els volums muntables de unitats " #~ "externes (p. ex. unitats «hotplug», és a dir, unitats que es poden afegir " #~ "i extreure mentres s'executa el sistema)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Si s'hauria de mostrar les unitats i volums muntables de discs durs " #~ "interns (les unitats òptiques no SCSI sempre es mostren)." #~ msgid "The window workgroup the user is part of" #~ msgstr "El grup de treball de Windows del qual és part l'usuari" #~ msgid "Optical Disc" #~ msgstr "Disc òptic" #~ msgid "Memory Stick Media" #~ msgstr "Medi de llàpis de memòria" #~ msgid "Smart Media Media" #~ msgstr "Medi Smart Media" #~ msgid "Mac OS disk" #~ msgstr "Disc de Mac OS" #~ msgid "Mac OS X disk" #~ msgstr "Disc de Mac OS X" #~ msgid "Windows Disk" #~ msgstr "Disc de Windows" #~ msgid "Linux Disk" #~ msgstr "Disc de Linux" #~ msgid "File could not be opened: %s" #~ msgstr "No s'ha pogut obrir el fitxer: %s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "No s'ha pogut obrir el fitxer «%s»: %s" #~ msgid "File is empty" #~ msgstr "El fitxer és buit" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "les entrades desktop contenen la línia «%s» que no és una entrada, grup o " #~ "comentari" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "el fitxer d'entrades desktop no comença amb un grup d'inici legal" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "les entrades desktop contenen la línia «%s» que no és UTF-8" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "les entrades desktop contenen la codificació desconeguda «%s»" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "les entrades desktop no tenen grup «%s»" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "les entrades desktop no tenen la clau «%s»" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "les entrades desktop contenen la clau «%s» amb un valor que no es pot " #~ "interpretar." #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "les entrades desktop no contenen cap valor traduir per a la clau «%s» per " #~ "al locale «%s»." #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "les entrades desktop contenen la seqüència d'escapada «%s» invàlida" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "" #~ "les entrades desktop contenen caràcters d'escapada al final de la línia" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "El valor «%s» no es pot interpretar com un nombre." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "El valor «%s» no es pot interpretar com un booleà." #~ msgid "Applications" #~ msgstr "Aplicacions" #~ msgid "Cards" #~ msgstr "Targetes" #~ msgid "Files" #~ msgstr "Fitxers" #~ msgid "Folders" #~ msgstr "Carpetes" #~ msgid "Help" #~ msgstr "Ajuda" #~ msgid "Hosts" #~ msgstr "Ordinadors" #~ msgid "Links" #~ msgstr "Enllaços" #~ msgid "Mail" #~ msgstr "Correu" #~ msgid "Tools" #~ msgstr "Eines" #~ msgid "Windows" #~ msgstr "Finestres" #~ msgid "H323 URL handler" #~ msgstr "Gestor d'URL H323" #~ msgid "HTTP URL handler" #~ msgstr "Gestor d'URL HTTP" #~ msgid "HTTPS URL handler" #~ msgstr "Gestor d'URL HTTPS" #~ msgid "callto URL handler" #~ msgstr "Gestor d'URL callto" #~ msgid "ghelp URL handler" #~ msgstr "Gestor d'URL ghelp" #~ msgid "info URL handler" #~ msgstr "Gestor d'URL info" #~ msgid "mailto URL handler" #~ msgstr "Gestor d'URL mailto" #~ msgid "man URL handler" #~ msgstr "Gestor d'URL man" #~ msgid "trash URL handler" #~ msgstr "Gestor d'URL trash" #~ msgid "3D Studio image" #~ msgstr "imatge 3D Studio" #~ msgid "AIFC audio" #~ msgstr "àudio AIFC" #~ msgid "AIFF audio" #~ msgstr "àudio AIFF" #~ msgid "ANIM animation" #~ msgstr "animació ANIM" #~ msgid "AVI video" #~ msgstr "vídeo AVI" #~ msgid "AbiWord document" #~ msgstr "document AbiWord" #~ msgid "Adobe FrameMaker font" #~ msgstr "font Adobe FrameMaker" #~ msgid "Adobe font metrics" #~ msgstr "mètrica de font Adobe" #~ msgid "Andrew Toolkit inset" #~ msgstr "sagnia Andrew Toolkit" #~ msgid "ApplixWare Graphics image" #~ msgstr "imatge ApplixWare Graphics" #~ msgid "Applixware Words document" #~ msgstr "document Applixware Words" #~ msgid "Applixware spreadsheet" #~ msgstr "full de càlcul Applixware" #~ msgid "AutoCAD image" #~ msgstr "imatge AutoCAD" #~ msgid "BCPIO document" #~ msgstr "document BCPIO" #~ msgid "BDF font" #~ msgstr "font BDF" #~ msgid "C shell script" #~ msgstr "seqüència d'intèrpret d'ordres C" #~ msgid "C source code" #~ msgstr "codi font C" #~ msgid "C source code header" #~ msgstr "capçalera de codi font C" #~ msgid "C++ source code" #~ msgstr "codi font C++" #~ msgid "CGI program" #~ msgstr "programa CGI" #~ msgid "CGM image" #~ msgstr "imatge CGM" #~ msgid "CMU raster image" #~ msgstr "imatge CMU raster" #~ msgid "CPIO archive" #~ msgstr "arxiu CPIO" #~ msgid "CPIO archive (gzip-compressed)" #~ msgstr "arxiu CPIO (comprimit amb gzip)" #~ msgid "DCL script" #~ msgstr "Seqüència DCL" #~ msgid "DOS font" #~ msgstr "font DOS" #~ msgid "DOS/Windows program" #~ msgstr "programa DOS/Windows" #~ msgid "DSSSL document" #~ msgstr "document DSSSL" #~ msgid "DXF vector graphic" #~ msgstr "gràfic vectorial DXF" #~ msgid "Debian package" #~ msgstr "paquet Debian" #~ msgid "Dia diagram" #~ msgstr "diagrama Dia" #~ msgid "Emacs Lisp source code" #~ msgstr "codi font Emacs Lisp" #~ msgid "Enlightenment theme" #~ msgstr "tema Enlightenment" #~ msgid "FLC animation" #~ msgstr "animació FLC" #~ msgid "FLI animation" #~ msgstr "animació FLI" #~ msgid "FastTracker II audio" #~ msgstr "àudio FastTracker II" #~ msgid "Fortran source code" #~ msgstr "codi font Fortran" #~ msgid "FrameMaker interchange document" #~ msgstr "document d'intercanvi FrameMaker" #~ msgid "G3 fax image" #~ msgstr "imatge fax G3" #~ msgid "GIF image" #~ msgstr "imatge GIF" #~ msgid "GIMP document" #~ msgstr "document GIMP" #~ msgid "GMC link" #~ msgstr "enllaç GMC" #~ msgid "GNOME application details" #~ msgstr "Detalls de l'aplicació GNOME" #~ msgid "GNU Oleo Spreadsheet" #~ msgstr "full de càlcul GNU Oleo" #~ msgid "GNU mail message" #~ msgstr "missatge de correu GNU" #~ msgid "Glade project" #~ msgstr "projecte Glade" #~ msgid "GnuCash Workbook" #~ msgstr "llibre de treball GnuCash" #~ msgid "Gnumeric spreadsheet" #~ msgstr "full de càlcul Gnumeric" #~ msgid "HDF document" #~ msgstr "document HDF" #~ msgid "HTML page" #~ msgstr "pàgina HTML" #~ msgid "IDL document" #~ msgstr "document IDL" #~ msgid "IEF image" #~ msgstr "imatge IEF" #~ msgid "IFF image" #~ msgstr "imatge IFF" #~ msgid "ILBM image" #~ msgstr "imatge ILBM" #~ msgid "ISI video" #~ msgstr "vídeo ISI" #~ msgid "Impulse Tracker audio" #~ msgstr "àudio Impulse Tracker" #~ msgid "JBuilder Project" #~ msgstr "projecte JBuilder" #~ msgid "JPEG image" #~ msgstr "imatge JPEG" #~ msgid "Java byte code" #~ msgstr "codi de bytes Java" #~ msgid "Java source code" #~ msgstr "codi font Java" #~ msgid "KDE application details" #~ msgstr "Detalls de l'aplicació KDE" #~ msgid "KIllustrator document" #~ msgstr "document KIllustrator" #~ msgid "KPresenter presentation" #~ msgstr "presentació KPresenter" #~ msgid "KSpread spreadsheet" #~ msgstr "full de càlcul KSpread" #~ msgid "KWord document" #~ msgstr "document KWord" #~ msgid "Korn shell script" #~ msgstr "seqüència d'intèrpret d'ordres Korn" #~ msgid "LHA archive" #~ msgstr "arxiu LHA" #~ msgid "LHARC archive" #~ msgstr "arxiu LHARC" #~ msgid "LIBGRX font" #~ msgstr "font LIBGRX" #~ msgid "LightWave object" #~ msgstr "objecte LightWave" #~ msgid "LightWave scene" #~ msgstr "escena LightWave" #~ msgid "Linux PSF console font" #~ msgstr "font de consola Linux PSF" #~ msgid "Lotus 1-2-3 spreadsheet" #~ msgstr "full de càlcul Lotus 1-2-3" #~ msgid "M3 audio URL" #~ msgstr "URL d'àudio M3" #~ msgid "MIDI audio" #~ msgstr "àudio MIDI" #~ msgid "MOD audio" #~ msgstr "àudio MOD" #~ msgid "MP3 audio" #~ msgstr "àudio MP3" #~ msgid "MP3 audio playlist" #~ msgstr "selecció de peces d'àudio MP3" #~ msgid "MPEG video" #~ msgstr "vídeo MPEG" #~ msgid "MS ASF video" #~ msgstr "vídeo MS ASF" #~ msgid "MS video" #~ msgstr "vídeo MS" #~ msgid "Macintosh AppleDouble-encoded file" #~ msgstr "fitxer codificat Macintosh AppleDouble" #~ msgid "Macintosh BinHex-encoded file" #~ msgstr "fitxer codificat Macintosh BinHex" #~ msgid "Macintosh StuffIt archive" #~ msgstr "arxiu Macintosh StuffIt" #~ msgid "Macromedia Flash file" #~ msgstr "fitxer Macromedia Flash" #~ msgid "MathML document" #~ msgstr "document MathML" #~ msgid "Microsoft Excel spreadsheet" #~ msgstr "full de càlcul Microsoft Excel" #~ msgid "Microsoft PowerPoint document" #~ msgstr "document Microsoft PowerPoint" #~ msgid "Microsoft Word document" #~ msgstr "document Microsoft Word" #~ msgid "Microsoft video" #~ msgstr "vídeo Microsoft" #~ msgid "Nautilus link" #~ msgstr "enllaç Nautilus" #~ msgid "ODA document" #~ msgstr "document ODA" #~ msgid "PBM image" #~ msgstr "imatge PBM" #~ msgid "PCF font" #~ msgstr "font PCF" #~ msgid "PDF document" #~ msgstr "document PDF" #~ msgid "PEF program" #~ msgstr "programa PEF" #~ msgid "PGM image" #~ msgstr "imatge PGM" #~ msgid "PGN chess game" #~ msgstr "joc d'escacs PGN" #~ msgid "PGP keys" #~ msgstr "claus PGP" #~ msgid "PGP message" #~ msgstr "missatge PGP" #~ msgid "PGP signature" #~ msgstr "signatura PGP" #~ msgid "PGP-encrypted file" #~ msgstr "fitxer codificat PGP" #~ msgid "PHP script" #~ msgstr "seqüència PHP" #~ msgid "PN RealAudio document" #~ msgstr "document PN RealAudio" #~ msgid "PNG image" #~ msgstr "imatge PNG" #~ msgid "PNM image" #~ msgstr "imatge PNM" #~ msgid "PPM image" #~ msgstr "imatge PPM" #~ msgid "Palm OS database" #~ msgstr "base de dades Palm OS" #~ msgid "Perl script" #~ msgstr "Seqüència Perl" #~ msgid "Photoshop document" #~ msgstr "document Photoshop" #~ msgid "PostScript Type 1 font" #~ msgstr "font PostScript Tipus 1" #~ msgid "PostScript document" #~ msgstr "document PostScript" #~ msgid "Python source code" #~ msgstr "codi font Python" #~ msgid "QuickTime movie" #~ msgstr "pel·lícula QuickTime" #~ msgid "Quicken document" #~ msgstr "document Quicken" #~ msgid "Quicken for Windows document" #~ msgstr "Quicken per a document Windows" #~ msgid "RAR archive" #~ msgstr "arxiu RAR" #~ msgid "README document" #~ msgstr "document README" #~ msgid "RGB image" #~ msgstr "imatge RGB" #~ msgid "RIFF audio" #~ msgstr "àudio RIFF" #~ msgid "RPM package" #~ msgstr "paquet RPM" #~ msgid "RealAudio/Video document" #~ msgstr "document RealAudio/Video" #~ msgid "RealVideo video" #~ msgstr "vídeo RealVideo" #~ msgid "S/MIME file" #~ msgstr "Fitxer S/MIME" #~ msgid "S/MIME signature" #~ msgstr "signatura S/MIME" #~ msgid "SGI video" #~ msgstr "vídeo SGI" #~ msgid "SGML document" #~ msgstr "document SGML" #~ msgid "SMIL script" #~ msgstr "seqüència SMIL" #~ msgid "SQL code" #~ msgstr "codi SQL" #~ msgid "SV4 CPIO archive" #~ msgstr "arxiu SV4 CPIO" #~ msgid "SV4 CPIP archive (with CRC)" #~ msgstr "arxiu SV4 CPIP (amb CRC)" #~ msgid "SVG art" #~ msgstr "art SVG" #~ msgid "Scream Tracker 3 audio" #~ msgstr "àudio Scream Tracker 3" #~ msgid "Scream Tracker audio" #~ msgstr "àudio Scream Tracker" #~ msgid "Scream Tracker instrument" #~ msgstr "instrument Scream Tracker" #~ msgid "Setext document" #~ msgstr "document Setext" #~ msgid "Speech document" #~ msgstr "document Speech" #~ msgid "Speedo font" #~ msgstr "font Speedo" #~ msgid "Spreadsheet Interchange document" #~ msgstr "document SpreadSheet Interchange" #~ msgid "Stampede package" #~ msgstr "paquet Stampede" #~ msgid "StarOffice Writer document" #~ msgstr "document StarOffice Writer" #~ msgid "StarOffice presentation" #~ msgstr "presentació StarOffice" #~ msgid "StarOffice spreadsheet" #~ msgstr "full de càlcul StarOffice" #~ msgid "Sun mu-law audio" #~ msgstr "àudio Sun µ-law" #~ msgid "SunOS News font" #~ msgstr "font SunOS News" #~ msgid "TIFF image" #~ msgstr "imatge TIFF" #~ msgid "TarGA image" #~ msgstr "imatge TarGA" #~ msgid "Tcl script" #~ msgstr "seqüència Tcl" #~ msgid "TeX document" #~ msgstr "document TeX" #~ msgid "TeX dvi document" #~ msgstr "document TeX dvi" #~ msgid "TeX font" #~ msgstr "font TeX" #~ msgid "TeX font metrics" #~ msgstr "mètrica de font TeX" #~ msgid "TeXInfo document" #~ msgstr "document TeXInfo" #~ msgid "ToutDoux document" #~ msgstr "document ToutDoux" #~ msgid "TrueType font" #~ msgstr "font TrueType" #~ msgid "USENET news message" #~ msgstr "missatge USENET" #~ msgid "Unidata netCDF document" #~ msgstr "document netCDF Unidata" #~ msgid "V font" #~ msgstr "font V" #~ msgid "VOC audio" #~ msgstr "àudio VOC" #~ msgid "VRML document" #~ msgstr "document VRML" #~ msgid "Vivo video" #~ msgstr "vídeo Vivo" #~ msgid "WAIS source code" #~ msgstr "codi font WAIS" #~ msgid "Wavelet video" #~ msgstr "vídeo Wavelet" #~ msgid "Windows bitmap image" #~ msgstr "imatge de mapa de bits Windows" #~ msgid "Windows metafile graphics" #~ msgstr "gràfics de metafitxer Windows" #~ msgid "WordPerfect document" #~ msgstr "document WordPerfect" #~ msgid "X bitmap image" #~ msgstr "imatge de mapa de bits X" #~ msgid "X window image" #~ msgstr "imatge X Window" #~ msgid "XML document" #~ msgstr "document XML" #~ msgid "XPM image" #~ msgstr "imatge XPM" #~ msgid "Xbase database" #~ msgstr "base de dades Xbase" #~ msgid "active server page" #~ msgstr "pàgina del servidor actiu" #~ msgid "address card" #~ msgstr "targeta d'adreces" #~ msgid "ar archive" #~ msgstr "arxiu ar" #~ msgid "arj archive" #~ msgstr "arxiu arj" #~ msgid "authors list" #~ msgstr "llistat d'autors" #~ msgid "backup file" #~ msgstr "còpia de seguretat" #~ msgid "basic audio" #~ msgstr "àudio bàsic" #~ msgid "bibliography record" #~ msgstr "registre bibliogràfic" #~ msgid "binary program" #~ msgstr "programa binari" #~ msgid "block device" #~ msgstr "dispositiu de bloqueig" #~ msgid "bzip-compressed file" #~ msgstr "fitxer comprimit amb bzip" #~ msgid "calendar file" #~ msgstr "fitxer calendari" #~ msgid "calendar or event document" #~ msgstr "document calendari o esdeveniment" #~ msgid "character device" #~ msgstr "dispositiu de caràcters" #~ msgid "comma-separated text document" #~ msgstr "document separat per comes" #~ msgid "compound document" #~ msgstr "document compost" #~ msgid "compress-compressed file" #~ msgstr "fitxer comprimit amb compress" #~ msgid "compressed GIMP document" #~ msgstr "document comprimit amb GIMP" #~ msgid "directory information file" #~ msgstr "fitxer d'informació del directori" #~ msgid "document type definition" #~ msgstr "definició del tipus de document" #~ msgid "email message" #~ msgstr "missatge de correu electrònic" #~ msgid "encrypted message" #~ msgstr "missatge encriptat" #~ msgid "enriched text document" #~ msgstr "document de text enriquit" #~ msgid "gtar archive" #~ msgstr "arxiu gtar" #~ msgid "gzip-compressed file" #~ msgstr "fitxer comprimit amb gzip" #~ msgid "help page" #~ msgstr "pàgina d'ajuda" #~ msgid "mail delivery report" #~ msgstr "informe del lliurament del correu" #~ msgid "mail disposition report" #~ msgstr "informe de la clasificació del correu" #~ msgid "mail system report" #~ msgstr "informe de sistema de correu" #~ msgid "makefile" #~ msgstr "makefile" #~ msgid "manual page" #~ msgstr "pàgina manual" #~ msgid "manual page (compressed)" #~ msgstr "pàgina manual (comprimida)" #~ msgid "message digest" #~ msgstr "resum del missatge" #~ msgid "message in several formats" #~ msgstr "missatge en diferents formats" #~ msgid "multi-part message" #~ msgstr "missatge multipart" #~ msgid "named pipe" #~ msgstr "conducte designat" #~ msgid "object code" #~ msgstr "codi objecte" #~ msgid "ogg audio" #~ msgstr "àudio ogg" #~ msgid "partial email message" #~ msgstr "missatge de correu parcial" #~ msgid "plain text document" #~ msgstr "document de text" #~ msgid "profiler results" #~ msgstr "resultats del perfilador" #~ msgid "reference to remote file" #~ msgstr "refèrencia al fitxer remot" #~ msgid "rejected patch file" #~ msgstr "fitxer pedaç rebutjat" #~ msgid "rich text document" #~ msgstr "document de text enriquit" #~ msgid "search results" #~ msgstr "resultats de la cerca" #~ msgid "shared library" #~ msgstr "biblioteca compartida" #~ msgid "shell archive" #~ msgstr "arxiu d'intèrpret d'ordres" #~ msgid "shell script" #~ msgstr "Seqüència de l''intèrpret d'ordres" #~ msgid "signed message" #~ msgstr "missatge signat" #~ msgid "socket" #~ msgstr "sòcol" #~ msgid "software author credits" #~ msgstr "crèdits d'autoria del programari" #~ msgid "software installation instructions" #~ msgstr "instruccions d'instal·lació del programari" #~ msgid "software license terms" #~ msgstr "condicions de la llicència del programari" #~ msgid "source code patch" #~ msgstr "pedaç de codi font" #~ msgid "style sheet" #~ msgstr "full d'estil" #~ msgid "tab-separated text document" #~ msgstr "document de text separat per tabulació" #~ msgid "tar archive" #~ msgstr "arxiu tar" #~ msgid "tar archive (bzip2-compressed)" #~ msgstr "arxiu tar (comprimit amb bzip2)" #~ msgid "tar archive (gzip-compressed)" #~ msgstr "arxiu tar (comprimit amb gzip)" #~ msgid "theme" #~ msgstr "tema" #~ msgid "troff document" #~ msgstr "document troff" #~ msgid "troff me input document" #~ msgstr "document d'entrada troff me" #~ msgid "troff mm input document" #~ msgstr "document d'entrada troff mm" #~ msgid "troff ms input document" #~ msgstr "document d'entrada troff ms" #~ msgid "unknown type" #~ msgstr "tipus desconegut" #~ msgid "ustar archive" #~ msgstr "arxiu ustar" #~ msgid "wave audio" #~ msgstr "àudio wave" #~ msgid "web folder" #~ msgstr "carpeta web" #~ msgid "xfig vector graphic" #~ msgstr "gràfic vectorial xfig" #~ msgid "zoo archive" #~ msgstr "arxiu zoo" #~ msgid "GNOME VFS already initialized." #~ msgstr "GNOME VFS ja està inicialitzat." #~ msgid "%s to retrieve" #~ msgstr "%s per recuperar" #~ msgid "Closing connection to %s" #~ msgstr "S'està tancant la connexió a %s" #~ msgid "%s of %s read" #~ msgstr "%s de %s llegit" #~ msgid "%s read" #~ msgstr "%s llegit" #~ msgid "Dying." #~ msgstr "S'està morint." #~ msgid "Error reading: %s" #~ msgstr "Error en llegir: %s" #~ msgid "Error writing: %s" #~ msgstr "Error en escriure: %s" #~ msgid "Cannot write: %s" #~ msgstr "No es pot escriure: %s" #~ msgid "Cannot create temporary file name `%s'" #~ msgstr "No es pot crear el fitxer temporal de nom `%s'" #~ msgid "Cannot create socket: %s" #~ msgstr "No es pot crear l'enllaç: %s" #~ msgid "Cannot bind `%s': %s" #~ msgstr "No es pot vincular `%s': %s" #~ msgid "Cannot listen on `%s': %s" #~ msgstr "No es pot atendre a `%s': %s" #~ msgid "Cannot accept connections on `%s': %s" #~ msgstr "No es poden acceptar connexions en `%s': %s" #~ msgid "Cannot resolve initial reference to RootPOA." #~ msgstr "No es pot resoldre la referència inicial al RootPOA." #~ msgid "Cannot activate POA manager." #~ msgstr "No es pot activar el gestor POA." #~ msgid "Usage: %s []\n" #~ msgstr "Utilització: %s []\n" #~ msgid "Cannot open file descriptor %d." #~ msgstr "No es pot obrir el descriptor de fitxers %d." #~ msgid "Notify interface for `%s' not found." #~ msgstr "No s'ha trobat la interfície de notificació per a `%s'." #~ msgid "Cannot setup Request object." #~ msgstr "No es pot configurar l'objecte demanat." #~ msgid "Cannot extract IOR." #~ msgstr "No es pot extreure l'IOR." #~ msgid "Got weird string from the slave process: `%s'" #~ msgstr "S'ha obtingut una cadena estranya del procés esclau: `%s' " #~ msgid "Cannot get object for `%s'" #~ msgstr "No es pot obtenir l'objecte per a `%s'" #~ msgid "Cannot kill GNOME::VFS::Slave::Notify -- exception %s" #~ msgstr "No es pot matar GNOME::VFS::Esclau::Notifica -- excepció %s" #~ msgid "Cannot connect socket `%s': %s" #~ msgstr "No es pot connectar l'enllaç `%s': %s" #~ msgid "Cannot initialize GNOME::VFS:Slave::Notify" #~ msgstr "No es pot inicialitzar GNOME::VFS:Esclau::Notifica" #~ msgid "Cannot reset GNOME::VFS::Slave %s -- exception %s" #~ msgstr "No es pot reinicialitzar GNOME::VFS::Esclau %s -- excepció %s" #~ msgid "Cannot reset GNOME::VFS::Slave (IOR unknown) -- exception %s" #~ msgstr "" #~ "No es pot reinicialitzar GNOME::VFS::Esclau (IOR unknown) -- excepció %s" #~ msgid "Cannot kill GNOME::VFS::Slave %s -- exception %s" #~ msgstr "No es pot matar GNOME::VFS::Esclau %s -- excepció %s" #~ msgid "Cannot kill GNOME::VFS::Slave (IOR unknown) -- exception %s" #~ msgstr "No es pot matar GNOME::VFS::Esclau (IOR unknown) -- excepció %s" #~ msgid "Back" #~ msgstr "Enrere" #~ msgid "Go to the previously visited directory" #~ msgstr "Vés al directori visitat anteriorment" #~ msgid "Up" #~ msgstr "Amunt" #~ msgid "Go to the parent directory" #~ msgstr "Vés al directori pare" #~ msgid "Forward" #~ msgstr "Endavant" #~ msgid "Go to the next visited directory" #~ msgstr "Vés al directori visitat següent" #~ msgid "Rescan" #~ msgstr "Torna a explorar" #~ msgid "Rescan the current directory" #~ msgstr "Torna a explorar el directori actual" #~ msgid "Go to the home directory" #~ msgstr "Vés al directori arrel" #~ msgid "Size" #~ msgstr "Mida" #~ msgid "Date" #~ msgstr "Data" #~ msgid "Enter name:" #~ msgstr "Introduïu el nom:" #~ msgid "Show:" #~ msgstr "Mostra:" #~ msgid "Show dotfiles" #~ msgstr "Mostra els fiters de plantilla" #~ msgid "Edit Applications List" #~ msgstr "Edita la llista d'aplicacions" #~ msgid "Select applications to appear in menu for MIME type \"%s\"" #~ msgstr "" #~ "Seleccioneu les aplicacions que han d'aparèixer al menú per al tipus de " #~ "MIME \"%s\"" #~ msgid "Add Application..." #~ msgstr "Afegeix una aplicació..." #~ msgid "Edit Application..." #~ msgstr "Edita una aplicació..." #~ msgid "Edit Components List" #~ msgstr "Edita la llista de components" #~ msgid "Select views to appear in menu for MIME type \"%s\"" #~ msgstr "" #~ "Seleccioneu les vistes que han d'aparèixer al menú per al tipus de MIME " #~ "\"%s\"" #~ msgid "" #~ "The MIME type entered contained upper case characters. Upper case " #~ "characters were changed to lower case for you." #~ msgstr "" #~ "El tipus de MIME introduït contenia caràcters en majúscules; aquests " #~ "caràcters s'han canviat a minúscules per a la vostra comoditat." #~ msgid "Add New MIME Type" #~ msgstr "Afegeix un tipus nou de MIME" #~ msgid "Add MIME Type" #~ msgstr "Afegeix un tipus de MIME" #~ msgid "New MIME type (e.g. image/x-thumper):" #~ msgstr "Tipus nou de MIME (p.ex. image/x-thumper):" #~ msgid "Description (e.g. Thumper image):" #~ msgstr "Descripció (p.ex. imatge Thumper):" #~ msgid "File Extensions " #~ msgstr "Extensions de fitxer " #~ msgid "Add..." #~ msgstr "Afegeix..." #~ msgid " Remove " #~ msgstr " Elimina " #~ msgid "Add New Extension" #~ msgstr "Afegeix una nova extensió" #~ msgid "" #~ "Type in the extensions for this mime-type (without dot).\n" #~ "You can enter several extensions seperated by a space,\n" #~ "for example: html htm" #~ msgstr "" #~ "Escriviu les extensions per a aquest tipus de MIME (sense el punt).\n" #~ "Podeu introduir diverses extensions separant-les amb un espai,\n" #~ "per exemple: html htm" #~ msgid "Extension:" #~ msgstr "Extensió:" #~ msgid "You must enter a name." #~ msgstr "Heu d'introduir un nom." #~ msgid "You must enter a command." #~ msgstr "Heu d'introduir una ordre." #~ msgid "" #~ "\"%s\" does not exist or is not executable.\n" #~ "Check your spelling and make sure you have\n" #~ "the right permissions to execute this file." #~ msgstr "" #~ "\"%s\" no existeix o no és un executable.\n" #~ "Comproveu que ho heu escrit correctament i que teniu\n" #~ "els permisos necessaris per executar aquest fitxer." #~ msgid "" #~ "The command \"%s\" cannot be found.\n" #~ "You must use a command that can work from any command line." #~ msgstr "" #~ "No es pot trobar l'ordre \"%s\".\n" #~ "Heu d'utilitzar una ordre que funcioni des de qualsevol línia d'ordres." #~ msgid "Bad Application Name" #~ msgstr "Nom incorrecte de l'aplicació" #~ msgid "Bad Application Command" #~ msgstr "Ordre incorrecta de l'aplicació" #~ msgid "Edit Application" #~ msgstr "Edita una aplicació" #~ msgid "Application Name:" #~ msgstr "Nom de l'aplicació:" #~ msgid "Application Command:" #~ msgstr "Ordre de l'aplicació:" #~ msgid "Open Behavior" #~ msgstr "Obre el comportament" #~ msgid "Can open multiple files" #~ msgstr "Es poden obrir diversos fitxers" #~ msgid "Can open from URI" #~ msgstr "Es pot obrir des de l'URI" #~ msgid "MIME Type" #~ msgstr "Tipus de MIME" #~ msgid "Change File Extensions" #~ msgstr "Canvia les extensions de fitxer" #~ msgid "Default Action:" #~ msgstr "Acció per defecte:" #~ msgid "Use Viewer" #~ msgstr "Utilitza el visualitzador" #~ msgid "Open With Application" #~ msgstr "Obre amb l'aplicació" #~ msgid "Edit List" #~ msgstr "Edita la llista" #~ msgid "Add New MIME Type..." #~ msgstr "Afegeix un nou tipus de MIME..." #~ msgid "Delete This MIME Type" #~ msgstr "Suprimeix aquest tipus de MIME" #~ msgid "Revert to System Defaults" #~ msgstr "Torna als valors per defecte del sistema" #~ msgid "None" #~ msgstr "Cap" #~ msgid "" #~ "Reverting to system settings will lose any changes\n" #~ "you have ever made to File Types and Programs.\n" #~ "Revert anyway?" #~ msgstr "" #~ "Si torneu als paràmetres del sistema perdreu qualsevol canvi\n" #~ "que mai hagueu fet als tipus de fitxer i als programes.\n" #~ "Voleu tornar-hi igualment?" #~ msgid "none" #~ msgstr "cap" #~ msgid "View as %s" #~ msgstr "Visualitza com a %s" #~ msgid "Description" #~ msgstr "Descripció" #~ msgid "Default Action" #~ msgstr "Acció per defecte" #~ msgid "Can't find an hbox, using a normal file selection" #~ msgstr "" #~ "No es pot trobar cap hbox, s'està utilitzant una selecció de fitxer normal" #~ msgid "Preview" #~ msgstr "Previsualitza" #~ msgid "Select an icon" #~ msgstr "Seleccioneu una icona" #~ msgid "Unknown sort rule %d" #~ msgstr "Regla d'ordenació desconeguda %d" #~ msgid "Error writing to the wakeup GnomeVFSJob channel." #~ msgstr "Error en escriure en el canal d'avís GnomeVFSJob" #~ msgid "" #~ "Add a new Mime Type\n" #~ "For example: image/tiff; text/x-scheme" #~ msgstr "" #~ "Afegiu un nou tipus de MIME\n" #~ "Per exemple: image/tiff; text/x-scheme" #~ msgid "Mime Type:" #~ msgstr "Tipus de MIME:" #~ msgid "Type in a description for this mime-type." #~ msgstr "Escriviu una desripció per a aquest tipus de MIME." #~ msgid "Description:" #~ msgstr "Descripció:" #~ msgid "New Application" #~ msgstr "Nova aplicació" #~ msgid "Action" #~ msgstr "Acció" #~ msgid "HTTP server returned an invalid PROPFIND response" #~ msgstr "El servidor HTTP ha retornat una resposta PROPFIND no vàlida" #~ msgid "ftpfs: Invalid host name." #~ msgstr "ftpfs: Nom de servidor no vàlid." #~ msgid "ftpfs: Invalid host address." #~ msgstr "ftpfs: Adreça de servidor no vàlida." #~ msgid "ftpfs: making connection to %s" #~ msgstr "ftpfs: connectant-se a %s" #~ msgid "ftpfs: connection interrupted by user" #~ msgstr "ftpfs: connexió interrompuda per l'usuari" #~ msgid "ftpfs: connection to server failed: %s" #~ msgstr "ftpfs: connexió al servidor fallida: %s" #~ msgid "Waiting to retry... %d (Control-C to cancel)" #~ msgstr "" #~ "S'està esperant per reintentar-ho... %d (Control-C per cancel·lar-ho)" #~ msgid " FTP: Password required for " #~ msgstr " FTP: Contrasenya requerida per " #~ msgid "ftpfs: sending login name" #~ msgstr "ftpfs: s'està enviant el nom d'entrada" #~ msgid "ftpfs: sending user password" #~ msgstr "ftpfs: s'està enviant la contrasenya de l'usuari" #~ msgid "ftpfs: logged in" #~ msgstr "ftpfs: connectat" #~ msgid "ftpfs: Login incorrect for user %s " #~ msgstr "ftpfs: Entrada incorrecta per a l'usuari %s " #~ msgid "ftpfs: aborting transfer." #~ msgstr "ftpfs: s'està avortant la transferència." #~ msgid "ftpfs: abort error: %s" #~ msgstr "ftpfs: error en avortar: %s" #~ msgid "ftpfs: abort failed" #~ msgstr "ftpfs: avortament fallit" #~ msgid "ftpfs: could not setup passive mode" #~ msgstr "ftpfs: no s'ha pogut configurar el mode passiu" #~ msgid "ftpfs: storing file %d (%d)" #~ msgstr "ftpfs: s'està emmagatzemant el fitxer %d (%d)" #~ msgid "ftpfs: CWD failed." #~ msgstr "ftpfs: CWD fallit." #~ msgid "ftpfs: couldn't resolve symlink" #~ msgstr "ftpfs: No s'ha pogut resoldre l'enllaç simbòlic" #~ msgid "Resolving symlink..." #~ msgstr "S'està resolent l'enllaç simbòlic..." #~ msgid "ftpfs: Reading FTP directory %s... (don't use UNIX ls options)" #~ msgstr "" #~ "ftpfs: S'està llegint el directori FTP %s... (no utilitzeu les opcions ls " #~ "de UNIX)" #~ msgid "ftpfs: Reading FTP directory %s..." #~ msgstr "ftpfs: S'està llegint el directori FTP %s..." #~ msgid "ftpfs: reading FTP directory interrupted by user" #~ msgstr "ftpfs: lectura del directori FTP interrompuda per l'usuari" #~ msgid "ftpfs: got listing" #~ msgstr "ftpfs: llistat rebut" #~ msgid "ftpfs: failed; nowhere to fallback to" #~ msgstr "ftpfs: fallit; enlloc per anar" #~ msgid "Starting linear transfer..." #~ msgstr "S'està iniciant transferència lineal..." #~ msgid "Preparing reget..." #~ msgstr "S'està preparant la recuperació..." gnome-vfs-2.24.4/po/sr.po0000644000175000001440000020625511354402652012037 00000000000000# Serbian translation of gnome-vfs # Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005, 2006, 2007. # # This file is distributed under the same license as the gnome-vfs package. # # Maintainer: Душан Живојнов # Reviewed on 2004-02-03 by: Данило Шеган # Reviewed on 2005-07-08 by: Данило Шеган # Reviewed on 2005-09-22 by: Данило Шеган # msgid "" msgstr "" "Project-Id-Version: gnome-vfs\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-12-14 21:54+0000\n" "PO-Revision-Date: 2010-03-09 20:37+0100\n" "Last-Translator: Горан Ракић \n" "Language-Team: Serbian (sr) \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ИСО 9660 диÑк" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u Ñадржи NUL знакове." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u не Ñадржи име метода." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u не Ñадржи ознаку краја опција." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u кориÑти непознате опције %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u не Ñадржи име модула." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Датотека Ñа подешавањима „%s“ није нађена: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d је прекинуо рашчлањивање." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Мрежни AFS диÑк" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Самопрепозната партиција" # bug: does it differentiate between Hurd Ext2 and Linux Ext2? #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #| msgid "Ext2 Linux Volume" msgid "Btrfs Linux Volume" msgstr "ЛинукÑова Btrfs партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "ЦД уређај" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Музички диÑк" # bug(slobo): хм, не бих рекао #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "ДиÑк на хардверÑком уређају" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 #| msgid "Memory Volume" msgid "eCryptfs Volume" msgstr "eCryptfs партиција" # bug: does it differentiate between Hurd Ext2 and Linux Ext2? #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "ЛинукÑова ЕкÑÑ‚2 партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "ЛинукÑова ЕкÑÑ‚3 партиција" # bug: does it differentiate between Hurd Ext2 and Linux Ext2? #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #| msgid "Ext2 Linux Volume" msgid "Ext4 Linux Volume" msgstr "ЛинукÑова ЕкÑÑ‚4 партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "МСДОС партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "БСД партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "ФУСЕ партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "МекОС партиција" # ЦеДе диÑк, а не „Компактни диÑк диÑк“ #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "ЦД јединица" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs ЦД јединица" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "ЈФС партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "СиÑтемÑка партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "МеморијÑка партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "МиникÑова партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "ЛинукÑова ÐФС партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 #| msgid "XFS Linux Volume" msgid "NILFS Linux Volume" msgstr "ЛинокÑова NILFS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Ðетвер партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "ЛинукÑова Рајзер4 партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ЛинукÑова РајзерФС партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Дељениа Windows партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "СуперМоунт партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "ДВД јединица" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "СолариÑ/БСД партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "СолариÑова Udfs партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "СолариÑова Pcfs партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Санова SAM-QFS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Привремена партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Унапређена DOS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "ЛинукÑова XFS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS партиција" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Ðепозната" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s партиција" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ДиÑкета" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Компактни-флеш диÑк (CF)" # Чаробни штапић? :) #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "МеморијÑки штапић" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Мудри ноÑач (SM)" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC ноÑач" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Зип диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Ðез диÑк" # :) #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "ОловкаÑти диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s пуштач музике" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s дигитални фотоапарат" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Уређај" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Спољни %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "Обичан диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Празан једном-упиÑив диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "Једном-упиÑив диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Празан пиши-бриши диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "Пиши-бриши диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "Обичан ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Празан - ДВД меморијÑки диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "МеморијÑки - ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Празан једном упиÑиви - ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "Једном упиÑиви - ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Празан пиши-бриши ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "Пиши-бриши ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Празан једном упиÑиви + ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "Једном упиÑиви + ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Празан пиши+бриши ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "Пиши+бриши ДВД диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Звучни диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "Уклоњиви %s диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "ДиÑк" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Ðепознат тип операције %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ðе могу направити цевку за отворени GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Ðепозната врÑта поÑла %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Радња је зауÑтављена" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "Превазиђена функција. Измене кориÑника у МИМЕ бази више ниÑу подржане." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ðе могу рашчланити: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ОÑтале грешке у обради ће бити занемарене." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ðема грешке" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Датотека није нађена" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Општа грешка" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Унутрашња грешка" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ÐеиÑправни параметри" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Операција није подржана" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "У/И грешка" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Подаци оштећени" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Облик није иÑправан" # bug: is file handle the same as file descriptor? #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Лоша ручка датотеке" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Датотека је превелика" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ðема више проÑтора на уређају" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "СиÑтем датотека Ñамо за читање" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ÐеиÑправна адреÑа" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Датотека није отворена" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Ðачин отварања није иÑправан" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ПриÑтип одбијен" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Превише отворених датотека" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Крај датотеке" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ðије фаÑцикла" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Операција у току" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Операција прекинута" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Датотека поÑтоји" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Пронађене кружне везе" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Операција није дозвољена" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ЈеÑте фаÑцикла" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ðема довољно меморије" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Рачунар није нађен" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Име рачунара није иÑправно" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Рачунар нема адреÑу" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ÐеуÑпешна пријава" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Радња је обуÑтављена" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Заузет директоријум" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Директоријум није празан" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Превише веза" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ÐеупиÑив ÑиÑтем датотека" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ðије на иÑтом ÑиÑтему датотека" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Име је предугачко" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "УÑлуга није доÑтупна" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Захтев заÑтарева податке уÑлуге" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Грешка у протоколу" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ðе могу пронаћи главни разгледач" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Ðије додељено уобичајено дејÑтво" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ðема руковаоца за врÑту адреÑе (URL-а)" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Грешка при читању наредбе" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Грешка при покретању наредбе" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ДоÑтигнут рок" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Грешка Ñа Ñервером имена" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "РеÑÑƒÑ€Ñ Ñ˜Ðµ закључан" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Позив функције је превазиђен" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ÐеиÑправно име датотеке" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ðије Ñимболичка веза" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ðепозната грешка" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u бајт" msgstr[1] "%u бајта" msgstr[2] "%u бајтова" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f КБ" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f МБ" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f ГБ" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (неиÑправан Уникод)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ДиÑкета" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "ЦД-РОМ/ДВД-РОМ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "ЦД-РОМ/ДВД-РÐМ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "ЦД-РОМ/ДВД-Р" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "ЦД-РОМ/ДВД-РВ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "ЦД-Р/ДВД-РОМ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "ЦД-Р/ДВД-РÐМ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "ЦД-Р/ДВД-Р" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "ЦД-Р/ДВД-РВ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "ЦД-РВ/ДВД-РОМ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "ЦД-РВ/ДВД-РÐМ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "ЦД-РВ/ДВД-Р" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "ЦД-РВ/ДВД-РВ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ДиÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "УСБ диÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "ИЕЕЕ1394 диÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" # Чаробни штапић? :) #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "МеморијÑки штапић" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Мудри ноÑач (SM)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Фотоапарат" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "ДВД" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Корени диÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Музички диÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Ðепознати диÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Мрежни Ñервер" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "Ðе могу да прикључим диÑкету. Вероватно диÑкета није у уређају. " #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Ðе могу да прикључим диÑк. Вероватно нема ноÑача у уређају. " #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ðе могу да прикључим диÑкету. Вероватно је диÑкета у запиÑу који Ñе не може " "читати." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ðе могу да прикључим диÑк. Ðко је он шифрован, тада је била иÑкоришћена " "погрешна лозинка или кључ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ðе могу да прикључим изабрани диÑк. Вероватно је диÑк у запиÑу који Ñе не " "може читати." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ðе могу да прикључим изабрану диÑкету." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ðе могу да прикључим изабрани диÑк." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ðе могу да одÑпојим изабрани диÑк. Њега вероватно кориÑти неки програм или " "програми." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ðе могу да одÑпојим изабрани диÑк." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ÐеуÑпешно читање датотеке из наÑледног процеÑа %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ðе могу да покренем Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ñ€Ð¸ÐºÑ™ÑƒÑ‡ÐµÑšÐ° у лажном терминалу" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "Ðеочекивана грешка у функцији select() при читању података у наÑледном " "процеÑу (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Ðе могу да пошаљем лозинку процеÑу који прикључује" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Ðеочекивана грешка унутар извршења функције waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ÐеуÑпешно покретање наредбе" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ðе могу да избацим ноÑач" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ðе могу да одÑпојим прикључени Ñервер" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Мрежа" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Лични" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "СиÑтем датотека" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ðепознато GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows мрежа" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Идентитет удаљеног рачунара (%s) није познат." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Ово Ñе догађа када Ñе по први пут пријавите на рачунар.\n" "\n" "Идентитет који је поÑлао удаљени рачунар је %s. Уколико желите да будете " "потпуно Ñигурни да је безбедно да наÑтавите, Ñтупите у везу Ñа " "админиÑтратором ÑиÑтема." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Ипак Ñе пријави" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Откажи пријаву" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "ÐиÑам нашао иÑправну датотеку Ñа подешавањима у %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "КориÑтите променљиву окружења %s да назначите другу путању.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Ваш ХТТП поÑредник захтева пријаву.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Морате Ñе пријавити како биÑте приÑтупили „%s“.\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Лозинка ће бити пренета незаштићена." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Лозинка ће бити шифрована пре преноÑа." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Морате Ñе пријавити како биÑте приÑтупили %s, домен %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Морате Ñе пријавити како биÑте приÑтупили %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Подразумевани програм за преглед делова" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Подразумевани терминалÑки програм" # bug: no slang, s/exec/execut.../? #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Ðргумент извршавања за подразумевани терминал" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Програм који Ñе кориÑти за прегледање датотека које захтевају компоненту за " "преглед. Параметар %s ће бити замењен адреÑом датотеке, а параметар %c ће " "бити замењен IID-ом компоненте." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Подразумевани терминалÑки програм који Ñе кориÑти за програме којима је " "неопходан терминал." # bug: no slang, s/exec/execute.../? #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Ðргумент извршавања за подразумевани терминалÑки програм." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Покрени наредбу у терминалу" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „aim“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „callto“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „ghelp“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „h323“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „http“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „https“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „info“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „mailto“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „man“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Ðаредба коришћена за баратање „trash“ адреÑама, ако је укључено." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Руковаоц „aim“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Руковаоц „callto“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Руковаоц „ghelp“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Руковаоц „h323“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Руковаоц „http“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Руковаоц „https“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Руковаоц „info“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Руковаоц „mailto“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Руковаоц „man“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Руковаоц „trash“ адреÑама" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „aim“ " "адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„callto“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„ghelp“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„h323“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„http“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„https“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„info“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„mailto“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „man“ " "адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " "„trash“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у " "терминалу." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „aim“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „callto“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „ghelp“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „h323“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „http“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „https“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „info“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „mailto“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „man“ адреÑе." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Да ли наведена наредба треба да Ñе кориÑти за „trash“ адреÑе." #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Запетом раздвојен ÑпиÑак DNS-SD домена који Ñу доÑтупни на путањи " "„network:///." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ДопунÑки домени на којима да тражи DNS-SD уÑлуге" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Како да приказује локалну DNS-SD уÑлугу" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Допуштене вредноÑти Ñу „merged“ (Ñпојено), „separate“ (раздвојено) и " "„disabled“ (иÑкључено)." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Идентификуј везе Ñа поÑредничким Ñервером" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "ÐдреÑа за Ñамоподешавање поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Укључује подешавања поÑредника при приÑтупу вебу преко Интернета." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Име FTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Порт FTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Име HTTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Лозинка HTTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Порт HTTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "КориÑник HTTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Уколико је поÑтављено, везе Ñа поÑредничким Ñервером Ñе идентификују. Пар " "кориÑник/лозинка Ñе узима из „/system/http_proxy/authentication_user“ и „/" "system/http_proxy/authentication_password“." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "БеÑпоÑредничке адреÑе" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Лозинка која Ñе кориÑти за идентификацију код веб поÑредника." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Ðачин подешавања поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Име SOCKS поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Порт SOCKS поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Име безбедног HTTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Порт безбедног HTTP поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Изаберите режим подешавања поÑредника. Допуштене вредноÑти Ñу „none“, " "„manual“ и „auto“." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Име рачунара за FTP поÑредовање." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Име рачунара за веб (HTTP) поÑредовање." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Име рачунара за безбедно веб (HTTPS) поÑредовање." # bug: s/socks/SOCKS/ #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Име рачунара за SOCKS поÑредовање." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "Порт рачунара датог у „/system/http_proxy/host“ кроз који поÑредује." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "Порт рачунара датог у „/system/proxy/ftp_proxy“ кроз који поÑредује." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Порт рачунара датог у „/system/proxy/secure_proxy“ кроз који поÑредује." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Порт машине одређене помоћу „/system/proxy/socks_proxy“ која је поÑредник." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Овај кључ Ñадржи ÑпиÑак рачунара који Ñу непоÑредно повезани, умеÑто путем " "поÑредника (уколико је у дејÑтву). Ове вредноÑти могу бити имена рачунара, " "домени (помоћу почетних навода као што је *.нешто.ију), ИП адреÑе рачунара " "(било ИП4 било ИП6) и адреÑе мрежа уз мрежну маÑку (нешто као што је " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "ÐдреÑа која обезбеђује вредноÑти за подешавање поÑредника." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "КориÑти веб поÑредника" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "КориÑничко име које Ñе шаље при идентификацији код веб поÑредника." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "СМБ радна група" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Радна група или домен Windows мреже чији је кориÑник члан. Да би нова радна " "група узела маха кориÑник ће можда морати да Ñе одјави и поново пријави." #~ msgid "Could not initialize Bonobo" #~ msgstr "Ðе могу да покренем Бонобо" # Гномов Виртуелни СиÑтем Датотека — ВСД? Или Гномово „опонашање ÑиÑтема датотека“ — ОСД? #~ msgid "Could not initialize gnome vfs" #~ msgstr "Ðе могу да покренем Гномово опонашање ÑиÑтема датотека" #~ msgid "Standard Moniker factory" #~ msgstr "Производња обичног надимка" #~ msgid "file MonikerExtender" #~ msgstr "датотека MonikerExtender" #~ msgid "generic Gnome VFS moniker" #~ msgstr "оÑновни надимак Гномовог опонашавача ÑиÑтема датотека" #~ msgid "generic file moniker" #~ msgstr "оÑновни надимак датотеке" #~ msgid "Display SCSI drives" #~ msgstr "Прикажи SCSI уређаје" #~ msgid "Display SCSI optical drives" #~ msgstr "Прикажи оптичке SCSI уређаје" #~ msgid "Display drives with removable media" #~ msgstr "Прикажи уређаје Ñа уклоњивим ноÑачима" #~ msgid "Display external drives" #~ msgstr "Прикажи Ñпољашње уређаје" #~ msgid "Display internal hard drives" #~ msgstr "Прикажи унутрашње тврде диÑкове" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "Да ли да приказује оптичке SCSI уређаје чак и ако је /system/storage/" #~ "display_scsi_drives иÑкључен." #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "Да ли да приказује уређаје и прикључиве диÑкове Ñа SCSI уређаја." #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "Да ли да приказује уређаје и прикључиве диÑкове Ñа уређаја Ñа уклоњивим " #~ "ноÑачима (нпр. уређаји где Ñе ноÑач може убацити и избацити)." # bug: hotpluggable is technobabble, second part of "eg." should be enough #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "Да ли да приказује уређаје и прикључиве диÑкове Ñа Ñпољашњих уређаја " #~ "(нпр. уређаји који Ñе могу прикључити у току рада)." #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "Да ли да приказује уређаје и прикључиве диÑкове Ñа унутрашњих тврдих " #~ "диÑкова (отпички не-SCSI диÑкови Ñе увек приказују)." #~ msgid "The window workgroup the user is part of" #~ msgstr "Виндоуз радна група које је кориÑник члан" #~ msgid "Optical Disc" #~ msgstr "Оптички диÑк" # Чаробни штапић? :) #~ msgid "Memory Stick Media" #~ msgstr "МеморијÑки штапић (MS)" #~ msgid "Smart Media Media" #~ msgstr "Мудри ноÑач (SM)" #~ msgid "Mac OS disk" #~ msgstr "Мекинтош диÑк" #~ msgid "Mac OS X disk" #~ msgstr "Мекинтош ОС-Ð˜ÐºÑ Ð´Ð¸Ñк" # ТранÑкрипција на нивоу ;-) #~ msgid "Windows Disk" #~ msgstr "Виндуз диÑк" #~ msgid "Linux Disk" #~ msgstr "Ð›Ð¸Ð½ÑƒÐºÑ Ð´Ð¸Ñк" #~ msgid "File could not be opened: %s" #~ msgstr "Датотека Ñе не може отворити: %s" # bug: inconsistent wording with above "Bookmark saving failed" [eg. "Failed to save a bookmark" would be one way to solve it] #~ msgid "Failed to open file '%s': %s" #~ msgstr "ÐеуÑпешно отварање датотеке „%s“: %s" #~ msgid "File is empty" #~ msgstr "Датотека је празна" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "" #~ "„.desktop“ датотека Ñадржи ред „%s“ који није уноÑ, група ни примедба" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "„.desktop“ датотека не почиње Ñа иÑправном почетном групом" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "„.desktop“ датотека Ñадржи ред „%s“ који није УТФ-8" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "„.desktop“ датотека кориÑти непознато кодирање „%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries do not have group '%s'" #~ msgstr "„.desktop“ датотека нема групу „%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries do not have key '%s'" #~ msgstr "„.desktop“ датотека нема кључ „%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "" #~ "„.desktop“ датотека Ñадржи кључ „%s“ који има вредноÑÑ‚ која Ñе не може " #~ "разумети." # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "„.desktop“ датотека не Ñадржи превод вредноÑти кључа „%s“ у локалитету „%" #~ "s“." # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "„.desktop“ датотека Ñадржи неиÑправан знак за иÑтицање „%s“" # bug: "desktop entries" sucks pretty much (it could be "entries in .desktop file") #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "" #~ "„.desktop“ датотека Ñадржи неиÑправан знак за иÑтицање на крају реда" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "ВредноÑÑ‚ „%s“ Ñе не може поÑматрати као број." #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "ВредноÑÑ‚ „%s“ Ñе не може поÑматрати као иÑтинитоÑна вредноÑÑ‚." #~ msgid "Applications" #~ msgstr "Програми" #~ msgid "Cards" #~ msgstr "Карте" #~ msgid "Files" #~ msgstr "Датотеке" #~ msgid "Folders" #~ msgstr "ФаÑцикле" #~ msgid "Help" #~ msgstr "Помоћ" #~ msgid "Hosts" #~ msgstr "Рачунари" #~ msgid "Links" #~ msgstr "Везе" #~ msgid "Mail" #~ msgstr "Пошта" #~ msgid "Tools" #~ msgstr "Ðлати" #~ msgid "Windows" #~ msgstr "Прозори" # bug: Compact Disk Disk? #~ msgid "CD Disc" #~ msgstr "ЦД диÑк" # bug: inconsistent with other strings which use "...to handle \"h323\" URLs..." #~ msgid "The command used to handle HTTP URLs, if enabled." #~ msgstr "Ðаредба коришћена за баратање „http“ адреÑама, ако је укључено." # bug: inconsistent with other strings which use "...to handle \"h323\" URLs..." #~ msgid "The command used to handle HTTPS URLs, if enabled." #~ msgstr "Ðаредба коришћена за баратање „https“ адреÑама, ако је укључено." # bug: inconsistent with other strings; should be "The handler for \"http\" URLs" #~ msgid "The handler for HTTP URLs" #~ msgstr "Руковаоц „http“ адреÑама" # bug: inconsistent with other strings; should be "The handler for \"https\" URLs" #~ msgid "The handler for HTTPS URLs" #~ msgstr "Руковаоц „https“ адреÑама" # bug: inconsistent; should be "...should handle \"http\" URLs." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTP " #~ "URLs." #~ msgstr "" #~ "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " #~ "„http“ адреÑе." # bug: inconsistent; should be "...should handle \"https\" URLs." #~ msgid "" #~ "True if the command specified in the \"command\" key should handle HTTPS " #~ "URLs." #~ msgstr "" #~ "Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за " #~ "„https“ адреÑе." # bug: inconsistent; should be "...should handle \"http\" URLs". #~ msgid "Whether the specified command should handle HTTP URLs" #~ msgstr "Да ли наведена наредба треба да Ñе кориÑти за „http“ адреÑе." # bug: inconsistent; should be "...should handle \"https\" URLs". #~ msgid "Whether the specified command should handle HTTPS URLs" #~ msgstr "Да ли наведена наредба треба да Ñе кориÑти за „https“ адреÑе." #~ msgid "H323 URL handler" #~ msgstr "Руковалац H323 адреÑама" #~ msgid "HTTP URL handler" #~ msgstr "Руковалац HTTP адреÑама" #~ msgid "HTTPS URL handler" #~ msgstr "Руковалац HTTPS адреÑама" #~ msgid "Handle callto URLs" #~ msgstr "Баратај callto адреÑама" #~ msgid "Handle ghelp URLs" #~ msgstr "Баратај ghelp адреÑама" #~ msgid "Handle info URLs" #~ msgstr "Баратај info адреÑама" #~ msgid "Handle mailto URLs" #~ msgstr "Баратај mailto адреÑама" #~ msgid "Handle man URLs" #~ msgstr "Баратај man адреÑама" #~ msgid "Handle trash URLs" #~ msgstr "Баратај trash адреÑама" #~ msgid "callto URL handler" #~ msgstr "Руковалац callto адреÑама" #~ msgid "ghelp URL handler" #~ msgstr "Руковалац ghelp адреÑама" #~ msgid "info URL handler" #~ msgstr "Руковалац info адреÑама" #~ msgid "mailto URL handler" #~ msgstr "Руковалац mailto адреÑама" #~ msgid "man URL handler" #~ msgstr "Руковалац man адреÑама" #~ msgid "trash URL handler" #~ msgstr "Руковалац trash адреÑама" #~ msgid "Bookmark saving failed (%s)" #~ msgstr "ÐеуÑпешно чување обележивача (%s)" #~ msgid "Could not get information for file '%s': %s" #~ msgstr "Ðе могу да Ñазнам податке о датотеци „%s“: %s" # bug: as above [inconsistent wording] #~ msgid "" #~ "Failed to load image '%s': reason not known, probably a corrupt image file" #~ msgstr "" #~ "ÐеуÑпешно учитавање Ñлике „%s“: разлог непознат, вероватно оштећена " #~ "датотека Ñлике" #~ msgid "How to handle http URLs" #~ msgstr "Како баратати http адреÑама" #~ msgid "How to handle https URLs" #~ msgstr "Како баратати https адреÑама" #~ msgid "Set to true to have a program specified in command handle https URLs" #~ msgstr "" #~ "Укључите ако желите да програм наведен у наредби барата https адреÑама" #~ msgid "" #~ "Set to true to have a program specified in programs/ghelp handle ghelp " #~ "URLs" #~ msgstr "" #~ "Укључите ако желите да програм наведен у programs/ghelp барата ghelp " #~ "адреÑама" #~ msgid "" #~ "Set to true to have a program specified in programs/info handle info URLs" #~ msgstr "" #~ "Укључите ако желите да програм наведен у programs/info барата info " #~ "адреÑама" #~ msgid "" #~ "Set to true to have a program specified in programs/man handle man URLs" #~ msgstr "" #~ "Укључите ако желите да програм наведен у programs/man барата man адреÑама" #~ msgid "URL handler for h323 uris" #~ msgstr "Руковаоц h323 адреÑама" #~ msgid "URL handler for http uris" #~ msgstr "Руковаоц http адреÑама" #~ msgid "URL handler for https uris" #~ msgstr "Руковаоц https адреÑама" #~ msgid "Hosts are not contacted via the proxy" #~ msgstr "Рачунарима Ñе не приÑтупа преко поÑредника" #~ msgid "The machine name to proxy http through." #~ msgstr "Име рачунара HTTP поÑредника." #~ msgid "Use proxy settings when accessing http" #~ msgstr "КориÑти подешавања поÑредника при приÑтупу вебу" #~ msgid "http proxy password" #~ msgstr "Лозинка HTTP поÑредника" #~ msgid "http proxy username" #~ msgstr "КориÑничко име HTTP поÑредника" # bug: plural-forms #~ msgid "1 byte" #~ msgstr "1 бајт" gnome-vfs-2.24.4/po/dz.po0000644000175000001440000024120311334251016012012 00000000000000# Dzongkha translation of gnome-vfs # Copyright @ 2006 Free software foundation, Inc. # Mindu Dorji. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD.dz\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-10-16 04:20+0000\n" "PO-Revision-Date: 2008-10-20 09:50+0530\n" "Last-Translator: Dawa pemo \n" "Language-Team: DZONGKHA \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: Dzongkha\n" "X-Poedit-Country: BHUTAN\n" "X-Poedit-SourceCharset: utf-8\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ཨའི་ཨེསི་ཨོ་ ༩༦༦༠ སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u ནང་ ཨེན་ཡུ་ཨེལ་ ཡིག་འབྲུ་འདུག" #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u ནང་ à½à½–ས་ལམ་གྱི་མིང་མིན་འདུག" #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%uལུ་ མཇུག་རྟགས་བཀོད་མིའི་ གདམ་à½à¼‹à½˜à½²à½“་འདུག" #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%uལུ་ མ་ཤེས་པའི་གདམ་à½à¼‹ %sའདུག" #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%uལུ་ ཚད་གཞིའི་མིང་མིན་འདུག" #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "རིམ་སྒྲིག་ཡིག་སྣོད་ ‘%s’ à½à½¼à½–་མ་ཚུགས༠%s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%dམིང་དཔྱད་འབད་ནི་བར་བཤོལ་འབད་ཡིà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "ཨེ་ཨེཕ་ཨེཕ་ཨེསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "ཨེ་ཨེཕ་ཨེསི་ ཡོངས་འབྲེལ་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "རང་བཞིན་སà¾à¾±à½¼à½“་འཛིན་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "སི་ཌི་-རཱོམ་ འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "སི་ཌི་ ཌི་ཇི་ཊཱལ་ རྣར་ཉནà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "སྲ་ཆས་ à½à½–ས་འཕྲུལ་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "ཨི་ཨེན་སི་ཨེཕ་ཨེསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "ཨི་ཨེགསི་ཊི་༢ ལི་ནགསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "ཨི་ཨེགསི་ཊི་༣ ལི་ནགསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "ཨེམ་ཨེསི་ཌོསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "བི་ཨེསི་ཌི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "ཕིའུསི་ སྦུང་ཚད་ " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "མེཀ་ཨོ་ཨེསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "སི་ཌི་ རཱོམ་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "ཨེཆ་ཨེསི་ཨེཕ་ཨེསི་ སི་ཌི་རཱོམ་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "ཇེ་ཨེཕ་ཨེསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "à½à½²à½“་ཌོསི་ ཨེན་ཊི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "རིམ་ལུགས་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "དྲན་ཚད་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "མི་ནིགསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "ཨེན་ཨེཕ་ཨེསི་ ཡོངས་འབྲེལ་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "ནེཊི་à½à½ºà½¢à¼‹à½¦à¾¦à½´à½„་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "རི་སར་༤ ལི་ནགསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "རི་སར་ཨེཕ་ཨེསི་ ལི་ནགསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "à½à½²à½“་ཌོསི་ རུབ་སྤྱོད་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "སུ་པར་མ་འུནཊི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "ཌི་བི་ཌི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "སོ་ལ་རིསི་ / བི་ཨེསི་ཌི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "ཡུ་ཌི་ཨེཕ་ཨེསི་ སོ་ལ་རིསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "པི་སི་ཨེཕ་ཨེསི་ སོ་ལ་རིསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "སཱན་ ཨེསི་ཨེ་ཨེམ་-ཀིའུ་ཨེཕ་ཨེསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "གནས་སà¾à½–ས་ཀྱི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "གོང་སྤེལ་ཅན་གྱི་ ཌོསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "à½à½²à½“་ཌོསི་ à½à½²à¼‹à½¨à½ºà½•་ཨེ་ཊི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "ཟེ་ནིགསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "ཨེགསི་ཨེཕ་ཨེསི་ ལི་ནགསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "ཨེགསི་ཨའི་ཨེ་ཨེཕ་ཨེསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "སི་ཨའིཨེཕ་ཨེསི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "མ་ཤེསཔà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%sསྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "སི་ཌི་-རཱོམ༠" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "སི་ཌི་ཨརà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "སི་ཌི་-ཨར་ཌབ་ལུà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "ཌི་བི་ཌི་-རཱོམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "ཌི་བི་ཌི་+ཨརà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "ཌི་བི་ཌི་+ཨར་ཌབ་ལུà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "ཌི་བི་ཌི་- ཨརà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "ཌི་བི་ཌི་- ཨར་ཌབ་ལུà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "ཌི་བི་ཌི་- རེམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "ཌི་བི་ཌི་+_ཨརà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "ཌི་བི་ཌི་+_ཨར་ཌབ་ལུà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "འདྲེན་འཕྲུལ་%s/%sà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "འདྲེན་འཕྲུལ་%sà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ཕོལོ་པི་འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "སྲབ་ཆུང་ རིབ་སྟོན་ བརྡ་ལམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "དྲན་ཚད་མཉམ་སྦྱར་འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "སི་མཱཊི་བརྡ་ལམ་འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "ཨེསི་ཌི་/ཨེམ་ཨེམ་སི་འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ཛིཔ་འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "ཇེཛི་ཌའིབà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "པེན་ཌའིབà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "སྙན་ཆ་གà½à½„་འཕྲུལ་%s %sà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "ཌི་ཇི་ཊཱལ་པར་ཆས་%s %sà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "ཕྱིའི་%sà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "སི་ཌི་-རཱོམ་ ཌིཀསི༠" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "སི་ཌི་-ཨར་ ཌིཀསིསྟོངམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "སི་ཌི་-ཨར་ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "སི་ཌི་-ཨར་ཌབ་ལུ་ ཌིཀསི་སྟོངམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "སི་ཌི་-ཨར་ཌབ་ལུ་ ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "ཌི་བི་ཌི་-རཱོམ་ ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ཌི་བི་ཌི་-རེམ་ ཌིཀསི་ སྟོངམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "ཌི་བི་ཌི་-རེམ་ ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ཌི་བི་ཌི་-ཨར་ ཌིཀསི་ སྟོངམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "ཌི་བི་ཌི་-ཨར་ ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ཌི་བི་ཌི་-ཨར་ཌབ་ལུ་ ཌིཀསི་ སྟོངམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "ཌི་བི་ཌི་-ཨར་ཌབ་ལུ་ ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ཌི་བི་ཌི་ + ཨར་ ཌིཀསི སྟོངམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "ཌི་བི་ཌི་ + ཨར་ ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ཌི་བི་ཌི་ + ཨར་ཌབ་ལུ་ ཌིཀསི སྟོངམà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "ཌི་བི་ཌི་ + ཨར་ཌབ་ལུ་ ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "རྣར་ཉན་ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s རྩ་བསà¾à¾²à½‘་གà½à½„་་བà½à½´à½–་པའི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "མ་ཤེས་པའི་བཀོལ་སྤྱོད་ དབྱེ་བ་%uà¼" #: ../libgnomevfs/gnome-vfs-job.c:1025 #: ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ཇི་ཨའི་ཨོ་ ཅེ་ནཱལ་: %s གི་དོན་ལུ་ རྒྱུད་དུང་བཟོ་མི་ཚུགས་པསà¼" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "མ་ཤེས་པའི་ ལཱ་གི་དབྱེ་à½à½‚་ %u à¼" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "བཀོལ་སྤྱོད་མཚམས་འཇོག་སོང་ནུག" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "Deprecated function. User modifications to the MIME database are no longer supported." msgstr "ངོས་ལེན་མེད་པའི་བྱ་བ༠མ་ཡིམ་གནད་སྡུད་གཞི་རྟེན་ལུ་ ལག་ལེན་པའི་ལེགས་བཅོས་ཚུ་ལུ་ རྒྱབ་སà¾à¾±à½¼à½¢à¼‹à½˜à½²à½“་འདུག" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr ":%s མིང་དཔྱད་འབད་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "མིང་དཔྱད་ཀྱི་འཛོལ་བ་ཧེང་བཀལ་ཚུ་ སྣང་མེད་བཞག་ནི་ཨིནà¼" #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "འཛོལ་བ་མེདà¼" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "ཡིག་སྣོད་འཚོལ་མ་à½à½¼à½–à¼" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ཇེ་ནི་རིཀ་འཛོལ་བà¼" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ནང་འà½à½¼à½‘་འཛོལ་བà¼" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "ནུས་མེད་ཚད་བཟུང་à¼" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "རྒྱབ་སà¾à¾±à½¼à½¢à¼‹à½˜à½ºà½‘་པའི་བཀོལ་སྤྱོདà¼" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "ཨའི་ / ཨོ་ འཛོལ་བà¼" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "གནད་སྡུད་ངན་ཅན་ལུ་གྱུར་ཡོདཔà¼" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "རྩ་སྒྲིག་ལུ་ནུས་པ་མིན་འདུག " #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "ཡིག་སྣོད་བཤེད་བཟུང༌བྱང་ཉེསà¼" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "ཡིག་སྣོད་སྦོམ་དྲགསཔà¼" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "à½à½–ས་འཕྲུལ་གུ་ བར་སྟོང་ལྷག་ལུས་མིན་འདུག" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "ལྷག་ནི་རà¾à¾±à½„མ་གཅིག་གི་ ཡིག་སྣོད་རིམ་ལུགསà¼" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "ནུས་མེད་ཡུ་ཨར་ཨའིà¼" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "ཡིག་སྣོད་à½à¼‹à½˜à¼‹à½•ྱེ་བསà¼" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "à½à¼‹à½•ྱེ་ནིའི་à½à½–ས་ལམ་ལུ་ ནུས་པ་མིན་འདུག" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "འཛུལ་སྤྱོད་ལུ་ à½à½¦à¼‹à½£à½ºà½“་མིན་འདུག" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "à½à¼‹à½•ྱེ་ཡོད་པའི་ ཡིག་སྣོད་མང་དྲགས་པསà¼" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "ཡིག་སྣོད་ཀྱི་མཇུག" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "སྣོད་à½à½¼à¼‹à½…ིག་མེན་པསà¼" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "བཀོལ་སྤྱོད་འབད་བའི་བསྒང༌à¼" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "བཀོལ་སྤྱོད་ལུ་ བར་ཆད་བྱུང་ནུག" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "ཡིག་སྣོད་འདུག" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ལུང་à½à½‚་འབྲེལ་ལམ་ལུ་ གདོང་à½à½´à½‚་བྱུང་ནུག" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "བཀོལ་སྤྱོད་འབད་མི་ཆོག་པསà¼" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "སྣོད་à½à½¼à¼‹à½…ིག་ཨིནà¼" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "དྲན་ཚད་ལངམ་མིན་འདུག" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "ཧོསིཊི་མ་à½à½¼à½–à¼" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "ཧོསཊི་གི་མིང་ལུ་ ནུས་པ་མིན་འདུག" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ཧོསཊི་ལུ་ à½à¼‹à½–ྱང་མིན་འདུག" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ནང་བསà¾à¾±à½¼à½‘་ལུ་ འà½à½´à½¦à¼‹à½¤à½¼à½¢à¼‹à½–ྱུང་ནུག" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "བཀོལ་སྤྱོད་ཆ་མེད་བà½à½„་ནུག" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "སྣོད་à½à½¼à¼‹à½à½¼à½˜à¼‹à½˜à½ºà½‘་ཨིན་པསà¼" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "སྣོད་à½à½¼à¼‹à½¦à¾Ÿà½¼à½„མ་མེན་པསà¼" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "འབྲེལ་ལམ་མང་དྲགས་པསà¼" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "ལྷག་ནི་རà¾à¾±à½„མ་གཅི་ག་གི་ ཡིག་སྣོད་རིམ་ལུགསà¼" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ཡིག་སྣོད་རིམ་ལུགས་ ཅོག་གཅིགཔ་གུ་མེན་པསà¼" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "མིང་ རིང་དྲགས་པསà¼" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "ཞབས་à½à½¼à½‚་མི་འà½à½¼à½–་པསà¼" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "ཕན་མེད་ཞབས་à½à½¼à½‚་གི་ གནད་སྡུད་ཞུ་བà¼" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "གནད་སྤེལ་ལམ་ལུགས་ འཛོལ་བà¼" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "བརའུ་ཟར་ ཨམ་ འཚོལ་མ་à½à½¼à½–à¼" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "སྔོན་སྒྲིག་བྱ་བ་གཅིག་ཡང་ མཉམ་འབྲེལ་མ་འབད་བསà¼" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "ཡུ་ཨར་ཨེལ་ ལས་འཆར་གྱི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་མི་མིན་འདུག" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "བཀོད་ལམ་མིང་དཔྱད་འབད་ནི་ལུ་འཛོལ་བà¼" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "བརྡ་བཀོད་གསར་བཙུགས་འབད་ནི་ལུ་འཛོལ་བà¼" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "ངལ་མཚམས་གུ་ལྷོད་ནུག" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "ནེམ་སར་བར་གྱི་འཛོལ་བà¼" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "འà½à½¼à½“་à½à½´à½„ས་དེ་ ལྡེ་མིག་བརà¾à¾±à½–ས་ནུག" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "བྱ་བའི་བོད་བརྡ་ ངོས་ལེན་མེདཔ་à½à½£à¼‹à½¦à½¼à¼‹à½“ུག" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "ནུས་མེད་ཡིག་སྣོད་མིང་à¼" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "བརྡ་མཚོན་གྱི་འབྲེལ་ལམ་ཅིག་མེན་པསà¼" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "མ་ཤེས་པའི་འཛོལ་བà¼" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] " བ་ཡིཊི་%uà¼" msgstr[1] " བ་ཡིཊི་%uà¼" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f ཀེ་བིà¼" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f ཨེམ་བིà¼" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f ཇི་བི༠" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr "(ནུས་མེད་ཡུ་ནི་ཀོཌི)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ཕོལོ་པི༠" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "སི་ཌི་-རཱོམ/ཌི་བི་ཌི་-རཱོམà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "སི་ཌི་-རཱོམ/ཌི་བི་ཌི་-རེམà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "སི་ཌི་-རཱོམ/ཌི་བི་ཌི་-ཨརà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "སི་ཌི་-རཱོམ/ཌི་བི་ཌི་-ཨར་ཌབ་ལུà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "སི་ཌི་-ཨར་/ཌི་བི་ཌི་-རཱོམà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "སི་ཌི་-ཨར་/ཌི་བི་ཌི་-རེམà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "སི་ཌི་-ཨར་/ཌི་བི་ཌི་-ཨརà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "སི་ཌི་-ཨར་/ཌི་བི་ཌི་-ཨར་ཌབ་ལུà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "སི་ཌི་-ཨར་ཌབ་ལུ་/ཌི་བི་ཌི་-རཱོམà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "སི་ཌི་-ཨར་ཌབ་ལུ་/ཌི་བི་ཌི་-རེམà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "སི་ཌི་-ཨར་ཌབ་ལུ་/ཌི་བི་ཌི་-ཨརà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "སི་ཌི་-ཨར་ཌབ་ལུ་/ཌི་བི་ཌི་-ཨར་ཌབ་ལུà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ཌིཀསིà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "ཡུ་ཨེསི་བི་ འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "ཨའི་ཨི་ཨི་ཨི་༡༣༩༤ འདྲེན་འཕྲུལà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "སི་ཨེཕà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "ཨེསི་ཌི་/ཨེམ་ཨེམ་སིà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "དྲན་ཚད་སི་ཊིཀ" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "སི་མཱཊི་ བརྡ་ལམà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "པར་ཆསà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "ཌི་བི་ཌིà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "རྩ་བའི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "རྣར་ཉན་སི་ཌིà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "མ་ཤེས་པའི་སྦུང་ཚདà¼" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "ཡོངས་འབྲེལ་སར་བརà¼" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "ཕོལོ་པི་འདྲེན་འཕྲུལ་ སྦྱར་བརྩེགས་འབད་མ་ཚུགས༠འདྲེན་འཕྲུལ་ནང་ལུ་ ཕོལོ་པི་མེདཔ་འོང་ནི་མསà¼" #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "སྦུང་ཚད་སྦྱར་བརྩེགས་འབད་མ་ཚུགས༠à½à½–ས་འཕྲུལ་ནང་བརྡ་ལམ་མེདཔ་འོང་ནི་མསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "Unable to mount the floppy drive. The floppy is probably in a format that cannot be mounted." msgstr "ཕོལོ་པི་འདྲེན་འཕྲུལ་ སྦྱར་བརྩེགས་འབད་མ་ཚུགས༠ཕོལོ་པི་དེ་ སྦྱར་བརྩེགས་འབད་མ་བà½à½´à½–་པའི་ རྩ་སྒྲིག་ཅིག་ནང་ ཡོདཔ་འོང་ནི་མསà¼" #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "Unable to mount the volume. If this is an encrypted drive, then the wrong password or key was used." msgstr "སྦུང་ཚད་ས་སྦྱར་བརྩེགས་འབད་མ་ཚུགས༠གལ་སྲིད་འདི་གསང་བཟོས་འདྲེན་འཕྲུལ་ཅིག་ཨིན་པ་ཅིན་ ཆོག་ཡིག་ ཡང་ན་ ལྡེ་མིག་ཕྱི་འགྱུར་ལག་ལེན་འà½à½–་འà½à½–་འོང་à¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "Unable to mount the selected volume. The volume is probably in a format that cannot be mounted." msgstr "སེལ་འà½à½´à¼‹à½ à½–ད་མི་སྦུང་ཚད་དེ་ སྦྱར་བརྩེགས་འབད་མ་ཚུགས༠སྦུང་ཚད་དེ་ སྦྱར་བརྩེགས་འབད་མ་བà½à½´à½–་པའི་ རྩ་སྒྲིག་ཅིག་ནང་ ཡོདཔ་འོང་ནི་མསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "སེལ་འà½à½´à¼‹à½ à½–ད་མི་ ཕོལོ་པི་འདྲེན་འཕྲུལ་དེ་ སྦྱར་བརྩེགས་འབད་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "སེལ་འà½à½´à¼‹à½ à½–ད་མི་སྦུང་ཚད་དེ་ སྦྱར་བརྩེགས་འབད་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "Unable to unmount the selected volume. The volume is in use by one or more programs." msgstr "སེལ་འà½à½´à¼‹à½ à½–ད་མི་སྦུང་ཚད་དེ་ སྦྱར་བརྩེགས་འབད་མ་ཚུགས༠སྦུང་ཚད་དེ་ སྦྱར་བརྩེགས་འབད་མ་བà½à½´à½–་པའི་ རྩ་སྒྲིག་ཅིག་ནང་ཡོདཔ་འོང་ནི་མསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "སེལ་འà½à½´à¼‹à½ à½–ད་མི་སྦུང་ཚད་དེ་ བརྩེགས་བཤོལ་འབད་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ཆ་ལག་ལས་སྦྱོར་ %d (%s)ནང་ལས་ གནད་སྡུད་ལྷག་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "པི་ཊི་à½à½ à½²à¼‹à½“ང་ སྦྱར་བརྩེགས་ལས་སྦྱོར་ གཡོག་བཀོལ་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "ཆ་ལག་ལས་སྦྱོར་(%s)ཅིག་ནང་ལས་ གནད་སྡུད་ལྷག་ནི་ལུ་ སེལ་འà½à½´à¼‹()ནང་ རེ་བ་མེད་པའི་འཛོལ་བà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "སྦྱར་བརྩེགས་ལས་སྦྱོར་ལུ་ ཆོག་ཡིག་གà½à½„་མ་ཚུགས༠" #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "à½à½ºà½Šà½²à¼‹à½”ིཊི་() (%s)ནང་ལུ་ རེ་བ་མེད་པའི་འཛོལ་བà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "བརྡ་བཀོད་འགོ་བཙུགས་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "བརྡ་ལམ་ཕྱི་བà½à½¼à½“་འབད་མ་ཚུགསà¼" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "འབྲེལ་མà½à½´à½‘་ཅན་གྱི་སར་བར་ བརྩེགས་བཤོལ་འབད་མ་ཚུགསà¼" #: ../modules/computer-method.c:543 msgid "Network" msgstr "ཡོངས་འབྲེལà¼" #: ../modules/computer-method.c:561 msgid "Home" msgstr "à½à¾±à½²à½˜à¼" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "ཡིག་སྣོད་རིམ་ལུགསà¼" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "མ་ཤེས་པའི་ ཇི་ནོམ་ à½à½²à¼‹à½¨à½ºà½•་ཨེསི་སིག་པོ་སི་ཤཱན་ %dà¼" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "à½à½²à½“་ཌོསི་ ཡོངས་འབྲེལà¼" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "à½à½‚་རིང་གློག་རིག་ (%s) གི་ ངོ་རྟགས་ཤེས་མ་ཚུགསà¼" #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely sure it is safe to continue, contact the system administrator." msgstr "" "འདི་འགོ་དང་པ་ གློག་རིག་ནང་བསà¾à¾±à½¼à½‘་ འབད་བའི་སà¾à½–ས་འབྱུངམ་ཨིན༠\n" " \n" " à½à½‚་རིང་གློག་རིག་གིས་བà½à½„་མི་ ངོ་རྟགས་དེ་ %s ཨིན་པས༠à½à¾±à½¼à½‘་རང་ངེས་ཤེས་ཧྲིལ་བུ་ འདྲོངས་དགོ་པ་ཅིན་ འཕྲོ་མà½à½´à½‘་རུང་ཉེན་à½à¼‹à½˜à½ºà½‘༠རིམ་ལུགས་བདག་སà¾à¾±à½¼à½„་པ་ལུ་ འབྲེལ་བ་འà½à½–à¼" #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "གང་རུང་སྦེ་ ནང་བསà¾à¾±à½¼à½‘་འབདà¼" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "ནང་བསà¾à¾±à½¼à½‘་ཆ་མེད་གà½à½„༌à¼" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr " %s ལུ་ ནུས་ཅན་གཞི་སྒྲིག་ཅིག་ འཚོལ་མ་à½à½¼à½–à¼\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "གནས་à½à½¼à½„ས་སོ་སོ་ཅིག་ གསལ་བཀོད་འབད་ནིའི་དོན་ལུ་ མà½à½ à¼‹à½ à½à½¼à½¢à¼‹à½‚ྱི་བསྒྱུར་བ་ %s ལག་ལེན་འà½à½–༠\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "à½à¾±à½¼à½‘་ཀྱི་ཨེཆ་ཊི་ཊི་པི་ པོརོ་སི་གི་དོན་ལུ་ à½à¾±à½¼à½‘་ཀྱིས་ནང་བསà¾à¾±à½¼à½‘་འབད་དགོ\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "à½à¾±à½¼à½‘་ཀྱིས་\"%s\"ལུ་འཛུལ་སྤྱོད་འབད་ནི་ལུ་ ནང་བསà¾à¾±à½¼à½‘་འབད་དགོ\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "à½à¾±à½¼à½‘་ཀྱི་ཆོག་ཡིག་དེ་ གསང་བ་མ་བཟོ་བར་སྤེལ་བཀྲམ་འབད་འོང་à¼" #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "à½à¾±à½¼à½‘་ཀྱི་ཆོག་ཡིག་དེ་ གསང་བ་བཟོ་སྟེ་ སྤེལ་བཀྲམ་འབད་འོང་à¼" #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "à½à¾±à½¼à½‘་ཀྱིས་%s ཌོ་མེན་%sནང་ འཛུལ་སྤྱོད་འབད་ནི་ལུ་ ནང་བསà¾à¾±à½¼à½‘་འབད་དགོ\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "à½à¾±à½¼à½‘་ཀྱིས་%sལུ་འཛུལ་སྤྱོད་འབད་ནི་ལུ་ ནང་བསà¾à¾±à½¼à½‘་འབད་དགོ\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "སྔོན་སྒྲིག་ཆ་ཤས་ མà½à½¼à½„་བྱེད་གློག་རིམà¼" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "སྔོན་སྒྲིག་ཊར་མི་ནཱལ་གློག་རིམà¼" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "སྔོན་སྒྲིག་ཊར་མི་ནཱལ་གྱི་སà¾à½¼à½¢à¼‹à½£à½¦à¼‹ སྒྲུབ་རྟགས་ལག་ལེན་འà½à½–à¼" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID." msgstr "ཡིག་སྣོད་ལུ་ བལྟ་ནིའི་གློག་རིམ་དེ་ལུ་ ཆ་ཤས་ཅིག་དགོ ཚད་བཟུང་ %s གི་ཚབ་ལུ་ ཡིག་སྣོད་ཀྱི་ ཡུ་ཨར་ཨའི་ཚུ་ བཙུགས་ནི་དང་ ཚད་བཟུང་ %c གི་ཚབ་ལུ་ ཆ་ཤས་ཀྱི་ཨའི་ཌི་ཌི་ བཙུགས་ནི་ཨིནà¼" #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "The default terminal application to use for applications that require a terminal." msgstr "ཊར་མི་ནཱལ་ཅིག་དགོ་པའི་ གློག་རིམ་ཚུ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་དགོ་པའི་ སྔོན་སྒྲིག་ཊར་མི་ནཱལ་གློག་རིམà¼" #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "སྔོན་སྒྲིག་ཊར་མི་ནཱལ་ གློམ་རིམ་གྱི་དོན་ལུ་ ལག་ལེན་འà½à½–་དགོ་པའི་ ཨི་ཨེགསི་ཨི་སི་ སྒྲུབ་རྟགསà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"aim\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"callto\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"ghelp\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"h323\" ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr " ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"http\" ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"https\" ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"info\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"mailto\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"man\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "ལྕོགས་ཅན་བཟོ་བ་ཅིན་ \"trash\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོདà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "\"aim\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "\"callto\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr " \"ghelp\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "\"h323\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "\"http\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "\"https\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "\"info\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "\"mailto\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "\"man\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "\"trash\" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "True if the command specified in the \"command\" key should handle \"aim\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"aim\" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "True if the command specified in the \"command\" key should handle \"callto\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"callto\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "True if the command specified in the \"command\" key should handle \"ghelp\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"ghelp\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "True if the command specified in the \"command\" key should handle \"h323\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"h323\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "True if the command specified in the \"command\" key should handle \"http\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"http\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "True if the command specified in the \"command\" key should handle \"https\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ངེས་བདེན་ཨིན་པ་ཅིན་ \"https\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "True if the command specified in the \"command\" key should handle \"info\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"info\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "True if the command specified in the \"command\" key should handle \"mailto\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"mailto\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "True if the command specified in the \"command\" key should handle \"man\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"man\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "True if the command specified in the \"command\" key should handle \"trash\" URLs." msgstr "\"command\" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ \"trash\" ཡུ་ཨར་ཨེལ་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "True if the command used to handle this type of URL should be run in a terminal." msgstr "དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"aim\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"callto\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"ghelp\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"h323\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"http\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"https\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"info\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"mailto\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"man\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ \"trash\" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ནà¼" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "Comma separated list of DNS-SD domains that should be visible in the \"network:///\" location." msgstr "\"network:///\" གནས་à½à½¼à½„ས་ནང་ མà½à½¼à½„་དགོ་པའི་ ལྷོོད་རྟགས་ཀྱིས་ སོ་སོ་དབྱེ་མི་ ཌི་ཨེན་ཨེསི་-ཨེསི་ཌི་ཌོ་མེནà¼" #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "ཌི་ཨེན་ཨེསི་-ཨེསི་ཌི་གི་ ཞབས་à½à½¼à½‚་བལྟ་ནིའི་དོན་ལུ་ ཌོ་མེན་à½à½ºà½–སà¼" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "ཉེ་གནས་ཀྱི་ཌི་ཨེན་ཨེསི་-ཨེསི་ཌི་གི་ ཞབས་à½à½¼à½‚་བཀྲམ་སྟོན་འབད་à½à½„སà¼" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "སྲིད་པའི་བེ་ལུསི་ \"merged\" \"separate\" དང་ \"disabled\" ཚུ་ཨིནà¼" #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "པོརོག་སི་ སར་བར་མà½à½´à½‘་ལམ་གྱི་ བདེན་à½à½´à½„ས་བཤདà¼" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "རང་བཞིན་གྱི་ པོརོག་སི་ རིམ་སྒྲིག་གི་ ཡུ་ཨར་ཨེལà¼" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ཨིན་ཊར་ནེཊི་་à½à½¼à½‚་ལས་ ཨེཆ་ཊི་ཊི་པི་ འཛུལ་སྤྱོད་འབདà½à¼‹à½‘་ པོརོག་སི་ གཞི་སྒྲིག་ལྕོགས་ཅན་བཟོà½à¼‹à½¨à½²à½“à¼" #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "ཨེཕ་ཊི་པི་ པོརོག་སི་གི་ ཧོསཊི་ནེམ༌à¼" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "ཨེཕ་ཊི་པི་ པོརོག་སི་ འདྲེན་ལམà¼" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ཧོསཊི་ནེམà¼" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ཆོག་ཡིག" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ འདྲེན་ལམà¼" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་་ ལག་ལེན་པའི་མིང༌à¼" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "If true, then connections to the proxy server require authentication. The username/password combo is defined by \"/system/http_proxy/authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "ངེས་བདེན་ཨིན་པ་ཅིན་ པོརོག་སི་སར་བར་གྱི་ མà½à½´à½‘་ལམ་ཚུ་ལུ་ བདེན་བཤད་དགོ ལག་ལེན་པའི་མིང་/ ཆོག་ཡིག་གི་ཀོམ་བོ་དེ་ \"/system/http_proxy/authentication_user\" དང་ \"/system/http_proxy/authentication_password\" ཚུ་གིས་ ངེས་འཛིན་འབད་ཡོདà¼" #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "པོརོག་སི་མིན་པའི་ ཧོསཊིསིà¼" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སིང་གི་སà¾à½–ས་ལུ་ ཆོག་ཡིག་དེ་ བདེན་བཤད་བཟུམ་ཅིག་སྦེ་སྤྲོད་ནིà¼" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "པོརོག་སི་ རིམ་སྒྲིག་གི་à½à½–ས་ལམà¼" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "ཨེསི་ཨོ་སི་ཀེ་ཨེསི་ པོརོག་སི་ ཧོསཊི་ནེམà¼" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "ཨེསི་ཨོ་སི་ཀེ་ཨེསི་ པོརོག་སི་ འདྲེན་ལམà¼" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ཧོསཊི་གི་ནེམ་ མà½à½ à¼‹à½–ཙན་བཟོà¼" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་གི་ འདྲེན་ལམ མà½à½ à¼‹à½–ཙན་བཟོà¼" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "Select the proxy configuration mode. Supported values are \"none\", \"manual\", \"auto\"." msgstr "པོརོག་སི་ རིམ་སྒྲིག་གི་à½à½–ས་ལམ་ སེལ་འà½à½´à¼‹à½ à½–ད༠རྒྱབ་སà¾à¾±à½¼à½¢à¼‹à½…ན་གྱི་ བེ་ལུསི་ \"none\", \"manual\", \"auto\" ཚུ་ཨིནà¼" #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "ཨེཕ་ཊི་པི་ པོརོག་སི་་འབད་ནིའི་ གློག་འཕྲུལ་ཆས་མིང༌à¼" #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "ཨེཆ་ཊི་་ཊི་པི་ པོརོག་སི་འབད་ནིའི་ གློག་འཕྲུལ་གྱི་མིང༌à¼" #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "བརྒྱུད་དེ་ཨེཆ་ཊི་ཊི་པི་པོརོག་སི་ མà½à½ à¼‹à½–ཙན་བཟོ་ནིའི་ གློག་འཕྲུལ་གྱི་མིང༌à¼" #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "བརྒྱུད་དེ་ཨེསི་ཨོ་སི་ཀེ་ཨེསི་ པོརོག་སི་འབད་ནིའི་ གློག་འཕྲུལ་གྱི་མིང༌à¼" #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "The port on the machine defined by \"/system/http_proxy/host\" that you proxy through." msgstr "à½à¾±à½¼à½‘་ཀྱིས་ པོརོག་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ \"/system/http_proxy/host\" གིས་ ངེས་འཛིན་འབད་ཡོདà¼" #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy through." msgstr "à½à¾±à½¼à½‘་ཀྱིས་ པོ་རོ་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ \"/system/proxy/ftp_host\" གིས་ངེས་འཛིན་འབད་ཡོདà¼" #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "The port on the machine defined by \"/system/proxy/secure_host\" that you proxy through." msgstr "à½à¾±à½¼à½‘་ཀྱིས་པོརོག་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ \"/system/proxy/secure_host\" གིས་ ངེས་འཛིན་འབད་ཡོདà¼" #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "The port on the machine defined by \"/system/proxy/socks_host\" that you proxy through." msgstr "à½à¾±à½¼à½‘་ཀྱིས་པོརོག་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ \"/system/proxy/socks_host\" གིས་ ངེས་འཛིན་འབད་ཡོདà¼" #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "ལྡེ་མིག་འདི་ནང་ ཧོསཊི་གི་à½à½¼à¼‹à½¡à½²à½‚་ཅིག་ཡོད་མི་ཚུ་ (ཤུགས་ལྡན་ཨིན་པ་ཅིན)་ པོརོག་སི་མ་བརྒྱུད་པར་ ཕྲང་ཕྲང་མà½à½´à½‘་དེ་ཡོདཔ་ཨིན༠བེ་ལུསི་ཚུ་ ཧོསཊི་མིང་དང་ ཌོ་མེན་ (*.foo.com བཟུམ་གྱི་ འགོ་à½à½¼à½‚་གི་ à½à¼‹à½¡à½ºà½£à¼‹à½€à½Œà½²à¼‹ ལག་ལེན་འà½à½–་སྟེ) ཨའི་པི་ཧོསཊི་à½à¼‹à½–ྱང་(ཨའི་པི་à½à½²à¼‹à¼¤à¼‹à½‘ང་ ཨའི་པི་à½à½²à¼‹à¼¦ གཉིས་ཆ་རང་) ཡོངས་འབྲེལ་གྱི་à½à¼‹à½–ྱང་ (༡༩༢་ ༡༦༨་ ༠་༠ / ༢༤ བཟུམ་འབད་མི་) ནེཊི་མཱཀསི་དང་གཅིག་à½à½¢à¼" #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "པོརོག་སི་ རིམ་སྒྲིག་གི་ བེ་ལུསི་བྱིན་མི་ ཡུ་ཨར་ཨེལà¼" #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ལག་ལེན་འà½à½–à¼" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "ཨེཆ་ཊི་ཊི་པི་ པོརོག་སིང་གི་སà¾à½–ས་ལུ་ བདེན་བཤད་བཟུམ་སྦེ་སྤྲོད་ནིའི་ ལག་ལེན་པའི་མིང་à¼" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "ཨེསི་ཨེམ་བི་ལཱ་སྡེà¼" #: ../schemas/system_smb.schemas.in.h:2 msgid "The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in." msgstr "ལག་ལེན་པ་དེ་ ཆ་ཤས་ཅིག་ཨིན་མི་ à½à½²à½“་ཌོསི་ཡོངས་འབྲེལ་སྡེ་ཚན་ ཡང་ན་ ཌོ་མེན༠ལཱ་སྡེ་གསརཔ་ཅིག་ལུ་ ནུས་པ་ཧྲིལ་བུ་འà½à½¼à½–་ནིའི་དོན་ལུ་ ལག་ལེན་པ་དེ་གིས་ ཕྱིར་བསà¾à¾±à½¼à½‘་འབད་ཞིནམ་ལས་ ལོག་ནང་བསà¾à¾±à½¼à½‘་འབད་དགོཔ་འོང་à¼" #~ msgid "Could not initialize Bonobo" #~ msgstr "བོ་ནོ་བོ་ འགོ་འབྱེད་འབད་མ་ཚུགསà¼" #~ msgid "Could not initialize gnome vfs" #~ msgstr "ཇི་ནོམ་ à½à½²à½¨à½ºà½•་ཨེསི་ འགོ་འབྱེད་འབད་མ་ཚུགསà¼" #~ msgid "Standard Moniker factory" #~ msgstr "ཚད་ལྡན་གྱི་ མོ་ནི་ཀར་འཕྲུལ་à½à½„་à¼" #~ msgid "file MonikerExtender" #~ msgstr "མོ་ནི་ཀར་ཨེགསི་ཊེན་ཌར་བཙུགསà¼" #~ msgid "generic Gnome VFS moniker" #~ msgstr "ཇེ་ནི་རིཀ་ ཇི་ནོམ་ à½à½²à¼‹à½¨à½ºà½•་ཨེསི་ མོ་ནི་ཀརà¼" #~ msgid "generic file moniker" #~ msgstr "ཇེ་ནི་རིཀ་ ཡིག་སྣོད་ མོ་ནི་ཀརà¼" #~ msgid "Display SCSI drives" #~ msgstr "ཨེསི་ཨི་ཨེསི་ཨའི་འདྲེན་འཕྲུལ་ཚུ་ བཀྲམ་སྟོན་འབདà¼" #~ msgid "Display SCSI optical drives" #~ msgstr "ཨེསི་སི་ཨེསི་ཨའི་ ཨོཔ་ཊིཀཱལ་འདྲེན་འཕྲུལ་ཚུ་ བཀྲམ་སྟོན་འབདà¼" #~ msgid "Display drives with removable media" #~ msgstr "འདྲེན་འཕྲུལ་ཚུ་ བà½à½¼à½“་བà½à½´à½–་པའི་བརྡ་ལམ་à½à½¼à½‚་ལས་ བཀྲམ་སྟོན་འབདà¼" #~ msgid "Display external drives" #~ msgstr "ཕྱིའི་འདྲེན་འཕྲུལ་ཚུ་ བཀྲམ་སྟོན་འབདà¼" #~ msgid "Display internal hard drives" #~ msgstr "ནང་འà½à½¼à½‘་ཀྱི་ ཧརཌི་ཌའིབསི་ཚུ་ བཀྲམ་སྟོན་འབདà¼" #~ msgid "" #~ "Whether to display SCSI optical drives even if /system/storage/" #~ "display_scsi_drives is set to FALSE." #~ msgstr "" #~ "རིམ་ལུགས་/བསག་མཛོད་/བཀྲམ་སྟོན་/ཨེསི་སི་ཨེསི་ཨའི་འདྲེན་འཕྲུལ་ཚུ་ རྫུན་པ་གུ་ གཞི་སྒྲིག་འབད་དེ་ཡོད་རུང་ " #~ "ཨེསི་སི་ཨེསི་ཨའི་ ཨོཔ་ཊི་ཀཱལ་འདྲེན་འཕྲུལ་ཚུ་ བཀྲམ་སྟོན་འབད་ནི་ཨིན་ན་མེནà¼" #~ msgid "Whether to display drives and mountable volumes from SCSI drives." #~ msgstr "" #~ "ཨེསི་སི་ཨེསི་ཨའི་འདྲེན་འཕྲུལ་ཚུ་ནང་ལས་ འདྲེན་འཕྲུལ་དང་ སྦྱར་བརྩེགས་འབད་བà½à½´à½–་པའི་བོ་ལུསམ་ཚུ་ བཀྲམ་" #~ "སྟོན་འབད་ནི་ཨིན་ན་མེནà¼" #~ msgid "" #~ "Whether to display drives and mountable volumes from drives with " #~ "removable media (e.g. drives where media can be inserted and removed)." #~ msgstr "" #~ "བà½à½¼à½“་བà½à½´à½–་པའི་བརྡ་ལམ་ (དཔེར་ན་ བརྡ་ལམ་བཙུགས་བà½à½¼à½“་འབད་བà½à½´à½–་པའི་འདྲེན་འཕྲུལ་ཚུ་) ནང་ལས་ " #~ "འདྲེན་འཕྲུལ་དང་ སྦྱར་བརྩེགས་འབད་བà½à½´à½–་པའི་བོ་ལུསམ་ཚུ་ བཀྲམ་སྟོན་འབད་ནི་ཨིན་ན་མེནà¼" #~ msgid "" #~ "Whether to display drives and mountable volumes from external drives (e." #~ "g. drives that are hotpluggable; e.g. drives that can be attached and " #~ "detached while the system is running)." #~ msgstr "" #~ "ཕྱིའི་འདྲེན་འཕྲུལ་(དཔེར་ན་ རིམ་ལུགས་གཡོག་བཀོལ་བའི་བར་ན་ མཉམ་སྦྱར་འབད་ནི་དང་འཕྱལ་ནིའི་ འདྲེན་" #~ "འཕྲུལ)ཚུ་ནང་ལས་ འདྲེན་འཕྲུལ་དང་ སྦྱར་བརྩེགས་འབད་བà½à½´à½–་པའི་ བོ་ལུསམ་ཚུ་ བཀྲམ་སྟོན་འབད་ནི་ཨིན་ན་" #~ "མེནà¼" #~ msgid "" #~ "Whether to display drives and mountable volumes from internal hard drives " #~ "(non-SCSI optical drives are always shown)." #~ msgstr "" #~ "ནང་འà½à½¼à½‘་ཧརཌི་ཌའིབ་ཚུ་ནང་ལས་ འདྲེན་འཕྲུལ་དང་ སྦྱར་བརྩེགས་འབད་བà½à½´à½–་པའི་ བོ་ལུསམ་ཚུ་ བཀྲམ་སྟོན་" #~ "འབད་ནི་ཨིན་ན་མེན༠(ཨེསི་སི་ཨེསི་ཨའི་ ཨོཔ་ཊི་ཀཱལ་འདྲེན་འཕྲུལ་ཚུ་ ཨ་རྟག་ར་ སྟོནམ་ཨིན) " #~ msgid "File could not be opened: %s" #~ msgstr "ཡིག་སྣོད་à½à¼‹à½•ྱེ་མ་ཚུགས་ :%s" #~ msgid "Failed to open file '%s': %s" #~ msgstr "ཡིག་སྣོད་ ’%s’:%s à½à¼‹à½•ྱེ་མ་ཚུགསà¼" #~ msgid "File is empty" #~ msgstr "ཡིག་སྣོད་སྟོངམ་ཨིན་པསà¼" #~ msgid "" #~ "desktop entries contain line '%s' which is not an entry, group, or comment" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ནང་ à½à½¼à¼‹à½–ཀོད་དང་ སྡེ་ཚན་ བསམ་བཀོད་མིན་པའི་གྱལ་རིམ ’%s’ འདུག" #~ msgid "desktop entries file does not start with legal start group" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ཡིག་སྣོད་དེ་ ལི་གཱལ་འགོ་བཙུགས་སྡེ་ཚན་གྱི་à½à½¼à½‚་ལས་ འགོ་མི་བཙུགསà¼" #~ msgid "desktop entries contain line '%s' which is not UTF-8" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ནང་ ཡུ་ཊི་ཨེཕ་-༨ མེན་པི་ གྱལ་རིམ་ ’%s’ འདུག" #~ msgid "desktop entries contain unknown encoding '%s'" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ནང་ ངོས་འཛིན་མ་ཚུགས་པའི་ ཨིན་ཀོ་ཌིང་ ’%s’ འདུག" #~ msgid "desktop entries do not have group '%s'" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ལུ་ སྡེ་ཚན་ ’%s’ མིན་འདུག" #~ msgid "desktop entries do not have key '%s'" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ལུ་ ལྡེ་མིག་ ’%s’ མིན་འདུག" #~ msgid "" #~ "desktop entries contain key '%s' which has value that cannot be " #~ "interpreted." #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ནང་ à½à¼‹à½–སྒྱུར་མ་ཚུགས་པའི་ བེ་ལུ་ཡོད་པའི་ལྡེ་མིག་ ’%s’ འདུག" #~ msgid "" #~ "desktop entries contain no translated value for key '%s' with locale '%s'." #~ msgstr "" #~ "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ནང་ ལོ་ཀེལ་’%s’ དང་གཅིག་à½à½¢à¼‹ ལྡེ་མིག་ ’%s’ གི་དོན་ལུ་ སà¾à½‘་བསྒྱུར་འབད་ཡོད་" #~ "པའི་ བེ་ལུ་མིན་འདུག" #~ msgid "desktop entries contain invalid escape sequence '%s'" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ནང་ ནུས་མེད་བྲོས་à½à½¢à¼‹à½ à½–ྱུང་རིམ་ ’%s’ འདུག" #~ msgid "desktop entries contain escape character at end of line" #~ msgstr "ཌེཀསི་ཊོཔ་à½à½¼à¼‹à½–ཀོད་ནང་ གྱལ་རིམ་མཇུག་ལུ་ བྲོས་à½à½¢à¼‹à½¡à½²à½‚་འབྲུ་འདུག" #~ msgid "Value '%s' cannot be interpreted as a number." #~ msgstr "བེ་ལུ་ ’%s’ དེ་ ཨང་གྲངས་བཟུམ་ཅིག་སྦེ་ à½à¼‹à½–སྒྱུར་འབད་མི་ཚུགསà¼" #~ msgid "Value '%s' cannot be interpreted as a boolean." #~ msgstr "བེ་ལུ་ ’%s’ དེ་ བུ་ལིན་བཟུམ་ཅིག་སྦེ་ à½à¼‹à½–སྒྱུར་མི་ཚུགསà¼" #~ msgid "Optical Disc" #~ msgstr "མà½à½¼à½„་རིག་ ཌིཀསིà¼" #~ msgid "Memory Stick Media" #~ msgstr "དྲན་ཚད སིཊིག་ བརྡ་ལམà¼" #~ msgid "Smart Media Media" #~ msgstr "སི་མཱཊི་ བརྡ་ལམ་ བརྡ་ལམà¼" #~ msgid "SD/MMC Media" #~ msgstr "ཨེསི་ཌི / ཨེམ་ཨེམ་སི་ བརྡ་ལམà¼" #~ msgid "Mac OS disk" #~ msgstr "མེཀ་ ཨོ་ཨེསི་ ཌིཀསིà¼à¼" #~ msgid "Mac OS X disk" #~ msgstr "མེཀ ཨོ་ཨེསི་ ཨེགསི་ ཌིཀསིà¼" #~ msgid "Windows Disk" #~ msgstr "à½à½²à½“་ཌོསི་ ཌིཀསིà¼" #~ msgid "Linux Disk" #~ msgstr "ལའི་ནགསི་ ཌིཀསིà¼" #~ msgid "Applications" #~ msgstr "གློག་རིམà¼" #~ msgid "Cards" #~ msgstr "ཤོག་བྱང༌à¼" #~ msgid "Files" #~ msgstr "ཡོག་སྣོདà¼" #~ msgid "Folders" #~ msgstr "སྣོད་འཛིནà¼" #~ msgid "Help" #~ msgstr "གྲོགས་རམà¼" #~ msgid "Hosts" #~ msgstr "ཧོསཊིà¼" #~ msgid "Links" #~ msgstr "འབྲེལ་ལམà¼" #~ msgid "Mail" #~ msgstr "ཡིག་འཕྲིནà¼" #~ msgid "Tools" #~ msgstr "ལག་ཆསà¼" #~ msgid "Windows" #~ msgstr "à½à½²à½“་ཌོསི༠" #~ msgid "The window workgroup the user is part of" #~ msgstr "ལག་ལེན་པ་དེ་ ཡན་ལག་ཅིག་ཨིན་མི་ à½à½²à½“་ཌོ་གི་ལཱ་སྡེà¼" gnome-vfs-2.24.4/po/yi.po0000644000175000001440000007724611334251016012034 00000000000000# Yiddish version # Copyright (C) 2003 Free Software Foundation, Inc. # Raphael Finkel , 2003. # msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2003-03-19\n" "Last-Translator: Raphael Finkel \n" "Language-Team: Yiddish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: daemon/gnome-vfs-daemon.c:596 #, fuzzy msgid "Could not initialize Bonobo" msgstr "ניט געקענט געפֿינינען הױפּט־בלעטערער" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d ××™×– כּולל נוליקע שריפֿטצײכנס" #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d ××™×– ניט כּולל קײן מעט×ָד־נ×ָמען" #: libgnomevfs/gnome-vfs-configuration.c:284 #, fuzzy, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d ××™×– ניט כּולל קײן מעט×ָד־נ×ָמען" #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d ××™×– ניט כּולל קײן מ×ָדול־נ×ָמען" #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "צופּ×ַס־טעקע %s ××™×– ניט בנימצה: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 #, fuzzy msgid "Unknown" msgstr "×ומב×Ö·×§×ַנטע טעות" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "×ומב×Ö·×§×ַנט ×ָפּער×ַציע־ס×ָרט %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "ניט געקענט ש×ַפֿן קײן רער פֿ×ַר ×ַן ×Ö¸×¤Ö¿×¢× ×¢× GIOChannel: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "×ומב×Ö·×§×ַנט ×ַרבעטס×ָרט %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "×ָפּער×ַציע ×”×ָט זיך ×ױפֿגעהערט" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "ניט געקענט ×Ö·× ×ַליזירן: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "×יבעריקע ×Ö·× ×ַליזיר־טעותן װעלן זײַן ××™×’× ×ָרירט" #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "קײן טעות ניט" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "טעקע ניט געפֿונען" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "×ַלגעמײנער טעות" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "×ינערלעכער טעות" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "×ומלעקסיקע פּ×ַר×ַמעטערס" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "×ָפּער×ַציע ניט געשטיצט" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "×ַרײַן־×ַרױסשרײַב טעות" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "×§×ָרומפּירטע ד×ַטן" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "×ומלעקסיקע פֿ×ָרמ×ַטירונג" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "שלעכטע טעקע־הענטל" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "טעקע צו גרױס" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "קײן ×ָרט ניט געבליבן ××±×£ דער המצ×ָה" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "בלױז־לײענעװדיקע טעקע־סיסטע×" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "×ומלעקסיקער URI" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "טעקע ניט ×ָפֿן" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "×ומלעקסיקע עפֿן־מ×ָדע" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "צוטריט ניט דערלױבט" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "צופֿיל ×ָפֿענע טעקעס" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "סוף־טעקע" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "ניט קײן פּ×ַפּקע" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "×ָפּער×ַציע ×ַקטיװ" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "×ָפּער×ַציע ×יבערגעריסן" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "טעקע עקזיסטירט" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "קײַקלדיקע פֿ×ַרבינדונגען געפֿונען" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "×ָפּער×ַציע ניט דערלױבט" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "××™×– ×Ö· פּ×ַפּקע" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "ניט גענוג זכּרון" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "×§×ָמפּיוטער ניט געפֿונען" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "×ומלעקסיקער ×§×ָמפּיוטער־נ×ָמען" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "×§×ָמפּיוטער ×”×ָט ניט קײן ×ַדרעס" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "×ַרײַנל×ָגירן דורכגעפֿ×ַלן" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "×ָפּער×ַציע ×ָפּגערופֿן" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "פּ×ַפּקע פֿ×ַרנומען" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "פּ×ַפּקע ניט לײדיק" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "צופֿיל פֿ×ַרבינדונגען" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "בלױז־לײענעװדיקע טעקע־סיסטע×" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "ניט ××±×£ דער זעלבער טעקע־סיסטע×" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "× ×ָמען צו ל×Ö·× ×’" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "ב×ַדינונג ניט בנימצה" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "בקשה פֿ×ַרעלטערט ב×ַדינונגס ד×ַטן" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "פּר×ָט×ָק×ָל־טעות" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "ניט געקענט געפֿינינען הױפּט־בלעטערער" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "×ַלגעמײנער טעות" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "×ומב×Ö·×§×ַנטע טעות" #: libgnomevfs/gnome-vfs-utils.c:85 #, fuzzy, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u ×ַכטעלעך" msgstr[1] "%u ×ַכטעלעך" #: libgnomevfs/gnome-vfs-utils.c:91 #, fuzzy, c-format msgid "%.1f KB" msgstr "%.1f קיל×Ö¸" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f מעג×Ö·Ö¾×ַכטעלעך" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f ×’×™×’×Ö·Ö¾×ַכטעלעך" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (×ומלעקסיקער ×וניק×ָד)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 #, fuzzy msgid "Unknown volume" msgstr "×ומב×Ö·×§×ַנטע טעות" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "" #: modules/computer-method.c:545 msgid "Network" msgstr "" #: modules/computer-method.c:563 msgid "Home" msgstr "" #: modules/computer-method.c:581 #, fuzzy msgid "Filesystem" msgstr "טעקע עקזיסטירט" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "×ומב×Ö·×§×ַנטע GnomeVFSSeekPosition %d" #: modules/network-method.c:1396 msgid "Windows Network" msgstr "" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "ניט געפֿונען קײן לעקסיקע מצבֿ־טעקע בײַ %s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "× ×™×¥ ×“×¢× %s מצבֿ־װ×ַרי×ַבל ×ָנצוּװײַזן ×ַן ×ַנדער ×ָרט.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "סט×ַנד×ַרדע צונעמעניש־פֿ×ַבריק" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "טעקע צונעמעניש־צוגעבער" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "×ַלגעמײנע Gnome VFS צונעמעניש" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "×ַלגעמײנע טעקע־צונעמעניש" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "ניט געקענט ×Ö·× ×ַליזירן: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "טעקע עקזיסטירט" #, fuzzy #~ msgid "Files" #~ msgstr "טעקע עקזיסטירט" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "שלעכטע טעקע־הענטל" #, fuzzy #~ msgid "mailto URL handler" #~ msgstr "שלעכטע טעקע־הענטל" #~ msgid "1 byte" #~ msgstr "1 ×ַכטעלע" gnome-vfs-2.24.4/po/ru.po0000644000175000001440000015400011354402652012027 00000000000000# translation of ru.po to Russian # translation of gnome-vfs.pot to Russian # Copyright (C) 2000-2002, 2004, 2005, 2006, 2010 Free Software Foundation, Inc. # # Valek Filippov , 2000-2002. # Dmitry G. Mastrukov , 2002-2004. # Leonid Kanter , 2004, 2005, 2006, 2010. msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-26 17:43+0200\n" "PO-Revision-Date: 2010-02-26 17:43+0200\n" "Last-Translator: Leonid Kanter \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" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "Том ISO9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u Ñодержит Ñимволы NUL." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u не Ñодержит имени метода." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u не Ñодержит маркера окончаниÑ." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u Ñодержит неизвеÑтный параметр %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u не Ñодержит имени модулÑ." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Файл конфигурации \"%s\" не найден: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d отменена обработка." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "Том AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "Сетевой том AFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "ÐвтоопределÑемый том" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Том Linux (Btrfs)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "Привод CD-ROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Звуковой компакт-диÑк" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Том аппаратного уÑтройÑтва" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "Том EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "Том eCryptfs" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Том Linux (Ext2)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Том Linux (Ext3)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Том Linux (Ext4)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "Том MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "Том BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "Том FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "Том MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "Том CDROM" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Том CDROM (HSFS)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "Том JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Том Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "СиÑтемный том" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Том в памÑти" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Том Minix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "Сетевой том NFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "Том Linux (NILFS)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Том Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Том Linux (Reiser4)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "Том Linux (ReiserFS)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "РазделÑемый том Windows" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "Том SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "Том DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Том Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Том Solaris (UDFS)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Том Solaris (PCFS)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Том Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Временный том" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "РаÑширенный том DOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Том Windows (VFAT)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Том Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "Том Linux (XFS)" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "Том XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "Том CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Ðеизв." #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "Том %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "УÑтройÑтво %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "УÑтройÑтво %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "ДиÑковод" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "УÑтройÑтво Compact Flash" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "УÑтройÑтво Memory Stick" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "УÑтройÑтво Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "УÑтройÑтво SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "ДиÑк ZIP" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Привод Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "USB-накопитель" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "Музыкальный проигрыватель %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "Ð¦Ð¸Ñ„Ñ€Ð¾Ð²Ð°Ñ ÐºÐ°Ð¼ÐµÑ€Ð° %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "УÑтройÑтво" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Внешний %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "ЧиÑтый CD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "ЧиÑтый CD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "ЧиÑтый DVD-RAM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "ЧиÑтый DVD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "ЧиÑтый DVD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "ЧиÑтый DVD+R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "ЧиÑтый DVD+RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Звуковой компакт-диÑк" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Отключаемый том" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Том" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Тип операции %u неизвеÑтен" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Ðевозможно Ñоздать канал Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¾Ð³Ð¾ GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Вид Ð·Ð°Ð´Ð°Ð½Ð¸Ñ %u неизвеÑтен" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "ДейÑтвие оÑтановлено" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "УÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ. ПользовательÑкие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных MIME больше не " "поддерживаютÑÑ." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Ðе удалоÑÑŒ разобрать: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "ОÑтальные ошибки разбора будут проигнорированы." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ошибки отÑутÑтвуют" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Файл не найден" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "ÐžÐ±Ñ‰Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ðеверные параметры" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ поддерживаетÑÑ" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "Ошибка ввода/вывода" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Данные повреждены" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Формат недопуÑтим" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Заголовок файла неверен" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Файл Ñлишком велик" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "ÐедоÑтаточно меÑта на уÑтройÑтве" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ðеверный URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Файл не открыт" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Режим Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½ÐµÐ´Ð¾Ð¿ÑƒÑтим" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "ДоÑтуп запрещен" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Слишком много открытых файлов" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Обнаружен конец файла" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ðе ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "ДейÑтвие выполнÑетÑÑ" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "ДейÑтвие прервано" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Файл ÑущеÑтвует" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Обнаружены цикличеÑкие ÑÑылки" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "ДейÑтвие не разрешено" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "ЯвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "ÐедоÑтаточно памÑти" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Узел не найден" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Ð˜Ð¼Ñ ÑƒÐ·Ð»Ð° недопуÑтимо" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Узел не имеет адреÑа" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Вход не удалÑÑ" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "ДейÑтвие отменено" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Каталог занÑÑ‚" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Каталог не пуÑÑ‚" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "Слишком много ÑÑылок" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ÐаходитÑÑ Ð½Ðµ на той же файловой ÑиÑтеме" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Слишком длинное имÑ" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Ð¡ÐµÑ€Ð²Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупен" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Запрошенные данные Ñ ÑервиÑа уÑтарели" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Ошибка протокола" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Ðе удалоÑÑŒ найти главный браузер" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "ОтÑутÑтвует аÑÑоциированное дейÑтвие по умолчанию" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "ОтÑутÑтвует обработчик Ñхемы URL" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Ошибка разбора командной Ñтроки" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Ошибка Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ‹" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸Ñтекло" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Ошибка Ñервера имён" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "РеÑÑƒÑ€Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ ÑƒÑтарела" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ðеверное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ðе ÑвлÑетÑÑ ÑимволичеÑкой ÑÑылкой" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u байт" msgstr[1] "%u байта" msgstr[2] "%u байт" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f КБ" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f МБ" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f ГБ" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (недопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¿Ð¾ÑледовательноÑть Юникода)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "ДиÑкета" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "ДиÑк" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "ДиÑк USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "ДиÑк IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Memory Stick" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Камера" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Корневой том" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Ðудио CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "ÐеизвеÑтный том" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Сетевой Ñервер" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Ðевозможно подÑоединить диÑкету. Возможно, диÑкета отÑутÑтвует в диÑководе." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" "Ðевозможно подÑоединить том. Возможно, ноÑитель отÑутÑтвует в уÑтройÑтве." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Ðевозможно подÑоединить диÑкету. Возможно, диÑкета в формате, который не " "может быть подÑоединен." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Ðевозможно подключить том. ЕÑли Ñто зашифрованное уÑтройÑтво, возможно " "введен неверный пароль или иÑпользован неверный ключ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Ðевозможно подÑоединить выбранный том. Возможно, том в формате, который не " "может быть подÑоединён." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Ðевозможно подÑоединить выбранную диÑкету." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Ðевозможно подÑоединить выбранный том." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Ðевозможно подÑоединить выбранный том. Возможно, том иÑпользуетÑÑ Ð¾Ð´Ð½Ð¾Ð¹ или " "более программой." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Ðевозможно отÑоединить выбранный том." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… из дочернего процеÑÑа %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Ðевозможно запуÑтить процеÑÑ Ð¼Ð¾Ð½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² пÑевдотерминале" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "" "ÐÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в select() при чтении данных из дочернего процеÑÑа (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Ðевозможно отправить Ñообщение процеÑÑу монтированиÑ." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "ÐÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Ошибка при запуÑке команды" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Ðевозможно извлечь ноÑитель" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Ðевозможно отÑоединить подключённый Ñервер" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Сеть" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Ðачало" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "ÐеизвеÑтное значение GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Сеть Windows" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾Ð³Ð¾ компьютера (%s) неизвеÑтна." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Это проиÑходит, когда вход в ÑÐµÐ°Ð½Ñ Ð½Ð° компьютере оÑущеÑтвлÑетÑÑ Ð²Ð¿ÐµÑ€Ð²Ñ‹Ðµ.\n" "\n" "Удалённый компьютер приÑлал идентификационную информацию %s. Чтобы " "убедитьÑÑ, что продолжение ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ полноÑтью безопаÑна, ÑвÑжитеÑÑŒ Ñ " "Ñитемным админиÑтратором." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Войти вÑÑ‘ равно" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Отменить вход" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "ДопуÑтимый файл параметров в \"%s\" не найден\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "ИÑпользуйте переменную Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ \"%s\" Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ адреÑа.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Ваш HTTP Proxy требует региÑтрации.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Ð’Ñ‹ должны зарегиÑтрироватьÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупа к \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Ваш пароль будет передан в незашифрованном виде." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Ваш пароль будет передан в зашифрованном виде." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Ð’Ñ‹ должны зарегиÑтрироватьÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупа к домену %s %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Ð’Ñ‹ должны зарегиÑтрироватьÑÑ Ð´Ð»Ñ Ð´Ð¾Ñтупа к %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Приложение проÑмотра компонентов по умолчанию" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Приложение терминала по умолчанию" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Ðргумент exec Ð´Ð»Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»Ð° по умолчанию" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Приложение, иÑпользуемое Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра файлов, требующих компонента Ð´Ð»Ñ " "проÑмотра. Параметр %s будет заменён адреÑом (URI) файла, параметр %c - " "идентификатором (IID) компонента." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Приложение терминала, иÑпользуемое по умолчанию приложениÑми, нуждающимиÑÑ Ð² " "терминале." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Ðргумент exec, иÑпользующийÑÑ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼ терминала по умолчанию." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "ЗапуÑкать программу в терминале" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"aim\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"callto\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"ghelp\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа h323, еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"http\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылок URL типа \"https\", еÑли ключ " "уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"info\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"mailto\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"man\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" "Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа \"trash\", еÑли ключ уÑтановлен" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Обработчик URL типа \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Обработчик URL типа \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Обработчик URL типа \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Обработчик URL типа h232" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Обработчик URL типа \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Обработчик URL типа \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Обработчик URL типа \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Обработчик URL типа \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Обработчик URL типа \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Обработчик URL типа \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа h323." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе \"command\", " "будет обрабатывать ÑÑылки (URL) типа \"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки " "(URL), будет запуÑкатьÑÑ Ð² терминале." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа h323" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Разделённый запÑтыми ÑпиÑок доменов типа DNS-SD, которые должны быть видимы " "по адреÑу \"network:///\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "" "Дополнительные домены, в которых оÑущеÑтвлÑть поиÑк ÑервиÑов типа DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Как отображать локальный ÑÐµÑ€Ð²Ð¸Ñ Ñ‚Ð¸Ð¿Ð° DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" "Возможные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ \"merged\" (\"ÑовмеÑтные\"), \"separate\" (\"раздельные" "\") и \"disabled\" (\"отключено\")." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервером требуют авторизации" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL автоматичеÑкой наÑтройки прокÑи" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Включает уÑтановки прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP через Интернет." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Порт прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Пароль прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Порт прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "ЕÑли Ñтот ключ уÑтановлен, то ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервером требуют " "авторизации. Пара значений имÑ_пользователÑ/пароль определÑетÑÑ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸ \"/" "system/http_proxy/authentication_user\" и \"/system/http_proxy/" "authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Узлы, доÑтупные без прокÑи" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Пароль Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ на прокÑи-Ñервере протокола HTTP." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Режим конфигурации прокÑи-Ñерверов" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Порт прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð³Ð¾ протокола HTTP" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Порт прокÑи-Ñервера Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð³Ð¾ протокола HTTP" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Режим конфигурации ÑервиÑа прокÑи. Возможные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ \"none\" (\"отÑутÑтвует" "\"), \"manual\" (\"ручной\"), \"auto\" (\"автоматичеÑкий\")." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° FTP." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð³Ð¾ протокола HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° SOCKS." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Порт на машине, определённой ключом \"/system/http_proxy/host\" Ð´Ð»Ñ ÑервиÑа " "прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Порт на машине, определённой ключом \"/system/proxy/ftp_host\" Ð´Ð»Ñ ÑервиÑа " "прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Порт на машине, определённой ключом \"/system/proxy/secure_host\" Ð´Ð»Ñ " "ÑервиÑа прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Порт на машине, определённой ключом \"/system/proxy/socks_host\" Ð´Ð»Ñ ÑервиÑа " "прокÑи." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Этот ключ Ñодержит ÑпиÑок узлов, Ñоединение Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ оÑущеÑтвлÑетÑÑ " "напрÑмую, Ð¼Ð¸Ð½ÑƒÑ Ð¿Ñ€Ð¾ÐºÑи-Ñервер (еÑли поÑледний иÑпользуетÑÑ). Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ " "быть именами узлов, доменами (Ñ Ð¸Ñпользованием раÑширителей типа *.foo.com), " "адреÑами узлов протокола IP (в вариантах IPv4 и IPv6) и Ñетевыми адреÑами Ñ " "иÑпользованием маÑки (наподобие 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" "СÑылка (URL), предоÑтавлÑÑŽÑ‰Ð°Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой конфигурации " "прокÑи-Ñерверов." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "ИÑпользовать прокÑи-Ñервер Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ авторизации на прокÑи-Ñервере Ð´Ð»Ñ " "протокола HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "Ð Ð°Ð±Ð¾Ñ‡Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Ð Ð°Ð±Ð¾Ñ‡Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° или домен Windows, к которым отноÑитÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ. Чтобы " "изменение рабочей группы вÑтупило в Ñилу, возможно потребуетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ " "региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² ÑиÑтеме." gnome-vfs-2.24.4/po/Makefile.in.in0000644000175000001440000001537711450333323013523 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-vfs-2.24.4/po/ar.po0000644000175000001440000014121211334251016011776 00000000000000# translation of gnome-vfs.HEAD.po to Arabic # translation of gnome-vfs.HEAD.ar.po to # This file is distributed under the same license as the PACKAGE package. # Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER. # # Sayed Jaffer Al-Mosawi , 2002. # Isam Bayazidi , 2002. # Arafat Medini , 2003. # Ayman Hourieh , 2004. # Khaled Hosny , 2006, 2007, 2008. msgid "" msgstr "" "Project-Id-Version: gnome-vfs.HEAD\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "vfs&component=general\n" "POT-Creation-Date: 2009-03-17 14:21+0000\n" "PO-Revision-Date: 2008-08-03 15:37+0300\n" "Last-Translator: Khaled Hosny \n" "Language-Team: Arabic \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" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "جزء ISO 9660" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u NUL يحتوي على محارÙ." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u لا يحتوي على اسم طريقة." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u لا يحتوي على علامة نهاية الخيارات." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u لديه خيارات غير Ù…Ø¹Ø±ÙˆÙØ© %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u لا يحتوي على اسم وحدة." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "لم ÙŠÙØ¹Ø«ÙŽØ± على مل٠الإعدادات `%s': %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%Id أحبط التحليل." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "جزء AFFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "جزء AFS الشبكي" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "جزء مكتش٠آليا" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "سواقة أقراص مدمجة" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "قرص صوت رقمي" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "جزء جهاز عتادي" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "جزء EncFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "جزء لينكس Ext2" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "جزء لينكس Ext3" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "جزء MSDOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "جزء BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "جزء FUSE" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "جزء MacOS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "جزء قرص مدمج" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "جزء قرص Hsfs المدمج" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "جزء JFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "جزء Windows NT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "جزء النظام" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "جزء الذاكرة" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "جزء مينكس" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "جزء NFS الشبكي" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "جزء Netware" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "جزء لينكس Reiser4" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "جزء لينكس ReiserFS " #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "جزء مشارك مع ويندوز" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "جزء SuperMount" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "جزء DVD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "جزء Solaris/BSD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "جزء Udfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "جزء Pcfs Solaris" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "جزء Sun SAM-QFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "جزء مؤقت" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "جزء دوس محسّن" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "جزء Windows VFAT" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "جزء Xenix" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "جزء لينكس XFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "جزء XIAFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "جزء CIFS" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "مجهول" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "جزء %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "قرص مدمج" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "مشغّل %s/%s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "مشغّل %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "مشغل أقراص مرنة" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "مشغّل Ùلاش مدمج" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "مشغّل اصبع ذاكرة" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "مشغل ميديا ذكية" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "مشغّل SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "قرص Zip" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "مشغل Jaz" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "مشغل قلمي" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "مشغّل موسيقى %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "كاميرا رقمية %s %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "مشغّل" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "%s خارجي" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "قرص CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "قرص CD-R ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "قرص CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "قرص CD-RW ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "قرص CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "قرص DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "قرص DVD-RAM ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "قرص DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "قرص DVD-R ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "قرص DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "قرص DVD-RW ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "قرص DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "قرص DVD+R ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "قرص DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "قرص DVD+RW ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "قرص DVD+RW ÙØ§Ø±Øº" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "قرص صوتي" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "جزء %s قابل للإزالة" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "جزء" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "نوع عمليّة مجهول %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "لا يمكن إنشاء أنبوب Ù„ GIOChannelØ§Ù„Ù…ÙØªÙˆØ­ : %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "نوع عمليّة مجهول %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "أوقÙÙØª العمليّة" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "ÙˆØ¸ÙŠÙØ© ملغية، تعديل المستخدم لقاعدة بيانات MIME لم يعد مدعومًا." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "تعذّر تحليل: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "سيتمّ تجاهل أخطاء اﻻعراب القادمة." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "لا خطأ" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "الملÙÙ‘ غير موجود" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "خطأ عامّ" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "خطأ داخلي" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "عوامل غير صالحة" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "عمليّة غير مدعومة" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "خطأ ادخال/اخراج" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "البيانات معطوبة" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "التهيئة غير سليمة" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "معالجة سيئة للملÙÙ‘" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "الملÙÙ‘ كبير جدّا" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "لا توجد مساحة كاÙية على الجهاز" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "نظام ملÙّات للقراءة Ùقط" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "URI غير صحيح" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "المل٠غير Ù…ÙØªÙˆØ­" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "نمط Ø§Ù„ÙØªØ­ غير سليم" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Ù…ÙÙ†ÙØ¹ Ø§Ù„Ù†ÙØ§Ø°" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "Ø§Ù„Ù…Ù„ÙØ§Øª Ø§Ù„Ù…ÙØªÙˆØ­Ø© كثيرة جدا" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "نهاية الملÙÙ‘" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "ليس دليلا" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "العملية ÙÙŠ تقدم" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Ø£ÙوقÙÙØª العملية" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "المل٠موجود" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "ÙˆÙوجÙهت وصلات دائرية" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "العمليّة غير مسموح بها" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "دليل" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "الذاكرة غير كاÙية" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "المضي٠غير موجود" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "اسم المضي٠غير سليم" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "ليس للمضي٠عنوان" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "ÙØ´Ù„ الولوج" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Ø£Ùلغيت العملية" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "الدليل مشغول" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "الدليل غير ÙØ§Ø±Øº" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "وصلات كثيرة جدا" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "نظام Ù…Ù„ÙØ§Øª للقراءة Ùقط" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "ليس على Ù†ÙØ³ نظام Ø§Ù„Ù…Ù„ÙØ§Øª" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "الاسم طويل جدا" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "الخدمة غير Ù…ØªÙˆÙØ±Ø©" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "الطلب ألغى بيانات الخدمة" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "خطأ بروتوكول" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "تعذّر إيجاد Ø§Ù„Ù…ØªØµÙØ­ الرئيسي" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "لا يرتبط بإجراء Ø§ÙØªØ±Ø§Ø¶ÙŠ" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "لا معالج لسيمة العنوان (URL)" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "خطأ عند تحليل سطر الأوامر" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "خطأ عند اطلاق الأمر" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "انتهت المهلة" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "خطأ ÙÙŠ خادوم التنشيط الاسمي" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "المورد مقÙÙ„" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "استدعاء التابع ملغى" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "اسم مل٠غير صالح" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "ليست وصلة رمزية" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "خطأ مجهول" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u بايت" msgstr[1] "بايت واحد" msgstr[2] "%u بايت" msgstr[3] "%u بايتات" msgstr[4] "%u بايت" msgstr[5] "%u بايت" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f كيلوبايت" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f ميجابايت" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f جيجابايت" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (يونيكود غير سليم)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "قرص مرن" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "قرص" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "مشغل USB" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "مشغّل IEEE1394" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "اصبع ذاكرة" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "وسيط ذكية" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "آلة تصوير" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "الجزء الجذري" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "قرص صوتي" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "جزء مجهول" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "خادوم شبكة" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "لا يمكن تجهيز سواقة الأقراص المرنة. ربما بسبب عدم وجود قرص مرن ÙÙŠ السواقة." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "لا يمكن تجهيز الجزء. ربما لعدم وجود وسيط ÙÙŠ السواقة." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "لا يمكن تجهيز سواقة الأقراص المرنة. ربما بسبب تهيئة القرص المرن التي لا يمكن " "تجهيزها." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "عاجز عن ضم الجزء. إذا كان مشغل Ù…Ø´ÙØ±ØŒ Ùلابد من كون كلمة السر أو Ø§Ù„Ù…ÙØªØ§Ø­ " "المستخدمين خاطئين." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "لا يمكن تجهيز الجزء المختار. ربما لكون الجزء ÙÙŠ تهيئة لا يمكن تجهيزها." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "لا يمكن تجهيز سواقة الأقراص المرنة المنتقاة." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "لا يمكن تجهيز الجزء المختار." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "لا يمكن إلغاء الضم للجزء المختار. الجزء مستخدم من قبل برنامج أو أكثر." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "لا يمكن إلغاء تجهيز الجزء المختار." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "ÙØ´Ù„ت قراءة البيانات من العملية الإبنة %Id (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "لم أستطع تشغيل عملية الضم ÙÙŠ pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "خطأ غير متوقع ÙÙŠ select() أثناء قراءة البيانات من العملية الإبنة (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "لم أستطع إرسال كلمة السر إلى عملية الضم. " #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "خطأ غير متوقع ÙÙŠ waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "ÙØ´Ù„ تشغيل الأمر" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "لا يمكن طرد الوسيط" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "لا يمكن إلغاء تجهيز الخادوم المتصل" #: ../modules/computer-method.c:543 msgid "Network" msgstr "الشبكة" #: ../modules/computer-method.c:561 msgid "Home" msgstr "المنزل" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "نظام Ø§Ù„Ù…Ù„ÙØ§Øª" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "جنوم VFSSeekPosition مجهول %Id" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "شبكة ويندوز" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "هويّة الحاسوب البعيد (%s) مجهولة." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "يحدث هذا عندما يتمّ الولوج إلى حاسوب للمرّة الأولى.\n" "\n" "الهوية المرسلة للحاسوب البعيد هي %s. إذا أردتّ التأكد بشكل مطلق من أنّ " "المتابعة آمنة، اتّصل بمدير النظام." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Ù„ÙØ¬Ù’ على أي حال" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "الغي الولوج" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "لم يعثر على ملÙÙ‘ إعدادات سليم عند %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "استخدم المتغيّر البيئي %s لتحديد موقع آخر.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "وسيط HTTP خاصتك تتطلب تسجيل دخولك.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "يتحتم عليك الولوج لتنْÙÙØ° إلى \"%s\".\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "كلمة سرك ستنقل بدون تشÙير." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "كلمة سرك ستنقل Ù…Ø´ÙØ±Ø©." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "يتحتم عليك الولوج لتصل إلى %s نطاق %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "يتحتم عليك الولوج لتصل إلى%s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "تطبيق عرض المكونات Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "تطبيق الطرÙية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "معامل التنÙيذ للطرÙية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ©" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "التطبيق المستعمل لعرض Ø§Ù„Ù…Ù„ÙØ§Øª التي تستحق مكونا لعرضها. سيعوض المتغير %s بـ " "URI Ø§Ù„Ù…Ù„ÙØŒ كما سيعوض المتغير %c بـ IID المكون." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "الطرÙية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© التي ستستعمل للتطبيقات التي تتطلب طرÙية." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "معامل التنÙيذ الذي سيستعمل للطرÙية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ©." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "شغّل الأمر ÙÙŠ طرÙية" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"aim\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"callto\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"ghelp\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"h323\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"http\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"https\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"info\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"mailto\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"man\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "الأمر المستخدم لمعالجة عناوين \"trash\"ØŒ ÙÙŠ حال تمكينها." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "معالج عناوين \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "معالج عناوين \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "معالج عناوين \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "معالج عناوين \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "معالج عناوين \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "معالج عناوين \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "معالج عناوين \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "معالج عناوين \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "معالج عناوين \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "معالج عناوين \"trash\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"aim\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"callto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"ghelp\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"h323\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"http\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"https\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"info\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"mailto\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"man\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ \"command\" معالجة عناوين " "\"trash\"." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل " "ÙÙŠ شاشة طرÙية." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"aim\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"callto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"ghelp\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"h323\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"http\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"https\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"info\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"mailto\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"man\"" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Ùيما إذا كان على الأمر المحدّد معالجة عناوين \"trash\"" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "قائمة -Ù…ÙØµÙˆÙ„Ø© Ø¨ÙØ§ØµÙ„Ø©- بنطاقات DNS-SD التي ستكون مرئيّة ÙÙŠ موقع \"network:///" "\"." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "نطاقات زيادة للبحث ÙÙŠ داخلها عن خدمات DNS-SD" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "كيÙية عرض خدمة DNS-SD المحلية" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "القيم الممكنة هي \"merged\"ØŒ \"separate\"ØŒ Ùˆ \"disabled\"." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "توثق من الاتصالات لخادوم الوسيط" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "عنوان الإعداد الآلي للوسيط" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "ØªÙØ¹ÙŠÙ„ إعدادات الوسيط عند Ø§Ù„Ù†ÙØ§Ø° لـ http عبر الانترنت." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "اسم مضي٠وسيط الـ FTP" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Ù…Ù†ÙØ° وسيط الـ FTP" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "اسم مضي٠وسيط الـ HTTP" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "كلمة سر وسيط الـ HTTP" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Ù…Ù†ÙØ° وسيط الـ HTTP" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "اسم مستخدم وسيط الـ HTTP" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "إذا كانت صحيح، سيحتاج الاتصال بخادوم الوسيط إلى توثيق. اجتماع اسم المستخدم/" "كلمة السر معرّ٠بواسطة \"/system/http_proxy/authentication_user\" Ùˆ \"/system/" "http_proxy/authentication_password\"." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "مضيÙين ليسو مضيÙÙŠ وسيط" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "كلمة السر التي ستمرر للتوثق عند القيام بوسيطة الـ http." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "نمط إعداد الوسيط" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "اسم مضي٠وسيط SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Ù…Ù†ÙØ° وسيط SOCKS" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "اسم مضي٠وسيط HTTP آمن" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Ù…Ù†ÙØ° وسيط HTTP آمن" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "اختر نسق إعداد الوسيط. القيم المدعومة هي \"none\"ØŒ \"manual\"Ùˆ \"auto\"." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "اسم الجهاز الذي سيقع وسيطة الـ FTP عبره." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "اسم الجهاز الذي سيقع وسيطة الـ HTTP عبره." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "اسم الجهاز الذي سيقع عبره وسيطة آمنة للـ HTTP." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "اسم الجهاز الذي سيقع بركسية socks·عبره." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ \"/system/http_proxy/host\" المستعمل كوكيل." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ \"/system/proxy/ftp_host\" المستعمل كوكيل." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ \"/system/proxy/secure_host\" المستعمل كوكيل." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ \"/system/proxy/socks_host\" المستعمل كوكيل." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "يحوي هذا Ø§Ù„Ù…ÙØªØ§Ø­ قائمة من المضيÙين المتصلين مباشرة، عوضا عن المتصلين عبر " "وسيط ما (هذا إذا كان نشطا). يمكن أن تكون القيم أسماء مضيÙين أونطاق (باستخدام " "رمز تعميم أولي مثل *.foo.com)ØŒ عناوين مضيÙÙŠ الـ IP(IPv4 Ùˆ IPv6) أو عناوين " "شبكة (مثل 192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "العنوان المزود لقيم إعدادات الوسيط." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "استخدم وسيط HTTP" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "اسم المستخدم الذي سيمرر عند القيام بوسيطة الـ HTTP." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "مجموعة عمل SMB" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "مجموعة العمل أو نطاق شبكة ويندوز التى يتبعها هذا المستخدم. لكي تؤثّر مجموعة " "العمل الجديدة تأثيرا كاملا قد تحتاج للخروج ثم الولوج مرّة أخرى." gnome-vfs-2.24.4/po/nn.po0000644000175000001440000013116611334251016012016 00000000000000# translation of nn.po to Norwegian Nynorsk # Norwegian (nynorsk) translation of gnome-vfs. # Copyright (C) 2002 Free Software Foundation # # Kjartan Maraas , 2001, 2006. # Roy-Magne Mo , 2001-2002. # Ã…smund Skjæveland , 2003-2008. msgid "" msgstr "" "Project-Id-Version: nn\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-02-24 19:16+0100\n" "PO-Revision-Date: 2008-02-24 19:17+0100\n" "Last-Translator: Ã…smund Skjæveland \n" "Language-Team: Norwegian Nynorsk \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660-volum" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u inneheld NUL-teikn." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u innheld ikkje noko metodenamn." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s: %u har ikkje noko sluttmerke pÃ¥ alternativa." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s: %u har ukjende val %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u inneheld ikkje nokon modulnamn." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Oppsettfila «%s» vart ikkje funnen: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d avbraut tolking." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS nettverksvolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatisk attkjend volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD-ROM Drive" msgstr "CD-ROM-stasjon" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "CD Digital Audio" msgstr "Digital CD-lyd" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Hardware Device Volume" msgstr "Maskinvaredataeining" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "EncFS Volume" msgstr "EncFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "MSDOS Volume" msgstr "MSDOS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "BSD Volume" msgstr "BSD-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "FUSE Volume" msgstr "FUSE-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 msgid "MacOS Volume" msgstr "MacOS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "CDROM Volume" msgstr "CDROM-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Hsfs CDROM Volume" msgstr "Hsfs CDROM-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 msgid "JFS Volume" msgstr "JFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Windows NT Volume" msgstr "Windows NT-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "System Volume" msgstr "Systemvolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 msgid "Memory Volume" msgstr "Minnevolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "Minix Volume" msgstr "Minix-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "NFS Network Volume" msgstr "NFS nettverksvolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Netware Volume" msgstr "Netware-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Windows Shared Volume" msgstr "Delt Windows-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "SuperMount Volume" msgstr "SuperMount-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "DVD Volume" msgstr "DVD-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "Solaris/BSD Volume" msgstr "Solaris/BSD-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "Temporary Volume" msgstr "Mellombels volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "Enhanced DOS Volume" msgstr "Utvida DOS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Windows VFAT Volume" msgstr "Windows VFAT-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Xenix Volume" msgstr "Xenix-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "XFS Linux Volume" msgstr "XFS Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "XIAFS Volume" msgstr "XIAFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "CIFS Volume" msgstr "CIFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:115 msgid "Unknown" msgstr "Ukjend" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-volum" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskett" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash-media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Minnepinne" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC-media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pennedisk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s musikkavspiller" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitalt kamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ekstern %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Blank CD-R-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Blank CD-RW-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Blank DVD-RAM-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Blank DVD-R-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Blank DVD-RW-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Blank DVD+R-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Blank DVD+RW-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Lyd-CD" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s Flyttbart volum" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volum" # TRN: Hø? #: ../libgnomevfs/gnome-vfs-job.c:734 #, c-format msgid "Unknown operation type %u" msgstr "Ukjend operasjonstype %u" #: ../libgnomevfs/gnome-vfs-job.c:1025 ../libgnomevfs/gnome-vfs-job.c:1176 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kan ikkje oppretta røyr for open GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1692 #, c-format msgid "Unknown job kind %u" msgstr "Ukjend jobbtype %u" #: ../libgnomevfs/gnome-vfs-job.c:1725 msgid "Operation stopped" msgstr "Operasjonen vart stoppa" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "Forelda funksjonar. Brukarendringar av MIME-databasen er ikkje støtta lenger." #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 #, c-format msgid "Could not parse: %s" msgstr "Kunne ikkje tolka %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:717 msgid "More parsing errors will be ignored." msgstr "Overser komande tolkingsfeil." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ingen feil" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fann ikkje fila" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Ã…lmenn feil" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Intern feil" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ugyldige argument" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Ustøtta operasjon" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "IU-feil" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Øydelagte data" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Formatet er ikkje gyldig" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Ugyldig filhandtak" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Fila er for stor" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ikkje ledig plass pÃ¥ eininga" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Ikkje skrivbart filsystem" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ugyldig URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Fila er ikkje open" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Modus for opning er ikkje gyldig" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Nekta tilgang" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "For mange opne filer" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Slutt pÃ¥ fila" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ikkje ein katalog" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operasjonen pÃ¥gÃ¥r" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operasjonen avbroten" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Fila finst" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Lenkjer i løkke oppdaga" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operasjonen ikkje tillaten" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Er ein katalog" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ikkje nok minne" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Fann ikkje verten" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Verstnamnet er ikkje gyldig" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Verten har inga addresse" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Feil ved innlogging" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operasjonen vart avbroten" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Mappa er oppteken" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Mappa er ikkje tom" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "For mange lenkjer" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Skrivebeskytta filsystem" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ikkje pÃ¥ det same filsystemet" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Namnet er for langt" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Tenesta er ikkje tilgjengeleg" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Spørjing gjer tenesta sine data for gamle" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Protokollfeil" # TRN: Kva er ein master browser? #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Fann ingen hovudlesar" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Inga tilkopla standardhandling" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ingen handsamar av URL-skjema" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Feil under tolking av kommandolinje" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Feil under køyring av kommando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Tidsgrense nÃ¥dd" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Namnetenarfeil" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Ressursen er lÃ¥st" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "Funksjonskallet er forelda" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ugyldig filnamn" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ikkje ei symbolsk lenkje" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ukjend feil" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u byte" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KiB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MiB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GiB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ugyldig Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskett" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-stasjon" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-stasjon" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Minnepinne" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:846 msgid "Root Volume" msgstr "Rotvolum" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:927 msgid "Audio CD" msgstr "Lyd-CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:960 msgid "Unknown volume" msgstr "Ukjent volum" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1172 msgid "Network server" msgstr "Nettverkstenar" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Kan ikkje montera disketten. Det er truleg ikkje nokon diskett i " "diskettstasjonen." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Kan ikkje montera volumet. Det er truleg ikkje noko media i stasjonen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Kan ikkje montera disketten. Disketten er truleg i eit format som ikkje kan " "monterast." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Klarte ikkje Ã¥ montera volumet. Dersom det var ein kryptert stasjon, vart " "feil passord eller nøkkel brukt." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Kan ikkje montera det valde volumet. Volumet er truleg i eit format som " "ikkje kan monterast." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Kan ikkje montera den valde diskettstasjonen." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Kan ikkje montera det valde volumet." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Kan ikkje montera det valde volumet. Volumet er truleg i bruk av eitt eller " "fleier program." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Kan ikkje avmontera det valde volumet." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Klarte ikkje Ã¥ lesa frÃ¥ underprosess %d: (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Kunne ikkje køyra monteringsprogram i ein pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Uventa feil i select() under lesing av data frÃ¥ ein barnprosess (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Klarte ikkje Ã¥ senda passord til monteringsprosess." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Uventa feil i waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Klarte ikkje Ã¥ starta kommando" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Kan ikkje løysa ut mediet" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Kan ikkje avmontera tilkopla tenar" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Nettverk" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Heime" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Filsystem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ukjend GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows-nettverk" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identiteten til den eksterne maskinen (%s) er ukjent." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Dette skjer nÃ¥r du loggar pÃ¥ ein maskin for fyrste gong.\n" "\n" "Identiteten som er sendt av den eksterne maskinen er «%s». Dersom du vil " "vera heilt viss pÃ¥ at det er trygt Ã¥ halda fram, bør du kontakta " "systemadministratoren." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Logg inn likevel" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Avbryt innlogging" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Klarte ikkje Ã¥ finna ei gyldig innstillingsfil pÃ¥ %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Bruk miljøvariabelen «%s» om du vil oppgje ei anna plassering.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "HTTP-mellomtenaren din krev at du loggar inn.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Du mÃ¥ logga inn for Ã¥ fÃ¥ tilgang til «%s».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Passordet ditt vil verta overført i klartekst." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Passordet ditt vil verta overført kryptert." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Du mÃ¥ logga inn for Ã¥ fÃ¥ tilgang til %s i domenet %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Du mÃ¥ logga inn for Ã¥ fÃ¥ tilgang til %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Standard komponentvisarprogram" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Standard terminalemulator" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Exec-argument til standardterminalemulatoren" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Programmet som skal brukast til Ã¥ visa filer som krev ein eigen komponent " "for Ã¥ visast. Parameteren %s vert erstatta av URI-en til fila, og " "parameteren %c vert erstatta med komponenten sin IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "Standard terminalemulator som skal brukast til program som krev ein terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Exec-argumentet som skal brukast til standardterminalemulatoren." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Køyr kommandoen i ein terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Kommandoen som tek hand om «aim»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Kommandoen som tek hand om «callto»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Kommandoen som tek hand om «ghelp»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Kommandoen som tek hand om «h323»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Kommandoen som tek hand om «http»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Kommandoen som tek hand om «https»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Kommandoen som tek hand om «info»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Kommandoen som tek hand om «mailto»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Kommandoen som tek hand om «man»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Kommandoen som tek hand om «trash»-adresser, dersom slÃ¥tt pÃ¥." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "Handsamar av «aim»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "Handsamar av «callto»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "Handsamar av «ghelp»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "Handsamar av «h323»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "Handsamar av «http»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "Handsamar av «https»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "Handsamar av «info»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "Handsamar av «mailto»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "Handsamar av «man»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "Handsamar av «trash»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «aim»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «callto»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «ghelp»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «h323»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «http»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «https»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «info»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «mailto»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «man»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «trash»-" "adresser." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein " "terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «aim»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «callto»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «ghelp»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «h323»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «http»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «https»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «info»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «mailto»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «man»-adresser" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Om den oppgjevne kommandoen skal handsama «trash»-adresser" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Kommadelt liste over DNS-SD-domener som skal vera synlege i " "nettverksplasseringa." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Ekstra domener det skal sjÃ¥ast etter DNS-SD-tenester i" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Korleis lokal DNS-SD-teneste skal visast" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Moglege verdiar er «merged», «separate» og «disabled»." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentiser tilkoplingar til mellomtenaren" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL til automatisk oppsett av mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Brukar mellomtenar-innstillingane nÃ¥r HTTP over internett vert brukt." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Vertsnamn pÃ¥ FTP-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port pÃ¥ FTP-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Vertsnamn pÃ¥ HTTP-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Passord pÃ¥ HTTP-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port pÃ¥ HTTP-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Brukarnamn pÃ¥ HTTP-mellomtenar" # TRN: Gives not the meaning. #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Dersom denne er sann, skal tilkoplingar til mellomtenaren autentiserast. " "Brukarnamn og passord er definerte i nøklane «/system/http_proxy/" "authentication_user» og «/system/http_proxy/authentication_password»." # TRN: Trur eg. #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Vertar som ikkje brukar mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" "Passord som skal brukast til autentisering nÃ¥r ein HTTP-mellomtenar vert " "brukt" #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "MÃ¥ten mellomtenaren vert satt opp pÃ¥" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Vertsnamn pÃ¥ SOCKS-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port pÃ¥ SOCKS-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Vertsnamn pÃ¥ trygg HTTP-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port pÃ¥ trygg HTTP-mellomtenar" # TRN: Skal verdiane omsetjast #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Vel korleis bruken av mellomtenaren skal setjast opp. Moglege verdiar er " "«none», «manual» og «auto»." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Namnet pÃ¥ maskinen som er FTP-mellomtenar." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Namnet pÃ¥ maskinen som er HTTP-mellomtenar." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Namnet pÃ¥ maskinen som er trygg HTTP-mellomtenar." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Namnet pÃ¥ maskinen som er Socks-mellomtenar." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/" "http_proxy/host»." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/proxy/" "ftp_host»." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/proxy/" "secure_host»." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/" "socks_host»." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Denne nøkkelen inneheld ei liste med vertar som skal koplast til direkte, og " "ikkje gjennom ein mellomtenar, sjølv om ein er i bruk elles. Verdiane kan " "vera vertsnamn, domener (med jokerteikn i byrjinga, t.d. *.foo.com), IP-" "adresser (bÃ¥de IPv4 og IPv6) og nettverksadresser med nettmaske (t.d. " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL til mellomtenar-innstillingar." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Bruk HTTP-mellomtenar" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" "Brukarnamn som skal brukast til autentisering nÃ¥r ein HTTP-mellomtenar vert " "brukt" #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-arbeidsgruppe" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Windows-nettverk-arbeidsgruppa eller -domenet som brukaren er ein del av. " "For at ei ny arbeidsgruppe skal tre i kraft mÃ¥ brukaren kanskje logga av og " "pÃ¥." gnome-vfs-2.24.4/po/li.po0000644000175000001440000007642211334251016012012 00000000000000# Limburgish translation of gnome-vfs # msgid "" msgstr "" "Project-Id-Version: Gnome-vfs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-10 12:25+0100\n" "PO-Revision-Date: 2003-06-05 10:01+0100\n" "Last-Translator: Mathieu van Woerkom \n" "Language-Team: Limburgish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: daemon/gnome-vfs-daemon.c:596 #, fuzzy msgid "Could not initialize Bonobo" msgstr "Kós de huid-browser neet vènje" #: daemon/gnome-vfs-daemon.c:603 msgid "Could not initialize gnome vfs" msgstr "" #: libgnomevfs/gnome-vfs-cdrom.c:235 msgid "ISO 9660 Volume" msgstr "" # hier wordt waarschijnlijk NULL bedoeld ipv NUL #: libgnomevfs/gnome-vfs-configuration.c:227 #, c-format msgid "%s:%d contains NUL characters." msgstr "%s:%d haet NULL-teikes." #: libgnomevfs/gnome-vfs-configuration.c:244 #, c-format msgid "%s:%d contains no method name." msgstr "%s:%d haet geine metoodnaam." #: libgnomevfs/gnome-vfs-configuration.c:284 #, fuzzy, c-format msgid "%s:%d has no options endmarker." msgstr "%s:%d haet geine metoodnaam." #: libgnomevfs/gnome-vfs-configuration.c:295 #, c-format msgid "%s:%d has unknown options %s." msgstr "" #: libgnomevfs/gnome-vfs-configuration.c:314 #, c-format msgid "%s:%d contains no module name." msgstr "%s:%d haet geine modulenaam." #: libgnomevfs/gnome-vfs-configuration.c:368 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Kóngfiggerasiebesjtandj '%s' woor neet gevónje: %s" #: libgnomevfs/gnome-vfs-filesystem-type.c:37 msgid "AFFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:38 msgid "AFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "Auto-detected Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:40 #: libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "CD-ROM Drive" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "CD Digital Audio" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:43 msgid "Hardware Device Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:44 #: libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "Ext2 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Ext3 Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:47 #: libgnomevfs/gnome-vfs-filesystem-type.c:57 #: libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MSDOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:48 #: libgnomevfs/gnome-vfs-filesystem-type.c:49 msgid "MacOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Hsfs CDROM Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:52 msgid "JFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:53 #: libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Windows NT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:54 #: libgnomevfs/gnome-vfs-filesystem-type.c:62 #: libgnomevfs/gnome-vfs-filesystem-type.c:63 msgid "System Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:55 msgid "Memory Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "Minix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "NFS Network Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "Netware Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "ReiserFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:65 msgid "Windows Shared Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "SuperMount Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "DVD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:68 msgid "Solaris/BSD Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "Udfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "Pcfs Solaris Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:71 msgid "Sun SAM-QFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Enhanced DOS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "Windows VFAT Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Xenix Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:75 msgid "XFS Linux Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:76 msgid "XIAFS Volume" msgstr "" #: libgnomevfs/gnome-vfs-filesystem-type.c:104 #, fuzzy msgid "Unknown" msgstr "Ónbekènde faeler" #: libgnomevfs/gnome-vfs-job.c:734 #, fuzzy, c-format msgid "Unknown operation type %u" msgstr "Ónbekènd oper-tiep %u" #: libgnomevfs/gnome-vfs-job.c:1024 libgnomevfs/gnome-vfs-job.c:1169 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kèn gein piep aanmake veur GIOChannel: %s" #: libgnomevfs/gnome-vfs-job.c:1687 #, c-format msgid "Unknown job kind %u" msgstr "Ónbekènd taaktiep %u" #: libgnomevfs/gnome-vfs-job.c:1720 msgid "Operation stopped" msgstr "Operasie gesjtop" #: libgnomevfs/gnome-vfs-mime-handlers.c:101 #: libgnomevfs/gnome-vfs-mime-handlers.c:255 #: libgnomevfs/gnome-vfs-mime-handlers.c:306 #: libgnomevfs/gnome-vfs-mime-handlers.c:600 #: libgnomevfs/gnome-vfs-mime-handlers.c:619 #: libgnomevfs/gnome-vfs-mime-handlers.c:637 #: libgnomevfs/gnome-vfs-mime-handlers.c:656 #: libgnomevfs/gnome-vfs-mime-handlers.c:675 #: libgnomevfs/gnome-vfs-mime-handlers.c:816 #: libgnomevfs/gnome-vfs-mime-handlers.c:838 #: libgnomevfs/gnome-vfs-mime-handlers.c:857 #: libgnomevfs/gnome-vfs-mime-handlers.c:876 #: libgnomevfs/gnome-vfs-mime-handlers.c:929 #: libgnomevfs/gnome-vfs-mime-handlers.c:946 #: libgnomevfs/gnome-vfs-mime-handlers.c:963 #: libgnomevfs/gnome-vfs-mime-handlers.c:981 #: libgnomevfs/gnome-vfs-mime-handlers.c:999 #: libgnomevfs/gnome-vfs-mime-info.c:643 libgnomevfs/gnome-vfs-mime-info.c:650 #: libgnomevfs/gnome-vfs-mime-info.c:658 libgnomevfs/gnome-vfs-mime-info.c:665 #: libgnomevfs/gnome-vfs-mime-info.c:673 libgnomevfs/gnome-vfs-mime-info.c:690 #: libgnomevfs/gnome-vfs-mime-info.c:697 libgnomevfs/gnome-vfs-mime-info.c:704 #: libgnomevfs/gnome-vfs-mime-info.c:711 libgnomevfs/gnome-vfs-mime-info.c:719 #: libgnomevfs/gnome-vfs-mime-info.c:726 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" #: libgnomevfs/gnome-vfs-parse-ls.c:666 #, c-format msgid "Could not parse: %s" msgstr "Kós neet verwirke: %s" #: libgnomevfs/gnome-vfs-parse-ls.c:668 msgid "More parsing errors will be ignored." msgstr "Mie verwirkingsfaelers waere genegeerd." #. GNOME_VFS_OK #: libgnomevfs/gnome-vfs-result.c:38 msgid "No error" msgstr "Geine faeler" #. GNOME_VFS_ERROR_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:39 msgid "File not found" msgstr "Besjtandj neet gevónje" #. GNOME_VFS_ERROR_GENERIC #: libgnomevfs/gnome-vfs-result.c:40 msgid "Generic error" msgstr "Algemeine faeler" #. GNOME_VFS_ERROR_INTERNAL #: libgnomevfs/gnome-vfs-result.c:41 msgid "Internal error" msgstr "Interne faeler" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: libgnomevfs/gnome-vfs-result.c:42 msgid "Invalid parameters" msgstr "Óngeljige paramaeters" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: libgnomevfs/gnome-vfs-result.c:43 msgid "Unsupported operation" msgstr "Neet-gesjtiepde operasie" #. GNOME_VFS_ERROR_IO #: libgnomevfs/gnome-vfs-result.c:44 msgid "I/O error" msgstr "I/O-faeler" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: libgnomevfs/gnome-vfs-result.c:45 msgid "Data corrupted" msgstr "Data versjangeleerd" #. GNOME_VFS_ERROR_WRONG_FORMAT #: libgnomevfs/gnome-vfs-result.c:46 msgid "Format not valid" msgstr "Óngeljig formaat" #. GNOME_VFS_ERROR_BAD_FILE #: libgnomevfs/gnome-vfs-result.c:47 msgid "Bad file handle" msgstr "Sjlechte besjtandj-handle" #. GNOME_VFS_ERROR_TOO_BIG #: libgnomevfs/gnome-vfs-result.c:48 msgid "File too big" msgstr "Besjtandj te groet" #. GNOME_VFS_ERROR_NO_SPACE #: libgnomevfs/gnome-vfs-result.c:49 msgid "No space left on device" msgstr "Gein ruumde vrie op 't apperaat" #. GNOME_VFS_ERROR_READ_ONLY #: libgnomevfs/gnome-vfs-result.c:50 msgid "Read-only file system" msgstr "Allein-laeze besjtandjsysteem" #. GNOME_VFS_ERROR_INVALID_URI #: libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid URI" msgstr "Óngeljige URI" #. GNOME_VFS_ERROR_NOT_OPEN #: libgnomevfs/gnome-vfs-result.c:52 msgid "File not open" msgstr "Besjtandj neet aope" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: libgnomevfs/gnome-vfs-result.c:53 msgid "Open mode not valid" msgstr "Óngeljige äöpeningsmodus" #. GNOME_VFS_ERROR_ACCESS_DENIED #: libgnomevfs/gnome-vfs-result.c:54 msgid "Access denied" msgstr "Toegank verbaoje" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: libgnomevfs/gnome-vfs-result.c:55 msgid "Too many open files" msgstr "Teväöl aope besjtenj" #. GNOME_VFS_ERROR_EOF #: libgnomevfs/gnome-vfs-result.c:56 msgid "End of file" msgstr "ènj van besjtandj" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:57 msgid "Not a directory" msgstr "Gein map" #. GNOME_VFS_ERROR_IN_PROGRESS #: libgnomevfs/gnome-vfs-result.c:58 msgid "Operation in progress" msgstr "Operasie is baezig" #. GNOME_VFS_ERROR_INTERRUPTED #: libgnomevfs/gnome-vfs-result.c:59 msgid "Operation interrupted" msgstr "Operasie óngerbraoke" #. GNOME_VFS_ERROR_FILE_EXISTS #: libgnomevfs/gnome-vfs-result.c:60 msgid "File exists" msgstr "Besjtandj besjteit al" #. GNOME_VFS_ERROR_LOOP #: libgnomevfs/gnome-vfs-result.c:61 msgid "Looping links encountered" msgstr "Circulaere koppelinge gevónje" #. GNOME_VFS_ERROR_NOT_PERMITTED #: libgnomevfs/gnome-vfs-result.c:62 msgid "Operation not permitted" msgstr "Operasie neet toegesjtange" #. GNOME_VFS_ERROR_IS_DIRECTORY #: libgnomevfs/gnome-vfs-result.c:63 msgid "Is a directory" msgstr "Is ein map" #. GNOME_VFS_ERROR_NO_MEMORY #: libgnomevfs/gnome-vfs-result.c:64 msgid "Not enough memory" msgstr "Neet genóg ónthaud" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: libgnomevfs/gnome-vfs-result.c:65 msgid "Host not found" msgstr "Mesjien neet gevónje" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: libgnomevfs/gnome-vfs-result.c:66 msgid "Host name not valid" msgstr "Mesjiennaam is neet geljig" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: libgnomevfs/gnome-vfs-result.c:67 msgid "Host has no address" msgstr "Mesjien haet gein adres" #. GNOME_VFS_ERROR_LOGIN_FAILED #: libgnomevfs/gnome-vfs-result.c:68 msgid "Login failed" msgstr "Inlogge neet gelök" #. GNOME_VFS_ERROR_CANCELLED #: libgnomevfs/gnome-vfs-result.c:69 msgid "Operation cancelled" msgstr "Operasie aafgebraoke" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: libgnomevfs/gnome-vfs-result.c:70 msgid "Directory busy" msgstr "Map is in gebroek" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: libgnomevfs/gnome-vfs-result.c:71 msgid "Directory not empty" msgstr "Map is neet laeg" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: libgnomevfs/gnome-vfs-result.c:72 msgid "Too many links" msgstr "Teväöl koppelinge" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:73 msgid "Read only file system" msgstr "Allein-laeze besjtandjsysteem" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: libgnomevfs/gnome-vfs-result.c:74 msgid "Not on the same file system" msgstr "Neet op 'tzelfde besjtandjsysteem" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: libgnomevfs/gnome-vfs-result.c:75 msgid "Name too long" msgstr "Naam te lank" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: libgnomevfs/gnome-vfs-result.c:76 msgid "Service not available" msgstr "Deens is neet besjikbaar" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: libgnomevfs/gnome-vfs-result.c:77 msgid "Request obsoletes service's data" msgstr "Verzeuk maak gegaeves van de deens achterhaold" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: libgnomevfs/gnome-vfs-result.c:78 msgid "Protocol error" msgstr "Protokolfaeler" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: libgnomevfs/gnome-vfs-result.c:79 msgid "Could not find master browser" msgstr "Kós de huid-browser neet vènje" #. GNOME_VFS_ERROR_NO_DEFAULT #: libgnomevfs/gnome-vfs-result.c:80 msgid "No default action associated" msgstr "Gein sjtanderdaksie gedefinieerd" #. GNOME_VFS_ERROR_NO_HANDLER #: libgnomevfs/gnome-vfs-result.c:81 msgid "No handler for URL scheme" msgstr "Gein aksie veur URL sjema" #. GNOME_VFS_ERROR_PARSE #: libgnomevfs/gnome-vfs-result.c:82 msgid "Error parsing command line" msgstr "Faeler bie analysere opdrachregel" #. GNOME_VFS_ERROR_LAUNCH #: libgnomevfs/gnome-vfs-result.c:83 msgid "Error launching command" msgstr "Faeler bie sjtarte opdrach" #. GNOME_VFS_ERROR_TIMEOUT #: libgnomevfs/gnome-vfs-result.c:84 libgnomevfs/gnome-vfs-result.c:86 msgid "Timeout reached" msgstr "" #. GNOME_VFS_ERROR_NAMESERVER #: libgnomevfs/gnome-vfs-result.c:85 #, fuzzy msgid "Nameserver error" msgstr "Algemeine faeler" #. GNOME_VFS_ERROR_LOCKED #: libgnomevfs/gnome-vfs-result.c:87 msgid "The resource is locked" msgstr "" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: libgnomevfs/gnome-vfs-result.c:88 msgid "Function call deprecated" msgstr "" #: libgnomevfs/gnome-vfs-result.c:203 msgid "Unknown error" msgstr "Ónbekènde faeler" #: libgnomevfs/gnome-vfs-utils.c:85 #, fuzzy, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u bytes" msgstr[1] "%u bytes" #: libgnomevfs/gnome-vfs-utils.c:91 #, fuzzy, c-format msgid "%.1f KB" msgstr "%.1f K" #: libgnomevfs/gnome-vfs-utils.c:95 #, c-format msgid "%.1f MB" msgstr "%.1f Mb" #: libgnomevfs/gnome-vfs-utils.c:99 #, c-format msgid "%.1f GB" msgstr "%.1f Gb" #: libgnomevfs/gnome-vfs-utils.c:1131 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:369 msgid " (invalid Unicode)" msgstr " (óngeljige Unicode)" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:551 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:607 msgid "Floppy" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:552 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:610 msgid "CD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:554 msgid "CD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:555 msgid "CD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:556 msgid "DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:557 msgid "DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:558 msgid "DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:559 msgid "DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:560 msgid "CD-ROM/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:561 msgid "CD-ROM/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:562 msgid "CD-ROM/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:563 msgid "CD-ROM/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 msgid "CD-R/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 msgid "CD-R/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:566 msgid "CD-R/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW/DVD-ROM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "CD-RW/DVD-RAM" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "CD-RW/DVD-R" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "CD-RW/DVD-RW" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "Disk" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "USB Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "IEEE1394 Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CF" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "SD/MMC" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "Memory Stick" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "Smart Media" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:613 msgid "Zip Drive" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "Camera" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "DVD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:807 msgid "Root Volume" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:888 msgid "Audio CD" msgstr "" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:921 #, fuzzy msgid "Unknown volume" msgstr "Ónbekènde faeler" #: libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1109 msgid "Network server" msgstr "" #. Handle floppy case #: libgnomevfs/gnome-vfs-volume-ops.c:113 msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" #. All others #: libgnomevfs/gnome-vfs-volume-ops.c:117 msgid "Unable to mount the volume. There is probably no media in the device." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:123 msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:126 msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:131 msgid "Unable to mount the selected floppy drive." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:133 msgid "Unable to mount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:145 msgid "Unable to unmount the selected volume." msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:257 #: libgnomevfs/gnome-vfs-volume-ops.c:313 msgid "Failed to start command" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:301 msgid "Unable to eject media" msgstr "" #: libgnomevfs/gnome-vfs-volume-ops.c:499 msgid "Unable to unmount connected server" msgstr "" #: modules/computer-method.c:545 msgid "Network" msgstr "" #: modules/computer-method.c:563 msgid "Home" msgstr "" #: modules/computer-method.c:581 #, fuzzy msgid "Filesystem" msgstr "Besjtenj" #: modules/file-method.c:413 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ónbekènde GnomeVFSSeekPosition %d" #: modules/network-method.c:1396 #, fuzzy msgid "Windows Network" msgstr "Vinsters" #: modules/sftp-method.c:1338 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "" #: modules/sftp-method.c:1339 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" #: modules/sftp-method.c:1347 msgid "Log In Anyway" msgstr "" #: modules/sftp-method.c:1348 msgid "Cancel Login" msgstr "" #. FIXME: we probably shouldn't use printf to output the message #: modules/test-method.c:590 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Gein geljig insjtèllingebesjtandj gevónje in %s\n" #: modules/test-method.c:592 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "" "Gebroek de %s omgaevingsvarrejabele veur ein angere lokasie op te gaeve.\n" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:1 msgid "Standard Moniker factory" msgstr "Sjtanderd Monikerfebrik" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:2 msgid "file MonikerExtender" msgstr "Besjtandj MonikerExtender" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:3 msgid "generic Gnome VFS moniker" msgstr "Algemeine Gnome VFS moniker" #: monikers/GNOME_VFS_Moniker_std.server.in.in.h:4 msgid "generic file moniker" msgstr "Algemeine besjtandjmoniker" #: schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "" #: schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" #: schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:12 #, fuzzy msgid "The handler for \"aim\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:13 #, fuzzy msgid "The handler for \"callto\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:14 #, fuzzy msgid "The handler for \"ghelp\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:15 #, fuzzy msgid "The handler for \"h323\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:16 #, fuzzy msgid "The handler for \"http\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:17 #, fuzzy msgid "The handler for \"https\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:18 #, fuzzy msgid "The handler for \"info\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:19 #, fuzzy msgid "The handler for \"mailto\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:20 #, fuzzy msgid "The handler for \"man\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:21 #, fuzzy msgid "The handler for \"trash\" URLs" msgstr "Gein aksie veur URL sjema" #: schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "" #: schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "" #: schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of dns-sd domains that should be visible in the network " "location." msgstr "" #: schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for dns-sd services in" msgstr "" #: schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "" #: schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "" #: schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "" #: schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "" #: schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "" #: schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "" #: schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "" #: schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "" #: schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "" #: schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "" #: schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" #: schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" #: schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" #: schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "" #: schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "" #: schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "" #: schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "" #: schemas/system_smb.schemas.in.h:2 msgid "The window workgroup the user is part of" msgstr "" #, fuzzy #~ msgid "Windows Disk" #~ msgstr "Vinsters" #, fuzzy #~ msgid "File could not be opened: %s" #~ msgstr "Kós neet verwirke: %s" #, fuzzy #~ msgid "File is empty" #~ msgstr "Besjtandj besjteit al" #~ msgid "Applications" #~ msgstr "Programme" #~ msgid "Cards" #~ msgstr "Kaarte" #~ msgid "Files" #~ msgstr "Besjtenj" #~ msgid "Folders" #~ msgstr "Mappe" #~ msgid "Help" #~ msgstr "Hulp" #~ msgid "Hosts" #~ msgstr "Computers" #~ msgid "Links" #~ msgstr "Verwiezinge" #~ msgid "Mail" #~ msgstr "E-mail" # Translate exactly the same in CDE's sys.dtwmrc file of the locale #~ msgid "Tools" #~ msgstr "Getuug" #~ msgid "Windows" #~ msgstr "Vinsters" #, fuzzy #~ msgid "The handler for HTTP URLs" #~ msgstr "Gein aksie veur URL sjema" #, fuzzy #~ msgid "The handler for HTTPS URLs" #~ msgstr "Gein aksie veur URL sjema" #, fuzzy #~ msgid "Handle ghelp URLs" #~ msgstr "Gein aksie veur URL sjema" #, fuzzy #~ msgid "Handle trash URLs" #~ msgstr "Gein aksie veur URL sjema" #, fuzzy #~ msgid "aim URL handler" #~ msgstr "Sjlechte besjtandj-handle" #, fuzzy #~ msgid "mailto URL handler" #~ msgstr "Sjlechte besjtandj-handle" #~ msgid "1 byte" #~ msgstr "1 byte" gnome-vfs-2.24.4/po/nb.po0000644000175000001440000013051711354402652012007 00000000000000# Norwegian translation of gnome-vfs (bokmÃ¥l dialect). # Copyright (C) 1999-2003 Free Software Foundation, Inc. # Kjartan Maraas , 1999-2009. # msgid "" msgstr "" "Project-Id-Version: gnome-vfs 2.24.x\n" "Report-Msgid-Bugs-To:\n" "POT-Creation-Date: 2009-11-11 20:10+0100\n" "PO-Revision-Date: 2009-11-11 20:11+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian BokmÃ¥l \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" #: ../libgnomevfs/gnome-vfs-cdrom.c:237 msgid "ISO 9660 Volume" msgstr "ISO 9660-volum" #: ../libgnomevfs/gnome-vfs-configuration.c:225 #, c-format msgid "%s:%u contains NUL characters." msgstr "%s:%u inneholder NUL-tegn." #: ../libgnomevfs/gnome-vfs-configuration.c:242 #, c-format msgid "%s:%u contains no method name." msgstr "%s:%u inneholder ingen metodenavn." #: ../libgnomevfs/gnome-vfs-configuration.c:282 #, c-format msgid "%s:%u has no options endmarker." msgstr "%s:%u har ingen sluttmarkør for alternativer." #: ../libgnomevfs/gnome-vfs-configuration.c:293 #, c-format msgid "%s:%u has unknown options %s." msgstr "%s:%u har ukjente alternativer %s." #: ../libgnomevfs/gnome-vfs-configuration.c:312 #, c-format msgid "%s:%u contains no module name." msgstr "%s:%u inneholder ingen modulnavn." #: ../libgnomevfs/gnome-vfs-configuration.c:363 #, c-format msgid "Configuration file `%s' was not found: %s" msgstr "Konfigurasjonsfilen `%s' ble ikke funnet: %s" #. stop parsing if we failed #: ../libgnomevfs/gnome-vfs-configuration.c:382 #, c-format msgid "%s:%d aborted parsing." msgstr "%s:%d avbrøt lesing." #: ../libgnomevfs/gnome-vfs-filesystem-type.c:39 msgid "AFFS Volume" msgstr "AFFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:40 msgid "AFS Network Volume" msgstr "AFS nettverksvolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:41 msgid "Auto-detected Volume" msgstr "Automatisk gjenkjent volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:42 msgid "Btrfs Linux Volume" msgstr "Btrfs Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:43 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:45 msgid "CD-ROM Drive" msgstr "CD-ROM stasjon" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:44 msgid "CD Digital Audio" msgstr "Digital lyd-CD" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:46 msgid "Hardware Device Volume" msgstr "Volum pÃ¥ maskinvareenhet" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:47 msgid "EncFS Volume" msgstr "EncFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:48 msgid "eCryptfs Volume" msgstr "eCryptfs-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:49 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:50 msgid "Ext2 Linux Volume" msgstr "Ext2 Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:51 msgid "Ext3 Linux Volume" msgstr "Ext3 Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:52 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:53 msgid "Ext4 Linux Volume" msgstr "Ext4 Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:54 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:68 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:69 msgid "MSDOS Volume" msgstr "MSDOS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:55 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:64 msgid "BSD Volume" msgstr "BSD-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:56 msgid "FUSE Volume" msgstr "FUSE-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:57 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:58 msgid "MacOS Volume" msgstr "MacOS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:59 msgid "CDROM Volume" msgstr "CD-ROM-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:60 msgid "Hsfs CDROM Volume" msgstr "Hsfs CD-ROM-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:61 msgid "JFS Volume" msgstr "JFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:62 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:71 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:72 msgid "Windows NT Volume" msgstr "Windows NT-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:63 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:65 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:75 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:76 #: ../libgnomevfs/gnome-vfs-filesystem-type.c:77 msgid "System Volume" msgstr "Systemvolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:66 msgid "Memory Volume" msgstr "Minnevolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:67 msgid "Minix Volume" msgstr "Minix-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:70 msgid "NFS Network Volume" msgstr "NFS nettverksvolum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:73 msgid "NILFS Linux Volume" msgstr "NILFS Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:74 msgid "Netware Volume" msgstr "Netware-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:78 msgid "Reiser4 Linux Volume" msgstr "Reiser4 Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:79 msgid "ReiserFS Linux Volume" msgstr "ReiserFS Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:80 msgid "Windows Shared Volume" msgstr "Delt Windows-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:81 msgid "SuperMount Volume" msgstr "SuperMount-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:82 msgid "DVD Volume" msgstr "DVD-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:83 msgid "Solaris/BSD Volume" msgstr "Silaris/BSD-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:84 msgid "Udfs Solaris Volume" msgstr "Udfs Solaris-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:85 msgid "Pcfs Solaris Volume" msgstr "Pcfs Solaris-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:86 msgid "Sun SAM-QFS Volume" msgstr "Sun SAM-QFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:87 msgid "Temporary Volume" msgstr "Midlertidig volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:88 msgid "Enhanced DOS Volume" msgstr "Forbedret DOS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:89 msgid "Windows VFAT Volume" msgstr "Windows VFAT-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:90 msgid "Xenix Volume" msgstr "Xenix-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:91 msgid "XFS Linux Volume" msgstr "XFS Linux-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:92 msgid "XIAFS Volume" msgstr "XIAFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:93 msgid "CIFS Volume" msgstr "CIFS-volum" #: ../libgnomevfs/gnome-vfs-filesystem-type.c:121 msgid "Unknown" msgstr "Ukjent" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:356 #: ../libgnomevfs/gnome-vfs-hal-mounts.c:582 #, c-format msgid "%s Volume" msgstr "%s-volum" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:372 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:565 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:623 msgid "CD-ROM" msgstr "CD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:374 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:567 msgid "CD-R" msgstr "CD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:376 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:568 msgid "CD-RW" msgstr "CD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:380 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:569 msgid "DVD-ROM" msgstr "DVD-ROM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:382 msgid "DVD+R" msgstr "DVD+R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:384 msgid "DVD+RW" msgstr "DVD+RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:386 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:571 msgid "DVD-R" msgstr "DVD-R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:388 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:572 msgid "DVD-RW" msgstr "DVD-RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:390 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:570 msgid "DVD-RAM" msgstr "DVD-RAM" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:393 msgid "DVD±R" msgstr "DVD±R" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:396 msgid "DVD±RW" msgstr "DVD±RW" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:399 #, c-format msgid "%s/%s Drive" msgstr "%s/%s-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:401 #, c-format msgid "%s Drive" msgstr "%s-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:406 msgid "Floppy Drive" msgstr "Diskettstasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:409 msgid "Compact Flash Drive" msgstr "Compact Flash-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:411 msgid "Memory Stick Drive" msgstr "Minnestokk" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:413 msgid "Smart Media Drive" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:415 msgid "SD/MMC Drive" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:417 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:594 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:626 msgid "Zip Drive" msgstr "Zip-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:420 msgid "Jaz Drive" msgstr "Jaz-stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:423 msgid "Pen Drive" msgstr "Pennestasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:429 #, c-format msgid "%s %s Music Player" msgstr "%s %s musikkavspiller" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:437 #, c-format msgid "%s %s Digital Camera" msgstr "%s %s digitalt kamera" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:467 msgid "Drive" msgstr "Stasjon" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:472 #, c-format msgid "External %s" msgstr "Ekstern %s" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:508 msgid "CD-ROM Disc" msgstr "CD-ROM-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:513 msgid "Blank CD-R Disc" msgstr "Tom CD-R plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:515 msgid "CD-R Disc" msgstr "CD-R plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:520 msgid "Blank CD-RW Disc" msgstr "Tom CD-RW plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:522 msgid "CD-RW Disc" msgstr "CD-RW plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:526 msgid "DVD-ROM Disc" msgstr "DVD-ROM plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:531 msgid "Blank DVD-RAM Disc" msgstr "Tom DVD-RAM plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:533 msgid "DVD-RAM Disc" msgstr "DVD-RAM plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:538 msgid "Blank DVD-R Disc" msgstr "Tom DVD-R plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:540 msgid "DVD-R Disc" msgstr "DVD-R plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:545 msgid "Blank DVD-RW Disc" msgstr "Tom DVD-RW plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:547 msgid "DVD-RW Disc" msgstr "DVD-RW plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:553 msgid "Blank DVD+R Disc" msgstr "Tom DVD+R plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:555 msgid "DVD+R Disc" msgstr "DVD+R plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:560 msgid "Blank DVD+RW Disc" msgstr "Tom DVD+RW plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:562 msgid "DVD+RW Disc" msgstr "DVD+RW plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:569 msgid "Audio Disc" msgstr "Lyd-plate" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:580 #, c-format msgid "%s Removable Volume" msgstr "%s avtagbart volum" #: ../libgnomevfs/gnome-vfs-hal-mounts.c:591 msgid "Volume" msgstr "Volum" #: ../libgnomevfs/gnome-vfs-job.c:733 #, c-format msgid "Unknown operation type %u" msgstr "Ukjent type operasjon %u" #: ../libgnomevfs/gnome-vfs-job.c:1024 ../libgnomevfs/gnome-vfs-job.c:1175 #, c-format msgid "Cannot create pipe for open GIOChannel: %s" msgstr "Kan ikke opprette rør for Ã¥pen GIOChannel: %s" #: ../libgnomevfs/gnome-vfs-job.c:1691 #, c-format msgid "Unknown job kind %u" msgstr "Ukjent type jobb %u" #: ../libgnomevfs/gnome-vfs-job.c:1724 msgid "Operation stopped" msgstr "Stoppet operasjonen" #: ../libgnomevfs/gnome-vfs-mime-handlers.c:103 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:231 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:282 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:365 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:386 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:406 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:427 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:448 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:541 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:565 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:586 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:607 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:628 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:647 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:666 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:686 #: ../libgnomevfs/gnome-vfs-mime-handlers.c:706 #: ../libgnomevfs/gnome-vfs-mime-info.c:631 #: ../libgnomevfs/gnome-vfs-mime-info.c:638 #: ../libgnomevfs/gnome-vfs-mime-info.c:646 #: ../libgnomevfs/gnome-vfs-mime-info.c:653 #: ../libgnomevfs/gnome-vfs-mime-info.c:661 #: ../libgnomevfs/gnome-vfs-mime-info.c:678 #: ../libgnomevfs/gnome-vfs-mime-info.c:685 #: ../libgnomevfs/gnome-vfs-mime-info.c:692 #: ../libgnomevfs/gnome-vfs-mime-info.c:699 #: ../libgnomevfs/gnome-vfs-mime-info.c:707 #: ../libgnomevfs/gnome-vfs-mime-info.c:714 msgid "" "Deprecated function. User modifications to the MIME database are no longer " "supported." msgstr "" "UtgÃ¥tt funksjonskall. Brukerendringer i MIME-databasen er ikke støttet " "lengre." #: ../libgnomevfs/gnome-vfs-parse-ls.c:713 #, c-format msgid "Could not parse: %s" msgstr "Kan ikke fortolke: %s" #: ../libgnomevfs/gnome-vfs-parse-ls.c:715 msgid "More parsing errors will be ignored." msgstr "Flere fortolkningsfeil vil bli ignorert." #. GNOME_VFS_OK #: ../libgnomevfs/gnome-vfs-result.c:47 msgid "No error" msgstr "Ingen feil" #. GNOME_VFS_ERROR_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:48 msgid "File not found" msgstr "Fil ikke funnet" #. GNOME_VFS_ERROR_GENERIC #: ../libgnomevfs/gnome-vfs-result.c:49 msgid "Generic error" msgstr "Ordinær feil" #. GNOME_VFS_ERROR_INTERNAL #: ../libgnomevfs/gnome-vfs-result.c:50 msgid "Internal error" msgstr "Intern feil" #. GNOME_VFS_ERROR_BAD_PARAMETERS #: ../libgnomevfs/gnome-vfs-result.c:51 msgid "Invalid parameters" msgstr "Ugyldige parametere" #. GNOME_VFS_ERROR_NOT_SUPPORTED #: ../libgnomevfs/gnome-vfs-result.c:52 msgid "Unsupported operation" msgstr "Ikke støttet operasjon" #. GNOME_VFS_ERROR_IO #: ../libgnomevfs/gnome-vfs-result.c:53 msgid "I/O error" msgstr "I/U-feil" #. GNOME_VFS_ERROR_CORRUPTED_DATA #: ../libgnomevfs/gnome-vfs-result.c:54 msgid "Data corrupted" msgstr "Korrupt data" #. GNOME_VFS_ERROR_WRONG_FORMAT #: ../libgnomevfs/gnome-vfs-result.c:55 msgid "Format not valid" msgstr "Ugyldig format" #. GNOME_VFS_ERROR_BAD_FILE #: ../libgnomevfs/gnome-vfs-result.c:56 msgid "Bad file handle" msgstr "Ugyldig filhÃ¥ndtak" #. GNOME_VFS_ERROR_TOO_BIG #: ../libgnomevfs/gnome-vfs-result.c:57 msgid "File too big" msgstr "Filen er for stor" #. GNOME_VFS_ERROR_NO_SPACE #: ../libgnomevfs/gnome-vfs-result.c:58 msgid "No space left on device" msgstr "Ikke mer plass pÃ¥ enheten" #. GNOME_VFS_ERROR_READ_ONLY #: ../libgnomevfs/gnome-vfs-result.c:59 msgid "Read-only file system" msgstr "Skrivebeskyttet filsystem" #. GNOME_VFS_ERROR_INVALID_URI #: ../libgnomevfs/gnome-vfs-result.c:60 msgid "Invalid URI" msgstr "Ugyldig URI" #. GNOME_VFS_ERROR_NOT_OPEN #: ../libgnomevfs/gnome-vfs-result.c:61 msgid "File not open" msgstr "Filen er ikke Ã¥pen" #. GNOME_VFS_ERROR_INVALID_OPEN_MODE #: ../libgnomevfs/gnome-vfs-result.c:62 msgid "Open mode not valid" msgstr "Ugyldig Ã¥pningsmodus" #. GNOME_VFS_ERROR_ACCESS_DENIED #: ../libgnomevfs/gnome-vfs-result.c:63 msgid "Access denied" msgstr "Ingen tilgang" #. GNOME_VFS_ERROR_TOO_MANY_OPEN_FILES #: ../libgnomevfs/gnome-vfs-result.c:64 msgid "Too many open files" msgstr "For mange Ã¥pne filer" #. GNOME_VFS_ERROR_EOF #: ../libgnomevfs/gnome-vfs-result.c:65 msgid "End of file" msgstr "Slutt pÃ¥ filen" #. GNOME_VFS_ERROR_NOT_A_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:66 msgid "Not a directory" msgstr "Ikke en katalog" #. GNOME_VFS_ERROR_IN_PROGRESS #: ../libgnomevfs/gnome-vfs-result.c:67 msgid "Operation in progress" msgstr "Operasjonen er under fremgang" #. GNOME_VFS_ERROR_INTERRUPTED #: ../libgnomevfs/gnome-vfs-result.c:68 msgid "Operation interrupted" msgstr "Operasjonen avbrutt" #. GNOME_VFS_ERROR_FILE_EXISTS #: ../libgnomevfs/gnome-vfs-result.c:69 msgid "File exists" msgstr "Filen eksisterer" #. GNOME_VFS_ERROR_LOOP #: ../libgnomevfs/gnome-vfs-result.c:70 msgid "Looping links encountered" msgstr "Lenker i løkke funnet" #. GNOME_VFS_ERROR_NOT_PERMITTED #: ../libgnomevfs/gnome-vfs-result.c:71 msgid "Operation not permitted" msgstr "Operasjonen ikke tillatt" #. GNOME_VFS_ERROR_IS_DIRECTORY #: ../libgnomevfs/gnome-vfs-result.c:72 msgid "Is a directory" msgstr "Er en katalog" #. GNOME_VFS_ERROR_NO_MEMORY #: ../libgnomevfs/gnome-vfs-result.c:73 msgid "Not enough memory" msgstr "Ikke nok minne" #. GNOME_VFS_ERROR_HOST_NOT_FOUND #: ../libgnomevfs/gnome-vfs-result.c:74 msgid "Host not found" msgstr "Verten ikke funnet" #. GNOME_VFS_ERROR_INVALID_HOST_NAME #: ../libgnomevfs/gnome-vfs-result.c:75 msgid "Host name not valid" msgstr "Ugyldig vertsnavn" #. GNOME_VFS_ERROR_HOST_HAS_NO_ADDRESS #: ../libgnomevfs/gnome-vfs-result.c:76 msgid "Host has no address" msgstr "Verten har ingen adresse" #. GNOME_VFS_ERROR_LOGIN_FAILED #: ../libgnomevfs/gnome-vfs-result.c:77 msgid "Login failed" msgstr "Innlogging feilet" #. GNOME_VFS_ERROR_CANCELLED #: ../libgnomevfs/gnome-vfs-result.c:78 msgid "Operation cancelled" msgstr "Operasjonen avbrutt" #. GNOME_VFS_ERROR_DIRECTORY_BUSY #: ../libgnomevfs/gnome-vfs-result.c:79 msgid "Directory busy" msgstr "Katalogen opptatt" #. GNOME_VFS_ERROR_DIRECTORY_NOT_EMPTY #: ../libgnomevfs/gnome-vfs-result.c:80 msgid "Directory not empty" msgstr "Katalogen er ikke tom" #. GNOME_VFS_ERROR_TOO_MANY_LINKS #: ../libgnomevfs/gnome-vfs-result.c:81 msgid "Too many links" msgstr "For mange lenker" #. GNOME_VFS_ERROR_READ_ONLY_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:82 msgid "Read only file system" msgstr "Skrivebeskyttet filsystem" #. GNOME_VFS_ERROR_NOT_SAME_FILE_SYSTEM #: ../libgnomevfs/gnome-vfs-result.c:83 msgid "Not on the same file system" msgstr "Ikke pÃ¥ samme filsystem" #. GNOME_VFS_ERROR_NAME_TOO_LONG #: ../libgnomevfs/gnome-vfs-result.c:84 msgid "Name too long" msgstr "Navnet er for langt" #. GNOME_VFS_ERROR_SERVICE_NOT_AVAILABLE #: ../libgnomevfs/gnome-vfs-result.c:85 msgid "Service not available" msgstr "Tjeneste ikke tilgjengelig" #. GNOME_VFS_ERROR_SERVICE_OBSOLETE #: ../libgnomevfs/gnome-vfs-result.c:86 msgid "Request obsoletes service's data" msgstr "Forespørsel ugyldiggjør tjenestens data" #. GNOME_VFS_ERROR_PROTOCOL_ERROR #: ../libgnomevfs/gnome-vfs-result.c:87 msgid "Protocol error" msgstr "Feil i protokoll" #. GNOME_VFS_ERROR_NO_MASTER_BROWSER #: ../libgnomevfs/gnome-vfs-result.c:88 msgid "Could not find master browser" msgstr "Kan ikke finne master browser" #. GNOME_VFS_ERROR_NO_DEFAULT #: ../libgnomevfs/gnome-vfs-result.c:89 msgid "No default action associated" msgstr "Ingen forvalgt handling asossiert" #. GNOME_VFS_ERROR_NO_HANDLER #: ../libgnomevfs/gnome-vfs-result.c:90 msgid "No handler for URL scheme" msgstr "Ingen hÃ¥ndterer for URK-schema" #. GNOME_VFS_ERROR_PARSE #: ../libgnomevfs/gnome-vfs-result.c:91 msgid "Error parsing command line" msgstr "Feil under lesing av kommandolinjen" #. GNOME_VFS_ERROR_LAUNCH #: ../libgnomevfs/gnome-vfs-result.c:92 msgid "Error launching command" msgstr "Feil under oppstart av kommando" #. GNOME_VFS_ERROR_TIMEOUT #: ../libgnomevfs/gnome-vfs-result.c:93 msgid "Timeout reached" msgstr "Tidsavbrudd nÃ¥dd" #. GNOME_VFS_ERROR_NAMESERVER #: ../libgnomevfs/gnome-vfs-result.c:94 msgid "Nameserver error" msgstr "Feil med navnetjener" #. GNOME_VFS_ERROR_LOCKED #: ../libgnomevfs/gnome-vfs-result.c:95 msgid "The resource is locked" msgstr "Ressursen er lÃ¥st" #. GNOME_VFS_ERROR_DEPRECATED_FUNCTION #: ../libgnomevfs/gnome-vfs-result.c:96 msgid "Function call deprecated" msgstr "UtgÃ¥tt funksjonskall" #. GNOME_VFS_ERROR_INVALID_FILENAME #: ../libgnomevfs/gnome-vfs-result.c:97 msgid "Invalid filename" msgstr "Ugyldig filnavn" #. GNOME_VFS_ERROR_NOT_A_SYMBOLIC_LINK #: ../libgnomevfs/gnome-vfs-result.c:98 msgid "Not a symbolic link" msgstr "Ikke en symbolsk lenke" #: ../libgnomevfs/gnome-vfs-result.c:225 msgid "Unknown error" msgstr "Ukjent feil" #: ../libgnomevfs/gnome-vfs-utils.c:78 #, c-format msgid "%u byte" msgid_plural "%u bytes" msgstr[0] "%u byte" msgstr[1] "%u bytes" #: ../libgnomevfs/gnome-vfs-utils.c:84 #, c-format msgid "%.1f KB" msgstr "%.1f KB" #: ../libgnomevfs/gnome-vfs-utils.c:88 #, c-format msgid "%.1f MB" msgstr "%.1f MB" #: ../libgnomevfs/gnome-vfs-utils.c:92 #, c-format msgid "%.1f GB" msgstr "%.1f GB" #: ../libgnomevfs/gnome-vfs-utils.c:1108 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:382 msgid " (invalid Unicode)" msgstr " (ugyldig Unicode)" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:564 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:620 msgid "Floppy" msgstr "Diskett" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:573 msgid "CD-ROM/DVD-ROM" msgstr "CD-ROM/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:574 msgid "CD-ROM/DVD-RAM" msgstr "CD-ROM/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:575 msgid "CD-ROM/DVD-R" msgstr "CD-ROM/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:576 msgid "CD-ROM/DVD-RW" msgstr "CD-ROM/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:577 msgid "CD-R/DVD-ROM" msgstr "CD-R/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:578 msgid "CD-R/DVD-RAM" msgstr "CD-R/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:579 msgid "CD-R/DVD-R" msgstr "CD-R/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:580 msgid "CD-R/DVD-RW" msgstr "CD-R/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:581 msgid "CD-RW/DVD-ROM" msgstr "CD-RW/DVD-ROM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:582 msgid "CD-RW/DVD-RAM" msgstr "CD-RW/DVD-RAM" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:583 msgid "CD-RW/DVD-R" msgstr "CD-RW/DVD-R" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:584 msgid "CD-RW/DVD-RW" msgstr "CD-RW/DVD-RW" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:586 msgid "Disk" msgstr "Disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:587 msgid "USB Drive" msgstr "USB-disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:588 msgid "IEEE1394 Drive" msgstr "IEEE1394-disk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:589 msgid "CF" msgstr "CF" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:590 msgid "SD/MMC" msgstr "SD/MMC" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:591 #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:595 msgid "Memory Stick" msgstr "Minnestokk" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:592 msgid "Smart Media" msgstr "Smart Media" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:596 msgid "Camera" msgstr "Kamera" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:597 msgid "DVD" msgstr "DVD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:849 msgid "Root Volume" msgstr "Rotvolum" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:930 msgid "Audio CD" msgstr "Lyd-CD" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:963 msgid "Unknown volume" msgstr "Ukjent volum" #: ../libgnomevfs/gnome-vfs-volume-monitor-daemon.c:1175 msgid "Network server" msgstr "Nettverkstjener" #. Handle floppy case #: ../libgnomevfs/gnome-vfs-volume-ops.c:184 #, c-format msgid "" "Unable to mount the floppy drive. There is probably no floppy in the drive." msgstr "" "Kan ikke montere disketten. Det er mulig at det ikke stÃ¥r en diskett i " "stasjonen." #. All others #: ../libgnomevfs/gnome-vfs-volume-ops.c:188 #, c-format msgid "Unable to mount the volume. There is probably no media in the device." msgstr "Kan ikke montere volumet. Muligvis ingen media i enheten." #: ../libgnomevfs/gnome-vfs-volume-ops.c:194 #, c-format msgid "" "Unable to mount the floppy drive. The floppy is probably in a format that " "cannot be mounted." msgstr "" "Kan ikke montere diskettstasjonen. Disketten er sannsynligvis i et format " "som ikke kan monteres." #. Probably a wrong password #: ../libgnomevfs/gnome-vfs-volume-ops.c:198 #, c-format msgid "" "Unable to mount the volume. If this is an encrypted drive, then the wrong " "password or key was used." msgstr "" "Kan ikke montere volumet. Hvis dette er en kryptert stasjon ble feil passord " "eller nøkkel brukt." #: ../libgnomevfs/gnome-vfs-volume-ops.c:201 #, c-format msgid "" "Unable to mount the selected volume. The volume is probably in a format that " "cannot be mounted." msgstr "" "Kan ikke montere valgt volum. Volumet er sannsynligvis i et format som ikke " "kan monteres." #: ../libgnomevfs/gnome-vfs-volume-ops.c:206 msgid "Unable to mount the selected floppy drive." msgstr "Kan ikke montere valgt diskettstasjon." #: ../libgnomevfs/gnome-vfs-volume-ops.c:208 msgid "Unable to mount the selected volume." msgstr "Kan ikke montere valgt volum." #: ../libgnomevfs/gnome-vfs-volume-ops.c:221 #, c-format msgid "" "Unable to unmount the selected volume. The volume is in use by one or more " "programs." msgstr "" "Kan ikke montere valgt volum. Volumet er sannsynligvis i bruk av ett eller " "flere programmer." #: ../libgnomevfs/gnome-vfs-volume-ops.c:224 msgid "Unable to unmount the selected volume." msgstr "Kan ikke avmontere valgt volum." #: ../libgnomevfs/gnome-vfs-volume-ops.c:377 #, c-format msgid "Failed to read data from child process %d (%s)" msgstr "Feil under lesing av data fra underprosess %d (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:421 msgid "Couldn't run mount process in a pty" msgstr "Kunne ikke kjøre monteringsprogram i en pty" #: ../libgnomevfs/gnome-vfs-volume-ops.c:466 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Uventet feil i select() under lesing av data fra underprosess (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:520 #, c-format msgid "Couldn't send password to mount process." msgstr "Kunne ikke sende passord til monteringsprogram." #: ../libgnomevfs/gnome-vfs-volume-ops.c:559 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "Uventet feil i waitpid() (%s)" #: ../libgnomevfs/gnome-vfs-volume-ops.c:669 #: ../libgnomevfs/gnome-vfs-volume-ops.c:755 msgid "Failed to start command" msgstr "Feil ved start av kommando" #: ../libgnomevfs/gnome-vfs-volume-ops.c:742 msgid "Unable to eject media" msgstr "Kan ikke løse ut media" #: ../libgnomevfs/gnome-vfs-volume-ops.c:983 msgid "Unable to unmount connected server" msgstr "Kan ikke avmontere tilkoblet tjener" #: ../modules/computer-method.c:543 msgid "Network" msgstr "Nettverk" #: ../modules/computer-method.c:561 msgid "Home" msgstr "Hjem" #: ../modules/computer-method.c:579 msgid "Filesystem" msgstr "Filsystem" #: ../modules/file-method.c:497 #, c-format msgid "Unknown GnomeVFSSeekPosition %d" msgstr "Ukjent GnomeVFSSeekPosition %d" #: ../modules/network-method.c:1399 msgid "Windows Network" msgstr "Windows nettverk" #: ../modules/sftp-method.c:1424 #, c-format msgid "The identity of the remote computer (%s) is unknown." msgstr "Identiteten for den eksterne datamaskinen (%s) er ukjent." #: ../modules/sftp-method.c:1425 #, c-format msgid "" "This happens when you log in to a computer the first time.\n" "\n" "The identity sent by the remote computer is %s. If you want to be absolutely " "sure it is safe to continue, contact the system administrator." msgstr "" "Dette skjer nÃ¥r du logger inn pÃ¥ en datamaskin første gang.\n" "\n" "Identiteten som sendes av den eksterne datamaskinen er %s. Hvid du vil være " "helt sikker pÃ¥ at det er trygt Ã¥ fortsette kontakt systemadministrator." #: ../modules/sftp-method.c:1433 msgid "Log In Anyway" msgstr "Logg inn likevel" #: ../modules/sftp-method.c:1434 msgid "Cancel Login" msgstr "Avbryt pÃ¥logging" #. FIXME: we probably shouldn't use printf to output the message #: ../modules/test-method.c:587 #, c-format msgid "Didn't find a valid settings file at %s\n" msgstr "Fant ikke gyldig fil med innstillinger i %s\n" #: ../modules/test-method.c:589 #, c-format msgid "Use the %s environment variable to specify a different location.\n" msgstr "Bruk miljøvariabelen %s for Ã¥ spesifisere en annen lokasjon.\n" #: ../programs/authentication.c:106 #, c-format msgid "Your HTTP Proxy requires you to log in.\n" msgstr "Din HTTP-proxy krever at du logger inn.\n" #: ../programs/authentication.c:107 #, c-format msgid "" "You must log in to access \"%s\".\n" "%s" msgstr "" "Du mÃ¥ logge inn for Ã¥ aksessere «%s».\n" "%s" #: ../programs/authentication.c:110 msgid "Your password will be transmitted unencrypted." msgstr "Passordet vil overføres ukryptert." #: ../programs/authentication.c:111 msgid "Your password will be transmitted encrypted." msgstr "Passordet vil overføres kryptert." #: ../programs/authentication.c:163 #, c-format msgid "You must log in to access %s domain %s\n" msgstr "Du mÃ¥ logge inn for Ã¥ aksessere %s domene %s\n" #: ../programs/authentication.c:165 #, c-format msgid "You must log in to access %s\n" msgstr "Du mÃ¥ logge inn for Ã¥ aksessere %s\n" #: ../schemas/desktop_default_applications.schemas.in.h:1 msgid "Default component viewer application" msgstr "Forvalgt applikasjon for visning av komponent" #: ../schemas/desktop_default_applications.schemas.in.h:2 msgid "Default terminal application" msgstr "Forvalgt terminalapplikasjon" #: ../schemas/desktop_default_applications.schemas.in.h:3 msgid "Exec argument for default terminal" msgstr "Kjøringsargument for forvalgt terminal" #: ../schemas/desktop_default_applications.schemas.in.h:5 #, no-c-format msgid "" "The application to use for viewing files that require a component to view " "them. The parameter %s will be replaced by the file's URIs, the parameter %c " "will be replaced by the component IID." msgstr "" "Applikasjon som skal brukes for Ã¥ vise filer som krever en komponent for " "visning. Parameteren %s vil erstattes med filens URIer, parameteren %c vil " "erstattes med komponentens IID." #: ../schemas/desktop_default_applications.schemas.in.h:6 msgid "" "The default terminal application to use for applications that require a " "terminal." msgstr "" "Forvalgt terminalprogram som skal brukes for programmer som krever en " "terminal." #: ../schemas/desktop_default_applications.schemas.in.h:7 msgid "The exec argument to use for the default terminal application." msgstr "Kjøringsargument som skal brukes for forvalgt terminalprogram." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:1 msgid "Run the command in a terminal" msgstr "Kjør kommandoen i en terminal" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:2 msgid "The command used to handle \"aim\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «aim»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:3 msgid "The command used to handle \"callto\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «callto»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:4 msgid "The command used to handle \"ghelp\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «ghelp»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:5 msgid "The command used to handle \"h323\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «h323»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:6 msgid "The command used to handle \"http\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «http»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:7 msgid "The command used to handle \"https\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «https»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:8 msgid "The command used to handle \"info\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «info»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:9 msgid "The command used to handle \"mailto\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «mailto»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:10 msgid "The command used to handle \"man\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «man»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:11 msgid "The command used to handle \"trash\" URLs, if enabled." msgstr "Kommando som brukes til Ã¥ hÃ¥ndtere «trash»-URLer, hvis aktivert." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:12 msgid "The handler for \"aim\" URLs" msgstr "HÃ¥ndterer for «aim»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:13 msgid "The handler for \"callto\" URLs" msgstr "HÃ¥ndterer for «callto»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:14 msgid "The handler for \"ghelp\" URLs" msgstr "HÃ¥ndterer for «ghelp»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:15 msgid "The handler for \"h323\" URLs" msgstr "HÃ¥ndterer for «h323»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:16 msgid "The handler for \"http\" URLs" msgstr "HÃ¥ndterer for «http»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:17 msgid "The handler for \"https\" URLs" msgstr "HÃ¥ndterer for «https»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:18 msgid "The handler for \"info\" URLs" msgstr "HÃ¥ndterer for «info»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:19 msgid "The handler for \"mailto\" URLs" msgstr "HÃ¥ndterer for «mailto»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:20 msgid "The handler for \"man\" URLs" msgstr "HÃ¥ndterer for «man»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:21 msgid "The handler for \"trash\" URLs" msgstr "HÃ¥ndterer for «papirkurv»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:22 msgid "" "True if the command specified in the \"command\" key should handle \"aim\" " "URLs." msgstr "" "True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «aim»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:23 msgid "" "True if the command specified in the \"command\" key should handle \"callto" "\" URLs." msgstr "" "True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «callto»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:24 msgid "" "True if the command specified in the \"command\" key should handle \"ghelp\" " "URLs." msgstr "" "True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «ghelp»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:25 msgid "" "True if the command specified in the \"command\" key should handle \"h323\" " "URLs." msgstr "" "True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «h323»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:26 msgid "" "True if the command specified in the \"command\" key should handle \"http\" " "URLs." msgstr "" "True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «http»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:27 msgid "" "True if the command specified in the \"command\" key should handle \"https\" " "URLs." msgstr "" "True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «https»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:28 msgid "" "True if the command specified in the \"command\" key should handle \"info\" " "URLs." msgstr "" " True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «info»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:29 msgid "" "True if the command specified in the \"command\" key should handle \"mailto" "\" URLs." msgstr "" " True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «mailto»-" "URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:30 msgid "" "True if the command specified in the \"command\" key should handle \"man\" " "URLs." msgstr "" " True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «man»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:31 msgid "" "True if the command specified in the \"command\" key should handle \"trash\" " "URLs." msgstr "" "True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «trash»-URLer." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:32 msgid "" "True if the command used to handle this type of URL should be run in a " "terminal." msgstr "" "True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal." #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:33 msgid "Whether the specified command should handle \"aim\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «aim»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:34 msgid "Whether the specified command should handle \"callto\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «callto»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:35 msgid "Whether the specified command should handle \"ghelp\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «ghelp»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:36 msgid "Whether the specified command should handle \"h323\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «h323»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:37 msgid "Whether the specified command should handle \"http\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «http»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:38 msgid "Whether the specified command should handle \"https\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «https»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:39 msgid "Whether the specified command should handle \"info\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «info»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:40 msgid "Whether the specified command should handle \"mailto\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «mailto»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:41 msgid "Whether the specified command should handle \"man\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «man»-URLer" #: ../schemas/desktop_gnome_url_handlers.schemas.in.h:42 msgid "Whether the specified command should handle \"trash\" URLs" msgstr "Om oppgitt kommando skal hÃ¥ndtere «trash»-URLer" #: ../schemas/system_dns_sd.schemas.in.h:1 msgid "" "Comma separated list of DNS-SD domains that should be visible in the " "\"network:///\" location." msgstr "" "Kommaseparert liste med DNS-SD-domener som skal være synlige i lokasjonen " "«network:///»." #: ../schemas/system_dns_sd.schemas.in.h:2 msgid "Extra domains to look for DNS-SD services in" msgstr "Ekstra domener som skal sjekkes for DNS-SD-tjenester" #: ../schemas/system_dns_sd.schemas.in.h:3 msgid "How to display local DNS-SD service" msgstr "Hvordan vises lokale DNS-SD-tjenester" #: ../schemas/system_dns_sd.schemas.in.h:4 msgid "Possible values are \"merged\", \"separate\" and \"disabled\"." msgstr "Mulige verdier er «merged», «separate» og «disabled»." #: ../schemas/system_http_proxy.schemas.in.h:1 msgid "Authenticate proxy server connections" msgstr "Autentiser forbindelser til proxytjener" #: ../schemas/system_http_proxy.schemas.in.h:2 msgid "Automatic proxy configuration URL" msgstr "URL for automatisk konfigurasjon av proxy" #: ../schemas/system_http_proxy.schemas.in.h:3 msgid "Enables the proxy settings when accessing HTTP over the Internet." msgstr "Aktiverer proxy-innstillinger ved aksess via HTTP til Internett." #: ../schemas/system_http_proxy.schemas.in.h:4 msgid "FTP proxy host name" msgstr "Vertsnavn for FTP-proxy" #: ../schemas/system_http_proxy.schemas.in.h:5 msgid "FTP proxy port" msgstr "Port for FTP-proxy" #: ../schemas/system_http_proxy.schemas.in.h:6 msgid "HTTP proxy host name" msgstr "Vertsnavn for HTTP-proxy" #: ../schemas/system_http_proxy.schemas.in.h:7 msgid "HTTP proxy password" msgstr "Passord for HTTP-proxy" #: ../schemas/system_http_proxy.schemas.in.h:8 msgid "HTTP proxy port" msgstr "Port for HTTP-proxy" #: ../schemas/system_http_proxy.schemas.in.h:9 msgid "HTTP proxy username" msgstr "Brukernavn for HTTP-proxy" #: ../schemas/system_http_proxy.schemas.in.h:10 msgid "" "If true, then connections to the proxy server require authentication. The " "username/password combo is defined by \"/system/http_proxy/" "authentication_user\" and \"/system/http_proxy/authentication_password\"." msgstr "" "Hvis sann vil tilkoblinger til proxytjener kreve autentisering. Brukernavn/" "passord-kombinasjonen er definert i «/system/http_proxy/authentication_user» " "og «/system/http_proxy/authentication_password»." #: ../schemas/system_http_proxy.schemas.in.h:11 msgid "Non-proxy hosts" msgstr "Verter som ikke skal bruke proxy" #: ../schemas/system_http_proxy.schemas.in.h:12 msgid "Password to pass as authentication when doing HTTP proxying." msgstr "Passord som skal oppgis ved autentisering for bruk av HTTP-proxy." #: ../schemas/system_http_proxy.schemas.in.h:13 msgid "Proxy configuration mode" msgstr "Konfigurasjonsmodus for proxy" #: ../schemas/system_http_proxy.schemas.in.h:14 msgid "SOCKS proxy host name" msgstr "Vertsnavn for SOCKS-proxy" #: ../schemas/system_http_proxy.schemas.in.h:15 msgid "SOCKS proxy port" msgstr "Port for SOCKS-proxy" #: ../schemas/system_http_proxy.schemas.in.h:16 msgid "Secure HTTP proxy host name" msgstr "Vertsnavn for HTTPS-proxy" #: ../schemas/system_http_proxy.schemas.in.h:17 msgid "Secure HTTP proxy port" msgstr "Port for HTTPS-proxy" #: ../schemas/system_http_proxy.schemas.in.h:18 msgid "" "Select the proxy configuration mode. Supported values are \"none\", \"manual" "\", \"auto\"." msgstr "" "Velg konfigurasjonsmodus for proxy. Verdier som er støttet er «none», " "«manual», «auto»." #: ../schemas/system_http_proxy.schemas.in.h:19 msgid "The machine name to proxy FTP through." msgstr "Maskinnavn for FTP-proxy." #: ../schemas/system_http_proxy.schemas.in.h:20 msgid "The machine name to proxy HTTP through." msgstr "Maskinnavn for HTTP-proxy." #: ../schemas/system_http_proxy.schemas.in.h:21 msgid "The machine name to proxy secure HTTP through." msgstr "Maskinnavn for HTTPS-proxy." #: ../schemas/system_http_proxy.schemas.in.h:22 msgid "The machine name to proxy socks through." msgstr "Maskinnavn for SOCKS-proxy." #: ../schemas/system_http_proxy.schemas.in.h:23 msgid "" "The port on the machine defined by \"/system/http_proxy/host\" that you " "proxy through." msgstr "" "Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/http_proxy/" "host»." #: ../schemas/system_http_proxy.schemas.in.h:24 msgid "" "The port on the machine defined by \"/system/proxy/ftp_host\" that you proxy " "through." msgstr "" "Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/proxy/" "ftp_host»." #: ../schemas/system_http_proxy.schemas.in.h:25 msgid "" "The port on the machine defined by \"/system/proxy/secure_host\" that you " "proxy through." msgstr "" "Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/proxy/" "secure_host»." #: ../schemas/system_http_proxy.schemas.in.h:26 msgid "" "The port on the machine defined by \"/system/proxy/socks_host\" that you " "proxy through." msgstr "" "Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/proxy/" "socks_host»." #: ../schemas/system_http_proxy.schemas.in.h:27 msgid "" "This key contains a list of hosts which are connected to directly, rather " "than via the proxy (if it is active). The values can be hostnames, domains " "(using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and " "IPv6) and network addresses with a netmask (something like 192.168.0.0/24)." msgstr "" "Denne nøkkelen inneholder en liste med verter som har direkte forbindelse i " "stedet for Ã¥ gÃ¥ via proxy (hvis denne er aktiv). Verdiene kan være " "vertsnavn, domener (med jokertegn som *.domene.no), IP-adresse for verten " "(bÃ¥de IPv4 og IPv6) og nettverksadresser med en nettmaske (som " "192.168.0.0/24)." #: ../schemas/system_http_proxy.schemas.in.h:28 msgid "URL that provides proxy configuration values." msgstr "URL som oppgir verdier for konfigurasjon av proxy." #: ../schemas/system_http_proxy.schemas.in.h:29 msgid "Use HTTP proxy" msgstr "Bruk HTTP-proxy" #: ../schemas/system_http_proxy.schemas.in.h:30 msgid "User name to pass as authentication when doing HTTP proxying." msgstr "Brukernavn som skal oppgis som autentisering ved bruk av HTTP-proxy." #: ../schemas/system_smb.schemas.in.h:1 msgid "SMB workgroup" msgstr "SMB-arbeidsgruppe" #: ../schemas/system_smb.schemas.in.h:2 msgid "" "The Windows networking workgroup or domain that the user is part of. In " "order for a new workgroup to fully take effect the user may need to log out " "and log back in." msgstr "" "Arbeidsgruppe eller domene brukeren er del av i Windows-nettverket. Brukeren " "mÃ¥ logge ut for at endringer skal tre i kraft." gnome-vfs-2.24.4/depcomp0000755000175000001440000004426711450333333012011 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: gnome-vfs-2.24.4/intltool-merge.in0000644000175000001440000000000011450333323013675 00000000000000gnome-vfs-2.24.4/intltool-extract.in0000644000175000001440000000000011450333323014250 00000000000000gnome-vfs-2.24.4/config.h.in0000644000175000001440000004112411450333331012442 00000000000000/* config.h.in. Generated from configure.in by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* Define if you have the Andrew File System */ #undef AFS /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Indicates http debugging status */ #undef DEBUG_HTTP_ENABLE /* Define to enable IPv6 support */ #undef ENABLE_IPV6 /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Whether to enable profiler support */ #undef ENABLE_PROFILER /* Define to use AIX3 statfs to get filesystem type */ #undef FSTYPE_AIX_STATFS /* Define to use Ultrix getmnt to get filesystem typ */ #undef FSTYPE_GETMNT /* Define to use 4.3BSD getmntent to get filesystem typ */ #undef FSTYPE_MNTENT /* Define to use 4.4BSD and OSF1 statfs to get filesystem typ */ #undef FSTYPE_STATFS /* Define to use SVR4 statvfs to get filesystem type */ #undef FSTYPE_STATVFS /* Define to use SVR3.2 statfs to get filesystem type */ #undef FSTYPE_USG_STATFS /* Name of the gettext package */ #undef GETTEXT_PACKAGE /* FIXME */ #undef GNUTLS_COMPAT /* Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise */ #undef GSS_C_NT_HOSTBASED_SERVICE /* Path to program for ejecting filesystems known to HAL (not used if gnome-mount is installed) */ #undef HAL_EJECT /* Path to program for mounting filesystems known to HAL (not used if gnome-mount is installed) */ #undef HAL_MOUNT /* Path to program for unmounting filesystems known to HAL (not used if gnome-mount is installed) */ #undef HAL_UMOUNT /* Define to 1 if you have the `acl_extended_file' function. */ #undef HAVE_ACL_EXTENDED_FILE /* Define if the system defines the AI_ADDRCONFIG flag for getaddrinfo */ #undef HAVE_AI_ADDRCONFIG /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H /* Define to 1 if you have the `atoll' function. */ #undef HAVE_ATOLL /* Set if we can use avahi */ #undef HAVE_AVAHI /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the header file. */ #undef HAVE_BZLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_CDDA_INTERFACE_H /* Define to 1 if you have the header file. */ #undef HAVE_CDDA_PARANOIA_H /* Define to 1 if cdparanoia contains FreeBSD-specific libcam support */ #undef HAVE_CDDA_WITH_LIBCAM /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the `dirname' function. */ #undef HAVE_DIRNAME /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `endmntent' function. */ #undef HAVE_ENDMNTENT /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define if we have FAM */ #undef HAVE_FAM /* Define to 1 if you have the header file. */ #undef HAVE_FAM_H /* Define to 1 if you have the `fchmod' function. */ #undef HAVE_FCHMOD /* Define to 1 if you have the header file. */ #undef HAVE_FNMATCH_H /* Define to 1 if you have the header file. */ #undef HAVE_FSTAB_H /* Define to 1 getaddrinfo is present on this system */ #undef HAVE_GETADDRINFO /* Define to 1 if you have the `getdelim' function. */ #undef HAVE_GETDELIM /* Define to 1 if you have the `getdtablesize' function. */ #undef HAVE_GETDTABLESIZE /* Define to 1 if you have the `getgrgid_r' function. */ #undef HAVE_GETGRGID_R /* Define to 1 if you have the `getgrnam_r' function. */ #undef HAVE_GETGRNAM_R /* Define if you have a glibc-style gethostbyname_r() */ #undef HAVE_GETHOSTBYNAME_R_GLIBC /* Define if you have an HP-UX-style gethostbyname_r() */ #undef HAVE_GETHOSTBYNAME_R_HPUX /* Define if you have a Solaris-style gethostbyname_r() */ #undef HAVE_GETHOSTBYNAME_R_SOLARIS /* Define to 1 if you have the `getmntinfo' function. */ #undef HAVE_GETMNTINFO /* Define to 1 if you have the `getpt' function. */ #undef HAVE_GETPT /* Define to 1 if you have the `getpwnam_r' function. */ #undef HAVE_GETPWNAM_R /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if GnuTLS is available */ #undef HAVE_GNUTLS /* Define to 1 if you have the `grantpt' function. */ #undef HAVE_GRANTPT /* Define to 1 if you have the header file. */ #undef HAVE_GRP_H /* Define if GSSAPI support is enabled */ #undef HAVE_GSSAPI /* Define to 1 if you have the header file. */ #undef HAVE_GSSAPI_GSSAPI_GENERIC_H /* Define to 1 if you have the header file. */ #undef HAVE_GSSAPI_GSSAPI_H /* Define to 1 if you have the header file. */ #undef HAVE_GSSAPI_H /* Define to 1 if you have the `gss_init_sec_context' function. */ #undef HAVE_GSS_INIT_SEC_CONTEXT /* Define to 1 if you have the `hasmntopt' function. */ #undef HAVE_HASMNTOPT /* Set if we can use howl */ #undef HAVE_HOWL /* Define to 1 if you have the `inet_ntop' function. */ #undef HAVE_INET_NTOP /* Define to 1 if you have the `inet_pton' function. */ #undef HAVE_INET_PTON /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LIBGEN_H /* Define if you have libxml */ #undef HAVE_LIBXML /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Whether login_tty is available */ #undef HAVE_LOGIN_TTY /* Define to 1 if you have the `lseek64' function. */ #undef HAVE_LSEEK64 /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mmap' function. */ #undef HAVE_MMAP /* Define to 1 if you have the header file. */ #undef HAVE_MNTENT_H /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_TCP_H /* Define to 1 if you have the `ngettext' function. */ #undef HAVE_NGETTEXT /* Have non-POSIX function getpwuid_r */ #undef HAVE_NONPOSIX_GETPWUID_R /* Whether off64_t type is available */ #undef HAVE_OFF64_T /* Define to 1 if older bzip2 version is used */ #undef HAVE_OLDER_BZIP2 /* Define to 1 if you have the `open64' function. */ #undef HAVE_OPEN64 /* Define to 1 if OpenSSL is available */ #undef HAVE_OPENSSL /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_SSL_H /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_X509_H /* Define to 1 if you have the `poll' function. */ #undef HAVE_POLL /* Define to 1 if you have the header file. */ #undef HAVE_POLL_H /* Have POSIX ACLs */ #undef HAVE_POSIX_ACL /* Define to 1 if you have the `posix_fadvise' function. */ #undef HAVE_POSIX_FADVISE /* Have POSIX function getpwuid_r */ #undef HAVE_POSIX_GETPWUID_R /* Define to 1 if you have the `posix_openpt' function. */ #undef HAVE_POSIX_OPENPT /* Define to 1 if you have the `ptsname' function. */ #undef HAVE_PTSNAME /* Define to 1 if you have the `ptsname_r' function. */ #undef HAVE_PTSNAME_R /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the `readdir_r' function. */ #undef HAVE_READDIR_R /* Indicates if res_ninit is available */ #undef HAVE_RES_NINIT /* Define to 1 if you have the samba 3.0 libraries */ #undef HAVE_SAMBA /* Defined if flags availible in SMBCCTXT */ #undef HAVE_SAMBA_FLAGS /* Defined if old close is available in SMBCCTXT */ #undef HAVE_SAMBA_OLD_CLOSE /* Define to 1 if libselinux is available */ #undef HAVE_SELINUX /* Define to 1 if you have the header file. */ #undef HAVE_SELINUX_SELINUX_H /* Define to 1 if you have the `setegid' function. */ #undef HAVE_SETEGID /* Define to 1 if you have the `seteuid' function. */ #undef HAVE_SETEUID /* Define to 1 if you have the `setmntent' function. */ #undef HAVE_SETMNTENT /* Define to 1 if you have the `setresgid' function. */ #undef HAVE_SETRESGID /* Define to 1 if you have the `setresuid' function. */ #undef HAVE_SETRESUID /* Define to 1 if you have the `setsockopt' function. */ #undef HAVE_SETSOCKOPT /* Define to 1 if you have the `setvbuf' function. */ #undef HAVE_SETVBUF /* Define to 1 if you have the `signal' function. */ #undef HAVE_SIGNAL /* Define to 1 if you have the header file. */ #undef HAVE_SIGNAL_H /* Whether we have socket */ #undef HAVE_SOCKET /* Define if you have the socketpair function. */ #undef HAVE_SOCKETPAIR /* Have Solaris ACLs */ #undef HAVE_SOLARIS_ACL /* Define to 1 if you have the `statfs' function. */ #undef HAVE_STATFS /* Define to 1 if you have the `statvfs' function. */ #undef HAVE_STATVFS /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `stpcpy' function. */ #undef HAVE_STPCPY /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_STROPTS_H /* Define to 1 if struct linger is available */ #undef HAVE_STRUCT_LINGER /* Define to 1 if `f_fstyp' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FSTYP /* Define to 1 if `f_type' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_TYPE /* Define to 1 if `st_blksize' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BLKSIZE /* Define to 1 if `st_blocks' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_BLOCKS /* Define to 1 if `st_rdev' is a member of `struct stat'. */ #undef HAVE_STRUCT_STAT_ST_RDEV /* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */ #undef HAVE_STRUCT_TM_TM_GMTOFF /* Define to 1 if your `struct stat' has `st_blocks'. Deprecated, use `HAVE_STRUCT_STAT_ST_BLOCKS' instead. */ #undef HAVE_ST_BLOCKS /* Define to 1 if you have the `sysctlbyname' function. */ #undef HAVE_SYSCTLBYNAME /* Define to 1 if you have the header file. */ #undef HAVE_SYS_CDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INOTIFY_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MNTCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MNTTAB_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MOUNT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_POLL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_RESOURCE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATVFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SYSCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SYSMACROS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_UN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VFSTAB_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VMOUNT_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `unlockpt' function. */ #undef HAVE_UNLOCKPT /* Define to 1 if you have the header file. */ #undef HAVE_UTIL_H /* Define to 1 if you have the header file. */ #undef HAVE_UTMP_H /* Define to 1 if you have the header file. */ #undef HAVE_WCTYPE_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Build neon ssl support */ #undef NEON_SSL /* Define to be the neon version string */ #undef NEON_VERSION /* Define to be printf format string for off_t */ #undef NE_FMT_OFF_T /* Define to be printf format string for size_t */ #undef NE_FMT_SIZE_T /* Define to be printf format string for ssize_t */ #undef NE_FMT_SSIZE_T /* Define to be neon library major version */ #undef NE_VERSION_MAJOR /* Define to be neon library minor version */ #undef NE_VERSION_MINOR /* Define to be neon library patch version */ #undef NE_VERSION_PATCH /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* 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 `long long', as computed by sizeof. */ #undef SIZEOF_LONG_LONG /* The size of `off_t', as computed by sizeof. */ #undef SIZEOF_OFF_T /* The size of `size_t', as computed by sizeof. */ #undef SIZEOF_SIZE_T /* The size of `ssize_t', as computed by sizeof. */ #undef SIZEOF_SSIZE_T /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Number of arguments to statfs() */ #undef STATFS_ARGS /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if strerror_r returns char *. */ #undef STRERROR_R_CHAR_P /* defined if we have gnome-vfs-daemon */ #undef USE_DAEMON /* Support WebDAV locking through the library */ #undef USE_DAV_LOCKS /* Define to 1 if getaddrinfo is used for name resolution */ #undef USE_GETADDRINFO /* Define if gethostbyname is used for name resolution */ #undef USE_GETHOSTBYNAME /* Define to 1 if gethostbyname_r is used for name resolution */ #undef USE_GETHOSTBYNAME_R /* defined if using libhal */ #undef USE_HAL /* Version number of package */ #undef VERSION /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Enable GNU Extensions */ #undef _GNU_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to a type if does not define. */ #undef mbstate_t /* off_t */ #undef off_t /* size_t */ #undef size_t gnome-vfs-2.24.4/COPYING0000644000175000001440000004311011334251016011447 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 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 Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gnome-vfs-2.24.4/INSTALL0000644000175000001440000002202411334251016011446 00000000000000Copyright 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. gnome-vfs-2.24.4/schemas/0000755000175000001440000000000011450333532012123 500000000000000gnome-vfs-2.24.4/schemas/system_dns_sd.schemas.in0000644000175000001440000000165311334251016016675 00000000000000 /schemas/system/dns_sd/display_local /system/dns_sd/display_local gnome-vfs string merged How to display local DNS-SD service Possible values are "merged", "separate" and "disabled". /schemas/system/dns_sd/extra_domains /system/dns_sd/extra_domains gnome-vfs string Extra domains to look for DNS-SD services in Comma separated list of DNS-SD domains that should be visible in the "network:///" location. gnome-vfs-2.24.4/schemas/Makefile.am0000644000175000001440000000236311334251016014100 00000000000000schemadir = $(GCONF_SCHEMA_FILE_DIR) schema_in_files = \ system_http_proxy.schemas.in \ system_smb.schemas.in \ system_dns_sd.schemas.in \ desktop_default_applications.schemas.in \ desktop_gnome_url_handlers.schemas.in schema_DATA = $(schema_in_files:.schemas.in=.schemas) @INTLTOOL_SCHEMAS_RULE@ # don't do this if we are building in eg. rpm if GCONF_SCHEMAS_INSTALL if OS_WIN32 # Work around MSYS feature. If we pass GCONF_CONFIG_SOURCE as an # environment variable, MSYS is "helpful" and thinks the colons in the # variable means that is is a search path, and changes the colons into # semicolons and slashes into backslashes. Usually this feature is # useful, but not this time. install-data-local: if test -z "$(DESTDIR)" ; then \ for p in $(schema_DATA) ; do \ (echo set GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE); \ echo $(GCONFTOOL) --makefile-install-rule $$p) >_temp.bat; \ cmd /c _temp.bat; \ done \ fi else install-data-local: if test -z "$(DESTDIR)" ; then \ for p in $(schema_DATA) ; do \ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $$p; \ done \ fi endif else install-data-local: endif EXTRA_DIST = $(schema_in_files) $(schema_DATA) DISTCLEANFILES = $(schema_DATA) gnome-vfs-2.24.4/schemas/Makefile.in0000644000175000001440000004136011450333332014112 00000000000000# 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@ subdir = schemas 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 = 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)$(schemadir)" DATA = $(schema_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ schemadir = $(GCONF_SCHEMA_FILE_DIR) schema_in_files = \ system_http_proxy.schemas.in \ system_smb.schemas.in \ system_dns_sd.schemas.in \ desktop_default_applications.schemas.in \ desktop_gnome_url_handlers.schemas.in schema_DATA = $(schema_in_files:.schemas.in=.schemas) EXTRA_DIST = $(schema_in_files) $(schema_DATA) DISTCLEANFILES = $(schema_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 schemas/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu schemas/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-schemaDATA: $(schema_DATA) @$(NORMAL_INSTALL) test -z "$(schemadir)" || $(MKDIR_P) "$(DESTDIR)$(schemadir)" @list='$(schema_DATA)'; test -n "$(schemadir)" || 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)$(schemadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(schemadir)" || exit $$?; \ done uninstall-schemaDATA: @$(NORMAL_UNINSTALL) @list='$(schema_DATA)'; test -n "$(schemadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(schemadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(schemadir)" && 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)$(schemadir)"; 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) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-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-data-local install-schemaDATA 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-schemaDATA .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-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-schemaDATA 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-schemaDATA @INTLTOOL_SCHEMAS_RULE@ # don't do this if we are building in eg. rpm # Work around MSYS feature. If we pass GCONF_CONFIG_SOURCE as an # environment variable, MSYS is "helpful" and thinks the colons in the # variable means that is is a search path, and changes the colons into # semicolons and slashes into backslashes. Usually this feature is # useful, but not this time. @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@install-data-local: @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@ if test -z "$(DESTDIR)" ; then \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@ for p in $(schema_DATA) ; do \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@ (echo set GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE); \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@ echo $(GCONFTOOL) --makefile-install-rule $$p) >_temp.bat; \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@ cmd /c _temp.bat; \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@ done \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_TRUE@ fi @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_FALSE@install-data-local: @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_FALSE@ if test -z "$(DESTDIR)" ; then \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_FALSE@ for p in $(schema_DATA) ; do \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_FALSE@ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $$p; \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_FALSE@ done \ @GCONF_SCHEMAS_INSTALL_TRUE@@OS_WIN32_FALSE@ fi @GCONF_SCHEMAS_INSTALL_FALSE@install-data-local: # 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: gnome-vfs-2.24.4/schemas/desktop_gnome_url_handlers.schemas0000644000175000001440000225777611450333414021041 00000000000000 /schemas/desktop/gnome/url-handlers/trash/enabled /desktop/gnome/url-handlers/trash/enabled gnome bool true Whether the specified command should handle "trash" URLs True if the command specified in the "command" key should handle "trash" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "trash" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "trash". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «trash» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «trash». Ці пазначаны загад апрацоўвае URL "trash" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "trash". Дали избраната програма да обработва адреÑи от вида „trash“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „trash“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "trash" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "trash" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "trash" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "trash" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «trash» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «trash». Si l'orde especificada hauria de gestionar els URL «trash» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «trash». Jestli má urÄený příkaz obsluhovat URL „trash“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „trash“. A ddylai'r gorchymyn penodedig ymdrin â LAU "trash" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "trash". Om den specificerede kommando skal hÃ¥ndtere "trash"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "trash"-adresser. Soll der angegebene Befehl »trash«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »trash«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "trash" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "trash" ཡུ་ཨར་ཨེལ་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "trash" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "trash" URLs. ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "trash" URL𑟠ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠"command" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "trash" URLð‘Ÿ. Whether the specified command should handle "trash" URLs True if the command specified in the "command" key should handle "trash" URLs. Whether the specified command should handle "trash" URLs True if the command specified in the "command" key should handle "trash" URLs. Indica si el comando especificado debe manipular los URL "trash" Activar si el programa especificado en la clave "commando" (comando) debería manipular los URL "trash". Kas määratud käsk peaks käsitlema "trash" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "trash" URLe. Hemen zehaztutako komandoak "trash" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "trash" URLak kudeatuko baditu. Käsitteleekö annettu komento â€trashâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€trashâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « trash » Indique si le programme indiqué à la clé « command » gère les URLs « trash ». Indica se a orde especificada debe manipular os URL "trash" É true se a orde especificada na chave "command" debe manipular os URL "trash". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "trash" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "trash" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "trash" URLs True if the command specified in the "command" key should handle "trash" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "trash" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "trash" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "trash" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "trash" URL-ovima. A megadott parancs kezelje-e a „trash†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „trash†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "trash" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "trash". Indica se il comando specificato deve gestire gli URL "trash" Impostare a VERO affinché il programma specificato nella chiave "trash/command" gestisca gli URL "trash". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "trash" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "trash" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"trash" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "trash" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "trash" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "trash" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "trash" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "trash" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „trash“ adresus Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, apdorotų „trash“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "miskastes" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "miskastes" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"trash" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"trash" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "trash" ny baiko voalaza Marina raha toa ka tokony hifehy URL "trash" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "trash" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „trash“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "trash" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "trash" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. СонгоÑон тушаал "trash" URLs-г авч үзÑÑ… ÑÑÑÑ… Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр "trash" URLs-г авч үзÑхийгзаана. सूचित आदेशने "trash" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "trash" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «trash»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «trash»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "trash" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "trash" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "trash"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "trash"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «trash»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «trash»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "trash" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "trash". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ବରà­à¬œà¬¿à¬¤" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି. ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ବରà­à¬œà¬¿à¬¤" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "trash (ਰੱਦੀ)" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "trash" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "trash" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "trash". Se o comando especificado deverá manipular URLs "trash" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "trash". Se o comando especificado deve manipular URLs "trash" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "trash". Specifică dacă programul ales va fi asociat adreselor „trash†La activare, comanda specificată în cheia „command†va fi asociată adreselor „trashâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "trash" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "trash". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "trash" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "trash". Ali naj naveden ukaz upravlja z naslovi URL "trash" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "trash". Nëse komanda e caktuar duhet të trajtojë URLtë "trash" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "trash". Да ли наведена наредба треба да Ñе кориÑти за „trash“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „trash“ адреÑе. Da li navedena naredba treba da se koristi za „trash“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „trash“ adrese. Huruvida det angivna kommandot ska hantera "trash"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "trash"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "trash" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "trash" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "చెతà±à°¤à°•à±à°‚à°¡à°¿" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "చెతà±à°¤à°•à±à°‚à°¡à°¿" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด trash ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด trash Belirtilen komutun "trash" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "trash" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "trash" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "trash". Lệnh được xác định có nên xá»­ lý URL « trash » (rác) hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « trash » (rác). Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"trash" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"trash" URLs. 指定的命令是å¦åº”处ç†â€œtrashâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œtrashâ€URLs。 指定的指令應å¦è™•ç†â€œtrashâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œtrashã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œtrashâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œtrashã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "trash" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "trash" URLs. /schemas/desktop/gnome/url-handlers/trash/command /desktop/gnome/url-handlers/trash/command gnome string nautilus "%s" The handler for "trash" URLs The command used to handle "trash" URLs, if enabled. Die hanteerder vir "trash"-URL'e Die opdrag vir hantering van "trash"-URL'e, indien geaktiveer. معالج عناوين "trash" الأمر المستخدم لمعالجة عناوين "trash"ØŒ ÙÙŠ حال تمكينها. "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «trash» El comandu usáu pa remanar les URLs «trash», si tan activaes. Ðпрацоўшчык URL "trash" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "trash", калі уключанае. Програма за обработка на адреÑи от вида „trash“ Програмата за обработка на адреÑи от вида „trash“, ако е включена. "trash" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "trash" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "trash" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "trash" URL-ovima Naredba koja se koristi za "trash" URL-ove, ako je omogućeno. El gestor per a els URL «trash» L'ordre utilitzada per a gestionar URL «trash», si estan habilitades. El gestor per a els URL «trash» L'orde utilitzada per a gestionar URL «trash», si estan habilitades. Obsluha pro URL „trash“ Příkaz používaný pro obsluhu URL „trash“, je-li povolen. Y trinydd ar gyfer LAU "trash" Y gorchymyn a ddefnyddir i ymdrin â LAU "trash", os yn alluog. HÃ¥ndtering af "trash"-adresser Kommandoen der bruges til at hÃ¥ndtere "trash"-adresser, hvis aktiveret. Der Handler für »trash«-URLs Der zum Handhaben von »trash«-URLs verwendete Befehl, falls aktiviert. "trash" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "trash" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "trash" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "trash" URLs, αν ενεÏγοποιηθεί. 𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠"trash" URL𑟠𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "trash" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›. The handler for "trash" URLs The command used to handle "trash" URLs, if enabled. The handler for "trash" URLs The command used to handle "trash" URLs, if enabled. El manipulador para los URL "trash" El comando usado para manipular los URL "trash", si están activados. "trash" URLi käsitleja Käsk "trash" URLide käsitlemiseks, kui lubatud. "trash" URLen kudeatzailea "trash" komandoa kudeatzeko komandoa, gaituta egonez gero. â€trashâ€-URL:ien käsittelykomento â€trashâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « trash » Si vrai, le programme qui gère les URLs « trash ». O manipulador dos URL "trash" A orde usada para manipular os URL "trash", se está activada. "trash" URL માટે નિયંતà«àª°àª• "trash" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "trash" URLs The command used to handle "trash" URLs, if enabled. "trash" URLs के लिये नियंतà¥à¤°à¤• "trash" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "trash" URL-ove Naredba koja se koristi za rukovanje "trash" URL-ovima, ako je omogućena. „trash†URL címek kezelÅ‘je A „trash†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "trash" Perintah untuk menangani URL "trash", jika diaktifkan. Gestore di URL "trash" Il comando usato per gestire gli URL "trash", se abilitati. URL "trash" ã® å‡¦ç† "trash" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "trash" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"trash" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "trash" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "trash" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "trash" URLì— ëŒ€í•œ 핸들러 "trash" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „trash“ užklausas Komanda naudojama apdoroti „trash“ URL, jei įjungta. "miskastes" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "miskastes" URL,ja ieslÄ“gta. "trash" URLs क' लेल नियंतà¥à¤°à¤• "trash" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "trash" Ny baiko omena hifehezana URL "trash", raha alefa. Справувачот за "trash" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „trash“ адреÑи. "trash" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "trash" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "trash" URLs тодорхойлогч Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол "trash" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ. "trash" URL करीता हॅनà¥à¤¡à¤²à¤° "trash" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «papirkurv»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «trash»-URLer, hvis aktivert. "trash" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "trash" URLs हानà¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "trash" URL's afhandelt De opdracht voor het afhandelen van "trash"-URL's, indien ingeschakeld Handsamar av «trash»-adresser Kommandoen som tek hand om «trash»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "trash" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "trash", ge eba di kgontÅ¡hitÅ¡we. "ବରà­à¬œà¬¿à¬¤" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "ବରà­à¬œà¬¿à¬¤" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "trash" (ਰੱਦੀ) URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "trash" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "trash" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "trash". O manipulador de URLs "trash" O comando utilizado para manipular URLs "trash", se activo. O manipulador para URLs "trash" O comando usado para manipular URLs "trash", se habilitado. Programul asociat adreselor „trash†Comanda asociată adreselor „trash†la activare. Обработчик URL типа "trash" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "trash", еÑли ключ уÑтановлен Obslužný program pre URL "trash" Príkaz použitý na obsluhovanie URL "trash", ak je povolené. RoÄnik naslovov URL "trash" Ukaz za upravljanje z naslovi "trash", ko je možnost omogoÄena. Trajtuesi i URLve "trash" Komanda e përdorur për të trajtuar URLtë "trash", nëse aktive. Руковаоц „trash“ адреÑама Ðаредба коришћена за баратање „trash“ адреÑама, ако је укључено. Rukovaoc „trash“ adresama Naredba korišćena za baratanje „trash“ adresama, ako je ukljuÄeno. Hanteraren för "trash"-URL:er Kommandot som används för att hantera "trash"-URL:er, om aktiverat. "trash" கையாளà¯à®µà®¤à®±à¯à®•ான URL "trash" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "చెతà±à°¤à°•à±à°‚à°¡à°¿" ఉపయోగించà±à°Ÿ కొరకౠURLs "చెతà±à°¤à°•à±à°‚à°¡à°¿" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించౠURLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด trash คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด trash (ถ้าเปิดใช้) "trash" URL'leri için iÅŸleyici EÄŸer etkinse, "trash" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "trash" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "trash". Bá»™ xá»­ lý cho URL « trash » (rác) Lệnh được dùng để xá»­ lý các URL kiểu « trash » (rác), nếu bật. Isikhombisi se-"trash" URLs Umyalelo osetyenziselwa ukukhombisa u-"trash" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œtrashâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œtrashâ€URLs 的命令。 處ç†â€œtrashâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œtrashâ€URL 的指令。 處ç†â€œtrashâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œtrashâ€URL 的指令。 Umphathi we "trash" URLs Umlayezo osetshenziswa ukuphatha "trash" URLs, uma ingunyaziwe. /schemas/desktop/gnome/url-handlers/trash/needs_terminal /desktop/gnome/url-handlers/trash/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/ghelp/enabled /desktop/gnome/url-handlers/ghelp/enabled gnome bool true Whether the specified command should handle "ghelp" URLs True if the command specified in the "command" key should handle "ghelp" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "ghelp" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "ghelp". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «ghelp» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «ghelp». Ці пазначаны загад апрацоўвае URL "ghelp" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "ghelp". Дали избраната програма да обработва адреÑи от вида „ghelp“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „ghelp“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "ghelp" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "ghelp" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "ghelp" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "ghelp" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «ghelp» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «ghelp». Si l'orde especificada hauria de gestionar els URL «ghelp» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «ghelp». Jestli má urÄený příkaz obsluhovat URL „ghelp“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „ghelp“. A ddylai'r gorchymyn penodedig ymdrin â LAU "ghelp" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "ghelp". Om den specificerede kommando skal hÃ¥ndtere "ghelp"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "ghelp"-adresser. Soll der angegebene Befehl »ghelp«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »ghelp«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "ghelp" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "ghelp" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "ghelp" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "ghelp" URLs. Whether the specified command should handle "ghelp" URLs True if the command specified in the "command" key should handle "ghelp" URLs. Whether the specified command should handle "ghelp" URLs True if the command specified in the "command" key should handle "ghelp" URLs. Indica si el comando especificado debe manipular los URL "ghelp" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "ghelp". Kas määratud käsk peaks käsitlema "ghelp" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "ghelp" URLe. Hemen zehaztutako komandoak "ghelp" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "ghelp" URLak kudeatuko baditu. Käsitteleekö annettu komento â€ghelpâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€ghelpâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « ghelp » Indique si le programme indiqué à la clé « command » gère les URLs « ghelp ». Indica se a orde especificada debe manipular os URL "ghelp" É true se a orde especificada na chave "command" debe manipular os URL "ghelp". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "ghelp" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "ghelp" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "ghelp" URLs True if the command specified in the "command" key should handle "ghelp" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "ghelp" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "ghelp" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "ghelp" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "ghelp" URL-ovima. A megadott parancs kezelje-e a „ghelp†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „ghelp†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "ghelp" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "ghelp". Indica se il comando specificato deve gestire gli URL "ghelp" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "ghelp". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "ghelp" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "ghelp" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"ghelp" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "ghelp" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "ghelp" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "ghelp" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "ghelp" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "ghelp" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „ghelp“ adresus Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, apdorotų „ghelp“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "ghelp" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "ghelp" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"ghelp" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"ghelp" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "ghelp" ny baiko voalaza Marina raha toa ka tokony hifehy URL "ghelp" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "ghelp" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „ghelp“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "ghelp" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "ghelp" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. СонгоÑон тушаал "ghelp" URLs-г авч үзÑÑ… ÑÑÑÑ… Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр "ghelp" URLs-г авч үзÑхийгзаана. सूचित आदेशने "ghelp" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "ghelp" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «ghelp»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «ghelp»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "ghelp" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "ghelp" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "ghelp"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "ghelp"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «ghelp»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «ghelp»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "ghelp" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "ghelp". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ଜିହେଲà­à¬ª" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି। ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ଜିହେଲà­à¬ª" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "ghelp" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "ghelp" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "ghelp" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "ghelp". Se o comando especificado deverá manipular URLs "ghelp" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "ghelp". Se o comando especificado deve manipular URLs "ghelp" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "ghelp". Specifică dacă programul ales va fi asociat adreselor „ghelp†La activare, comanda specificată în cheia „command†va fi asociată adreselor „ghelpâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "ghelp" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "ghelp". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "ghelp" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "ghelp". Ali naj naveden ukaz upravlja z naslovi URL "ghelp" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "ghelp". Nëse komanda e caktuar duhet të trajtojë URLtë "ghelp" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "ghelp". Да ли наведена наредба треба да Ñе кориÑти за „ghelp“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „ghelp“ адреÑе. Da li navedena naredba treba da se koristi za „ghelp“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „ghelp“ adrese. Huruvida det angivna kommandot ska hantera "ghelp"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "ghelp"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "ghelp" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "ghelp" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "gసహాయమà±" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "gసహాయమà±" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด ghelp ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด ghelp Belirtilen komutun "ghelp" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "ghelp" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "ghelp" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "ghelp". Lệnh được xác định có nên xá»­ lý URL « ghelp » (trợ giúp g) hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « ghelp » (trợ giúp g). Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"ghelp" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"ghelp" URLs. 指定的命令是å¦åº”处ç†â€œghelpâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œghelpâ€URLs。 指定的指令應å¦è™•ç†â€œghelpâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œghelpã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œghelpâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œghelpã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "ghelp" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "ghelp" URLs. /schemas/desktop/gnome/url-handlers/ghelp/command /desktop/gnome/url-handlers/ghelp/command gnome string gnome-help "%s" The handler for "ghelp" URLs The command used to handle "ghelp" URLs, if enabled. Die hanteerder vir "ghelp"-URL'e Die opdrag vir hantering van "ghelp"-URL'e, indien geaktiveer. معالج عناوين "ghelp" الأمر المستخدم لمعالجة عناوين "ghelp"ØŒ ÙÙŠ حال تمكينها. "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «ghelp» El comandu usáu pa remanar los URLs «ghelp», si tan activaos. Ðпрацоўшчык URL "ghelp" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "ghelp" (дапамога), калі уключанае. Програма за обработка на адреÑи от вида „ghelp“ Програмата за обработка на адреÑи от вида „ghelp“, ако е включена. "ghelp" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "ghelp" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "ghelp" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "ghelp" URL-ovima Naredba koja se koristi za "ghelp" URL-ove, ako je omogućeno. El gestor per a els URL «ghelp» L'ordre utilitzada per a gestionar URL «ghelp», si estan habilitades. El gestor per a els URL «ghelp» L'orde utilitzada per a gestionar URL «ghelp», si estan habilitades. Obsluha pro URL „ghelp“ Příkaz používaný pro obsluhu URL „ghelp“, je-li povolen. Y trinydd ar gyfer LAU "ghelp" Y gorchymyn a ddefnyddir i ymdrin â LAU "ghelp", os yn alluog. HÃ¥ndtering af "ghelp"-adresser Kommandoen der bruges til at hÃ¥ndtere "ghelp"-adresser, hvis aktiveret. Der Handler für »ghelp«-URLs Der zum Handhaben von »ghelp«-URLs verwendete Befehl, falls aktiviert. "ghelp" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "ghelp" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "ghelp" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "ghelp" URLs, αν ενεÏγοποιηθεί. The handler for "ghelp" URLs The command used to handle "ghelp" URLs, if enabled. The handler for "ghelp" URLs The command used to handle "ghelp" URLs, if enabled. El manipulador para los URL "ghelp" El comando usado para manipular los URL "ghelp", si están activados. "ghelp" URLi käsitleja Käsk "ghelp" URLide käsitlemiseks, kui lubatud. "ghelp" URLen kudeatzailea "ghelp" URLak kudeatzeko komandoa, gaituta egonez gero. â€ghelpâ€-URL:ien käsittelykomento â€ghelpâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « ghelp » Si vrai, le programme qui gère les URLs « ghelp ». O manipulador dos URL "ghelp" A orde usada para manipular os URL "ghelp", se está activada. "ghelp" URL માટે નિયંતà«àª°àª• "ghelp" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "ghelp" URLs The command used to handle "ghelp" URLs, if enabled. "ghelp" URLs के लिये नियंतà¥à¤°à¤• "ghelp" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "ghelp" URL-ove Naredba koja se koristi za rukovanje "ghelp" URL-ovima, ako je omogućena. „ghelp†URL címek kezelÅ‘je A „ghelp†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "ghelp" Perintah untuk menangani URL "ghelp", jika diaktifkan. Gestore di URL "ghelp" Il comando usato per gestire gli URL "ghelp", se abilitati. URL "ghelp" ã® å‡¦ç† "ghelp" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "ghelp" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"ghelp" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "ghelp" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "ghelp" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "ghelp" URLì— ëŒ€í•œ 핸들러 "ghelp" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „ghelp“ užklausas Komanda naudojama apdoroti „ghelp“ URL, jeigu įjungta. "ghelp" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "ghelp" URL,ja ieslÄ“gta. "ghelp" URLs क' लेल नियंतà¥à¤°à¤• "ghelp" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "ghelp" Ny baiko omena hifehezana URL "ghelp", raha alefa. Справувачот за "ghelp" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „ghelp“ адреÑи. "ghelp" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "ghelp" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "ghelp" URLs тодорхойлогч Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол "ghelp" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ. "ghelp" URL करीता हॅनà¥à¤¡à¤²à¤° "ghelp" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «ghelp»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «ghelp»-URLer, hvis aktivert. "ghelp" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "ghelp" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "ghelp" URL's afhandelt De opdracht voor het afhandelen van "ghelp"-URL's, indien ingeschakeld Handsamar av «ghelp»-adresser Kommandoen som tek hand om «ghelp»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "ghelp" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "ghelp", ge eba di kgontÅ¡hitÅ¡we. "ଜିହେଲà­à¬ª" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "ଜିହେଲà­à¬ª" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿ. "ghelp" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "ghelp" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "ghelp" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "ghelp". O manipulador de URLs "ghelp" O comando utilizado para manipular URLs "ghelp", se activo. O manipulador para URLs "ghelp" O comando usado para manipular URLs "ghelp", se habilitado. Programul asociat adreselor „ghelp†Comanda asociată adreselor „ghelp†la activare. Обработчик URL типа "ghelp" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "ghelp", еÑли ключ уÑтановлен Obslužný program pre URL "ghelp" Príkaz použitý na obsluhovanie URL "ghelp", ak je povolené. RoÄnik naslovov URL "ghelp" Ukaz za upravljanje z naslovi "ghelp", ko je možnost omogoÄena. Trajtuesi i URLve "ghelp" Komanda e përdorur për të trajtuar URLtë "ghelp", nëse aktive. Руковаоц „ghelp“ адреÑама Ðаредба коришћена за баратање „ghelp“ адреÑама, ако је укључено. Rukovaoc „ghelp“ adresama Naredba korišćena za baratanje „ghelp“ adresama, ako je ukljuÄeno. Hanteraren för "ghelp"-URL:er Kommandot som används för att hantera "ghelp"-URL:er, om aktiverat. "ghelp" கையாளà¯à®µà®¤à®±à¯à®•ான URL "ghelp" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "gసహాయమà±" ఉపయోగించà±à°Ÿ కొరకౠURLs "gసహాయమà±" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด ghelp คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด ghelp (ถ้าเปิดใช้) "ghelp" URL'leri için iÅŸleyici EÄŸer etkinse, "ghelp" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "ghelp" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "ghelp". Bá»™ xá»­ lý cho URL « ghelp » (trợ giúp g) Lệnh được dùng để xá»­ lý các URL kiểu « ghelp » (trợ giúp g), nếu bật. Isikhombisi se-"ghelp" URLs Umyalelo osetyenziselwa ukukhombisa u- "ghelp" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œghelpâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œghelpâ€URLs 的命令。 處ç†â€œghelpâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œghelpâ€URL 的指令。 處ç†â€œghelpâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œghelpâ€URL 的指令。 Umphathi we "ghelp" URLs Umlayezo osetshenziswa ukuphatha "ghelp" URLs, uma igunyaziwe. /schemas/desktop/gnome/url-handlers/ghelp/needs_terminal /desktop/gnome/url-handlers/ghelp/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/info/enabled /desktop/gnome/url-handlers/info/enabled gnome bool true Whether the specified command should handle "info" URLs True if the command specified in the "command" key should handle "info" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "info" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "info". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «info» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «info». Ці пазначаны загад апрацоўвае URL "info" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "info". Дали избраната програма да обработва адреÑи от вида „info“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „info“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "info" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "info" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "info" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "info" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «info» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «info». Si l'orde especificada hauria de gestionar els URL «info» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «info». Jestli má urÄený příkaz obsluhovat URL „info“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „info“. A ddylai'r gorchymyn penodedig ymdrin â LAU "info" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "info". Om det specificerde program skal hÃ¥ndtere "info"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "info"-adresser. Soll der angegebene Befehl »info«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »info«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "info" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "info" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "info" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "info" URLs. ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "info" URL𑟠ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠"command" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "info" URLð‘Ÿ. Whether the specified command should handle "info" URLs True if the command specified in the "command" key should handle "info" URLs. Whether the specified command should handle "info" URLs True if the command specified in the "command" key should handle "info" URLs. Indica si el comando especificado debe manipular los URL "info" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "info". Kas määratud käsk peaks käsitlema "info" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "info" URLe. Hemen zehaztutako komandoak "info" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "info" URLak kudeatuko baditu. Käsitteleekö annettu komento â€infoâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€infoâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « info » Indique si le programme indiqué à la clé « command » gère les URLs « info ». Indica se a orde especificada debe manipular os URL "info" É true se a orde especificada na chave "command" debe manipular os URL "info". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "info" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "info" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "info" URLs True if the command specified in the "command" key should handle "info" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "info" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "info" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "info" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "info" URL-ovima. A megadott parancs kezelje-e az „info†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli az „info†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "info" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "info". Indica se il comando specificato deve gestire gli URL "info" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "info". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "info" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "info" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"info" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "info" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "info" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "info" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "info" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "info" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „info“ adresus Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, apdorotų „info“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "info" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "info" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"info" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"info" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "info" ny baiko voalaza Marina raha toa ka tokony hifehy URL "info" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "info" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „info“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "info" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "info" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. СонгоÑон тушаал "info" URLs-г авч үзÑÑ… ÑÑÑÑ… Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр "info" URLs-г авч үзÑхийгзаана. सूचित आदेशने "info" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "info" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «info»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «info»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "info" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "info" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "info"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "info"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «info»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «info»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "info" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "info". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ସୂଚନା" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି. ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ସୂଚନା" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "info" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "info" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "info" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "info". Se o comando especificado deverá manipular URLs "info" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "info". Se o comando especificado deve manipular URLs "info" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "info". Specifică dacă programul ales va fi asociat adreselor „info†La activare, comanda specificată în cheia „command†va fi asociată adreselor „infoâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "info" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "info". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "info" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "info". Ali naj naveden ukaz upravlja z naslovi URL "info" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "info". Nëse komanda e caktuar duhet të trajtojë URLtë "info" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "info". Да ли наведена наредба треба да Ñе кориÑти за „info“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „info“ адреÑе. Da li navedena naredba treba da se koristi za „info“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „info“ adrese. Huruvida det angivna kommandot ska hantera "info"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "info"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "info" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "info" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "సమాచారం" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "సమాచారమà±" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด info ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™ "command" จัดà¸à¸²à¸£ URL ชนิด info Belirtilen komutun "info" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "info" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "info" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "info". Lệnh được xác định có nên xá»­ lý URL « info » (thông tin) hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « info » (thông tin). Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"info" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"info" URLs. 指定的命令是å¦åº”处ç†â€œinfoâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œinfoâ€URLs。 指定的指令應å¦è™•ç†â€œinfoâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œinfoã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œinfoâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œinfoã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "info" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "info" URLs. /schemas/desktop/gnome/url-handlers/info/command /desktop/gnome/url-handlers/info/command gnome string gnome-help "%s" The handler for "info" URLs The command used to handle "info" URLs, if enabled. Die hanteerder vir "info"-URL'e Die opdrag vir hantering van "info"-URL'e, indien geaktiveer. معالج عناوين "info" الأمر المستخدم لمعالجة عناوين "info"ØŒ ÙÙŠ حال تمكينها. "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «info» El comandu usáu pa remanar les URLs «info», si tan activaes. Ðпрацоўшчык URL "info" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "info", калі уключанае. Програма за обработка на адреÑи от вида „info“ Програмата за обработка на адреÑи от вида „info“, ако е включена. "info" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "info" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "info" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "info" URL-ovima Naredba koja se koristi za "info" URL-ove, ako je omogućeno. El gestor per a els URL «info» L'ordre utilitzada per a gestionar URL «info», si estan habilitades. El gestor per a els URL «info» L'orde utilitzada per a gestionar URL «info», si estan habilitades. Obsluha pro URL „info“ Příkaz používaný pro obsluhu URL „info“, je-li povolen. Y trinydd ar gyfer LAU "info" Y gorchymyn a ddefnyddir i ymdrin â LAU "info", os yn alluog. HÃ¥ndtering af "info"-adresser Kommandoen der bruges til at hÃ¥ndtere "info"-adresser, hvis aktiveret. Der Handler für »info«-URLs Der zum Handhaben von »info«-URLs verwendete Befehl, falls aktiviert. "info" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "info" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "info" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "info" URLs, αν ενεÏγοποιηθεί. 𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠"info" URL𑟠𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "info" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›. The handler for "info" URLs The command used to handle "info" URLs, if enabled. The handler for "info" URLs The command used to handle "info" URLs, if enabled. El manipulador para los URL "info" El comando usado para manipular los URL "info", si están activados. "info" URLi käsitleja Käsk "info" URLide käsitlemiseks, kui lubatud. "info" URLen kudeatzailea "info" URLak kudeatzeko komandoa, gaituta egonez gero. â€infoâ€-URL:ien käsittelykomento â€infoâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « info » Si vrai, le programme qui gère les URLs « info ». O manipulador dos URL "info" A orde usada para manipular os URL "info", se está activada. "info" URL માટે નિયંતà«àª°àª• "info" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "info" URLs The command used to handle "info" URLs, if enabled. "info" URLs के लिये नियंतà¥à¤°à¤• "info" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "info" URL-ove Naredba koja se koristi za rukovanje "info" URL-ovima, ako je omogućena. „info†URL címek kezelÅ‘je Az „info†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "info" Perintah untuk menangani URL "info", jika diaktifkan. Gestore di URL "info" Il comando usato per gestire gli URL "info", se abilitati. URL "info" ã® å‡¦ç† "info" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "info" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"info" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "info" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "info" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "info" URLì— ëŒ€í•œ 핸들러 "info" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „info“ užklausas Komanda naudojama apdoroti „info“ URL, jei įjungta. "info" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "info" URL,ja ieslÄ“gta. "info" URLs क' लेल नियंतà¥à¤°à¤• "info" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "info" Ny baiko omena hifehezana URL "info", raha alefa. Справувачот за "info" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „info“ адреÑи. "info" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "info" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "info" URLs тодорхойлогч Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол "info" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ. "info" URL करीता हॅनà¥à¤¡à¤²à¤° "info" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «info»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «info»-URLer, hvis aktivert. "info" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "info" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "info" URL's afhandelt De opdracht voor het afhandelen van "info"-URL's, indien ingeschakeld Handsamar av «info»-adresser Kommandoen som tek hand om «info»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "info" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "info" , ge eba di kgontÅ¡hitÅ¡we. "ସୂଚନା" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "ସୂଚନା" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "info" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "info" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "info" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "info". O manipulador de URLs "info" O comando utilizado para manipular URLs "info", se activo. O manipulador para URLs "info" O comando usado para manipular URLs "info", se habilitado. Programul asociat adreselor „info†Comanda asociată adreselor „info†la activare. Обработчик URL типа "info" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "info", еÑли ключ уÑтановлен Obslužný program pre URL "info" Príkaz použitý na obsluhovanie URL "info", ak je povolené. RoÄnik naslovov URL "info" Ukaz za upravljanje z naslovi "info", ko je možnost omogoÄena. Trajtuesi i URLve "info" Komanda e përdorur për të trajtuar URLtë "info", nëse aktive. Руковаоц „info“ адреÑама Ðаредба коришћена за баратање „info“ адреÑама, ако је укључено. Rukovaoc „info“ adresama Naredba korišćena za baratanje „info“ adresama, ako je ukljuÄeno. Hanteraren för "info"-URL:er Kommandot som används för att hantera "info"-URL:er, om aktiverat. "info" கையாளà¯à®µà®¤à®±à¯à®•ான URL "info" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "సమాచారమà±" ఉపయోగించà±à°Ÿ కొరకౠURLs "సమాచారం" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด info คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด info (ถ้าเปิดใช้) "info" URL'leri için iÅŸleyici EÄŸer etkinse, "info" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "info" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "info". Bá»™ xá»­ lý cho URL « info » (thông tin) Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « info » (thông tin), nếu bật. Isikhombisi se-"info" URLs Umyalelo osetyenziselwa ukukhombisa u- "info" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œinfoâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œinfoâ€URLs 的命令。 處ç†â€œinfoâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œinfoâ€URL 的指令。 處ç†â€œinfoâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œinfoâ€URL 的指令。 Umphathi we "info" URLs Umlayezo osetshenziswa ukuphatha "info" URLs, uma ingunyaziwe. /schemas/desktop/gnome/url-handlers/info/needs_terminal /desktop/gnome/url-handlers/info/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/man/enabled /desktop/gnome/url-handlers/man/enabled gnome bool true Whether the specified command should handle "man" URLs True if the command specified in the "command" key should handle "man" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "man" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "man". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «man» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «man». Ці пазначаны загад апрацоўвае URL "man" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "man". Дали избраната програма да обработва адреÑи от вида „man“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „man“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "man" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "man" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "man" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "man" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «man» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «man». Si l'orde especificada hauria de gestionar els URL «man» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «man». Jestli má urÄený příkaz obsluhovat URL „man“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „man“. A ddylai'r gorchymyn penodedig ymdrin â LAU "man" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "man". Om den specificerede kommando skal hÃ¥ndtere "man"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "man"-adresser. Soll der angegebene Befehl »man«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »man«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "man" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "man" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "man" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "man" URLs. ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "man" URL𑟠ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠"command" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "man" URLð‘Ÿ. Whether the specified command should handle "man" URLs True if the command specified in the "command" key should handle "man" URLs. Whether the specified command should handle "man" URLs True if the command specified in the "command" key should handle "man" URLs. Indica si el comando especificado debe manipular los URL "man" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "man". Kas määratud käsk peaks käsitlema "man" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "man" URLe. Hemen zehaztutako komandoak "man" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "man" URLak kudeatuko baditu. Käsitteleekö annettu komento â€manâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€manâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « man » Indique si le programme indiqué à la clé « command » gère les URLs « man ». Indica se a orde especificada debe manipular os URL "man" É true se a orde especificada na chave "command" debe manipular os URL "man". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "man" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "man" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "man" URLs True if the command specified in the "command" key should handle "man" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "man" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "man" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "man" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "man" URL-ovima. A megadott parancs kezelje-e a „man†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „man†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "man" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "man". Indica se il comando specificato deve gestire gli URL "man" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "man". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "man" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "man" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"man" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "man" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "man" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "man" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "man" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "man" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „man“ adresus Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, apdorotų „man“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "man" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "man" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"man" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"man" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "man" ny baiko voalaza Marina raha toa ka tokony hifehy URL "man" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "man" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „man“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "man" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "man" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. СонгоÑон тушаал "man" URLs-г авч үзÑÑ… ÑÑÑÑ… Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр "man" URLs-г авч үзÑхийгзаана. सूचित आदेशने "man" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "man" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «man»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «man»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "man" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "man" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "man"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "man"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «man»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «man»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "man" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "man". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ପà­à¬°à¬•ରଣ" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି. ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ପà­à¬°à¬•ରଣ" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ. ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "man" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "man" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "man" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "man". Se o comando especificado deverá manipular URLs "man" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "man". Se o comando especificado deve manipular URLs "man" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "man". Specifică dacă programul ales va fi asociat adreselor „man†La activare, comanda specificată în cheia „command†va fi asociată adreselor „manâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "man" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "man". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "man" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "man". Ali naj naveden ukaz upravlja z naslovi URL "man" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "man". Nëse komanda e caktuar duhet të trajtojë URLtë "man" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "man". Да ли наведена наредба треба да Ñе кориÑти за „man“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „man“ адреÑе. Da li navedena naredba treba da se koristi za „man“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „man“ adrese. Huruvida det angivna kommandot ska hantera "man"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "man"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "man" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "man" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "నిక" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "నిక" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด man ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด man Belirtilen komutun "man" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "man" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "man" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "man". Lệnh được xác định có nên xá»­ lý URL « man » (trang hướng dẫn) hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « man » (trang hướng dẫn). Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"man" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"man" URLs. 指定的命令是å¦åº”处ç†â€œmanâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œmanâ€URLs。 指定的指令應å¦è™•ç†â€œmanâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmanã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œmanâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmanã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "man" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "man" URLs. /schemas/desktop/gnome/url-handlers/man/command /desktop/gnome/url-handlers/man/command gnome string gnome-help "%s" The handler for "man" URLs The command used to handle "man" URLs, if enabled. Die hanteerder vir "man"-URL'e Die opdrag vir hantering van "man"-URL'e, indien geaktiveer. معالج عناوين "man" الأمر المستخدم لمعالجة عناوين "man"ØŒ ÙÙŠ حال تمكينها. "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «man» El comandu usáu pa remanar les URLs «man», si tan activaes. Ðпрацоўшчык URL "man" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "man", калі уключанае. Програма за обработка на адреÑи от вида „man“ Програмата за обработка на адреÑи от вида „man“, ако е включена. "man" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "man" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "man" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "man" URL-ovima Naredba koja se koristi za "man" URL-ove, ako je omogućeno. El gestor per a els URL «man» L'ordre utilitzada per a gestionar URL «man», si estan habilitades. El gestor per a els URL «man» L'orde utilitzada per a gestionar URL «man», si estan habilitades. Obsluha pro URL „man“ Příkaz používaný pro obsluhu URL „man“, je-li povolen. Y trinydd ar gyfer LAU "man" Y gorchymyn a ddefnyddir i ymdrin â LAU "man", os yn alluog. HÃ¥ndtering af "man"-adresser Kommandoen der bruges til at hÃ¥ndtere "man"-adresser, hvis aktiveret. Der Handler für »man«-URLs Der zum Handhaben von »man«-URLs verwendete Befehl, falls aktiviert. "man" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "man" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "man" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "man" URLs, αν ενεÏγοποιηθεί. 𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠"man" URL𑟠𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "man" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›. The handler for "man" URLs The command used to handle "man" URLs, if enabled. The handler for "man" URLs The command used to handle "man" URLs, if enabled. El manipulador para los URL "man" El comando usado para manipular los URL "man", si están activados. "man" URLi käsitleja Käsk "man" URLide käsitlemiseks, kui lubatud. "man" URLen kudeatzailea "man" URLak kudeatzeko komandoa, gaituta egonez gero. â€manâ€-URL:ien käsittelykomento â€manâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « man » Si vrai, le programme qui gère les URLs « man ». O manipulador dos URL "man" A orde usada para manipular os URL "man", se está activada. "man" URL માટે નિયંતà«àª°àª• "man" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "man" URLs The command used to handle "man" URLs, if enabled. "man" URLs के लिये नियंतà¥à¤°à¤• "man" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "man" URL-ove Naredba koja se koristi za rukovanje "man" URL-ovima, ako je omogućena. „man†URL címek kezelÅ‘je A „man†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "man" Perintah untuk menangani URL "main", jika diaktifkan. Gestore di URL "man" Il comando usato per gestire gli URL "man", se abilitati. URL "man" ã® å‡¦ç† "man" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "man" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"man" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "man" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "man" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "man" URLì— ëŒ€í•œ 핸들러 "man" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „man“ užklausas Komanda naudojama apdoroti „man“ URL, jei įjungta. "man" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "man" URL,ja ieslÄ“gta. "man" URLs क' लेल नियंतà¥à¤°à¤• "man" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "man" Ny baiko omena hifehezana URL "man", raha alefa. Справувачот за "man" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „man“ адреÑи. "man" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "man" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "man" URLs тодорхойлогч Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол "man" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ. "man" URL करीता हॅनà¥à¤¡à¤²à¤° "man" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «man»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «man»-URLer, hvis aktivert. "man" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "man" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "man" URL's afhandelt De opdracht voor het afhandelen van "man"-URL's, indien ingeschakeld Handsamar av «man»-adresser Kommandoen som tek hand om «man»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "man" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "man", ge eba di kgontÅ¡hitÅ¡we. "ପà­à¬°à¬•ରଣ" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "ପà­à¬°à¬•ରଣ" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "man" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "man" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "man" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "man". O manipulador de URLs "man" O comando utilizado para manipular URLs "man", se activo. O manipulador para URLs "man" O comando usado para manipular URLs "man", se habilitado. Programul asociat adreselor „man†Comanda asociată adreselor „man†la activare. Обработчик URL типа "man" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "man", еÑли ключ уÑтановлен Obslužný program pre URL "man" Príkaz použitý na obsluhovanie URL "man", ak je povolené. RoÄnik naslovov URL "man" Ukaz za upravljanje z naslovi "man", ko je možnost omogoÄena. Trajtuesi i URLve "man" Komanda e përdorur për të trajtuar URLtë "man", nëse aktive. Руковаоц „man“ адреÑама Ðаредба коришћена за баратање „man“ адреÑама, ако је укључено. Rukovaoc „man“ adresama Naredba korišćena za baratanje „man“ adresama, ako je ukljuÄeno. Hanteraren för "man"-URL:er Kommandot som används för att hantera "man"-URL:er, om aktiverat. "man" கையாளà¯à®µà®¤à®±à¯à®•ான URL "man" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "నిక" ఉపయోగించà±à°Ÿ కొరకౠURLs "నిక" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించౠURLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด man คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด man (ถ้าเปิดใช้) "man" URL'leri için iÅŸleyici EÄŸer etkinse, "man" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "man" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "man". Bá»™ xá»­ lý cho URL « man » (trang hướng dẫn) Lệnh được dùng để xá»­ lý các URL kiểu « man » (trang hướng dẫn), nếu bật. Iisikhombisi se-"man" URLs Umyalelo osetyenziselwa ukukhombisa u- "man" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œmanâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œmanâ€URLs 的命令。 處ç†â€œmanâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œmanâ€URL 的指令。 處ç†â€œmanâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œmanâ€URL 的指令。 Umphathi we "man" URLs Umlayezo osetshenziswa ukuphatha "man" URLs, uma ingunyaziwe. /schemas/desktop/gnome/url-handlers/man/needs_terminal /desktop/gnome/url-handlers/man/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/http/enabled /desktop/gnome/url-handlers/http/enabled gnome bool true Whether the specified command should handle "http" URLs True if the command specified in the "command" key should handle "http" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "http" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "http". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "http" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «http» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «http». Ці пазначаны загад апрацоўвае URL "http" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "http". Дали избраната програма да обработва адреÑи от вида „http“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „http“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "http" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "http" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "http" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "http" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "http" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «http» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «http». Si l'orde especificada hauria de gestionar els URL «http» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «http». Jestli má urÄený příkaz obsluhovat URL „http“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „http“. A ddylai'r gorchymyn penodedig ymdrin â LAU "http" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "http". Om den specificerede kommando skal hÃ¥ndtere "http"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "http"-adresser. Soll der angegebene Befehl »http«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »http«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "http" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "http" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "http" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "http" URLs. ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "http" URL𑟠ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠"command" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "http" URLð‘Ÿ. Whether the specified command should handle "http" URLs True if the command specified in the "command" key should handle "http" URLs. Whether the specified command should handle "http" URLs True if the command specified in the "command" key should handle "http" URLs. Indica si el comando especificado debe manipular los URL "http" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "http". Kas määratud käsk peaks käsitlema "http" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "http" URLe. Hemen zehaztutako komandoak "http" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "http" URLak kudeatuko baditu. Käsitteleekö annettu komento â€httpâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€httpâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « http » Indique si le programme indiqué à la clé « command » gère les URLs « http ». Indica se a orde especificada debe manipular os URL "http" É true se a orde especificada na chave "command" debe manipular os URL "http". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "http" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "http" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "http" URLs True if the command specified in the "command" key should handle "http" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "http" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "http" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "http" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "http" URL-ovima. A megadott parancs kezelje-e a „http†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „http†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "http" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "http". Indica se il comando specificato deve gestire gli URL "http" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "http". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "http" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "http" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"http" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "http" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "http" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "http" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "http" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "http" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „http“ adresus Nustatykite į teigiamÄ… reikÅ¡mÄ™ jei norite, kad programa, nurodyta „command“ rakte, apdorotų „http“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "http" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "http" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"http" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"http" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "http" ny baiko voalaza Marina raha toa ka tokony hifehy URL "http" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "http" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „http“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "http" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "http" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. सूचित आदेशने "http" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "http" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «http»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «http»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "http" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "http" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "http"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command" "http"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «http»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «http»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "http" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "http". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "à¬à¬š.ଟି.ଟି.ପି." à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି.। ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "à¬à¬š.ଟି.ଟି.ପି." à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "http" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "http" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "http" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "http". Se o comando especificado deverá manipular URLs "http" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "http". Se o comando especificado deve manipular URLs "http" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "http". Specifică dacă programul ales va fi asociat adreselor „http†La activare, comanda specificată în cheia „command†va fi asociată adreselor „httpâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "http" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "http". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "http" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "http". Ali naj naveden ukaz upravlja z naslovi URL "http" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "http". Nëse komanda e caktuar duhet të trajtojë URLtë "http" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "http". Да ли наведена наредба треба да Ñе кориÑти за „http“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „http“ адреÑе. Da li navedena naredba treba da se koristi za „http“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „http“ adrese. Huruvida det angivna kommandot ska hantera "http"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "http"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "http" URL ஠கையாளà¯à®®à®¾ "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "http" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯,உணà¯à®®à¯ˆ. "http" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "http" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด http ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด http Belirtilen komutun "http" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "http" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "http" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "http". Lệnh được xác định có nên xá»­ lý URL « http » hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « http ». Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"http" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"http" URLs. 指定的命令是å¦åº”处ç†â€œhttpâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œhttpâ€URLs。 指定的指令應å¦è™•ç†â€œhttpâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œhttpâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "http" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "http" URLs. /schemas/desktop/gnome/url-handlers/http/command /desktop/gnome/url-handlers/http/command gnome string epiphany %s The handler for "http" URLs The command used to handle "http" URLs, if enabled. Die hanteerder vir "http"-URL'e Die opdrag vir hantering van "http"-URL'e, indien geaktiveer. معالج عناوين "http" الأمر المستخدم لمعالجة عناوين "http"ØŒ ÙÙŠ حال تمكينها. "http" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "http" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «http» El comandu usáu pa remanar les URLs «http», si tan activaes. Ðпрацоўшчык URL "http" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "http", калі уключанае. Програма за обработка на адреÑи от вида „http“ Програмата за обработка на адреÑи от вида „http“, ако е включена. "http" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "http" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "http" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "http" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "http" URL-ovima Naredba koja se koristi za "http" URL-ove, ako je omogućeno. El gestor per a els URL «http» L'ordre utilitzada per a gestionar URL «http», si estan habilitades. El gestor per a els URL «http» L'orde utilitzada per a gestionar URL «http», si estan habilitades. Obsluha pro URL „http“ Příkaz používaný pro obsluhu URL „http“, je-li povolen. Y trinydd ar gyfer LAU "http" Y gorchymyn a ddefnyddir i ymdrin â LAU "http", os yn alluog. HÃ¥ndtering af "http"-adresser Kommandoen der bruges til at hÃ¥ndtere "http"-adresser, hvis aktiveret. Der Handler für »http«-URLs Der zum Handhaben von »http«-URLs verwendete Befehl, falls aktiviert. "http" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "http" ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "http" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "http" URLs, αν ενεÏγοποιηθεί. 𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠"http" URL𑟠𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "http" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›. The handler for "http" URLs The command used to handle "http" URLs, if enabled. The handler for "http" URLs The command used to handle "http" URLs, if enabled. El manipulador para los URL "http" El comando usado para manipular los URL "http", si están activados. "http" URLi käsitleja Käsk "http" URLide käsitlemiseks, kui lubatud. "http" URLen kudeatzailea "http" URLak kudeatzeko komandoa, gaituta egonez gero. â€httpâ€-URL:ien käsittelykomento â€httpâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « http » Si vrai, le programme qui gère les URLs « http ». O manipulador dos URL "http" A orde usada para manipular os URL "http", se está activada. "http" URL માટે નિયંતà«àª°àª• "http" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "http" URLs The command used to handle "http" URLs, if enabled. "http" URLs के लिये नियंतà¥à¤°à¤• "http" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "http" URL-ove Naredba koja se koristi za rukovanje "http" URL-ovima, ako je omogućena. „http†URL címek kezelÅ‘je A „http†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "http" Perintah untuk menangani URL "http", jika diaktifkan. Gestore di URL "http" Il comando usato per gestire gli URL "http", se abilitati. URL "http" ã® å‡¦ç† "http" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "http" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"http" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "http" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "http" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "http" URLì— ëŒ€í•œ 핸들러 "http" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „http“ užklausas Komanda naudojama apdoroti „http“ URL, jeigu įjungta. "http" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "http" URL,ja ieslÄ“gta. "http" URLs क' लेल नियंतà¥à¤°à¤• "http" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "http" Ny baiko omena hifehezana URL "http", raha alefa. Справувачот за "http" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „http“ адреÑи. "http" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "http" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "aim" URL करीता हॅनà¥à¤¡à¤²à¤° "http" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «http»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «http»-URLer, hvis aktivert. "http" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "http" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "http" URL's afhandelt De opdracht voor het afhandelen van "http"-URL's, indien ingeschakeld Handsamar av «http»-adresser Kommandoen som tek hand om «http»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "http" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "http", ge eba di kgontÅ¡hitÅ¡we. "à¬à¬š.ଟି.ଟି.ପି." à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "http" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "http" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "http" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "http" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "http". O manipulador de URLs "http" O comando utilizado para manipular URLs "http", se activo. O manipulador para URLs "http" O comando usado para manipular URLs "http", se habilitado. Programul asociat adreselor „http†Comanda asociată adreselor „http†la activare. Обработчик URL типа "http" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "http", еÑли ключ уÑтановлен Obslužný program pre URL "http" Príkaz použitý na obsluhovanie URL "http", ak je povolené. RoÄnik naslovov URL "http" Ukaz za upravljanje z naslovi "http", ko je možnost omogoÄena. Trajtuesi i URLve "http" Komanda e përdorur për të trajtuar URLtë "http", nëse aktive. Руковаоц „http“ адреÑама Ðаредба коришћена за баратање „http“ адреÑама, ако је укључено. Rukovaoc „http“ adresama Naredba korišćena za baratanje „http“ adresama, ako je ukljuÄeno. Hanteraren för "http"-URL:er Kommandot som används för att hantera "http"-URL:er, om aktiverat. "http" கையாளà¯à®µà®¤à®±à¯à®•ான URL "http" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "http" ఉపయోగించà±à°Ÿ కొరకౠURLs "http" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด http คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด http (ถ้าเปิดใช้) "http" URL'leri için iÅŸleyici EÄŸer etkinse, "http" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "http" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "http". Bá»™ xá»­ lý cho URL « http » Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « http », nếu bật. Isikhombisi se-"http" URLs Umyalelo osetyenziselwa ukukhombisa u-"http" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œhttpâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œhttpâ€URLs 的命令。 處ç†â€œhttpâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œhttpâ€URL 的指令。 處ç†â€œhttpâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œhttpâ€URL 的指令。 Umphathi we "http" URLs Umlayezo osetshenziswa ukuphatha "http" URLs, uma ingunyaziwe. /schemas/desktop/gnome/url-handlers/http/needs_terminal /desktop/gnome/url-handlers/http/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/https/enabled /desktop/gnome/url-handlers/https/enabled gnome bool true Whether the specified command should handle "https" URLs True if the command specified in the "command" key should handle "https" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "https" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "https". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «https» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «https». Ці пазначаны загад апрацоўвае URL "https" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "https". Дали избраната програма да обработва адреÑи от вида „https“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „https“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "https" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "https" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "https" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "https" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «https» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «https». Si l'orde especificada hauria de gestionar els URL «https» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «https». Jestli má urÄený příkaz obsluhovat URL „https“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „https“. A ddylai'r gorchymyn penodedig ymdrin â LAU "https" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "https". Om den specificerede kommando skal hÃ¥ndtere "https"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "https"-adresser. Soll der angegebene Befehl »https«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »https«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "https" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ངེས་བདེན་ཨིན་པ་ཅིན་ "https" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "https" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "https" URLs. Whether the specified command should handle "https" URLs True if the command specified in the "command" key should handle "https" URLs. Whether the specified command should handle "https" URLs True if the command specified in the "command" key should handle "https" URLs. Indica si el comando especificado debe manipular los URL "https" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "https". Kas määratud käsk peaks käsitlema "https" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "https" URLe. Hemen zehaztutako komandoak "https" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "https" URLak kudeatuko baditu. Käsitteleekö annettu komento â€httpsâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€httpsâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « https » Indique si le programme indiqué à la clé « command » gère les URLs « https ». Indica se a orde especificada debe manipular os URL "https" É true se a orde especificada na chave "command" debe manipular os URL "https". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "https" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "https" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "https" URLs True if the command specified in the "command" key should handle "https" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "https" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "https" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "https" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "https" URL-ovima. A megadott parancs kezelje-e a „https†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „https†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "https" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "https". Indica se il comando specificato deve gestire gli URL "https" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "https". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "https" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "https" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"https" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "https" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "https" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "https" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "https" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "https" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „https“ adresus Nustatykite į teigiamÄ… reikÅ¡mÄ™ jei norite, kad programa, nurodyta „command“ rakte, apdorotų „https“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "https" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "https" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"https" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"https" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "https" ny baiko voalaza Marina raha toa ka tokony hifehy URL "https" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "https" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „https“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "https" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "https" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. सूचित आदेशने "https" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "https" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «https»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «https»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "https" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "https" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "https"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "https"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «https»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «https»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "https" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "https". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸." à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି. ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸." à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "https" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "https" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "https" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "https". Se o comando especificado deverá manipular URLs "https" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "https". Se o comando especificado deve manipular URLs "https" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "https". Specifică dacă programul ales va fi asociat adreselor „https†La activare, comanda specificată în cheia „command†va fi asociată adreselor „httpsâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "https" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "https". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "https" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "https". Ali naj naveden ukaz upravlja z naslovi URL "https" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "https". Nëse komanda e caktuar duhet të trajtojë URLtë "https" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "https". Да ли наведена наредба треба да Ñе кориÑти за „https“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „https“ адреÑе. Da li navedena naredba treba da se koristi za „https“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „https“ adrese. Huruvida det angivna kommandot ska hantera "https"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "https"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "https" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "ghelp" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "https" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "https" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด https ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด https Belirtilen komutun "https" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "https" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "https" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "https". Lệnh được xác định có nên xá»­ lý URL « https » hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « https ». Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"https" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"https" URLs. 指定的命令是å¦åº”处ç†â€œhttpsâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œhttpsâ€URLs。 指定的指令應å¦è™•ç†â€œhttpsâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpsã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œhttpsâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œhttpsã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "https" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "https" URLs. /schemas/desktop/gnome/url-handlers/https/command /desktop/gnome/url-handlers/https/command gnome string epiphany %s The handler for "https" URLs The command used to handle "https" URLs, if enabled. Die hanteerder vir "https"-URL'e Die opdrag vir hantering van "https"-URL'e, indien geaktiveer. معالج عناوين "https" الأمر المستخدم لمعالجة عناوين "https"ØŒ ÙÙŠ حال تمكينها. "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «https» El comandu usáu pa remanar les URLs «https», si tan activaes. Ðпрацоўшчык URL "https" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "https", калі уключанае. Програма за обработка на адреÑи от вида „https“ Програмата за обработка на адреÑи от вида „https“, ако е включена. "https" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "https" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "https" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "https" URL-ovima Naredba koja se koristi za "https" URL-ove, ako je omogućeno. El gestor per a els URL «https» L'ordre utilitzada per a gestionar URL «https», si estan habilitades. El gestor per a els URL «https» L'orde utilitzada per a gestionar URL «https», si estan habilitades. Obsluha pro URL „https“ Příkaz používaný pro obsluhu URL „https“, je-li povolen. Y trinydd ar gyfer LAU "https" Y gorchymyn a ddefnyddir i ymdrin â LAU "https", os yn alluog. HÃ¥ndtering af "https"-adresser Kommandoen der bruges til at hÃ¥ndtere "https"-adresser, hvis aktiveret. Der Handler für »https«-URLs Der zum Handhaben von »https«-URLs verwendete Befehl, falls aktiviert. "https" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "https" ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "https" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "https" URLs, αν ενεÏγοποιηθεί. The handler for "https" URLs The command used to handle "https" URLs, if enabled. The handler for "https" URLs The command used to handle "https" URLs, if enabled. El manipulador para los URL "https" El comando usado para manipular los URL "https", si están activados. "https" URLi käsitleja Käsk "https" URLide käsitlemiseks, kui lubatud. "https" URLen kudeatzailea "https" komandoa kudeatzeko komandoa, gaituta egonez gero. â€httpsâ€-URL:ien käsittelykomento â€httpsâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « https » Si vrai, le programme qui gère les URLs « https ». O manipulador dos URL "https" A orde usada para manipular os URL "https", se está activada. "https" URL માટે નિયંતà«àª°àª• "http" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "https" URLs The command used to handle "https" URLs, if enabled. "https" URLs के लिये नियंतà¥à¤°à¤• "https" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "https" URL-ove Naredba koja se koristi za rukovanje "https" URL-ovima, ako je omogućena. „https†URL címek kezelÅ‘je A „https†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "https" Perintah untuk menangani URL "https", jika diaktifkan. Gestore di URL "https" Il comando usato per gestire gli URL "https", se abilitati. URL "https" ã® å‡¦ç† "https" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "https" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"https" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "https" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "https" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "https" URLì— ëŒ€í•œ 핸들러 "https" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „https“ užklausas Komanda naudojama apdoroti „https“ URL, jei įjungta. "https" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "https" URL,ja ieslÄ“gta. "https" URLs क' लेल नियंतà¥à¤°à¤• "https" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "https" Ny baiko omena hifehezana URL "https", raha alefa. Справувачот за "https" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „https“ адреÑи. "https" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "https" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "https" URL करीता हॅनà¥à¤¡à¤²à¤° "https" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «https»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «https»-URLer, hvis aktivert. "https" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "https" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "https" URL's afhandelt De opdracht voor het afhandelen van "https"-URL's, indien ingeschakeld Handsamar av «https»-adresser Kommandoen som tek hand om «https»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "https" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "https", ge eba di kgontÅ¡hitÅ¡we. "à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸." à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "à¬à¬š.ଟି.ଟି.ପି.à¬à¬¸." à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "https" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "https" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "https" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "https". O manipulador de URLs "https" O comando utilizado para manipular URLs "https", se activo. O manipulador para URLs "https" O comando usado para manipular URLs "https", se habilitado. Programul asociat adreselor „https†Comanda asociată adreselor „https†la activare. Обработчик URL типа "https" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылок URL типа "https", еÑли ключ уÑтановлен Obslužný program pre URL "https" Príkaz použitý na obsluhovanie URL "https", ak je povolené. RoÄnik naslovov URL "https" Ukaz za upravljanje z naslovi "https", ko je možnost omogoÄena. Trajtuesi i URLve "https" Komanda e përdorur për të trajtuar URLtë "http", nëse aktive. Руковаоц „https“ адреÑама Ðаредба коришћена за баратање „https“ адреÑама, ако је укључено. Rukovaoc „https“ adresama Naredba korišćena za baratanje „https“ adresama, ako je ukljuÄeno. Hanteraren för "https"-URL:er Kommandot som används för att hantera "https"-URL:er, om aktiverat. "https" கையாளà¯à®µà®¤à®±à¯à®•ான URL "https" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "https" ఉపయోగించà±à°Ÿ కొరకౠURLs "https" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด https คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด https (ถ้าเปิดใช้) "https" URL'leri için iÅŸleyici EÄŸer etkinse, "https" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "https" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "https". Bá»™ xá»­ lý cho URL « https » Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « https », nếu bật. Isikhombisi se-"https" URLs Umyalelo osetyenziselwa ukukhombisa u "https" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œhttpsâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œhttpsâ€URLs 的命令。 處ç†â€œhttpsâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œhttpsâ€URL 的指令。 處ç†â€œhttpsâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œhttpsâ€URL 的指令。 Umphathi we "https" URLs Umlayezo osetshenziswa ukuphatha "https" URLs, uma ingunyaziwe. /schemas/desktop/gnome/url-handlers/https/needs_terminal /desktop/gnome/url-handlers/https/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/mailto/enabled /desktop/gnome/url-handlers/mailto/enabled gnome bool true Whether the specified command should handle "mailto" URLs True if the command specified in the "command" key should handle "mailto" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "mailto" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "mailto". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «mailto» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «mailto». Ці пазначаны загад апрацоўвае URL "mailto" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "mailto". Дали избраната програма да обработва адреÑи от вида „mailto“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „mailto“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "mailto" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "mailto" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "mailto" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "mailto" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «mailto» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «mailto». Si l'orde especificada hauria de gestionar els URL «mailto» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «mailto». Jestli má urÄený příkaz obsluhovat URL „mailto“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „mailto“. A ddylai'r gorchymyn penodedig ymdrin â LAU "mailto" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "mailto". Om den specificerede kommando skal hÃ¥ndtere "mailto"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "mailto"-adresser. Soll der angegebene Befehl »mailto«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »mailto«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "mailto" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "mailto" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "mailto" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "mailto" URLs. Whether the specified command should handle "mailto" URLs True if the command specified in the "command" key should handle "mailto" URLs. Whether the specified command should handle "mailto" URLs True if the command specified in the "command" key should handle "mailto" URLs. Indica si el comando especificado debe manipular los URL "mailto" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "mailto". Kas määratud käsk peaks käsitlema "mailto" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "mailto" URLe. Hemen zehaztutako komandoak "mailto" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "mailto" URLak kudeatuko baditu. Käsitteleekö annettu komento â€mailtoâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€mailtoâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « mailto » Indique si le programme indiqué à la clé « command » gère les URLs « mailto ». Indica se a orde especificada debe manipular os URL "mailto" É true se a orde especificada na chave "command" debe manipular os URL "mailto". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "mailto" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "mailto" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "mailto" URLs True if the command specified in the "command" key should handle "mailto" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "mailto" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "mailto" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "mailto" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "mailto" URL-ovima. A megadott parancs kezelje-e a „mailto†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „mailto†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "mailto" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "mailto". Indica se il comando specificato deve gestire gli URL "mailto" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "mailto". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "mailto" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "mailto" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"mailto" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "mailto" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "mailto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "mailto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "mailto" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "mailto" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „mailto“ adresus Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, apdorotų „mailto“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "mailto" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "mailto" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"mailto" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"mailto" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "mailto" ny baiko voalaza Marina raha toa ka tokony hifehy URL "mailto" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "mailto" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „mailto“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "mailto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "mailto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. СонгоÑон тушаал "mailto" URLs-г авч үзÑÑ… ÑÑÑÑ… Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр "mailto" URLs-г авч үзÑхийгзаана. सूचित आदेशने "mailto" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "mailto" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «mailto»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «mailto»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "mailto" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "mailto" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "mailto"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "mailto"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «mailto»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «mailto»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "mailto" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "mailto". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ପà­à¬°à¬¾à¬ªà¬•" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି. ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ଡାକରା" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "mailto" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "mailto" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "mailto" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "mailto". Se o comando especificado deverá manipular URLs "mailto" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "mailto". Se o comando especificado deve manipular URLs "mailto" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "mailto". Specifică dacă programul ales va fi asociat adreselor „mailto†La activare, comanda specificată în cheia „command†va fi asociată adreselor „mailtoâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "mailto" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "mailto". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "mailto" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "mailto". Ali naj naveden ukaz upravlja z naslovi URL "mailto" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "mailto". Nëse komanda e caktuar duhet të trajtojë URLtë "mailto" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "mailto". Да ли наведена наредба треба да Ñе кориÑти за „mailto“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „mailto“ адреÑе. Da li navedena naredba treba da se koristi za „mailto“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „mailto“ adrese. Huruvida det angivna kommandot ska hantera "mailto"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "mailto"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "mailto"URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "mailto" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "తపాలాకà±" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "తపాలాకà±" మీట ఉపయోగించవలెనౠ" URLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด mailto ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด mailto Belirtilen komutun "mailto" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "mailto" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "mailto" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "mailto". Lệnh được xác định có nên xá»­ lý URL « mailto » (gởi thư cho) hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « mailto » (gởi thư cho). Nokuba ngaba umyalelo obaluliweyo kufunekla ukhombise i-"mailto" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"mailto" URLs. 指定的命令是å¦åº”处ç†â€œmailtoâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œmailtoâ€URLs。 指定的指令應å¦è™•ç†â€œmailtoâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmailtoã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œmailtoâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œmailtoã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "mailto" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "mailto" URLs. /schemas/desktop/gnome/url-handlers/mailto/command /desktop/gnome/url-handlers/mailto/command gnome string evolution %s The handler for "mailto" URLs The command used to handle "mailto" URLs, if enabled. Die hanteerder vir "mailto"-URL'e Die opdrag vir hantering van "mailto"-URL'e, indien geaktiveer. معالج عناوين "mailto" الأمر المستخدم لمعالجة عناوين "mailto"ØŒ ÙÙŠ حال تمكينها. "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «mailto» El comandu usáu pa remanar les URLs «mailto», si tan activaes. Ðпрацоўшчык URL "mailto" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "mailto", калі уключанае. Програма за обработка на адреÑи от вида „mailto“ Програмата за обработка на адреÑи от вида „mailto“, ако е включена. "mailto" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "mailto" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "mailto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "mailto" URL-ovima Naredba koja se koristi za "mailto" URL-ove, ako je omogućeno. El gestor per a els URL «mailto» L'ordre utilitzada per a gestionar URL «mailto», si estan habilitades. El gestor per a els URL «mailto» L'orde utilitzada per a gestionar URL «mailto», si estan habilitades. Obsluha pro URL „mailto“ Příkaz používaný pro obsluhu URL „mailto“, je-li povolen. Y trinydd ar gyfer LAU "mailto" Y gorchymyn a ddefnyddir i ymdrin â LAU "mailto", os yn alluog. HÃ¥ndtering af "mailto"-adresser Kommandoen der bruges til at hÃ¥ndtere "mailto"-adresser, hvis aktiveret. Der Handler für »mailto«-URLs Der zum Handhaben von »mailto«-URLs verwendete Befehl, falls aktiviert. "mailto" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "mailto" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "mailto" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "mailto" URLs, αν ενεÏγοποιηθεί. The handler for "mailto" URLs The command used to handle "mailto" URLs, if enabled. The handler for "mailto" URLs The command used to handle "mailto" URLs, if enabled. El manipulador para los URL "mailto" El comando usado para manipular los URL "mailto", si están activados. "mailto" URLi käsitleja Käsk "mailto" URLide käsitlemiseks, kui lubatud. "mailto" URLen kudeatzailea "mailto" URLak kudeatzeko komandoa, gaituta egonez gero. â€mailtoâ€-URL:ien käsittelykomento â€mailtoâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « mailto » Si vrai, le programme qui gère les URLs « mailto ». O manipulador dos URL "mailto" A orde usada para manipular os URL "mailto", se está activada. "mailto" URL માટે નિયંતà«àª°àª• "mailto" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "mailto" URLs The command used to handle "mailto" URLs, if enabled. "mailto" URLs के लिये नियंतà¥à¤°à¤• "mailto" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "mailto" URL-ove Naredba koja se koristi za rukovanje "mailto" URL-ovima, ako je omogućena. „mailto†URL címek kezelÅ‘je A „mailto†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "mailto" Perintah untuk menangani URL "mailto", jika diaktifkan. Gestore di URL "mailto" Il comando usato per gestire gli URL "mailto", se abilitati. URL "mailto" ã® å‡¦ç† "mailto" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "mailto" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"mailto" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "mailto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "mailto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "mailto" URLì— ëŒ€í•œ 핸들러 "mailto" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „mailto“ užklausas Komanda naudojama apdoroti „mailto“ URL, jei įjungta. "mailto" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "mailto" URL,ja ieslÄ“gta. "mailto" URLs क' लेल नियंतà¥à¤°à¤• "mailto" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "mailto" Ny baiko omena hifehezana URL "mailto", raha alefa. Справувачот за "mailto" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „mailto“ адреÑи. "mailto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "mailto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "mailto" URLs-н тодорхойлогч Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол "mailto" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ. "mailto" URL करीता हॅनà¥à¤¡à¤²à¤° "mailto" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «mailto»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «mailto»-URLer, hvis aktivert. "mailto" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "mailto" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "mailto" URL's afhandelt De opdracht voor het afhandelen van "mailto"-URL's, indien ingeschakeld Handsamar av «mailto»-adresser Kommandoen som tek hand om «mailto»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "mailto" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "mailto", ge eba di kgontÅ¡hitÅ¡we. "ପà­à¬°à¬ªà¬•" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "ପà­à¬°à¬ªà¬•" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "mailto" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "mailto" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "mailto" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "mailto". O manipulador de URLs "mailto" O comando utilizado para manipular URLs "mailto", se activo. O manipulador para URLs "mailto" O comando usado para manipular URLs "mailto", se habilitado. Programul asociat adreselor „mailto†Comanda asociată adreselor „mailto†la activare. Обработчик URL типа "mailto" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "mailto", еÑли ключ уÑтановлен Obslužný program pre URL "mailto" Príkaz použitý na obsluhovanie URL "mailto", ak je povolené. RoÄnik naslovov URL "mailto" Ukaz za upravljanje z naslovi "mailto", ko je možnost omogoÄena. Trajtuesi i URLve "mailto" Komanda e përdorur për të trajtuar URLtë "mailto", nëse aktive. Руковаоц „mailto“ адреÑама Ðаредба коришћена за баратање „mailto“ адреÑама, ако је укључено. Rukovaoc „mailto“ adresama Naredba korišćena za baratanje „mailto“ adresama, ako je ukljuÄeno. Hanteraren för "mailto"-URL:er Kommandot som används för att hantera "mailto"-URL:er, om aktiverat. "mailto" கையாளà¯à®µà®¤à®±à¯à®•ான URL "mailto"஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "తపాలాకà±" ఉపయోగించà±à°Ÿ కొరకౠURLs "తపాలాకà±"ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด mailto คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด mailto (ถ้าเปิดใช้) "mailto" URL'leri için iÅŸleyici EÄŸer etkinse, "mailto" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "mailto" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "mailto". Bá»™ xá»­ lý cho URL « mailto » (gởi thư cho) Lệnh được dùng để xá»­ lý các URL kiểu « mailto » (gởi thư cho), nếu bật. Isikhombisi se-"mailto" URLs Umyalelo osetyenziselwa ukukhombisa u-"mailto" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œmailtoâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œmailtoâ€URLs 的命令。 處ç†â€œmailtoâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œmailtoâ€URL 的指令。 處ç†â€œmailtoâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œmailtoâ€URL 的指令。 Umphathi we "mailto" URLs Umlayezo osetshenziswa ukuphatha "mailto" URLs, uma ingunyaziwe. /schemas/desktop/gnome/url-handlers/mailto/needs_terminal /desktop/gnome/url-handlers/mailto/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/aim/enabled /desktop/gnome/url-handlers/aim/enabled gnome bool true Whether the specified command should handle "aim" URLs True if the command specified in the "command" key should handle "aim" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "aim" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "aim". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Ці пазначаны загад апрацоўвае URL "aim" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "aim" (хуткіх паведамленьнÑÑž). Дали избраната програма да обработва адреÑи от вида „aim“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „aim“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "aim" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "aim" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "aim" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "aim" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «aim» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «aim». Si l'orde especificada hauria de gestionar els URL «aim» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «aim». Jestli má urÄený příkaz obsluhovat URL „aim“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „aim“. A ddylai'r gorchymyn penodedig ymdrin â LAU "aim" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "aim". Om den specificerede kommando skal hÃ¥ndtere "aim"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "aim"-adresser. Soll der angegebene Befehl »aim«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »aim«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "aim" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "aim" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "aim" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "aim" URLs. ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "aim" URL𑟠ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠"command" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "aim" URLð‘Ÿ. Whether the specified command should handle "aim" URLs True if the command specified in the "command" key should handle "aim" URLs. Whether the specified command should handle "aim" URLs True if the command specified in the "command" key should handle "aim" URLs. Indica si el comando especificado debe manipular los URL "aim" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "aim". Kas määratud käsk peaks käsitlema "aim" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "aim" URLe. Hemen zehaztutako komandoak "aim" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "aim" URLak kudeatuko baditu. Käsitteleekö annettu komento â€aimâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€aimâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « aim » Indique si le programme indiqué à la clé « command » gère les URLs « aim ». Indica se a orde especificada debe manipular os URL "aim" É true se a orde especificada na chave "command" debe manipular os URL "aim". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "aim" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "aim" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "aim" URLs True if the command specified in the "command" key should handle "aim" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "aim" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "aim" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "aim" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "aim" URL-ovima. A megadott parancs kezelje-e az „aim†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli az „aim†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "aim" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "aim". Indica se il comando specificato deve gestire gli URL "aim" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "aim". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "aim" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "aim" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"aim" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "aim" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "aim" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "aim" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "aim" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "aim" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „aim“ adresus Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, apdorotų „aim“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "aim" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "aim" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाà¤à¤¡à¤• "aim" URL केठनियंतà¥à¤°à¤¿à¤¤ कà¤à¤¨à¤¾à¤ चाही सही अछि जठ"command" कà¥à¤‚जीमे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाà¤à¤¡à¤• "aim" URL क' नियंतà¥à¤°à¤¿à¤¤ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "aim" ny baiko voalaza Marina raha toa ka tokony hifehy URL "aim" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда треба да Ñе Ñправи Ñо "aim" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „aim“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "aim" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "aim" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. СонгоÑон тушаал "aim" URLs-г авч үзÑÑ… ÑÑÑÑ… Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, програмд "aim" URLs-н тодорхойлогчийг »command« -д өгнө. सूचित आदेशने "aim" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "aim" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «aim»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «aim»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ आदेशले "aim" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "aim" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "aim"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "aim"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «aim»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «aim»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "aim" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "aim". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ଲକà­à¬·à­à¬¯" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି। ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ଲକà­à¬·à­à¬¯" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "aim" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿੱਤਾ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ,"aim" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "aim" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "aim". Se o comando especificado deverá manipular URLs "aim" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "aim". Se o comando especificado deve manipular URLs "aim" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "aim". Specifică dacă programul ales va fi asociat adreselor „aim†La activare, comanda specificată în cheia „command†va fi asociată adreselor „aimâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "aim" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "aim". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "aim" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "aim". Ali naj naveden ukaz upravlja z naslovi URL "aim" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "aim". Nëse komanda e caktuar duhet të trajtojë URLtë "aim" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "aim". Да ли наведена наредба треба да Ñе кориÑти за „aim“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „aim“ адреÑе. Da li navedena naredba treba da se koristi za „aim“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „aim“ adrese. Huruvida det angivna kommandot ska hantera "aim"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "aim"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "aim" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "aim" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "à°—à±à°°à°¿à°šà±‚à°šà±" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "à°—à±à°°à°¿ చూచà±" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด aim ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด aim Belirtilen komutun "aim" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "aim" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "aim" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "aim". Lệnh được xác định có nên xá»­ lý URL « aim » hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « aim ». Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"aim" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise i-"aim" URLs. 指定的命令是å¦åº”处ç†â€œaimâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œaimâ€URLs。 指定的指令應å¦è™•ç†â€œaimâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œaimã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œaimâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œaimã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "aim" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "aim" URLs. /schemas/desktop/gnome/url-handlers/aim/command /desktop/gnome/url-handlers/aim/command gnome string gaim-remote uri "%s" The handler for "aim" URLs The command used to handle "aim" URLs, if enabled. Die hanteerder vir "aim"-URL'e Die opdrag vir hantering van "aim"-URL'e, indien geaktiveer. معالج عناوين "aim" الأمر المستخدم لمعالجة عناوين "aim"ØŒ ÙÙŠ حال تمكينها. "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । Ðпрацоўшчык URL "aim" (хуткіх паведамленьнÑÑž) Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "aim" (хуткіх паведамленьнÑÑž), калі уключанае. Програма за обработка на адреÑи от вида „aim“ Програмата за обработка на адреÑи от вида „aim“, ако е включена. "aim" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "aim" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "aim" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "aim" URL-ovima Naredba koja se koristi za "aim" URL-ove, ako je omogućeno. El gestor per a els URL «aim» L'ordre utilitzada per a gestionar URL «aim», si estan habilitades. El gestor per a els URL «aim» L'orde utilitzada per a gestionar URL «aim», si estan habilitades. Obsluha pro URL „aim“ Příkaz používaný pro obsluhu URL „aim“, je-li povolen. Y trinydd ar gyfer LAU "aim" Y gorchymyn a ddefnyddir i ymdrin â LAU "aim", os yn alluog. HÃ¥ndtering af "aim"-adresser Kommandoen der bruges til at hÃ¥ndtere "aim"-adresser, hvis aktiveret. Der Handler für »aim«-URLs Der zum Handhaben von »aim«-URLs verwendete Befehl, falls aktiviert. "aim" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "aim" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "aim" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "aim" URLs, αν ενεÏγοποιηθεί. 𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠"aim" URL𑟠𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "aim" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›. The handler for "aim" URLs The command used to handle "aim" URLs, if enabled. The handler for "aim" URLs The command used to handle "aim" URLs, if enabled. El manipulador para los URL "aim" El comando usado para manipular los URL "aim", si están activados. "aim" URLi käsitleja Käsk "aim" URLide käsitlemiseks, kui lubatud. "aim" URLen kudeatzailea "aim" URLak kudeatzeko komandoa, gaitua egonez gero. â€aimâ€-URL:ien käsittelykomento â€aimâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « aim » Si vrai, le programme qui gère les URLs « aim ». O manipulador dos URL "aim" A orde usada para manipular os URL "aim", se está activada. "aim" URL માટે નિયંતà«àª°àª• "aim" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "aim" URLs The command used to handle "aim" URLs, if enabled. "aim" URLs के लिये नियंतà¥à¤°à¤• "aim" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "aim" URL-ove Naredba koja se koristi za rukovanje "aim" URL-ovima, ako je omogućena. „aim†URL címek kezelÅ‘je Az „aim†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "aim" Perintah untuk menangani URL "aim", jika diaktifkan. Gestore di URL "aim" Il comando usato per gestire gli URL "aim", se abilitati. URL "aim" ã® å‡¦ç† "aim" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "aim" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"aim" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "aim" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "aim" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "aim" URLì— ëŒ€í•œ 핸들러 "aim" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „aim“ užklausas Komanda naudojama apdoroti „aim“ URL, jeigu įjungta. "aim" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "aim" URL,ja ieslÄ“gta. "aim" URL क' लेल नियंतà¥à¤°à¤• "aim" URL क' नियंतà¥à¤°à¤£ लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² छल Ny mpifehy URL "aim" Ny baiko omena hifehezana URL "aim", raha alefa. Справувачот за "aim" URL Ðко е вклучено, командата кориÑтена за Ñправување Ñо „aim“ адреÑи. "aim" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "aim" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "aim" URLs тодорхойлогч Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол "aim" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ. "aim" URL करीता हॅनà¥à¤¡à¤²à¤° "aim" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «aim»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «aim»-URLer, hvis aktivert. "aim" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "aim" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "aim" URL's afhandelt De opdracht voor het afhandelen van "aim"-URL's, indien ingeschakeld Handsamar av «aim»-adresser Kommandoen som tek hand om «aim»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "aim" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "aim" , ge eba di kgontÅ¡hitÅ¡we. "ଲକà­à¬·à­à¬¯" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "ଲକà­à¬·à­à¬¯" URLs ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "aim" URL ਲਈ ਹੈਂਡਲਰ ਕਮਾਂਡ ਲਾਈਨ "aim" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ, ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ। ObsÅ‚uga adresu URL typu "aim" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "aim". O manipulador de URLs "aim" O comando utilizado para manipular URLs "aim", se activo. O manipulador para URLs "aim" O comando usado para manipular URLs "aim", se habilitado. Programul asociat adreselor „aim†Comanda asociată adreselor „aim†la activare. Обработчик URL типа "aim" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "aim", еÑли ключ уÑтановлен Obslužný program pre URL "aim" Príkaz použitý na obsluhovanie URL "aim", ak je povolené. RoÄnik naslovov URL "aim" Ukaz za upravljanje z naslovi "aim", ko je možnost omogoÄena. Trajtuesi i URLve "aim" Komanda e përdorur për të trajtuar URLtë "aim", nëse aktive. Руковаоц „aim“ адреÑама Ðаредба коришћена за баратање „aim“ адреÑама, ако је укључено. Rukovaoc „aim“ adresama Naredba korišćena za baratanje „aim“ adresama, ako je ukljuÄeno. Hanteraren för "aim"-URL:er Kommandot som används för att hantera "aim"-URL:er, om aktiverat. "aim" கையாளà¯à®µà®¤à®±à¯à®•ான URL "aim" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "à°—à±à°°à°¿à°šà±‚à°šà±à°Ÿà°¨à±" ఉపయోగించà±à°Ÿ కొరకౠURLs "à°—à±à°°à°¿à°šà±‚à°šà±" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด aim คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด aim (ถ้าเปิดใช้) "aim" URL'leri için iÅŸleyici EÄŸer etkinse, "aim" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "aim" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "aim". Bá»™ xá»­ lý cho URL « aim » Lệnh được dùng để xá»­ lý các URL kiểu « aim », nếu bật. Isikhombisi se-"aim" URLs Umyalelo osetyenziswayo ukukhombisa "aim" URLs, ukuba wenziwe ukuba asebenze. 处ç†â€œaimâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œaimâ€URLs 的命令。 沒有處ç†â€œaimâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œaimâ€URL 的指令。 沒有處ç†â€œaimâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œaimâ€URL 的指令。 Umphathi we "aim" URLs Umlayezo osetshenziswa ukuphatha "aim" URLs, uma igunyaziwe. /schemas/desktop/gnome/url-handlers/aim/needs_terminal /desktop/gnome/url-handlers/aim/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/callto/enabled /desktop/gnome/url-handlers/callto/enabled gnome bool true Whether the specified command should handle "callto" URLs True if the command specified in the "command" key should handle "callto" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "callto" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "callto". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «callto» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «callto». Ці пазначаны загад апрацоўвае URL "callto" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "callto". Дали избраната програма да обработва адреÑи от вида „callto“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „callto“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "callto" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "callto" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "callto" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "callto" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «callto» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «callto». Si l'orde especificada hauria de gestionar els URL «callto» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «callto». Jestli má urÄený příkaz obsluhovat URL „callto“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „callto“. A ddylai'r gorchymyn penodedig ymdrin â LAU "callto" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "callto". Om den specificerede kommando skal hÃ¥ndtere "callto"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "callto"-adresser. Soll der angegebene Befehl »callto«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »callto«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "callto" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "callto" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "callto" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "callto" URLs. Whether the specified command should handle "callto" URLs True if the command specified in the "command" key should handle "callto" URLs. Whether the specified command should handle "callto" URLs True if the command specified in the "command" key should handle "callto" URLs. Indica si el comando especificado debe manipular los URL "callto" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "callto". Kas määratud käsk peaks käsitlema "callto" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "callto" URLe. Hemen zehaztutako komandoak "callto" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "callto" URLak kudeatuko baditu. Käsitteleekö annettu komento â€calltoâ€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€calltoâ€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « callto » Indique si le programme indiqué à la clé « command » gère les URLs « callto ». Indica se a orde especificada debe manipular os URL "callto" É true se a orde especificada na chave "command" debe manipular os URL "callto". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "callto" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "callto" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "callto" URLs True if the command specified in the "command" key should handle "callto" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "callto" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "callto" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "callto" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "callto" URL-ovima. A megadott parancs kezelje-e a „callto†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „callto†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "callto" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "callto". Indica se il comando specificato deve gestire gli URL "callto" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "callto". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ URL "callto" を処ç†ã™ã‚‹ã‹ã©ã†ã‹ URL "callto" を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"callto" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "callto" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "callto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "callto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "callto" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "callto" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „callto“ adresus Nustatykite teigiamai norÄ—dami, kad programa, nurodyta „command“ rakte, apdorotų „callto“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "callto" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "callto" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"callto" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"callto" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "callto" ny baiko voalaza Marina raha toa ka tokony hifehy URL "callto" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "callto" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „callto“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "callto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "callto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. СонгоÑон тушаал "callto" URLs-г авч үзÑÑ… ÑÑÑÑ… Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал »command« түлхүүр "callto" URLs-г авч үзÑхийгзаана. सूचित आदेशने "callto" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "callto" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «callto»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «callto»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "callto" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "callto" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "callto"-URL's dient af te handelen. Waar indine de opdracht aangegeven in de sleutel: "command", "callto"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «callto»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «callto»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "callto" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "callto". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ଡାକରା" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି। ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "ଡାକରା" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "callto" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "callto" URL ਨੂੰ ਵਰਤ ਸਕੇ| OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "callto" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "callto". Se o comando especificado deverá manipular URLs "callto" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "callto". Se o comando especificado deve manipular URLs "callto" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "callto". Specifică dacă programul ales va fi asociat adreselor „callto†La activare, comanda specificată în cheia „command†va fi asociată adreselor „calltoâ€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа "callto" ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа "callto". ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "callto" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "callto". Ali naj naveden ukaz upravlja z naslovi URL "callto" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "callto". Nëse komanda e caktuar duhet të trajtojë URLtë "callto" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "callto". Да ли наведена наредба треба да Ñе кориÑти за „callto“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „callto“ адреÑе. Da li navedena naredba treba da se koristi za „callto“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „callto“ adrese. Huruvida det angivna kommandot ska hantera "callto"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "callto"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "callto" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "aim" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "పిలà±à°ªà±à°•à±" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "పిలà±à°ªà±à°•à±" మీట ఉపయోగించవలెనౠ" URLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด callto ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด callto Belirtilen komutun "callto" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" da belirtilen programın "callto" URL'lerini iÅŸletmesi için ayalalanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "callto" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "callto". Lệnh được xác định có nên xá»­ lý URL « callto » (gợi đến) hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « callto » (gợi đến). Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"callto" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"callto" URLs. 指定的命令是å¦åº”处ç†â€œcalltoâ€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œcalltoâ€URLs。 指定的指令應å¦è™•ç†â€œcalltoâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)中的指令為處ç†ã€Œcalltoã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œcalltoâ€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)中的指令為處ç†ã€Œcalltoã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "callto" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "callto" URLs. /schemas/desktop/gnome/url-handlers/callto/command /desktop/gnome/url-handlers/callto/command gnome string gnomemeeting -c %s The handler for "callto" URLs The command used to handle "callto" URLs, if enabled. Die hanteerder vir "callto"-URL'e Die opdrag vir hantering van "callto"-URL'e, indien geaktiveer. معالج عناوين "callto" الأمر المستخدم لمعالجة عناوين "callto"ØŒ ÙÙŠ حال تمكينها. "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «callto» El comandu usáu pa remanar les URLs «callto», si ta habilitáu. Ðпрацоўшчык URL "callto" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "callto" (аддаленых выклікаў) , калі уключанае. Програма за обработка на адреÑи от вида „callto“ Програмата обработка на адреÑи от вида „callto“, ако е включена. "callto" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "callto" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "callto" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "callto" URL-ovima Naredba koja se koristi za "callto" URL-ove, ako je omogućeno. El gestor per a els URL «callto» L'ordre utilitzada per a gestionar URL «callto», si estan habilitades. El gestor per a els URL «callto» L'orde utilitzada per a gestionar URL «callto», si estan habilitades. Obsluha pro URL „callto“ Příkaz používaný pro obsluhu URL „callto“, je-li povolen. Y trinydd ar gyfer LAU "callto" Y gorchymyn a ddefnyddir i ymdrin â LAU "callto", os yn alluog. HÃ¥ndtering af "callto"-adresser Kommandoen der bruges til at hÃ¥ndtere "callto"-adresser, hvis aktiveret. Der Handler für »callto«-URLs Der zum Handhaben von »callto«-URLs verwendete Befehl, falls aktiviert. "callto" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "callto" ཡུ་ཨར་ཨེལ་ཨེསི་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "callto" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "callto" URLs, αν ενεÏγοποιηθεί. The handler for "callto" URLs The command used to handle "callto" URLs, if enabled. The handler for "callto" URLs The command used to handle "callto" URLs, if enabled. El manipulador para los URL "callto" El comando usado para manipular los URL "callto", si están activados. "callto" URLi käsitleja Käsk "callto" URLide käsitlemiseks, kui lubatud. "callto" URLen kudeatzailea "callto" URLak kudeatzeko komandoa, gaituta egonez gero. â€calltoâ€-URL:ien käsittelykomento â€calltoâ€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « callto » Si vrai, le programme qui gère les URLs « callto ». O manipulador dos URL "callto" A orde usada para manipular os URL "callto", se está activada. "callto" URL માટે નિયંતà«àª°àª• "callto" URL ને નિયંતà«àª°àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "callto" URLs The command used to handle "callto" URLs, if enabled. "callto" URLs के लिये नियंतà¥à¤°à¤• "callto" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "callto" URL-ove Naredba koja se koristi za rukovanje "callto" URL-ovima, ako je omogućena. „callto†URL címek kezelÅ‘je A „callto†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "callto" Perintah untuk menangani URL "callto", jika diaktifkan. Gestore di URL "callto" Il comando usato per gestire gli URL "callto", se abilitati. URL "callto" ã® å‡¦ç† "callto" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "callto" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"callto" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "callto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "callto" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "callto" URLì— ëŒ€í•œ 핸들러 "callto" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „callto“ užklausas Komanda naudojama apdoroti „callto“ URL, jeigu įjungta. "callto" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "callto" URL,ja ieslÄ“gta. "callto" URLs क' लेल नियंतà¥à¤°à¤• "callto" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "callto" Ny baiko omena hifehezana URL "callto", raha alefa. Справувачот за "callto" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „callto“ адреÑи. "callto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "callto" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "callto" URLs-н тодорхойлогч Тушаал Ñ…ÑÑ€Ñв нÑÑлттÑй бол "callto" URL авч үзÑÑ…Ñд Ñ…ÑÑ€ÑглÑгдÑнÑ. "callto" URL करीता हॅनà¥à¤¡à¤²à¤° "callto" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «callto»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «callto»-URLer, hvis aktivert. "callto" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "callto" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "callto" URL's afhandelt De opdracht voor het afhandelen van "callto"-URL's, indien ingeschakeld Handsamar av «callto»-adresser Kommandoen som tek hand om «callto»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "callto" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "callto", ge eba di kgontÅ¡hitÅ¡we. "ଡାକରା" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "ଡାକରା" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿà¥¤ "callto" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "callto" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "callto" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "callto". O manipulador de URLs "callto" O comando utilizado para manipular URLs "callto", se activo. O manipulador para URLs "callto" O comando usado para manipular URLs "callto", se habilitado. Programul asociat adreselor „callto†Comanda asociată adreselor „callto†la activare. Обработчик URL типа "callto" Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа "callto", еÑли ключ уÑтановлен Obslužný program pre URL "callto" Príkaz použitý na obsluhovanie URL "callto", ak je povolené. RoÄnik naslovov URL "callto" Ukaz za upravljanje z naslovi "callto", ko je možnost omogoÄena. Trajtuesi i URLve "callto" Komanda e përdorur për të trajtuar URLtë "callto", nëse aktive. Руковаоц „callto“ адреÑама Ðаредба коришћена за баратање „callto“ адреÑама, ако је укључено. Rukovaoc „callto“ adresama Naredba korišćena za baratanje „callto“ adresama, ako je ukljuÄeno. Hanteraren för "callto"-URL:er Kommandot som används för att hantera "callto"-URL:er, om aktiverat. "callto"கையாளà¯à®µà®¤à®±à¯à®•ான URL "callto" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "పిలà±à°ªà±à°•à±" ఉపయోగించà±à°Ÿ కొరకౠURLs "పిలà±à°ªà±à°•à±" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด callto คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด callto (ถ้าเปิดใช้) "callto" URL'leri için iÅŸleyici EÄŸer etkinse, "callto" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "callto" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "callto". Bá»™ xá»­ lý cho URL « callto » (gợi đến) Lệnh được dùng để xá»­ lý các URL kiểu « callto » (gá»i đến), nếu bật. Isikhombisi se-"callto" URLs Umyalelo osetyenziswayo ukukhombisa u- "callto" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œcalltoâ€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œcalltoâ€URLs 的命令。 處ç†â€œcalltoâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œcalltoâ€URL 的指令。 處ç†â€œcalltoâ€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œcalltoâ€URL 的指令。 Umphathi we "callto" URLs Umlayezo osetshenziswa ukuphatha "callto" URLs, uma igunyaziwe. /schemas/desktop/gnome/url-handlers/callto/needs_terminal /desktop/gnome/url-handlers/callto/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. /schemas/desktop/gnome/url-handlers/h323/enabled /desktop/gnome/url-handlers/h323/enabled gnome bool true Whether the specified command should handle "h323" URLs True if the command specified in the "command" key should handle "h323" URLs. Ùيما إذا كان على الأمر المحدّد معالجة عناوين "h323" إضبط لـtrue إذا كان على الأمر المحدّد ÙÙŠ Ø§Ù„Ù…ÙØªØ§Ø­ "command" معالجة عناوين "h323". উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à§° দà§à¦¬à¦¾à§°à¦¾ "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ কৰা হবে কিনা "command" কি'à§° দà§à¦¬à¦¾à§°à¦¾ "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ হলে মান true (সতà§à¦¯) । Conseña si'l comandu especificáu tien de remanar les URLs «h323» Afitar a «true» si'l programa especificáu na clave «comandu» tendría de remanar les URLs «h323». Ці пазначаны загад апрацоўвае URL "h323" ІÑьціна калі загад пазначаны у ключы "command" муÑіць апрацоўваць URL "h323". Дали избраната програма да обработва адреÑи от вида „h323“ ИÑтина, ако програмата в ключа „command“ ще обÑлужва адреÑи от вида „h323“. উলà§à¦²à§‡à¦–িত কমানà§à¦¡ দà§à¦¬à¦¾à¦°à¦¾ "h323" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে কিনা যদি "command" কী তে নিরà§à¦§à¦¾à¦°à¦¿à¦¤ কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে "h323" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ উলà§à¦²à¦¿à¦–িত কমানà§à¦¡à§‡à¦° দà§à¦¬à¦¾à¦°à¦¾ "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ করা হবে কিনা "command" কি'র দà§à¦¬à¦¾à¦°à¦¾ "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ হলে মান true (সতà§à¦¯)। Da li će navedena naredba rukovati "h323" URL-ovima Ako je postavljeno, naredba navedena u kljuÄu "command" će rukovati "h323" URL-ovima. Si l'ordre especificada hauria de gestionar els URL «h323» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «h323». Si l'orde especificada hauria de gestionar els URL «h323» Vertader si el programa especificat en la clau «command» hauria de gestionar els URL «h323». Jestli má urÄený příkaz obsluhovat URL „h323“ „True“, pokud má příkaz urÄený v klíÄi „command“ obsluhovat URL „h323“. A ddylai'r gorchymyn penodedig ymdrin â LAU "h323" Gwir os ddylai'r gorchymyn a benodir yn yr allwedd "command" ymdrin â LAU "h323". Om den specificerede kommando skal hÃ¥ndtere "h323"-adresser Sand hvis kommandoen angivet i "command"-nøglen hÃ¥ndterer "h323"-adresser. Soll der angegebene Befehl »h323«-URLs handhaben? Falls dieser Schlüssel wahr ist, handhabt das in »command« angegebene Programm »h323«-URLs. གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་གིས་ "h323" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོཔ་ཨིན་ན༠"command" ལྡེ་མིག་ནང་ གསལ་བཀོད་འབད་མི་ བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ "h323" ཡུ་ཨར་ཨེལ་ཨེསི་དེ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་དགོ Αν η καθοÏισμένη εντολή θα χειÏίζεται "h323" URLs ΟÏισμός σε true αν η εντολή που καθοÏίζεται στο "command" key θα Ï€Ïέπει να χειÏίζεται "h323" URLs. ð‘¢ð‘§ð‘žð‘¼ 𑞠ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "h323" URL𑟠ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘•ð‘ð‘§ð‘•ð‘¦ð‘“ð‘²ð‘› ð‘¦ð‘¯ 𑞠"command" ð‘’ð‘° ð‘–ð‘«ð‘› ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "h323" URLð‘Ÿ. Whether the specified command should handle "h323" URLs True if the command specified in the "command" key should handle "h323" URLs. Whether the specified command should handle "h323" URLs True if the command specified in the "command" key should handle "h323" URLs. Indica si el comando especificado debe manipular los URL "h323" Activar si el programa especificado en la clave "command" (comando) debería manipular los URL "h323". Kas määratud käsk peaks käsitlema "h323" URLe Tõene, kui "käsk" võtmes määratud käsk käsitleb "h323" URLe. Hemen zehaztutako komandoak "h323" URLak kudeatuko ditu. Ezarri egi gisa (true) "komandoa" gakoan zehaztutako komandoak "h323" URLak kudeatuko baditu. Käsitteleekö annettu komento â€h323â€-URL:eja Tosi, jos avaimessa â€command†annettu komento käsittelee â€h323â€-tyyppisiä URL:eja. Indique si la commande indiquée doit gérer les URL « h323 » Indique si le programme indiqué à la clé « command » gère les URLs « h323 ». Indica se a orde especificada debe manipular os URL "h323" É true se a orde especificada na chave "command" debe manipular os URL "h323". શà«àª‚ સà«àªªàª·à«àªŸ કરેલ આદેશ "h323" URL ને નિયંતà«àª°àª¿àª¤ કરે સાચà«àª‚ જો "command" કી માં સà«àªªàª·à«àªŸ કરેલ આદેશ "h323" URL ને નિયંતà«àª°àª¿àª¤ કરે. Whether the specified command should handle "h323" URLs True if the command specified in the "command" key should handle "h323" URLs. कà¥à¤¯à¤¾ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "h323" URLs का नियंतà¥à¤°à¤£ करना चाहिये सही अगर "command" कà¥à¤‚जी में निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमांड को "h323" URLs का नियंतà¥à¤°à¤£ करना चाहिये. Treba li specificirana naredba rukovati "h323" URL-ovima. Istina ako naredba specificirana u "command" kljuÄu treba rukovati "h323" URL-ovima. A megadott parancs kezelje-e a „h323†URL címeket Ha igazra van állítva, a „command†kulcsban beállított parancs kezeli a „h323†URL címeket. Apakah perintah yang diberikan dipakai untuk menangani URL "h323" Isikan nilai benar (true) apabila perintah pada kunci "command" dipakai untuk menangani URL "h323". Indica se il comando specificato deve gestire gli URL "h323" Impostare a VERO affinché il programma specificato nella chiave "command" gestisca gli URL "h323". 指定ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã§ "h323" ã® URL を処ç†ã™ã‚‹ã‹ã©ã†ã‹ "h323" ã® URL を処ç†ã™ã‚‹ã‚­ãƒ¼ "command" ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’指定ã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ დáƒáƒáƒ›áƒ£áƒ¨áƒáƒ•ებს თუ áƒáƒ áƒ მითითებული ბრძáƒáƒœáƒ”ბრ"h323" ტიპის URL-ებს ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ მითითებული ბრძáƒáƒœáƒ”ბრ"command" კáƒáƒ“ში áƒáƒ›áƒ£áƒ¨áƒáƒ•ებს "h323" URL-ებს. ಸೂಚಿಸಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "https" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆ "h323" URLs "ಆಜà³à²žà³†" ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾಗಿರà³à²µ ಆಜà³à²žà³†à²¯à³ "h323" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಬೇಕೆಂದಿದà³à²¦à²²à³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³† . 지정한 명령어로 "h323" URLì„ ì²˜ë¦¬í•  ì§€ 여부 ì°¸ì´ë©´ "command" í‚¤ì— ì§€ì •í•œ 명령어로 "h323" URLì„ ì²˜ë¦¬í•©ë‹ˆë‹¤. Ar nurodyta programa turÄ—tų apdoroti „h323“ adresus Nustatykite į teigiamÄ… reikÅ¡mÄ™ jei norite, kad programa, nurodyta „command“ rakte, apdorotų „h323“ adresus. Vai norÄdÄ«tai komandai nepiecieÅ¡ams apieties ar "h323" URL Patiess, ja komandai norÄdÄ«tai "komanda" atslÄ“gÄ vajadzÄ“tu apieties ar "h323" URL. की निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"h323" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही सही जठ"command" कà¥à¤à¤œà¥€ मे निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ कमाणà¥à¤¡ केठ"h323" URLs क' नियंतà¥à¤°à¤£ कà¤à¤¨à¤¾à¤‡ चाही. Raha tokony hifehy URL "h323" ny baiko voalaza Marina raha toa ka tokony hifehy URL "h323" ny baiko voalaza ao amin'ny famaha "command". Дали наведената команда да Ñе Ñправи Ñо "h323" URL Точно ако одредената команда во клучот „команда“ треба да Ñе Ñправува Ñо „h323“ адреÑи. പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "h323" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ‹ à´Žà´¨àµà´¨àµ "command" കീയിലàµâ€ പറഞàµà´žà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ "h323" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯à´£à´®àµ†à´™àµà´•à´¿à´²àµâ€, à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. सूचित आदेशने "h323" URL हाताळावे की नाही "command" मधà¥à¤¯à¥‡ वरà¥à¤£à¤¿à¤¤ आजà¥à¤žà¤¾à¤µà¤²à¥€ "h323" URL ला सूचित करीत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Om oppgitt kommando skal hÃ¥ndtere «h323»-URLer True hvis programmet oppgitt i «command»-nøkkelen skal hÃ¥ndtere «h323»-URLer. निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ गरिà¤à¤•ो आदेशले "h323" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› या परà¥à¤¦à¥ˆà¤¨ यदि "command" कà¥à¤žà¥à¤œà¥€à¤®à¤¾ निदिषà¥à¤Ÿ गरिà¤à¤•ो आदेशले "h323" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Of de aangegeven opdracht "h323"-URL's dient af te handelen. Waar indien de opdracht aangegeven in de sleutel: "command", "h323"-URL's dient af te handelen. Om den oppgjevne kommandoen skal handsama «h323»-adresser Sett til sann for Ã¥ la programmet i nøkkelen «command» handsama «h323»-adresser. Ge eba taelo e laeditÅ¡wego e swanetÅ¡e go swaragana le di-STS tÅ¡a "h323" Ke thereÅ¡o gore ge taelo e laeditÅ¡we go "command" senotlelo se swanetÅ¡e go swaragana le di-STS tÅ¡a "h323". ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "h323" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବା ଉଚିତ କି। ସତ ହେଲେ, "ନିରà­à¬¦à­à¬¦à­‡à¬¶" ଚାବିରେ ଉଲà­à¬²à­‡à¬–ିତ ନିରà­à¬¦à­à¬¦à­‡à¬¶ "à¬à¬šà­323" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠବà­à¬¯à¬¬à¬¹à­ƒà¬¤ ହେବ। ਕੀ ਦਿੱਤੀ ਕਮਾਂਡ ਨੂੰ "h323" URL ਨੂੰ ਹੈਂਡਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਸਹੀ ਕਰ ਦਿਉ ਤਾਂ ਕਿ ਕਾਰਜ, ਜੋ ਕਿ "command(ਕਮਾਂਡ)" ਵਿੱਚ ਦਿੱਤਾ, "h323" URL ਨੂੰ ਵਰਤ ਸਕੇ। OkreÅ›la, czy podane polecenie ma obsÅ‚ugiwać adresy URL typu "h323" OkreÅ›la, czy program podany w kluczu "command" ma obsÅ‚ugiwać adresy URL typu "h323". Se o comando especificado deverá manipular URLs "h323" Verdadeiro se o comando especificado na chave "command" deverá manipular URLs "h323". Se o comando especificado deve manipular URLs "h323" Verdadeiro se o comando especificado na chave "command" (comando) deve manipular URLs "h323". Specifică dacă programul ales va fi asociat adreselor „h323†La activare, comanda specificată în cheia „command†va fi asociată adreselor „h323â€. Будет ли ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обрабатывать ÑÑылки (URL) типа h323 ЕÑли Ñтот ключ уÑтановлен, то программа, Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð² ключе "command", будет обрабатывать ÑÑылки (URL) типа h323. ÄŒi má zadaný príkaz obsuhovaÅ¥ URL "h323" True, ak program zadaný v kľúÄi "command" by mal obsluhovaÅ¥ URL "h323". Ali naj naveden ukaz upravlja z naslovi URL "h323" Ali naj ukaz naveden v kljuÄu "command" upravlja z naslovi URL "h323". Nëse komanda e caktuar duhet të trajtojë URLtë "h323" E vërtetë nëse komanda e përcaktuar tek kyçi "komanda" duhet të trajtojë URLtë "h323". Да ли наведена наредба треба да Ñе кориÑти за „h323“ адреÑе. Укључено ако наредба наведена у кључу „command“ треба да Ñе кориÑти за „h323“ адреÑе. Da li navedena naredba treba da se koristi za „h323“ adrese. UkljuÄeno ako naredba navedena u kljuÄu „command“ treba da se koristi za „h323“ adrese. Huruvida det angivna kommandot ska hantera "h323"-URL:er Sant om kommandot som är angivet i nyckeln "command" ska hantera "h323"-URL:er. கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "h323" URL ஠கையாளà¯à®®à®¾ உணà¯à®®à¯ˆ, "command" விசையில௠கà¯à®±à®¿à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ கடà¯à®Ÿà®³à¯ˆ "h323" URL ஠கையாளà¯à®®à¯†à®©à®¿à®²à¯. "h323" URLs అయిననౠనిరà±à°¥à±‡à°¶à°¿à°‚పబడిన ఆదేశం ఉపయోగించవలెనౠ"ఆదేశం" లో నిరà±à°¥à±‡à°¶à°¿à°‚చిబడిన ఆదేశం ఒకవేళ నిజమౠà°à°¤à±‡ "h323" మీట ఉపయోగించవలెనౠURLs. à¸à¸³à¸«à¸™à¸”ให้คำสั่งนี้จัดà¸à¸²à¸£ URL ชนิด h323 ตั้งเป็นค่าจริงถ้าต้องà¸à¸²à¸£à¹ƒà¸«à¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¸„ีย์ "command" จัดà¸à¸²à¸£ URL ชนิด h323 Belirtilen komutun "h323" URL'lerini iÅŸlemesi EÄŸer seçiliyse, "command" de belirtilen programın "h323" URL'lerini iÅŸletmek için ayarlanır. Чи повинна вказана команда оброблÑти поÑиланнÑ(URL) типу "h323" Якщо команда вказана у ключі "command", програма буде оброблÑти поÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) типу "h323". Lệnh được xác định có nên xá»­ lý URL « h323 » hay không Äúng nếu lệnh được xác định trong khóa « lệnh » nên xá»­ lý các URL « h323 ». Nokuba ngaba umyalelo obaluliweyo kufuneka ukhombise i-"h323" URLs Yinyani ukuba umyalelo obaluliweyo kwiqhosha "command" kufuneka ukhombise u-"h323" URLs. 指定的命令是å¦åº”处ç†â€œh323â€URLs 设为 true å¯åœ¨â€œcommandâ€é”®ä¸­æŒ‡å®šä¸€ä¸ªç¨‹åºæ¥å¤„ç†â€œh323â€URLs。 指定的指令應å¦è™•ç†â€œh323â€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œh323ã€URL 的程å¼ã€‚ 指定的指令應å¦è™•ç†â€œh323â€URL 如設定為「TRUEã€ï¼Œåœ¨ã€Œcommandã€(指令)欄中的指令為處ç†ã€Œh323ã€URL 的程å¼ã€‚ Noma umlayezo oshiwo ungaphatha "h323" URLs Iqiniso uma umlayezo oshiwo ku nkinombo "command" ungaphatha "h323" URLs. /schemas/desktop/gnome/url-handlers/h323/command /desktop/gnome/url-handlers/h323/command gnome string gnomemeeting -c %s The handler for "h323" URLs The command used to handle "h323" URLs, if enabled. Die hanteerder vir "h323"-URL'e Die opdrag vir hantering van "h323"-URL'e, indien geaktiveer. معالج عناوين "h323" الأمر المستخدم لمعالجة عناوين "h323"ØŒ ÙÙŠ حال تمكينها. "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à§° সকà§à§°à¦¿à§Ÿ কৰা হলে, "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡ । El remanador pa les URLs «h323» El comandu usáu pa remanar les URLs «h323», si tan activaes. Ðпрацоўшчык URL "h323" Загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– URL "h323" (відÑаканфÑÑ€ÑнцыÑ), калі уключанае. Програма за обработка на адреÑи от вида „h323“ Програмата за обработка на адреÑи от вида „h323“, ако е включена. "h323" URL-র জনà§à¦¯ হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° যদি সকà§à¦°à¦¿à§Ÿ থাকে, à¦à¦‡ কমানà§à¦¡à¦Ÿà¦¿ "h323" URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦²à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হয়। "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° হà§à¦¯à¦¾à¦¨à§à¦¡à¦²à¦¾à¦° সকà§à¦°à¦¿à§Ÿ করা হলে, "h323" URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦ªà¦¨à¦¾à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কমানà§à¦¡à¥¤ Rukovatelj "h323" URL-ovima Naredba koja se koristi za "h323" URL-ove, ako je omogućeno. El gestor per a els URL «h323» L'ordre utilitzada per a gestionar URL «h323», si estan habilitades. El gestor per a els URL «h323» L'orde utilitzada per a gestionar URL «h323», si estan habilitades. Obsluha pro URL „h323“ Příkaz používaný pro obsluhu URL „h323“, je-li povolen. Y trinydd ar gyfer LAU "h323" Y gorchymyn a ddefnyddir i ymdrin â LAU "h323", os yn alluog. HÃ¥ndtering af "h323"-adresser Kommandoen der bruges til at hÃ¥ndtere "h323"-adresser, hvis aktiveret. Der Handler für »h323«-URLs Der zum Handhaben von »h323«-URLs verwendete Befehl, falls aktiviert. "h323" ཡུ་ཨར་ཨེལ་ཨེསི་གི་དོན་ལུ་ ལེགས་སà¾à¾±à½¼à½„་པ༠ལྕོགས་ཅན་བཟོ་བ་ཅིན་ "h323" ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་དོན་ལུ་ ལག་ལེན་འà½à½–་མི་བརྡ་བཀོད༠Το Ï€ÏόγÏαμμα χειÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± "h323" URLs Η εντολή που χÏησιμοποιείται για το χειÏισμό "h323" URLs, αν ενεÏγοποιηθεί. 𑞠ð‘£ð‘¨ð‘¯ð‘›ð‘¤ð‘¼ ð‘“𑹠"h323" URL𑟠𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ "h323" URLð‘Ÿ, ð‘¦ð‘“ ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘›. The handler for "h323" URLs The command used to handle "h323" URLs, if enabled. The handler for "h323" URLs The command used to handle "h323" URLs, if enabled. El manipulador para los URL "h323" El comando usado para manipular los URL "h323", si están activados. "h323" URLi käsitleja Käsk "h323" URLide käsitlemiseks, kui lubatud. "h323" URLen kudeatzailea "h323" URLak kudeatzeko komandoa, gaituta egonez gero. â€h323â€-URL:ien käsittelykomento â€h323â€-tyyppiset URL:t käsittelevä komento, jos käytössä. Le gestionnaire d'URLs « h323 » Si vrai, le programme qui gère les URLs « h323 ». O manipulador dos URL "h323" A orde usada para manipular os URL "h323", se está activada. "h323" URL માટે નિયંતà«àª°àª• "H323" URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ, જો સકà«àª°àª¿àª¯ હોય. The handler for "h323" URLs The command used to handle "h323" URLs, if enabled. "h323" URLs के लिये नियंतà¥à¤°à¤• "h323" URLs के नियंतà¥à¤°à¤£ के लिये पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमांड, अगर सकà¥à¤°à¤¿à¤¯ किया गया. Rukovatelj za "h323" URL-ove Naredba koja se koristi za rukovanje "h323" URL-ovima, ako je omogućena. „h323†URL címek kezelÅ‘je A „h323†URL címek kezelésére használt parancs, ha engedélyezve van. Penangan untuk URL "h323" Perintah untuk menangani URL "h323", jika diaktifkan. Gestore di URL "h323" Il comando usato per gestire gli URL "h323", se abilitati. "h323" ã® URL ã®å‡¦ç† "h323" ã® URL を処ç†ã™ã‚‹éš›ã«ä½¿ç”¨ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã§ã™ (ä»»æ„)。 დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•ებელი "h323" URL-ებისთვის დáƒáƒ›áƒ£áƒ¨áƒáƒ•ების ბრძáƒáƒœáƒ”ბრ"h323" URL-ებისთვის, თუ ჩáƒáƒ áƒ—ულიáƒ. "h323" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸà³à²µà²µ ಶಕà³à²¤à²—ೊಂಡಲà³à²²à²¿, ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ "h323" URLಗಳನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾಗà³à²¤à³à²¤à²¦à³†. "h323" URLì— ëŒ€í•œ 핸들러 "h323" URLì„ ì²˜ë¦¬í•  경우 사용할 명령. Programa, kuriai perduoti „h323“ užklausas Komanda naudojama apdoroti „h323“ URL, jei įjungta. "h323" URL apstrÄdÄtÄjs Komanda, kas tiek izmantota apejoties ar "h323" URL,ja ieslÄ“gta. "h323" URLs क' लेल नियंतà¥à¤°à¤• "h323" URLs क' नियंतà¥à¤°à¤£ क' लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाणà¥à¤¡, जठसकà¥à¤°à¤¿à¤¯ कà¤à¤² गेल. Ny mpifehy URL "h323" Ny baiko omena hifehezana URL "h323", raha alefa. Справувачот за "h323" URL Ðко·е·вклучено,·командата·кориÑтена·за·Ñправување·Ñо „h323“ адреÑи. "h323" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´µà´¾à´¨àµà´³à´³ സംവിധാനം à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨ സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€ "h323" URL കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚. "h323" URL करीता हॅनà¥à¤¡à¤²à¤° "h323" URL हातालणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असणारी आजà¥à¤žà¤¾à¤µà¤²à¥€, जर कारà¥à¤¯à¤°à¤¤ असेल तर. HÃ¥ndterer for «h323»-URLer Kommando som brukes til Ã¥ hÃ¥ndtere «h323»-URLer, hvis aktivert. "h323" URLs का लागि हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤²à¤° यदि सकà¥à¤·à¤® पारिà¤à¤®à¤¾, "h323" URLs हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤— गरिने आदेश । Het programma dat "h323" URL's afhandelt De opdracht voor het afhandelen van "h323"-URL's, indien ingeschakeld Handsamar av «h323»-adresser Kommandoen som tek hand om «h323»-adresser, dersom slÃ¥tt pÃ¥. Seswari sa di-STS tÅ¡a "h323" Taelo e diriÅ¡editÅ¡wego go swaragana le di-STS tÅ¡a "h323", ge eba di kgontÅ¡hitÅ¡we. "à¬à¬š323" à­Ÿà­.ଆର.à¬à¬². ପାଇଠଚାଳକ "h323" à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶, ଯଦି ସକà­à¬°à¬¿à­Ÿ. "h323" URL ਲਈ ਹੈਂਡਲਰ ਜੇਕਰ ਯੋਗ ਕੀਤਾ ਤਾਂ ਕਮਾਂਡ ਲਾਈਨ "h323" URL ਨੂੰ ਹੈਂਡਲ ਕਰੇਗੀ। ObsÅ‚uga adresu URL typu "h323" Jeżeli włączone, polecenie używane do obsÅ‚ugi adresów URL typu "h323". O manipulador de URLs "h323" O comando utilizado para manipular URLs "h323", se activo. O manipulador para URLs "h323" O comando usado para manipular URLs "h323", se habilitado. Programul asociat adreselor „h323†Comanda asociată adreselor „h323†la activare. Обработчик URL типа h232 Команда, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ URL типа h323, еÑли ключ уÑтановлен Obslužný program pre URL "h323" Príkaz použitý na obsluhovanie URL "h323", ak je povolené. RoÄnik naslovov URL "h323" Ukaz za upravljanje z naslovi "h323", ko je možnost omogoÄena. Trajtuesi i URLve "h323" Komanda e përdorur për të trajtuar URLtë "h323", nëse aktive. Руковаоц „h323“ адреÑама Ðаредба коришћена за баратање „h323“ адреÑама, ако је укључено. Rukovaoc „h323“ adresama Naredba korišćena za baratanje „h323“ adresama, ako je ukljuÄeno. Hanteraren för "h323"-URL:er Kommandot som används för att hantera "h323"-URL:er, om aktiverat. "h323" கையாளà¯à®µà®¤à®±à¯à®•ான URL "h323" ஠கையாள பயனà¯à®ªà®Ÿà¯à®®à¯ URL செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ "h323" ఉపయోగించà±à°Ÿ కొరకౠURLs "h323" ఆదేశం వాడà±à°Ÿà°•ౠఉపయోగించà±à°Ÿà°•à± URLs, ఒకవేళ à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à±€à°•రించితే. คำสั่งจัดà¸à¸²à¸£ URL ชนิด h323 คำสั่งสำหรับจัดà¸à¸²à¸£ URL ชนิด h323 (ถ้าเปิดใช้) "h323" URL'leri için iÅŸleyici EÄŸer etkinse, "h323" URL'lerinin iÅŸlemek için kullanılacak komut. Обробник URL типу "h323" Якщо ввімкнено, команда викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ URL типу "h323". Bá»™ xá»­ lý cho URL « h323 » Lệnh được dùng để xá»­ lý các địa chỉ Mạng kiểu « h323 », nếu bật. Isikhombisi se-"h323" URLs Umyalelo osetyenziselwa ukukhombisa u- "h323" URLs, ukuba wenziwe ukuba usebenze. 处ç†â€œH323â€URLs çš„ç¨‹åº è‹¥å¯ç”¨çš„è¯ï¼Œç”¨äºŽå¤„ç†â€œH323â€URLs 的命令。 處ç†â€œh323â€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œh323â€URL 的指令。 處ç†â€œh323â€URL 的處ç†ç¨‹åº 若有啟用,用來處ç†â€œh323â€URL 的指令。 Umphathi we "h323" URLs Umlayezo osetshenziswa ukuphatha "h323" URLs, uma ingunyaziwe. /schemas/desktop/gnome/url-handlers/h323/needs_terminal /desktop/gnome/url-handlers/h323/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Laat die program in 'n terminaal loop شغّل الأمر ÙÙŠ طرÙية إضبط لـtrue إذا كان على الأمر المستخدم لمعالجة هذا النوع من العناوين العمل ÙÙŠ شاشة طرÙية. টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধৰনেৰ URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•াৰী কমানà§à¦¡ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯) । Executar el comandu nún terminal Afitar a «true» si'l programa que remana esta URL tien d'executase nún terminal. Выканаць загад у Ñ‚Ñрмінале ІÑьціна калі загад Ð´Ð»Ñ Ð°Ð¿Ñ€Ð°Ñ†Ð¾ÑžÐºÑ– гÑтага тыпу URL муÑіць выконвацца Ñž Ñ‚Ñрмінале. ПуÑкане на програмата в терминал ИÑтина, ако програмата, коÑто ще обÑлужва този вид адреÑи, трÑбва да бъде изпълнена в терминал. কমানà§à¦¡à¦Ÿà¦¿ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ চালান যে কমানà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে ঠধরনের URL হà§à¦¯à¦¾à¦¨à§à¦¡à§‡à¦² করা হবে তা যদি টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡ রান করা হয় তবে à¦à¦° মান সতà§à¦¯à¥¤ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ কমানà§à¦¡ চালানো হবে à¦à¦‡ ধরনের URL বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦•ারী কমানà§à¦¡ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡ চালানো হলে মান true (সতà§à¦¯)। Pokreni naredbu u terminalu Ako je postavljeno, naredba koja rukuje ovim tipom URL-a će se pokrenuti u terminalu. Executa l'ordre en un terminal Vertader si el programa per a gestionar aquest URL hauria d'executar-se en un terminal. Executa l'orde en un terminal Vertader si el programa per a gestionar este URL hauria d'executar-se en un terminal. Spustit příkaz v terminálu „True“, pokud by mÄ›l být program používaný pro obsluhu tohoto typu URL spouÅ¡tÄ›n v terminálu. Rhedeg y gorchymyn mewn terfynell Gwir os dylid rhedeg y gorchymyn sy'n delio â'r math yma o LAU mewn terfynell. Kør kommandoen i en terminal Sand hvis kommandoen til at hÃ¥ndtere denne adresse skal køres i en terminal. Den Befehl in einem Terminal ausführen Falls dieser Schlüssel wahr ist, wird das Programm, dass diesen URL-Typ handhaben soll, in einem Terminal ausgeführt. བརྡ་བཀོད་དེ་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ༠དབྱེ་བ་འདི་བཟུམ་གྱི་ ཡུ་ཨར་ཨེལ་ ལེགས་སà¾à¾±à½¼à½„་འà½à½–་ནིའི་བརྡ་བཀོད་དེ་ ངེས་བདེན་ཨིན་པ་ཅིན་ ཊར་མི་ནཱལ་ཅིག་ནང་ གཡོག་བཀོལ་་དགོ Εκτέλεση της εντολής σε τεÏματικό True αν το Ï€ÏόγÏαμμα για το χειÏισμό του URL θα Ï€Ïέπει να εκτελείται σε τεÏματικό. ð‘®ð‘³ð‘¯ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘‘ð‘®ð‘µ ð‘¦ð‘“ 𑞠ð‘’ð‘©ð‘¥ð‘­ð‘¯ð‘› ð‘¿ð‘•ð‘‘ ð‘‘ ð‘£ð‘¨ð‘¯ð‘›ð‘©ð‘¤ ð‘žð‘¦ð‘• ð‘‘ð‘²ð‘ ð‘ URL ð‘–ð‘«ð‘› ð‘šð‘° ð‘®ð‘³ð‘¯ ð‘¦ð‘¯ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. Ruli komandon en terminalo Estas vera, se la komando estas uzata por trakti tiun tipon de URL-o devu esti lanĉita en terminalo. Ejecutar el comando en un terminal Activar si el programa que manipula este URL debe ejecutarse en un terminal. Käivita käsk terminalis Tõene, kui käsku, mis määratud seda tüüpi URLide käsitlemiseks, tuleks käivitada terminalis . Exekutatu komandoa terminalean Egia (true) URL hau kudeatzeko programa terminal batean exekutatu behar bada. Suorita sovellus päätteessä Tosi, jos tämäntyyppisiä URL:eja käsittelevä ohjelma tulisi käynnistää päätteessä. Lancer le programme dans un terminal Vrai si le programme qui gère cette URL doit être lancée dans un terminal. Executar a orde nun terminal É true se a orde usada para manipular este tipo de URL debe ser executada nun terminal. આદેશને ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ કારà«àª¯àª•à«àª°àª® ચલાવો સાચà«àª‚ જો આ પà«àª°àª•ારના URL ને નિયંતà«àª°àª¿àª¤ કરવા માટેનો આદેશ ટરà«àª®àª¿àª¨àª²àª®àª¾àª‚ ચાલે. Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® टरà¥à¤®à¤¿à¤¨à¤² में चलाà¤à¤ सही यदि पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® जो इस पà¥à¤°à¤•ार के यूआरà¤à¤² को हैंडल करने का अभà¥à¤¯à¤¸à¥à¤¤ है उसे टरà¥à¤®à¤¿à¤¨à¤² में चलाया जाना चाहिये. Pokreni naredbu u treminalu Istina ako naredba koja se koristi za rukovanje ovim tipom URL-a, treba biti pokrenuta u terminalu. Parancs futtatása terminálban Ha igazra van állítva, a „command†kulcsban beállított parancsnak terminálban kell futnia. Menjalankan perintah pada terminal Isikan nilai benar (true) apabila perintah untuk menangani jenis URL ini harus dijalankan dalam terminal. Eseguire il comando in un terminale Impostare a VERO se il programma che gestisce questo tipo di URL deve essere eseguito in un terminale. 端末ã§ãƒ—ログラムを実行ã™ã‚‹ã‹ã©ã†ã‹ ã“ã®ç¨®é¡žã® URL を処ç†ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’端末内ã§å®Ÿè¡Œã™ã‚‹å ´åˆã¯ TRUE ã«ã—ã¾ã™ã€‚ ბრძáƒáƒœáƒ”ბის ტერმინáƒáƒšáƒ¨áƒ˜ შესრულებრჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ თუ ბრძáƒáƒœáƒ”ბრáƒáƒ› ტიპის URL-ების დáƒáƒ¡áƒáƒ›áƒ£áƒ¨áƒáƒ•ებლáƒáƒ“ ტერმინáƒáƒšáƒ¨áƒ˜ უნდრშესრულდეს. ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಒಂದೠಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸೠನಿಜ ಈ ಬಗೆಯ URL ಅನà³à²¨à³ ನಿಭಾಯಿಸಲೠಬಳಸಲಾದ ಆಜà³à²žà³†à²¯à²¨à³à²¨à³ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨à²²à³à²²à²¿ ಚಲಾಯಿಸಬೇಕೠಎಂದಾದಲà³à²²à²¿ ಇದೠನಿಜವಾಗà³à²¤à³à²¤à²¦à³†. 터미ë„ì—서 ëª…ë ¹ì„ ì‹¤í–‰í•©ë‹ˆë‹¤ ì°¸ì´ë©´ ì´ëŸ° ì¢…ë¥˜ì˜ URLì„ ì²˜ë¦¬í•˜ëŠ” í”„ë¡œê·¸ëž¨ì„ í„°ë¯¸ë„ì—서 실행합니다. Vykdyti komandÄ… terminale Teigiama, jei komanda naudojama apdoroti Å¡io tipo adresams turÄ—tų bÅ«ti paleidžiama terminale. Palaist komandu terminÄlÄ« Patiess, ja komandai, kas izmantota, lai apietos ar Å¡o URL tipu, jÄpalaižas terminÄlÄ«. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ कमाà¤à¤¡ चलाबू सही अछि जठई पà¥à¤°à¤•ारक URL क' नियंतà¥à¤°à¤¿à¤¤ करबाक लेल पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कमाà¤à¤¡à¤•ेठà¤à¤•टा टरà¥à¤®à¤¿à¤¨à¤²à¤®à¥‡ चलओनाइ चाही. Alefaso anaty terminal ilay baiko Marina raha toa tokony halefa amin'ny alalan'ny terminal ny baiko ifehezana io karazan'URL io. Изврши ја командата во терминал Точно ако командата која што Ñе кориÑти за Ñправување Ñо овој тип на адреÑи треба да биде извршена во терминал. ടെരàµâ€à´®à´¿à´¨à´²à´¿à´²àµâ€ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´• à´ˆ തരതàµà´¤à´¿à´²àµà´³à´³ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ കൈകാരàµà´¯à´‚ ചെയàµà´¯àµà´¨àµà´¨ നിരàµâ€à´¦àµà´¦àµ‡à´¶à´‚ ഒരൠടെരàµâ€à´®à´¿à´¨à´²à´¿à´²à´¾à´£àµ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•േണàµà´Ÿà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€ à´¶à´°à´¿ (à´Ÿàµà´°àµ‚) ആണàµ. Програмыг терминалд ажиллуулах Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ үнÑн бол, тушаал ÑÐ½Ñ Ñ‚Ó©Ñ€Ð»Ð¸Ð¹Ð½ URL-г терминалд ажиллуулахад Ñ…ÑÑ€ÑглÑгдÑнÑ. आदेश टरà¥à¤®à¤¿à¤¨à¤² मधà¥à¤¯à¥‡ चालवा या पà¥à¤°à¤•ारचे URL हाताळणà¥à¤¯à¤¾ करीता टरà¥à¤®à¤¿à¤¨à¤² वर आदेश आढळत असलà¥à¤¯à¤¾à¤¸ खरे आहे. Kjør kommandoen i en terminal True hvis programmet for Ã¥ hÃ¥ndtere denne type URL skal kjøres i en terminal. टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ आदेश चलाउनà¥à¤¹à¥‹à¤¸à¥ । यदि आदेशलाई यस पà¥à¤°à¤•ारको यूआरà¤à¤² हà¥à¤¯à¤¾à¤¨à¥à¤¡à¤² गरà¥à¤¨ टरà¥à¤®à¤¿à¤¨à¤²à¤®à¤¾ चलाउनॠपरà¥à¤¦à¤› भने ठीक हà¥à¤¨à¥à¤› । Opdracht in terminalvenster starten Waar indien de opdracht om dit type URL af te handelen in een terminalvenster gestart dient te worden. Køyr kommandoen i ein terminal Sann dersom programmet som handsamar denne typen adresser skal køyrast i ein terminal. PhethagatÅ¡a taelo kgokaganong ya dithapo Ke thereÅ¡o gore ge taelo e diriÅ¡editÅ¡wego go swaragana le mohuta wo wa STS e swanetÅ¡e go phethagatÅ¡wa kgokaganong ya dithapo. ନିରà­à¬¦à­à¬¦à­‡à¬¶à¬•ୠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à¬°à­‡ ଚଲାନà­à¬¤à­ ସତ, ଯଦି à¬à¬¹à¬¿ à­Ÿà­.ଆର.à¬à¬². ଚଳାଇବା ପାଇଠନିରà­à¬¦à­à¬¦à­‡à¬¶ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­à¬°à­‡à¬°à­‡ ଚଳାଯିବା ଉଚିତ। ਕਮਾਂਡ ਟਰਮੀਨਲ ਵਿੱਚ ਚਲਾਓ ਸਹੀ, ਜੇਕਰ ਕਾਰਜ, ਜੋ ਕਿ ਇਸ URL ਨੂੰ ਵਰਤਦਾ ਹੈ, ਟਰਮੀਨਲ ਵਿੱਚ ਚੱਲੇ। Uruchomienie polecenia w terminalu OkreÅ›la, czy program obsÅ‚ugujÄ…cy ten typ adresu URL powinien być uruchomiony w terminalu. Executar o comando numa consola Verdadeiro se o comando utilizado para manipular este tipo de URL deverá ser executado numa consola. Executar o comando em um terminal Verdadeiro se o comando usado para manipular esse tipo de URL deve ser executado em um terminal. PorneÈ™te programul într-un terminal La activare, comanda asociată acestui tip de URL va fi pornită în terminal. ЗапуÑкать программу в терминале ЕÑли Ñтот ключ уÑтановлен, то программа,Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÑÑылки (URL), будет запуÑкатьÑÑ Ð² терминале. SpustiÅ¥ program v termináli True, ak má byÅ¥ program, použitý na obsluhu tohoto typu URL, spustený v termináli. Zaženi ukaz v terminalu Ali naj se ukaz za upravljanje z naslovi URL te vrste zažene v terminalu. Ekzekuto komandën në një terminal E vërtetë nëse komanda e përdorur për të trajtuar këtë lloj URL duhet të zbatohet në një terminal. Покрени наредбу у терминалу Укључено ако наредба која Ñе кориÑти за ове адреÑе треба да Ñе покреће у терминалу. Pokreni naredbu u terminalu UkljuÄeno ako naredba koja se koristi za ove adrese treba da se pokreće u terminalu. Kör kommandot i ett terminalfönster Sant om kommandot för att hantera denna typ av URL ska köras i ett terminalfönster. கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®•௠இநà¯à®¤ வகை URL à® à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®²à¯ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯†à®©à®¿à®²à¯ உணà¯à®®à¯ˆ à°’à°• à°…à°—à±à°°à°‚ లో ఆదేశం నడà±à°ªà±à°®à± à°ˆ రకమైన URL ఉపయోగించà±à°Ÿà°•ౠఆదేశం వాడà±à°¦à±à°°à± ఒకవేళ నిజమైతే à°…à°—à±à°°à°‚లో నడà±à°ªà°µà°²à±†à°¨à±. เรียà¸à¹ƒà¸Šà¹‰à¹‚ปรà¹à¸à¸£à¸¡à¹ƒà¸™à¹€à¸—อร์มินัล ตั้งเป็นค่าจริงถ้าโปรà¹à¸à¸£à¸¡à¸—ี่จัดà¸à¸²à¸£ URL นี้ควรถูà¸à¹€à¸£à¸µà¸¢à¸à¹ƒà¸Šà¹‰à¹ƒà¸™à¹€à¸—อร์มินัล Komutu uçbirim içinde çalıştır EÄŸer seçiliyse, bu URL'yi iÅŸletecek program uçbirimde çalışması gerekiyor demektir. Виконувати команду у терміналі Ввімкнено, Ñкщо програма, вказана Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ поÑилань (URL) повинна запуÑкатиÑÑŒ у терміналі. Buyruqni terminalda bajarish Буйруқни терминалда бажариш Chạy lệnh trong thiết bị cuối Äúng nếu lệnh được dùng để xá»­ lý URL kiểu này nên được dùng trong thiết bị cuối. Qhuba umyalelo kwi-terminal Yinyani ukuba umyalelo osetyenzisiweyo ukukhombisa olu hlobo lwe- URL kufuneka uqhutywe kwi-terminal. 在终端è¿è¡Œå‘½ä»¤ True 代表è¦å¤„ç†æ­¤ URL 的程åºåº”该在终端中è¿è¡Œã€‚ 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 在終端機中執行指令 如設定為‘TRUEâ€™ï¼Œè™•ç†æ­¤ URL 的程å¼å¿…須在終端機中執行。 Sebenzisa isilayezo esigungwini Iqiniso uma umlayezo ozosetshenziswa ukuphatha loluhlobo lweURL lingasetshenziswa esigungwini. gnome-vfs-2.24.4/schemas/system_http_proxy.schemas0000644000175000001440000114511511450333414017243 00000000000000 /schemas/system/http_proxy/use_http_proxy /system/http_proxy/use_http_proxy gnome-vfs bool false Use HTTP proxy Enables the proxy settings when accessing HTTP over the Internet. Gebruik HTTP-instaanbediener Aktiveer die instaanopstelling wanneer toegang tot HTTP oor die internet verkry word. استخدم وسيط HTTP ØªÙØ¹ÙŠÙ„ إعدادات الوسيط عند Ø§Ù„Ù†ÙØ§Ø° لـ http عبر الانترنت. HTTP পà§à§°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à§° কৰা হবে ইনà§à¦Ÿà¦¾à§°à¦¨à§‡à¦Ÿà§‡à§° মাধà§à¦¯à¦®à§‡ HTTP বà§à¦¯à¦¬à¦¹à¦¾à§°à§‡à§° সময় পà§à§°à¦•à§à¦¸à¦¿ সংকà§à§°à¦¾à¦¨à§à¦¤ বৈশিষà§à¦Ÿà§à¦¯ সকà§à§°à¦¿à§Ÿ কৰা হবে Usar proxy HTTP Activa los axustes del proxy al acceder per HTTP a Internet. HTTP vÉ™kili iÅŸlÉ™t Enables the proxy settings when accessing HTTP over the Internet. ВыкарыÑтоўваць паўнамоцны (proxy) паÑлужнік HTTP Уключае ÑžÑталёўкі паўнамоцнага (proxy) паÑлужніку, калі ідзе доÑтуп да http праз інтÑрнÑÑ‚. Използване на Ñървър-поÑредник за HTTP Включване на наÑтройки за Ñървър-поÑредник за HTTP в Интернет HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿà§‡à¦° মাধà§à¦¯à¦®à§‡ HTTP-তে যোগাযোগ সà§à¦¥à¦¾à¦ªà¦¨ করার সময় পà§à¦°à¦•à§à¦¸à¦¿ সেটিংস সকà§à¦°à¦¿à§Ÿ করে। HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿà§‡à¦° মাধà§à¦¯à¦®à§‡ HTTP বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° সময় পà§à¦°à¦•à§à¦¸à¦¿ সংকà§à¦°à¦¾à¦¨à§à¦¤ বৈশিষà§à¦Ÿà§à¦¯ সকà§à¦°à¦¿à§Ÿ করা হবে Koristi HTTP proxy UkljuÄuje postavke proxy-a kod pristupa protokolu HTTP na internetu. Utilitza un servidor intermediari d'HTTP Habilita els paràmetres del servidor intermediari quan s'accedeix a HTTP per Internet. Utilitza un servidor intermediari d'HTTP Habilita els paràmetres del servidor intermediari quan s'accedeix a HTTP per Internet. Používat proxy HTTP Povolí nastavení proxy pÅ™i přístupu k HTTP pÅ™es Internet. Defnyddio dirprwy HTTP Galluogi'r gosodiadau dirprwy wrth gyrchu HTTP dros y Rhyngrwyd. Benyt HTTP-mellemvært Aktivér mellemværtsindstillingerne ved HTTP over internettet. HTTP-Proxy verwenden Sollen die Proxy-Einstellungen zum HTTP-Zugriff per Internet verwendet werden? ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ལག་ལེན་འà½à½–༠ཨིན་ཊར་ནེཊི་་à½à½¼à½‚་ལས་ ཨེཆ་ཊི་ཊི་པི་ འཛུལ་སྤྱོད་འབདà½à¼‹à½‘་ པོརོག་སི་ གཞི་སྒྲིག་ལྕོགས་ཅན་བཟོà½à¼‹à½¨à½²à½“༠ΧÏήση διαμεσολαβητή HTTP ΕνεÏγοποιεί τις Ïυθμίσεις διαμεσολαβητή κατά την Ï€Ïόσβαση HTTP στο διαδίκτυο. ð‘¿ð‘Ÿ HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘¦ð‘¯ð‘±ð‘šð‘©ð‘¤ð‘Ÿ 𑞠ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘§ð‘‘ð‘¦ð‘™ð‘Ÿ ð‘¢ð‘§ð‘¯ ð‘¨ð‘’ð‘•ð‘§ð‘•ð‘¦ð‘™ HTTP ð‘´ð‘𑼠𑞠·ð‘¦ð‘¯ð‘‘ð‘¼ð‘¯ð‘§ð‘‘. Use HTTP proxy Enables the proxy settings when accessing HTTP over the Internet. Use HTTP proxy Enables the proxy settings when accessing HTTP over the Internet. Uzi HTTP-prokurilon Usar proxy HTTP Activa los ajustes del proxy al acceder por HTTP a Internet. HTTP proksi kasutamine Lubab proksi seaded, kui HTTP-le pääsetakse ligi Interneti kaudu. Erabili HTTP proxy-a Proxy-aren konfigurazioa gaitzen du HTTP internet bidez sarbidetzean Käytä HTTP-välipalvelinta Ota välipalvelinasetukset käyttöön, kun HTTP:tä käytetään Internetissä. Utiliser un serveur mandataire HTTP Active les paramètres du serveur mandataire lors de l'accès HTTP sur Internet. Usar proxy HTTP Activa as configuracións do proxy ao acceder a HTTP a través de Internet. HTTP પà«àª°à«‹àª•à«àª¸à«€àª¨à«‹ ઉપયોગ કરો ઇનà«àªŸàª°àª¨à«‡àªŸ ઉપર HTTP ને પà«àª°àªªà«àª¤ કરતા હોઇઠતà«àª¯àª¾àª°à«‡ પà«àª°à«‹àª•à«àª¸à«€ સà«àª¯à«‹àªœàª¨àª¾àª“ને સકà«àª°àª¿àª¯ કરો. Use HTTP proxy Enables the proxy settings when accessing HTTP over the Internet. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ उपयोग करें जब इंटरनेट पर à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ à¤à¤•à¥à¤¸à¥‡à¤¸ किया जाठतो पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ सकà¥à¤·à¤® करें. Koristi HTTP proxy Omogućava postavljanje proxy-a kod pristupa http protokolom prema internetu. HTTP proxy használata Proxybeállítások bekapcsolása interneten keresztüli HTTP eléréskor. Menggunakan proksi HTTP Mengaktifkan pengaturan proksi saat mengakses HTTP melalui Internet. Usare proxy HTTP Abilita le impostazioni del proxy per gli accessi HTTP su Internet. HTTP プロキシã®ä½¿ç”¨ インターãƒãƒƒãƒˆã¸ HTTP アクセスã™ã‚‹ã¨ãã«ãƒ—ロキシã®è¨­å®šã‚’有効ã«ã—ã¾ã™ã€‚ HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ გáƒáƒ›áƒáƒ§áƒ”ნებრპრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრების ჩáƒáƒ áƒ—ვრინტერნეტით HTTP წვდáƒáƒ›áƒ˜áƒ¡áƒáƒ¡. HTTP ಪà³à²°à²¾à²•à³à²¸à²¿à²¯à²¨à³à²¨à³ ಬಳಸೠಅಂತರà³à²œà²¾à²²à²¦ ಮೂಲಕ HTTP ಯನà³à²¨à³ ನಿಲà³à²•ಿಸಿಕೊಳà³à²³à³à²µà²¾à²— ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಿದà³à²§à²¤à³†à²—ಳನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸà³. HTTP 프ë¡ì‹œ 사용 ì¸í„°ë„·ì„ HTTP로 접근할 때 프ë¡ì‹œë¥¼ 사용합니다. Naudoti HTTP tarpinį serverį Ä®jungia tarpinio serverio naudojimÄ… narÅ¡ant Internete per HTTP. Izmantot HTTP starpnieku IeslÄ“dz starpnieka uzstÄdÄ«jumus, kad piekļūst HTTP cauri tÄ«meklim. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤— करू जखन इंटरनेट पर à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ à¤à¤•à¥à¤¸à¥‡à¤¸ कà¤à¤² जाठतठपà¥à¤°à¥‹à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ सकà¥à¤·à¤® करू. Hampiasa proxy HTTP Mandefa ny kirakiran'ny proxy rehefa mampiasa HTTP amin'ny Internet. КориÑти HTTP proxy Ги вклучува подеÑувањата за proxy кога Ñе приÑтапува на HTTP преку Интернет. HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഉപയോഗികàµà´•àµà´• ഇനàµâ€à´±à´°àµâ€à´¨àµ†à´±àµà´±à´¿à´²àµ‚ടെ HTTP ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´ªàµ‹à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ à´•àµà´°à´®àµ€à´•രണങàµà´™à´³àµâ€ സജàµà´œà´®à´¾à´•àµà´•àµà´¨àµà´¨àµ. HTTP итгÑмжилÑгч Ñ…ÑÑ€ÑглÑÑ… HTTP-Ñ€ интернÑÑ‚ Ñ€Ò¯Ò¯ хандахад итгÑмжилÑгчийн тохиргоог нÑÑÑ… HTTP पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ वापरा महाजाल वरील HTTP पà¥à¤°à¤µà¥‡à¤¶ दाखल करतेवेळी पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ संयोजना कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करतो. Bruk HTTP-proxy Aktiverer proxy-innstillinger ved aksess via HTTP til Internett. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ इनà¥à¤Ÿà¤°à¤¨à¥‡à¤Ÿà¤®à¤¾ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€à¤²à¥‡ पहà¥à¤à¤š पà¥à¤°à¤¾à¤ªà¥à¤¤ गरà¥à¤¦à¤¾ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सेटिङ सकà¥à¤·à¤® पारà¥à¤¦à¤› । HTTP-proxy gebruiken Proxy-instellingen gebruiken bij HTTP-verbindingen over het internet. Bruk HTTP-mellomtenar Brukar mellomtenar-innstillingane nÃ¥r HTTP over internett vert brukt. DiriÅ¡a kemedi ya PFSK E kgontÅ¡ha dipeakanyo tÅ¡a kemedi ge e diragatÅ¡a PFSK inthaneteng. à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରନà­à¬¤à­ ଇଣà­à¬Ÿà¬°à¬¨à­‡à¬Ÿà¬°à­‡ à¬à¬šà­.ଟି.ଟି.ପି. ଚଳାଇଲା ବେଳେ ଛାୟା ବିନà­à¬¯à¬¾à¬¸à¬•ୠସମରà­à¬¥ କରେ. HTTP ਪਰਾਕਸੀ ਵਰਤੋਂ ਪਰਾਕਸੀ ਸੈਟਿੰਗ ਯੋਗ ਕਰੋ, ਜਦੋ ਕਿ ਇੰਟਰਨੈੱਟ 'ਤੇ HTTP ਨੂੰ ਵਰਤਦੇ ਹੋ। Użycie poÅ›rednika HTTP Włącza ustawienia poÅ›rednika podczas próby dostÄ™pu HTTP za poÅ›rednictwem Internetu. Utilizar proxy HTTP Activa as definições de proxy ao aceder por HTTP à Internet. Usar proxy HTTP Ativa configurações de proxy ao acessar HTTP na Internet. Utilizează proxy HTTP Activează opÈ›iunile proxy la accesarea adreselor HTTP în Internet. ИÑпользовать прокÑи-Ñервер Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP Включает уÑтановки прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP через Интернет. PoužiÅ¥ proxy HTTP Povolí nastavenie proxy pri prístupe pomocou HTTP na Internet. Uporabi HTTP posredovalni strežnik OmogoÄi nastavitve posredovalnega strežnika za dostop do HTTP preko spleta. Përdor proxy HTTP Aktivon rregullimet e proxy kur përdor HTTP në Internet. КориÑти веб поÑредника Укључује подешавања поÑредника при приÑтупу вебу преко Интернета. КориÑти веб поÑредника Укључује подешавања поÑредника при приÑтупу вебу преко Интернета. Koristi veb posrednika UkljuÄuje podeÅ¡avanja posrednika pri pristupu vebu preko Interneta. Använd HTTP-proxyserver Aktiverar proxyinställningarna vid Ã¥tkomst av HTTP över Internet. HTTP பà¯à®°à®¾à®•à¯à®¸à®¿à®¯à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯ HTTP அணà¯à®•à¯à®®à¯ போத௠பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà¯ˆ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯ HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ వాడౠHTTP ఇంటరౠనెటౠపైన సాంగతà±à°¯ పరà±à°¸à±à°¤à±à°¨à±à°¨à°ªà±à°ªà±à°¡à± à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ అమరికలౠఉపయోగించà±. ใช้พร็อà¸à¸‹à¸µ HTTP ใช้ค่าพร็อà¸à¸‹à¸µà¸—ี่ตั้งไว้เวลาใช้ HTTP บนอินเทอร์เน็ต HTTP vekili kullan HTTP'ye İnternet üzerinden baÄŸlanırken vekili etkin kılar. ВикориÑтовувати HTTP прокÑÑ– Вмикає параметри прокÑÑ–-Ñлужби Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ HTTP через Інтернет. HTTP proksidan foydalanish HTTP прокÑидан фойдаланиш Dùng á»§y nhiệm HTTP Bật chạy thiết lập á»§y nhiệm khi truy cập HTTP qua Mạng. Sebenzisa isiqhagamsheli se-HTTP Yenza ukuba imimiselo yekhompyutha esebenza njengomqobo xa usebenza nge-HTTP kwi-intanethi. 使用 HTTP ä»£ç† è®¿é—® Internet 上的 HTTP æ—¶å¯ç”¨ä»£ç†æœåŠ¡å™¨è®¾ç½®ã€‚ 使用 HTTP 代ç†ä¼ºæœå™¨ 經互è¯ç¶²å­˜å– HTTP 時啟用代ç†ä¼ºæœå™¨è¨­å®šã€‚ 使用 HTTP 代ç†ä¼ºæœå™¨ ç¶“ç¶²éš›ç¶²è·¯å­˜å– HTTP 時啟用代ç†ä¼ºæœå™¨è¨­å®šã€‚ Sebenzisa isibambeli HTTP Igunyaza uhlelo lokubambisa uma ungena ku-HTTP ku-lwembu jikelele. /schemas/system/http_proxy/host /system/http_proxy/host gnome-vfs string HTTP proxy host name The machine name to proxy HTTP through. HTTP-instaangasheernaam Die masjiennaam waardeur HTTP ingestaan moet word. اسم مضي٠وسيط الـ HTTP اسم الجهاز الذي سيقع وسيطة الـ HTTP عبره. HTTP পà§à§°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম HTTP পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম । Nome del host del proxy HTTP El nome de la máquina pola que se fai proxy HTTP. HTTP vÉ™kil qovÅŸaq adı HTTP üçün vÉ™kilin sistem adı. Ðазва вузла, паўнамоцнага па HTTP Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай па HTTP. Име на Ñървъра-поÑредник за HTTP Името на Ñървъра-поÑредник за връзки по HTTP HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম যে মেশিনের মধà§à¦¯ দিয়ে HTTP পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম। Ime raÄunara za HTTP proxy Naziv raÄunara za HTTP proxy. Nom del servidor intermediari d'HTTP El nom del servidor que fa de servidor intemediari d'HTTP. Nom del servidor intermediari d'HTTP El nom del servidor que fa de servidor intemediari d'HTTP. Název poÄítaÄe proxy HTTP Název poÄítaÄe, který používat jako proxy HTTP. Enw'r gweinydd dirprwy HTTP Enw'r peiriant i'w ddefnyddio fel dirprwy HTTP. HTTP-mellemværtsnavn Maskinnavn som HTTP-trafik skal gÃ¥ gennem. Rechnername des HTTP-Proxys Der Rechnername des HTTP-Proxys. ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ཧོསཊི་ནེམ༠ཨེཆ་ཊི་་ཊི་པི་ པོརོག་སི་འབད་ནིའི་ གློག་འཕྲུལ་གྱི་མིང༌༠Όνομα συστήματος διαμεσολαβητή HTTP Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση HTTP. HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠HTTP ð‘”ð‘®ð‘µ. HTTP proxy host name The machine name to proxy HTTP through. HTTP proxy host name The machine name to proxy HTTP through. Nombre del host del proxy HTTP El nombre de la máquina por la que se hace proxy HTTP. HTTP proksiserveri aadress HTTP proxi masina nimi HTTP proxy ostalariaren izena Ordenagailuaren izena, proxy HTTPa egiten duenarena. HTTP-välipalvelimen nimi HTTP-välipalvelimena toimivan koneen nimi. Nom d'hôte du serveur mandataire HTTP Le nom de la machine qui sert de serveur mandataire HTTP. Nome do host proxy HTTP O nome da máquina a través da que efectuar o proxy HTTP. HTTP પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ પà«àª°à«‹àª•à«àª¸à«€ HTTP through માટે યંતà«àª°àª¨à« નામ. HTTP proxy host name The machine name to proxy HTTP through. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ किया जाना है. Ime HTTP proxy raÄunala Naziv raÄunala s HTTP proxy-em. HTTP proxy gépnév A HTTP proxy gépneve. Nama host proksi HTTP Nama mesin untuk melakukan proksi terhadap HTTP. Nome dell'host proxy HTTP Il nome della macchina attraverso la quale effettuare il proxy HTTP. HTTP プロキシã®ãƒ›ã‚¹ãƒˆå HTTP ã®ãƒ—ロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚ HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი პრáƒáƒ¥áƒ¡áƒ˜ სერვერის მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი HTTP-სთვის. HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರೠಪà³à²°à²¾à²•à³à²¸à²¿ HTTP ಮಾಡಲೠಬಳಸಬೇಕಿರà³à²µ ಗಣಕದ ಹೆಸರà³. HTTP 프ë¡ì‹œ 호스트 ì´ë¦„ HTTP 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„. HTTP tarpinio serverio vardas Kompiuteris, teikiantis tarpinio HTTP serverio paslaugas. HTTP starpnieka saimniekdatora vÄrds Mašīnas vÄrds, lai starpietu cauri HTTP. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जकरासठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ कà¤à¤¨à¤¾à¤‡ अछि. Anaran'ny mpampiantrano proxy HTTP Ny anaran'ilay milina hampiasana proxy HTTP. Име на хоÑÑ‚ за HTTP proxy Име на машината преку која Ñе преминува за HTTP. HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം HTTP വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ. HTTP итгÑмжилÑгч хоÑтын нÑÑ€ ИтгÑмжилÑгч HTTP-н машины нÑÑ€ HTTP परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव परà¥à¤¯à¤¾à¤¯à¥€ HTTP साठी यांतà¥à¤°à¤¿à¤• नाव. Vertsnavn for HTTP-proxy Maskinnavn for HTTP-proxy. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤® à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP)बाट पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ मेसिन नाम । HTTP-proxy hostnaam De machinenaam waar de HTTP-proxy op draait. Vertsnamn pÃ¥ HTTP-mellomtenar Namnet pÃ¥ maskinen som er HTTP-mellomtenar. Leina la moswari la kemedi la PFSK Leina la motÅ¡hene gore le emele PFSK. à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଆଧାର ନାମ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ. HTTP ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ ਮਸ਼ੀਨ ਦਾ ਨਾਂ, ਜਿਸ ਰਾਹੀ ਪਰਾਕਸੀ HTTP ਕਰਨੀ ਹੈ। Nazwa komputera poÅ›rednika HTTP Nazwa maszyny poÅ›redniczÄ…cej protokół HTTP. Nome de máquina da proxy HTTP O nome da máquina através da qual efectuar proxy de HTTP. Nome de máquina do proxy HTTP O nome da máquina para acessar o proxy de HTTP. Nume proxy HTTP Numele serverului proxy HTTP. Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP. Hostiteľ pre HTTP proxy Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre HTTP. Ime gostitelja posredovalnega strežnika HTTP Ime raÄunalnika posredovalnega strežnika HTTP. Emri i host proxy HTTP Emri i makinës për kalimin tek proxy HTTP. Име HTTP поÑредника Име рачунара за веб (HTTP) поÑредовање. Име HTTP поÑредника Име рачунара за веб (HTTP) поÑредовање. Ime HTTP posrednika Ime raÄunara za veb (HTTP) posredovanje. Värdnamn för HTTP-proxyserver Namnet pÃ¥ maskinen som ska agera proxyserver för HTTP. HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயர௠HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ கà¯à®•ான கணினி பெயர௠HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°§à±à°¯ ఆతిథà±à°¯ నామమౠయంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°•à± HTTP à°—à±à°‚à°¡à°¾. ชื่อโฮสต์พร็อà¸à¸‹à¸µ HTTP ชื่อเครื่องที่จะติดต่อ HTTP ผ่าน HTTP vekil sunucu makine adı HTTP için kullanılacak vekilin makine adı. Ðазва вузла прокÑÑ–-Ñервера протоколу HTTP Ðазва вузла прокÑÑ–-Ñервера протоколу HTTP. HTTP proksi xost nomi HTTP прокÑи хоÑÑ‚ номи Tên máy á»§y nhiệm HTTP Tên cá»§a máy qua đó cần chạy á»§y nhiệm HTTP. Igama lomququzeleli wekhompyutha esebenza njengomqobo ye-HTTP Igama lomatshini lokusebenza njengekhompyutha engumqobo kwi-HTTP. HTTP 代ç†ä¸»æœºå ä»£ç† HTTP 的机器å。 HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 Umbambeli wegama lommemi ku-HTTP Igama lomshini kusibambeli se-HTTP sidlulele. /schemas/system/http_proxy/port /system/http_proxy/port gnome-vfs int 8080 HTTP proxy port The port on the machine defined by "/system/http_proxy/host" that you proxy through. HTTP-instaanpoort Die poort op die masjien gedefinieer deur "/system/http_proxy/host" waardeur jy 'n instaanverbinding kry. Ù…Ù†ÙØ° وسيط الـ HTTP Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ "/system/http_proxy/host" المستعمل كوكيل. HTTP পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ "/system/http_proxy/host" দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় । Puertu del proxy HTTP El puertu de la máquina definía por "/system/HTTP_proxy/host" que fai de proxy. HTTP vÉ™kil qapısı The port on the machine defined by "/system/http_proxy/host" that you proxy through. Порт паўнамоцнага па HTTP Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/http_proxy/host, Ñкой належаць паўнамоцтвы. Порт на Ñървъра-поÑредник за HTTP Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/http_host“. HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ মেশিনে উলà§à¦²à§‡à¦–িত "/system/http_proxy/host" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ "/system/http_proxy/host" দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়। Port za HTTP proxy Port na raÄunaru koji se koristi kao proxy i koji je definiran u "/system/http_proxy/host". Port del servidor intermediari d'HTTP El port a l'ordinador definit per «/system/http_proxy/host» pel que escolta el servidor intermediari. Port del servidor intermediari d'HTTP El port a l'ordinador definit per «/system/http_proxy/host» pel que escolta el servidor intermediari. Port proxy HTTP Port na poÄítaÄi definovaném v „/system/http_proxy/host“, který používat pro proxy. Porth gweinydd dirprwy HTTP Y porth ar y peiriant a ddiffinnir gan "/system/http_proxy/host" yr ydych yn ei ddefnyddio fel dirprwy. HTTP-mellemværtsport Porten pÃ¥ den maskine defineret af "/system/http_proxy/host" som trafikken skal gÃ¥ gennem. Port am HTTP-Proxy Der Proxy-Port am von »/system/http_proxy/host« festgelegten Rechner. ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ འདྲེན་ལམ༠à½à¾±à½¼à½‘་ཀྱིས་ པོརོག་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ "/system/http_proxy/host" གིས་ ངེས་འཛིན་འབད་ཡོད༠ΘÏÏα διαμεσολαβητή HTTP Η θÏÏα στο σÏστημα που καθοÏίζεται από το "/system/http_proxy/host" μέσω του οποίου γίνεται διαμεσολάβηση. HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘¹ð‘‘ 𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² "/system/http_proxy/host" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ. HTTP proxy port The port on the machine defined by "/system/http_proxy/host" that you proxy through. HTTP proxy port The port on the machine defined by "/system/http_proxy/host" that you proxy through. HTTP-prokura pordo Puerto del proxy HTTP El puerto de la máquina definida por "/system/HTTP_proxy/equipo" que hace de proxy. HTTP proksi port Port, defineeritud "/system/http_proxy/host" poolt, mille kaudu proxyt kasutatakse. HTTP proxy-aren ataka Ordenagailuaren ataka, "/system/http_proxy/host"-ean definituta proxy-arena egiteko. HTTP-välipalvelimen portti Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/http_proxy/hostâ€. Port du serveur mandataire HTTP Le port de la machine définie dans « /system/http_proxy/host » utilisée comme serveur mandataire. Porto do proxy HTTP O porto da máquina definido por "/system/http_proxy/host" a través do que efectuar o proxy. HTTP પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ "/સિસà«àªŸàª®/http_પà«àª°à«‹àª•à«àª¸à«€/યજમાન" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ કરો છો. HTTP proxy port The port on the machine defined by "/system/http_proxy/host" that you proxy through. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित है "/system/http_proxy/host" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं. HTTP proxy port Port na raÄunalu je odreÄ‘en u datoteci /system/http_proxy/host raÄunala s proxy-em. HTTP proxy port A „/system/http_proxy/host†kulcsban proxyként megadott gép portja. Port proksi HTTP Port pada mesin yang ditentukan oleh "/system/http_proxy/host" yang Anda proksikan. Porta proxy HTTP La porta sulla macchina definita in "/system/http_proxy/host" attraverso la quale effettuare il proxy. HTTP プロキシã®ãƒãƒ¼ãƒˆç•ªå· プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€"/system/http_proxy/host" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®ãƒãƒ¼ãƒˆç•ªå·ã§ã™ã€‚ HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜ "/system/http_proxy/host" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის. HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨ ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ "/system/http_proxy/host" ಯಲà³à²²à²¿ ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†. HTTP 프ë¡ì‹œ í¬íЏ 프ë¡ì‹œì— 사용할 í¬íЏ ("/system/http_proxy/host"ì—서 지정한 기계ì—서). HTTP tarpinio serverio prievadas Tarpinio http serverio prievadas, saugomas „/system/http_proxy/host“ rakte. HTTP starpnieka ports Mašīnas ports definÄ“ts "/system/http_proxy/host" , lai jÅ«s varÄ“tu iziet cauri starpniekam. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि "/system/http_proxy/host" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठपà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करैत अछि. Iriky ny proxy HTTP Ny irik'ilay milina voafaritry ny "/system/http_proxy/host" hampiasaina amin'ny proxy. Порта за HTTP proxy Портата на машината дефинирана во "/system/http_proxy/host" преку која што кориÑтите прокÑи. HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ "/system/http_proxy/host" à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ. HTTP итгÑмжилÑгчийн порт ИтгÑмжилÑгч порт "/system/http_proxy/host" гÑж тодорхойлогдÑон хоÑÑ‚ HTTP परà¥à¤¯à¤¾à¤¯à¥€ पोरà¥à¤Ÿ संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ "/system/http_proxy/host" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ वापरू शकता. Port for HTTP-proxy Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/http_proxy/host». à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ "/system/http_proxy/host" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ । HTTP-proxy poortnummer Het poortnummer op de machine die u als proxy gebruikt en gedefineerd door "/system/http_proxy/host" Port pÃ¥ HTTP-mellomtenar Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/http_proxy/host». DikopantÅ¡hwa le khomphuthara tÅ¡a kemedi tÅ¡a PFSK Lefelo leo mo motÅ¡heneng le hlalositÅ¡wego ke "/system/http_proxy/host" yo o mo emelago. à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ସଂଯୋଗିକୀ "/system/http_proxy/host" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬. HTTP ਪਰਾਕਸੀ ਪੋਰਟ ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ "/system/http_proxy/host" ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ ਰਹੇ ਹੋ। Port poÅ›rednika HTTP Port komputera okreÅ›lonego przez "/system/http_proxy/host", bÄ™dÄ…cy poÅ›rednikiem dla ruchu sieciowego. Porto do proxy HTTP O porto na máquina, definido por "/system/http_proxy/host", através do qual efectuar proxy. Porta do proxy HTTP A porta na máquina definida por "/system/http_proxy/host" que você acessará o proxy. Port proxy HTTP Portul serverului proxy definit în „/system/http_proxy/hostâ€. Порт прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP Порт на машине, определённой ключом "/system/http_proxy/host" Ð´Ð»Ñ ÑервиÑа прокÑи. Port pre HTTP proxy Port poÄítaÄa definovaného v "/system/http_proxy/host", ktorý používate ako proxy. Vrata posredovalnega strežnika HTTP Vrata raÄunalnika, ki jih doloÄa nastavitev "/system/http_proxy/host" posredovalnega strežnika. Porta e proxy HTTP Porta e makinës e përcaktuar nga "/system/http_proxy/host" nga do të kalojë proxy juaj. Порт HTTP поÑредника Порт рачунара датог у „/system/http_proxy/host“ кроз који поÑредује. Порт HTTP поÑредника Порт машине одређене помоћу „/system/http_proxy/host“ која је поÑредник. Port HTTP posrednika Port raÄunara datog u „/system/http_proxy/host“ kroz koji posreduje. Port för HTTP-proxyserver Porten pÃ¥ maskinen som definieras av "/system/http_proxy/host" som du använder som proxyserver. HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ வழி "/system/http_proxy/host" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறத௠HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రేవౠరేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ "/à°µà±à°¯à°µà°¸à±à°¥/http_à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/ఆతిథà±à°¯à°‚" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ à°—à±à°‚à°¡à°¾. พอร์ตพร็อà¸à¸‹à¸µ HTTP พอร์ตบนเครื่องที่ตั้งไว้ใน "/system/http_proxy/host" ที่จะใช้ติดต่อผ่าน HTTP vekil sunucu portu "/system/http_proxy/host" ile tanımlanmış vekil olarak kullanacağınız makinenin portu. Порт прокÑÑ–-Ñервера протоколу HTTP Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем "/system/http_proxy/host". HTTP proksi porti HTTP прокÑи порти Cổng á»§y nhiệm HTTP Cổng trên máy được định nghÄ©a bởi « /system/http_proxy/host » qua đó cần chạy á»§y nhiệm. Isiqhagamsheli sekhompyutha esebenza njengomqobo se-HTTP Isiqhagamsheli ematshinini esichazwa nge- "/system/http_proxy/host" oqhagamshela kuso. HTTP 代ç†ç«¯å£ æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/http_proxy/hostâ€ä¸­ã€‚ HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ  在“/system/http_proxy/host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ  在“/system/http_proxy/host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 Umbambeli wetheku ku-HTTP Itheku emshinini lichazwa nge "/system/http_proxy/host" obambisela ngayo. /schemas/system/http_proxy/use_authentication /system/http_proxy/use_authentication gnome-vfs bool false Authenticate proxy server connections If true, then connections to the proxy server require authentication. The username/password combo is defined by "/system/http_proxy/authentication_user" and "/system/http_proxy/authentication_password". Verifieer instaanbedienerverbindings توثق من الاتصالات لخادوم الوسيط إذا كانت صحيح، سيحتاج الاتصال بخادوم الوسيط إلى توثيق. اجتماع اسم المستخدم/كلمة السر معرّ٠بواسطة "/system/http_proxy/authentication_user" Ùˆ "/system/http_proxy/authentication_password". পà§à§°à¦•à§à¦¸à¦¿ সাৰà§à¦­à¦¾à§°à§‡à§° সংযোগ অনà§à¦®à§‹à¦¦à¦¨ কৰা হবে মান true (সতà§à¦¯) হলে পà§à§°à¦•à§à¦¸à¦¿ সাৰà§à¦­à¦¾à§°à§‡à§° সাথে সংযোগেৰ জনà§à¦¯ অনà§à¦®à§‹à¦¦à¦¨ আবশà§à¦¯à¦• । বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীৰ নাম/পাসৱৰà§à¦¡ জà§à¦Ÿà¦¿ "/system/http_proxy/authentication_user" ও "/system/http_proxy/authentication_password" দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় । Autenticar conexones col servidor proxy Si ye «true» (braero), les conexones al servidor proxy requieren d'autenticación. La combinación usuariu/contraseña defínses en "/system/http_proxy/authentication_user" y "/system/http_proxy/authentication_password". VÉ™kil vericisi baÄŸlantılarını tanıt ІдÑнтыфікаваць далучÑньні да паўнамоцнага (proxy) паÑлужніку Калі Ñ–Ñьціна, тады далучÑньні да паўнамоцнага (proxy) паÑлужніку будуць патрабаваць ідÑнтыфікацыі. ЗьвÑз уліковы_запіÑ/пароль вызначаецца ключамі /system/http_proxy/authentication_user Ñ– /system/http_proxy/authentication_password. Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ връзката ÑÑŠÑ Ñървъра-поÑредник Ðко е иÑтина, връзките към Ñървъра-поÑредник изиÑкват идентификациÑ. КомбинациÑта „потребителÑко име/парола“ е дефинирана в „/system/http_proxy/authentication_user“ и „/system/http_proxy/authentication_password“. পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦° কানেকশন পà§à¦°à¦®à¦¾à¦£ করা হবে যদি সতà§à¦¯ হয়, তবে পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦° সংযোগের জনà§à¦¯ পà§à¦°à¦®à¦¾à¦£à§€à¦•রণ আবশà§à¦¯à¦•। বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম/পাসওয়ারà§à¦¡ কমà§à¦¬à§‹ "/system/http_proxy/authentication_user" à¦à¦¬à¦‚ "/system/http_proxy/authentication_password" দà§à¦¬à¦¾à¦°à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤à¥¤ পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦°à§‡à¦° সংযোগ অনà§à¦®à§‹à¦¦à¦¨ করা হবে মান true (সতà§à¦¯) হলে পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦°à§‡à¦° সাথে সংযোগের জনà§à¦¯ অনà§à¦®à§‹à¦¦à¦¨ আবশà§à¦¯à¦•। বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম/পাসওয়ারà§à¦¡ জà§à¦Ÿà¦¿ "/system/http_proxy/authentication_user" ও "/system/http_proxy/authentication_password" দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়। Provjeri autentiÄnost veza na proxy serveru Autentica les connexions al servidor intermediari Si és vertader, les connexions al servidor intermediari requereixen autenticació. La combinació usuari/contrasenya és definida per «/system/http_proxy/authentication_user» i «/system/http_proxy/authentication_password». Autentica les connexions al servidor intermediari Si és vertader, les connexions al servidor intermediari requereixen autenticació. La combinació usuari/contrasenya és definida per «/system/http_proxy/authentication_user» i «/system/http_proxy/authentication_password». Autentizovat pÅ™ipojení k serveru proxy Je-li „true“, vyžadují pÅ™ipojení k serveru proxy autentizaci. Kombinace jméno uživatele/heslo je definována v „/system/http_proxy/authentication_user“ a „/system/http_proxy/authentication_password“. Dilysu cysylltiadau â'r gweinydd dirprwy Os yn wir, bydd angen dilysu cysylltiadau â'r gweinydd dirprwy. Defnyddir y pâr enw defnyddiwr/cyfrinair a benodir gan "/system/http_proxy/authentication_user" a "/system/http_proxy/authentication_password". Brugergodkendelse ved mellemværtstilslutninger Hvis sand, kræver tilslutningerne til mellemværten brugergodkendelse. Brugernavn-/adgangskodekombinationen er defineret i "/system/http_proxy/authentication_user" og "/system/http_proxy/authentication_password". Verbindungen mit dem Proxy-Server legitimieren Legt fest, ob Verbindungen mit dem Proxy-Server legitimiert werden müssen. Hierbei werden die Werte von »/system/http_proxy/authentication_user« und »/system/http_proxy/authentication_password« als Benutzername bzw. Passwort verwendet. པོརོག་སི་ སར་བར་མà½à½´à½‘་ལམ་གྱི་ བདེན་à½à½´à½„ས་བཤད༠ངེས་བདེན་ཨིན་པ་ཅིན་ པོརོག་སི་སར་བར་གྱི་ མà½à½´à½‘་ལམ་ཚུ་ལུ་ བདེན་བཤད་དགོ ལག་ལེན་པའི་མིང་/ ཆོག་ཡིག་གི་ཀོམ་བོ་དེ་ "/system/http_proxy/authentication_user" དང་ "/system/http_proxy/authentication_password" ཚུ་གིས་ ངེས་འཛིན་འབད་ཡོད༠Πιστοποίηση συνδέσεων στον εξυπηÏετητή διαμεσολάβησης Αν αληθές, τότε οι συνδέσεις στο διαμεσολαβητή απαιτοÏν πιστοποίηση. Τα όνομα χÏήστη/κωδικός καθοÏίζονται από το "/system/http_proxy/authentication_user" και "/system/http_proxy/authentication_password". ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘»ð‘𑼠ð‘’ð‘©ð‘¯ð‘§ð‘’ð‘–ð‘©ð‘¯ð‘Ÿ ð‘¦ð‘“ ð‘‘ð‘®ð‘µ, ð‘žð‘§ð‘¯ ð‘’ð‘©ð‘¯ð‘§ð‘’ð‘–ð‘©ð‘¯ð‘Ÿ 𑑠𑞠ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘»ð‘𑼠ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘–ð‘©ð‘¯. 𑞠ð‘¿ð‘Ÿð‘¼ð‘¯ð‘±ð‘¥/ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘’ð‘­ð‘¥ð‘šð‘´ ð‘¦ð‘Ÿ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² "/system/http_proxy/authentication_user" 𑯠"/system/http_proxy/authentication_password". Authenticate proxy server connections If true, then connections to the proxy server require authentication. The username/password combo is defined by "/system/http_proxy/authentication_user" and "/system/http_proxy/authentication_password". Authenticate proxy server connections If true, then connections to the proxy server require authentication. The username/password combo is defined by "/system/http_proxy/authentication_user" and "/system/http_proxy/authentication_password". Autenticar conexiones con el servidor proxy Si es «true» (verdadero), las conexiones al servidor proxy requieren autenticación. La combinación usuario/contraseña se define en "/system/http_proxy/authentication_user" y "/system/http_proxy/authentication_password". Proksiserveri ühenduste autentimine Kui tõene, siis ühendused proxy-serverisse vajavad autentimist. Kasutajanimi/salasõna on defineeritud võtmetega "/system/http_proxy/authentication_user" ja "/system/http_proxy/authentication_password". Autentifikatu proxy zerbitzariaren konexioak Egia bada, proxy zerbitzarira konektatzeko autentifikazioa eskatuko da. Erabiltzailea/pasahitza bikotea "/system/http_proxy/authentication_user"-ean eta "/system/http_proxy/authentication_password"-ean definitzen dira. Todenna välipalvelinyhteydet Jos tosi, yhteydet välipalvelimeen vaativat todennuksen. Käyttäjätunnus-salasana-yhdistelmän määrittelevät avaimet â€/system/http_proxy/authentication_user†ja â€/system/http_proxy/authentication_passwordâ€. Authentifier les connexions au serveur mandataire Si vrai, alors les connexions au serveur mandataire nécessitent une authentification. Le couple nom d'utilisateur/mot de passe est défini dans « /system/http_proxy/authentication_user » and « /system/http_proxy/authentication_password ». Autenticar as conexións co servidor proxy Se é true, as conexións ao servidor proxy requirirán autenticación. O nome do usuario e o contrasinal están definidos polas chaves "/system/http_proxy/authentication_user" e "/system/http_proxy/authentication_password". પà«àª°à«‹àª•à«àª¸à«€ સરà«àªµàª°àª¨àª¾ સંપરà«àª•ોને સાચા છે કે નહિ તે તપાસો જો સાચà«àª‚ હોય, તો પછી પà«àª°à«‹àª•à«àª¸à«€ સરà«àªµàª° સાથેના જોડાણોને સતà«àª¤àª¾àª§àª¿àª•રણની જરૂર છે. વપરાશકરà«àª¤àª¾àª¨àª¾àª®/પાસવરà«àª¡ બંને "/system/http_proxy/authentication_user" અને "/system/http_proxy/authentication_password" દà«àªµàª¾àª°àª¾ વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ થાય છે. Authenticate proxy server connections If true, then connections to the proxy server require authentication. The username/password combo is defined by "/system/http_proxy/authentication_user" and "/system/http_proxy/authentication_password". पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¤° कनेकà¥à¤¶à¤¨à¥à¤¸ पà¥à¤°à¤¾à¤®à¤¾à¤£à¤¿à¤¤ करें अगर सही है, तब पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¤° में संबंधन के लिये सतà¥à¤¯à¤¾à¤ªà¤¨ की जरूरत होती है. username/password कोंबो को "/system/http_proxy/authentication_user" औऱ "/system/http_proxy/authentication_password" के दà¥à¤µà¤¾à¤°à¤¾ परिभाषित होता है. Provjerite vjerodostojnost veze prema proxy poslužitelju Ako je "toÄno", tada veze na proxy poslužitelj zahtijevaju provjeru vjerodostojnosti. Kombinacija ime_korisnika/lozinka je definirana u datotekama "/system/http_proxy/authentication_user" i "/system/http_proxy/authentication_password". Kapcsolatok hitelesítése a proxy kiszolgálókhoz Ha be van kapcsolva, akkor a proxy kiszolgálóhoz történÅ‘ kapcsolódásokhoz hitelesítés szükséges. A felhasználónév/jelszó párost a „/system/http_proxy/authentication_user†és a „/system/http_proxy/authentication_password†adja meg. Otentikasi koneksi server proksi Jika bernilai benar (true), maka hubungan menuju server proksi harus diotentikasi. Pasangan nama pengguna/sandi ditentukan oleh "/system/http_proxy/authentication_user" dan "/system/http_proxy/authentication_password". Autenticazione connessioni al server proxy Se impostata a vero, le connessioni al server proxy richiedono l'autenticazione. La combinazione nome utente/password è definita nelle chiavi "/system/http_proxy/authentication_user" e "/system/http_proxy/authentication_password". èªè¨¼ãƒ—ロキシ・サーãƒã¸ã®æŽ¥ç¶š TRUE ã®å ´åˆã€ãƒ—ロキシ・サーãƒã¸ã®æŽ¥ç¶šã§èªè¨¼ãŒè¦æ±‚ã•れã¾ã™ã€‚ユーザå/パスワードã®çµ„ã¿åˆã‚ã›ã¯ "/system/http_proxy/authentication_user" 㨠"/system/http_proxy/authentication_password" ã§å®šç¾©ã•れã¾ã™ã€‚ პრáƒáƒ¥áƒ¡áƒ˜ სერვერის კáƒáƒ•შირების áƒáƒ£áƒ—ენტიფიკáƒáƒªáƒ˜áƒ თუ ჭეშმáƒáƒ áƒ˜áƒ¢áƒ˜áƒ, პრáƒáƒ¥áƒ¡áƒ˜ სერვერთáƒáƒœ კáƒáƒ•შირი áƒáƒ£áƒ—ენტიფიკáƒáƒªáƒ˜áƒáƒ¡ სáƒáƒ­áƒ˜áƒ áƒáƒ”ბს. username/password combo მითითებულირ"/system/http_proxy/authentication_user" დრ"/system/http_proxy/authentication_password" სáƒáƒ¨áƒ£áƒáƒšáƒ”ბით. ಪà³à²°à²¾à²•à³à²¸à²¿ ಪರಿಚಾರಕ ಸಂಪರà³à²•ಗಳನà³à²¨à³ ದೃಢೀಕರಿಸೠtrue ಆದಲà³à²²à²¿, ಪà³à²°à²¾à²•à³à²¸à²¿ ಪರಿಚಾರಕಕà³à²•ಾಗಿ ಸಂಪರà³à²•ಗಳಿಗೆ ದೃಢೀಕರಣದ ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†. ಬಳಕೆದಾರಹೆಸರà³/ಗà³à²ªà³à²¤à²ªà²¦à²¦ ಸಿದà³à²§à²¤à³†à²¯à²¨à³à²¨à³ "/system/http_proxy/authentication_user" ಹಾಗೠ/system/http_proxy/authentication_password" ಇಂದ ಸೂಚಿಸಲಾಗà³à²¤à³à²¤à²¦à³†. 프ë¡ì‹œ 서버 ì—°ê²°ì— ì¸ì¦ ì°¸ì´ë©´, 프ë¡ì‹œ ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë° ì¸ì¦ì´ 필요합니다. ì‚¬ìš©ìž ì´ë¦„ê³¼ 암호는 "/system/http_proxy/authentication_user" ë° "/system/http_proxy/authentication_password"ì—서 지정합니다. Tarpiniamer serveryje naudoti autorizavimÄ… Jei teigiama, jungtims į tarpinÄ™ stotį yra bÅ«tina autorizacija. Naudotojo vardas ir slaptažodis yra saugomi „/system/http_proxy/authentication_user“ ir „/system/http_proxy/authentication_password“ raktuose. IdentificÄ“jiet starpnieka servera savienojumus Ja patiess, tad savienojumiem ar starpniekserveri, nepiecieÅ¡ama identifikÄcija. LietotÄja vÄrds/parole kombinÄcija ir definÄ“ta ar "/system/http_proxy/authentication_user" un "/system/http_proxy/authentication_password". पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ सरà¥à¤µà¤° कनेकà¥à¤¶à¤¨à¥à¤¸ पà¥à¤°à¤¾à¤®à¤¾à¤£à¤¿à¤¤ करू जठसही अछि तखन पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¤°à¤®à¥‡ संबंधन क' लेल सतà¥à¤¯à¤¾à¤ªà¤¨à¤• जरूरत होइछ. पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾à¤¨à¤¾à¤®/कूटशबà¥à¤¦ कोंबो केठ"/system/http_proxy/authentication_user" आओर "/system/http_proxy/authentication_password" क' दà¥à¤µà¤¾à¤°à¤¾ परिभाषित हठछै. Manamarina ny fifandraisana amin'ny mpizara proxy Raha toa ka marina, dia mila fanamarinana ny fifandraisana amin'ilay mpizara proxy. Ny "/system/http_proxy/authentication_user" sy ny "/system/http_proxy/authentication_password" no mamaritra ny amboara anaran'ny mpampiasa/teny fanalahidy. Барај proxy автентикација за врÑките до Ñерверот Ðко е точно, тогаш врÑките до proxy Ñерверот бараат проверка. КориÑничкото име и лозинката дефинирани од Ñтрана на „/system/http_proxy/authentication_user“ и „/system/http_proxy/authentication_password“. à´ªàµà´°àµ‹à´•àµà´¸à´¿ സരàµâ€à´µà´°àµâ€ കണകàµà´·à´¨àµà´•ളിലàµâ€ ആധികാരികത ഉറപàµà´ªàµ വരàµà´¤àµà´¤àµà´• à´Ÿàµà´°àµ‚ à´Žà´™àµà´•à´¿à´²àµâ€, à´ªàµà´°àµ‹à´•àµà´¸à´¿ സരàµâ€à´µà´±à´¿à´²àµ‡à´•àµà´•àµà´³à´³ കണകàµà´·à´¨àµà´•à´³àµâ€à´•àµà´•ൠആധികാരികത ഉറപàµà´ªàµ വരàµà´¤àµà´¤àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ. "/system/http_proxy/authentication_user" , "/system/http_proxy/authentication_password" ഉപയോഗിചàµà´šàµ username/password കോംപോ à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ. ИтгÑмжилÑгч Ñервер холболтыг батал परà¥à¤¯à¤¾à¤¯à¥€ सरà¥à¤µà¤° जोडणी अधिकृतपणे तपासून पहा जर ठिक असेल तर, परà¥à¤¯à¤¾à¤¯à¥€ सरà¥à¤µà¤° जोडणीला होकार दà¥à¤¯à¤¾à¤µà¤¾ लागेल. वापरकरà¥à¤¤à¤¾/गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦à¤¾à¤šà¥‡ निशà¥à¤šà¤¿à¤¤à¥€à¤•रण "/system/http_proxy/authentication_user" आणि "/system/http_proxy/authentication_password". Autentiser forbindelser til proxytjener Hvis sann vil tilkoblinger til proxytjener kreve autentisering. Brukernavn/passord-kombinasjonen er definert i «/system/http_proxy/authentication_user» og «/system/http_proxy/authentication_password». पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रण पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सरà¥à¤­à¤° जडान यदि ठीक भà¤à¤®à¤¾, तà¥à¤¯à¤¸à¤ªà¤›à¤¿ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सरà¥à¤­à¤°à¤¸à¤à¤— जडान गरà¥à¤¨ पà¥à¤°à¤®à¤¾à¤£à¤¿à¤•रण चाहिनà¥à¤› ।"/system/http_proxy/authentication_user" र "/system/http_proxy/authentication_password" दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤¨à¤¾à¤®/पासवरà¥à¤¡ कमà¥à¤¬à¥‹ परिभाषित गरिनà¥à¤› । Aanmeldingscontrole gebruiken bij proxyserver-verbindingen Indien waar, wordt voor een verbinding met de proxyserver aanmeldingscontrole vereist. De combinatie van gebruikersnaam en wachtwoord komt voort uit "/system/http_proxy/authentication_user" en "/system/http_proxy/authentication_password". Autentiser tilkoplingar til mellomtenaren Dersom denne er sann, skal tilkoplingar til mellomtenaren autentiserast. Brukarnamn og passord er definerte i nøklane «/system/http_proxy/authentication_user» og «/system/http_proxy/authentication_password». TiiÅ¡etÅ¡a dikgokagano tÅ¡a seabi tÅ¡eo e lego kemedi ଛାୟା ସେବକ ସଂଯୋଗଗà­à¬¡à¬¿à¬¼à¬• ବୈଧ କରନà­à¬¤à­ ସତ ହେଲେ, ଛାୟା ସେବକ ସହିତ ସଂଯୋଗ ପାଇଠବୈଧିକରଣ ଆବଶà­à¬¯à¬•. ଚାଳକ ନାମ / ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ "/system/http_proxy/authentication_user" ଓ "/system/http_proxy/authentication_password" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ. ਪਰਮਾਣਿਤ ਪਰਾਕਸੀ ਸਰਵਰ ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਜੇਕਰ ਸਹੀ ਹੈ ਤਾਂ, ਪਰਾਕਸੀ ਸਰਵਰ ਤੇ ਕà©à¨¨à©ˆà¨•ਸ਼ਨ ਸਮੇ ਪਰਮਾਣਕਿਤਾ ਲਈ ਦੀ ਲੋਡ਼ ਪਵੇਗੀ। ਯੂਜ਼ਰ ਨਾਂ/ਪਾਸਵਰਡ ਡੱਬਾ "/system/http_proxy/authentication_user" ਅਤੇ "/system/http_proxy/authentication_password" ਨੇ ਦਿੱਤਾ ਹੈ। Uwierzytelnianie połączeÅ„ do serwera poÅ›redniczÄ…cego Jeżeli ustawione, połączenia do serwera poÅ›redniczÄ…cego wymagajÄ… uwierzytelniania. Lista rozwijana użytkownik/hasÅ‚o jest zdefiniowana przez "/system/http_proxy/authentication_user" oraz "/system/http_proxy/authentication_password". Autenticar ligações ao servidor proxy Se verdadeiro, ligações ao servidor proxy requerem autenticação. O conjunto utilizador/senha é definido por "/system/http_proxy/authentication_user" e "/system/http_proxy/authentication_password". Conexões de proxy autenticadas Se verdadeiro, as conexões ao servidor proxy requerem autenticação. A combinação usuário/senha é definida por "/system/http_proxy/authentication_user" e "/system/http_proxy/authentication_password". Autentificare la conectarea prin proxy La activare, conectarea la serverul proxy necesită autentificare. CombinaÈ›ia nume_utilizator/parolă e definită de „/system/http_proxy/authentication_user†și „/system/http_proxy/authentication_passwordâ€. Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервером требуют авторизации ЕÑли Ñтот ключ уÑтановлен, то ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервером требуют авторизации. Пара значений имÑ_пользователÑ/пароль определÑетÑÑ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸ "/system/http_proxy/authentication_user" и "/system/http_proxy/authentication_password". OverovaÅ¥ totožnosÅ¥ spojení s proxy serverom Ak je true, pripojenia k proxy serveru vyžadujú overenie totožnosti. Kombinácia používateľ/heslo je definovaná v "/system/http_proxy/authentication_user" a "/system/http_proxy/authentication_password". Overi povezave posredovalnega strežnika Možnost doloÄa zahtevo za overitev povezave na posredovalni strežnik. Spustno polje za uporabniÅ¡ko ime in geslo doloÄata "/system/http_proxy/authentication_user" in "/system/http_proxy/authentication_password". Autentifiko lidhjet proxy server Nëse e vërtetë, atëhere lidhjet me server-in proxy kanë nevojë për autentifikim. Kombinimi përdorues/fjalëkalim përcaktohet nga "/system/http_proxy/authentication_user" dhe "/system/http_proxy/authentication_password". Идентификуј везе Ñа поÑредничким Ñервером Уколико је поÑтављено, везе Ñа поÑредничким Ñервером Ñе идентификују. Пар кориÑник/лозинка Ñе узима из „/system/http_proxy/authentication_user“ и „/system/http_proxy/authentication_password“. Идентификуј везе Ñа поÑредничким Ñервером Identifikuj veze sa posredniÄkim serverom Ukoliko je postavljeno, veze sa posredniÄkim serverom se identifikuju. Par korisnik/lozinka se uzima iz „/system/http_proxy/authentication_user“ i „/system/http_proxy/authentication_password“. Autentisera proxyserveranslutningar Om detta är sant kräver anslutningarna till proxyservern autentisering. Användarnamn- och lösenordsparet definieras av "/system/http_proxy/authentication_user" och "/system/http_proxy/authentication_password". பà¯à®°à®¾à®•à¯à®¸à®¿ வேகன௠இணைபà¯à®ªà®¿à®©à¯ அனà¯à®®à®¤à®¿à®¯à¯ˆ சரிபார௠உணà¯à®®à¯ˆà®¯à¯†à®©à®¿à®²à¯ பதிலாள௠சேவையகதà¯à®¤à¯ˆ இணைகà¯à®• à®…à®™à¯à®•ீகாரம௠தேவை. "/system/http_proxy/authentication_user" and "/system/http_proxy/authentication_password"ஆலà¯à®ªà®¯à®©à®°à¯à®ªà¯†à®¯à®°à¯/கடவà¯à®šà¯à®šà¯Šà®²à¯ சேரà¯à®•à¯à®•ை பெடà¯à®Ÿà®¿à®¯à®¿à®²à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯. à°ªà±à°°à°¾à°®à°¾à°£à°¿à°•à°°à°£ à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ సేవిక బంధాలౠనిజమైతే, à°ªà±à°°à±‹à°•à±à°¸à±€ సేవికకౠఅనà±à°¸à°‚ధానమà±à°²à±à°•ౠదృవీకరణ అవసరమౌతà±à°‚ది. వినియోగదారి/సంకేతపదం à°¯à±à°—ళం "/system/http_proxy/authentication_user" మరియౠ"/system/http_proxy/authentication_password"చేత నిరà±à°µà°šà°¿à°‚పబడà±à°¤à±à°‚ది. ตรวจสอบสิทธิ์à¸à¹ˆà¸­à¸™à¹ƒà¸Šà¹‰à¸žà¸£à¹‡à¸­à¸à¸‹à¸µ ถ้าตั้งเป็นค่าจริง à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อผ่านพร็อà¸à¸‹à¸µà¸ˆà¸°à¸•้องผ่านà¸à¸²à¸£à¸•รวจสอบสิทธิ์à¸à¹ˆà¸­à¸™ ชื่อผู้ใช้à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹€à¸­à¸²à¸¡à¸²à¸ˆà¸²à¸ "/system/http_proxy/authentication_user" à¹à¸¥à¸° "/system/http_proxy/authentication_password" Vekil sunucu baÄŸlantılarında kimlik doÄŸrulaması yap EÄŸer seçiliyse, vekil sunucusuna baÄŸlantılar kimlik doÄŸrulaması gerektirir. kullanıcı adı/parola ikilisi "/system/http_proxy/authentication_user" ve "/system/http_proxy/authentication_password" ile tanımlanır. З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· прокÑÑ–-Ñервером вимагають автентифікації Якщо ввімкнено, з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· прокÑÑ–-Ñервером вимагатимуть аутентифікації. Пара параметрів ім'Ñ/пароль визначаєтьÑÑ ÐºÐ»ÑŽÑ‡Ð°Ð¼Ð¸ "/system/http_proxy/authentication_user" та "/system/http_proxy/authentication_password". Xác thá»±c sá»± kết nối đến máy phục vụ á»§y nhiệm Nếu đúng, má»i sá»± kết nối đến máy phục vụ á»§y nhiệm cần thiết xác thá»±c. Tổ hợp tên ngưá»i dùng và mật khẩu được định nghÄ©a bằng « /system/http_proxy/authentication_user » và « /system/http_proxy/authentication_password ». Qinisekisa unxulumano lweseva elawula kwi-intanethi 认è¯ä»£ç†æœåŠ¡å™¨è¿žæŽ¥ è‹¥ä¸ºçœŸï¼Œåˆ™å¯¹ä»£ç†æœåŠ¡å™¨çš„è¿žæŽ¥éœ€è¦èº«ä»½éªŒè¯ã€‚用户å/密ç ç»„åˆç”±â€œ/system/http_proxy/authentication_userâ€å’Œâ€œ/system/http_proxy/authentication_passwordâ€å®šä¹‰ã€‚ 驗證代ç†ä¼ºæœå™¨é€£ç·š 如設定為“trueâ€ï¼Œé‚£éº¼é€£æŽ¥åˆ°ä»£ç†ä¼ºæœå™¨æ™‚需è¦èªè­‰ã€‚使用者/密碼的組åˆåœ¨ “/system/http_proxy/authentication_userâ€å’Œâ€œ/system/http_proxy/authentication_passwordâ€ä¸­è¨­å®šã€‚ 驗證代ç†ä¼ºæœå™¨é€£ç·š 如設定為“trueâ€ï¼Œé‚£éº¼é€£æŽ¥åˆ°ä»£ç†ä¼ºæœå™¨æ™‚需è¦èªè­‰ã€‚使用者/密碼的組åˆåœ¨ “/system/http_proxy/authentication_userâ€å’Œâ€œ/system/http_proxy/authentication_passwordâ€ä¸­è¨­å®šã€‚ Qiniseka ngesixhumaniso sesibenzisi esingumbambeli /schemas/system/http_proxy/authentication_user /system/http_proxy/authentication_user gnome-vfs string HTTP proxy username User name to pass as authentication when doing HTTP proxying. HTTP-instaangebruikernaam Gebruikernaam wat as geldigheidsvasstelling gevoer moet word wanneer HTTP-instanery gedoen word. اسم مستخدم وسيط الـ HTTP اسم المستخدم الذي سيمرر عند القيام بوسيطة الـ HTTP. HTTP পà§à§°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীৰ নাম HTTP পà§à§°à¦•à§à¦¸à¦¿à§° কà§à¦·à§‡à¦¤à§à§°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à§° জনà§à¦¯ পà§à§°à¦¯à§‹à¦œà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীৰ নাম । Usuariu del proxy HTTP Nome d'usuariu pa pasar como autenticación al facer proxy HTTP. HTTP vÉ™kil istifadəçi adı HTTP vÉ™killÉ™ndirmÉ™sindÉ™ göndÉ™rilÉ™cÉ™k istifadəçi adı. Уліковы Ð·Ð°Ð¿Ñ–Ñ Ð´Ð»Ñ Ñ–Ð´Ñнтыфікацыі на HTTP proxy Уліковае імÑ, каб прайÑьці ідÑнтыфікацыю на паўнамоцным (proxy) паÑлужніку па http. ПотребителÑко име за Ñървъра-поÑредник за HTTP ПотребителÑко име, което да Ñе подава като идентификациÑ, при използване на Ñървър-поÑредник за HTTP. HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করার সময় যে বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম পà§à¦°à¦®à¦¾à¦£à§€à¦•রণ হিসেবে পà§à¦°à§‡à¦°à¦£ করা হবে। HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° জনà§à¦¯ পà§à¦°à¦¯à§‹à¦œà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর নাম। KorisniÄko ime za HTTP proxy KorisniÄko ime za provjeru autentiÄnosti tokom obavljanja HTTP proxying. Nom d'usuari del servidor intermediari d'HTTP Nom d'usuari a passar com autenticació quan es fa servir el servidor intermediari d'HTTP. Nom d'usuari del servidor intermediari d'HTTP Nom d'usuari a passar com autenticació quan es fa servir el servidor intermediari d'HTTP. Jméno uživatele proxy HTTP Jméno uživatele, které pÅ™edávat jako autentizaci pÅ™i používání proxy HTTP. Enw defnyddiwr y dirprwy HTTP Enw'r defnyddiwr i'w basio i'r dirprwy HTTP wrth ddilysu HTTP-mellemværtsbrugernavn Brugernavn der skal videregives til brugergodkendelse til HTTP-mellemvært. Benutzername am HTTP-Proxy Zur HTTP-Proxy-Legitimation zu übergebender Benutzername. ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་་ ལག་ལེན་པའི་མིང༌༠ཨེཆ་ཊི་ཊི་པི་ པོརོག་སིང་གི་སà¾à½–ས་ལུ་ བདེན་བཤད་བཟུམ་སྦེ་སྤྲོད་ནིའི་ ལག་ལེན་པའི་མིང་༠Όνομα χÏήστη διαμεσολαβητή HTTP Όνομα χÏήστη για να πεÏάσει ως πιστοποίηση κατά τη διαμεσολάβηση http. HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘¿ð‘Ÿð‘¼ð‘¯ð‘±ð‘¥ ð‘¿ð‘Ÿð‘¼ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘­ð‘• ð‘¨ð‘Ÿ ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘–ð‘©ð‘¯ ð‘¢ð‘§ð‘¯ ð‘›ð‘µð‘¦ð‘™ HTTP ð‘ð‘®ð‘ªð‘’ð‘•ð‘¦ð‘¦ð‘™. HTTP proxy username Username to pass as authentication when doing HTTP proxying. HTTP proxy username User name to pass as authentication when doing HTTP proxying. HTTP-prokura uzantnomo Usuario del proxy HTTP Nombre de usuario para pasar como autenticación al hacer proxy HTTP. HTTP proksi kasutajanimi Kasutajanimi mida saadetakse autentimiseks HTTP proxile. HTTP proxy-ko erabiltzaile-izena Erabiltzaile-izena HTTP proxy-a egiterakoan egiaztatzeko. HTTP-välipalvelimen käyttäjätunnus HTTP-välipalvelimelle välittyvä todentava käyttäjätunnus Nom d'utilisateur du serveur mandataire HTTP Nom d'utilisateur à fournir comme authentification lors de l'utilisation du serveur mandataire HTTP. Nome de usuario para o proxy HTTP Nome de usuario requirido na autenticación ao usar o proxy HTTP. HTTP પà«àª°à«‹àª•à«àª¸à«€ વપરાશકરà«àª¤àª¾ જà«àª¯àª¾àª°à«‡ HTTPની પà«àª°à«‹àª•à«àª¸à«€àª¨à« કામ કરતા હોઇઠતà«àª¯àª¾àª°à«‡ સાચાની ખાતરી કરવા માટે આપવાનૠવપરાશકરà«àª¤àª¾àª¨à« નામ. HTTP proxy username User name to pass as authentication when doing HTTP proxying. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ उपयोगकरà¥à¤¤à¤¾à¤¨à¤¾à¤® जब à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ कर रहे हों तो पà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण हेतॠपास करने के लिठउपयोगकरà¥à¤¤à¤¾ नाम. Ime korisnika HTTP proxy-a KorisniÄko ime koje treba proći provjeru vjerodostojnosti kod http proxy-a. HTTP proxy felhasználónév HTTP proxy használatakor hitelesítéshez használandó felhasználónév. Nama pengguna proksi HTTP Nama pengguna untuk menerapkan proksi terhadap HTTP. Nome utente per proxy HTTP Nome utente da fornire come autenticazione nell'effettuare proxy HTTP. HTTP プロキシã®ãƒ¦ãƒ¼ã‚¶å HTTP プロキシを利用ã™ã‚‹ã¨ãã«èªè¨¼ã¨ã—ã¦å¼•ãæ¸¡ã™ãƒ¦ãƒ¼ã‚¶åã§ã™ã€‚ HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი HTTP პრáƒáƒ¥áƒ¡áƒ˜ სერვერისთვის. HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಬಳಕೆದಾರಹೆಸರೠHTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಕಾರà³à²¯à²µà²¨à³à²¨à³ ನಡೆಸà³à²µà²¾à²— ದೃಢೀಕರಿಸಲೠಬಳಸಬೇಕಿರà³à²µ ಬಳಕೆದಾರ ಹೆಸರà³. HTTP 프ë¡ì‹œ ì‚¬ìš©ìž ì´ë¦„ HTTP 프ë¡ì‹œë¥¼ 쓸 때 ì¸ì¦í•˜ë©´ì„œ 넘기는 ì‚¬ìš©ìž ì´ë¦„. HTTP tarpinio serverio naudotojas Naudotojo vardas naudojamas jungiantis per HTTP tarpinį serverį. HTTP starpnieka lietotÄja vÄrds LietotÄja vÄrds, lai izietu identifikÄciju,veicot HTTP starpniekoÅ¡anu (proxying). à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ नाम जखन à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ कठरहल छी तठपà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण लेल पास करबाक लेल पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ नाम. Anaran'ny mpampiasan'ny proxy HTTP Anaram-pampiasa omena hamarinina rehefa manao proxy HTTP. КориÑничко име за HTTP proxy КориÑничко име и лозинка за проверка кога кориÑтите HTTP прокÑи. HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚ HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´ªàµ‹à´³àµâ€ ആധികാരികത ഉറപàµà´ªàµ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ നിങàµà´™à´³àµâ€ ഉപയോഗികàµà´•àµà´¨àµà´¨ പേരàµ. HTTP итгÑмжилÑгчийн Ñ…ÑÑ€ÑглÑгчийн нÑÑ€ HTTP итгÑмжилÑл хийж байхад бататгах Ñ…ÑÑ€ÑглÑгчийн нÑÑ€ HTTP परà¥à¤¯à¤¾à¤¯à¥€ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव HTTP साठी पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ निवडतेवेळी वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव टाकून अधिकृतपणे निशà¥à¤šà¤¿à¤¤ करा. Brukernavn for HTTP-proxy Brukernavn som skal oppgis som autentisering ved bruk av HTTP-proxy. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ नाम à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¦à¤¾, पà¥à¤°à¤®à¤¾à¤£à¥€à¤•रणका रूपमा पास गरिने पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ नाम । HTTP-proxy gebruikersnaam Te gebruiken naam voor identificatie bij HTTP-proxy. Brukarnamn pÃ¥ HTTP-mellomtenar Brukarnamn som skal brukast til autentisering nÃ¥r ein HTTP-mellomtenar vert brukt Leina la modiriÅ¡i la kemedi la PFSK Leina la modiriÅ¡i la go feta bjalo ka tiiÅ¡etÅ¡o ge go dirwa kemedi ya PFSK. à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଚାଳକନାମ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟାକରଣ ବେଳେ ବୈଧିକରଣ ପାଇଠଚାଳକ ନାମ. HTTP ਪਰਾਕਸੀ ਯੂਜ਼ਰ ਨਾਂ ਯੂਜ਼ਰ ਨਾਂ, ਪਰਮਾਣਕਤਾ ਨੂੰ ਲੰਘਣ ਲਈ, ਜਦੋਂ ਕਿ HTTP ਪਰਾਕਸੀਇੰਗ ਕਰ ਰਹੇ ਹੋ। Nazwa użytkownika poÅ›rednika HTTP Nazwa użytkownika przekazywana do uwierzytelnienia podczas operacji poÅ›redniczenia http. Utilizador da proxy HTTP Utilizador a indicar como autenticação ao efectuar proxy de HTTP. Usuário do proxy HTTP Nome de usuário para ser enviado na autenticação ao realizar proxy de HTTP. Nume utilizator proxy HTTP Nume utilizator necesar autentificării la serverul proxy HTTP. Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ авторизации на прокÑи-Ñервере Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP. Meno používateľa pre HTTP proxy Používateľ poskytnutý pri overení totožnosti poÄas proxy HTTP. UporabniÅ¡ko ime HTTP posredniÅ¡kega strežnika UporabniÅ¡ko ime za overitev na HTTP posredovalnem strežniku. Përdoruesi për proxy HTTP Emri i përdoruesit që duhet dhënë për autentifikim kur përdoret proxy HTTP. КориÑник HTTP поÑредника КориÑничко име које Ñе шаље при идентификацији код веб поÑредника. КориÑник HTTP поÑредника КориÑничко име које Ñе шаље при идентификацији код веб поÑредника. Korisnik HTTP posrednika KorisniÄko ime koje se Å¡alje pri identifikaciji kod veb posrednika. Användarnamn för HTTP-proxyserver Användarnamn att skicka som autentisering vid användning av HTTP-proxyserver. HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பயனீடà¯à®Ÿà®¾à®³à®°à¯ பெயர௠HTTP பà¯à®°à®¾à®•à¯à®¸à®¿à®¯à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯ போத௠அனà¯à®®à®¤à®¿ பெற பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¿à®¯ பயனீடà¯à®Ÿà®¾à®³à®°à¯ பெயர௠HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ వినియోగదారౠనామమౠHTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ పరà±à°¸à±à°¤à±à°¨à±à°¨à°ªà±à°ªà±à°¡à± రూపశిలà±à°ªà°‚ లాగా పోవà±à°Ÿà°•ౠవినియోగదారౠనామమà±. ชื่อบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸žà¸£à¹‡à¸­à¸à¸‹à¸µ HTTP ชื่อบัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸ªà¸³à¸«à¸£à¸±à¸šà¸•รวจสอบสิทธิ์à¸à¸±à¸šà¸žà¸£à¹‡à¸­à¸à¸‹à¸µ HTTP HTTP vekil sunucu kullanıcı adı HTTP vekili kimlik doÄŸrulamasında kullanacağı kullanıcı adı. Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача прокÑÑ–-Ñервера протоколу HTTP Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, що викориÑтовуєтьÑÑ Ð¿Ñ€Ð¸ автентифікацій прокÑÑ–-Ñлужбою протоколу HTTP. HTTP proksi foydalanuvchi nomi HTTP прокÑи фойдаланувчи номи Tên ngưá»i dùng á»§y nhiệm HTTP Tên ngưá»i dùng để gởi qua là xác thá»±c khi dùng á»§y nhiệm HTTP. Igama lomsebenzisi wekhompyutha esebenza njengomqobo ye-HTTP Igama lomsebenzisi ukudlula njengoqinisekiso xa usebenzisa ikhompyutha esebenza njengomqobo ye-HTTP. HTTP 代ç†ç”¨æˆ·å 用于 HTTP 代ç†è®¤è¯çš„用户å。 HTTP 代ç†ä¼ºæœå™¨ä½¿ç”¨è€…å稱 使用 HTTP 代ç†ä¼ºæœå™¨æ™‚用來驗證的使用者å稱。 HTTP 代ç†ä¼ºæœå™¨ä½¿ç”¨è€…å稱 使用 HTTP 代ç†ä¼ºæœå™¨æ™‚用來驗證的使用者å稱。 Umbambeli webizo-lukusetshenziswa ku-HTTP Umsebenzisi gama ezedlula njengesiqiniseko mawenza isibambeli se-HTTP. /schemas/system/http_proxy/authentication_password /system/http_proxy/authentication_password gnome-vfs string HTTP proxy password Password to pass as authentication when doing HTTP proxying. HTTP-instaanwagwoord Wagwoord wat as geldigheidsvasstelling gevoer moet word wanneer HTTP-instanery gedoen word. كلمة سر وسيط الـ HTTP كلمة السر التي ستمرر للتوثق عند القيام بوسيطة الـ http. HTTP পà§à§°à¦•à§à¦¸à¦¿ পাসৱৰà§à¦¡ HTTP পà§à§°à¦•à§à¦¸à¦¿à§° কà§à¦·à§‡à¦¤à§à§°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à§° জনà§à¦¯ পà§à§°à¦¯à§‹à¦œà§à¦¯ পাসৱৰà§à¦¡ Contraseña del proxy HTTP Contraseña pa usar como autenticación al coneutar col proxy HTTP. HTTP vÉ™kil ÅŸifrÉ™si HTTP vÉ™killÉ™ndirmÉ™sindÉ™ göndÉ™rilÉ™cÉ™k ÅŸifrÉ™. Пароль Ð´Ð»Ñ Ð¿Ð°ÑžÐ½Ð°Ð¼Ð¾Ñ†Ð½Ð°Ð³Ð° па HTTP Пароль Ð´Ð»Ñ Ñ–Ð´Ñнтыфікацыі Ñž чаÑе перадачы паўнамоцтваў на HTTP. Парола за Ñървъра-поÑредник за HTTP Парола, коÑто да Ñе подава като Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½Ð° Ñървъра-поÑредник за HTTP. HTTP পà§à¦°à¦•à§à¦¸à¦¿ পাসওয়ারà§à¦¡ HTTP পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à§‡à¦° সময় পà§à¦°à¦®à¦¾à¦£à§€à¦•রণ হিসেবে যে পাসওয়ারà§à¦¡ পà§à¦°à§‡à¦°à¦£ করা হবে। HTTP পà§à¦°à¦•à§à¦¸à¦¿ পাসওয়ারà§à¦¡ HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° জনà§à¦¯ পà§à¦°à¦¯à§‹à¦œà§à¦¯ পাসওয়ারà§à¦¡ Å ifra za HTTP proxy Å ifra kod provjere autentiÄnosti tokom obavljanja HTTP proxying. Contrasenya del servidor intermediari d'HTTP Contrasenya a passar com autenticació quan es fa servir el servidor intermediari d'HTTP. Contrasenya del servidor intermediari d'HTTP Contrasenya a passar com autenticació quan es fa servir el servidor intermediari d'HTTP. Heslo proxy HTTP Heslo, které pÅ™edat jako autentizaci pÅ™i používání HTTP proxy. Cyfrinair y dirprwy HTTP Cyfrinair i'w basio i'r dirprwy HTTP wrth ddilysu. HTTP-mellemværtsadgangskode Adgangskode der skal gives som brugergodkendelse for HTTP-mellemvært. Passwort am HTTP-Proxy Zur HTTP-Proxy-Legitimation zu übergebendes Passwort ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ཆོག་ཡིག ཨེཆ་ཊི་ཊི་པི་ པོརོག་སིང་གི་སà¾à½–ས་ལུ་ ཆོག་ཡིག་དེ་ བདེན་བཤད་བཟུམ་ཅིག་སྦེ་སྤྲོད་ནི༠Κωδικός διαμεσολαβητή HTTP Κωδικός Ï€Ïόσβασης για πιστοποίηση όταν γίνεται διαμεσολάβηση HTTP. HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘ð‘­ð‘•ð‘¢ð‘¼ð‘› ð‘‘ ð‘ð‘­ð‘• ð‘¨ð‘Ÿ ð‘·ð‘”ð‘§ð‘¯ð‘‘ð‘¦ð‘’ð‘±ð‘–ð‘©ð‘¯ ð‘¢ð‘§ð‘¯ ð‘›ð‘µð‘¦ð‘™ HTTP ð‘ð‘®ð‘ªð‘’ð‘•ð‘¦ð‘¦ð‘™. HTTP proxy password Password to pass as authentication when doing HTTP proxying. HTTP proxy password Password to pass as authentication when doing HTTP proxying. HTTP-prokura pasvorto Contraseña del proxy HTTP Contraseña para usar como autenticación al hacer proxy por HTTP. HTTP proksi salasõna Parool, mida HTTP proxile autentimiseks saata. HTTP proxy-aren pasahitza Pasahitza, HTTP proxy-a erabiltzean autentifikatzeko. HTTP-välipalvelimen salasana HTTP-välipalvelimelle välittyvä todentava salasana. Mot de passe du serveur mandataire HTTP Mot de passe à fournir comme authentification lors de l'utilisation du serveur mandataire HTTP. Contrasinal do proxy HTTP Contrasinal requirido como autenticación ao usar o proxy HTTP. HTTP પà«àª°à«‹àª•à«àª¸à«€ પાસવરà«àª¡ જà«àª¯àª¾àª°à«‡ HTTP ની પà«àª°à«‹àª•à«àª¸à«€ કરતા હોઇઠતà«àª¯àª¾àª°à«‡ સાચૠછે કે નહિ તેની ખાતરી કરવા માટે આપવાનો પાસવરà«àª¡. HTTP proxy password Password to pass as authentication when doing HTTP proxying. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पासवरà¥à¤¡ जब à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ कर रहे हों तो पà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण हेतॠपास करने के लिठपासवरà¥à¤¡. Lozinka za HTTP proxy Lozinka za prolazak provjere vjerodostojnosti kod koriÅ¡tenja http proxy-a. HTTP proxy jelszó HTTP proxy használatakor hitelesítéshez használandó jelszó. Sandi proksi HTTP Sandi untuk menerapkan proksi terhadap HTTP. Password per proxy HTTP Password da fornire come autenticazione nell'effettuare proxy HTTP. HTTP プロキシã®ãƒ‘スワード HTTP プロキシを利用ã™ã‚‹ã¨ãã«èªè¨¼ã¨ã—ã¦å¼•ãæ¸¡ã™ãƒ‘スワードã§ã™ã€‚ HTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒáƒšáƒ˜ áƒáƒ£áƒ—ენტიფიკáƒáƒªáƒ˜áƒ˜áƒ¡ პáƒáƒ áƒáƒšáƒ˜ HTTP პრáƒáƒ¥áƒ¡áƒ˜ სერვერისთვის. HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಗà³à²ªà³à²¤à²ªà²¦ HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಕಾರà³à²¯à²µà³ ನಡೆಸà³à²µà²¾à²— ದೃಢೀಕರಿಸಲೠಬಳಸಬೇಕಿರà³à²µ ಗà³à²ªà³à²¤à²ªà²¦. HTTP 프ë¡ì‹œ 암호 HTTP 프ë¡ì‹œë¥¼ 쓸 때 ì¸ì¦í•˜ë©´ì„œ 넘기는 암호. HTTP tarpinio serverio slaptažodis Slaptažodis, naudojamas jungiantis per HTTP tarpinį serverį. HTTP starpnieka parole Parole identificÄ“joties, veicot HTTP starpniekoÅ¡anu. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ कूटशबà¥à¤¦ जखन à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ कठरहल अछि तठपà¥à¤°à¤¾à¤®à¤¾à¤£à¥€à¤•रण लेल पास करबाक लेल कूटशबà¥à¤¦. Teny fanalahidin'ny proxy HTTP Ny teny fanalahidy omena hamarinina rehefa manao proxy HTTP. Лозинка за HTTP proxy Лозинка за преминување на автентикацијата кога Ñе работи преку HTTP proxy. HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´ªàµ‹à´³àµâ€ ആധികാരികത ഉറപàµà´ªàµà´µà´°àµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ പാസàµâ€à´µàµ‡à´°àµâ€à´¡àµ. HTTP итгÑмжилÑгчийн нууц үг HTTP итгÑмжилÑл хийх үеийн батламжийн нууц үг. HTTP परà¥à¤¯à¤¾à¤¯à¥€ गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ निशà¥à¤šà¤¿à¤¤à¥€à¤•रणासाठी गà¥à¤ªà¥à¤¤à¤¶à¤¬à¥à¤¦ टाकून HTTP परà¥à¤¯à¤¾à¤¯à¥€à¤•रण होत असलà¥à¤¯à¤¾à¤šà¥‡ पहा. Passord for HTTP-proxy Passord som skal oppgis ved autentisering for bruk av HTTP-proxy. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पासवरà¥à¤¡ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¦à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤¿à¤•रणको रूपमा पास गरिने पासवरà¥à¤¡ । HTTP-proxy wachtwoord Te gebruiken wachtwoord bij gebruik van de HTTP proxy. Passord pÃ¥ HTTP-mellomtenar Passord som skal brukast til autentisering nÃ¥r ein HTTP-mellomtenar vert brukt LentÅ¡u-phetiÅ¡o la kemedi la PFSK LentÅ¡u-phetiÅ¡o le tla fetago bjalo ka tiiÅ¡etÅ¡o ge go dirwa boemedi bja PFSK. à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟାକରଣ ବେଳେ ବୈଧିକରଣ ପାଇଠପà­à¬°à¬¬à­‡à¬¶ ସଂକେତ HTTP ਪਰਾਕਸੀ ਪਾਸਵਰਡ ਪਰਮਾਣਿਕਤਾ ਨੂੰ ਦੇਣ ਲਈ ਪਾਸਵਰਡ, ਜਦੋਂ ਕਿ HTTP ਪਰਾਕਸੀ ਦੀ ਕਾਰਵਾਈ ਕੀਤੀ ਜਾ ਰਹੀ ਹੋਵੇ। HasÅ‚o poÅ›rednika HTTP HasÅ‚o podawane przy uwierzytelnieniu podczas wykonywania operacji poÅ›redniczÄ…cych HTTP. Senha da proxy HTTP Senha a indicar como autenticação ao efectuar proxy de HTTP. Senha do proxy HTTP Senha para ser enviada na autenticação ao realizar proxy de HTTP. Parolă proxy HTTP Parolă necesară la autentificarea la serverul proxy HTTP. Пароль прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° HTTP Пароль Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ на прокÑи-Ñервере протокола HTTP. Heslo pre HTTP proxy Heslo používané pre prihlásenie k proxy HTTP. Geslo posredniÅ¡kega strežnika HTTP Geslo za overitev posredovalnega strežnika HTTP. Fjalëkalimi për proxy HTTP Fjalëkalimi që duhet dhënë si autentifikues kur kryen proxy HTTP. Лозинка HTTP поÑредника Лозинка која Ñе кориÑти за идентификацију код веб поÑредника. Лозинка HTTP поÑредника Лозинка која Ñе кориÑти за идентификацију код веб поÑредника. Lozinka HTTP posrednika Lozinka koja se koristi za identifikaciju kod veb posrednika. Lösenord för HTTP-proxyserver Lösenord att skicka som autentisering vid användning av HTTP-proxyserver. HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ கடவà¯à®šà¯à®šà¯Šà®²à¯ HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯à®ªà¯‹à®¤à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¿à®¯ கடவà¯à®šà¯à®šà¯Šà®²à¯ HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రహసà±à°¯à°ªà°¦à°‚ రహసà±à°¯à°ªà°¦à°‚à°•à± HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°¿à°‚à°šà±à°Ÿà°•ౠరహసà±à°¯à°ªà°¦à°‚à°•à± à°ªà±à°°à°¾à°®à°¾à°£à°¿à°•à°°à°£ รหัสผ่านพร็อà¸à¸‹à¸µ HTTP รหัสผ่านสำหรับà¸à¸²à¸£à¸•รวจสอบสิทธิ์ใช้พร็อà¸à¸‹à¸µ HTTP HTTP vekil sunucu parolası HTTP vekili kimlik doÄŸrulaması için kullanılacak ÅŸifre. Пароль Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñервера протоколу HTTP Пароль Ð´Ð»Ñ Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— прокÑÑ–-Ñлужбою протоколу HTTP. HTTP proksi maxfiy soÊ»zi HTTP прокÑи махфий Ñўзи Mật khẩu á»§y nhiệm HTTP Mật khẩu để gởi qua là xác thá»±c khi dùng á»§y nhiệm HTTP. i-password yekhompyutha esebenza njengomqobo ye-HTTP i-Password yokudlula njengoqinisekiso xa usebenzisa ikhompyutha esebenza njengomqobo kwi-HTTP. HTTP 代ç†å¯†ç  用于 HTTP 代ç†è®¤è¯çš„密ç ã€‚ HTTP 代ç†ä¼ºæœå™¨å¯†ç¢¼ 使用 HTTP 代ç†ä¼ºæœå™¨æ™‚進行èªè­‰çš„密碼。 HTTP 代ç†ä¼ºæœå™¨å¯†ç¢¼ 使用 HTTP 代ç†ä¼ºæœå™¨æ™‚進行èªè­‰çš„密碼。 Umbambeli womngenisi-bizo ku-HTTP Umngenisi-bizo wokungena njengesiqiniseko uma wenza isibambiso se-HTTP. /schemas/system/http_proxy/ignore_hosts /system/http_proxy/ignore_hosts gnome-vfs list string [localhost,127.0.0.0/8] Non-proxy hosts This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24). Nie-instaangashere Hierdie sleutel bevat 'n lys gashere wat direk in plaas van deur die instaanbediener (indien dit aktief is) gekoppel is. Die waardes kan gasheername, domeine (met 'n aanvanklike instaankarakter soos *.foo.com), IP-gasheeradresse (beide IPv4 en IPv6) en netwerkadresse met 'n netmasker (iets soos 192.168.0.0/24) wees. مضيÙين ليسو مضيÙÙŠ وسيط يحوي هذا Ø§Ù„Ù…ÙØªØ§Ø­ قائمة من المضيÙين المتصلين مباشرة، عوضا عن المتصلين عبر وسيط ما (هذا إذا كان نشطا). يمكن أن تكون القيم أسماء مضيÙين أونطاق (باستخدام رمز تعميم أولي مثل *.foo.com)ØŒ عناوين مضيÙÙŠ الـ IP(IPv4 Ùˆ IPv6) أو عناوين شبكة (مثل 192.168.0.0/24). পà§à§°à¦•à§à¦¸à¦¿-বিহীন হোসà§à¦Ÿ পà§à§°à¦•à§à¦¸à¦¿à§° (যদি সকà§à§°à¦¿à§Ÿ) পৰিবৰà§à¦¤à§‡ সৰাসৰি সংযোগকাৰী হোসà§à¦Ÿà§‡à§° তালিকা à¦à¦‡ কি দà§à¦¬à¦¾à§°à¦¾ উলà§à¦²à¦¿à¦–িত হয়েছে । হোসà§à¦Ÿ-নেম, ডোমেইন (পà§à§°à¦¾à§°à¦®à§à¦­à¦¿à¦• ৱইলà§à¦¡à¦•াৰà§à¦¡à¦¸à¦¹ যেমন *.foo.com), IP হোসà§à¦Ÿ ঠিকানা (IPv4 ও IPv6) ও নেটমাসà§à¦•সহ নেটৱৰà§à¦• ঠিকানাৰ (যেমন 192.168.0.0/24) মান à¦à¦‡ কà§à¦·à§‡à¦¤à§à§°à§‡ অনà§à¦¤à§°à§à¦­à§à¦•à§à¦¤ কৰা যাবে । Hosts ensin proxy Esta clave contién una llista de hosts colos que ta coneutado direutamente, n'arróu de per aciu del proxy (si ta activu). Los valores puen ser nomes de anfitrión, dominios (usando un comodín auxiliar como *.foo.com), direiciones IP de hosts (tantu IPv4 como IPv6) y direiciones de rede con una máscara (daqué como 192.168.0.0/24). VÉ™kil olmayan qovÅŸaqlar This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24). Вузлы Ñкім не патрÑбны proxy паÑлужнік ГÑты ключ зьмÑшчае ÑÑŒÐ¿Ñ–Ñ Ð²ÑƒÐ·Ð»Ð¾Ñž, ÑÐºÑ–Ñ Ð´Ð°Ð»ÑƒÑ‡Ð°Ð½Ñ‹ наўпроÑÑ‚, а не праз паўнамоцны паÑлужнік (калі ён задзейнічаны). ГÑÑ‚Ñ‹Ñ Ð·Ð½Ð°Ñ‡Ñньні могуць быць назвамі вузлоў, маёнткаў (з выкарыÑтаньнем узораў; напрыклад, *.foo.com), IP адраÑоў (вÑÑ€Ñыі 4 Ñ– 6) Ñ– Ñеткавых адраÑоў з маÑкай Ñеткі (напрыклад, 192.168.0.0/24). Сървъри, които да не минават през Ñървър-поÑредник Този ключ Ñъдържа ÑпиÑък Ñ Ñ…Ð¾Ñтове, които за Ñвързани директно, вмеÑто през Ñървър-поÑредник (ако е активно). СтойноÑтите могат да Ñа хоÑтове, домейни (*.foo.com), IP адреÑи на хоÑтове(и IPv4, и IPv6) и мрежови адреÑи Ñ Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð° маÑка (192.168.0.0/24). যে হোসà§à¦Ÿà§‡à¦° জনà§à¦¯ পà§à¦°à¦•à§à¦¸à¦¿ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হবে না à¦à¦‡ কী হোসà§à¦Ÿ তালিকা ধারণ করে, যারা পà§à¦°à¦•à§à¦¸à¦¿ না হয়ে সরাসরি সংযà§à¦•à§à¦¤ (যদি à¦à¦Ÿà¦¿ সকà§à¦°à¦¿à§Ÿ থাকে)। মান হতে পারে হোসà§à¦Ÿà§‡à¦°à¦¨à¦¾à¦®, ডোমেইন (যা *.foo.com-র মত পà§à¦°à¦¾à¦°à¦®à§à¦­à¦¿à¦• ওয়াইলà§à¦¡à¦•ারà§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে), IP হোসà§à¦Ÿà§‡à¦° ঠিকানা (IPv4 à¦à¦¬à¦‚ IPv6 উভয় ধরনের) à¦à¦¬à¦‚ নেটমাসà§à¦• সহ (১৯২.১৬৮.০.০/২৪-র মত) নেটওয়ারà§à¦•ের ঠিকানা। পà§à¦°à¦•à§à¦¸à¦¿-বিহীন হোসà§à¦Ÿ পà§à¦°à¦•à§à¦¸à¦¿à¦° (যদি সকà§à¦°à¦¿à§Ÿ) পরিবরà§à¦¤à§‡ সরাসরি সংযোগকারী হোসà§à¦Ÿà§‡à¦° তালিকা à¦à¦‡ কি দà§à¦¬à¦¾à¦°à¦¾ উলà§à¦²à¦¿à¦–িত হয়েছে। হোসà§à¦Ÿ-নেম, ডোমেইন (পà§à¦°à¦¾à¦°à¦®à§à¦­à¦¿à¦• ওয়াইলà§à¦¡à¦•ারà§à¦¡à¦¸à¦¹ যেমন *.foo.com), IP হোসà§à¦Ÿ ঠিকানা (IPv4 ও IPv6) ও নেটমাসà§à¦•সহ নেটওয়ারà§à¦• ঠিকানার (যেমন 192.168.0.0/24) মান à¦à¦‡ কà§à¦·à§‡à¦¤à§à¦°à§‡ অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤ করা যাবে। RaÄunari bez proxy-a Ovaj kljuÄ sadrži listu raÄunara koji su direktno pripojeni, a ne preko proxy-a (ako je aktivan). Vrijednosti mogu biti imena raÄunara, domene (koriÅ¡tenjem poÄetnog džokera kao *.neÅ¡to.com), IP adrese raÄunara (IPv4 i IPv6) i mrežne adrese sa netmaskom (neÅ¡to kao 192.168.0.0/24). Ordinadors sense servidor intermediari Aquesta clau conté una llista d'ordinadors als que s'està connectat directament, i no a través d'un servidor intermediari (si és actiu). Els valors poden ser noms d'ordinador, dominis (usant un comodí inicial, com *.foo.com), adreces IP d'ordinadors (tant IPv4 com IPv6) i adreces de xarxa amb una màscara de xarxa (alguna cosa com 192.168.0.0/24). Ordinadors sense servidor intermediari Esta clau conté una llista d'ordinadors als que s'està connectat directament, i no a través d'un servidor intermediari (si és actiu). Els valors poden ser noms d'ordinador, dominis (usant un comodí inicial, com *.foo.com), adreces IP d'ordinadors (tant IPv4 com IPv6) i adreces de xarxa amb una màscara de xarxa (alguna cosa com 192.168.0.0/24). PoÄítaÄe bez proxy Tento klÃ­Ä obsahuje seznam poÄítaÄů, které jsou pÅ™ipojeny přímo, ne pÅ™es proxy (pokud je aktivní). Hodnoty mohou být názvy poÄítaÄů, domény (pomocí poÄáteÄního zástupného znaku, napÅ™. *.foo.com), adresy IP poÄítaÄů (IPv4 i IPv6) a adresy sítí s maskou sítÄ› (pÅ™ibližnÄ› jako 192.168.0.0/24). Gweinyddion di-ddirprwy Mae'r allwedd hon yn cynnwys rhestr o weinyddion y cysylltir â hwy yn uniongyrchol, yn hytrach na thrwy'r dirprwy (os defnyddir). Medrwch roi fan hyn enwau gweinyddion, parth-enwau (gan ddefnyddio gwylltnod i ddechrau, fel *.foo.com), rhifau IP gweinyddion (IPv6 yn ogystal â IPv4) a rhifau rhwydwaith gyda masg rhwydwaith (tebyg i 192.168.0.0/24). Værter uden mellemvært Denne nøgle indeholder en liste af værter som der skal tilsluttes til direkte i stedet for gennem mellemværten (hvis den er aktiv). Værdierne kan være værtsnavne, domæner (med et indledende jokertegn som f.eks. *.foo.dk), IP-værtsadresser (bÃ¥de IPv4 og IPv6) og netværksadresser med et netmaske (som f.eks. 192.168.0.0/24). Nicht-Proxy-Rechner Dieser Schlüssel enthält eine Liste der Rechner, mit denen eine Direktverbindung aufgebaut werden soll, also nicht via Proxy (falls aktiv). Als Werte sind Rechnernamen, Domänen (per Wildcard, z.B. *.foo.de), IP-Rechneradresse (sowohl IPv4 als auch IPv6) und Netzwerkadressen mit einer Netzmaske (der Form 192.168.0.0/24) zulässig. པོརོག་སི་མིན་པའི་ ཧོསཊིསི༠ལྡེ་མིག་འདི་ནང་ ཧོསཊི་གི་à½à½¼à¼‹à½¡à½²à½‚་ཅིག་ཡོད་མི་ཚུ་ (ཤུགས་ལྡན་ཨིན་པ་ཅིན)་ པོརོག་སི་མ་བརྒྱུད་པར་ ཕྲང་ཕྲང་མà½à½´à½‘་དེ་ཡོདཔ་ཨིན༠བེ་ལུསི་ཚུ་ ཧོསཊི་མིང་དང་ ཌོ་མེན་ (*.foo.com བཟུམ་གྱི་ འགོ་à½à½¼à½‚་གི་ à½à¼‹à½¡à½ºà½£à¼‹à½€à½Œà½²à¼‹ ལག་ལེན་འà½à½–་སྟེ) ཨའི་པི་ཧོསཊི་à½à¼‹à½–ྱང་(ཨའི་པི་à½à½²à¼‹à¼¤à¼‹à½‘ང་ ཨའི་པི་à½à½²à¼‹à¼¦ གཉིས་ཆ་རང་) ཡོངས་འབྲེལ་གྱི་à½à¼‹à½–ྱང་ (༡༩༢་ ༡༦༨་ ༠་༠ / ༢༤ བཟུམ་འབད་མི་) ནེཊི་མཱཀསི་དང་གཅིག་à½à½¢à¼ Συστήματα χωÏίς διαμεσολαβητή Αυτό το κλειδί πεÏιέχει μια λίστα από συστήματα στα οποία γίνεται απευθείας σÏνδεση, παÏά μέσω του διαμεσολαβητή (αν είναι ενεÏγός). Οι τιμές μποÏεί να είναι ονόματα συστήματος, τομείς (με τη χÏήση μιας αÏχικής wildcard όπως *.foo.com), διευθÏνσεις IP (και IPv4 και IPv6) και διευθÏνσεις δικτÏου με netmask (κάτι σαν 192.168.0.0/24). ð‘¯ð‘ªð‘¯-ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ð‘• Non-proxy hosts This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24). Non-proxy hosts This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24). Equipos sin proxy Esta clave contiene una lista de anfitriones con los que está conectado directamente, en vez de por medio del proxy (si está activo). Los valores pueden ser nombres de equipo, dominios (usando un comodín auxiliar como *.foo.com), direcciones IP de anfitriones (tanto IPv4 como IPv6) y direcciones de red con una máscara (algo como 192.168.0.0/24). Proksi kasutamiskeeluga serverid See võti sisaldab nimekirja hostidest kuhu ühendutakse otse, ilma et kasutataks proxyt (isegi kui see on aktiivne). Väärtused võivad olla hostinimed, domeenid (kasutades vormi *.foo.com), IP-aadressid (nii IPv6 kui IPv6) ja võrguaadressid koos võrgumaskiga (näiteks 192.168.0.0/24). Proxy-rik gabe konektatuko diren ostalariak Gako honek zuzenean konektatzen diren ostalarien zerrenda dauka, proxy-aren bitartez egin beharrean (nahiz eta abioan egon). Balioak ostalarien izenak, domeinuak (*.lelo.com bezalako hasierako komodina erabiliz), IP helbideak (bai IPv4 bai IPv6) eta sareko helbideak, sare-maskarekin, (192.168.0.0/24 bezalakoak). Välipalvelinta käyttämättömät isäntäkoneet Tämä avain sisältää luettelon isäntäkoneista, joihin yhteys muodostetaan suoraan, ei välipalvelimen kautta (vaikka se olisi toiminnassa). Arvot voivat olla konenimiä, verkkoalueita (joissa alussa jokerimerkki, kuten *.testi.fi), IP-osoitteita (IPv4 tai IPv6) ja verkko-osoitteita verkkopeitteellä (kuten 192.168.0.0/24). Hôtes ne nécessitant pas de serveur mandataire Cette clé contient une liste d'hôtes qui peuvent être contactés directement,plutôt que par un serveur mandataire (s'il est actif). Les valeurs peuvent être des noms d'hôtes, des domaines (en utilisant un caractère joker comme *.toto.fr), des adresses IP d'hôte (IPv4 et IPv6) et des adresses réseau avec un masque (comme 192.168.0.0/24). Hosts que non usan proxy Esta chave contén unha lista dos hosts que están conectados directamente en vez de a través do proxy (se está activado). Os valores poden ser nomes de host, dominios (usando un comodín inicial como *.foo.com), enderezos IP do host (tanto o IPv4 como o IPv6) e enderezos de rede con máscara (como 192.168.0.0/24). યજમાનો માટે કોઇ પà«àª°à«‹àª•à«àª¸à«€ નથી આ કી àªàªµàª¾ યજમાનોની યાદી ધરાવે છે કે જે પà«àª°àª¤à«àª¯àª•à«àª· રીતે સંકળાયેલા છે, પà«àª°à«‹àª•à«àª¸à«€àª¥à«€ નહિ (જો તે સકà«àª°àª¿àª¯àª¹à«‹àª¯ તે). કિંમતો યજમાનના નામો, પà«àª°àª¦à«‡àª¶à«‹ (શરà«àª†àª¤àª¨à« વાઇલà«àª¡àª•ારà«àª¡ વાપરીને જેવૠકે *.foo.com), IP યજનામ સરનામૠ(બંને IPv4 અને IPv6) અને નેટવરà«àª• સરનામૠનેટમાસà«àª•ની સાથે (જેવૠકે ૧૯૨.૧૬૮.૦.૦/૨૪). Non-proxy hosts This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24). नॉन-पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¥à¤¸ यह कà¥à¤‚जी में मेजबानों की सूची शामिल है जो सीधे जà¥à¤¡à¤¼à¤¾ है, बजाय पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ से होकर (अगर .ह सकà¥à¤°à¤¿à¤¯ है). मान मेजबाननाम, डोमेन (using an initial wildcard like *.foo.com), IP मेजबान पता (दोनों IPv4 और IPv6) और नेटमासà¥à¤• के साथ संजाल पता (कà¥à¤› इस तरह का 192.168.0.0/24). RaÄunala bez proxy-a Ovaj kljuÄ sadrži popis raÄunala koji su direktno povezani, radije nego pomoću proxy-a (ako je uopće ukljuÄen). Vrijednosti mogu biti nazivi raÄunala, domene (koristeći poÄetne zamjenske znakove kao *.foo.com), IP adrese raÄunala (obje IPv4 i IPv6) i mrežne adrese s mrežnim maskama (npr. 192.168.0.0/24). Proxy nélkül elérhetÅ‘ kiszolgálók Ez a kulcs azon kiszolgálók listáját tartalmazza, amelyekhez közvetlenül kapcsolódik, proxy használata nélkül (ha az aktív). Az értékek lehetnek kiszolgálónevek, tartományok (kezdÅ‘ helyettesítÅ‘ karakterek használhatóak, pl. *.akarmi.hu), IP kiszolgálócímek (IPv4 és IPv6 egyaránt) és hálózati címek hálózati maszkkal (pl. 192.168.0.0/24). Host nonproksi Kunci ini mengandung daftar host yang terhubung secara langsung, ketimbang melalui proksi (jika aktif). Nilainya bisa nama host, domain (memakai wilkar seperti *.foo.com), alamat IP host (baik IPv4 maupun IPv6), serta alamat jaringan dengan netmask (seperti 192.168.0.0/24). Host non sottoposti a proxy Questa chiave contiene una lista di host a cui connettersi direttamente, invece che attraverso il proxy (qualora sia attivo). Valori ammessi sono nomi degli host, domini (usando un metacarattere iniziale come *.foo.com), indirizzi IP degli host (sia IPv4 che IPv6) ed indirizzi di rete con una maschera di rete (qualcosa come 192.168.0.0/24). プロキシã§ã¯ãªã„ホストå ã“ã®ã‚­ãƒ¼ã«ã¯ã€(アクティブãªå ´åˆã¯) プロキシ経由ã§ã¯ãªã直接接続ã•れる多ãã®ãƒ›ã‚¹ãƒˆãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ホストåã€ãƒ‰ãƒ¡ã‚¤ãƒ³ (*.foo.com ã®ã‚ˆã†ã«å…ˆé ­ã«ãƒ¯ã‚¤ãƒ«ãƒ‰ãƒ»ã‚«ãƒ¼ãƒ‰ãŒä½¿ã‚れã¾ã™)ã€IP ホスト・アドレス (IPv4 㨠IPv6 ã®ä¸¡æ–¹)ã€ãƒãƒƒãƒˆãƒ»ãƒžã‚¹ã‚¯ãŒä½µè¨˜ã•れãŸãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¢ãƒ‰ãƒ¬ã‚¹ (192.168.0.0/24ã®ã‚ˆã†ãªå€¤) ã¨ã„ã£ãŸå€¤ã«ãªã‚Šã¾ã™ã€‚ áƒáƒ áƒ პრáƒáƒ¥áƒ¡áƒ˜ ჰáƒáƒ¡áƒ¢áƒ”ბი ეს კáƒáƒ“ი შეიცáƒáƒ•ს ჰáƒáƒ¡áƒ¢áƒ”ბის სიáƒáƒ¡, რáƒáƒ›áƒ”ლიც პირდáƒáƒžáƒ˜áƒ áƒáƒ დáƒáƒ™áƒáƒ•შირებული დრáƒáƒ áƒ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ სáƒáƒ¨áƒ£áƒáƒšáƒ”ბით (თუ áƒáƒ¥áƒ¢áƒ˜áƒ£áƒ áƒ˜áƒ). მნიშვნელáƒáƒ‘ები შესáƒáƒ«áƒšáƒáƒ იყáƒáƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლები, დáƒáƒ›áƒ”ნები (სპეცსიმბáƒáƒšáƒáƒ”ბის გáƒáƒ›áƒáƒ§áƒ”ნებით, მáƒáƒ’., *.foo.com), ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ IP მისáƒáƒ›áƒáƒ áƒ—ები (áƒáƒ áƒ˜áƒ•ე, IPv4 დრIPv6) დრქსელური მისáƒáƒ›áƒáƒ áƒ—ები ქსელის თáƒáƒ áƒ’ით (მáƒáƒ’áƒáƒšáƒ˜áƒ—áƒáƒ“ 192.168.0.0/24). ಪà³à²°à²¾à²•à³à²¸à²¿à²¯à²²à³à²²à²¦ ಅತಿಥೇಯಗಳೠಈ ಕೀಲಿಯೠಪà³à²°à²¾à²•à³à²¸à²¿à²¯ (ಸಕà³à²°à²¿à²¯à²µà²¾à²—ಿದà³à²¦à²²à³à²²à²¿) ಮೂಲಕ ಸಂಪರà³à²•ಿತವಾಗಿಲà³à²²à²¦à³†, ನೇರವಾಗಿ ಸಂಪರà³à²•ವನà³à²¨à³ ಹೊಂದಿರà³à²µ ಅತಿಥೇಯಗಳ ಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ಹೊಂದಿರà³à²¤à³à²¤à²¦à³†. ಸಾಧà³à²¯à²µà²¿à²°à³à²µ ಮೌಲà³à²¯à²—ಳೆಂದರೆ ಅತಿಥೇಯದ ಹೆಸರà³à²—ಳà³, ಕà³à²·à³‡à²¤à³à²°à²¦ ಹೆಸರà³à²—ಳೠ(*.foo.com ನಂತಹ ಆರಂಭಿಕ ವೈಲà³à²¡à³â€à²•ಾರà³à²¡à³ ಅನà³à²¨à³ ಬಳಸಿಕೊಂಡà³), IP ಅತಿಥೇಯ ವಿಳಾಸಗಳೠ(IPv4 ಹಾಗೠIPv6) ಹಾಗೠಒಂದೠನೆಟà³â€Œà²®à²¾à²¸à³à²•ಿನೊಂದಿನ (192.168.0.0/24 ನಂತಹವà³à²—ಳà³) ಜಾಲಬಂಧ ವಿಳಾಸಗಳೠಆಗಿರà³à²¤à³à²¤à²¿à²µà³†. 프ë¡ì‹œ ì“°ì§€ ì•Šì„ í˜¸ìŠ¤íŠ¸ ì´ í‚¤ì—는 (프ë¡ì‹œê°€ 사용 가능할 경우ì—ë„) 프ë¡ì‹œë¥¼ 통하지 않고 ì§ì ‘ ì—°ê²°í•  í˜¸ìŠ¤íŠ¸ì˜ ëª©ë¡ì´ 들어갑니다. ê° ê°’ë“¤ì€ í˜¸ìŠ¤íŠ¸ ì´ë¦„, ë„ë©”ì¸ ì´ë¦„(*.foo.comê³¼ ê°™ì€ ì™€ì¼ë“œ 카드 사용), IP 호스트 주소(IPv4와 IPv6 ëª¨ë‘ ê°€ëŠ¥), 네트마스í¬ë¥¼ 사용한 ë„¤íŠ¸ì›Œí¬ ì£¼ì†Œ(192.168.0.0/24와 ê°™ì´)를 쓸 수 있습니다. Adresai pasiekiami nenaudojant tarpinio serverio Å is raktas saugo adresus, prie kurių yra jungiamasi tiesiogiai, o ne per tarpinį serverį (jei toks naudojamas). ReikÅ¡mÄ—se galima saugoti kompiuterių vardus, sritis (su priekyje esanÄių apibendrinanÄiu simboliu, pvz., kaip *.pavyzdys.lt), kompiuterių IP adresus (tiek IPv4, tiek IPv6) bei tinklų adresus su tinklo kaukÄ—mis (kažkas panaÅ¡aus į 192.168.0.0/24). Ne-starpnieka saimniekdatori Å Ä« atslÄ“ga satur resursdatoru sarakstu, kas ir savienoti tieÅ¡i, labÄk nekÄ caur starpnieku (ja tas ir aktÄ«vs). VÄ“rtÄ«bas var bÅ«t saimniekdatoru vÄrdi, domÄ“ni (izmantojot aizstÄjÄ“jzÄ«mes, kÄ *.foo.com), resursdatoru IP adreses (kÄ IPv4 un IPv6) un tÄ«klu adreses ar tÄ«kla masku (piemÄ“ram, 192.168.0.0/24). नान-पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¸à¤­ ई कà¥à¤à¤œà¥€à¤®à¥‡ मेजबानसभक सूची सामिल अछि जे सीधे जà¥à¤¡à¤¼à¤² अछि. बजाठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ सठभ' कठ(जठई सकà¥à¤°à¤¿à¤¯ अछि). मान मेजबाननाम, डोमेन (*.foo.com क तरह क' आरंभिक वाइलà¥à¤¡à¤•ारà¥à¤¡), IP मेजबान पता (दà¥à¤¨à¥‚ IPv4 आओर IPv6) आओर नेटमासà¥à¤• क' सà¤à¤— सà¤à¤œà¤¾à¤² पता (किछॠई तरह क' 192.168.0.0/24). Mpampiantrano tsy proxy Ity famaha ity dia misy ireo mpampiantrano ifandraisana mivantana fa tsy amin'ny alalan'ny proxy (raha toa ka mandeha). Mety ho anaram-pampiantrano, domena (mampiasa marika manokana toy ny *.foo.com), adiresim-pampiantrano IP (IPv4 sy IPv6) ary adiresin-drezo misy sarona (zavatra tahaka ny 192.168.0.0/24) ilay sanda. ХоÑтови без proxy Копчето Ñодржи лиÑта на хоÑтови кои што Ñе врзани директно намеÑто прекупрокÑи (доколку е активно). ВредноÑтите можат да бидат имиња на хоÑтови, домени (Ñо кориÑтење на некој знак како на пример *.foo.com), IP адреÑи на хоÑтови (вклучувајќи IPv4 и IPv6) и мрежни адреÑи Ñо маÑки (нешто како 192.168.0.0/24). നോണàµâ€-à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµà´•à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ വഴി (സജàµà´œà´®àµ†à´™àµà´•à´¿à´²àµâ€) à´…à´²àµà´²à´¾à´¤àµ† നേരിടàµà´Ÿàµ കണകàµà´Ÿàµ ചെയàµà´¯àµà´¨àµà´¨ ഹോസàµà´±àµà´±àµà´•à´³àµà´Ÿàµ† ലിസàµà´±àµà´±àµ à´ˆ കീയിലàµâ€ à´…à´Ÿà´™àµà´™àµà´¨àµà´¨àµ. ഹോസàµà´±àµà´±àµ നെയിമàµà´•à´³àµâ€, ഡോമെയിനàµà´•à´³àµâ€ (*.foo.com പോലàµà´³à´³ ആരംഭതàµà´¤à´¿à´²àµà´³à´³ വൈളàµâ€à´¡àµ കാരàµâ€à´¡àµ ഉപയോഗികàµà´•àµà´¨àµà´¨àµ), IP ഹോസàµà´±àµà´±àµ വിലാസങàµà´™à´³àµâ€ ( IPv4, IPv6 à´Žà´¨àµà´¨à´¿à´µ), നെറàµà´±àµà´®à´¾à´¸àµà´•àµà´³à´³ നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•ൠവിലാസങàµà´™à´³àµâ€ (192.168.0.0/24 പോലàµà´³à´³à´µ) à´Žà´¨àµà´¨à´¿à´µ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€ ആവാം. ИтгÑмжилÑгчгүй хоÑÑ‚ Ð­Ð½Ñ Ñ‚Ò¯Ð»Ñ…Ò¯Ò¯Ñ€ итгÑмжилÑгчÑÑÑ€ биш (идÑвхитÑй үед) шууд холболт хийгдÑÑ… Ñ‘Ñтой хоÑтуудын жагÑаалтыг агуулна. Утгууд нь ХоÑтын нÑÑ€, Домайн (Wildcard, ж.нь *.foo.mn), ХоÑтын IP-хаÑг (түүнчилÑн IPv4 ба IPv6) болон ÑүлжÑÑний маÑктай ÑүлжÑÑний хаÑгууд (192.168.0.0/24 Ñ…ÑлбÑртÑй) байна. परà¥à¤¯à¤¾à¤¯ विहीत सà¥à¤µà¤¾à¤—तकरà¥à¤¤à¥‡ या किलà¥à¤²à¥€à¤¤ पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¤¿à¤¤à¥à¤¯à¤¾ जà¥à¤³à¤²à¥‡à¤²à¥€ यजमानची यादी, पà¥à¤°à¥‰à¤•à¥à¤¸à¥€à¤šà¥à¤¯à¤¾ (सकà¥à¤°à¥€à¤¯ असलà¥à¤¯à¤¾à¤¸) à¤à¤µà¤œà¥€ समाविषà¥à¤Ÿà¥€à¤¤ आहे. मà¥à¤²à¥à¤¯ यजमाननाव, कà¥à¤·à¥‡à¤¤à¥à¤° (पà¥à¤°à¤¾à¤°à¤‚भीक वाईलà¥à¤¡à¤•ारà¥à¤¡ जसे की *.foo.com), IP यजमान पतà¥à¤¤à¤¾ (दोनà¥à¤¹à¥€ IPv4 व IPv6) व संजाळ पतà¥à¤¤à¤¾ सह नेटमासà¥à¤• (काहितरी यासारखे 192.168.0.0/24). Verter som ikke skal bruke proxy Denne nøkkelen inneholder en liste med verter som har direkte forbindelse i stedet for Ã¥ gÃ¥ via proxy (hvis denne er aktiv). Verdiene kan være vertsnavn, domener (med jokertegn som *.domene.no), IP-adresse for verten (bÃ¥de IPv4 og IPv6) og nettverksadresser med en nettmaske (som 192.168.0.0/24). पà¥à¤°à¥‹à¤•à¥à¤¸à¥€-नभà¤à¤•ा होसà¥à¤Ÿ यस कà¥à¤žà¥à¤œà¥€à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ मारà¥à¤«à¤¤ नभइ पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤· जडित होसà¥à¤Ÿà¤•ो सूची समावेश गरà¥à¤¦à¤› (यदि यो सकà¥à¤°à¤¿à¤¯ भà¤à¤®à¤¾) । यसका मानहरू, होसà¥à¤Ÿà¤¨à¤¾à¤®, डोमेन ( *.foo.com जसà¥à¤¤à¤¾ पà¥à¤°à¤¾à¤°à¤®à¥à¤­à¤¿à¤• वाइलà¥à¤¡à¤•ारà¥à¤¡ पà¥à¤°à¤¯à¥‹à¤— गरà¥à¤¨à¥‡), आई पी होसà¥à¤Ÿ ठेगाना (दà¥à¤µà¥ˆ IPv4 र IPv6) तथा नेटमासà¥à¤• भà¤à¤•ा सञà¥à¤œà¤¾à¤² ठेगानाहरू (१९२.१६८.०.०/२४ जसà¥à¤¤à¤¾ केही वसà¥à¤¤à¥) हà¥à¤¨à¥ । Non-proxy hosts Deze sleutel bevat een lijst van computers die direct benaderd dienen te worden in plaats van via de proxy. De waardes kunnen computernamen zijn, of domeinen (met jokertekens zoals: *.bla.com), IP-adressen (zowel IPv4 als IPv6) of netwerkadressen met netmasker zoals 192.168.0.0/24. Vertar som ikkje brukar mellomtenar Denne nøkkelen inneheld ei liste med vertar som skal koplast til direkte, og ikkje gjennom ein mellomtenar, sjølv om ein er i bruk elles. Verdiane kan vera vertsnamn, domener (med jokerteikn i byrjinga, t.d. *.foo.com), IP-adresser (bÃ¥de IPv4 og IPv6) og nettverksadresser med nettmaske (t.d. 192.168.0.0/24). Baswari bao e sego dikemedi Senotlelo se se na le lelokelelo la baswari bao ba kgokagantÅ¡wego ka go lebanya, go e na le go feta go kemedi (e a Å¡oma). Mehola e ka ba maina a moswari, maina ( go diriÅ¡wa karata e Å¡ele e bjalo ka *.foo.com), aterese ya moswari ya IP (bobedi IPv4 le IPv6) le diaterese tÅ¡a neteweke tÅ¡eo di nago le seÅ¡iro sa nete (selo se swanago le 192.168.0.0/24). ଅଣଛାୟା ଆଧାର ଛାୟା ବଦଳରେ ସିଧାସଳଖ ଭାବରେ ସଂଯà­à¬•à­à¬¤ ଆଧାରଗà­à¬¡à¬¼à¬¿à¬•ର ତାଲିକା à¬à¬¹à¬¿ ଚାବିରେ ରଖାଯାଇଛି. ସମà­à¬­à¬¬à¬¤à¬ƒ ମୂଲà­à¬¯à¬—à­à¬¡à¬¿à¬¼à¬• ହେଲା ଆଧାର ନାମ, ପରିସର (*.foo.com ଭଳି ପà­à¬°à¬¾à¬°à¬®à­à¬­à¬¿à¬• ୱାଇଲà­à¬¡ କାରà­à¬¡ ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରି), ଆଇ.ପି. ଆଧାର ଠିକିଣା (ଆଇ.ପି.ଭି.à­ª ଓ ଆଇ.ପି.ଭି.à­¬) ଓ ଜାଲକ ମà­à¬–ା ସହିତ ଜାଲକ ଠିକଣା (୧୯୨.୧୬୮.à­¦.à­¦/୨୪ ଭଳି କିଛି). ਕੋਈ ਪਰਾਕਸੀ ਹੋਸਟ ਨਹੀਂ ਇਹ ਕà©à©°à¨œà©€ ਉਹਨਾਂ ਹੋਸਟਾਂ ਦੀ ਸੂਚੀ ਉਪਲੱਬਧ ਕਰਵਾਉਦੀ ਹੈ, ਜੋ ਸਿੱਧੇ ਜà©à¨¡à¨¼à©‡ ਹਨ, ਨਾ ਕਿ ਪਰਾਕਸੀ (ਜੇ ਸਰਗਰਮ ਹੈ)। ਮà©à©±à¨² ਹੋਸਟ ਨਾਂ, ਡੋਮੇਨ (ਸ਼à©à¨°à©‚ਆਤੀ wildcard ਜਿਵੇਂ ਕਿ *.foo.com ਵਰਤ ਕੇ ), IP ਹੋਸਟ à¨à¨¡à¨°à©ˆà¨¸ (ਦੋਵੇਂ IPv4 ਅਤੇ IPv6) ਅਤੇ ਨੈਟਵਰਕ ਸਿਰਨਾਵੇਂ ਨਾਲ ਨੈੱਟਮਾਸਕ (ਜਿਵੇਂ ਕਿ 192.168.0.0/24) Komputery bez poÅ›rednika Ten klucz zawiera listÄ™ komputerów, które sÄ… połączone bezpoÅ›rednio, nie zaÅ› przez poÅ›rednika (jeÅ›li jest aktywny). WartoÅ›ciami mogÄ… być nazwy komputerów, domeny (z użyciem sekwencji specjalnych takich jak *.foo.com), adresy IP (zarówno IPv4 jak i IPv6) oraz adresy sieciowe z maskÄ… sieci (np. 192.168.0.0/24). Máquina não-proxy Esta chave contém uma lista de máquinas às quais a ligação deverá ser directa, e não através da proxy (caso esteja activa). Os valores podem ser nomes de máquinas, domínios (utilizando um caracter global tal como *.exemplo.pt), endereços IP (tanto IPv4 como IPv6) e endereços de rede com uma máscara de rede (algo como 192.168.0.0/24). Servidores não-proxy Esse campo contém a lista de máquinas que são conectadas diretamente, em vez de via proxy (se estiver ativo). Os valores podem ser nomes de máquina, domínios (usando um coringa inicial como *.foo.com.br), endereços IP (tanto IPv4 quanto IPv6) e endereços com uma máscara de rede (algo como 192.168.0.0/24). Adrese fără proxy Această cheie conÈ›ine o listă a adreselor la care se preferă conectarea directă, nu prin proxy. Aceste adrese pot fi nume de servere, domenii (cu caractere „wildcardâ€, de ex. *.foo.com), adrese IP (atât IPv4, cât È™i IPv6) È™i adrese de reÈ›ea cu mască (de ex. 192.168.0.0/16). Узлы, доÑтупные без прокÑи Этот ключ Ñодержит ÑпиÑок узлов, Ñоединение Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ оÑущеÑтвлÑетÑÑ Ð½Ð°Ð¿Ñ€Ñмую, Ð¼Ð¸Ð½ÑƒÑ Ð¿Ñ€Ð¾ÐºÑи-Ñервер (еÑли поÑледний иÑпользуетÑÑ). Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть именами узлов, доменами (Ñ Ð¸Ñпользованием раÑширителей типа *.foo.com), адреÑами узлов протокола IP (в вариантах IPv4 и IPv6) и Ñетевыми адреÑами Ñ Ð¸Ñпользованием маÑки (наподобие 192.168.0.0/24). Hostitelia bez použitia proxy Tento kÄ¾ÃºÄ obsahuje zoznam hostiteľov, ku ktorým sa radÅ¡ej pripojiÅ¥ priamo a nie cez proxy (ak je atívne). Hodnoty môžu byÅ¥ názvy hostiteľov, domény (pomocou poÄiatoÄných žolíkov, napr. *.foo.com), IP adresy (IPv4 aj IPv6) a sieÅ¥ové adresy s maskou (napr. 192.168.0.0/24). Gostitelji brez posredniÅ¡kega strežnika KljuÄ vsebuje seznam gostiteljev, s katerimi se vzpostavi neposredna povezava in preko posredovalnega strežnika (Äe je ta dejaven). Vrednosti so lahko imena gostiteljev, domene (z nadomestnimi znaki kot je *.foo.com), naslovi IP gostitelja (tako IPv4 kot tudi IPv6) in omrežni naslovi z omrežno masko (npr. 192.168.0.0/24). Asnjë host proxy Ky kyç përmban një listë me hostet e lidhur direkt, pa përdorur proxy (nëse ai është aktiv). Vlerat mund të jenë hostnames, domains (duke përdorur si parashtesë një wildcard si p.sh. *.foo.com), adresat IP të host (IPv4 dhe IPv6) dhe adresat e rrjetit me një netmask (diçka të ngjashme me 192.168.0.0/24). БеÑпоÑредничке адреÑе Овај кључ Ñадржи ÑпиÑак рачунара који Ñу непоÑредно повезани, умеÑто путем поÑредника (уколико је у дејÑтву). Ове вредноÑти могу бити имена рачунара, домени (помоћу почетних навода као што је *.нешто.ију), ИП адреÑе рачунара (било ИП4 било ИП6) и адреÑе мрежа уз мрежну маÑку (нешто као што је 192.168.0.0/24). БеÑпоÑредничке адреÑе Овај кључ Ñадржи ÑпиÑак рачунара који Ñу непоÑредно повезани, умјеÑто путем поÑредника (уколико је у дејÑтву). Ове вриједноÑти могу бити имена рачунара, домени (помоћу почетних навода као што је *.нешто.ију), ИП адреÑе рачунара (било ИПв4 било ИПв6) и адреÑе мрежа уз мрежну маÑку (нешто као што је 192.168.0.0/24). BesposredniÄke adrese Ovaj kljuÄ sadrži spisak raÄunara koji su neposredno povezani, umesto putem posrednika (ukoliko je u dejstvu). Ove vrednosti mogu biti imena raÄunara, domeni (pomoću poÄetnih navoda kao Å¡to je *.neÅ¡to.iju), IP adrese raÄunara (bilo IP4 bilo IP6) i adrese mreža uz mrežnu masku (neÅ¡to kao Å¡to je 192.168.0.0/24). Värdnamn för ickeproxyvärdar Denna nyckel innehÃ¥ller en lista med värdar som ansluts till direkt istället för att gÃ¥ via proxyservern (om den är igÃ¥ng). Värdena kan vara värdnamn, domäner (genom användning av ett inledande jokertecken som *.blaha.se), IP-värdadresser (bÃ¥de IPv4 och IPv6) och nätverksadresser med en nätmask (nÃ¥gonting liknande 192.168.0.0/24). பà¯à®°à®¾à®•à¯à®¸à®¿ இலà¯à®²à®¾à®¤ பà¯à®°à®µà®²à®©à¯ இநà¯à®¤ படà¯à®Ÿà®¿à®¯à®²à¯ பà¯à®°à®¾à®•à¯à®¸à®¿à®¯à¯ˆ(செயலிலிரà¯à®¨à¯à®¤à¯à®®à¯) நேரடியாக பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¾à®¤ கணினியின௠படà¯à®Ÿà®¿à®¯à®²à¯ˆ காடà¯à®Ÿà¯à®•ிறதà¯. இதில௠பà¯à®°à®µà®²à®©à¯ பெயரà¯, டொமைனà¯(கà¯à®´à¯à®•à¯à®•à¯à®±à®¿à®•ளை பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯ உம௠*.foo.com) பà¯à®°à®µà®²à®©à¯ IP à®®à¯à®•வரி (both IPv4 மறà¯à®±à¯à®®à¯IPv6) மறà¯à®±à¯à®®à¯ வலைபà¯à®ªà®¿à®©à¯à®©à®²à¯ à®®à¯à®•வரியà¯à®Ÿà®©à¯ வலைமூடியà¯à®®à¯ இரà¯à®•à¯à®•à¯à®®à¯ (உதாரணம௠192.168.0.0/24) à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚-కాని ఆతిథà±à°¯à°¾à°²à± à°ªà±à°°à±‹à°•à±à°¸à±€(à°•à±à°°à°¿à°¯à°¾à°¶à±€à°²à°‚à°—à°¾ à°µà±à°‚టే) à°¦à±à°µà°¾à°°à°¾ కాకà±à°‚à°¡à°¾, నేరà±à°—à°¾ à°…à°¨à±à°¸à°‚ధానమైవà±à°¨à±à°¨ అతిధేయలయొకà±à°• జాబితానౠకీ కలిగివà±à°‚ది. అవి అతిధేయ నామమà±à°²à±, డొమైనà±à°²à± (à°ªà±à°°à°¾à°§à°®à°¿à°• వైలà±à°¡à±à°•ారà±à°¡à± *.foo.com à°µà±à°ªà°¯à±‹à°—ించే), IP అతిధేయ à°šà°¿à°°à±à°¨à°¾à°®à°¾à°²à± (IPv4 మరియౠIPv6 రెండూ) మరియౠనెటà±â€Œà°®à°¾à°¸à±à°•à± (192.168.0.0/24 వంటి)తో నెటà±à°µà°°à±à°•à± à°šà°¿à°°à±à°¨à°¾à°®à°¾à°²à±. โอสต์ที่ไม่ติดต่อผ่านพร็อà¸à¸‹à¸µ คีย์นี้เà¸à¹‡à¸šà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¹‚ฮสต์ที่ให้ติดต่อโดยตรง à¹à¸—นที่จะผ่านพร็อà¸à¸‹à¸µ (ถ้าเปิดทำงานอยู่) สามารถตั้งเป็น ชื่อโฮสต์ โดเมน (ใช้ wildcard ข้างหน้าเช่น *.foo.com), ที่อยู่ IP (ทั้ง IPv4 à¹à¸¥à¸° IPv6) หรือที่อยู่บนเครือข่ายพร้อมà¸à¸±à¸š netmask (เช่น 192.168.0.0/24) Vekil olmayan makineler Bu anahtar vekil (eÄŸer aktifse) aracılığından daha çok, direk baÄŸlanmış sunucuların listesini içerir. DeÄŸerler, sunucu adları, alanları (enbaÅŸta maske kullanarak, *.foo.com), IP sunucu adresleri (hem IPv4 hem IPv6) ve aÄŸ maskeli aÄŸ adresleri (192.168.0.0/24 benzeri) olabilir. Вузли поза прокÑÑ–-Ñлужбою Цей ключ міÑтить перелік вузлів, з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñкими вÑтановлюєтьÑÑ Ð±ÐµÐ·Ð¿Ð¾Ñередньо, обминаючи прокÑÑ–-Ñлужбу (Ñкщо вона активна). Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ бути іменами вузлів, доменами (з викориÑтаннÑм шаблонів подібних до *.foo.com), IP адреÑами вузлів (Ñк IPv4, так Ñ– IPv6) та адреÑами мереж з викориÑтаннÑм маÑки (щоÑÑŒ Ñхоже не, 192.168.0.0/24). Máy khác á»§y nhiệm Khóa này chứa danh sách các máy được kết nối trá»±c tiếp, hÆ¡n là qua á»§y nhiệm (nếu nó hoạt động). Giá trị có thể là tên máy, miá»n (dùng ký tá»± đại diện ban đầu như « *.phu.com »), địa chỉ IP cá»§a máy (cả IPv4 lẫn IPv6) và địa chỉ mạng có mặt nạ mạng (như « 192.168.0.0/24 »). Abaququzeleli bekhompyutha engasebenzi njengomqobo Eli qhosha liqulethe uluhlu lwabaququzeleli abaqhagamshelwe kuvimba weefayili, kunokuba badlule kwikhompyutha esebenza njengomqobo (ukuba iyasebenza). Amaxabiso anokuba ngamagama abaququzeleli, imimandla (usebenzisa i-wildcard njenge *.foo.com), idilesi ze-IP zabaququzeleli (zombini i-IPv4 ne-IPv6) kunye needilesi zothungelwano ene-netmask (into efana ne-192.168.0.0/24). éžä»£ç†æœåС噍 此键中定义的主机列表将ä¸é€šè¿‡ä»£ç†(如果有设定)è€Œç›´æŽ¥è”æŽ¥ã€‚å…¶å€¼å¯ä»¥æ˜¯ä¸»æœºåã€åŸŸå(支æŒé€šé…符开头的形å¼å¦‚ *.foo.com)ã€IP 主机地å€(æ—¢å¯ IPv4 äº¦å¯ IPv6)以åŠè·Ÿéšç½‘络掩ç çš„网络地å€(例如 192.168.0.0/24)。 ä¸ä½¿ç”¨ä»£ç†ä¼ºæœå™¨çš„主機 這個éµå€¼åŒ…å«äº†è¦ç›´æŽ¥é€£ç·šï¼Œä¸é€éŽä»£ç†ä¼ºæœå™¨ï¼ˆå¦‚果有使用)的主機。數值å¯ä»¥ç‚ºä¸»æ©Ÿå稱ã€ç¶²åŸŸï¼ˆé–‹é ­ä½¿ç”¨è¬ç”¨å­—符如 *.foo.com)ã€IP ä½å€ï¼ˆIPv4 å’Œ IPv6 皆å¯ï¼‰æˆ–帶有å­ç¶²çµ¡é®ç½©çš„ä½å€ï¼ˆåƒæ˜¯ 192.168.0.0/24)。 ä¸ä½¿ç”¨ä»£ç†ä¼ºæœå™¨çš„主機 這個éµå€¼åŒ…å«äº†è¦ç›´æŽ¥é€£ç·šï¼Œä¸é€éŽä»£ç†ä¼ºæœå™¨ï¼ˆå¦‚果有使用)的主機。數值å¯ä»¥ç‚ºä¸»æ©Ÿå稱ã€ç¶²åŸŸï¼ˆé–‹é ­ä½¿ç”¨è¬ç”¨å­—元如 *.foo.com)ã€IP ä½å€ï¼ˆIPv4 å’Œ IPv6 皆å¯ï¼‰æˆ–帶有å­ç¶²è·¯é®ç½©çš„ä½å€ï¼ˆåƒæ˜¯ 192.168.0.0/24)。 Ummemi ongayisibambisi Lenkinobho iqukethe uhlu lwezimmemi ezixhunywe ngqo, kuno kuthi usebenzise isibambeli (uma sisebenza). Amanani kungaba amabizo-mmemi, indawo (usebenzisa isikhethi sokuqala njenge *.foo.com), amakheli ommemi IP (omabili oIPv4 ne IPv6) kanye nekheli lolwembu nesidleke zokuzivala ubuso (into enjenge 192.168.0.0/24). /schemas/system/proxy/mode /system/proxy/mode gnome-vfs string none Proxy configuration mode Select the proxy configuration mode. Supported values are "none", "manual", "auto". Instaanopstelling-modus Selekteer die instaanopstelling-modus. Waardes wat werk is "geen", "handmatig", "outo". نمط إعداد الوسيط اختر نسق إعداد الوسيط. القيم المدعومة هي "none"ØŒ "manual"Ùˆ "auto". পà§à§°à¦•à§à¦¸à¦¿ বিনà§à¦¯à¦¾à¦¸ মোড পà§à§°à¦•à§à¦¸à¦¿ বিনà§à¦¯à¦¾à¦¸ মোড নিৰà§à¦¬à¦¾à¦šà¦¨ কৰà§à¦¨ । সমৰà§à¦¥à¦¿à¦¤ মান হল "none", "manual", "auto" । Mou de configuración del proxy Seleicione el mou de configuración del proxy. Los valores sofitaos son "none", "manual", "auto". VÉ™kil quraÅŸdırma modu VÉ™kil quraÅŸdırma modu. DÉ™stÉ™klÉ™nÉ™n qiymÉ™tlÉ™r: "none", "manual", "auto". РÑжым наладкі паўнамоцнага паÑлужніку Вылучыце Ñ€Ñжым наладкі паўнамоцнага паÑлужніку. Дапушчальнымі значÑньнÑмі зьÑўлÑюцца: "none" (нÑма), "manual" (адмыÑловы), "auto" (аўтаматычны) Режим на ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ð° Ñървър-поÑредник Изберете режим на наÑтройка на Ñървър-поÑредник. Поддържани ÑтойноÑти Ñа „none“ — без Ñървър поÑредник, „manual“ — наÑтройка на ръка и „auto“ — автоматично наÑтройване. পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤ সমরà§à¦¥à¦¿à¦¤ মানসমূহ হলো "none", "manual", "auto"। পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন মোড নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤ সমরà§à¦¥à¦¿à¦¤ মান হল "none", "manual", "auto"। NaÄin podeÅ¡avanja proxy-a Izaberite naÄin podeÅ¡avanja proxy-a. Podržane vrijednosti su "none", "manual", "auto". Mode de configuració del servidor intermediari Selecciona el mode de configuració del servidor intermediari. Els valors disponibles són «none» (cap), «manual», «auto». Mode de configuració del servidor intermediari Selecciona el mode de configuració del servidor intermediari. Els valors disponibles són «none» (cap), «manual», «auto». Režim nastavení proxy Vyberte režim nastavení proxy. Podporované hodnoty jsou „none“, „manual“, „auto“. Modd cyfluniad y dirprwy Dewiswch fodd rhagosod y dirprwy. Y gwerthoedd caniateir yw "none", "manual", "auto". Mellemværtstilstand Vælg mellemværtkonfigurationen. Mulige værdier er "none", "manual", "auto". Proxy-Konfigurationsmodus Legt den Proxy-Konfigurationsmodus fest. Zulässige Werte: »none« (keiner), »manual« (manuell) sowie »auto« (automatisch). པོརོག་སི་ རིམ་སྒྲིག་གི་à½à½–ས་ལམ༠པོརོག་སི་ རིམ་སྒྲིག་གི་à½à½–ས་ལམ་ སེལ་འà½à½´à¼‹à½ à½–ད༠རྒྱབ་སà¾à¾±à½¼à½¢à¼‹à½…ན་གྱི་ བེ་ལུསི་ "none", "manual", "auto" ཚུ་ཨིན༠ΛειτουÏγία Ïυθμίσεων διαμεσολαβητή Επιλογή λειτουÏγίας ÏÏθμισης διαμεσολαβητή. ΥποστηÏιζόμενες τιμές είναι "καμμία", "χειÏοκίνητη", "αυτόματη". ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¥ð‘´ð‘› ð‘•ð‘©ð‘¤ð‘§ð‘’𑑠𑞠ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘¥ð‘´ð‘›. ð‘•ð‘©ð‘ð‘¹ð‘‘ð‘©ð‘› ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ 𑸠"none", "manual", "auto". Proxy configuration mode Select the proxy configuration mode. Supported values are "none", "manual", and "auto". Proxy configuration mode Select the proxy configuration mode. Supported values are "none", "manual", "auto". Modo de configuración del proxy Seleccione el modo de configuración del proxy. Los valores soportados son "none" (ninguno), "manual" y "auto". Proksi seadistusrežiim Vali proksi konfiguratsiooni mood. Toetatud väärtused on "pole", "käsitsi", "automaatne". Proxy-aren konfigurazio modua Hautatu proxy-aren konfigurazio modua. Onartutako balioak "none", "manual", "auto". Välipalvelimen asetustapa Valitse välipalvelimen asetustapa. Mahdolliset arvot ovat â€none†(ei mikään), â€manual†(asetukset käsin), â€auto†(automaattinen). Mode de configuration du serveur mandataire Sélectionnez le mode de configuration du serveur mandataire. Les valeurs prises en charge sont « none » (aucun), « manual » (manuel), « auto » (automatique). Modo de configuración do proxy Selecciona o modo de configuración do proxy. Os valores admitidos son "none", "manual" ou "auto". પà«àª°à«‹àª•à«àª¸à«€ રà«àªªàª°à«‡àª–ાંકનની સà«àª¥àª¿àª¤àª¿ પà«àª°à«‹àª•à«àª¸à«€ રà«àªªàª°à«‡àª–ાંકનની સà«àª¥àª¿àª¤àª¿ પસંદ કરો. આધારિત કિંમતો "કોઇ નંહિ", "માનવીય રીતે", "આપોઆપ" છે. Proxy configuration mode Select the proxy configuration mode. Supported values are "none", "manual", "auto". पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ मोड पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ मोड चà¥à¤¨à¥‡à¤‚. समरà¥à¤¥à¤¿à¤¤ मूलà¥à¤¯ हैं "कà¥à¤› नहीं", "हसà¥à¤¤à¤šà¤¾à¤²à¤¿à¤¤", "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤". NaÄin postavljanja proxy-a OznaÄite naÄin postavljanja proxy-a. Podržane vrijednosti su "bez", "ruÄno", "automatsko" Proxybeállítás módja Válassza ki a proxybeállítás módját. Támogatott értékek: „noneâ€, „manualâ€, „autoâ€. Mode konfigurasi proksi Memilih mode konfigurasi proksi. Nilai yang didukung antaranya "none", "manual", dan "auto". Modalità di configurazione proxy Selezionare la modalità di configurazione del proxy. Valori ammessi sono "none", "manual", "auto". プロキシ設定モード ãƒ—ãƒ­ã‚­ã‚·è¨­å®šãƒ¢ãƒ¼ãƒ‰ã‚’é¸æŠžã—ã¾ã™ (利用å¯èƒ½ãªå€¤: "none", "manual", "auto")。 პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმი პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმის მითითებáƒ. შესáƒáƒ«áƒšáƒ მნიშვნელáƒáƒ‘ებირ"none" ("áƒáƒ áƒ"), "manual" ("ხელით"), "auto" ("áƒáƒ•ტáƒáƒ›áƒáƒ¢áƒ£áƒ áƒ˜"). ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನಾ ಕà³à²°à²® ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನಾ ಕà³à²°à²®à²µà²¨à³à²¨à³ ಆರಿಸಿ. ಬೆಂಬಲವಿರà³à²µ ಮೌಲà³à²¯à²—ಳà³, "ಯಾವà³à²¦à³‚ ಇಲà³à²²", "ಕೈಯಾರೆ", "ತಾನಾಗಿಯೆ" ಆಗಿರà³à²¤à³à²¤à²µà³†. 프ë¡ì‹œ 설정 모드 프ë¡ì‹œ 설정 모드를 ì„ íƒí•©ë‹ˆë‹¤. ì§€ì›í•˜ëŠ” ê°’ì€ "none", "manual", "auto"입니다. Tarpinio serverio nustatymų režimas Pasirinkite tarpinio serverio nustatymų režimÄ…. Galimos reikÅ¡mÄ—s yra „none“, „manual“, „auto“. Starpnieka konfigurÄcijas režīms IzvÄ“lieties starpnieka konfigurÄcijas režīmu. AtbalstÄ«tÄs vÄ“rtÄ«bas ir "none", "manual", "auto". पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ मोड पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸à¤• मोड चà¥à¤¨à¥‚. समरà¥à¤¥à¤¿à¤¤ मूलà¥à¤¯ अछि "किछॠनहि", "हसà¥à¤¤à¤šà¤¾à¤²à¤¿à¤¤", "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤". Fomba fikirakirana ny proxy Safidio ny fomba hikirakirana ny proxy. Ireto ireo sanda raisina an-tànana: "none", "manual", "auto". Режим за конфигурирање на proxy Изберете го режимот за конфигурирање на proxy. Поддржани вредноÑти Ñе "ништо", "рачно", "автоматÑки". à´ªàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµâ€ മോഡൠപàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµâ€ രീതി തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•. "à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²", "മാനàµà´µà´²àµâ€", "à´“à´Ÿàµà´Ÿàµ‹" ആണൠപിനàµà´¤àµà´£à´¯àµà´³à´³ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€. ИтгÑмжилÑгч тохируулах горим Хамгаалалттай итгÑмжилÑгчийн тохируулах горим. Боломжит утгууд "none", "manual", "auto". परà¥à¤¯à¤¾à¤¯à¥€ संयोजनाची रीत परà¥à¤¯à¤¾à¤¯à¥€ संयोजनाची रीत निवडा. "à¤à¤•ही नाही", "सà¥à¤µà¤¯à¤‚सिदà¥à¤§", "हसà¥à¤¤à¥‡" ही सà¥à¤µà¥€à¤•ृत मूलà¥à¤¯à¥‡ आहेत. Konfigurasjonsmodus for proxy Velg konfigurasjonsmodus for proxy. Verdier som er støttet er «none», «manual», «auto». पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन मोड पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन मोड चयन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ । समरà¥à¤¥à¤¿à¤¤ मान "कà¥à¤¨à¥ˆ पनि होइन", "मà¥à¤¯à¤¾à¤¨à¥à¤…ल", "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤" हà¥à¤¨à¥ । Proxy configuratiemodus Kies de proxy configuratiemodus. Mogelijke waarden zijn "none" (geen), "manual" (handmatig) en "auto" (automatisch). MÃ¥ten mellomtenaren vert satt opp pÃ¥ Vel korleis bruken av mellomtenaren skal setjast opp. Moglege verdiar er «none», «manual» og «auto». Mokgwa wa go fetola sebopego ga kemedi Kgetha mokgwa wa go fetola sebopego wa kemedi. Mehola e thekgwago ke "ga e gona", "ya maitirelo", "itiragalelago". ଛାୟା ବିନà­à¬¯à¬¾à¬¸ ଅବସà­à¬¥à¬¾ ଛାୟା ବିନà­à¬¯à¬¾à¬¸ ଅବସà­à¬¥à¬¾ ବାଛନà­à¬¤à­. ସମà­à¬­à¬¬à¬¤à¬ƒ ମୂଲà­à¬¯à¬—à­à¬¡à¬¿à¬¼à¬• ହେଲା "none", "manual" ଓ "auto". ਪਰਾਕਸੀ ਸੰਰਚਨਾ ਮੋਡ ਪਰਾਕਸੀ ਸੰਰਚਨਾ ਮੋਡ ਦੀ ਚੋਣ ਸੰਭਵ ਮà©à©±à¨² ਹਨ "ਕà©à¨ ਨਹੀਂ", "ਦਸਤੀ", "ਆਟੋ"। Tryb konfiguracji poÅ›rednika Wybierz tryb konfiguracji poÅ›rednika. ObsÅ‚ugiwanymi wartoÅ›ciami sÄ… "none" (brak konfiguracji), "manual" (rÄ™czna), "auto" (automatyczna). Modo de configuração proxy Seleccione o modo de configuração de proxy. Valores suportados são "none" (nenhum), "manual", "auto". Modo de configuração do proxy Selecione o modo de configuração do proxy. Valores aceitos são "none" (nenhum), "manual" (manual), "auto" (automático). Mod configurare proxy SelectaÈ›i modul de configurare proxy. Valorile suportate sunt „noneâ€, „manual†și „autoâ€. Режим конфигурации прокÑи-Ñерверов Режим конфигурации ÑервиÑа прокÑи. Возможные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ "none" ("отÑутÑтвует"), "manual" ("ручной"), "auto" ("автоматичеÑкий"). Režim nastavenia proxy Výber režimu nastavenia proxy. Podporované hodnoty sú "none", "manual", "auto". NaÄin nastavitev posredovalnega strežnika Izberite naÄin nastavitev posredovalnega strežnika. Podprte vrednosti so "brez", "roÄno", "samodejno". Modaliteti i konfigurimit proxy Zgjidh modalitetin e konfigurimit proxy. Vlerat e pranuara janë "asnjë", "manualisht", "automatikisht". Ðачин подешавања поÑредника Изаберите режим подешавања поÑредника. Допуштене вредноÑти Ñу „none“, „manual“ и „auto“. Режим подешавања поÑредника Изаберите режим подешавања поÑредника. Допуштене вриједноÑти Ñу „none“, „manual“ и „auto“. NaÄin podeÅ¡avanja posrednika Izaberite režim podeÅ¡avanja posrednika. DopuÅ¡tene vrednosti su „none“, „manual“ i „auto“. Proxykonfigurationsläge Välj proxykonfigurationsläget. Värden som stöds är "none", "manual", "auto". பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà¯ பாஙà¯à®•௠பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà¯ வழியை தேரà¯à®µà¯ செயà¯à®¯à®µà¯à®®à¯. "none", "manual", "auto" மதிபà¯à®ªà¯à®•ளà¯à®•à¯à®•௠ஆதரவ௠உணà¯à®Ÿà¯ à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ విధం à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ విధం à°Žà°‚à°šà±à°•ొనà±à°®à±. సహకరించౠవిలà±à°µà°²à± కలవౠ"à°à°¦à±€à°•ాదà±", "నిరà±à°¥à±‡à°¶à°¿à°•à°‚", "à°¸à±à°µà°¯à°‚చాలకం". โหมดà¸à¸²à¸£à¸•ั้งค่าพร็อà¸à¸‹à¸µ เลือà¸à¹‚หมดà¸à¸²à¸£à¸•ั้งค่าพร็อà¸à¸‹à¸µ สามารถตั้งเป็น "none", "manual", "auto" Vekil sunucu yapılandırma kipi Vekil yapılandırma kipi seç. Geçerli deÄŸerler "none", "manual" ve "auto"dur. Режим Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñлужби Виберіть режим Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñлужби. Можливі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "none", (немає) "manual", (вручну) "auto" (автоматично). Proksini moslash usuli ПрокÑини моÑлаш уÑули Chế độ cấu hình á»§y nhiệm Hãy chá»n chế độ cấu hình á»§y nhiệm. Giá trị được há»— trợ là: • none — không có, • manual — tá»± làm, • auto — tá»± động. Ukumiselwa kwenkqubo yekhompyutha esebenza njengomqobo Khetha inkqubo emiselweyo yekhompyutha esebenza njengomqobo. Amaxabiso axhaswayo ngala "none", "manual", "auto". 代ç†é…ç½®æ¨¡å¼ é€‰æ‹©ä»£ç†é…置模å¼ã€‚支æŒçš„值为“无â€ã€â€œæ‰‹åЍâ€ã€â€œè‡ªåЍâ€ã€‚ 代ç†ä¼ºæœå™¨çµ„æ…‹æ¨¡å¼ é¸æ“‡ä»£ç†ä¼ºæœå™¨è¨­ç½®æ¨¡å¼ã€‚支æ´çš„值有“noneâ€ã€â€œmanualâ€ã€â€œautoâ€ã€‚ 代ç†ä¼ºæœå™¨çµ„æ…‹æ¨¡å¼ é¸æ“‡ä»£ç†ä¼ºæœå™¨è¨­ç½®æ¨¡å¼ã€‚支æ´çš„值有“noneâ€ã€â€œmanualâ€ã€â€œautoâ€ã€‚ Isimo sesibambiso sesilinganisi Khetha isimo sesibambiso sesilinganisi. Amanani asekelwe yilawa "ngekho", "manual", "zenzakalelayo". /schemas/system/proxy/secure_host /system/proxy/secure_host gnome-vfs string Secure HTTP proxy host name The machine name to proxy secure HTTP through. Veilige-HTTP-instaangasheernaam Die masjiennaam waardeur veilige HTTP ingestaan moet word. اسم مضي٠وسيط HTTP آمن اسم الجهاز الذي سيقع عبره وسيطة آمنة للـ HTTP. নিৰাপদ HTTP পà§à§°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম নিৰাপদ HTTP পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম । Nome del host del proxy HTTP seguru El nome de la máquina pola que se fai proxy HTTP seguru. E'tibarlı HTTP vÉ™kil qovÅŸaq adı E'tibarlı HTTP üçün vÉ™kilin sistem adı. Ðазва вузла, паўнамоцнага па бÑÑьпечнаму HTTP Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай (proxy) па HTTPS. Име на Ñървъра-поÑредник за HTTPS Името на Ñървъра-поÑредник за връзки по Ñигурен HTTP (HTTPS) নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম যে মেশিনের মধà§à¦¯ দিয়ে নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম। Ime raÄunara za HTTPS proxy Naziv raÄunara za HTTPS proxy. Port del servidor intermediari d'HTTP segur El nom del servidor que fa de servidor intermediari d'HTTP segur. Port del servidor intermediari d'HTTP segur El nom del servidor que fa de servidor intermediari d'HTTP segur. Název poÄítaÄe proxy zabezpeÄeného HTTP Název poÄítaÄe, který používat jako proxy zabezpeÄeného HTTP. Enw'r gweinydd dirprwy HTTP diogel Enw'r peiriant i'w ddefnyddio fel dirprwy HTTP diogel. Sikker HTTP-mellemværtsnavn Maskinnavn som sikker HTTP-trafik skal gÃ¥ gennem. Rechnername des sicheren HTTP-Proxys Der Rechnername des sicheren HTTP-Proxys. ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་ ཧོསཊི་གི་ནེམ་ མà½à½ à¼‹à½–ཙན་བཟོ༠བརྒྱུད་དེ་ཨེཆ་ཊི་ཊི་པི་པོརོག་སི་ མà½à½ à¼‹à½–ཙན་བཟོ་ནིའི་ གློག་འཕྲུལ་གྱི་མིང༌༠Όνομα συστήματος ασφαλοÏÏ‚ διαμεσολαβητή HTTP Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση ασφαλοÏÏ‚ HTTP. ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ HTTP ð‘”ð‘®ð‘µ. Secure HTTP proxy host name The machine name to proxy secure HTTP through. Secure HTTP proxy host name The machine name to proxy secure HTTP through. Nombre del equipo del proxy HTTP seguro El nombre de la máquina por la que se hace proxy HTTP seguro. Turvalise HTTP proksiserveri aadress Turvalise HTTP proxi masina nimi HTTP Seguruaren proxy ostalariaren izena Ordenagailuaren izena, proxy HTTP segurua egiten duenarena. SHTTP-välipalvelimen nimi SHTTP-välipalvelimena toimivan koneen nimi. Nom d'hôte du serveur mandataire HTTP sécurisé Le nom de la machine qui sert de serveur mandataire HTTP sécurisé. Nome do host do proxy HTTP seguro O nome da máquina a través da que efectuar o proxy HTTP seguro. સà«àª°àª•à«àª·àª¿àª¤ HTTP પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ સà«àª°àª•à«àª·àª¿àª¤ પà«àª°à«‹àª•à«àª¸à«€ HTTP through માટે યંતà«àª°àª¨à« નામ. Secure HTTP proxy host name The machine name to proxy secure HTTP through. सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सिकà¥à¤¯à¥‹à¤° à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ किया जाना है. Ime raÄunala sigurnog http proxy-a Naziv raÄunala sa sigurnim HTTP proxy-em. Biztonságos HTTP proxy gépnév A biztonságos HTTP proxy gépneve. Nama host proksi HTTP teracak Nama mesin untuk melakukan proksi terhadap HTTP teracak. Nome dell'host proxy HTTP sicuro Il nome della macchina attraverso la quale effettuare il proxy HTTP sicuro. セキュア HTTP プロキシã®ãƒ›ã‚¹ãƒˆå セキュア HTTP ã®ãƒ—ロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚ უსáƒáƒ¤áƒ áƒ—ხრHTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი პრáƒáƒ¥áƒ¡áƒ˜ სერვერის მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი უსáƒáƒ¤áƒ áƒ—ხრHTTP-სთვის. ಸà³à²°à²•à³à²·à²¿à²¤ HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರೠಪà³à²°à²¾à²•à³à²¸à²¿ ಸà³à²°à²•à³à²·à²¿à²¤ HTTP ಮಾಡಲೠಬಳಸಬೇಕಿರà³à²µ ಗಣಕದ ಹೆಸರà³. 보안 HTTP 프ë¡ì‹œ 호스트 ì´ë¦„ 보안 HTTP 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„. Saugaus HTTP tarpinio serverio vardas Kompiuteris, teikiantis tarpinio saugaus HTTP serverio paslaugas. DroÅ¡s HTTP starpnieka saimniekdatora vÄrds Mašīnas vÄrds, lai starpietu cauri droÅ¡u HTTP. सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जकरासठपà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सिकà¥à¤¯à¥‹à¤° à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ कà¤à¤¨à¤¾à¤‡ अछि. Anaran'ny mpampiantrano proxy HTTP azo antoka Ny anaran'ilay milina hampiasana proxy HTTP azo antoka. Име на хоÑÑ‚ за безбеден HTTP proxy Име на машината преку која безбедно Ñе преминува за HTTP. സെകàµà´•àµà´¯àµ‚à´°àµâ€ HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം à´¸àµà´°à´•àµà´·à´¿à´¤à´®à´¾à´¯ HTTP വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ. Хамгаалалттай HTTP итгÑмжилÑгчийн хоÑÑ‚ нÑÑ€ ИтгÑмжилÑгч хамгаалалттай HTTP-н машины нÑÑ€ HTTP परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ करा सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ परà¥à¤¯à¤¾à¤¯à¥€ HTTP साठी पà¥à¤°à¤£à¤¾à¤²à¥€ नाव. Vertsnavn for HTTPS-proxy Maskinnavn for HTTPS-proxy. à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤® सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP)बाट पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ गरà¥à¤¨à¥‡ मेसिन नाम । Beveiligde HTTP-proxy hostnaam De machinenaam waar de beveiligde HTTP-proxy op draait. Vertsnamn pÃ¥ trygg HTTP-mellomtenar Namnet pÃ¥ maskinen som er trygg HTTP-mellomtenar. Leina la moswari la kemedi la PFSK le Å¡ireletÅ¡egilego Leina la motÅ¡hene gore le emele PFSK e Å¡ireletÅ¡egilego. ସà­à¬°à¬•à­à¬·à¬¿à¬¤ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଆଧାର ନାମ ସà­à¬°à¬•à­à¬·à¬¿à¬¤ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ. ਸà©à¨°à©±à¨–ਿਅਤ HTTP ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ ਮਸ਼ੀਨ ਦਾ ਨਾਂ, ਜਿਸ ਰਾਹੀ ਪਰਾਕਸੀ ਸà©à¨°à©±à¨–ਿਅਤ HTTP ਕਰਨੀ ਹੈ। Nazwa komputera poÅ›rednika HTTP Nazwa maszyny poÅ›redniczÄ…cej protokół SHTTP. Nome de máquina de proxy de HTTP seguro O nome da máquina através da qual efectuar proxy de HTTP seguro. Nome de máquina para proxy de HTTP seguro O nome da máquina para acessar o proxy de HTTP seguro. Nume proxy HTTPS Numele serverului proxy HTTPS. Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð³Ð¾ протокола HTTP Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð³Ð¾ протокола HTTP. Hostiteľ proxy pre zabezpeÄené HTTP Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre zabezpeÄené HTTP. Ime gostitelja varnega posredovalnega strežnika HTTP Ime raÄunalnika varnega posredovalnega strežnika HTTP. Emri i host i proxy të sigurtë HTTP Emri i makinës për kalimin tek proxy i sigurt HTTP. Име безбедног HTTP поÑредника Име рачунара за безбедно веб (HTTPS) поÑредовање. Име безбједног HTTP поÑредника Име рачунара за безбедно веб (HTTPS) поÑредовање. Ime bezbednog HTTP posrednika Ime raÄunara za bezbedno veb (HTTPS) posredovanje. Värdnamn för säker HTTP-proxyserver Namnet pÃ¥ maskinen som ska agera proxyserver för säker HTTP. பாதà¯à®•ாபà¯à®ªà®¾à®© HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயர௠பாதà¯à®•ாபà¯à®ªà®¾à®© HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ கà¯à®•ான கணினி பெயர௠రకà±à°·à°¿à°¤ HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ ఆతిథà±à°¯ నామమౠయంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°•à± à°°à°•à±à°·à°¿à°¤ HTTP à°—à±à°‚à°¡à°¾. ชื่อโฮสต์พร็อà¸à¸‹à¸µ Secure HTTP ชื่อเครื่องที่จะติดต่อ Secure HTTP ผ่าน Güvenli HTTP vekil sunucu adı Güvenli HTTP için kullanılacak vekilin makine adı. Ðазва вузла прокÑÑ–-Ñервера захищеного протоколу HTTP Ðазва вузла прокÑÑ–-Ñервера захищеного протоколу HTTP. Xavfsiz HTTP proksi xost nomi ХавфÑиз HTTP прокÑи хоÑÑ‚ номи Tên máy á»§y nhiệm HTTP bảo mật Tên cá»§a máy qua đó cần chạy á»§y nhiệm HTTP bảo mật. Igama lomququzeleli wekhompyutha esebenza njengomqobo ekhuselekileyo ye-HTTP Igama lomatshini lokusebenza njengekhompyutha engumqobo kwi-HTTP ekhuselekileyo. 安全 HTTP 代ç†ä¸»æœºå 代ç†å®‰å…¨ HTTP 的机器å。 å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 ç”¨åœ¨å®‰å…¨å¼ HTTP 的代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 ç”¨åœ¨å®‰å…¨å¼ HTTP 的代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 Umbambeli wegama lommemi ku-HTTP elikhuselekile Igama lomshini kusibambeli ikhusele i-HTTP ekudluleni. /schemas/system/proxy/secure_port /system/proxy/secure_port gnome-vfs int 0 Secure HTTP proxy port The port on the machine defined by "/system/proxy/secure_host" that you proxy through. Veilige-HTTP-instaanpoort Die poort op die masjien gedefinieer deur "/system/proxy/secure_host" waardeur jy 'n instaanverbinding kry. Ù…Ù†ÙØ° وسيط HTTP آمن Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ "/system/proxy/secure_host" المستعمل كوكيل. নিৰাপদ HTTP পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ "/system/proxy/secure_host" দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় । Puertu del proxy HTTP seguru El puertu de la máquina definía por "/system/proxy/secure_host" que fai de proxy. E'tibarlı HTTP vÉ™kil qovÅŸaq qapısı The port on the machine defined by "/system/proxy/secure_host" that you proxy through. Порт паўнамоцнага па бÑÑьпечнаму HTTP Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/proxy/secure_host, Ñкой належаць паўнамоцтвы. Порт на Ñървъра-поÑредник за HTTPS Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/secure_host“. নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ মেশিনে উলà§à¦²à§‡à¦–িত "/system/proxy/secure_host" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। নিরাপদ HTTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ "/system/proxy/secure_host" দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়। Port za HTTPS proxy Port na raÄunaru koji se koristi kao proxy i koji je definiran u "/system/proxy/secure_host". Port del servidor intermediari d'HTTP segur El port a l'ordinador definit per «/system/proxy/secure_host» pel que escolta el servidor intermediari. Port del servidor intermediari d'HTTP segur El port a l'ordinador definit per «/system/proxy/secure_host» pel que escolta el servidor intermediari. Port proxy zabezpeÄeného HTTP Port na poÄítaÄi definovaném v „/system/proxy/secure_host“, který používat pro proxy. Porth gweinydd dirprwy HTTP diogel Y porth ar y peiriant a ddiffinnir gan "/system/proxy/secure_host" yr ydych yn ei ddefnyddio fel dirprwy. Sikker HTTP-mellemværtsport Porten pÃ¥ den maskine defineret af "/system/proxy/secure_host" som trafikken skal gÃ¥ gennem. Port am sicheren HTTP-Proxy Der Proxy-Port am von »/system/http_proxy/secure_host« festgelegten Rechner. ཨེཆ་ཊི་ཊི་པི་ པོརོག་སི་གི་ འདྲེན་ལམ མà½à½ à¼‹à½–ཙན་བཟོ༠à½à¾±à½¼à½‘་ཀྱིས་པོརོག་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ "/system/proxy/secure_host" གིས་ ངེས་འཛིན་འབད་ཡོད༠ΘÏÏα ασφαλοÏÏ‚ διαμεσολαβητή HTTP Η θÏÏα στο σÏστημα που καθοÏίζεται από το "/system/proxy/secure_host" μέσω του οποίου γίνεται διαμεσολάβηση. ð‘•ð‘¦ð‘’ð‘˜ð‘«ð‘¼ HTTP ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘¹ð‘‘ 𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² "/system/proxy/secure_host" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ. Secure HTTP proxy port The port on the machine defined by "/system/proxy/secure_host" that you proxy through. Secure HTTP proxy port The port on the machine defined by "/system/proxy/secure_host" that you proxy through. Puerto del proxy HTTP seguro El puerto de la máquina definida por "/system/proxy/secure_equipo" que hace de proxy. Turvalise HTTP proksi port Port, defineeritud "/system/proxy/secure_host" poolt, mille kaudu proxyt kasutatakse. HTTP Seguruaren proxy -aren ataka Ordenagailuaren ataka, "/system/proxy/secure_host"-ean definituta proxy-arena egiteko. SHTTP-välipalvelimen portti Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/proxy/secure_hostâ€. Port du serveur mandataire HTTP sécurisé Le port de la machine définie dans « /system/proxy/secure_host » utilisée comme serveur mandataire. Porto do proxy HTTP seguro O porto da máquina definido por "/system/proxy/secure_host" a través do que efectuar o proxy. સà«àª°àª•à«àª·àª¿àª¤ HTTP પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ "/સિસà«àªŸàª®/પà«àª°à«‹àª•à«àª¸à«€/સà«àª°àª•à«àª·àª¿àª¤_યજમાન" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ કરો છો. Secure HTTP proxy port The port on the machine defined by "/system/proxy/secure_host" that you proxy through. सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित है "/system/proxy/secure_host" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं. Port sigurnog http proxy-a Port na raÄunalu je odreÄ‘en u datoteci /system/proxy/secure_host raÄunala s proxy-em. Biztonságos HTTP proxy port A „/system/proxy/secure_host†kulcsban proxyként megadott gép portja. Port proksi HTTP teracak Port pada mesin yang ditentukan oleh "/system/proxy/secure_host" yang Anda proksikan. Porta del proxy HTTP sicuro La porta sulla macchina definita in "/system/proxy/secure_host" attraverso la quale effettuare il proxy. セキュア HTTP プロキシã®ãƒãƒ¼ãƒˆç•ªå· プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€"/system/proxy/secure_host" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®ãƒãƒ¼ãƒˆç•ªå·ã§ã™ã€‚ უსáƒáƒ¤áƒ áƒ—ხრHTTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜ "/system/proxy/secure_host" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის. ಸà³à²°à²•à³à²·à²¿à²¤ HTTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨ ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ "/system/proxy/secure_host" ಯಲà³à²²à²¿ ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†. 보안 HTTP 프ë¡ì‹œ í¬íЏ 프ë¡ì‹œì— 사용할 í¬íЏ ("/system/proxy/secure_host"ì—서 지정한 기계ì—서). Saugaus HTTP tarpinio serverio prievadas Tarpinio saugaus http serverio prievadas, saugomas „/system/http_proxy/host“ rakte. DroÅ¡s HTTP starpnieka ports Mašīnas ports definÄ“ts "/system/proxy/secure_host" ,lai jÅ«s varÄ“tu iziet cauri starpniekam. सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि "/system/proxy/secure_host" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ करैत अछि. Iriky ny proxy HTTP azo antoka Ny irik'ilay milina voafaritry ny "/system/proxy/secure_host" hampiasaina amin'ny proxy. Безбедена HTTP proxy порта Портата на машината дефинирана во "/system/proxy/secure_host" преку која што кориÑтите прокÑи. സെകàµà´•àµà´¯àµ‚à´°àµâ€ HTTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ "/system/proxy/secure_host" à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ. Хамгаалалттай HTTP итгÑмжилÑгчийн порт ИтгÑмжилÑгч порт "/system/proxy/secure_host" гÑж тодорхойлогдÑон хоÑÑ‚ HTTP परà¥à¤¯à¤¾à¤¯à¥€ सà¥à¤¥à¤¾à¤¨ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ आहे संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ "/system/proxy/secure_host" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ वापरू शकता. Port for HTTPS-proxy Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/proxy/secure_host». à¤à¤šà¤Ÿà¥€à¤Ÿà¥€à¤ªà¥€ (HTTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ राखà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¤¿ गरà¥à¤¨à¥à¤­à¤à¤•ो "/system/proxy/socks_host" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ । Beveiligde HTTP-proxy poortnummer De poort op de machine die u als proxy gebruikt en gedefinieerd door "/system/proxy/secure_host" Port pÃ¥ trygg HTTP-mellomtenar Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/proxy/secure_host». DikopantÅ¡hwa le khomphuthara tÅ¡a PFSK tÅ¡e Å¡ireletÅ¡egilego Lefelo leo mo motÅ¡heneng le hlalositÅ¡wego ke "/system/proxy/secure_host" tÅ¡eo o di emelago. ସà­à¬°à¬•à­à¬·à¬¿à¬¤ à¬à¬šà­.ଟି.ଟି.ପି. ଛାୟା ଆଧାର ସଂଯୋଗିକୀ "/system/proxy/secure_host" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬. ਸà©à¨°à©±à¨–ਿਅਤ HTTP ਪਰਾਕਸੀ ਪੋਰਟ ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ "/system/proxy/secure_host" ਨੇ ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ ਰਹੇ ਹੋ। Port poÅ›rednika bezpiecznego połączenia HTTP Port komputera okreÅ›lonego przez "/system/proxy/secure_host", bÄ™dÄ…cy poÅ›rednikiem dla ruchu sieciowego. Porto de proxy de HTTP seguro O porto na máquina, definido por "/system/proxy/secure_host", através do qual efectuar proxy. Porta para proxy de HTTP seguro A porta na máquina definida por "/system/http_proxy/secure_host" que você acessará o proxy. Port proxy HTTPS Portului serverului proxy definit în „/system/proxy/secure_hostâ€. Порт прокÑи-Ñервера Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‰Ñ‘Ð½Ð½Ð¾Ð³Ð¾ протокола HTTP Порт на машине, определённой ключом "/system/proxy/secure_host" Ð´Ð»Ñ ÑервиÑа прокÑи. Port proxy pre zabezpeÄené HTTP Port poÄítaÄa definovaného v "/system/proxy/secure_host", ktorý používate ako proxy. Vrata varnega posredovalnega strežnika HTTP Vrata raÄunalnika, ki jih doloÄa nastavitev "/system/proxy/secure_host" posredovalnega strežnika. Porta e proxy të sigurt HTTP Porta e makinës e përcaktuar nga "/system/proxy/secure_host" nga do të kalojë proxy juaj. Порт безбедног HTTP поÑредника Порт рачунара датог у „/system/proxy/secure_proxy“ кроз који поÑредује. Порт безбједног HTTP поÑредника Порт машине одређене помоћу „/system/proxy/secure_proxy“ која је поÑредник. Port bezbednog HTTP posrednika Port raÄunara datog u „/system/proxy/secure_proxy“ kroz koji posreduje. Port för säker HTTP-proxyserver Porten pÃ¥ maskinen som definieras av "/system/proxy/secure_host" som du använder som proxyserver. பாதà¯à®•ாபà¯à®ªà®¾à®© HTTP பà¯à®°à®¾à®•à¯à®¸à®¿ வழி "/system/proxy/secure_host" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறத௠రకà±à°·à°¿à°¤ HTTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ రేవౠరేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ "/à°µà±à°¯à°µà°¸à±à°¥/à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/à°°à°•à±à°·à°¿à°¤_ఆతిథà±à°¯à°‚" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ à°—à±à°‚à°¡à°¾. พอร์ตพร็อà¸à¸‹à¸µ Secure HTTP พอร์ตบนเครื่องที่ตั้งไว้ใน "/system/proxy/secure_host" ที่จะใช้ติดต่อผ่าน Güvenli HTTP sunucu portu "/system/proxy/secure_host" ile tanımlanmış vekil olarak kullanacağınız makinenin portu. Порт прокÑÑ–-Ñервера захищеного протоколу HTTP Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем "/system/proxy/secure_host". Xavfsiz HTTP proksi porti ХавфÑиз HTTP прокÑи порти Cổng á»§y nhiệm HTTP bảo mật Cổng trên máy được định nghÄ©a bởi « /system/proxy/secure_host » qua đó cần chạy á»§y nhiệm. Isiqhagamsheli sekhompyutha esebenza njengomqobo se-HTTP ekhuselekileyo Isiqhagamsheli esisematshinini esichazwa yi- "/system/proxy/secure_host" kwikhompyutha osebenza kuyo esebenza njengomqobo. 安全 HTTP 代ç†ç«¯å£ æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/proxy/secure_hostâ€ä¸­ã€‚ å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ  在“/system/proxy/secure_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 å®‰å…¨å¼ HTTP 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ  在“/system/proxy/secure_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 Umbambeli wethuku ku-HTTP okhuselekile Itheku emshinini lichazwa nge "/system/proxy/secure_host" obambisela ngayo. /schemas/system/proxy/ftp_host /system/proxy/ftp_host gnome-vfs string FTP proxy host name The machine name to proxy FTP through. FTP-instaangasheernaam Die masjiennaam waardeur FTP ingestaan moet word. اسم مضي٠وسيط الـ FTP اسم الجهاز الذي سيقع وسيطة الـ FTP عبره. FTP পà§à§°à¦•à§à¦¸à¦¿à§° হোসà§à¦Ÿ-নেম FTP পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম । Nome del host del proxy FTP El nome de la máquina pola que se fai proxy FTP. FTP vÉ™kil qovÅŸaq adı FTP üçün vÉ™kilin sistem adı. Ðазва вузла, паўнамоцнага па FTP Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай (proxy) па FTP. Име на Ñървъра-поÑредник за FTP Името на Ñървъра-поÑредник за връзки по FTP FTP পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম যে মেশিনের মধà§à¦¯ দিয়ে FTP পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। FTP পà§à¦°à¦•à§à¦¸à¦¿à¦° হোসà§à¦Ÿ-নেম FTP পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম। Ime raÄunara za FTP proxy Naziv raÄunara za FTP proxy. Nom del servidor intermediari d'FTP El nom del servidor que fa de servidor intermediari d'FTP. Nom del servidor intermediari d'FTP El nom del servidor que fa de servidor intermediari d'FTP. Název poÄítaÄe proxy FTP Název poÄítaÄe, který používat jako proxy FTP. Enw'r gweinydd dirprwy FTP Enw'r peiriant i'w ddefnyddio fel dirprwy FTP. FTP-mellemværtsnavn Maskinnavn som FTP-trafik skal gÃ¥ gennem. Rechnername des FTP-Proxys Der Rechnername des FTP-Proxys. ཨེཕ་ཊི་པི་ པོརོག་སི་གི་ ཧོསཊི་ནེམ༌༠ཨེཕ་ཊི་པི་ པོརོག་སི་་འབད་ནིའི་ གློག་འཕྲུལ་ཆས་མིང༌༠Όνομα συστήματος διαμεσολαβητή FTP Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση FTP. FTP proxy host name The machine name to proxy FTP through. FTP proxy host name The machine name to proxy FTP through. Nombre del equipo proxy FTP El nombre de la máquina por la que se hace proxy FTP. FTP proksiserveri aadress FTP proxi masina nimi FTP proxy ostalariaren izena Ordenagailuaren izena, proxy FTPa egiten duenarena. FTP-välipalvelimen nimi FTP-välipalvelimena toimivan koneen nimi. Nom d'hôte du serveur mandataire FTP Le nom de la machine qui sert de serveur mandataire FTP. Nome do host proxy FTP O nome da máquina a través da que efectuar o proxy FTP. FTP પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ પà«àª°à«‹àª•à«àª¸à«€ FTP through માટે યંતà«àª°àª¨à« નામ. FTP proxy host name The machine name to proxy FTP through. à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ किया जाना है. Ime FTP proxy raÄunala Naziv raÄunala s FTP proxy-em. FTP proxy gépnév Az FTP proxy gépneve. Nama host proksi FTP Nama mesin untuk melakukan proksi terhadap FTP. Nome dell'host proxy FTP Il nome della macchina attraverso la quale effettuare il proxy FTP. FTP プロキシã®ãƒ›ã‚¹ãƒˆå FTP プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚ FTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი პრáƒáƒ¥áƒ¡áƒ˜ სერვერის მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი FTP-სთვის. FTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರೠಪà³à²°à²¾à²•à³à²¸à²¿ FTP ಮಾಡಲೠಬಳಸಬೇಕಿರà³à²µ ಗಣಕದ ಹೆಸರà³. FTP 프ë¡ì‹œ 호스트 ì´ë¦„ FTP 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„. FTP tarpinio serverio vardas Kompiuteris, teikiantis tarpinio FTP serverio paslaugas. FTP starpnieka saimniekdatora vÄrds Mašīnas vÄrds, lai starpietu cauri FTP. à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जकरासठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ à¤à¤«à¤Ÿà¥€à¤ªà¥€ कà¤à¤¨à¤¾à¤‡ अछि. Anaran'ny mpampiantrano proxy FTP Ny anaran'ilay milina hampiasana proxy FTP. Име на хоÑÑ‚ за FTP proxy Име на машината преку која Ñе преминува за FTP. FTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം FTP വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ. FTPитгÑмжилÑгч хоÑÑ‚ нÑÑ€ ИтгÑмжилÑгч FTP -н машины нÑÑ€ FTP परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव परà¥à¤¯à¤¾à¤¯à¥€ FTP साठी यांतà¥à¤°à¤¿à¤• नाव. Vertsnavn for FTP-proxy Maskinnavn for FTP-proxy. à¤à¤«à¤Ÿà¥€à¤ªà¥€ (FTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤® à¤à¤«à¤Ÿà¥€à¤ªà¥€ (FTP)बाट पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ मेसिन नाम FTP-proxy hostnaam De machinenaam waar de FTP-proxy op draait. Vertsnamn pÃ¥ FTP-mellomtenar Namnet pÃ¥ maskinen som er FTP-mellomtenar. Leina la moswari la kemedi la PFF Leina la motÅ¡hene gore le emele PFF. à¬à¬«à­.ଟି.ପି. ଛାୟା ଆଧାର ନାମ à¬à¬«à­.ଟି.ପି. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ. FTP ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ ਪਰਾਕਸੀ FTP ਕਰਨ ਵਾਲੀ ਮਸ਼ੀਨ ਦਾ ਨਾਂ ਹੈ। Nazwa komputera poÅ›rednika FTP Nazwa maszyny poÅ›redniczÄ…cej protokół FTP. Nome de máquina da proxy FTP O nome da máquina através da qual efectuar proxy de FTP. Nome de máquina do proxy FTP O nome da máquina para acessar o proxy de FTP. Nume proxy FTP Numele serverului proxy FTP. Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° FTP Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° FTP. Hostiteľ pre FTP proxy Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre FTP. Ime gostitelja FTP posredovalnega strežnika Ime raÄunalnika FTP posredovalnega strežnika. Emri i host proxy FTP Emri i makinës për kalimin tek proxy FTP. Име FTP поÑредника Име рачунара за FTP поÑредовање. Име FTP поÑредника Име рачунара FTP поÑредника. Ime FTP posrednika Ime raÄunara za FTP posredovanje. Värdnamn för FTP-proxyserver Namnet pÃ¥ maskinen som ska agera proxyserver för FTP. FTP பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயர௠FTP பà¯à®°à®¾à®•à¯à®¸à®¿ கà¯à®•ான கணினி பெயர௠FTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°§à±à°¯ ఆతిథà±à°¯ నామమౠయంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°•à± à°°à°•à±à°·à°¿à°¤ FTP à°—à±à°‚à°¡à°¾. ชื่อโฮสต์พร็อà¸à¸‹à¸µ FTP ชื่อเครื่องที่จะติดต่อ FTP ผ่าน FTP vekil sunucu makine adı FTP için kullanılacak vekilin makine adı. Ðазва вузла прокÑÑ–-Ñервера протоколу FTP Ðазва вузла прокÑÑ–-Ñервера протоколу FTP. FTP proksi xost nomi FTP прокÑи хоÑÑ‚ номи Tên máy á»§y nhiệm FTP Tên cá»§a máy qua đó cần chạy á»§y nhiệm FTP. Igama lomququzeleli wekhompyutha esebenza njengomqobo ye-FTP Igama lomatshini lokusebenza njengekhompyutha engumqobo kwi-FTP. FTP 代ç†ä¸»æœºå ä»£ç† FTP 的机器å。 FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 FTP 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 Umbambeli wegama lommemi ku-FTP Igama lomshini kusibambeli se-FTP sidlulele. /schemas/system/proxy/ftp_port /system/proxy/ftp_port gnome-vfs int 0 FTP proxy port The port on the machine defined by "/system/proxy/ftp_host" that you proxy through. FTP-instaanpoort Die poort op die masjien gedefinieer deur "/system/proxy/ftp_host" waardeur jy 'n instaanverbinding kry. Ù…Ù†ÙØ° وسيط الـ FTP Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ "/system/proxy/ftp_host" المستعمل كوكيل. FTP পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ "/system/proxy/ftp_host" দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় । Puertu del proxy FTP El puertu de la máquina definía por "/system/proxy/ftp_host" que fai de proxy. FTP vÉ™kil qapısı The port on the machine defined by "/system/proxy/ftp_host" that you proxy through. Порт паўнамоцнага па FTP Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/proxy/ftp_host, Ñкой належаць паўнамоцтвы. Порт на Ñървъра-поÑредник за FTP Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/ftp_host“. FTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ মেশিনে উলà§à¦²à§‡à¦–িত "/system/proxy/ftp_host" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। FTP পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ "/system/proxy/ftp_host" দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়। Port za FTP proxy Port na raÄunaru koji se koristi kao proxy i koji je definiran u "/system/proxy/ftp_host". Port del servidor intermediari d'FTP El port a l'ordinador definit per «/system/proxy/ftp_host» pel que escolta el servidor intermediari. Port del servidor intermediari d'FTP El port a l'ordinador definit per «/system/proxy/ftp_host» pel que escolta el servidor intermediari. Port proxy FTP Port na poÄítaÄi definovaném v „/system/proxy/ftp_host“, který používat pro proxy. Porth gweinydd dirprwy FTP Y porth ar y peiriant a ddiffinnir gan "/system/proxy/ftp_host" yr ydych yn ei ddefnyddio fel dirprwy. FTP-mellemværtsport Porten pÃ¥ den maskine defineret af "/system/proxy/ftp_host" som trafikken skal gÃ¥ gennem. Port am FTP-Proxy Der Proxy-Port am von »/system/http_proxy/ftp_host« festgelegten Rechner. ཨེཕ་ཊི་པི་ པོརོག་སི་ འདྲེན་ལམ༠à½à¾±à½¼à½‘་ཀྱིས་ པོ་རོ་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ "/system/proxy/ftp_host" གིས་ངེས་འཛིན་འབད་ཡོད༠ΘÏÏα διαμεσολαβητή FTP Η θÏÏα στο σÏστημα που καθοÏίζεται από το "/system/proxy/ftp_host" μέσω του οποίου γίνεται διαμεσολάβηση. 𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² "/system/proxy/ftp_host" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ. FTP proxy port The port on the machine defined by "/system/proxy/ftp_host" that you proxy through. FTP proxy port The port on the machine defined by "/system/proxy/ftp_host" that you proxy through. FTP-prokura pordo Puerto del proxy FTP El puerto de la máquina definida por "/system/proxy/ftp_equipo" que hace de proxy. FTP proksi port Port, defineeritud "/system/proxy/ftp_host" poolt, mille kaudu proxyt kasutatakse. FTP proxy-aren ataka Ordenagailuaren ataka, "/system/proxy/ftp_host"-ean definituta proxy-arena egiteko. FTP-välipalvelimen portti Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/proxy/ftp_hostâ€. Port du serveur mandataire FTP Le port de la machine définie dans « /system/proxy/ftp_host » utilisée comme serveur mandataire. Porto do proxy FTP O porto da máquina definido por "/system/proxy/ftp_host" a través do que efectuar o proxy. FTP પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ "/સિસà«àªŸàª®/પà«àª°à«‹àª•à«àª¸à«€/ftp_યજમાન" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ કરો છો. FTP proxy port The port on the machine defined by "/system/proxy/ftp_host" that you proxy through. à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित है "/system/proxy/ftp_host" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं. FTP proxy port Port na raÄunalu je odreÄ‘en u datoteci /system/proxy/ftp_host raÄunala s proxy-em. FTP proxy port A „/system/proxy/ftp_host†kulcsban proxyként megadott gép portja. Port proksi FTP Port pada mesin yang ditentukan oleh "/system/proxy/ftp_host" yang Anda proksikan. Porta proxy FTP La porta sulla macchina definita in "/system/proxy/ftp_host" attraverso la quale effettuare il proxy. FTP プロキシã®ãƒãƒ¼ãƒˆç•ªå· プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€"/system/proxy/ftp_host" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®ãƒãƒ¼ãƒˆç•ªå·ã§ã™ã€‚ FTP პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜ "/system/proxy/ftp_host" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის. FTP ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨ ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ "/system/proxy/ftp_host" ಯಲà³à²²à²¿ ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†. FTP 프ë¡ì‹œ í¬íЏ 프ë¡ì‹œì— 사용할 í¬íЏ ("/system/proxy/ftp_host"ì—서 지정한 기계ì—서). FTP tarpinio serverio prievadas Tarpinio ftp serverio prievadas, saugomas „/system/http_proxy/host“ rakte. FTP starpnieka ports Mašīnas ports definÄ“ts "/system/proxy/ftp_host" , lai jÅ«s varÄ“tu iziet cauri starpniekam. à¤à¤«à¤¼à¤Ÿà¥€à¤ªà¥€ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि "/system/proxy/ftp_host" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ करैत अछि. Iriky ny proxy FTP Ny irik'ilay milina voafaritry ny "/system/proxy/ftp_host" hampiasaina amin'ny proxy. Порта за FTP proxy Портата на машината дефинирана во "/system/proxy/ftp_host" преку која што кориÑтите прокÑи. FTP à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ "/system/proxy/ftp_host" à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ. FTP итгÑмжилÑгчийн порт ИтгÑмжилÑгч порт "/system/proxy/ftp_host" гÑж тодорхойлогдÑон хоÑÑ‚ FTP परà¥à¤¯à¤¾à¤¯à¥€ पोरà¥à¤Ÿ संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ "/system/proxy/ftp_host" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ वापरू शकता. Port for FTP-proxy Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/proxy/ftp_host». à¤à¤«à¤Ÿà¥€à¤ªà¥€ (FTP) पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¤¿ गरà¥à¤¨à¥à¤­à¤à¤•ो "/system/proxy/ftp_host" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ । FTP-proxy poortnummer De poort op de machine die u als proxy gebruikt en gedefinieerd door "/system/proxy/ftp_host" Port pÃ¥ FTP-mellomtenar Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/proxy/ftp_host». DikopantÅ¡hwa le khomphuthara tÅ¡a kemedi tÅ¡a PFF Lefelo leo mo motÅ¡heneng le hlalositÅ¡wego ke "/system/proxy/ftp_host" yo o mo emelago. à¬à¬«à­.ଟି.ପି. ଛାୟା ସଂଯୋଗିକୀ "/system/ftp_proxy/host" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬. FTP ਪਰਾਕਸੀ ਪੋਰਟ ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ "/system/proxy/ftp_host" ਨੇ ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ ਰਹੇ ਹੋ। Port poÅ›rednika FTP Port komputera okreÅ›lonego przez "/system/proxy/ftp_host", bÄ™dÄ…cy poÅ›rednikiem dla ruchu sieciowego. Porto do proxy FTP O porto na máquina, definido por "/system/proxy/ftp_host", através do qual efectuar proxy. Porta do proxy FTP A porta na máquina definida por "/system/http_proxy/ftp_host" que você acessará o proxy. Port proxy FTP Portul serverului proxy definit în „/system/proxy/ftp_host†Порт прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° FTP Порт на машине, определённой ключом "/system/proxy/ftp_host" Ð´Ð»Ñ ÑервиÑа прокÑи. Port pre FTP proxy Port poÄítaÄa definovaného v "/system/proxy/ftp_host", ktorý používate ako proxy. Vrata FTP posredovalnega strežnika Vrata raÄunalnika, ki jih doloÄa nastavitev"/system/proxy/ftp_host" posredovalnega strežnika. Porta e proxy FTP Porta e makinës e përcaktuar nga "/system/proxy/ftp_host" nga do të kalojë proxy juaj. Порт FTP поÑредника Порт рачунара датог у „/system/proxy/ftp_proxy“ кроз који поÑредује. Порт FTP поÑредника Порт машине одређене помоћу „/system/proxy/ftp_proxy“ која је поÑредник. Port FTP posrednika Port raÄunara datog u „/system/proxy/ftp_proxy“ kroz koji posreduje. Port för FTP-proxyserver Porten pÃ¥ maskinen som definieras av "/system/proxy/ftp_host" som du använder som proxyserver. FTP பà¯à®°à®¾à®•à¯à®¸à®¿ வழி "/system/proxy/ftp_host" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறத௠FTP à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°§à±à°¯ రేవౠరేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ "/à°µà±à°¯à°µà°¸à±à°¥/à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/ftp_ఆతిథà±à°¯à°‚" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚à°—à±à°‚à°¡à°¾. พอร์ตพร็อà¸à¸‹à¸µ FTP พอร์ตบนเครื่องที่ตั้งไว้ใน "/system/proxy/ftp_host" ที่จะใช้ติดต่อผ่าน FTP vekil sunucu portu "/system/proxy/ftp_host" ile tanımlanmış vekil olarak kullanacağınız makinenin portu. Порт прокÑÑ–-Ñервера протоколу FTP Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем "/system/proxy/ftp_host". FTP proksi porti FTP прокÑи порти Cổng á»§y nhiệm FTP Cổng trên máy được định nghÄ©a bởi « /system/ftp_proxy/host » qua đó cần chạy á»§y nhiệm. Isiqhagamsheli sekhompyutha esebenza njengomqobo se-FTP Isiqhagamsheli ematshinini esichazwa yi -"/system/proxy/ftp_host" osebenza kuyo njengekhompyutha esebenza njengomqobo. FTP 代ç†ç«¯å£ æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/proxy/ftp_hostâ€ä¸­ã€‚ FTP 代ç†ä¼ºæœå™¨åŸ è™Ÿ 在“/system/proxy/ftp_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 FTP 代ç†ä¼ºæœå™¨åŸ è™Ÿ 在“/system/proxy/ftp_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 Umbambeli wetheku Ku-FTP Itheku emshinini lichazwa nge "/system/proxy/ftp_host" obambisela ngayo. /schemas/system/proxy/socks_host /system/proxy/socks_host gnome-vfs string SOCKS proxy host name The machine name to proxy socks through. SOCKS-instaangasheernaam Die masjiennaam waardeur SOCKS ingestaan moet word. اسم مضي٠وسيط SOCKS اسم الجهاز الذي سيقع بركسية socks·عبره. SOCKS পà§à§°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম socks পà§à§°à¦•à§à¦¸à¦¿à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ মেশিনেৰ নাম । Nome del host del proxy SOCKS El nome de la máquina pela que se fai proxy socks. SOCKS vÉ™kil qovÅŸaq adı Socks üçün vÉ™kilin sistem adı. Ðазва вузлу, паўнамоцнага па Socks Ðазва машыны, ÑÐºÐ°Ñ Ð·ÑŒÑўлÑецца паўнамоцнай (proxy) па SOCKS. Име на Ñървъра-поÑредник за SOCKS Името на Ñървъра-поÑредник за връзки по SOCKS SOCKS পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿà§‡à¦° নাম যে মেশিনের মধà§à¦¯ দিয়ে socks পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। SOCKS পà§à¦°à¦•à§à¦¸à¦¿ হোসà§à¦Ÿ-নেম socks পà§à¦°à¦•à§à¦¸à¦¿à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ মেশিনের নাম। Ime raÄunara za SOCKS proxy Naziv raÄunara za SOCKS proxy. Nom del servidor intermediari de SOCKS El nom del servidor que fa de servidor intermediari de socks. Nom del servidor intermediari de SOCKS El nom del servidor que fa de servidor intermediari de socks. Název poÄítaÄe proxy SOCKS Název poÄítaÄe, který používat jako proxy socks. Enw gweinydd y dirprwy SOCKS Enw'r peiriant i'w ddefnyddio fel dirprwy SOCKS. SOCKS-mellemværtsnavn Maskinnavn som SOCKS-trafik skal gÃ¥ gennem. Rechnername des Socks-Proxys Der Rechnername des Socks-Proxys. ཨེསི་ཨོ་སི་ཀེ་ཨེསི་ པོརོག་སི་ ཧོསཊི་ནེམ༠བརྒྱུད་དེ་ཨེསི་ཨོ་སི་ཀེ་ཨེསི་ པོརོག་སི་འབད་ནིའི་ གློག་འཕྲུལ་གྱི་མིང༌༠Όνομα συστήματος διαμεσολαβητή SOCKS Το όνομα συστήματος μέσω του οποίου γίνεται διαμεσολάβηση socks. ·ð‘•ð‘ªð‘’ð‘• ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘£ð‘´ð‘•ð‘‘ ð‘¯ð‘±ð‘¥ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘¯ð‘±ð‘¥ ð‘‘ ð‘ð‘®ð‘ªð‘’ð‘•𑦠·ð‘•ð‘ªð‘’ð‘• ð‘”ð‘®ð‘µ. SOCKS proxy host name The machine name to proxy socks through. SOCKS proxy host name The machine name to proxy socks through. Nombre del equipo del proxy SOCKS El nombre de la máquina por la que se hace proxy socks. SOCKS proksiserveri aadress Socks proxi masina nimi SOCKS proxy ostalariaren izena Ordenagailuaren izena, proxy socks egiten duenarena. SOCKS-välipalvelimen nimi SOCKS-välipalvelimena toimivan koneen nimi. Nom d'hôte du serveur mandataire SOCKS Le nom de machine qui sert de serveur mandataire socks. Nome do host do proxy SOCKS O nome da máquina a través da que efectuar o proxy socks. SOCKS પà«àª°à«‹àª•à«àª¸à«€ યજમાન નામ પà«àª°à«‹àª•à«àª¸à«€ socks through માટે યંતà«àª°àª¨à« નામ. SOCKS proxy host name The machine name to proxy socks through. सॉकà¥à¤¸ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जिससे पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सॉकà¥à¤¸ किया जाना है. Spaja ime proxy raÄunala Naziv raÄunala s proxy utiÄnicama. SOCKS proxy gépnév A socks proxy gépneve. Nama host proksi SOCKS Nama mesin untuk melakukan proksi terhadap socks. Nome dell'host proxy SOCKS Il nome della macchina attraverso la quale effettuare il proxy SOCKS. SOCKS プロキシã®ãƒ›ã‚¹ãƒˆå SOCKS プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ãƒžã‚·ãƒ³ã®åå‰ã§ã™ã€‚ SOCKS პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ ჰáƒáƒ¡áƒ¢áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ სáƒáƒ®áƒ”ლი პრáƒáƒ¥áƒ¡áƒ˜ áƒáƒ áƒ®áƒ˜áƒ¡áƒ—ვის. SOCKS ಪà³à²°à²¾à²•à³à²¸à²¿ ಅತಿಥೇಯದ ಹೆಸರೠಪà³à²°à²¾à²•à³à²¸à²¿ ಸಾಕà³à²¸à³ ಮಾಡಲೠಗಣಕದ ಹೆಸರà³. SOCKS 프ë¡ì‹œ 호스트 ì´ë¦„ SOCKS 프ë¡ì‹œë¡œ 쓸 ê¸°ê³„ì˜ ì´ë¦„. SOCKS tarpinio serverio vardas Kompiuteris, teikiantis tarpinio socks serverio paslaugas. SOCKS starpnieka saimniekdatora vÄrds Mašīnas vÄrds, lai starpietu cauri. साकà¥à¤¸ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ होसà¥à¤Ÿ नाम मशीन नाम जकरासठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ साकà¥à¤¸ कà¤à¤¨à¤¾à¤‡ अछि. Anaran'ny mpampiantrano proxy SOCKS Ny anaran'ilay milina hampiasana proxy socks. SOCKS proxy име на хоÑÑ‚ Името на машината што ќе Ñе кориÑти како прокÑи. SOCKS à´ªàµà´°àµ‹à´•àµà´¸à´¿ ഹോസàµà´±àµà´±àµ നെയിം സോകàµà´•àµà´¸àµ വഴി à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പേരàµ. SOCKS ИтгÑмжилÑгчийн хоÑтын нÑÑ€ ИтгÑмжилÑгч socks-н машины нÑÑ€ SOCKS परà¥à¤¯à¤¾à¤¯à¥€ यजमान नाव परà¥à¤¯à¤¾à¤¯à¥€ सॉकà¥à¤¸ साठी यातà¥à¤°à¤¿à¤• नाव. Vertsnavn for SOCKS-proxy Maskinnavn for SOCKS-proxy. SOCKS पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ होसà¥à¤Ÿà¤¨à¤¾à¤® सकà¥à¤¸à¤¬à¤¾à¤Ÿ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ गरà¥à¤¨à¥‡ मेसिनको नाम । SOCKS-proxy hostnaam De machinenaam waar de socks-proxy op draait. Vertsnamn pÃ¥ SOCKS-mellomtenar Namnet pÃ¥ maskinen som er Socks-mellomtenar. Leina la moswari la kemedi la SOCKS Leina la motÅ¡hene gore le emele dikausu. à¬à¬¸à­.ଓ.ସି.କେ.à¬à¬¸à­. ଛାୟା ଆଧାର ନାମ à¬à¬¸à­.ଓ.ସି.କେ.à¬à¬¸à­. ଛାୟା ପାଇଠଯନà­à¬¤à­à¬°à¬° ନାମ. SOCKS ਪਰਾਕਸੀ ਹੋਸਟ ਨਾਂ ਪਰਾਕਸੀ ਸਾਕਟ ਲਈ ਮਸ਼ੀਨ ਨਾਂ ਹੈ। Nazwa komputera poÅ›rednika gniazd Nazwa maszyny stanowiÄ…cej poÅ›rednika dla mechanizmu gniazd. Nome de máquina de proxy SOCKS O nome da máquina através da qual efectuar proxy socks. Nome de máquina do proxy de SOCKS O nome da máquina para acessar o proxy de SOCKS. Nume proxy SOCKS Numele serverului proxy SOCKS. Ð˜Ð¼Ñ Ð¿Ñ€Ð¾ÐºÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° SOCKS Ð˜Ð¼Ñ Ð¼Ð°ÑˆÐ¸Ð½Ñ‹ прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° SOCKS. Hostiteľ proxy pre SOCKS Názov poÄítaÄa, ktorý používaÅ¥ ako proxy pre socks. Ime gostitelja posredovalnega strežnika SOCKS Ime raÄunalnika posredovalnega strežnika SOCKS. Emri i host proxy SOCKS Emri i makinës për kalimin tek proxy socks. Име SOCKS поÑредника Име рачунара за SOCKS поÑредовање. Име SOCKS поÑредника Име рачунара SOCKS поÑредника. Ime SOCKS posrednika Ime raÄunara za SOCKS posredovanje. Värdnamn för SOCKS-proxyserver Namnet pÃ¥ maskinen som ska agera proxyserver för socks. SOCKS பà¯à®°à®¾à®•à¯à®¸à®¿ பà¯à®°à®µà®²à®©à¯ பெயர௠socks வழியாக பà¯à®°à®¾à®•à¯à®¸à®¿à®•à¯à®•ான கணினி பெயர௠సోకà±à°¸à± à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ ఆతిథà±à°¯ నామమౠయంతà±à°°à°‚ నామమౠకౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚కౠసోకà±à°¸à± à°—à±à°‚à°¡à°¾. ชื่อโฮสต์พร็อà¸à¸‹à¸µ SOCKS ชื่อเครื่องที่จะติดต่อ socks ผ่าน SOCKS vekil sunucu adı Socks için kullanılacak vekilin makine adı. Вузол прокÑÑ–-Ñлужби протоколу SOCKS Ðазва вузла прокÑÑ–-Ñервера протоколу SOCKS. SOCKS proksi xost nomi SOCKS прокÑи хоÑÑ‚ номи Tên máy á»§y nhiệm SOCKS Tên cá»§a máy qua đó cần chạy á»§y nhiệm SOCKS. Igama lomququzeleli wekhompyutha esebenza njengomqobo ye-SOCKS Igama lomatshini kwikhompyutha esebenza njengomqobo ongasebenza kuyo. SOCKS 代ç†ä¸»æœºå 代ç†å¥—接字的机器å。 SOCKS 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 socks 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 SOCKS 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱 socks 代ç†ä¼ºæœå™¨ä¸»æ©Ÿå稱。 umbambeli wegama lommemi ku-SOCKS Igama lomshini kusibambeli sesocks sidlulele. /schemas/system/proxy/socks_port /system/proxy/socks_port gnome-vfs int 0 SOCKS proxy port The port on the machine defined by "/system/proxy/socks_host" that you proxy through. SOCKS-instaanpoort Die poort op die masjien gedefinieer deur "/system/proxy/socks_host" waardeur jy 'n instaanverbinding kry. Ù…Ù†ÙØ° وسيط SOCKS Ù…Ù†ÙØ° الجهاز المحدد ÙÙŠ "/system/proxy/socks_host" المستعمل كوكيل. SOCKS পà§à§°à¦•à§à¦¸à¦¿ পোৰà§à¦Ÿ পà§à§°à¦•à§à¦¸à¦¿ কৰাৰ উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনেৰ পোৰà§à¦Ÿ "/system/proxy/socks_host" দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ কৰা হয় । Puertu del proxy SOCKS El puertu de la máquina definía por "/system/proxy/socks_host" que fai de proxy. SOCKS vÉ™kil qapısı The port on the machine defined by "/system/proxy/socks_host" that you proxy through. Порт паўнамоцнага па Socks Порт на машыне, ÑÐºÐ°Ñ Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð° Ñž /system/proxy/socks_host, Ñкой належаць паўнамоцтвы. Порт на Ñървъра-поÑредник за SOCKS Портът на Ñървъра-поÑредник, който е дефиниран в „/system/proxy/socks_host“. SOCKS পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ মেশিনে উলà§à¦²à§‡à¦–িত "/system/proxy/socks_host" পোরà§à¦Ÿ যার মধà§à¦¯ দিয়ে পà§à¦°à¦•à§à¦¸à¦¿ করা হবে। SOCKS পà§à¦°à¦•à§à¦¸à¦¿ পোরà§à¦Ÿ পà§à¦°à¦•à§à¦¸à¦¿ করার উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মেশিনের পোরà§à¦Ÿ "/system/proxy/socks_host" দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¾à¦–à§à¦¯à¦¾ করা হয়। Port za SOCKS proxy Port na raÄunaru koji se koristi kao proxy i koji je definiran u "/system/proxy/socks_host". Port del servidor intemediari de SOCKS El port a l'ordinador definit per «/system/proxy/socks_host» pel que escolta el servidor intermediari. Port del servidor intemediari de SOCKS El port a l'ordinador definit per «/system/proxy/socks_host» pel que escolta el servidor intermediari. Port proxy SOCKS Port na poÄítaÄi definovaném v „/system/proxy/socks_host“, který používat pro proxy. Porth gweinydd dirprwy SOCKS Y porth ar y peiriant a ddiffinnir gan "/system/proxy/socks_host" yr ydych yn ei ddefnyddio fel dirprwy. SOCKS-mellemværtsport Porten pÃ¥ den maskine defineret af "/system/proxy/socks_host" som trafikken skal gÃ¥ gennem. Port am SOCKS-Proxy Der Proxy-Port am von »/system/http_proxy/socks_host« festgelegten Rechner. ཨེསི་ཨོ་སི་ཀེ་ཨེསི་ པོརོག་སི་ འདྲེན་ལམ༠à½à¾±à½¼à½‘་ཀྱིས་པོརོག་སི་འབད་མི་ འཕྲུལ་ཆས་གུའི་འདྲེན་ལམ་དེ་ "/system/proxy/socks_host" གིས་ ངེས་འཛིན་འབད་ཡོད༠ΘÏÏα διαμεσολαβητή SOCKS Η θÏÏα στο σÏστημα που καθοÏίζεται από το "/system/proxy/socks_host" μέσω του οποίου γίνεται διαμεσολάβηση. ·ð‘•ð‘ªð‘’ð‘• ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘ð‘¹ð‘‘ 𑞠ð‘ð‘¹ð‘‘ ð‘ªð‘¯ 𑞠ð‘¥ð‘©ð‘–ð‘°ð‘¯ ð‘›ð‘¦ð‘“ð‘²ð‘¯ð‘› ð‘šð‘² "/system/proxy/socks_host" ð‘žð‘¨ð‘‘ ð‘¿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘”ð‘®ð‘µ. SOCKS proxy port The port on the machine defined by "/system/proxy/socks_host" that you proxy through. SOCKS proxy port The port on the machine defined by "/system/proxy/socks_host" that you proxy through. Puerto del proxy SOCKS El puerto de la máquina definida por "/system/proxy/socks_equipo" que hace de proxy. SOCKS proksi port Port, defineeritud "/system/proxy/socks_host" poolt, mille kaudu proxyt kasutatakse. SOCKS proxy-aren ataka Ordenagailuaren ataka, "/system/proxy/socks_host"-ean definituta proxy-arena egiteko. SOCKS-välipalvelimen portti Välipalvelinportti koneella, joka on määritelty avaimessa â€/system/proxy/socks_hostâ€. Port du serveur mandataire SOCKS Le port de la machine définie dans « /system/proxy/socks_host » utilisée comme serveur mandataire. Porto do proxy SOCKS O porto da máquina definido por "/system/proxy/socks_host" a través do que efectuar o proxy. SOCKS પà«àª°à«‹àª•à«àª¸à«€ પોરà«àªŸ યંતà«àª° પર વà«àª¯àª¾àª–à«àª¯àª¾àª¯àª¿àª¤ પોરà«àªŸ "/સિસà«àªŸàª®/પà«àª°à«‹àª•à«àª¸à«€/socks_યજમાન" કે જેની તમે સીધી પà«àª°à«‹àª•à«àª¸à«€ કરો છો. SOCKS proxy port The port on the machine defined by "/system/proxy/socks_host" that you proxy through. सॉकà¥à¤¸ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित है "/system/proxy/socks_host" के दà¥à¤µà¤¾à¤°à¤¾ जिसके दà¥à¤µà¤¾à¤°à¤¾ आप पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ करते हैं. Spaja proxy port Port na raÄunalu je odreÄ‘en u datoteci /system/proxy/socks_host raÄunala s proxy-em. SOCKS proxy port A „/system/proxy/socks_host†kulcsban proxyként megadott gép portja. Port proksi SOCKS Port pada mesin yang ditentukan oleh "/system/proxy/socks_host" yang Anda proksikan. Porta del proxy SOCKS La porta sulla macchina definita in "/system/proxy/socks_host" attraverso la quale effettuare il proxy. SOCKS プロキシã®ãƒãƒ¼ãƒˆç•ªå· プロキシã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€"/system/proxy/socks_host" ã§å®šç¾©ã•れãŸãƒžã‚·ãƒ³ã®ãƒãƒ¼ãƒˆç•ªå·ã§ã™ã€‚ SOCKS პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ პáƒáƒ áƒ¢áƒ˜ "/system/proxy/socks_host" კáƒáƒ“ით გáƒáƒœáƒ¡áƒáƒ–ღვრული მáƒáƒœáƒ¥áƒáƒœáƒ£áƒ áƒ˜ პáƒáƒ áƒ¢áƒ˜ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡áƒ—ვის. SOCKS ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨ ನೀವೠಪà³à²°à²¾à²•à³à²¸à²¿ ಮಾಡಬೇಕಿರà³à²µ ಗಣಕದ ಸಂಪರà³à²•ಸà³à²¥à²¾à²¨à²µà²¨à³à²¨à³ "/system/proxy/socks_host" ಯಲà³à²²à²¿ ಸೂಚಿಸಲಾಗಿರà³à²¤à³à²¤à²¦à³†. SOCKS 프ë¡ì‹œ í¬íЏ 프ë¡ì‹œì— 사용할 í¬íЏ ("/system/proxy/socks_host"ì—서 지정한 기계ì—서). SOCKS tarpinio serverio prievadas Tarpinio socks serverio prievadas, saugomas „/system/http_proxy/host“ rakte. SOCKS starpnieka ports Mašīnas ports definÄ“ts "/system/proxy/socks_host" , lai jÅ«s varÄ“tu iziet cauri starpniekam. साकà¥à¤¸ पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ मशीन पर पोरà¥à¤Ÿ पारिभाषित अछि "/system/proxy/socks_host" क' दà¥à¤µà¤¾à¤°à¤¾ जकरा दà¥à¤µà¤¾à¤°à¤¾ अहाठपà¥à¤°à¤¾à¤•à¥à¤¸à¥€ करैत अछि. Iriky ny proxy SOCKS Ny irik'ilay milina voafaritry ny "/system/proxy/socks_host" hampiasaina amin'ny proxy. SOCKS proxy порта Портата на машината дефинирана во "/system/proxy/socks_host" преку која што кориÑтите прокÑи. SOCKS à´ªàµà´°àµ‹à´•àµà´¸à´¿ പോരàµâ€à´Ÿàµà´Ÿàµ നിങàµà´™à´³àµâ€ à´ªàµà´°àµ‹à´•àµà´¸à´¿ ചെയàµà´¯àµà´¨àµà´¨ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´¨àµâ€à´±àµ† പോരàµâ€à´Ÿàµà´Ÿàµ "/system/proxy/socks_host" à´µàµà´¯à´•àµà´¤à´®à´¾à´•àµà´•ിയിരികàµà´•àµà´¨àµà´¨àµ. SOCKS итгÑмжилÑгчийн порт ИтгÑмжилÑгч порт "/system/proxy/socks_host" гÑж тодорхойлогдÑон хоÑÑ‚ SOCKS परà¥à¤¯à¤¾à¤¯à¥€ सà¥à¤¥à¤¾à¤¨ संगणकावरील सà¥à¤¥à¤¾à¤¨ जे यंतà¥à¤°à¤£à¤¾ "/system/proxy/socks_host" दà¥à¤µà¤¾à¤°à¥‡ परà¥à¤¯à¤¾à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ वापरू शकता. Port for SOCKS-proxy Port pÃ¥ maskinen som brukes som proxy og er definert i «/system/proxy/socks_host». SOCKS पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ पोरà¥à¤Ÿ तपाईà¤à¤²à¥‡ पà¥à¤°à¥‹à¤•à¥à¤¸à¤¿ गरà¥à¤¨à¥à¤­à¤à¤•ो "/system/proxy/socks_host" दà¥à¤µà¤¾à¤°à¤¾ परिभाषित मेसिनको पोरà¥à¤Ÿ । SOCKS-proxy poortnummer De poort op de machine die u als proxy gebruikt en gedefinieerd door "/system/proxy/socks_host" Port pÃ¥ SOCKS-mellomtenar Porten som skal brukast pÃ¥ mellomtenaren som er definert i «/system/socks_host». DikopantÅ¡hwa le khomphuthara tÅ¡a kemedi tÅ¡a SOCKS Lefelo leo mo motÅ¡eneng le hlalositÅ¡wego ke "/system/proxy/socks_host" tÅ¡eo o di emelago. à¬à¬¸à­.ଓ.ସି.କେ.à¬à¬¸à­. ଛାୟା ସଂଯୋଗିକୀ "/system/proxy/socks_host" ଦà­à¬¬à¬¾à¬°à¬¾ ଉଲà­à¬²à­‡à¬–ିତ ଯନà­à¬¤à­à¬°à¬° ସଂଯୋଗିକୀ ଯେଉà¬à¬Ÿà¬¾à¬•ି ଛାୟାକରଣ ପାଇଠବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯାà¬. SOCKS ਪਰਾਕਸੀ ਪੋਰਟ ਮਸ਼ੀਨ 'ਤੇ ਪੋਰਟ"/system/proxy/socks_host" ਨੇ ਦਿੱਤੀ ਹੈ, ਜਿਸ ਰਾਹੀਂ ਤà©à¨¸à©€à¨‚ ਪਰਾਕਸੀ ਚਲਾ ਰਹੇ ਹੋ। Port poÅ›rednika gniazd Port komputera okreÅ›lonego przez "/system/proxy/socks_host", bÄ™dÄ…cego poÅ›rednikiem dla ruchu sieciowego. Porto de proxy SOCKS O porto na máquina, definido por "/system/proxy/socks_host", através do qual efectuar proxy. Porta do proxy de SOCKS A porta na máquina definida por "/system/http_proxy/socks_host" que você acessará o proxy. Port proxy SOCKS Portul serverului proxy definit în „/system/proxy/socks_hostâ€. Порт прокÑи-Ñервера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð° SOCKS Порт на машине, определённой ключом "/system/proxy/socks_host" Ð´Ð»Ñ ÑервиÑа прокÑи. Port proxy pre SOCKS Port poÄítaÄa definovaného v "/system/proxy/socks_host", ktorý používate ako proxy. Vrata posredovalnega strežnika SOCKS Vrata raÄunalnika, ki jih doloÄa nastavitev "/system/proxy/socks_host" posredovalnega strežnika. Porta e proxy SOCKS Porta e makinës e përcaktuar nga "/system/proxy/socks_host" nga do të kalojë proxy juaj. Порт SOCKS поÑредника Порт машине одређене помоћу „/system/proxy/socks_proxy“ која је поÑредник. Порт SOCKS поÑредника Порт машине одређене помоћу „/system/proxy/socks_proxy“ која је поÑредник. Port SOCKS posrednika Port maÅ¡ine odreÄ‘ene pomoću „/system/proxy/socks_proxy“ koja je posrednik. Port för SOCKS-proxyserver Porten pÃ¥ maskinen som definieras av "/system/proxy/socks_host" som du använder som proxyserver. SOCKS பà¯à®°à®¾à®•à¯à®¸à®¿ வழி "/system/proxy/socks_host" இனால௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ வழியை பà¯à®°à®¾à®•à¯à®¸à®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•ிறத௠సోకà±à°¸à± à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రేవౠరేవౠపై పరికరం నిరà±à°µà°šà°¿à°‚à°šà±à°Ÿ à°¦à±à°µà°¾à°°à°¾ "/à°µà±à°¯à°µà°¸à±à°¥/à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯/సోకà±à°¸à±_ఆతిథà±à°¯à°‚" అది నీవౠపà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯à°‚ à°—à±à°‚à°¡à°¾. พอร์ตพร็อà¸à¸‹à¸µ SOCKS พอร์ตบนเครื่องที่ตั้งไว้ใน "/system/proxy/socks_host" ที่จะใช้ติดต่อผ่าน SOCS vekil sunucu portu "/system/proxy/socks_host" ile tanımlanmış vekil olarak kullanacağınız makinenin portu. Порт прокÑÑ–-Ñлужби протоколу SOCKS Порт на вузлі прокÑÑ–-Ñервера, що визначений ключем "/system/proxy/socks_host". SOCKS proksi porti SOCKS прокÑи порти Cổng á»§y nhiệm SOCKS Cổng trên máy được định nghÄ©a bởi « /system/proxy/socks_host » qua đó cần chạy á»§y nhiệm. Isiqhagamsheli sekhompyutha esebenza njengomqobo se-SOCKS Isiqhagamsheli esisematshinini esichazwa yi- "/systrem/proxy/socks_host" kwikhompyutha osebenza kuyo esebenza njengomqobo. SOCKS 代ç†ç«¯å£ æ‚¨ä½¿ç”¨çš„ä»£ç†æœåŠ¡å™¨çš„ç«¯å£å·å®šä¹‰åœ¨â€œ/system/proxy/socks_hostâ€ä¸­ã€‚ SOCKS 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ  在“/system/proxy/socks_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 SOCKS 代ç†ä¼ºæœå™¨é€£æŽ¥åŸ  在“/system/proxy/socks_host’中定義的代ç†ä¼ºæœå™¨çš„埠號。 umbambeli wetheku ku-SOCKS Itheku emshinini lichazwa nge "/system/proxy/socks_host" obambisela ngayo. /schemas/system/proxy/autoconfig_url /system/proxy/autoconfig_url gnome-vfs string Automatic proxy configuration URL URL that provides proxy configuration values. Outomatiese instaanopstelling-URL URL wat instaanopstellingswaardes verskaf. عنوان الإعداد الآلي للوسيط العنوان المزود لقيم إعدادات الوسيط. সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿ পà§à§°à¦•à§à¦¸à¦¿ বিনà§à¦¯à¦¾à¦¸à§‡à§° URL পà§à§°à¦•à§à¦¸à¦¿ কনফিগাৰ কৰাৰ জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মান পà§à§°à¦¸à§à¦¤à§à¦¤à¦•াৰী URL । URL de configuración automática del proxy URL que proporciona valores de configuración de proxy. Avtomatik vÉ™kil quraÅŸdırma URL-si VÉ™kil qurÄŸu qiymÉ™tlÉ™rini verÉ™n URL URL Ð´Ð»Ñ Ð°ÑžÑ‚Ð°Ð¼Ð°Ñ‚Ñ‹Ñ‡Ð½Ð°Ðµ наладкі паўнамоцнага (proxy) паÑлужніку URL, Ñкі паÑтаўлÑе значÑньні наладкі паўнамоцнага (proxy) паÑлужніку. ÐÐ´Ñ€ÐµÑ Ð·Ð° автоматични наÑтройки на Ñървъра-поÑредник ÐдреÑ, от който Ñе вземат наÑтройките на Ñървъра-поÑредник. সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশন URL যেসব URL পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশনের মান পà§à¦°à¦¦à¦¾à¦¨ করে। সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ পà§à¦°à¦•à§à¦¸à¦¿ কনফিগারেশনের URL পà§à¦°à¦•à§à¦¸à¦¿ কনফিগার করার জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ মান পà§à¦°à¦¸à§à¦¤à§à¦¤à¦•ারী URL। URL za automatsko podeÅ¡avanje proxy-a URL koji daje vrijednosti od podeÅ¡avanja proxy-a. URL de configuració automàtica del servidor intermediari URL que proveeix valors de configuració del servidor intermediari. URL de configuració automàtica del servidor intermediari URL que proveeix valors de configuració del servidor intermediari. URL automatického nastavení proxy URL, které poskytuje hodnoty nastavení proxy. LAU i gyflunio'r dirprwy'n awtomatig URL sy'n rhoi manylion cyflunio'r dirprwy. Automatisk mellemværtskonfigurationsadresse Adresse som tilbyder konfigurationsværdier for mellemvært. URL zur automatischen Proxy-Konfiguration URL, die Proxy-Konfigurationswerte liefert. རང་བཞིན་གྱི་ པོརོག་སི་ རིམ་སྒྲིག་གི་ ཡུ་ཨར་ཨེལ༠པོརོག་སི་ རིམ་སྒྲིག་གི་ བེ་ལུསི་བྱིན་མི་ ཡུ་ཨར་ཨེལ༠Αυτόματη ÏÏθμιση URL ÏÏθμισης διαμεσολαβητή Το URL που παÏέχει τιμές ÏÏθμισης διαμεσολαβητή. ð‘·ð‘‘ð‘´ð‘¥ð‘¨ð‘‘ð‘¦ð‘’ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ URL URL ð‘žð‘¨ð‘‘ ð‘ð‘®ð‘©ð‘ð‘²ð‘›ð‘Ÿ ð‘ð‘®ð‘ªð‘’ð‘•𑦠ð‘’ð‘©ð‘¯ð‘“ð‘¦ð‘œð‘˜ð‘¼ð‘±ð‘–ð‘©ð‘¯ ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ. Automatic proxy configuration URL URL that provides proxy configuration values. Automatic proxy configuration URL URL that provides proxy configuration values. URL de configuración automática del proxy URL que proporciona valores de configuración de proxy. Automaatne proksi seadistamise URL URL, mis tagab proxi seadistuste väärtused. Proxy konfigurazio automatikoaren URLa URLa proxy-aren konfigurazioko balioak eskaintzeko. Automaattisten välipalvelinasetusten URL URL, joka tarjoaa välipalvelinasetukset. URL de configuration automatique du serveur mandataire L'URL qui fournit les valeurs de configuration du serveur mandataire. URL de configuración automática do proxy URL que fornece os valores de configuración do proxy. આપોઆપ પà«àª°à«‹àª•à«àª¸à«€ રà«àªªàª°à«‡àª–ાંકિત URL URL કે જે પà«àª°à«‹àª•à«àª¸à«€àª¨à«€ રà«àªªàª°à«‡àª–ાંકનની કિંમતો આપે છે. Automatic proxy configuration URL URL that provides proxy configuration values. सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ यूआरà¤à¤² यूआरà¤à¤² जो पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ विनà¥à¤¯à¤¾à¤¸ मूलà¥à¤¯à¥‹à¤‚ को पà¥à¤°à¤¦à¤¾à¤¨ करते हैं. Automatska po postavljanje proxy URL-a URL koji omogućuje postavljanje vrijednosti proxy-a Automatikus proxybeállítás URL címe A proxy beállításokat tartalmazó URL. URl konfigurasi otomatis proksi URL yang menyediakan nilai konfigurasi proksi. URL di configurazione automatica del proxy URL che fornisce i valori di configurazione del proxy. 自動プロキシ設定㮠URL プロキシã®è¨­å®šå€¤ã‚’æä¾›ã™ã‚‹ URL ã§ã™ã€‚ პრáƒáƒ¥áƒ¡áƒ˜áƒ¡ თვითკáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ URL URL რáƒáƒ›áƒ”ლშიც მáƒáƒªáƒ”მულირპრáƒáƒ¥áƒ¡áƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘ები. ಸà³à²µà²¯à²‚ಚಾಲಿತ ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನೆಯ ಯà³à²†à²°à³à²Žà²²à³ ಪà³à²°à²¾à²•à³à²¸à²¿ ಸಂರಚನಾ ಮೌಲà³à²¯à²—ಳನà³à²¨à³ ಒದಗಿಸà³à²µ ಯà³à²†à²°à³à²Žà²²à³. ìžë™ 프ë¡ì‹œ 설정 URL 프ë¡ì‹œ 설정 ê°’ì„ ì œê³µí•´ 주는 URL. Automatinių tarpinio serverio nustatymų adresas Adresas, kuriame saugomi tarpinio serverio nustatymai AutomÄtiska starpnieka konfigurÄcija URL URL kas apgÄdÄ ar starpniekkonfigurÄcijas vÄ“rtÄ«bÄm. सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ यूआरà¤à¤² यूआरà¤à¤² जे पà¥à¤°à¤¾à¤•à¥à¤¸à¥€ बिनà¥à¤¯à¤¾à¤¸ मानसभकेठपà¥à¤°à¤¦à¤¾à¤¨ करैत अछि. URL fikirakirana proxy avy hatrany URL manome sandan-kirakira-na proxy. URL за автоматÑка конфигурација на proxy URL кое што Ñнабдува вредноÑÑ‚ за конфигурација на proxy à´“à´Ÿàµà´Ÿàµ‹à´®à´¾à´±àµà´±à´¿à´•àµà´•ൠപàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµà´³à´³ URL à´ªàµà´°àµ‹à´•àµà´¸à´¿ കോണàµâ€à´«à´¿à´—റേഷനàµâ€ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨ URL ИтгÑмжилÑгч Ñерверийн автомат тохиргоо хаÑг. ИтгÑмжилÑгчийн тохиргоог нийлүүлÑÑ… утгын хаÑг सà¥à¤µà¤¯à¤‚सिदà¥à¤§ परà¥à¤¯à¤¾à¤¯à¥€ संयोजना URL अधिकृतपणे तपासून पहा परà¥à¤¯à¤¾à¤¯à¥€ संयोजना मà¥à¤²à¥à¤¯ दरà¥à¤¶à¤µà¤¿à¤£à¤¾à¤°à¤¾ URL. URL for automatisk konfigurasjon av proxy URL som oppgir verdier for konfigurasjon av proxy. सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन यूआरà¤à¤² पà¥à¤°à¥‹à¤•à¥à¤¸à¥€ कनà¥à¤«à¤¿à¤—रेसन मान पà¥à¤°à¤¦à¤¾à¤¨ गरà¥à¤¨à¥‡ यूआरà¤à¤² । URL voor automatische proxy-configuratie URL die de waardes geeft voor proxyconfiguratie. URL til automatisk oppsett av mellomtenar URL til mellomtenar-innstillingar. STS ya go fetola sebopego ya kemedi yeo e itiragalelago STS yeo e fanago ka mehola ya go fetola sebopego ga kemedi. ସà­à¬¬à¬‚à­Ÿ ଛାୟା ବିନà­à¬¯à¬¾à¬¸ à­Ÿà­.ଆର.à¬à¬². ଛାୟା ବିନà­à¬¯à¬¾à¬¸ ମୂଲà­à¬¯à¬—à­à¬¡à¬¼à¬¿à¬• ପାଇଠୟà­.ଆର.à¬à¬². ਆਟੋਮੈਟਿਕ ਪਰਾਕਸੀ ਸੰਰਚਨਾ URL URL, ਜੋ ਕਿ ਪਰਾਕਸੀ ਸੰਰਚਨਾ ਮà©à©±à¨² ਉਪਲੱਬਧ ਕਰਵਾਉਦਾ ਹੈ। Adres URL automatycznej konfiguracji poÅ›rednika URL udostÄ™pniajÄ…cy wartoÅ›ci konfiguracyjne poÅ›rednika. URL de configuração automática de proxy URL que disponibiliza valores de configuração da proxy. URL de configuração automática de proxy URL que fornece os valores de configuração do proxy. URL pentru configurări proxy automate URL cu opÈ›iuni automate de proxy. URL автоматичеÑкой наÑтройки прокÑи СÑылка (URL), предоÑтавлÑÑŽÑ‰Ð°Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой конфигурации прокÑи-Ñерверов. URL pre automatické nastavenie proxy URL, ktoré poskytuje hodnoty konfigurácie proxy. Naslov URL za samodejno nastavitev posredovalnega strežnika Naslov URL z vrednostmi nastavitev posredovalnega strežnika. URL e konfigurimit automatik të proxy URL që ve në dispozicion vlerat e konfigurimit të proxy. ÐдреÑа за Ñамоподешавање поÑредника ÐдреÑа која обезбеђује вредноÑти за подешавање поÑредника. ÐдреÑа за Ñамоподешавање поÑредника ÐдреÑа која обезбеђује вриједноÑти за подешавање поÑредника. Adresa za samopodeÅ¡avanje posrednika Adresa koja obezbeÄ‘uje vrednosti za podeÅ¡avanje posrednika. URL för automatisk proxykonfiguration URL som tillhandahÃ¥ller proxykonfigurationsvärden. தானாக பà¯à®°à®¾à®•à¯à®¸à®¿ சேவகனை அமைகà¯à®•à¯à®®à¯ URL பà¯à®°à®¾à®•à¯à®¸à®¿ அமைபà¯à®ªà®¿à®©à¯ மதிபà¯à®ªà¯ˆ தரà¯à®®à¯ URL à°¸à±à°µà°¯à°‚చాలక à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ URL URL దాని యొకà±à°• à°ªà±à°°à°¾à°¤à°¿à°¨à°¿à°¥à±à°¯ రూపకరణ విలà±à°µà°²à± à°•à°²à±à°ªà°¿à°¸à±à°¤à±à°‚ది URL สำหรับตั้งค่าพร็อà¸à¸‹à¸µà¹‚ดยอัตโนมัติ URL ที่จัดส่งค่าตั้งพร็อà¸à¸‹à¸µ Otomatik vekil sunucu yapılandırma adresi Vekil ayar deÄŸerlerini saÄŸlayan URL. ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL) на автоматичне Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñлужби ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ (URL), що забезпечує Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐºÑÑ–-Ñлужби. Proksini avtomatik moslash URL'i ПрокÑини автоматик моÑлаш URL'и URL cấu hình tá»± động á»§y nhiệm URL cung cấp giá trị cấu hình á»§y nhiệm. Ukumiselwa kwenkqubo yekhompyutha ezenzekelayo ye-URL kwikhompyutha esebenza njengemqobo i-URL enika amaxabiso okumiselwa kwenkqubo yekhompyutha esebenza njengomqobo. 自动代ç†é…ç½® URL æä¾›ä»£ç†é…置值的 URL。 自動代ç†ä¼ºæœå™¨çµ„æ…‹ç¶²å€ æä¾›ä»£ç†ä¼ºæœå™¨çµ„態的網å€ã€‚ 自動代ç†ä¼ºæœå™¨çµ„æ…‹ç¶²å€ æä¾›ä»£ç†ä¼ºæœå™¨çµ„態的網å€ã€‚ Isilinganisi esingumbambeli esizenzekalelayo URL iURL enikezela ngamanani esilinganisi sesibambeli. gnome-vfs-2.24.4/schemas/desktop_default_applications.schemas0000644000175000001440000021647111450333414021345 00000000000000 /schemas/desktop/gnome/applications/terminal/exec /desktop/gnome/applications/terminal/exec gnome-vfs string gnome-terminal Default terminal application The default terminal application to use for applications that require a terminal. Verstekterminaaltoepassing Die verstekterminaaltoepassing wat gebruik moet word vir toepassings wat 'n terminaal vereis. تطبيق الطرÙية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠ Ø§Ù„Ø·Ø±Ùية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© التي ستستعمل للتطبيقات التي تتطلب طرÙية. ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন আবশà§à¦¯à¦•ৰূপে টাৰà§à¦®à¦¿à¦¨à¦¾à¦² পà§à§°à§Ÿà§‹à¦—কাৰী অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনগà§à¦²à¦¿à§° দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦² । Aplicación de terminal predeterminada La'aplicación de terminal predeterminada pa les aplicaciones que lo requieran. Ön qurÄŸulu terminal proqramı Terminala mÉ™cbur olan proqramlar üçün iÅŸlÉ™dilÉ™cÉ™k ön qurÄŸulu terminal. Прадвызначанае даÑтаÑаваньне Ñ‚Ñрміналу Прадвызначанае даÑтаÑаваньне Ñ‚Ñрміналу, каб выкарыÑтоўваць у даÑтаÑаваньнÑÑ…, ÑÐºÑ–Ñ Ð¿Ð°Ñ‚Ñ€Ð°Ð±ÑƒÑŽÑ†ÑŒ Ñ‚Ñрмінал. Стандартна програма за терминал Стандартната терминална програма да Ñе използва за програми, които изиÑкват терминал. পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ টারà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন যেসব অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ টারà§à¦®à¦¿à¦¨à¦¾à¦² পà§à¦°à§Ÿà§‹à¦œà¦¨ সেগà§à¦²à§‹à¦° জনà§à¦¯ পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ যে টারà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে। ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন আবশà§à¦¯à¦•রূপে টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² পà§à¦°à§Ÿà§‹à¦—কারী অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনগà§à¦²à¦¿à¦° দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à¥¤ UobiÄajena aplikacija terminala UobiÄajena aplikacija terminala koja se koristi za aplikacije koje zahtijevaju terminal. Aplicació de terminal predeterminada L'aplicació de terminal a usar per defecte per a aplicacions que requereixin un terminal. Aplicació de terminal predeterminada L'aplicació de terminal a usar per defecte per a aplicacions que requerisquen un terminal. Výchozí aplikace terminálu Výchozí aplikace terminálu, kterou používat pro aplikace, které vyžadují terminál. Rhaglen terfynell rhagosodedig Y rhaglen derfynell rhagosodedig a ddefnyddir gan raglenni sydd angen terfynell. Forvalgt terminalprogram Det forvalgte terminalprogram til programmer der kræver en terminal. Vorgabe-Terminal-Anwendung Die Vorgabe-Terminal-Anwendung, die für Anwendungen verwendet wird, die ein Terminal erforderlich machen. སྔོན་སྒྲིག་ཊར་མི་ནཱལ་གློག་རིམ༠ཊར་མི་ནཱལ་ཅིག་དགོ་པའི་ གློག་རིམ་ཚུ་གི་དོན་ལུ་ ལག་ལེན་འà½à½–་དགོ་པའི་ སྔོན་སྒྲིག་ཊར་མི་ནཱལ་གློག་རིམ༠ΠÏοεπιλεγμένη εφαÏμογή τεÏÎ¼Î±Ï„Î¹ÎºÎ¿Ï Î— Ï€Ïοεπιλεγμένη εφαÏμογή τεÏÎ¼Î±Ï„Î¹ÎºÎ¿Ï Î³Î¹Î± χÏήση σε εφαÏμογές που απαιτοÏν ένα τεÏματικό. ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ 𑞠ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘‘ ð‘¿ð‘• ð‘“𑹠ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ð‘Ÿ ð‘žð‘¨ð‘‘ ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ ð‘© ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤. Default terminal application The default terminal application to use for applications that require a terminal. Default terminal application The default terminal application to use for applications that require a terminal. Defaŭlta terminal-aplikajÌ‚o Aplicación de terminal predeterminada La aplicación de terminal predeterminada para las aplicaciones que lo requieran. Vaikimisi terminalirakendus Vaikimisi terminalirakendus kasutamiseks terminali vajavate rakenduste jaoks. Terminal aplikazio lehenetsia Terminal aplikazio lehenetsia, terminala eskatzen duten aplikazioetan erabiltzeko. Oletusarvoinen päätesovellus Oletusarvoinen päätesovellus päätteen vaativille sovelluksille. Terminal par défaut L'application terminal par défaut à utiliser pour les applications qui nécessite un terminal. Aplicativo do terminal predefinido O aplicativo do terminal predefinido para usar nos aplicativo que precisan dun terminal. મૂળભૂત ટરà«àª®àª¿àª¨àª² કારà«àª¯àª•à«àª°àª® કારà«àª¯àª•à«àª°àª®àª¨à«‹ ઉપયોગ કરવા માટે મૂળભૂત ટરà«àª®àª¿àª¨àª² કારà«àª¯àª•à«àª°àª® કે જેના માટે ટરà«àª®àª¿àª¨àª² જરà«àª°à«€ છે. ×™×™×©×•× ×ž×¡×•×£ ברירת מחדל The default terminal application to use for applications that require a terminal. डिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— उन अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ों हेतॠडिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जिनà¥à¤¹à¥‡à¤‚ टरà¥à¤®à¤¿à¤¨à¤² की आवशà¥à¤¯à¤•ता होती है. UobiÄajen terminalni program UobiÄajeni terminalni program koji se koristi za programe koji zahtijevaju terminal. Alapértelmezett terminál alkalmazás A terminált igénylÅ‘ alkalmazásokhoz használandó alapértelmezett terminál. Aplikasi terminal baku Aplikasi terminal utama untuk aplikasi yang memerlukan terminal. Applicazione di terminale predefinita Applicazione di terminale predefinita da usare per applicazioni che richiedono un terminale. デフォルトã®ç«¯æœ«ã‚¢ãƒ—リケーション 端末を必è¦ã¨ã™ã‚‹ã‚¢ãƒ—リケーションã§ä½¿ç”¨ã™ã‚‹ãƒ‡ãƒ•ォルトã®ç«¯æœ«ã‚¢ãƒ—リケーションã§ã™ã€‚ ტერმინáƒáƒšáƒ˜áƒ¡ ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ ტერმინáƒáƒšáƒ˜áƒ¡ ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ, რáƒáƒ›áƒ”ლიც ტერმინáƒáƒšáƒ˜áƒ¡ სáƒáƒ­áƒ˜áƒ áƒáƒ”ბისთვის გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒ. ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³ ಅನà³à²µà²¯ ಟರà³à²®à²¿à²¨à²²à³à²²à²¿à²¨ ಅಗತà³à²¯à²µà²¿à²°à³à²µ ಅನà³à²µà²¯à²—ಳಲà³à²²à²¿ ಬಳಸಬೇಕಿರà³à²µ ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³ ಅನà³à²µà²¯. 기본 í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨ 터미ë„ì´ í•„ìš”í•œ í”„ë¡œê·¸ëž¨ì— ì‚¬ìš©í•  기본 í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨. Numatytoji terminalo programa Numatytoji terminalo programa, naudojama su programomis, kurioms reikia terminalo. NoklusÄ“ta terminÄļa lietotne NoklusÄ“ta terminÄļa lietotne, lai izmantotu lietotnes, kam nepiecieÅ¡ams terminÄlis. मूलभूत टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— ओ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—सभक लेल मूलभूत टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जकरा टरà¥à¤®à¤¿à¤¨à¤²à¤• आवशà¥à¤¯à¤•ता होइछ. Rindranasan'ny terminal lasitra Ny rindranasan'ny terminal lasitra ampiasaina amina rindranasa mila terminal. Стандардна апликација за терминал Стандардната апликација која што ќе Ñе кориÑти како терминал за апликациите кои имаат потреба од терминал. ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ ടെരàµâ€à´®à´¿à´¨à´²àµâ€ à´ªàµà´°à´¯àµ‹à´—à´‚ ടെരàµâ€à´®à´¿à´¨à´²àµâ€ ആവശàµà´¯à´®à´¾à´¯ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•ൠഉപയോഗികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯àµà´³à´³ ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ ടെരàµâ€à´®à´¿à´¨à´²àµâ€ à´ªàµà´°à´¯àµ‹à´—à´‚ Стандарт терминал програм Терминал шаарддаг Ñ…ÑÑ€ÑглÑÑний програмуудад Ñ…ÑÑ€ÑглÑгдÑÑ… Ñтандарт терминал програм. मà¥à¤²à¤­à¥‚त टरà¥à¤®à¤¿à¤¨à¤² कारà¥à¤¯à¤•à¥à¤°à¤® जà¥à¤¯à¤¾ कारà¥à¤¯à¤•à¥à¤°à¤®à¤¾à¤¸à¤¾à¤ à¥€ टरà¥à¤®à¤¿à¤¨à¤²à¤šà¥€ गरज आहे अशा कारà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ मà¥à¤²à¤­à¥‚त टरà¥à¤®à¤¿à¤¨à¤². Forvalgt terminalapplikasjon Forvalgt terminalprogram som skal brukes for programmer som krever en terminal. पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— टरà¥à¤®à¤¿à¤¨à¤² आवशà¥à¤¯à¤• परà¥à¤¨à¥‡ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—का लागि पà¥à¤°à¤¯à¥‹à¤— गरिने पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— । Standaard terminalprogramma Het standaard terminalprogramma voor toepassingen die een terminal nodig hebben. Standard terminalemulator Standard terminalemulator som skal brukast til program som krev ein terminal. Dira gore tiriÅ¡o ya kgokagano ya dithapo e hlaelele TiriÅ¡o ya kgokagano ya dithapo e hlaelelago yeo e tla diriÅ¡wagoo bakeng sa ditiriÅ¡o tÅ¡eo di nyakago kgokagano ya dithapo. Terminal per defaut ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପà­à¬°à­Ÿà­‹à¬— ଯେଉଠପà­à¬°à­Ÿà­‹à¬—ଗà­à¬¡à¬¿à¬• ପାଇଠଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ଆବଶà­à¬¯à¬• ସେମାନଙà­à¬• ପାଇଠପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପà­à¬°à­Ÿà­‹à¬—। ਡਿਫਾਲਟ ਟਰਮੀਨਲ à¨à¨ªà¨²à©€à¨•ੇਸ਼ਨ ਡਿਫਾਲਟ ਟਰਮੀਨਲ ਕਾਰਜ, ਜੋ ਕਿ ਕਾਰਜਾਂ ਲਈ ਵਰਤਣਾ ਹੈ, ਜੋ ਕਿ ਟਰਮੀਨਲ ਦੀ ਮੰਗ ਕਰਦੇ ਹਨ। DomyÅ›lna aplikacja terminala DomyÅ›lna aplikacja terminala używana dla aplikacji wymagajÄ…cej terminala. Aplicação de consola por omissão A aplicação de consola a utilizar por omissão para aplicações que necessitem de uma consola. Aplicativo padrão de terminal O terminal padrão para ser utilizado por aplicativos que requerem um terminal. AplicaÈ›ie terminal implicită AplicaÈ›ia terminal implicită de utilizat pentru programele ce necesită un terminal. Приложение терминала по умолчанию Приложение терминала, иÑпользуемое по умолчанию приложениÑми, нуждающимиÑÑ Ð² терминале. Å tandardná aplikácia terminálu Å tandardná aplikácia terminálu používaná pre aplikácie, ktoré vyžadujú terminál. Privzet terminal Privzet terminal za uporabo programov, ki zahtevajo terminal. Programi terminal i prezgjedhur Programi terminal i prezgjedhur që duhet përdorur për programet që kërkojnë një terminal. Подразумевани терминалÑки програм Подразумевани терминалÑки програм који Ñе кориÑти за програме којима је неопходан терминал. Подразумјевани терминалÑки програм Подразумјевани терминалÑки програм који Ñе кориÑти за програме којима је неопходан терминал. Podrazumevani terminalski program Podrazumevani terminalski program koji se koristi za programe kojima je neophodan terminal. Standardterminalprogram Standardterminalprogrammet att använda för program som kräver en terminal. இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯ பயனà¯à®ªà®¾à®Ÿà¯à®•ள௠மà¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®±à®•௠தேவைபà¯à®ªà®Ÿà¯à®®à¯ இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯ பயனà¯à®ªà®¾à®Ÿà¯ à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚ à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚ వాడà±à°Ÿ కొరకౠకారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°¾à°²à± అది à°’à°• అవసరం à°…à°—à±à°°à°‚. โปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัลปริยาย โปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัลปริยาย ไว้ใช้สำหรับ โปรà¹à¸à¸£à¸¡à¸—ี่ต้องใช้เทอร์มินัล Öntanımlı uçbirim uygulaması Uçbirim gerektiren uygulamalar için öntanımlı uçbirim uygulaması. Типова програма терміналу Типова програма терміналу, що викориÑтовуєтьÑÑ Ð· програмами, Ñкім потрібен термінал. Andoza terminal dasturi Ðндоза терминал даÑтури Ứng dụng thiết bị cuối mặc định Ứng dụng thiết bị cuối mặc định cần dùng cho các ứng dụng cần thiết thiết bị cuối. Inkqubo yekhompyutha ene-terminal emiselweyo Inkqubo yekhompyutha ene-terminal emiselweyo ukuba isetyenziswe kwiinkqubo zekhompyutha ezifuna i-terminal. é»˜è®¤ç»ˆç«¯åº”ç”¨ç¨‹åº ä¸ºéœ€è¦ç»ˆç«¯çš„åº”ç”¨ç¨‹åºæ‰€ä½¿ç”¨çš„默认终端应用程åºã€‚ é è¨­çš„終端機 應用程å¼éœ€è¦ä½¿ç”¨çµ‚端機時,é è¨­åŸ·è¡Œçš„終端機。 é è¨­çš„終端機 應用程å¼éœ€è¦ä½¿ç”¨çµ‚端機時,é è¨­åŸ·è¡Œçš„終端機。 Iphutha lesigungu sokusetshenziswa Iphutha lesisebenzisi esigungwini sokusebenzisa izisebenzisi ezidinga isigungu. /schemas/desktop/gnome/applications/terminal/exec_arg /desktop/gnome/applications/terminal/exec_arg gnome-vfs string -x Exec argument for default terminal The exec argument to use for the default terminal application. Exec-argument vir verstekterminaal Die exec-argument wat gebruik moet word vir die verstekterminaaltoepassing. معامل التنÙيذ للطرÙية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ© معامل التنÙيذ الذي سيستعمل للطرÙية Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ©. ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦²à§‡à§° জনà§à¦¯ exec আৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ ডিফলà§à¦Ÿ টাৰà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনেৰ জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ exec আৰà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ । L'argumentu exec pa la terminal predeterminada L'argumentu de exec a usar pa l'aplicación de terminal predeterminada. Ön qurÄŸulu terminal üçün icra edilÉ™cÉ™k É™mr Ön qurÄŸulu terminal gediÅŸatı üçün icra edilÉ™cÉ™k É™mr. ÐргумÑнты Ð²Ñ‹ÐºÐ°Ð½Ð°Ð½ÑŒÐ½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð°Ð´Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°Ð³Ð° Ñ‚Ñрміналу ÐргумÑнт Ð²Ñ‹ÐºÐ°Ð½Ð°Ð½ÑŒÐ½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð°Ð´Ð²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°Ð³Ð° Ñ‚Ñрмінальнага даÑтаÑаваньнÑ. Ðргументът exec за Ñтандартната програма за терминал Ðргументът за изпълнение (exec) за Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»Ð½Ð¸Ñ ÐµÐ¼ÑƒÐ»Ð°Ñ‚Ð¾Ñ€ по подразбиране. পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ টারà§à¦®à¦¿à¦¨à¦¾à¦²à§‡à¦° জনà§à¦¯ Exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ টারà§à¦®à¦¿à¦¨à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ যে Exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে। ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦²à§‡à¦° জনà§à¦¯ exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ ডিফলà§à¦Ÿ টারà§à¦®à¦¿à¦¨à§à¦¯à¦¾à¦² অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশনের জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦¯à§‹à¦—à§à¦¯ exec আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿà¥¤ IzvrÅ¡ni argument za uobiÄajeni terminal IzvrÅ¡ni argument koji se koristi za uobiÄajenu aplikaciju terminala. Argument d'execució per al terminal predeterminat L'argument d'execució a usar per a l'aplicació de terminal predeterminada. Argument d'execució per al terminal predeterminat L'argument d'execució a usar per a l'aplicació de terminal predeterminada. Argument exec pro výchozí terminál Argument exec, který používat pro výchozí aplikaci terminálu. Ymresymiad exec ar gyfer y derfynell rhagosodedig Yr ymresymiad exec i'w ddefnyddio ar gyfer y rhaglen derfynell rhagosodedig. Kørselsparameter for forvalgt terminal Kørselsparameter der skal bruges til det forvalgte terminalprogram. Exec-Argument für Vorgabe-Terminal Das an die Vorgabe-Terminal-Anwendung zu übergebende exec-Argument. སྔོན་སྒྲིག་ཊར་མི་ནཱལ་གྱི་སà¾à½¼à½¢à¼‹à½£à½¦à¼‹ སྒྲུབ་རྟགས་ལག་ལེན་འà½à½–༠སྔོན་སྒྲིག་ཊར་མི་ནཱལ་ གློམ་རིམ་གྱི་དོན་ལུ་ ལག་ལེན་འà½à½–་དགོ་པའི་ ཨི་ཨེགསི་ཨི་སི་ སྒྲུབ་རྟགས༠ΠαÏάμετÏος Exec για Ï€Ïοεπιλεγμένο τεÏματικό Η παÏάμετÏος exec για χÏήση στην Ï€Ïοεπιλεγμένη εφαÏμογή τεÏματικοÏ. ð‘§ð‘œð‘Ÿð‘§ð‘’ ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘ ð‘“𑹠ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ 𑞠ð‘§ð‘œð‘Ÿð‘§ð‘’ ð‘¸ð‘œð‘¿ð‘¥ð‘©ð‘¯ð‘‘ ð‘‘ ð‘¿ð‘• ð‘“𑹠𑞠ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘‘ð‘»ð‘¥ð‘¦ð‘¯ð‘©ð‘¤ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯. Exec argument for default terminal The exec argument to use for the default terminal application. Exec argument for default terminal The exec argument to use for the default terminal application. El argumento exec para la terminal predeterminada El argumento de exec a usar para la aplicación de terminal predeterminada. Vaikimisi terminalikäivitusargument Vaikimisi terminalirakenduse käivitusargument. Exec argumentua, terminal lehenetsirako Exec argumentua terminal aplikazio lehenetsian erabiltzeko. Päätesovelluksen suoritusvalitsin Päätesovelluksen valitsin, joka määrittää mitä suoritetaan. Paramètre d'exécution pour le terminal par défaut L'argument d'exécution à utiliser pour l'application de terminal par défaut. Argumento exec para o terminal predefinido O argumento exec para usar co aplicativo do terminal predefinido. મૂળભૂત ટરà«àª®àª¿àª¨àª² માટે ચલાવવાની દલીલ મૂળભૂત ટરà«àª®àª¿àª¨àª² કારà«àª¯àª•à«àª°àª® માટે exec દલીલનો ઉપયોગ કરવાનો છે. ×רגומנט Exec למסוף ברירת מחדל The exec argument to use for the default terminal application. डिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² हेतॠईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट डिफ़ॉलà¥à¤Ÿ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— में उपयोग हेतॠईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट. IzvrÅ¡ni argument za uobiÄajeni terminal IzvrÅ¡ni argument koji se koristi za uobiÄajeni terminalni program. Az alapértelmezett terminál exec paramétere Az alapértelmezett terminálalkalmazásnál használandó exec paraméter. Argumen eksekusi untuk terminal utama Argumen eksekusi untuk aplikasi terminal utama. Argomento exec per il terminale predefinito L'argomento exec da usare per l'applicazione di terminale predefinita. デフォルトã®ç«¯æœ«ã§ä½¿ç”¨ã™ã‚‹ Exec 用引数 デフォルトã®ç«¯æœ«ã‚¢ãƒ—ケーションã§ä½¿ç”¨ã™ã‚‹ãƒ—ログラムを実行ã™ã‚‹æ™‚ã®å¼•æ•°ã§ã™ã€‚ Exec ნáƒáƒ’ულისხმები áƒáƒ áƒ’უმენტი ტერმინáƒáƒšáƒ˜áƒ¡áƒ—ვის exec áƒáƒ áƒ’უმენტი, რáƒáƒ›áƒ”ლიც ტერმინáƒáƒšáƒ˜áƒ¡ ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡áƒ—ვის გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒ. ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³â€Œà²—ಾಗಿನ Exec ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟೠಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಟರà³à²®à²¿à²¨à²²à³ ಅನà³à²µà²¯à²¦à²²à³à²²à²¿ ಬಳಸಬೇಕಿರà³à²µ exec ಆರà³à²—à³à²¯à³à²®à³†à²‚ಟà³. 기본 터미ë„ì„ ì‹¤í–‰í•  때 줄 ì¸ìž 기본 í„°ë¯¸ë„ í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰í•  때 사용할 ì¸ìž. Numatytojo terminalo paleidimo argumentas Argumentas naudojamas paleidžiant numatytÄ…jÄ… terminalo programÄ…. Izpildes arguments noklusÄ“tam terminÄlam Izpildes arguments noklusÄ“tu terminÄļa lietotni izmantoÅ¡anai. मूलभूत टरà¥à¤®à¤¿à¤¨à¤² लेल ईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट मूलभूत टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—मे उपयोग लेल ईà¤à¤•à¥à¤¸à¤ˆà¤¸à¥€ ऑरà¥à¤—à¥à¤®à¥‡à¤‚ट. Ny tondrikim-panatanterahana ampiasaina amin'ilay rindranasan'ny terminal lasitra. Exec аргумент за Ñтандарден терминал Еxec аргументот за употреба Ñо Ñтандардната терминална апликација. ഡീഫോളàµâ€à´Ÿàµà´Ÿàµ ടെരàµâ€à´®à´¿à´¨à´²à´¿à´¨à´¾à´¯àµà´³à´³ exec ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµâ€à´±àµ ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ ടെരàµâ€à´®à´¿à´¨à´²àµâ€ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´¨àµ ആയàµà´³à´³ exec ആരàµâ€à´—àµà´¯àµà´®àµ†à´¨àµâ€à´±àµ Стандарт терминалын хувьд аргументыг гүйцÑÑ‚Ð³Ñ Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚ терминалын хувьд гүйцÑтгÑÑ… аргумент. मà¥à¤²à¤­à¥‚त कारà¥à¤¯à¤•à¥à¤°à¤®à¤¾à¤‚साठी Exec बाब मà¥à¤²à¤­à¥‚त टरà¥à¤®à¤¿à¤¨à¤² कारà¥à¤¯à¤•à¥à¤°à¤®à¤¾à¤¸à¤¾à¤ à¥€ लागणारी exec बाब. Kjøringsargument for forvalgt terminal Kjøringsargument som skal brukes for forvalgt terminalprogram. पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤²à¤•ा लागि Exec तरà¥à¤• पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ टरà¥à¤®à¤¿à¤¨à¤² अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—का लागि पà¥à¤°à¤¯à¥‹à¤— गरिने exec तरà¥à¤• । Opstartargumenten voor standaard terminal Te gebruiken exec-argument voor het standaard terminalprogramma. Exec-argument til standardterminalemulatoren Exec-argumentet som skal brukast til standardterminalemulatoren. NgangiÅ¡ano ya kgonthe bakeng sa kgokagano ya dithapo e hlaelelago NgangiÅ¡ano ya kgonthe ya go diriÅ¡etÅ¡wa tiriÅ¡o ya kgokagano ya dithapo e hlaelelago. ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପାଇଠନିଷà­à¬ªà¬¾à¬¦à¬¨ ସà­à¬¬à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬° ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଟରà­à¬®à¬¿à¬¨à¬¾à¬²à­ ପà­à¬°à­Ÿà­‹à¬— ପାଇଠନିଷà­à¬ªà¬¾à¬¦à¬¨ ସà­à¬¬à¬¤à¬¨à­à¬¤à­à¬°à¬šà¬°à¥¤ ਡਿਫਾਲਟ ਟਰਮੀਨਲ ਲਈ Exec ਆਰਗੂਮੈਂਟ ਡਿਫਾਲਟ ਟਰਮੀਨਲ ਕਾਰਜ ਵਿੱਚ ਵਰਤਣ ਲਈ Exec ਆਰਗੂਮੈਂਟ ਹੈ। Argument uruchamiania dla domyÅ›lnego terminala Argument uruchomienia używany dla domyÅ›lnej aplikacji terminala. Argumentos de execução para consola por omissão O argumento de execução a utilizar para a aplicação de consola por omissão. Argumento exec para terminal padrão O argumento exec para o aplicativo padrão de terminal. Argument „exec†pentru terminalul implicit Argumentul „exec†de utilizat pentru aplicaÈ›ia terminal implicită. Ðргумент exec Ð´Ð»Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»Ð° по умолчанию Ðргумент exec, иÑпользующийÑÑ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼ терминала по умолчанию. Argument spustenia pre Å¡tandardný terminál Parameter používaný pri spúšťaní Å¡tandardnej aplikácie terminálu. Argument ukaza za zagon privzetega terminala Argument ukaza, ki bo uporabljen za zagon privzetega terminala. Argumenti exec për terminalin e prezgjedhur Argumenti exec që duhet përdorur për terminalin e prezgjedhur Ðргумент извршавања за подразумевани терминал Ðргумент извршавања за подразумевани терминалÑки програм. Ðргумент извршавања за подразумјевани терминал Ðргумент извршавања за подразумјевани терминалÑки програм. Argument izvrÅ¡avanja za podrazumevani terminal Argument izvrÅ¡avanja za podrazumevani terminalski program. Exekveringsargument för standardterminal Exekveringsargumentet att använda för standardterminalprogrammet. இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯à®¤à¯à®¤à®¿à®±à¯à®•ான Exec அளவà¯à®°à¯ exec அளவà¯à®°à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¿à®¯ இயலà¯à®ªà®¾à®© à®®à¯à®©à¯ˆà®¯ பயனà¯à®ªà®¾à®Ÿà¯ à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కొరకౠనిరà±à°µà°°à±à°¤à°¿à°‚à°šà± à°•à±à°°à°®à°¾à°¨à±à°—తసంకేతం à°…à°ªà±à°°à°®à±‡à°¯ à°…à°—à±à°°à°‚ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚ వాడà±à°Ÿ కొరకౠనిరà±à°µà°°à±à°¤à°¿à°‚à°šà± à°•à±à°°à°®à°¾à°¨à±à°—తసంకేతం. อาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•์ exec สำหรับเทอร์มินัลปริยาย อาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•์สำหรับโปรà¹à¸à¸£à¸¡à¹€à¸—อร์มินัลปริยาย Öntanımlı uçbirim için çalıştırma argümanı Öntanımlı uçbirim uygulamsı için çalıştırma argümanları. Ðргументи Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ терміналу Ðргументи виконаннÑ, що викориÑтовуютьÑÑ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾ÑŽ програмою терміналу. Äối số thức hiện cho thiết bị cuối mặc định Äối số thá»±c hiện cần dùng cho ứng dụng thiết bị cuối mặc định i-Exec argument ye-Terminal emiselweyo Isiphumezi- miyalelo se-exec argument sokusetyenziswa kwinkqubo yekhompyutha ye-terminal emiselweyo. é»˜è®¤ç»ˆç«¯çš„æ‰§è¡Œå‚æ•° ä¸ºé»˜è®¤ç»ˆç«¯åº”ç”¨ç¨‹åºæ‰€ä½¿ç”¨çš„æ‰§è¡Œå‚数。 é è¨­çµ‚端機的 Exec åƒæ•¸ é è¨­çµ‚端機所使用的 exec åƒæ•¸ã€‚ é è¨­çµ‚端機的 Exec åƒæ•¸ é è¨­çµ‚端機所使用的 exec åƒæ•¸ã€‚ Sebenzisa umgomo wephutha lesigungu Umgomo osetshenziswa ukusebenzisa iphutha lesigungu sesisebenziso. /schemas/desktop/gnome/applications/component_viewer/exec /desktop/gnome/applications/component_viewer/exec gnome-vfs string nautilus %s Default component viewer application The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID. Verstekkomponentbekyker-toepassing Die toepassing waarmee lêers bekyk wat 'n komponent vereis om hulle te bekyk. Die parameter %s sal deur die lêer se URI's vervang word, die parameter %c sal deur die komponent-IID vervang word. تطبيق عرض المكونات Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ Ø§Ù„ØªØ·Ø¨ÙŠÙ‚ المستعمل لعرض Ø§Ù„Ù…Ù„ÙØ§Øª التي تستحق مكونا لعرضها. سيعوض المتغير %s بـ URI Ø§Ù„Ù…Ù„ÙØŒ كما سيعوض المتغير %c بـ IID المكون. কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° ডিফলà§à¦Ÿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন আবশà§à¦¯à¦•ৰূপে কোনো কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ সহযোগে পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ নথিপতà§à§° পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন । %s পৰামিতিৰ দà§à¦¬à¦¾à§°à¦¾ নথিপতà§à§°à§‡à§° URI উলà§à¦²à¦¿à¦–িত হবে ও পৰামিতি %c দà§à¦¬à¦¾à§°à¦¾ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿà§‡à§° IID নিৰà§à¦¦à¦¿à¦·à§à¦Ÿ কৰা হবে । Aplicación visualizadora del componente L'aplicación que s'usará p'adicar ficheros que requieren un componente pa velos. El parámetru %s podrá ser reemplazáu polos URIs del ficheru, el parámetru %c sedrá reemplazáu pol IID del componente. Ön qurÄŸulu tÉ™rkib hissÉ™si nümayiÅŸ proqramı The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID. Прадвызначанае даÑтаÑаваньне праглÑду кампанÑнта ДаÑтаÑаваньне Ð´Ð»Ñ Ð¿Ñ€Ð°Ð³Ð»Ñду файлаў, ÑÐºÑ–Ñ Ð¿Ð°Ñ‚Ñ€Ð°Ð±ÑƒÑŽÑ†ÑŒ кампанÑнт, каб прагледзіць Ñ–Ñ…. ПарамÑтар %s будзе заменены на URI файлаў, парамÑтар %c будзе заменены IID кампанÑнту. Стандартната програма-компонент за преглед Програмата, коÑто да Ñе използва за преглед на файлове, които изиÑкват определен компонент за преглед. Параметърът %s ще бъде заменен Ð¿ÑŠÑ‚Ñ Ð´Ð¾ файла, параметъра %c ще бъде заменен Ñ IID на компонента. পূরà§à¦¬à¦¨à¦¿à¦°à§à¦§à¦¾à¦°à¦¿à¦¤ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¦à¦°à§à¦¶à¦• অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন যেসব ফাইল পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° জনà§à¦¯ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ আবশà§à¦¯à¦• সেসব ফাইল দেখার জনà§à¦¯ যে অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে। পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° %s ফাইলের URI দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¿à¦¤ হবে, পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦° %c কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ IID দà§à¦¬à¦¾à¦°à¦¾ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¿à¦¤ হবে। কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° ডিফলà§à¦Ÿ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন আবশà§à¦¯à¦•রূপে কোনো কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿ সহযোগে পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° উদà§à¦¦à§‡à¦¶à§à¦¯à§‡ চিহà§à¦¨à¦¿à¦¤ ফাইল পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন। %s পরামিতির দà§à¦¬à¦¾à¦°à¦¾ ফাইলের URI উলà§à¦²à¦¿à¦–িত হবে ও পরামিতি %c দà§à¦¬à¦¾à¦°à¦¾ কমà§à¦ªà§‹à¦¨à§‡à¦¨à§à¦Ÿà§‡à¦° IID নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করা হবে। UobiÄajena aplikacija za pregled komponenti Aplikacija koja se koristi za pregled datoteka Äije gledanje zahtijeva komponentu. Parametar %s će biti zamijenjen URI-ima datoteke, a parametar %c će biti zamijenjen IID-om komponente. Aplicació de visualització de components predeterminada L'aplicació a usar per a visualitzar fitxers que requereixen un component per a poder ser visualitzats. Es reemplaçarà el paràmetre %s amb l'URI del fitxer, i es reemplaçarà el paràmetre %c amb l'IID del component. Aplicació de visualització de components predeterminada L'aplicació a usar per a visualitzar fitxers que requereixen un component per a poder ser visualitzats. Es reemplaçarà el paràmetre %s amb l'URI del fitxer, i es reemplaçarà el paràmetre %c amb l'IID del component. Výchozí aplikace prohlížeÄe komponent Aplikace, kterou chcete používat k zobrazování souborů, které k zobrazení vyžadují komponentu. Parametr %s bude nahrazen URI souboru, parametr %c bude nahrazen IID komponenty. Porwr cydran rhagosodedig Y rhaglen i'w ddefnyddio i bori ffeiliau sydd angen cydran er mwyn eu gwylio. Amnewidir y paramedr %s gan URI y ffeil, ac amnewidir y paramedr %c gan IID y gydran. Forvalgt komponentfremviser Det program der skal bruges til at vise filer der kræver en komponent for at vise dem. Parameteren %s vil blive erstattet af filens adresser, parameteren %c vil blive erstattet med komponentens IID. Vorgabeanwendung für Ansichtskomponenten Die zum Anzeigen von Dateien, die eine Ansichtskomponente erforderlich machen, verwendete Anwendung. Der Parameter %s wird durch die Dateiadresse, der Parameter %d durch die Komponenten-IID ersetzt. སྔོན་སྒྲིག་ཆ་ཤས་ མà½à½¼à½„་བྱེད་གློག་རིམ༠ཡིག་སྣོད་ལུ་ བལྟ་ནིའི་གློག་རིམ་དེ་ལུ་ ཆ་ཤས་ཅིག་དགོ ཚད་བཟུང་ %s གི་ཚབ་ལུ་ ཡིག་སྣོད་ཀྱི་ ཡུ་ཨར་ཨའི་ཚུ་ བཙུགས་ནི་དང་ ཚད་བཟུང་ %c གི་ཚབ་ལུ་ ཆ་ཤས་ཀྱི་ཨའི་ཌི་ཌི་ བཙུགས་ནི་ཨིན༠ΠÏοεπιλεγμένο συστατικό εφαÏμογής Ï€Ïοβολής Η εφαÏμογή για την Ï€Ïοβολή αÏχείων που απαιτοÏν ένα συστατικό για την Ï€Ïοβολή τους. Η παÏάμετÏος %s θα αντικαταστηθεί από το URIs αÏχείου και η παÏάμετÏος %c θα αντικατασταθεί από το IID συστατικοÏ. ð‘›ð‘¦ð‘“ð‘·ð‘¤ð‘‘ ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ ð‘ð‘¿ð‘¼ ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ 𑞠ð‘©ð‘ð‘¤ð‘¦ð‘’ð‘±ð‘•ð‘©ð‘¯ ð‘‘ ð‘¿ð‘• ð‘“𑹠ð‘ð‘¿ð‘¦ð‘™ ð‘“ð‘²ð‘¤ð‘Ÿ ð‘žð‘¨ð‘‘ ð‘®ð‘¦ð‘’ð‘¢ð‘²ð‘¼ ð‘© ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ ð‘‘ ð‘ð‘¿ ð‘žð‘§ð‘¥. 𑞠ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘𑼠%s ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘®ð‘¦ð‘ð‘¤ð‘±ð‘•ð‘‘ ð‘šð‘² 𑞠file's URIs, 𑞠ð‘ð‘¼ð‘¨ð‘¥ð‘©ð‘‘𑼠%c ð‘¢ð‘¦ð‘¤ ð‘šð‘° ð‘®ð‘¦ð‘ð‘¤ð‘±ð‘•ð‘‘ ð‘šð‘² 𑞠ð‘’ð‘©ð‘¥ð‘ð‘´ð‘¯ð‘©ð‘¯ð‘‘ IID. Default component viewer application The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, and the parameter %c will be replaced by the component IID. Default component viewer application The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID. Aplicación visualizadora del componente predeterminada La aplicación que se usará para ver archivos que requieren un componente para verlos. El parámetro %s podrá ser reemplazado por los URI del archivo, el parámetro %c será reemplazado por el IID del componente. Vaikimisi komponentide vaatamise rakendus Rakendus, mida kasutada failide puhul, mille vaatamiseks on vaja kasutada komponenti. Parameeter %s asendatakse faili URI'ga, parameeter %c komponendi IID'ga. Osagaien ikustaile lehenetsia Fitxategiak bistaratzeko eta hauek ikusteko behar duen osagaia eskatzen duen aplikazioa. %s parametroa fitxategiaren URIagatik, eta %c parametroa IID osagaiagatik ordeztuko dira. Oletusarvoinen komponenttien katselusovellus Katseluun komponentin vaativien tiedostojen katselusovellus. Parametri %s korvautuu tiedoston URI:lla, parametri %c komponentin IID:llä. Visionneur de composants par défaut L'application à utiliser pour visualiser les fichiers qui nécessitent un composant pour les voir. Le paramètre %s sera remplacé par l'URI du fichier, le paramètre %c sera remplacé par le composant IID. Aplicativo predefinido para o visualizador de compoñentes O aplicativo usado para ver ficheiros que requiren un compoñente para visualizalos. O parámetro %s substitúese polos URI do ficheiro e o parámetro %c polo IID do compoñente. મૂળભૂત ભાગો દેખાડનાર કારà«àª¯àª•à«àª°àª® ફાઇલોને જોવા માટે ઉપયોગમાં લેવાતા કારà«àª¯àª•à«àª°àª® માટે તેને જોવા માટે ભાગ જરà«àª°à«€ છે. પરિમાણ %s ફાઇલના URI થી બદલાઇ જશે, પરિમાણ %c ભાગI ID થી બદલાઇ જશે. ×™×™×©×•× ×œ×”×¦×’×ª ×¨×›×™×‘×™× ×‘×¨×™×¨×ª מחדל The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID. डिफ़ॉलà¥à¤Ÿ अवयव पà¥à¤°à¤¦à¤°à¥à¤¶à¤• अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— फाइल देखने के लिये पà¥à¤°à¤¯à¥‹à¤—ारà¥à¤¥ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जो उनको देखने के लिये à¤à¤• घटक की जरूरत समà¤à¤¤à¤¾ है. पैरामीटर %s फाइल URIs के दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ होगा, पैरामीटर %c को घटक IID से विसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया जायेगा. UobiÄajeni program za pregled komponenti Program koji se koristi za pregled datoteka, te koji zahtjeva komponentu za pregledavanje istih. Parametar %s će biti zamijenjen s URI datoteke, a parametar %c će biti zamijenjen s IID komponente. Alapértelmezett komponensnézÅ‘ alkalmazás Az azon fájlok megtekintésére használt alkalmazás, amelyek megtekintéséhez egy összetevÅ‘ szükséges. A %s paraméter a fájl URI címére, a %c az összetevÅ‘ IID-jére lesz cserélve. Aplikasi utama untuk menampilkan komponen Aplikasi untuk menampilkan berkas yang memerlukan komponen untuk melihatnya. Parameter %s akan diganti oleh URI berkas, parameter %c diganti oleh IID komponen. Applicazione di visualizzatore componente predefinita L'applicazione da usare per visualizzare i file che richiedono un componente per essere visualizzati. Il parametro %s viene sostituito con l'URI del file, il parametro %c viene sostituito con l'IID del componente. デフォルトã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆãƒ»ãƒ“ューア・アプリケーション コンãƒãƒ¼ãƒãƒ³ãƒˆãŒå¿…è¦ã¨ãªã‚‹ãƒ•ァイルを閲覧ã™ã‚‹ãŸã‚ã®ã‚¢ãƒ—リケーションã§ã™ã€‚%s ã¯ãƒ•ァイル㮠URI ã§ã€ãƒ‘ラメータ %c ã¯ã‚³ãƒãƒ¼ãƒãƒ³ãƒˆã® IID ã§ãれãžã‚Œç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚ კáƒáƒ›áƒžáƒáƒœáƒ”ნტების ჩვენების ნáƒáƒ’ულისხმები პრáƒáƒ’რáƒáƒ›áƒ პრáƒáƒ’რáƒáƒ›áƒ áƒáƒ› ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ©áƒ•ენებლáƒáƒ“ სáƒáƒ­áƒ˜áƒ áƒáƒ”ბს დáƒáƒ›áƒáƒ¢áƒ”ბით კáƒáƒ›áƒžáƒáƒœáƒ”ნტს. პáƒáƒ áƒáƒ›áƒ”ტრი %s შეიცვლებრფáƒáƒ˜áƒšáƒ˜áƒ¡ URI-თ, პáƒáƒ áƒáƒ›áƒ”ტრი %c შეიცვლებრკáƒáƒ›áƒžáƒáƒœáƒ”ნტის IID-ით. ಪೂರà³à²µà²¨à²¿à²¯à³‹à²œà²¿à²¤ ಘಟಕ ನೋಡà³à²µ ಅನà³à²µà²¯ ಕಡತಗಳನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²²à³ ಒಂದೠಘಟಕದ ಅಗತà³à²¯à²µà²¿à²°à³à²µà²‚ತಹ ಕಡತಗಳನà³à²¨à³ ವೀಕà³à²·à²¿à²¸à²²à³ ಬಳಸಬೇಕಾದ ಒಂದೠಅನà³à²µà²¯. %s ನಿಯತಾಂಕವನà³à²¨à³ ಕಡತಗಳ URI ಗಳಿಂದ ಬದಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¦à³†, ಹಾಗೠ%c ನಿಯತಾಂಕವನà³à²¨à³ ಘಟಕದ IID ಇಂದ ಬದಲಾಯಿಸಲಾಗà³à²¤à³à²¤à²¦à³†. 기본 ì»´í¬ë„ŒíЏ 보기 프로그램 볼려면 ì»´í¬ë„ŒíŠ¸ê°€ 필요한 파ì¼ì„ ë³¼ 때 사용할 프로그램. ì¸ìž %sì€(는) 파ì¼ì˜ URIì´ê³ , ì¸ìž %cì€(는) ì»´í¬ë„ŒíЏ IID입니다. Numatytoji komponentų peržiÅ«ros programa Programa naudojama peržiÅ«rÄ—ti failus, kurie reikalauja specialaus peržiÅ«ros komponento. Parametras %s bus pakeistas failo adresu, parametras %c bus pakeistas komponento IID. NoklusÄ“ta komponente pÄrlÅ«ka lietotnei Lietotne, ko izmanto, lai aplÅ«kotu datnes, kas pieprasa komponenti, lai aplÅ«kotu tÄs. Parametrs %s bÅ«s aizvietots ar datnes URI, parametrs %c bÅ«s aizvietots ar komponenta IID. मूलभूत अवयव पà¥à¤°à¤¦à¤°à¥à¤¶à¤• अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— फाइल देखबाक लेल पà¥à¤°à¤¯à¥‹à¤—ारà¥à¤¥ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— जे हà¥à¤¨à¤•ा देखबाक लेल à¤à¤•टा घटक क' जरूरत समà¤à¥ˆà¤¤ अछि. पैरामीटर %s फाइल URIs क' दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ हà¤à¤¤à¤¾à¤¹, पैरामीटर %c केठघटक IID सठविसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ कà¤à¤² जà¤à¤¤à¤¾à¤¹. Rindranasa fizahana singa fototra lasitra Ny rindranasa ampiasaina hizahana ireo rakitra mila singa fototra raha hizaha azy ireo. Hosoloina ny URIn'ilay rakitra ny mpizahaka %s; hosoloina ny IIDn'ilay singa fototra ny mpizahaka %c. Стандардна апликација за преглед на Ñодржина Ðпликацијата што ќе Ñе кориÑти за преглед на датотеки кои што имаат потреба од компонента за преглед. Параметарот %s ќе биде заменет од Ñтрана на URI, параметрот %c ќе биде заменете од IID на компонентата. ഡീഫോളàµâ€à´Ÿàµà´Ÿà´¾à´¯ കംപോണനàµâ€à´±àµ à´µàµà´¯àµ‚വരàµâ€ ആപàµà´³à´¿à´•àµà´•േഷനàµâ€ à´ªàµà´°à´¯àµ‹à´—à´¤àµà´¤à´¿à´²àµâ€ ഉപയോഗികàµà´•àµà´¨àµà´¨ ഫയലàµà´•à´³àµâ€ കാണàµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ആവശàµà´¯à´®àµà´³à´³ ഘടകം. %s പരാമീറàµà´±à´±à´¿à´¨àµ പകരം ഫയലിനàµâ€à´±àµ† URI, %c പരാമീറàµà´±à´±à´¿à´¨àµ പകരം ഘടകം IID à´Žà´¨àµà´¨à´¿à´µ ഉപയോഗികàµà´•àµà´¨àµà´¨àµ. Стандарт бүрÑлдÑхүүн харагч програм Харуулах бүрÑлдÑхүүн шаардлагатай файлууд харуулахад Ñ…ÑÑ€ÑглÑгдÑÑ… програм. %s параметр файлын хаÑгаар, %c параметр бүрÑлдÑхүүний-IID -Ñ€ орлуулагдана. मà¥à¤²à¤­à¥‚त भाग दरà¥à¤¶à¤• कारà¥à¤¯à¤•à¥à¤°à¤® घटकाची आवशà¥à¤¯à¤•ता लागत असणाऱà¥à¤¯à¤¾ फाइलला पहाणà¥à¤¯à¤¾à¤•रीताचे अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—. घटक %s फाइलचà¥à¤¯à¤¾ URI बदलविले जाईल, बाब %c घटकाचà¥à¤¯à¤¾ IID शी बदलविले जाईल. Forvalgt applikasjon for visning av komponent Applikasjon som skal brukes for Ã¥ vise filer som krever en komponent for visning. Parameteren %s vil erstattes med filens URIer, parameteren %c vil erstattes med komponentens IID. पूरà¥à¤µà¤¨à¤¿à¤°à¥à¤§à¤¾à¤°à¤¿à¤¤ अवयव दरà¥à¤¶à¤• अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— फाइल हेरà¥à¤¨à¤•ा लागि पà¥à¤°à¤¯à¥‹à¤— गरिने अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ले ती फाइल हेरà¥à¤¨à¤²à¤¾à¤ˆ केही ततà¥à¤µà¤•ो आवशà¥à¤¯à¤•ता महसà¥à¤¸ गरà¥à¤¦à¤› । %s परामिति URIs फाइलमा पà¥à¤°à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¨ गरिनà¥à¤›à¤¨à¥, %c परामिति IID अवयवदà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¸à¥à¤¤à¤¿à¤¸à¥à¤¥à¤¾à¤ªà¤¨ गरिनà¥à¤› । Standaard componentweergave-programma Te gebruiken programma voor weergave van bestanden die een component vereisen. De parameter %s zal vervangen worden door de URI van het bestand en de parameter %c zal vervangen worden de de IID van de component. Standard komponentvisarprogram Programmet som skal brukast til Ã¥ visa filer som krev ein eigen komponent for Ã¥ visast. Parameteren %s vert erstatta av URI-en til fila, og parameteren %c vert erstatta med komponenten sin IID. Dira gore tiriÅ¡o ya karolo ya go lebelela e hlaelele TiriÅ¡o yeo e tla diriÅ¡etÅ¡wago go lebelela difaele tÅ¡eo di nyakago thuÅ¡o gore o di lebelele. Ditekanyo tÅ¡a %s di tla tÅ¡eelwa legato ke di-STS tÅ¡a faele, tekanyo ya %c e tla tÅ¡eelwa legato ke thuÅ¡o ya IID. ପୂରà­à¬¬à¬¨à¬¿à¬°à­à¬¦à­à¬§à¬¾à¬°à¬¿à¬¤ ଯନà­à¬¤à­à¬°à¬¾à¬¶à¬‚ ଦରà­à¬¶à¬• ପà­à¬°à­Ÿà­‹à¬— ଯେଉଠଫାଇଲଗà­à¬¡à¬¿à¬• ଦେଖିବା ପାଇଠଗୋଟିଠଯନà­à¬¤à­à¬°à¬¾à¬‚ଶ ଆବଶà­à¬¯à¬•, ସେମାନଙà­à¬• ପାଇଠକେଉଠପà­à¬°à­Ÿà­‹à¬— ବà­à¬¯à¬¬à¬¹à¬¾à¬° କରାଯିବ। ପà­à¬°à¬¾à¬šà¬³ %s ଫାଇଲର à­Ÿà­.ଆରà­.ଆଇ. ଦà­à¬¬à¬¾à¬°à¬¾ ବଦଳ ହେବ, ପà­à¬°à¬¾à¬šà¬³ %c ଯନà­à¬¤à­à¬°à¬¾à¬¸à¬‚ର ଆଇ.ଆଇ.ଡି. ଦà­à¬¬à¬¾à¬°à¬¾ ବଦଳ ହେବ। ਡਿਫਾਲਟ ਭਾਗ ਦਰਸ਼ਕ à¨à¨ªà¨²à©€à¨•ੇਸ਼ਨ ਫਾਇਲਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਵਰਤਣ ਵਾਲਾ ਕਾਰਜ, ਜੋ ਕਿ ਹਿੱਸੇ ਵੇਖਣ ਦੇ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। ਪੈਰਾਮੀਟਰ %s ਨੂੰ ਫਾਇਲ ਦੇ URI ਨਾਲ ਤਬਦੀਲ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ, ਪੈਰਾਮੀਟਰ %c ਨੂੰ ਹਿੱਸੇ IID ਨਾਲ ਤਬਦੀਲ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ। DomyÅ›lna aplikacja przeglÄ…darki komponentów Aplikacja używana do przeglÄ…dania plików wymagajÄ…ca komponentu do ich obejrzenia. Parametr %s zostanie zastÄ…piony przez URI pliku, parametr %c zostanie zastÄ…piony poprzez IID komponentu. Aplicação visualizadora por omissão de componente A aplicação a utilizar para visualizar ficheiros que requerem um componente para que possam ser visualizadas. O parâmetro %s será substituído pelo URI do ficheiro, o parâmetro %c será substituído pelo IID do componente. Aplicativo padrão para visualização de componentes O aplicativo para ser usado na visualização de arquivos que requerem um componente para serem visualizados. O parâmetro %s será substituído pelos URIs dos arquivos e o parâmetro %c será substituído pelo IID do componente. AplicaÈ›ie implicită de vizualizare înglobată AplicaÈ›ie de utilizat pentru vizualizarea fiÈ™ierelor ce necesită o componentă de vizualizare. Parametrul %s va fi înlocuit cu URI-ul fiÈ™ierului, iar parametrul %c va fi înlocuit cu componenta IID. Приложение проÑмотра компонентов по умолчанию Приложение, иÑпользуемое Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра файлов, требующих компонента Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра. Параметр %s будет заменён адреÑом (URI) файла, параметр %c - идентификатором (IID) компонента. Å tandardná aplikácia prehliadaÄa súÄastí Aplikácia používaná pre zobrazenie súborov, ktoré vyžadujú nejakú súÄasÅ¥ pre zobrazenie. Parameter %s bude nahradený URI súborov, parameter %c bude nahradený IID súÄasti. Privzet pregledovalnik komponent Program za pregledovanje datotek, ki za ogled zahtevajo poseben programnik. Parameter %s bo zamenjan z naslovom URI datoteke, parameter %c pa z IID programnika. Programi i prezgjedhur për shikimin e komponuesit Programi që duhet përdorur për të shikuar files që kanë nevojë për një komponent që të shikohen. Parametri %s do të zevendësohet nga URl e file, parametri %c do të zevendësohet nga IID e komponentit. Подразумевани програм за преглед делова Програм који Ñе кориÑти за прегледање датотека које захтевају компоненту за преглед. Параметар %s ће бити замењен адреÑом датотеке, а параметар %c ће бити замењен IID-ом компоненте. Подразумјевани програм за преглед дијелова Програм који Ñе кориÑти за прегледање датотека које захтјевају компоненту за преглед. Параметар %s ће бити замјењен адреÑом датотеке, а параметар %c ће бити замјењен IID-ом компоненте. Podrazumevani program za pregled delova Program koji se koristi za pregledanje datoteka koje zahtevaju komponentu za pregled. Parametar %s će biti zamenjen adresom datoteke, a parametar %c će biti zamenjen IID-om komponente. Standardprogram för komponentvisning Programmet som används för visning av filer som kräver en komponent för att visa dem. Parametern %s kommer att ersättas av filens URI:er, och parametern %c kommer att ersättas av komponent-IID. இயலà¯à®ªà®¾à®© ான பொரà¯à®³à¯ காட பயனà¯à®ªà®¾à®Ÿà¯à®•ளà¯à®¿à®©à¯ கோபà¯à®ªà¯à®•ளை பாரà¯à®•à¯à®• தேவைபà¯à®ªà®Ÿà¯à®®à¯ பயனà¯à®ªà®¾à®Ÿà¯à®•ளà¯à®•à¯à®•௠பொரà¯à®³à¯à®•ள௠தேவை. அளவà¯à®°à¯ %s அதன௠URI யால௠மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®®à¯, அளவà¯à®°à¯ %c அதன௠பொரà¯à®³à¯ அடையாளதà¯à®¤à®¾à®²à¯ மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®®à¯ à°…à°ªà±à°°à°®à±‡à°¯ భాగమైన దరà±à°¶à°•à°¿ కారà±à°¯à°•à±à°·à±‡à°¤à±à°°à°‚ దసà±à°¤à±à°°à°®à±à°²à°¨à± దరà±à°¶à°¿à°‚à°šà±à°Ÿà°•à± à°µà±à°ªà°¯à±‹à°—ించే à°…à°¨à±à°µà°°à±à°¤à°¨à°®à±à°•ౠవాటిని దరà±à°¶à°¿à°‚à°šà±à°Ÿà°•ౠమూలకం అవసరమైంది. పారామితి %s దసà±à°¤à±à°°à°®à±à°¯à±Šà°•à±à°• URIà°² చేత à°ªà±à°¨à°ƒà°¸à±à°¥à°¾à°ªà°¿à°‚చబడà±à°¤à±à°‚ది, పారామితి %c మూలకం IID చేత à°ªà±à°¨à°ƒà°¸à±à°¥à°¾à°ªà°¿à°‚చబడà±à°¤à±à°‚ది. โปรà¹à¸à¸£à¸¡à¹à¸ªà¸”งปริยาย โปรà¹à¸à¸£à¸¡à¹à¸ªà¸”ง à¹à¸Ÿà¹‰à¸¡à¸—ี่ต้องใช้คอมโพเนนต์à¹à¸ªà¸”ง %s จะถูà¸à¹à¸—นที่ด้วย URI ของà¹à¸Ÿà¹‰à¸¡ à¹à¸¥à¸° %c จะถูà¸à¹à¸—นที่ด้วย IID ของคอมโพเนนต์ Öntanımlı içerik görüntüleme uygulaması Görüntülemek için kullanılan uygulama, görüntülemek için içerik gerektirir. %s parametresi doyaların URI 'si ile, %c parametresi ise içeriÄŸin IID'si ile deÄŸiÅŸtirilecek. Типова програма переглÑду компонентів Програма, що викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду файлів, Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñких потрібен компонент. Параметр %s буде замінений адреÑою (URI) файлу, параметр %c - ідентифікатором (IID) компоненту. Ứng dụng xem thành phần mặc định Ứng dụng cần dùng để xem tập tin cần thiết thành phần để xem nó. Tham số %s sẽ được thay thế bằng các URI cá»§a tập tin đó, tham số %c sẽ được thay thế bằng IID cá»§a thành phần. Isixhobo esimiselweyo esibonakalisayo senkqubo yekhompyutha Inkqubo yekhompyutha omawuyisebenzise ukujonga iifayili ezifuna isixhobo ukuzijonga. Ixabiso lento ejikajikayo %s kuyakubakhona endaweni yalo iifayili ze-URIs, ixabiso lento ejikayo %c kuyakubakhona endaweni yaloisixhobo se-IID. é»˜è®¤ç»„ä»¶æŸ¥çœ‹å™¨åº”ç”¨ç¨‹åº è¯¥åº”ç”¨ç¨‹åºç”¨äºŽæŸ¥çœ‹éœ€è¦ç»„ä»¶æ‰èƒ½æŸ¥çœ‹çš„æ–‡ä»¶ã€‚傿•° %s 将被替æ¢ä¸ºæ–‡ä»¶çš„ URIï¼Œå‚æ•° %c 将被替æ¢ä¸ºç»„ä»¶ IID。 é è¨­çš„å…ƒä»¶æª¢è¦–ç¨‹å¼ æœ‰äº›æª”æ¡ˆéœ€è¦æœ‰ä¸€å€‹å…ƒä»¶ä¾†æª¢è¦–å®ƒå€‘ï¼Œé€™è£æŒ‡å®šæª¢è¦–所用的程å¼ã€‚åƒæ•¸ %s 會被檔案的 URI 所å–ä»£ï¼Œåƒæ•¸ %c 會被元件 IID 所å–代。 é è¨­çš„å…ƒä»¶æª¢è¦–ç¨‹å¼ æœ‰äº›æª”æ¡ˆéœ€è¦æœ‰ä¸€å€‹å…ƒä»¶ä¾†æª¢è¦–它們,這裡指定檢視所用的程å¼ã€‚åƒæ•¸ %s 會被檔案的 URI 所å–ä»£ï¼Œåƒæ•¸ %c 會被元件 IID 所å–代。 Iphutha lesitho sokusetshenziswa sokubuka Isisebenziso sokubona ohele abadinga isitho sokubabona. Isigamu %s sizokubuyiselwa ngehele URIs, isigamu %c sizokubuyiselwa ngesitho IID. gnome-vfs-2.24.4/schemas/system_smb.schemas0000644000175000001440000006550411450333414015606 00000000000000 /schemas/system/smb/workgroup /system/smb/workgroup gnome-vfs string SMB workgroup The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in. SMB-werkgroep مجموعة عمل SMB مجموعة العمل أو نطاق شبكة ويندوز التى يتبعها هذا المستخدم. لكي تؤثّر مجموعة العمل الجديدة تأثيرا كاملا قد تحتاج للخروج ثم الولوج مرّة أخرى. SMB ৱৰà§à¦•-গà§à§°à§à¦ª বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰী যে Windows নেটৱৰà§à¦•িং ৱৰà§à¦•গà§à§°à§à¦ª অথবা ডোমেইনেৰ অংশ । নতà§à¦¨ ৱৰà§à¦•গà§à§°à§à¦ª সমà§à¦ªà§‚à§°à§à¦£à§°à§‚পে সকà§à§°à¦¿à§Ÿ কৰাৰ জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à§°à¦•াৰীকে সমà§à¦­à¦¬à¦¤ লগ-আউট কৰে পà§à¦¨à§°à¦¾à§Ÿ লগ-ইন কৰতে হবে । Grea de trabayu SMB La grea/grupu de trabayu de rede de Windows o el dominiu del que l'usuariu ye parte. Pa que un grupu nuevu tenga efeutu, l'usuariu pue necesitar zarrar la sesión y entrar de nuevu. SMB iÅŸ qrupu ÐŸÑ€Ð°Ñ†Ð¾ÑžÐ½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð° SMB ÐŸÑ€Ð°Ñ†Ð¾ÑžÐ½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð° Ñетак Windows ці маёнтак да Ñкіх належыць карыÑтальнік. Будзе мець ÑÑ„Ñкт у выпадку новай працоўнай групы калі карыÑтальнік пакіне й вернецца назад. Работна група на SMB Работната група или домейнът на Windows, в коÑто потребителÑÑ‚ учаÑтва. Възможно е да Ñе наложи да излезете и да влезете в ÑиÑтемата отново, за да може тази наÑтройка да влезе в Ñила. SMB ওয়ারà§à¦•গà§à¦°à§à¦ª উইনà§à¦¡à§‹à¦œ নেটওয়ারà§à¦•িং ওয়ারà§à¦•গà§à¦°à§à¦ª বা ডোমেইন, বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী যার অংশ। নতà§à¦¨ কোনো ওয়ারà§à¦•গà§à¦°à§à¦ª পà§à¦°à§‹à¦ªà§à¦°à¦¿ কারà§à¦¯à¦•র করার জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীকে লগআউট করে আবার লগইন করতে হতে পারে। SMB ওয়ারà§à¦•-গà§à¦°à§à¦ª বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারী যে Windows নেটওয়ারà§à¦•িং ওয়ারà§à¦•গà§à¦°à§à¦ª অথবা ডোমেইনের অংশ। নতà§à¦¨ ওয়ারà§à¦•গà§à¦°à§à¦ª সমà§à¦ªà§‚রà§à¦£à¦°à§‚পে সকà§à¦°à¦¿à§Ÿ করার জনà§à¦¯ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীকে সমà§à¦­à¦¬à¦¤ লগ-আউট করে পà§à¦¨à¦°à¦¾à§Ÿ লগ-ইন করতে হবে। Radna grupa SMB Grup de treball d'SMB El grup de treball o domini de la xarxa de Windows al qual pertany l'usuari. Per a que un grup de treball nou tingui efecte, és possible que l'usuari necessite sortir i tornar a entrar. Grup de treball d'SMB El grup de treball o domini de la xarxa de Windows al qual pertany l'usuari. Per a que un grup de treball nou tinga efecte, és possible que l'usuari necessite eixir i tornar a entrar. Pracovní skupina SMB Pracovní skupina nebo doména Windows, jejímž Älenem je uživatel. Aby se úplnÄ› projevila nová pracovní skupina, uživatel se možná bude muset odhlásit a znovu pÅ™ihlásit. Grŵp gwaith SMB Y grŵp gwaith neu'r parth rhwydweithio Windows mae'r defnyddiwr yn rhan ohono. Cyn i grŵp gwaith newydd ddod i rym, efallai bydd rhaid i'r defnyddiwr allgofnodi a mewngofnodi eto. SMB-arbejdsgruppe Windows netværks-arbejdsgruppen eller domænet som brugeren er en del af. For at en ny arbejdsgruppe er komplet aktiveret skal brugeren muligvis logge ud og logge ind igen. SMB-Arbeitsgruppe Die Windows-Netzwerkarbeitsgruppe oder -domäne zu der der Benutzer gehört. Damit eine neue Arbeitsgruppe vollständig übernommen werden kann, muss sich der Benutzer ab- und wieder anmelden. ཨེསི་ཨེམ་བི་ལཱ་སྡེ༠ལག་ལེན་པ་དེ་ ཆ་ཤས་ཅིག་ཨིན་མི་ à½à½²à½“་ཌོསི་ཡོངས་འབྲེལ་སྡེ་ཚན་ ཡང་ན་ ཌོ་མེན༠ལཱ་སྡེ་གསརཔ་ཅིག་ལུ་ ནུས་པ་ཧྲིལ་བུ་འà½à½¼à½–་ནིའི་དོན་ལུ་ ལག་ལེན་པ་དེ་གིས་ ཕྱིར་བསà¾à¾±à½¼à½‘་འབད་ཞིནམ་ལས་ ལོག་ནང་བསà¾à¾±à½¼à½‘་འབད་དགོཔ་འོང་༠Ομάδα εÏγασίας SMB Το Windows networking workgroup ή ο τομέας όπου ανήκει ο χÏήστης. Για να Ï€Ïαγματοποιηθεί η δημιουÏγία ενός νέου workgroup ο χÏήστης θα Ï€Ïέπει να αποσυνδεθεί καινα επανασυνδεθεί. 𑞠·ð‘¢ð‘¦ð‘¯ð‘›ð‘´ð‘Ÿ ð‘¯ð‘§ð‘‘ð‘¢ð‘»ð‘’ð‘¦ð‘™ ð‘¢ð‘»ð‘’ð‘œð‘®ð‘µð‘ 𑹠ð‘›ð‘´ð‘¥ð‘±ð‘¯ ð‘žð‘¨ð‘‘ 𑞠ð‘¿ð‘Ÿð‘¼ ð‘¦ð‘Ÿ ð‘ð‘¸ð‘‘ ð‘. ð‘¦ð‘¯ ð‘¹ð‘›ð‘¼ ð‘“𑹠𑩠ð‘¯ð‘¿ ð‘¢ð‘»ð‘’ð‘œð‘®ð‘µð‘ ð‘‘ ð‘“ð‘«ð‘¤ð‘¦ ð‘‘ð‘±ð‘’ ð‘¦ð‘“ð‘§ð‘’𑑠𑞠ð‘¿ð‘Ÿð‘¼ ð‘¥ð‘± ð‘¯ð‘°ð‘› ð‘‘ ð‘¤ð‘ªð‘œ ð‘¬ð‘‘ 𑯠ð‘¤ð‘ªð‘œ ð‘šð‘¨ð‘’ ð‘¦ð‘¯. SMB workgroup The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in. SMB workgroup The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in. Grupo de trabajo SMB El grupo de trabajo de red de Windows o el dominio del que el usuario es parte. Para que un grupo grupo nuevo tenga efecto, el usuario puede necesitar cerrar la sesión y entrar de nuevo. SMB töögrupp Windows'i võrgunduse töögrupi või domeeni nimi, kuhu see kasutaja kuulub. Selleks et kasutaja saaks täielikult ära kasutada uue töögrupi privileege, peaks ta kõigepealt välja ja seejärel uuesti sisse logima. SMB lan-taldea Erabiltzailea harpidetuta dagoen Windows sareko lan-taldea edo domeinua. Lan-talde berri batek erabateko eragina edukitzeko erabiltzaileak saioa amaitu eta berriro saioa hasi beharko du. SMB-työryhmä Windows-verkkojen työryhmä tai aluenimi, johon käyttäjä kuuluu. Jotta uusi työryhmänimi toimii kaikkialla, voi olla tarpeen kirjautua uudestaan sisään järjestelmään muutoksen jälkeen. Groupe de travail SMB Le groupe de travail ou le domaine Windows auquel appartient l'utilisateur. Afin qu'un nouveau groupe de travail soit pleinement opérationnel, l'utilisateur doit se déconnecter et se reconnecter. Grupo de traballo SMB O grupo de traballo en rede ou o dominio de Windows ao que o usuario pertence. Para que un grupo novo sexa completamente efectivo, o usuario pode necesitar terminar a sesión e iniciala de novo. SMB કામ કરતૠજૂથ Windows નેટવરà«àª•ીંગ વરà«àª•ગà«àª°à«àªª અથવા ડોમેઈન કે જેનો વપરાશકરà«àª¤àª¾ ભાગ છે. નવા વરà«àª•ગà«àª°à«àªª માટે સંપૂરà«àª£ અસર લેવા માટે કે જેની માટે વપરાશકરà«àª¤àª¾àª પà«àª°àªµà«‡àª¶ બહાર નીકળવાની અને ફરીથી પà«àª°àªµà«‡àª¶ કરવાની જરૂર છે. SMB workgroup The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in. à¤à¤¸à¤à¤®à¤¬à¥€ वरà¥à¤•गà¥à¤°à¥à¤ª Windows संजाल कारà¥à¤¯à¤¸à¤®à¥‚ह या डोमेन जिसका उपयोकà¥à¤¤à¤¾ हिसà¥à¤¸à¤¾ है. नये कारà¥à¤¯à¤¸à¤®à¥‚ह के पूरी तरह पà¥à¤°à¤­à¤¾à¤µà¥€ होने के लिये उपयोकà¥à¤¤à¤¾ को लॉग आउट व लॉग बैक होने की जरूरत है. Radna grupa SMB Radna grupa ili domena Windows umrežavanja, koje je korisnik Älan. Kako bi nova radna grupa doÅ¡la do izražaja korisnik će se možda morati odjaviti i ponovno prijaviti u sustav. SMB-munkacsoport A Windows hálózati munkacsoport vagy tartomány, amelynek a felhasználó része. Egy új munkacsoport teljes életbe lépéséhez a felhasználónak lehet, hogy ki-, majd újra be kell jelentkeznie. Kelompok kerja (workgroup) SMB Kelompok jaringan atau domain Windows di mana pengguna menjadi bagian di dalamnya. Untuk menjamin kelompok kerja yang baru dapat dioperasikan dengan benar, pengguna mungkin harus log keluar dan masuk kembali. Workgroup SMB Il workgroup o dominio della rete tipo Windows di cui l'utente fa parte. È necessario terminare la sessione e riavviarla per poter operare pienamente dopo aver inserito un nuovo workgroup. SMB ワークグループ ãƒ¦ãƒ¼ã‚¶ãŒæ‰€å±žã™ã‚‹ Windows ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—ã¾ãŸã¯ãƒ‰ãƒ¡ã‚¤ãƒ³ã§ã™ã€‚æ–°ã—ã„ワークグループをèªè­˜ã™ã‚‹ã«ã¯ã€ãƒ¦ãƒ¼ã‚¶ãŒãã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ SMB სáƒáƒ›áƒ£áƒ¨áƒáƒ ჯგუფი Windows ქსელის სáƒáƒ›áƒ£áƒ¨áƒáƒ ჯგუფი áƒáƒœ დáƒáƒ›áƒ”ნი რáƒáƒ›áƒ”ლშიც მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელირგáƒáƒ”რთიáƒáƒœáƒ”ბული. სáƒáƒ›áƒ£áƒ¨áƒáƒ ჯგუფის შეცვლის ძáƒáƒšáƒáƒ¨áƒ˜ შესáƒáƒ¡áƒ•ლელáƒáƒ“ áƒáƒ£áƒªáƒ˜áƒšáƒ”ბელირსისტემიდáƒáƒœ გáƒáƒ›áƒáƒ¡áƒ•ლრდრხელáƒáƒ®áƒáƒšáƒ˜ შესვლáƒ. SMB ಕೆಲಸದಗà³à²‚ಪೠಬಳಕೆದಾರರೠಒಂದೠಭಾಗವಾದ ವಿಂಡೋಸೠನೆಟà³â€Œà²µà²°à³à²•ಿಂಗೠವರà³à²•à³-ಗà³à²°à³‚ಪೠಅಥವ ಡೊಮೈನಿನ ಹೆಸರà³. ಹೊಸ ವರà³à²•à³-ಗà³à²°à³‚ಪೠಸಂಪೂರà³à²£à²µà²¾à²—ಿ ಕಾರà³à²¯à²°à³‚ಪಕà³à²•ೆ ಬರಲೠಬಳಕೆದಾರರೠನಿರà³à²—ಮಿಸಿ ನಂತರ ಮರಳಿ ಪà³à²°à²µà³‡à²¶à²¿à²¸à³à²µ ಅಗತà³à²¯à²µà²¿à²°à³à²¤à³à²¤à²¦à³†. SMB 작업 그룹 사용ìžê°€ ì†í•´ 있는 윈ë„ìš° ë„¤íŠ¸ì›Œí¬ ì›Œí¬ê·¸ë£¹ í˜¹ì€ ë„ë©”ì¸. 새 워í¬ê·¸ë£¹ì´ 완전히 ë™ìž‘하려면 사용ìžê°€ 로그아웃했다가 다시 로그ì¸í•´ì•¼ í•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. SMB darbo grupÄ— Windows tinklų darbo grupÄ— arba sritis, kuriai priklauso naudotojas. Tam, kad visiÅ¡kai įsigaliotų atlikti pakeitimai, naudotojui gali reikti atsijungti ir prisijungti iÅ¡ naujo. SMB darba grupa Windows tÄ«kloÅ¡anas darba grupa vai domÄ“ns, kura sastÄvÄ ir lietotÄjs. Lai jaunÄ darba grupa strÄdÄtu pilnÄ«gi, lietotÄjam vajadzÄ“tu iziet no sistÄ“mas un ienÄkt atpakaļ. à¤à¤¸à¤à¤®à¤¬à¥€ वरà¥à¤•गà¥à¤°à¥à¤ª Windows सà¤à¤œà¤¾à¤² कारà¥à¤¯à¤¸à¤®à¥‚ह अथवा डोमेन जकर पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ हिसà¥à¤¸à¤¾ अछि. नवीन कारà¥à¤¯à¤¸à¤®à¥‚ह क' पूरà¥à¤£ रूपेठपà¥à¤°à¤­à¤¾à¤µà¥€ हà¤à¤¬à¤¾à¤• लेल पà¥à¤°à¤¯à¥‹à¤•à¥à¤¤à¤¾ केठलाग आउट आ लाग बैक हà¤à¤¬à¤¾à¤• जरूरत अछि. Vondron-tsolosaina SMB Ny vondron-tsolosaina mifandray na domenan'ny Windows misy ilay mpampiasa. Mety mila mivoaka ary miverina miditra indray ilay mpampiasa mba ahafahan'ny vondrona vaovao iray miasa tanteraka. SMB работна група Работната група или доменот на Windows чиј што член е кориÑникот. Зада биде додаден во нова работна група кориÑникот може ќе треба да Ñе одјави и повторно да Ñе најави. SMB വരàµâ€à´•àµà´•ൠഗàµà´°àµ‚à´ªàµà´ªàµ ഉപയോകàµà´¤à´¾à´µàµ ഭാഗമായിരികàµà´•àµà´¨àµà´¨ Windows നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•ിങൠഗàµà´°àµ‚à´ªàµà´ªàµ à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ ഡൊമെയിനàµâ€. ഒരൠപàµà´¤à´¿à´¯ വരàµâ€à´•àµà´•ൠഗàµà´°àµ‚à´ªàµà´ªàµ à´•à´‚à´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´°àµâ€ അംഗീകരികàµà´•ണമെങàµà´•à´¿à´²àµâ€ ഉപയോകàµà´¤à´¾à´µàµ ലോഗൌടàµà´Ÿàµ ചെയàµà´¤àµ വീണàµà´Ÿàµà´‚ ലോഗിനàµâ€ ചെയàµà´¯àµ‡à´£àµà´Ÿà´¤à´¾à´•àµà´¨àµà´¨àµ. SMB ажлын Ñ…ÑÑÑг SMB कारà¥à¤¯à¤—ट वापरकरà¥à¤¤à¤¾ जà¥à¤¯à¤¾ कारà¥à¤¯à¤¸à¥à¤¥à¤¾à¤¨à¤¾à¤šà¤¾ किंवा विंडोज नेटवरà¥à¤•ीग करणाऱà¥à¤¯à¤¾ गटाचा भाग असेल ते सà¥à¤¥à¤¾à¤¨ à¤à¤–ादà¥à¤¯à¤¾ नवà¥à¤¯à¤¾ कारà¥à¤¯à¤—टाचा पूरà¥à¤£ उपयोग करायचा असेल तर वापर करतà¥à¤¯à¤¾à¤¨à¥‡ पà¥à¤°à¤¥à¤® पà¥à¤°à¤µà¥‡à¤¶à¤¾à¤¤à¥‚न बाहेर जावे आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤µà¥‡à¤¶ करावा. SMB-arbeidsgruppe Arbeidsgruppe eller domene brukeren er del av i Windows-nettverket. Brukeren mÃ¥ logge ut for at endringer skal tre i kraft. à¤à¤¸à¤à¤®à¤¬à¥€ (SMB) कारà¥à¤¯à¤¸à¤®à¥‚ह विणà¥à¤¡à¥‹à¤œ नेटवरà¥à¤•िङ कारà¥à¤¯à¤¸à¤®à¥‚ह वा डोमेन जà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ à¤à¤‰à¤Ÿà¤¾ अंश हो । नयाठकारà¥à¤¯à¤¸à¤®à¥‚हका लागि पूरै पà¥à¤°à¤­à¤¾à¤µ पारà¥à¤¨ पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤²à¥‡ लग आउट गरेर फेरि लगइन गरà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› । SMB-werkgroep De werkgroep of het domein van het Windows-netwerk waar de gebruiker deel van is. Om de nieuwe werkgroep volledig effectief te laten zijn moet u mogelijkerwijs een keer uitloggen en opnieuw aanmelden. SMB-arbeidsgruppe Windows-nettverk-arbeidsgruppa eller -domenet som brukaren er ein del av. For at ei ny arbeidsgruppe skal tre i kraft mÃ¥ brukaren kanskje logga av og pÃ¥. Sehlopha sa moÅ¡omo sa SMB Grop de trabalh SMB à¬à¬¸à­.à¬à¬®à­.ବି. କାରà­à¬¯à­à¬¯à¬¦à¬³ ବà­à¬¯à¬¬à¬¹à¬°à¬•ାରୀର ୱିଣà­à¬¡à­‹à¬œ କାରà­à¬¯à­à¬¯à¬¸à¬®à­‚ହ ବା ପରିସର. ନୂଆ କାରà­à¬¯à­à¬¯à¬¸à¬®à­‚ହ ସମà­à¬ªà­‚ରà­à¬£à­à¬£ ପà­à¬°à¬­à¬¾à¬¬ ଦେଖିବା ପାଇଠବà­à¬¯à¬¬à¬¹à¬°à¬•ାରୀକୠଲଗ ଆଉଟ କରି ପà­à¬£à¬¿ ଲଗଇନ କରିବାକୠପଡ଼ିପାରେ. SMB ਵਰਕਗਰà©à©±à¨ª Windows ਨੈੱਟਵਰਕ ਵਰਕਗਰà©à©±à¨ª ਜਾਂ ਡੋਮੇਨ, ਜਿਸ ਦਾ ਯੂਜ਼ਰ ਭਾਗ ਹੈ। ਇੱਕ ਨਵੇਂ ਵਰਕਗਰà©à©±à¨ª ਨੂੰ ਪੂਰੀ ਤਰਾਂ ਸਰਗਰਮ ਹੋਣ ਲਈ ਯੂਜ਼ਰ ਲਾਗਆਉਟ ਅਤੇ ਮà©à©œ ਲਾਗਇਨ ਕਰ ਸਕਦਾ ਹੈ। Grupa robocza SMB Grupa robocza Windows lub domena do której należy użytkownik. Aby nowa grupa odniosÅ‚a peÅ‚ny skutek, użytkownik może potrzebować wylogować siÄ™ i zalogować ponownie. Grupo de trabalho SMB O grupo de trabalho de rede Windows ou o domínio a que o utilizador pertence. Para que um novo grupo de trabalho tenha efeito total o utilizador poderá ter de terminar a sessão e iniciá-la novamente. Grupo de trabalho SMB O grupo de trabalho de rede Windows ou domínio do qual o usuário faz parte. Para que um grupo de trabalho tenha total efeito, o usuário pode precisar logar novamente. Grup SMB Grupul sau domeniul Windows din care face parte utilizatorul. Pentru a intra în vigoare opÈ›iunile unui nou workgroup, utilizatorul s-ar putea să trebuiască să iasă din sesiune È™i apoi să se autentifice din nou. Ð Ð°Ð±Ð¾Ñ‡Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° SMB Ð Ð°Ð±Ð¾Ñ‡Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° или домен Windows, к которым отноÑитÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒ. Чтобы изменение рабочей группы вÑтупило в Ñилу, возможно потребуетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð² ÑиÑтеме. Pracovná skupina SMB SieÅ¥ová pracovná skupina alebo doména Windows, do ktorej patrí používateľ. Aby sa nová pracovná skupina úplne prejavila, použivateľ sa možno bude musieÅ¥ odhlásiÅ¥ a prihlásiÅ¥. Delovna skupina SMB Delovna skupina ali domena omrežja Windows, katere del je uporabnik. Za uveljavitev nastavitev nove delovne skupine, se bo morda treba ponovno prijaviti. Grup pune SMB Grupi i punës i rrjetit Windows apo domain pestar i të cilit është përdoruesi. Në menyrë që grupi i ri i punës të njihet efektivisht përdoruesit do t'i duhet të shkëputet dhe të identifikohet përsëri. СМБ радна група Радна група или домен Windows мреже чији је кориÑник члан. Да би нова радна група узела маха кориÑник ће можда морати да Ñе одјави и поново пријави. СМБ радна група SMB radna grupa Radna grupa ili domen Windows mreže Äiji je korisnik Älan. Da bi nova radna grupa uzela maha korisnik će možda morati da se odjavi i ponovo prijavi. SMB-arbetsgrupp Windows-nätverksarbetsgruppen eller -domänen som användaren är del av. För att en ny arbetsgrupp ska börja gälla kan användaren behöva logga ut och in igen. SMB பணிகà¯à®´à¯ பயனர௠விணà¯à®Ÿà¯‹à®¸à¯ பிணைய பணி கà¯à®´à¯ அலà¯à®²à®¤à¯ களதà¯à®¤à®¿à®©à¯ பகà¯à®¤à®¿à®¯à®¾à®• உளà¯à®³à®¾à®°à¯. பà¯à®¤à®¿à®¯ பணிகà¯à®•à¯à®´à¯ à®®à¯à®´à¯à®µà®¤à¯à®®à¯ பணி செயà¯à®¯ பயனர௠வெளியேற வேணà¯à®Ÿà¯à®®à¯ அலà¯à®²à®¤à¯ மீணà¯à®Ÿà¯à®®à¯ உள௠அனà¯à®®à®¤à®¿ பெற வேணà¯à®Ÿà¯à®®à¯. SMB పని సమà±à°¦à°¾à°¯à°‚ వినియోగదారి భాగమà±à°—ావà±à°¨à±à°¨ విండోసౠనెటà±à°µà°°à±à°•ింగౠపనిసమూహం లేదా డొమైనà±. కొతà±à°¤ పనిసమూహం(వరà±à°•à±à°—à±à°°à±‚à°ªà±) పూరà±à°¤à°¿à°—à°¾ à°ªà±à°°à°­à°¾à°µà°¿à°¤à°‚ కావటానికి వినియోగదారి లాగà±à°…à°µà±à°Ÿà± à°…à°¯à±à°¯à°¿ లాగినౠఅవà±à°µà°µà°²à°¸à°¿à°°à°¾à°µà°šà±à°šà±. เวิร์à¸à¸à¸£à¸¸à¸› SMB เวิร์à¸à¸à¸£à¸¸à¸›à¸«à¸£à¸·à¸­à¹‚ดเมนของเครือข่ายวินโดวส์ที่ผู้ใช้อาศัยอยู่ ผู้ใช้อาจต้องออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¹à¸¥à¹‰à¸§à¹€à¸‚้าใหม่เพื่อจะเริ่มใช้เวิร์à¸à¸à¸£à¸¸à¸›à¹ƒà¸«à¸¡à¹ˆà¹„ด้ SMB çalışma gurubu Kullanıcının parçası olduÄŸu Windows aÄŸ çalışma grubu ya da etki alanı. Yeni çalışma grubunun tam olarak iÅŸlemesi için kullanıcının çıkış yapıp tekrar giriÅŸ yapması gerekebilir. Робоча група протоколу SMB Робоча група чи домен Windows, членом Ñкого Ñ” кориÑтувач. При вказуванні нової робочої групи Ð´Ð»Ñ Ð½Ð°Ð±Ñ€Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð°Ð¼Ð¸ повної Ñили кориÑтувачу може знадобитиÑÑŒ вийти з ÑенÑу та увійти знову. SMB ishchi guruhi SMB ишчи гуруҳи Nhóm làm việc SMB Nhóm làm việc chạy mạng Windows hay miá»n chứa ngưá»i dùng này. Ngưá»i dùng có lẽ cần phải đăng xuất rồi đăng nhập lại để dùng má»™t nhóm làm việc má»›i. Iqela lomsebenzi we-SMB SMB 工作组 用户所属的 Windows 网络工作组或域。为了让新工作组完全生效,用户å¯èƒ½éœ€è¦æ³¨é”€å¹¶å†æ¬¡ç™»å½•。 SMB 工作羣組 使用者所屬的 Windows 網絡羣組或網域。新的羣組å¯èƒ½è¦ç­‰ä½¿ç”¨è€…å†ç™»å…¥å¾Œæ‰èƒ½å®Œå…¨ç”Ÿæ•ˆï¼Œ SMB 工作群組 使用者所屬的 Windows 網路群組或網域。新的群組å¯èƒ½è¦ç­‰ä½¿ç”¨è€…å†ç™»å…¥å¾Œæ‰èƒ½å®Œå…¨ç”Ÿæ•ˆï¼Œ Iqembu lokusebenza SMB gnome-vfs-2.24.4/schemas/desktop_gnome_url_handlers.schemas.in0000644000175000001440000003212611334251016021416 00000000000000 /schemas/desktop/gnome/url-handlers/trash/enabled /desktop/gnome/url-handlers/trash/enabled gnome bool true Whether the specified command should handle "trash" URLs True if the command specified in the "command" key should handle "trash" URLs. /schemas/desktop/gnome/url-handlers/trash/command /desktop/gnome/url-handlers/trash/command gnome string nautilus "%s" The handler for "trash" URLs The command used to handle "trash" URLs, if enabled. /schemas/desktop/gnome/url-handlers/trash/needs_terminal /desktop/gnome/url-handlers/trash/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/ghelp/enabled /desktop/gnome/url-handlers/ghelp/enabled gnome bool true Whether the specified command should handle "ghelp" URLs True if the command specified in the "command" key should handle "ghelp" URLs. /schemas/desktop/gnome/url-handlers/ghelp/command /desktop/gnome/url-handlers/ghelp/command gnome string gnome-help "%s" The handler for "ghelp" URLs The command used to handle "ghelp" URLs, if enabled. /schemas/desktop/gnome/url-handlers/ghelp/needs_terminal /desktop/gnome/url-handlers/ghelp/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/info/enabled /desktop/gnome/url-handlers/info/enabled gnome bool true Whether the specified command should handle "info" URLs True if the command specified in the "command" key should handle "info" URLs. /schemas/desktop/gnome/url-handlers/info/command /desktop/gnome/url-handlers/info/command gnome string gnome-help "%s" The handler for "info" URLs The command used to handle "info" URLs, if enabled. /schemas/desktop/gnome/url-handlers/info/needs_terminal /desktop/gnome/url-handlers/info/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/man/enabled /desktop/gnome/url-handlers/man/enabled gnome bool true Whether the specified command should handle "man" URLs True if the command specified in the "command" key should handle "man" URLs. /schemas/desktop/gnome/url-handlers/man/command /desktop/gnome/url-handlers/man/command gnome string gnome-help "%s" The handler for "man" URLs The command used to handle "man" URLs, if enabled. /schemas/desktop/gnome/url-handlers/man/needs_terminal /desktop/gnome/url-handlers/man/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/http/enabled /desktop/gnome/url-handlers/http/enabled gnome bool true Whether the specified command should handle "http" URLs True if the command specified in the "command" key should handle "http" URLs. /schemas/desktop/gnome/url-handlers/http/command /desktop/gnome/url-handlers/http/command gnome string epiphany %s The handler for "http" URLs The command used to handle "http" URLs, if enabled. /schemas/desktop/gnome/url-handlers/http/needs_terminal /desktop/gnome/url-handlers/http/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/https/enabled /desktop/gnome/url-handlers/https/enabled gnome bool true Whether the specified command should handle "https" URLs True if the command specified in the "command" key should handle "https" URLs. /schemas/desktop/gnome/url-handlers/https/command /desktop/gnome/url-handlers/https/command gnome string epiphany %s The handler for "https" URLs The command used to handle "https" URLs, if enabled. /schemas/desktop/gnome/url-handlers/https/needs_terminal /desktop/gnome/url-handlers/https/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/mailto/enabled /desktop/gnome/url-handlers/mailto/enabled gnome bool true Whether the specified command should handle "mailto" URLs True if the command specified in the "command" key should handle "mailto" URLs. /schemas/desktop/gnome/url-handlers/mailto/command /desktop/gnome/url-handlers/mailto/command gnome string evolution %s The handler for "mailto" URLs The command used to handle "mailto" URLs, if enabled. /schemas/desktop/gnome/url-handlers/mailto/needs_terminal /desktop/gnome/url-handlers/mailto/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/aim/enabled /desktop/gnome/url-handlers/aim/enabled gnome bool true Whether the specified command should handle "aim" URLs True if the command specified in the "command" key should handle "aim" URLs. /schemas/desktop/gnome/url-handlers/aim/command /desktop/gnome/url-handlers/aim/command gnome string gaim-remote uri "%s" The handler for "aim" URLs The command used to handle "aim" URLs, if enabled. /schemas/desktop/gnome/url-handlers/aim/needs_terminal /desktop/gnome/url-handlers/aim/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/callto/enabled /desktop/gnome/url-handlers/callto/enabled gnome bool true Whether the specified command should handle "callto" URLs True if the command specified in the "command" key should handle "callto" URLs. /schemas/desktop/gnome/url-handlers/callto/command /desktop/gnome/url-handlers/callto/command gnome string gnomemeeting -c %s The handler for "callto" URLs The command used to handle "callto" URLs, if enabled. /schemas/desktop/gnome/url-handlers/callto/needs_terminal /desktop/gnome/url-handlers/callto/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. /schemas/desktop/gnome/url-handlers/h323/enabled /desktop/gnome/url-handlers/h323/enabled gnome bool true Whether the specified command should handle "h323" URLs True if the command specified in the "command" key should handle "h323" URLs. /schemas/desktop/gnome/url-handlers/h323/command /desktop/gnome/url-handlers/h323/command gnome string gnomemeeting -c %s The handler for "h323" URLs The command used to handle "h323" URLs, if enabled. /schemas/desktop/gnome/url-handlers/h323/needs_terminal /desktop/gnome/url-handlers/h323/needs_terminal gnome bool false Run the command in a terminal True if the command used to handle this type of URL should be run in a terminal. gnome-vfs-2.24.4/schemas/system_smb.schemas.in0000644000175000001440000000110011334251016016167 00000000000000 /schemas/system/smb/workgroup /system/smb/workgroup gnome-vfs string SMB workgroup The Windows networking workgroup or domain that the user is part of. In order for a new workgroup to fully take effect the user may need to log out and log back in. gnome-vfs-2.24.4/schemas/system_dns_sd.schemas0000644000175000001440000011553711450333414016301 00000000000000 /schemas/system/dns_sd/display_local /system/dns_sd/display_local gnome-vfs string merged How to display local DNS-SD service Possible values are "merged", "separate" and "disabled". كيÙية عرض خدمة DNS-SD المحلية القيم الممكنة هي "merged"ØŒ "separate"ØŒ Ùˆ "disabled". সà§à¦¥à¦¾à¦¨à§€à§Ÿ DNS-SD পৰিসেবা পà§à§°à¦¦à§°à§à¦¶à¦¨à§‡à§° পà§à§°à¦£à¦¾à¦²à§€ সমà§à¦­à¦¬ মান "merged", "separate" ও "disabled" । Cómo amosar el serviciu DNS-SD llocal Los valores dables son «merged», «separate» y «disabled». Як адлюÑтроўваць мÑÑцовую паÑлугу DNS-SD ÐœÐ°Ð³Ñ‡Ñ‹Ð¼Ñ‹Ñ Ð·Ð½Ð°Ñ‡Ñньні "merged", "separate" Ñ– "disabled". Как да Ñе показва локална уÑлуга от тип DNS-SD Възможни ÑтойноÑти Ñа „merged“, „separate“ и „disabled“. কিভাবে সà§à¦¥à¦¾à¦¨à§€à§Ÿ DNS-SD সারà§à¦­à¦¿à¦¸ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে সমà§à¦­à¦¾à¦¬à§à¦¯ মানসমূহ হচà§à¦›à§‡ "merged", "separate" à¦à¦¬à¦‚ "disabled"। সà§à¦¥à¦¾à¦¨à§€à§Ÿ DNS-SD পরিসেবা পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° পà§à¦°à¦£à¦¾à¦²à§€ সমà§à¦­à¦¬ মান "merged", "separate" ও "disabled"। Kako prikazati lokalni DNS-SD servis Moguće vrijednosti su "merged", "separate" i "disabled". Com mostrar serveis DNS-SD locals Els valors possibles són «merged», «separate» i «disabled». Com mostrar serveis DNS-SD locals Els valors possibles són «merged», «separate» i «disabled». Jak zobrazit místní službu DNS-SD Možné hodnoty jsou „merged“, „separate“ a „disabled“. Sut i ddangos gwasanaeth DNS-SD lleol Gwerthoedd posib: "merged", "separate" a "disabled". Hvordan en lokal DNS-SD-tjeneste skal vises Mulige værdier er "merged", "separate" og "disabled". Legt fest, wie der lokale DNS-SD-Dienst angezeigt werden soll Zulässige Werte: »merged«, »separate« sowie »disabled«. ཉེ་གནས་ཀྱི་ཌི་ཨེན་ཨེསི་-ཨེསི་ཌི་གི་ ཞབས་à½à½¼à½‚་བཀྲམ་སྟོན་འབད་à½à½„ས༠སྲིད་པའི་བེ་ལུསི་ "merged" "separate" དང་ "disabled" ཚུ་ཨིན༠Πως να εμφανίζεται η τοπική υπηÏεσία DNS-SD Πιθανές τιμές είναι "merged", "separate" and "disabled". ð‘ð‘ªð‘•ð‘©ð‘šð‘©ð‘¤ ð‘ð‘¨ð‘¤ð‘¿ð‘Ÿ 𑸠"merged", "separate" 𑯠"disabled". How to display local DNS-SD service Possible values are "merged", "separate" and "disabled". How to display local DNS-SD service Possible values are "merged", "separate" and "disabled". Cómo mostrar el servicio DNS-SD local Los valores posibles son "merged" (mezclar), "separate" (separar) y "disabled" (desactivado). Kuidas kuvada kohalikku DNS-SD teenust Võimalikud väärtused on "kokkupandud", "eraldatud" ja "keelatud". DNS-SD zerbitzua bistaratzeko modua Balio erabilgarriak "merged", "separate" eta "disabled" dira. Miten paikallinen DNS-SD-palvelu näkyy Mahdollisia arvoja ovat â€merged†(yhdessä), â€separate†(erillinen) ja â€disabled†(ei käytössä). La manière d'afficher le service DNS-SD local Les valeurs possibles sont « merged » (fusionné), « separate » (séparé) et « disabled » (désactivé). Como mostrar o servizo DNS-SD local Os valores posíbeis son "merged", "separate" e "disabled". કેવી રીતે સà«àª¥àª¾àª¨àª¿àª• DNS-SD સેવા પà«àª°àª¦àª°à«àª¶àª¿àª¤ કરવી "ભેગà«àª‚ થયેલ", "અલગ" અને "નિષà«àª•à«àª°àª¿àª¯" શકà«àª¯ કિંમતો છે. How to display local DNS-SD service Possible values are "merged", "separate" and "disabled". सà¥à¤¥à¤¾à¤¨à¥€à¤¯ DNS-SD सेवा कैसे दिखानी है संभावित मान हैं "merged", "separate" और "disabled". Kako prikazati lokalne DNS-SD usluge Ispravne vrijednosti su "spojeno", "odvojeno" i "onemogućeno". Hogyan jelenítse meg a helyi DNS-SD szolgáltatást Lehetséges értékek: „mergedâ€, „separate†és „disabledâ€. Cara menampilkan layanan DNS-SD lokal Nilai yang mungkin adalah "merged", "separated", dan "disabled". Visualizzazione del servizio DNS-SD locale Valori ammessi sono "merged", "separate" e "disabled". ローカル㮠DNS-SD サービスã®è¡¨ç¤ºæ–¹æ³• 設定å¯èƒ½ãªå€¤: "merged"ã€"separate"ã€"disabled" რáƒáƒ’áƒáƒ  იქნებრნáƒáƒ©áƒ•ენები ლáƒáƒ™áƒáƒšáƒ£áƒ áƒ˜ DNS-SD მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბრშესáƒáƒ«áƒšáƒ მნიშვნელáƒáƒ‘ებირ"merged" ("შერწყმული"), "separate" ("დáƒáƒ§áƒáƒ¤áƒ˜áƒšáƒ˜") დრ"disabled" ("áƒáƒ›áƒáƒ áƒ—ული"). ಸà³à²¥à²³à³€à²¯ DNS-SD ಸೇವೆಯನà³à²¨à³ ಹೇಗೆ ತೋರಿಸಬೇಕೠಸಾಧà³à²¯à²µà²¿à²°à³à²µ ಮೌಲà³à²¯à²—ಳೠ"ಒಗà³à²—ೂಡಿಸಲಾದ", "ಪà³à²°à²¤à³à²¯à³‡à²•" ಹಾಗೠ"ಅಶಕà³à²¤à²—ೊಂಡ" ಆಗಿರà³à²¤à³à²¤à²µà³†. 로컬 DNS-SD 서비스를 표시하는 법 쓸 수 있는 ê°’ì€ "merged", "separated" ë° "disabled"입니다. Kaip rodyti vietinÄ™ DNS-SD paslaugÄ… Galimos reikÅ¡mÄ—s yra „merged“, „separate“ ir „disabled“. KÄ attÄ“lot vietÄ“jo DNS-SD servisu IespÄ“jamÄs vÄ“rtÄ«bas ir "merged", "separate" un "disabled". सà¥à¤¥à¤¾à¤¨à¥€à¤¯ DNS-SD सेवा कहिना देखाà¤à¤¨à¤¾à¤‡ अछि संभावित मान अछि "merged", "separate" आओर "disabled". Ny fomba fanehoana sampan'asa DNS-SD "merged", "separate" ary "disabled" no sanda mety ampiasaina. Како да ги прикаже локалните DNS-SD ÑервиÑи Можни вредноÑти Ñе "припоено", "одделено" и "иÑкулучено". ലോകàµà´•à´²àµâ€ DNS-SD സേവനം à´Žà´™àµà´™à´¨àµ† à´ªàµà´°à´¦à´°àµâ€à´¶à´¿à´ªàµà´ªà´¿à´•àµà´•ണം à´Žà´¨àµà´¨àµ "യോജിചàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ", "വേരàµâ€à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ", "à´…à´ªàµà´°à´¾à´ªàµà´¯à´®à´¾à´¯" à´Žà´¨àµà´¨à´¿à´µà´¯à´¾à´£àµ സാധàµà´¯à´®à´¾à´¯ മൂലàµà´²àµà´¯à´™àµà´™à´³àµâ€. Яаж локал DNS-SD ÑервиÑийг харуулах Ð²Ñ Ð‘Ð¾Ð»Ð¾Ð¼Ð¶Ð¸Ñ‚ утгууд "merged", "separate" ба "disabled". सà¥à¤¥à¤¾à¤¨à¥€à¤• DNS-SD सेवा कसे दरà¥à¤¶à¤µà¤¾à¤¯à¤šà¥‡ संभावà¥à¤¯ मूलà¥à¤¯à¥‡ "विलीन", "विभाजीत" आणि "अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤" अशी आहेत. Hvordan vises lokale DNS-SD-tjenester Mulige verdier er «merged», «separate» og «disabled». सà¥à¤¥à¤¾à¤¨à¥€à¤¯ DNS-SD सेवा कसरी पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨ गरà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› समà¥à¤­à¤¾à¤µà¤¿à¤¤ मान "गाभिà¤à¤•ा", "विभाजन" र "अकà¥à¤·à¤®" हà¥à¤¨à¥ । Hoe een lokale DNS-SD service wordt weergegeven Mogelijke waarden zijn "merged", "separate" en "disabled". Korleis lokal DNS-SD-teneste skal visast Moglege verdiar er «merged», «separate» og «disabled». Kamoo o ka bonagatÅ¡ago tirelo ya mo gae ya DNS-SD Boleng bjo ke "merged", "separate" le "disabled". ସà­à¬¥à¬¾à¬¨à­€à­Ÿ ଡି.à¬à¬¨à­.à¬à¬¸à­.-à¬à¬¸à­.ଡି. ସେବାକୠକିପରି ପà­à¬°à¬¦à¬°à­à¬¶à¬¿à¬¤ କରାଯିବ ସମà­à¬­à¬¬ ମୂଲà­à¬¯à¬—à­à¬¡à¬¿à¬¼à¬• ହେଲା "merged", "separate" ଓ "disabled". ਲੋਕਲ DNS-SD ਸਰਵਿਸ ਨੂੰ ਕਿਵੇਂ ਵੇਖਾਉਣਾ ਹੈ ਸੰਭਵ ਮà©à©±à¨² ਹਨ "merged (ਰਲਵੇਂ)", "separate(ਵੱਖਰੇ)" ਅਤੇ "disabled(ਆਯੋਗ)" Sposób wyÅ›wietlania lokalnych usÅ‚ug DNS-SD Dopuszczalne wartoÅ›ci to "merged" (połączone), "separate" (oddzielne) oraz "disabled" (wyłączone). Como apresentar o serviço DNS-SD local Valores possíveis são "merged", "separate" e "disabled". Como exibir o serviço DNS-SD local Valores possíveis são "merged" (junto), "separate" (à parte) e "disabled" (desabilitado). Modalitatea de afiÈ™are a serviciului local dns-sd Valori posibile: „mergedâ€, „separate†și „disabledâ€. Как отображать локальный ÑÐµÑ€Ð²Ð¸Ñ Ñ‚Ð¸Ð¿Ð° DNS-SD Возможные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ "merged" ("ÑовмеÑтные"), "separate" ("раздельные") и "disabled" ("отключено"). Ako sa má zobraziÅ¥ miestna služba DNS-SD Prípustné hodnoty sú "merged", "separate" a "disabled". Kako naj se prikaže krajevna storitev DNS-SD MogoÄe vrednosti so "združeno", "loÄeno" in "onemogoÄeno". Si duhet shfaqur shërbimi lokal DNS-SD Vlerat e mundshme janë "merged", "separate" dhe "disabled". Како да приказује локалну DNS-SD уÑлугу Допуштене вредноÑти Ñу „merged“ (Ñпојено), „separate“ (раздвојено) и „disabled“ (иÑкључено). Kako da prikazuje lokalnu DNS-SD uslugu DopuÅ¡tene vrednosti su „merged“ (spojeno), „separate“ (razdvojeno) i „disabled“ (iskljuÄeno). Hur den lokala DNS-SD-tjänsten ska visas Möjliga värden är "merged", "separate" och "disabled". உள௠DNS-SD சேவையை காடà¯à®Ÿà¯à®µà®¤à¯ எபà¯à®ªà®Ÿà®¿ இயனà¯à®± மதிபà¯à®ªà¯à®•ள௠"merged", "separate" மறà¯à®±à¯à®®à¯ "disabled". à°¸à±à°¥à°¾à°¨à°¿à°• DNS-SD సేవ ఎలా à°ªà±à°°à°¦à°°à±à°¶à°¿à°‚చాలి సాధà±à°¯à°®à±ˆà°¨ విలà±à°µà°²à± ఉనà±à°¨à°µà°¿ "à°®à±à°‚చబడినది", "వేరà±à°šà±‡à°¯à±" మరియౠ"నిరà±à°ªà°¯à±‹à°—à°®à±". วิธีà¹à¸ªà¸”งผลบริà¸à¸²à¸£ DNS-SD ในเครือข่ายท้องถิ่น ค่าที่เป็นไปได้คือ "merged", "separate" à¹à¸¥à¸° "disabled" Yerel DNS-SD servislerinin nasıl gösterileceÄŸi Geçerli deÄŸerler, "merged" (birleÅŸik), "separate" (ayrık) ve "disabled" (kapalı)'dir. Як відображати локальну Ñлужбу DNS-SD Можливими значеннÑми Ñ” "merged", "separate" and "disabled". Cách hiển thị dịch vụ DNS-SD cục bá»™ Giá trị có thể là: • merged — đã phối hợp. • separate — riêng, • disabled — đã tắt. Uyibonisa njani inkonzo efikeleleka ngqo ye-DNS-SD Amaxabiso anokubakhona ngala "merged", "separate" kunye "disabled". 如何显示本地 DNS-SD æœåŠ¡ å¯ä¾›é€‰æ‹©çš„值有“mergedâ€ã€â€œseparateâ€å’Œâ€œdisabledâ€ã€‚ 如何顯示本地端的 DNS-SD æœå‹™ å¯èƒ½å€¼ç‚ºâ€œmergedâ€,“separateâ€ä»¥åŠâ€œdisabledâ€ã€‚ 如何顯示本地端的 DNS-SD æœå‹™ å¯èƒ½å€¼ç‚ºâ€œmergedâ€,“separateâ€ä»¥åŠâ€œdisabledâ€ã€‚ Utshengisa kanjani izisebenzisi zei-DNS-SD zasendaweni Amanani anganzeka ilawa "hlangana", "hlukene" kanye "khininda". /schemas/system/dns_sd/extra_domains /system/dns_sd/extra_domains gnome-vfs string Extra domains to look for DNS-SD services in Comma separated list of DNS-SD domains that should be visible in the "network:///" location. نطاقات زيادة للبحث ÙÙŠ داخلها عن خدمات DNS-SD قائمة -Ù…ÙØµÙˆÙ„Ø© Ø¨ÙØ§ØµÙ„Ø©- بنطاقات DNS-SD التي ستكون مرئيّة ÙÙŠ موقع "network:///". DNS-SD পৰিসেবাৰ জনà§à¦¯ অতিৰিকà§à¦¤ ডোমেইন অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ কৰা হবে "network:///" location'ত পà§à§°à¦¦à§°à§à¦¶à¦¨à¦¯à§‹à¦—à§à¦¯ DNS-SD'à§° তালিকা, কমা চিহà§à¦¨ দà§à¦¬à¦¾à§°à¦¾ বিভাজিত Dominios adicionales nos que buscar servicios DNS-SD Llista separtada por comes de dominios DNS-SD que tendríen de ser adicables nel llugar «network:///». Ð”Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñ‹Ñ Ð¼Ð°Ñ‘Ð½Ñ‚ÐºÑ– Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ паÑлуг DNS-SD Падзелены коÑкамі ÑÑŒÐ¿Ñ–Ñ Ð¼Ð°Ñ‘Ð½Ñ‚ÐºÐ°Ñž dns-sd, ÑÐºÑ–Ñ Ð¼ÑƒÑÑць быць бачны Ñž Ñеткавым аÑÑродзьдзі. Допълнителни домейни, в които да Ñе търÑÑÑ‚ уÑлуги от тип DNS-SD СпиÑък от домейни тип DNS-SD, разделени ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ð¸, които трÑбва да Ñа видими в меÑтоположението „network:///“. DNS-SD সারà§à¦­à¦¿à¦¸ খোà¦à¦œà¦¾à¦° জনà§à¦¯ অতিরিকà§à¦¤ ডোমেইন DNS-SD ডোমেইনের কমা দà§à¦¬à¦¾à¦°à¦¾ পৃথককৃত তালিকা যা "network:///" অবসà§à¦¥à¦¾à¦¨à§‡ দৃশà§à¦¯à¦®à¦¾à¦¨ হওয়া উচিত। DNS-SD পরিসেবার জনà§à¦¯ অতিরিকà§à¦¤ ডোমেইন অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করা হবে "network:///" location'র মধà§à¦¯à§‡ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à¦¯à§‹à¦—à§à¦¯ DNS-SD'র তালিকা, কমা চিহà§à¦¨ দà§à¦¬à¦¾à¦°à¦¾ বিভাজিত Dominis extra dins dels quals cercar serveis DNS-SD Llista separada per comes de dominis DNS-SD que haurien de ser visibles a la ubicació «network:///». Dominis extra dins dels quals cercar serveis DNS-SD Llista separada per comes de dominis DNS-SD que haurien de ser visibles a la ubicació «network:///». Další domény, ve kterých se mají hledat služby DNS-SD Čárkami oddÄ›lený seznam domén DNS-SD, které by mÄ›ly být viditelné v umístÄ›ní „network:///“. Parthau ychwanegol i chwilio am wasanaethau DNS-SD ynddynt Rhestr o barthau DNS-SD, wedi'u gwahanu gan gomáu, a ddylai fod yn weladwy yn y lleoliad "network:///". Ekstra domæner til at kigge efter DNS-SD-tjenester i Komma-adskilt liste af DNS-SD-domæner som skal være synlige i "network:///"-stedet. Zusätzlich nach DNS-SD-Diensten zu durchsuchende Domänen Durch Kommata unterteilte Liste der DNS-SD-Domänen, die am Netzwerk-Speicherort »network:///« angezeigt werden sollen. ཌི་ཨེན་ཨེསི་-ཨེསི་ཌི་གི་ ཞབས་à½à½¼à½‚་བལྟ་ནིའི་དོན་ལུ་ ཌོ་མེན་à½à½ºà½–ས༠"network:///" གནས་à½à½¼à½„ས་ནང་ མà½à½¼à½„་དགོ་པའི་ ལྷོོད་རྟགས་ཀྱིས་ སོ་སོ་དབྱེ་མི་ ཌི་ཨེན་ཨེསི་-ཨེསི་ཌི་ཌོ་མེན༠ΕπιπÏόσθετοι τομείς για αναζήτηση υπηÏεσιών dns-sd Λίστα διαχωÏισμένη με κόμμα από τομείς dns-sd που θα Ï€Ïέπει να είναι οÏατοί στην τοποθεσία "network:///" Extra domains in which to look for DNS-SD services Comma-separated list of DNS-SD domains that should be visible in the "network:///" location. Extra domains to look for DNS-SD services in Comma separated list of DNS-SD domains that should be visible in the "network:///" location. Dominios adicionales en los que buscar servicios DNS-SD Lista separada por comas de dominios DNS-SD que deberían ser visibles en el lugar "network:///". Lisadomeenid DNS-SD teenuste otsimiseks Komadega eraldatud rida DNS-SD domeenidest, mis peaksid olema nähtavad võrgukohas "network:///". Domeinu gehigarriak DNS-SD zerbitzuetan bilatzeko Komaz bereiztutako DNS-SD domeinuen zerrenda, "network:///" helbidean ikusgai izango dena. Lisäverkkoalueet, joilta etsiä DNS-SD-palveluja Pilkuilla eroteltu luettelo DNS-SD-verkkoalueista, jotka näkyvät sijainnissa â€network:///â€. Domaines supplémentaire dans lesquels chercher des services DNS-SD Liste des domaines DNS-SD séparés par une virgule qui doivent être visible dans l'emplacement « network:/// ». Dominios adicionais onde buscar servizos DNS-SD Lista separada por comas dos dominios DNS-SD que deben ser visíbeis na localización "network:///". DNS-SD સેવાઓ માટે જોવા માટે વધારાના ડોમેઈનો અલà«àªªàªµàª¿àª°àª¾àª®àª¥à«€ અલગ પાડેલ DNS-SD ડોમેઈનોની યાદી કે જે "network:///" સà«àª¥àª¾àª¨àª®àª¾àª‚ દà«àª°àª¶à«àª¯àª®àª¾àª¨ હોવà«àª‚ જોઈàª. Extra domains to look for DNS-SD services in Comma separated list of DNS-SD domains that should be visible in the "network:///" location. DNS-SD सेवा में देखने के लिये अतिरिकà¥à¤¤ डोमेन DNS-SD डोमेन के कोमा से अलग सूची जिसे "network:///" सà¥à¤¥à¤¾à¤¨ में दृशà¥à¤¯ होना चाहिये. Dodatne domene u kojima se traže DNS-SD usluge Zarezima odvojena lista DNS-SD domena koje trebaju biti vidljive u "network:///" lokaciji. Extra tartományok a DNS-SD szolgáltatások kereséséhez A „network:///†helyen látható DNS-SD tartományok vesszÅ‘vel elválasztott listája. Domain ekstra untuk mencari layanan DNS-SD Daftar domain DNS-SD (dipisahkan koma) yang akan ditampilkan pada lokasi "network:///". Domini aggiuntivi da interrogare per servizi DNS-SD Elenco separato da virgole di domini DNS-SD che dovrebbero essere visibili nella posizione "network:///". DNS-SD ã‚µãƒ¼ãƒ“ã‚¹ã§æ¤œç´¢ã™ã‚‹è¿½åŠ ãƒ‰ãƒ¡ã‚¤ãƒ³ コンマ (,) ã§åŒºåˆ‡ã£ãŸ DNS-SD ã®ãƒªã‚¹ãƒˆã§ã€"network:///" ã®ä¸­ã«è¡¨ç¤ºã•れã¾ã™ã€‚ დáƒáƒ›áƒáƒ¢áƒ”ბითი დáƒáƒ›áƒ”ნები DNS-SD მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბის მáƒáƒ¡áƒáƒ«áƒ”ბნáƒáƒ“ მძიმით გáƒáƒ›áƒáƒ§áƒáƒ¤áƒ˜áƒšáƒ˜ DNS-SD დáƒáƒ›áƒ”ნები, რáƒáƒ›áƒšáƒ”ბიც უნდრჩáƒáƒœáƒ“ეს "network:///" მისáƒáƒ›áƒáƒ áƒ—ზე. DNS-SD ಸೇವೆಗಳನà³à²¨à³ ಹà³à²¡à³à²•ಬೇಕಿರà³à²µ ಹೆಚà³à²šà²¿à²¨ ಘಟಕಗಳೠ"network:///" ಸà³à²¥à²³à²¦à²²à³à²²à²¿ ಕಾಣಿಸಬೇಕಿರà³à²µ ಅರà³à²§à²µà²¿à²°à²¾à²® ಚಿಹà³à²¨à³†à²µà²¨à³à²¨à³ ಹೊಂದಿರà³à²µ DNS-SD ಕà³à²·à³‡à²¤à³à²°à²—ಳ ಪಟà³à²Ÿà²¿. DNS-SD 서비스를 찾아볼 추가 ë„ë©”ì¸ "network:///" 위치ì—서 보여야 하는 DNS-SD ë„ë©”ì¸ë“¤ì˜ 쉼표로 구분한 목ë¡. Papildomos sritys, kuriose ieÅ¡koti DNS-SD paslaugų Kableliu atskirtų DNS-SD sriÄių, kurios turÄ—tų bÅ«ti matomos „network:///“ vietoje, sÄ…raÅ¡as. Papildus domÄ“ni, DNS-SD servisu meklēšanai Komata atdalÄ«ts DNS-SD domÄ“nu saraksts, ko vajadzÄ“tu redzÄ“t Å¡eit: "network:///". DNS-SD सेवामे देखबाक लेल अतिरिकà¥à¤¤ डोमेन DNS-SD डोमेन क' कोमा सठअलग सूची जकरा "network:///" सà¥à¤¥à¤¾à¤¨à¤®à¥‡ दृशà¥à¤¯ होनाइ चाही. Domena fanampiny hitadiavana sampan'asa DNS-SD Domena DNS-SD saraham-paingo izay tokony ho hita ao amin'ny "network:///". ЕкÑтра домени за пребарување на DNS-SD ÑервиÑи ЛиÑта разделена Ñо запирки од DNS-SD домените кои што би требало да Ñе видливи на локацијата „network:///“. DNS-SD സേവനങàµà´™à´³àµâ€ തിരയàµà´¨àµà´¨à´¤à´¿à´¨àµà´³à´³ അധികമായ ഡൊമെയിനàµà´•à´³àµâ€ "നെറàµà´±àµâ€à´µà´°àµâ€à´•àµà´•àµ:///" à´¸àµà´¥à´¾à´¨à´¤àµà´¤àµ ദൃശàµà´¯à´®à´¾à´¯à´¿à´°à´¿à´•àµà´•േണàµà´Ÿ കോമാ ഉപയോഗിചàµà´šàµ വേരàµâ€à´¤à´¿à´°à´¿à´šàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ DNS-SD ഡൊമെയിനàµà´•à´³àµâ€. DNS-SD सेवांकरीता पहाचे ते अगाऊ कà¥à¤·à¥‡à¤¤à¥à¤° "network:///" सà¥à¤¥à¤¾à¤¨à¤¾à¤µà¤° दिसणà¥à¤¯à¤¾à¤¯à¥‹à¤—à¥à¤¯ अलà¥à¤ªà¤µà¤¿à¤°à¤¾à¤®à¤¦à¥à¤µà¤¾à¤°à¤¾ वेगळी केलेली DNS-SD कà¥à¤·à¥‡à¤¤à¥à¤°. Ekstra domener som skal sjekkes for DNS-SD-tjenester Kommaseparert liste med DNS-SD-domener som skal være synlige i lokasjonen «network:///». यस भितà¥à¤° DNS-SD सेवा खोजà¥à¤¨à¤•ा लागि अतिरिकà¥à¤¤ डोमेन अलà¥à¤ªà¤µà¤¿à¤°à¤¾à¤®à¤²à¥‡ DNS-SD डोमेनको सूची विभाजन गरà¥à¤¦à¤› जà¥à¤¨ "network:///" सà¥à¤¥à¤¾à¤¨à¤®à¤¾ देखिने हà¥à¤¨à¥à¤ªà¤°à¥à¤¦à¤› । Extra domeinen waarin naar DNS-SD services wordt gezocht Een door komma's gescheiden lijst met DNS-SD domeinen die zichtbaar behoren te zijn in de locatie "netwerk:///". Ekstra domener det skal sjÃ¥ast etter DNS-SD-tenester i Kommadelt liste over DNS-SD-domener som skal vera synlege i nettverksplasseringa. ଡି.à¬à¬¨à­.à¬à¬¸à­-à¬à¬¸à­.ଡି ସେବା ଖୋଜି ପାଇବା ପାଇଠଅଧିକ ପରିସର କମା ଦà­à¬¬à¬¾à¬°à¬¾ ବିଭାଜିତ ଡି.à¬à¬¨à­.à¬à¬¸à­-à¬à¬¸à­.ଡି ପରିସରର ଯାହାକି "network:///" ଅବସà­à¬¥à¬¾à¬¨à¬°à­‡ ଦà­à¬°à­à¬¶à­à¬¯à¬®à¬¾à¬¨ ହେବା ଉଚିତ. ਇਸ ਵਿੱਚ DNS-SD ਸਰਵਿਸਾਂ ਦੀ ਖੋਜ ਲਈ ਹੋਰ ਡੋਮੇਨਾਂ DNS-SD ਡੋਮੇਨਾਂ ਦੀ ਕਾਮਿਆਂ ਨਾਲ ਵੱਖ ਕੀਤੀ ਸੂਚੀ, ਜੋ ਕਿ "network:///" ਟਿਕਾਣੇ ਉੱਤੇ ਵਿਖਾਈ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ। Dodatkowe domeny do wyszukiwania usÅ‚ug DNS-SD Lista oddzielonych przecinkami domen DNS-SD, które powinny być widoczne w poÅ‚ożeniu "network:///". Domínios adicionais onde procurar serviços DNS-SD Lista separada por vírgulas de domínios DNS-SD que deverão ser visíveis na localização de rede "network:///". Domínios extras para procurar por serviços DNS-SD Lista separada por vírgulas de domínios DNS-SD que devem ser visíveis na localização "network:///". Domenii în plus de verificat pentru servicii DNS-SD Listă separată prin virgule de domenii DNS-SD ce ar trebui să fie vizibile în locaÈ›ia „network:///â€. Дополнительные домены, в которых оÑущеÑтвлÑть поиÑк ÑервиÑов типа DNS-SD Разделённый запÑтыми ÑпиÑок доменов типа DNS-SD, которые должны быть видимы по адреÑу "network:///". ÄŽalÅ¡ie domény, v ktorých sa majú hľadaÅ¥ služby DNS-SD ÄŒiarkou oddelený zoznam DNS-SD domén, ktoré majú byÅ¥ viditeľné v umiestnení "network:///". Dodatne domene za iskanje storitev DNS-SD Z vejico loÄen seznam domen DNS-SD, ki naj bodo vidne na mestu "network:///". Domain-e të tjerë që duhen kontrolluar për shërbimet DNS-SD Lista e domain-eve DNS-SD, të ndarë me presje, që do të jenë të dukshëm tek pozicioni i rrjetit "network:///". ДопунÑки домени на којима да тражи DNS-SD уÑлуге Запетом раздвојен ÑпиÑак DNS-SD домена који Ñу доÑтупни на путањи „network:///. Dopunski domeni na kojima da traži DNS-SD usluge Zapetom razdvojen spisak DNS-SD domena koji su dostupni na putanji „network:///. Extra domäner som dns-sd-tjänster ska sökas i Kommaseparerad lista med dns-sd-domäner som ska synas pÃ¥ platsen "network:///". DNS-SD சேவைகளà¯à®•à¯à®•௠கூடà¯à®¤à®²à¯ களஙà¯à®•ள௠DNS-SD களஙà¯à®•ளின௠காலà¯à®ªà¯à®³à¯à®³à®¿à®¯à®¾à®²à¯ பிரிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿ படà¯à®Ÿà®¿à®¯à®²à¯ "network:///" இடதà¯à®¤à®¿à®²à¯ தெரிய வேணà¯à®Ÿà¯à®®à¯. DNS-SD సేవలలో అధికమైన అధికారకà±à°·à±‡à°¤à±à°°à°¾à°²à°•ౠచూచà±à°Ÿ కొరకౠDNS-SD డొమైనà±à°²à°¯à±Šà°•à±à°• కామాతో విభజించిన జాబితా "network:///" à°¸à±à°¥à°¾à°¨à°®à±à°¨à°‚దౠకనిపించాలి. โดเมนเพิ่มเติมที่จะมองหาบริà¸à¸²à¸£ DNS-SD รายà¸à¸²à¸£à¹‚ดเมน DNS-SD (คั่นด้วยจุลภาค) ที่น่าจะมองเห็นได้ในตำà¹à¸«à¸™à¹ˆà¸‡ "network:///" İçinde DNS-SD servislerini aramak için ek alan adları "network:///" konumunda görülmesi gereken DNS-SD alan adlarının virgül ile ayırılmış listesi. Додаткові домени Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ у них Ñлужб DNS-SD Перелік розділених комою доменів DNS-SD, Ñкі повинні бути видимими за адреÑою "network:///". Những miá»n thêm nÆ¡i cần tìm dịch vụ DNS-SD Danh sách các miá»n DNS-SD, định giá»›i bằng dấu phẩy, nên được hiển thị trong địa Ä‘iểm « network:// ». DNS-SD æœåŠ¡åº”æŸ¥é˜…çš„é¢å¤–域 以逗å·åˆ†éš”çš„ DNS-SD 域列表,这些域将出现在“network:///â€ä½ç½®ä¸­ã€‚ 找尋 DNS-SD æœå‹™çš„é¡å¤–網域 在“network:///â€ä½ç½®ä¸­é¡¯ç¤ºçš„ DNS-SD 網域清單,以逗號隔開。 找尋 DNS-SD æœå‹™çš„é¡å¤–網域 在“network:///â€ä½ç½®ä¸­é¡¯ç¤ºçš„ DNS-SD 網域清單,以逗號隔開。 gnome-vfs-2.24.4/schemas/system_http_proxy.schemas.in0000644000175000001440000001440411334251016017641 00000000000000 /schemas/system/http_proxy/use_http_proxy /system/http_proxy/use_http_proxy gnome-vfs bool false Use HTTP proxy Enables the proxy settings when accessing HTTP over the Internet. /schemas/system/http_proxy/host /system/http_proxy/host gnome-vfs string HTTP proxy host name The machine name to proxy HTTP through. /schemas/system/http_proxy/port /system/http_proxy/port gnome-vfs int 8080 HTTP proxy port The port on the machine defined by "/system/http_proxy/host" that you proxy through. /schemas/system/http_proxy/use_authentication /system/http_proxy/use_authentication gnome-vfs bool false Authenticate proxy server connections If true, then connections to the proxy server require authentication. The username/password combo is defined by "/system/http_proxy/authentication_user" and "/system/http_proxy/authentication_password". /schemas/system/http_proxy/authentication_user /system/http_proxy/authentication_user gnome-vfs string HTTP proxy username User name to pass as authentication when doing HTTP proxying. /schemas/system/http_proxy/authentication_password /system/http_proxy/authentication_password gnome-vfs string HTTP proxy password Password to pass as authentication when doing HTTP proxying. /schemas/system/http_proxy/ignore_hosts /system/http_proxy/ignore_hosts gnome-vfs list string [localhost,127.0.0.0/8] Non-proxy hosts This key contains a list of hosts which are connected to directly, rather than via the proxy (if it is active). The values can be hostnames, domains (using an initial wildcard like *.foo.com), IP host addresses (both IPv4 and IPv6) and network addresses with a netmask (something like 192.168.0.0/24). /schemas/system/proxy/mode /system/proxy/mode gnome-vfs string none Proxy configuration mode Select the proxy configuration mode. Supported values are "none", "manual", "auto". /schemas/system/proxy/secure_host /system/proxy/secure_host gnome-vfs string Secure HTTP proxy host name The machine name to proxy secure HTTP through. /schemas/system/proxy/secure_port /system/proxy/secure_port gnome-vfs int 0 Secure HTTP proxy port The port on the machine defined by "/system/proxy/secure_host" that you proxy through. /schemas/system/proxy/ftp_host /system/proxy/ftp_host gnome-vfs string FTP proxy host name The machine name to proxy FTP through. /schemas/system/proxy/ftp_port /system/proxy/ftp_port gnome-vfs int 0 FTP proxy port The port on the machine defined by "/system/proxy/ftp_host" that you proxy through. /schemas/system/proxy/socks_host /system/proxy/socks_host gnome-vfs string SOCKS proxy host name The machine name to proxy socks through. /schemas/system/proxy/socks_port /system/proxy/socks_port gnome-vfs int 0 SOCKS proxy port The port on the machine defined by "/system/proxy/socks_host" that you proxy through. /schemas/system/proxy/autoconfig_url /system/proxy/autoconfig_url gnome-vfs string Automatic proxy configuration URL URL that provides proxy configuration values. gnome-vfs-2.24.4/schemas/desktop_default_applications.schemas.in0000644000175000001440000000303111334251016021732 00000000000000 /schemas/desktop/gnome/applications/terminal/exec /desktop/gnome/applications/terminal/exec gnome-vfs string gnome-terminal Default terminal application The default terminal application to use for applications that require a terminal. /schemas/desktop/gnome/applications/terminal/exec_arg /desktop/gnome/applications/terminal/exec_arg gnome-vfs string -x Exec argument for default terminal The exec argument to use for the default terminal application. /schemas/desktop/gnome/applications/component_viewer/exec /desktop/gnome/applications/component_viewer/exec gnome-vfs string nautilus %s Default component viewer application The application to use for viewing files that require a component to view them. The parameter %s will be replaced by the file's URIs, the parameter %c will be replaced by the component IID. gnome-vfs-2.24.4/intltool-update.in0000644000175000001440000000000011450333323014060 00000000000000gnome-vfs-2.24.4/daemon/0000755000175000001440000000000011450333532011743 500000000000000gnome-vfs-2.24.4/daemon/Makefile.am0000644000175000001440000000255511334251016013723 00000000000000INCLUDES= \ $(LIBGNOMEVFS_CFLAGS) \ $(LIBGNOMEVFSDAEMON_CFLAGS) \ $(VFS_CFLAGS) \ -DDBUS_API_SUBJECT_TO_CHANGE \ -D_FILE_OFFSET_BITS=64 \ -D_BSD_SOURCE \ -D_LARGEFILE64_SOURCE \ -D_POSIX_PTHREAD_SEMANTICS \ -D_REENTRANT \ -DG_DISABLE_DEPRECATED \ -DGNOME_VFS_PREFIX=\"$(prefix)\" \ -DGNOME_VFS_DATADIR=\"$(datadir)\" \ -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ -DGNOMEVFS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" \ -DGNOME_VFS_SYSCONFDIR=\"$(sysconfdir)\"\ -DG_LOG_DOMAIN=\"libgnomevfs\" \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_srcdir)/libgnomevfs \ -I$(top_builddir)/libgnomevfs \ $(NULL) if OS_WIN32 else libexec_PROGRAMS=gnome-vfs-daemon endif gnome_vfs_daemon_LDADD = \ $(LIBGNOMEVFS_LIBS) \ $(LIBGNOMEVFSDAEMON_LIBS) \ $(top_builddir)/libgnomevfs/libgnomevfsdaemon-2.la \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la gnome_vfs_daemon_SOURCES = \ dbus-utils.c \ dbus-utils.h \ vfs-daemon.c \ daemon-connection.c \ daemon-connection.h # D-BUS service file %.service: %.service.in ../config.log sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ servicedir = $(DBUS_SERVICE_DIR) service_in_files = gnome-vfs-daemon.service.in service_DATA = gnome-vfs-daemon.service EXTRA_DIST = $(modulesconf_DATA) gnome-vfs-daemon.service.in DISTCLEANFILES = gnome-vfs-daemon.service gnome-vfs-2.24.4/daemon/Makefile.in0000644000175000001440000005560011450333332013734 00000000000000# 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@ @OS_WIN32_FALSE@libexec_PROGRAMS = gnome-vfs-daemon$(EXEEXT) subdir = daemon 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__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(servicedir)" PROGRAMS = $(libexec_PROGRAMS) am_gnome_vfs_daemon_OBJECTS = dbus-utils.$(OBJEXT) \ vfs-daemon.$(OBJEXT) daemon-connection.$(OBJEXT) gnome_vfs_daemon_OBJECTS = $(am_gnome_vfs_daemon_OBJECTS) am__DEPENDENCIES_1 = gnome_vfs_daemon_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) \ $(top_builddir)/libgnomevfs/libgnomevfsdaemon-2.la \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(gnome_vfs_daemon_SOURCES) DIST_SOURCES = $(gnome_vfs_daemon_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' DATA = $(service_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = \ $(LIBGNOMEVFS_CFLAGS) \ $(LIBGNOMEVFSDAEMON_CFLAGS) \ $(VFS_CFLAGS) \ -DDBUS_API_SUBJECT_TO_CHANGE \ -D_FILE_OFFSET_BITS=64 \ -D_BSD_SOURCE \ -D_LARGEFILE64_SOURCE \ -D_POSIX_PTHREAD_SEMANTICS \ -D_REENTRANT \ -DG_DISABLE_DEPRECATED \ -DGNOME_VFS_PREFIX=\"$(prefix)\" \ -DGNOME_VFS_DATADIR=\"$(datadir)\" \ -DGNOME_VFS_LIBDIR=\"$(libdir)\" \ -DGNOMEVFS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" \ -DGNOME_VFS_SYSCONFDIR=\"$(sysconfdir)\"\ -DG_LOG_DOMAIN=\"libgnomevfs\" \ -I$(top_srcdir) \ -I$(top_builddir) \ -I$(top_srcdir)/libgnomevfs \ -I$(top_builddir)/libgnomevfs \ $(NULL) gnome_vfs_daemon_LDADD = \ $(LIBGNOMEVFS_LIBS) \ $(LIBGNOMEVFSDAEMON_LIBS) \ $(top_builddir)/libgnomevfs/libgnomevfsdaemon-2.la \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la gnome_vfs_daemon_SOURCES = \ dbus-utils.c \ dbus-utils.h \ vfs-daemon.c \ daemon-connection.c \ daemon-connection.h servicedir = $(DBUS_SERVICE_DIR) service_in_files = gnome-vfs-daemon.service.in service_DATA = gnome-vfs-daemon.service EXTRA_DIST = $(modulesconf_DATA) gnome-vfs-daemon.service.in DISTCLEANFILES = gnome-vfs-daemon.service all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(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 daemon/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu daemon/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): install-libexecPROGRAMS: $(libexec_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)" @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ } \ ; done uninstall-libexecPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libexecdir)" && rm -f $$files clean-libexecPROGRAMS: @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list gnome-vfs-daemon$(EXEEXT): $(gnome_vfs_daemon_OBJECTS) $(gnome_vfs_daemon_DEPENDENCIES) @rm -f gnome-vfs-daemon$(EXEEXT) $(LINK) $(gnome_vfs_daemon_OBJECTS) $(gnome_vfs_daemon_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/daemon-connection.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfs-daemon.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-serviceDATA: $(service_DATA) @$(NORMAL_INSTALL) test -z "$(servicedir)" || $(MKDIR_P) "$(DESTDIR)$(servicedir)" @list='$(service_DATA)'; test -n "$(servicedir)" || 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)$(servicedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(servicedir)" || exit $$?; \ done uninstall-serviceDATA: @$(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 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(DATA) installdirs: for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(servicedir)"; 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) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-serviceDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libexecPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libexecPROGRAMS uninstall-serviceDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libexecPROGRAMS 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-html \ install-html-am install-info install-info-am \ install-libexecPROGRAMS install-man install-pdf install-pdf-am \ install-ps install-ps-am install-serviceDATA 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-libexecPROGRAMS \ uninstall-serviceDATA # D-BUS service file %.service: %.service.in ../config.log sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ # 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: gnome-vfs-2.24.4/daemon/dbus-utils.h0000644000175000001440000000504111334251016014124 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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 __DBUS_UTILS_H__ #define __DBUS_UTILS_H__ #include #include gboolean dbus_utils_message_iter_append_file_info (DBusMessageIter *iter, const GnomeVFSFileInfo *info); gboolean dbus_utils_message_append_file_info (DBusMessage *message, const GnomeVFSFileInfo *info); GnomeVFSFileInfo *dbus_utils_message_iter_get_file_info (DBusMessageIter *dict); GList * dbus_utils_message_get_file_info_list (DBusMessage *message); void dbus_utils_message_append_volume_list (DBusMessage *message, GList *volumes); void dbus_utils_message_append_drive_list (DBusMessage *message, GList *drives); void dbus_utils_message_append_volume (DBusMessage *message, GnomeVFSVolume *volume); void dbus_utils_message_append_drive (DBusMessage *message, GnomeVFSDrive *drive); void dbus_util_reply_result (DBusConnection *conn, DBusMessage *message, GnomeVFSResult result); void dbus_util_reply_id (DBusConnection *conn, DBusMessage *message, gint32 id); void dbus_util_start_track_name (DBusConnection *conn, const char *name); void dbus_util_stop_track_name (DBusConnection *conn, const char *name); #endif /* __DBUS_UTILS_H__ */ gnome-vfs-2.24.4/daemon/gnome-vfs-daemon.service.in0000644000175000001440000000012211334251016017004 00000000000000[D-BUS Service] Name=org.gnome.GnomeVFS.Daemon Exec=@libexecdir@/gnome-vfs-daemon gnome-vfs-2.24.4/daemon/daemon-connection.c0000644000175000001440000016473711334251016015446 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004-2006 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. */ #include #include #include #include #include #include #include #include #ifndef DBUS_API_SUBJECT_TO_CHANGE #define DBUS_API_SUBJECT_TO_CHANGE 1 #endif #include #include "dbus-utils.h" #include "daemon-connection.h" #define d(x) #define READDIR_CHUNK_SIZE 60 typedef struct _DaemonConnection DaemonConnection; struct _DaemonConnection { DBusConnection *conn; gint32 conn_id; GMainContext *main_context; GMainLoop *main_loop; }; typedef struct { GnomeVFSContext *context; gint32 id; gint32 conn_id; } CancellationHandle; typedef struct { DaemonConnection *last_connection; GnomeVFSDirectoryHandle *vfs_handle; gint32 id; } DirectoryHandle; typedef struct { DaemonConnection *last_connection; GnomeVFSHandle *vfs_handle; gint32 id; } FileHandle; static GStaticMutex cancellations_lock = G_STATIC_MUTEX_INIT; static GHashTable *cancellations; static GStaticMutex directory_handles_lock = G_STATIC_MUTEX_INIT; static GHashTable *directory_handles; static guint next_directory_id = 1; static GStaticMutex file_handles_lock = G_STATIC_MUTEX_INIT; static GHashTable *file_handles; static guint next_file_id = 1; static DaemonConnection * connection_new (DBusConnection *dbus_conn, gint32 conn_id); static void connection_destroy (DaemonConnection *conn); static CancellationHandle *cancellation_handle_new (gint32 cancellation_id, gint32 conn_id); static void cancellation_handle_free (CancellationHandle *handle); static CancellationHandle *connection_add_cancellation (DaemonConnection *conn, gint id); static void connection_remove_cancellation (DaemonConnection *conn, CancellationHandle *handle); static DirectoryHandle * directory_handle_new (DaemonConnection *daemon_connection, GnomeVFSDirectoryHandle *vfs_handle, gint32 handle_id); static void directory_handle_free (DirectoryHandle *handle); static DirectoryHandle * add_directory_handle (DaemonConnection *conn, GnomeVFSDirectoryHandle *vfs_handle); static void remove_directory_handle (DirectoryHandle *handle); static DirectoryHandle * get_directory_handle (DaemonConnection *conn, gint32 id); static FileHandle * file_handle_new (DaemonConnection *daemon_connection, GnomeVFSHandle *vfs_handle, gint32 handle_id); static void file_handle_free (FileHandle *handle); static FileHandle * add_file_handle (DaemonConnection *conn, GnomeVFSHandle *vfs_handle); static void remove_file_handle (FileHandle *handle); static FileHandle * get_file_handle (DaemonConnection *conn, gint32 id); static void connection_reply_ok (DaemonConnection *conn, DBusMessage *message); static void connection_reply_result (DaemonConnection *conn, DBusMessage *message, GnomeVFSResult result); static void connection_reply_id (DaemonConnection *conn, DBusMessage *message, gint32 id); static gboolean connection_check_and_reply_error (DaemonConnection *conn, DBusMessage *message, GnomeVFSResult result); static void connection_unregistered_func (DBusConnection *conn, gpointer data); static DBusHandlerResult connection_message_func (DBusConnection *conn, DBusMessage *message, gpointer data); static DBusHandlerResult connection_message_filter (DBusConnection *conn, DBusMessage *message, gpointer user_data); static gboolean get_operation_args (DBusMessage *message, gint32 *cancellation_id, DvdArgumentType first_arg_type, ...); static DBusObjectPathVTable connection_vtable = { connection_unregistered_func, connection_message_func, NULL }; static DaemonConnection * connection_new (DBusConnection *dbus_conn, gint32 conn_id) { DaemonConnection *conn; conn = g_new0 (DaemonConnection, 1); conn->conn_id = conn_id; conn->conn = dbus_conn; conn->main_context = g_main_context_new (); conn->main_loop = g_main_loop_new (conn->main_context, FALSE); if (!dbus_connection_register_object_path (dbus_conn, DVD_DAEMON_OBJECT, &connection_vtable, conn)) { g_error ("Out of memory."); } dbus_connection_add_filter (dbus_conn, connection_message_filter, conn, NULL); dbus_connection_setup_with_g_main (dbus_conn, conn->main_context); return conn; } static gpointer connection_thread_func (DaemonConnection *conn) { d(g_print ("New thread\n")); g_main_loop_run (conn->main_loop); d(g_print ("Thread done: Cleaning up\n")); connection_destroy (conn); return NULL; } void daemon_connection_setup (DBusConnection *dbus_conn, gint32 conn_id) { DaemonConnection *conn; GThread *thread; if (!dbus_connection_get_is_connected (dbus_conn)) { g_warning ("New connection is not connected."); return; } dbus_connection_ref (dbus_conn); conn = connection_new (dbus_conn, conn_id); thread = g_thread_create ((GThreadFunc)connection_thread_func, conn, FALSE, NULL); } static void connection_shutdown (DaemonConnection *conn) { g_main_loop_quit (conn->main_loop); } static gboolean directory_handle_last_conn_is (gpointer key, gpointer value, gpointer user_data) { DaemonConnection *conn = user_data; DirectoryHandle *handle = value; return handle->last_connection == conn; } static gboolean file_handle_last_conn_is (gpointer key, gpointer value, gpointer user_data) { DaemonConnection *conn = user_data; FileHandle *handle = value; return handle->last_connection == conn; } static void connection_destroy (DaemonConnection *conn) { d(g_print ("Connection destroy\n")); if (dbus_connection_get_is_connected (conn->conn)) { dbus_connection_close (conn->conn); } dbus_connection_unref (conn->conn); g_static_mutex_lock (&directory_handles_lock); if (directory_handles) { g_hash_table_foreach_remove (directory_handles, directory_handle_last_conn_is, conn); } g_static_mutex_unlock (&directory_handles_lock); g_static_mutex_lock (&file_handles_lock); if (file_handles) { g_hash_table_foreach_remove (file_handles, file_handle_last_conn_is, conn); } g_static_mutex_unlock (&file_handles_lock); g_assert (!g_main_loop_is_running (conn->main_loop)); g_main_loop_unref (conn->main_loop); g_main_context_unref (conn->main_context); g_free (conn); } static CancellationHandle * cancellation_handle_new (gint32 id, gint32 conn_id) { CancellationHandle *handle; handle = g_new0 (CancellationHandle, 1); handle->id = id; handle->conn_id = conn_id; handle->context = gnome_vfs_context_new (); return handle; } static void cancellation_handle_free (CancellationHandle *handle) { d(g_print ("Freeing cancellation handle\n")); if (handle->context) { gnome_vfs_context_free (handle->context); handle->context = NULL; } g_free (handle); } static guint cancellation_handle_hash (gconstpointer key) { const CancellationHandle *h; h = key; return h->id << 16 | h->conn_id; } static gboolean cancellation_handle_equal (gconstpointer a, gconstpointer b) { const CancellationHandle *aa, *bb; aa = a; bb = b; return aa->id == bb->id && aa->conn_id == bb->conn_id; } static CancellationHandle * connection_add_cancellation (DaemonConnection *conn, gint32 id) { CancellationHandle *handle; d(g_print ("Adding cancellation handle %d (%p)\n", id, conn)); handle = cancellation_handle_new (id, conn->conn_id); g_static_mutex_lock (&cancellations_lock); if (cancellations == NULL) { cancellations = g_hash_table_new_full (cancellation_handle_hash, cancellation_handle_equal, NULL, (GDestroyNotify) cancellation_handle_free); } g_hash_table_insert (cancellations, handle, handle); g_static_mutex_unlock (&cancellations_lock); return handle; } static void connection_remove_cancellation (DaemonConnection *conn, CancellationHandle *handle) { d(g_print ("Removing cancellation handle %d\n", handle->id)); g_static_mutex_lock (&cancellations_lock); if (!g_hash_table_remove (cancellations, handle)) { g_warning ("Could't remove cancellation."); } g_static_mutex_unlock (&cancellations_lock); } /* Note: This is called from the main thread. */ void daemon_connection_cancel (gint32 conn_id, gint32 cancellation_id) { CancellationHandle *handle, lookup; GnomeVFSCancellation *cancellation; handle = NULL; g_static_mutex_lock (&cancellations_lock); lookup.conn_id = conn_id; lookup.id = cancellation_id; if (cancellations != NULL) { handle = g_hash_table_lookup (cancellations, &lookup); } if (handle != NULL) { cancellation = gnome_vfs_context_get_cancellation (handle->context); if (cancellation) { gnome_vfs_cancellation_cancel (cancellation); } } g_static_mutex_unlock (&cancellations_lock); } /* * DirectoryHandle functions. */ static DirectoryHandle * directory_handle_new (DaemonConnection *daemon_connection, GnomeVFSDirectoryHandle *vfs_handle, gint32 handle_id) { DirectoryHandle *handle; handle = g_new0 (DirectoryHandle, 1); handle->last_connection = daemon_connection; handle->vfs_handle = vfs_handle; handle->id = handle_id; return handle; } static void directory_handle_free (DirectoryHandle *handle) { if (handle->vfs_handle) { gnome_vfs_directory_close (handle->vfs_handle); handle->vfs_handle = NULL; } g_free (handle); } static DirectoryHandle * add_directory_handle (DaemonConnection *conn, GnomeVFSDirectoryHandle *vfs_handle) { DirectoryHandle *handle; g_static_mutex_lock (&directory_handles_lock); handle = directory_handle_new (conn, vfs_handle, next_directory_id++); if (directory_handles == NULL) { directory_handles = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) directory_handle_free); } g_hash_table_insert (directory_handles, GINT_TO_POINTER (handle->id), handle); g_static_mutex_unlock (&directory_handles_lock); return handle; } static void remove_directory_handle (DirectoryHandle *handle) { g_static_mutex_lock (&directory_handles_lock); if (!g_hash_table_remove (directory_handles, GINT_TO_POINTER (handle->id))) { g_warning ("Couldn't remove directory handle %d\n", handle->id); } g_static_mutex_unlock (&directory_handles_lock); } static DirectoryHandle * get_directory_handle (DaemonConnection *conn, gint32 id) { DirectoryHandle *handle; g_static_mutex_lock (&directory_handles_lock); handle = g_hash_table_lookup (directory_handles, GINT_TO_POINTER (id)); if (handle) { handle->last_connection = conn; } g_static_mutex_unlock (&directory_handles_lock); return handle; } /* * FileHandle functions. */ static FileHandle * file_handle_new (DaemonConnection *daemon_connection, GnomeVFSHandle *vfs_handle, gint32 handle_id) { FileHandle *handle; handle = g_new0 (FileHandle, 1); handle->last_connection = daemon_connection; handle->vfs_handle = vfs_handle; handle->id = handle_id; return handle; } static void file_handle_free (FileHandle *handle) { if (handle->vfs_handle) { gnome_vfs_close (handle->vfs_handle); handle->vfs_handle = NULL; } g_free (handle); } static FileHandle * add_file_handle (DaemonConnection *conn, GnomeVFSHandle *vfs_handle) { FileHandle *handle; g_static_mutex_lock (&file_handles_lock); handle = file_handle_new (conn, vfs_handle, next_file_id++); if (file_handles == NULL) { file_handles = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) file_handle_free); } g_hash_table_insert (file_handles, GINT_TO_POINTER (handle->id), handle); g_static_mutex_unlock (&file_handles_lock); return handle; } static void remove_file_handle (FileHandle *handle) { g_static_mutex_lock (&file_handles_lock); if (!g_hash_table_remove (file_handles, GINT_TO_POINTER (handle->id))) { g_warning ("Couldn't remove file handle %d\n", handle->id); } g_static_mutex_unlock (&file_handles_lock); } static FileHandle * get_file_handle (DaemonConnection *conn, gint32 id) { FileHandle *handle; g_static_mutex_lock (&file_handles_lock); handle = g_hash_table_lookup (file_handles, GINT_TO_POINTER (id)); if (handle) { handle->last_connection = conn; } g_static_mutex_unlock (&file_handles_lock); return handle; } /* * Reply functions. */ static DBusMessage * create_reply_helper (DBusMessage *message, GnomeVFSResult result) { DBusMessage *reply; DBusMessageIter iter; gint32 i; reply = dbus_message_new_method_return (message); if (!reply) { g_error ("Out of memory"); } i = result; dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &i)) { g_error ("Out of memory"); } return reply; } static DBusMessage * connection_create_reply_ok (DBusMessage *message) { return create_reply_helper (message, GNOME_VFS_OK); } static void connection_reply_ok (DaemonConnection *conn, DBusMessage *message) { DBusMessage *reply; reply = connection_create_reply_ok (message); dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_reply_result (DaemonConnection *conn, DBusMessage *message, GnomeVFSResult result) { DBusMessage *reply; reply = create_reply_helper (message, result); dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_reply_id (DaemonConnection *conn, DBusMessage *message, gint32 id) { DBusMessage *reply; DBusMessageIter iter; reply = create_reply_helper (message, GNOME_VFS_OK); dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &id)) { g_error ("Out of memory"); } dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static gboolean connection_check_and_reply_error (DaemonConnection *conn, DBusMessage *message, GnomeVFSResult result) { if (result == GNOME_VFS_OK) { return FALSE; } d(g_print ("ERROR: %s\n", gnome_vfs_result_to_string (result))); connection_reply_result (conn, message, result); return TRUE; } /* * Daemon protocol implementation */ static void connection_handle_open (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 mode; GnomeVFSURI *uri; GnomeVFSHandle *vfs_handle; GnomeVFSResult result; FileHandle *handle; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_INT32, &mode, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_open_uri_cancellable (&vfs_handle, uri, mode, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); if (connection_check_and_reply_error (conn, message, result)) { return; } handle = add_file_handle (conn, vfs_handle); connection_reply_id (conn, message, handle->id); } static void connection_handle_create (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; gint32 mode; gboolean exclusive; gint32 perm; GnomeVFSHandle *vfs_handle; GnomeVFSResult result; FileHandle *handle; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_INT32, &mode, DVD_TYPE_BOOL, &exclusive, DVD_TYPE_INT32, &perm, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("create: %s, %d, %d, %d (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), mode, exclusive, perm, cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_create_uri_cancellable (&vfs_handle, uri, mode, exclusive, perm, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); if (connection_check_and_reply_error (conn, message, result)) { return; } handle = add_file_handle (conn, vfs_handle); connection_reply_id (conn, message, handle->id); } static void connection_handle_close (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 handle_id; GnomeVFSResult result; FileHandle *handle; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("close: %d (%d)\n", handle_id, cancellation_id)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_close_cancellable (handle->vfs_handle, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } if (connection_check_and_reply_error (conn, message, result)) { return; } /* Clear the handle so we don't close it twice. */ handle->vfs_handle = NULL; remove_file_handle (handle); connection_reply_ok (conn, message); } static void connection_handle_read (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 handle_id; guint64 num_bytes; FileHandle *handle; CancellationHandle *cancellation; GnomeVFSResult result; GnomeVFSFileSize bytes_read; DBusMessage *reply; DBusMessageIter iter; DBusMessageIter array_iter; gpointer buf; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_UINT64, &num_bytes, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("read: %d, %llu, (%d)\n", handle_id, num_bytes, cancellation_id)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } buf = g_malloc (num_bytes); gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_read_cancellable (handle->vfs_handle, buf, num_bytes, &bytes_read, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } if (connection_check_and_reply_error (conn, message, result)) { g_free (buf); return; } reply = connection_create_reply_ok (message); dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE_AS_STRING, &array_iter)) { g_error ("Out of memory"); } if (!dbus_message_iter_append_fixed_array (&array_iter, DBUS_TYPE_BYTE, &buf, bytes_read)) { g_error ("Out of memory"); } if (!dbus_message_iter_close_container (&iter, &array_iter)) { g_error ("Out of memory"); } dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); g_free (buf); } static void connection_handle_write (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 handle_id; FileHandle *handle; CancellationHandle *cancellation; GnomeVFSResult result; DBusMessage *reply; DBusMessageIter iter; unsigned char *buf; gint len; GnomeVFSFileSize bytes_written; guint64 ui64; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_BYTE_ARRAY, &buf, &len, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("write: %d, %d (%d)\n", handle_id, len, cancellation_id)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_write_cancellable (handle->vfs_handle, buf, len, &bytes_written, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } if (connection_check_and_reply_error (conn, message, result)) { return; } reply = connection_create_reply_ok (message); dbus_message_iter_init_append (reply, &iter); ui64 = bytes_written; if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT64, &ui64)) { g_error ("Out of memory"); } dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_handle_seek (DaemonConnection *conn, DBusMessage *message) { gint32 handle_id; gint32 cancellation_id; gint32 whence; gint64 offset; CancellationHandle *cancellation; FileHandle *handle; GnomeVFSResult result; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_INT32, &whence, DVD_TYPE_INT64, &offset, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("seek: %d, %d, %llu\n", handle_id, whence, offset)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_seek_cancellable (handle->vfs_handle, whence, offset, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } connection_reply_result (conn, message, result); } static void connection_handle_tell (DaemonConnection *conn, DBusMessage *message) { gint32 handle_id; FileHandle *handle; GnomeVFSResult result; GnomeVFSFileSize offset; DBusMessage *reply; DBusMessageIter iter; gint64 i64; if (!get_operation_args (message, NULL, DVD_TYPE_INT32, &handle_id, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("tell: %d\n", handle_id)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_tell (handle->vfs_handle, &offset); gnome_vfs_daemon_set_current_connection (NULL); if (connection_check_and_reply_error (conn, message, result)) { return; } reply = connection_create_reply_ok (message); dbus_message_iter_init_append (reply, &iter); i64 = offset; if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT64, &i64)) { g_error ("Out of memory"); } dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_handle_truncate_handle (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 handle_id; guint64 where; CancellationHandle *cancellation; FileHandle *handle; GnomeVFSResult result; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_UINT64, &where, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("truncate_handle: %d, %llu\n", handle_id, where)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_truncate_handle_cancellable (handle->vfs_handle, where, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } connection_reply_result (conn, message, result); } static void connection_handle_open_directory (DaemonConnection *conn, DBusMessage *message) { gint options; gint32 cancellation_id; GnomeVFSURI *uri; GnomeVFSDirectoryHandle *vfs_handle; GnomeVFSResult result; DirectoryHandle *handle; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_INT32, &options, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("open_directory: %s, %d (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), options, cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_directory_open_from_uri_cancellable (&vfs_handle, uri, options, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); if (connection_check_and_reply_error (conn, message, result)) { return; } handle = add_directory_handle (conn, vfs_handle); connection_reply_id (conn, message, handle->id); } static void connection_handle_close_directory (DaemonConnection *conn, DBusMessage *message) { gint32 handle_id; gint32 cancellation_id; DirectoryHandle *handle; GnomeVFSResult result; /* Note: We get a cancellation id but don't use it. */ if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("close_directory: %d\n", handle_id)); handle = get_directory_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_directory_close (handle->vfs_handle); gnome_vfs_daemon_set_current_connection (NULL); if (result == GNOME_VFS_OK) { /* Clear the handle so we don't close it twice. */ handle->vfs_handle = NULL; remove_directory_handle (handle); } connection_reply_result (conn, message, result); } static void connection_handle_read_directory (DaemonConnection *conn, DBusMessage *message) { gint32 handle_id; gint32 cancellation_id; DirectoryHandle *handle; DBusMessage *reply; GnomeVFSFileInfo *info; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; gint num_entries; DBusMessageIter iter; DBusMessageIter array_iter; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("read_directory: %d (%d)\n", handle_id, cancellation_id)); handle = get_directory_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } reply = connection_create_reply_ok (message); info = gnome_vfs_file_info_new (); dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, GNOME_VFS_FILE_INFO_DBUS_TYPE, &array_iter)) { g_error ("Out of memory"); } gnome_vfs_daemon_set_current_connection (conn->conn); result = GNOME_VFS_OK; num_entries = 0; while ((result = gnome_vfs_directory_read_next_cancellable (handle->vfs_handle, info, context)) == GNOME_VFS_OK) { gnome_vfs_daemon_message_iter_append_file_info (&array_iter, info); gnome_vfs_file_info_clear (info); if (context && gnome_vfs_context_check_cancellation (context)) { result = GNOME_VFS_ERROR_CANCELLED; break; } if (num_entries++ == READDIR_CHUNK_SIZE) { break; } } gnome_vfs_daemon_set_current_connection (NULL); if (!dbus_message_iter_close_container (&iter, &array_iter)) { g_error ("Out of memory"); } gnome_vfs_file_info_unref (info); if (cancellation) { connection_remove_cancellation (conn, cancellation); } if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF) { dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } else { dbus_message_unref (reply); connection_reply_result (conn, message, result); } } static void connection_handle_get_file_info (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; gint32 options; DBusMessage *reply; GnomeVFSFileInfo *info; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_INT32, &options, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("get_file_info: %s (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } info = gnome_vfs_file_info_new (); gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_get_file_info_uri_cancellable (uri, info, options, context); gnome_vfs_uri_unref (uri); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } if (connection_check_and_reply_error (conn, message, result)) { gnome_vfs_file_info_unref (info); return; } reply = connection_create_reply_ok (message); gnome_vfs_daemon_message_append_file_info (reply, info); gnome_vfs_file_info_unref (info); dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_handle_get_file_info_from_handle (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 handle_id; gint32 options; DBusMessage *reply; FileHandle *handle; CancellationHandle *cancellation; GnomeVFSFileInfo *info; GnomeVFSResult result; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_INT32, &options, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("get_file_info_from_handle: %d (%d)\n", handle_id, cancellation_id)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } info = gnome_vfs_file_info_new (); gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_get_file_info_from_handle_cancellable ( handle->vfs_handle, info, options, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } if (connection_check_and_reply_error (conn, message, result)) { gnome_vfs_file_info_unref (info); return; } reply = connection_create_reply_ok (message); gnome_vfs_daemon_message_append_file_info (reply, info); gnome_vfs_file_info_unref (info); dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_handle_is_local (DaemonConnection *conn, DBusMessage *message) { GnomeVFSURI *uri; gboolean is_local; DBusMessage *reply; DBusMessageIter iter; if (!get_operation_args (message, NULL, DVD_TYPE_URI, &uri, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("is_local: %s\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE))); gnome_vfs_daemon_set_current_connection (conn->conn); is_local = gnome_vfs_uri_is_local (uri); gnome_vfs_daemon_set_current_connection (NULL); gnome_vfs_uri_unref (uri); reply = connection_create_reply_ok (message); dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &is_local)) { g_error ("Out of memory"); } dbus_connection_send (conn->conn, reply, NULL); dbus_connection_flush (conn->conn); dbus_message_unref (reply); } static void connection_handle_make_directory (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; gint perm; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_INT32, &perm, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("make_directory: %s, %d (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), perm, cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_make_directory_for_uri_cancellable ( uri, perm, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); connection_reply_result (conn, message, result); } static void connection_handle_remove_directory (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("remove_directory: %s, (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_remove_directory_from_uri_cancellable ( uri, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); connection_reply_result (conn, message, result); } static void connection_handle_move (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *old_uri; GnomeVFSURI *new_uri; gboolean force_replace; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &old_uri, DVD_TYPE_URI, &new_uri, DVD_TYPE_BOOL, &force_replace, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("move: %s, %s %d (%d)\n", gnome_vfs_uri_to_string (old_uri, GNOME_VFS_URI_HIDE_NONE), gnome_vfs_uri_to_string (new_uri, GNOME_VFS_URI_HIDE_NONE), force_replace, cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_move_uri_cancellable (old_uri, new_uri, force_replace, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (old_uri); gnome_vfs_uri_unref (new_uri); connection_reply_result (conn, message, result); } static void connection_handle_unlink (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("unlink: %s (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_unlink_from_uri_cancellable (uri, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); connection_reply_result (conn, message, result); } static void connection_handle_check_same_fs (DaemonConnection *conn, DBusMessage *message) { gint cancellation_id; GnomeVFSURI *uri_a; GnomeVFSURI *uri_b; CancellationHandle *cancellation; gboolean is_same; GnomeVFSResult result; DBusMessage *reply; DBusMessageIter iter; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri_a, DVD_TYPE_URI, &uri_b, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("check_same_fs: %s, %s\n", gnome_vfs_uri_to_string (uri_a, GNOME_VFS_URI_HIDE_NONE), gnome_vfs_uri_to_string (uri_b, GNOME_VFS_URI_HIDE_NONE))); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_check_same_fs_uris_cancellable (uri_a, uri_b, &is_same, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri_a); gnome_vfs_uri_unref (uri_b); if (connection_check_and_reply_error (conn, message, result)) { return; } reply = connection_create_reply_ok (message); dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &is_same)) { g_error ("Out of memory"); } dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_handle_set_file_info (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; gint32 mask; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSFileInfo *info; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_FILE_INFO, &info, DVD_TYPE_INT32, &mask, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("set_file_info: %s, %d (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), mask, cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_set_file_info_cancellable (uri, info, mask, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); connection_reply_result (conn, message, result); } static void connection_handle_truncate (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; guint64 where; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_UINT64, &where, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("truncate: %s %llu (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), where, cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_truncate_uri_cancellable (uri, where, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); connection_reply_result (conn, message, result); } static void connection_handle_find_directory (DaemonConnection *conn, DBusMessage *message) { gint cancellation_id; GnomeVFSURI *uri, *result_uri; gint32 kind; gboolean create_if_needed; gboolean find_if_needed; gint32 perm; CancellationHandle *cancellation; GnomeVFSResult result; DBusMessage *reply; DBusMessageIter iter; gchar *str; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_INT32, &kind, DVD_TYPE_BOOL, &create_if_needed, DVD_TYPE_BOOL, &find_if_needed, DVD_TYPE_INT32, &perm, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("find_directory: %s\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE))); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_find_directory_cancellable (uri, kind, &result_uri, create_if_needed, find_if_needed, perm, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); if (connection_check_and_reply_error (conn, message, result)) { return; } reply = connection_create_reply_ok (message); dbus_message_iter_init_append (reply, &iter); str = gnome_vfs_uri_to_string (result_uri, GNOME_VFS_URI_HIDE_NONE); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &str)) { g_error ("Out of memory"); } g_free (str); dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_handle_create_symbolic_link (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; gchar *target; GnomeVFSResult result; CancellationHandle *cancellation; GnomeVFSContext *context; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_STRING, &target, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("create_symbolic_link: %s %s (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), target, cancellation_id)); if (cancellation_id != -1) { cancellation = connection_add_cancellation (conn, cancellation_id); context = cancellation->context; } else { cancellation = NULL; context = NULL; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_create_symbolic_link_cancellable (uri, target, context); gnome_vfs_daemon_set_current_connection (NULL); if (cancellation) { connection_remove_cancellation (conn, cancellation); } gnome_vfs_uri_unref (uri); g_free (target); connection_reply_result (conn, message, result); } static void connection_handle_forget_cache (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 handle_id; gint64 offset; guint64 size; FileHandle *handle; GnomeVFSResult result; DBusMessage *reply; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_INT32, &handle_id, DVD_TYPE_INT64, &offset, DVD_TYPE_UINT64, &size, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("forget cache: %d, %lld, %llu, (%d)\n", handle_id, offset, size, cancellation_id)); handle = get_file_handle (conn, handle_id); if (!handle) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_forget_cache (handle->vfs_handle, offset, size); gnome_vfs_daemon_set_current_connection (NULL); if (connection_check_and_reply_error (conn, message, result)) { return; } reply = connection_create_reply_ok (message); dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_handle_get_volume_free_space (DaemonConnection *conn, DBusMessage *message) { gint32 cancellation_id; GnomeVFSURI *uri; GnomeVFSResult result; GnomeVFSFileSize size; DBusMessage *reply; DBusMessageIter iter; guint64 ui64; if (!get_operation_args (message, &cancellation_id, DVD_TYPE_URI, &uri, DVD_TYPE_LAST)) { connection_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } d(g_print ("get_volume_free_space: %s (%d)\n", gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE), cancellation_id)); gnome_vfs_daemon_set_current_connection (conn->conn); result = gnome_vfs_get_volume_free_space (uri, &size); gnome_vfs_daemon_set_current_connection (NULL); gnome_vfs_uri_unref (uri); if (connection_check_and_reply_error (conn, message, result)) { return; } reply = connection_create_reply_ok (message); dbus_message_iter_init_append (reply, &iter); ui64 = size; if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT64, &ui64)) { g_error ("Out of memory"); } dbus_connection_send (conn->conn, reply, NULL); dbus_message_unref (reply); } static void connection_unregistered_func (DBusConnection *conn, gpointer data) { } #define IS_METHOD(msg,method) \ dbus_message_is_method_call(msg,DVD_DAEMON_INTERFACE,method) static DBusHandlerResult connection_message_func (DBusConnection *dbus_conn, DBusMessage *message, gpointer data) { DaemonConnection *conn; conn = data; /*g_print ("connection_message_func(): %s\n", dbus_message_get_member (message));*/ if (IS_METHOD (message, DVD_DAEMON_METHOD_OPEN)) { connection_handle_open (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_CREATE)) { connection_handle_create (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_CLOSE)) { connection_handle_close (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_READ)) { connection_handle_read (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_WRITE)) { connection_handle_write (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_SEEK)) { connection_handle_seek (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_TELL)) { connection_handle_tell (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_TRUNCATE_HANDLE)) { connection_handle_truncate_handle (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_OPEN_DIRECTORY)) { connection_handle_open_directory (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_READ_DIRECTORY)) { connection_handle_read_directory (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_CLOSE_DIRECTORY)) { connection_handle_close_directory (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_GET_FILE_INFO)) { connection_handle_get_file_info (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_GET_FILE_INFO_FROM_HANDLE)) { connection_handle_get_file_info_from_handle (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_IS_LOCAL)) { connection_handle_is_local (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_MAKE_DIRECTORY)) { connection_handle_make_directory (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_REMOVE_DIRECTORY)) { connection_handle_remove_directory (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_MOVE)) { connection_handle_move (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_UNLINK)) { connection_handle_unlink (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_CHECK_SAME_FS)) { connection_handle_check_same_fs (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_SET_FILE_INFO)) { connection_handle_set_file_info (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_TRUNCATE)) { connection_handle_truncate (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_FIND_DIRECTORY)) { connection_handle_find_directory (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_CREATE_SYMBOLIC_LINK)) { connection_handle_create_symbolic_link (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_FORGET_CACHE)) { connection_handle_forget_cache (conn, message); } else if (IS_METHOD (message, DVD_DAEMON_METHOD_GET_VOLUME_FREE_SPACE)) { connection_handle_get_volume_free_space (conn, message); } else { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } return DBUS_HANDLER_RESULT_HANDLED; } static DBusHandlerResult connection_message_filter (DBusConnection *conn, DBusMessage *message, gpointer user_data) { DaemonConnection *connection; connection = user_data; /*g_print ("connection_message_filter: %s\n", dbus_message_get_member (message));*/ if (dbus_message_is_signal (message, DBUS_INTERFACE_LOCAL, "Disconnected")) { d(g_print ("Disconnected ***\n")); connection_shutdown (connection); } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } static gboolean get_operation_args (DBusMessage *message, gint32 *cancellation_id, DvdArgumentType first_arg_type, ...) { DBusMessageIter iter; va_list args; DvdArgumentType type; gint dbus_type; gboolean has_next; dbus_message_iter_init (message, &iter); va_start (args, first_arg_type); has_next = TRUE; type = first_arg_type; while (type != DVD_TYPE_LAST) { dbus_type = dbus_message_iter_get_arg_type (&iter); switch (type) { case DVD_TYPE_URI: { GnomeVFSURI **uri; gchar *str; if (dbus_type != DBUS_TYPE_STRING) { goto fail; } uri = va_arg (args, GnomeVFSURI **); dbus_message_iter_get_basic (&iter, &str); *uri = gnome_vfs_uri_new (str); if (!*uri) { goto fail; } break; } case DVD_TYPE_STRING: { gchar *str; gchar **ret_val; if (dbus_type != DBUS_TYPE_STRING) { goto fail; } ret_val = va_arg (args, gchar **); dbus_message_iter_get_basic (&iter, &str); if (!str) { g_error ("Out of memory"); } *ret_val = g_strdup (str); break; } case DVD_TYPE_INT32: { gint32 *ret_val; if (dbus_type != DBUS_TYPE_INT32) { goto fail; } ret_val = va_arg (args, gint32 *); dbus_message_iter_get_basic (&iter, ret_val); break; } case DVD_TYPE_INT64: { gint64 *ret_val; if (dbus_type != DBUS_TYPE_INT64) { goto fail; } ret_val = va_arg (args, gint64 *); dbus_message_iter_get_basic (&iter, ret_val); break; } case DVD_TYPE_UINT64: { guint64 *ret_val; if (dbus_type != DBUS_TYPE_UINT64) { goto fail; } ret_val = va_arg (args, guint64 *); dbus_message_iter_get_basic (&iter, ret_val); break; } case DVD_TYPE_BOOL: { gboolean *ret_val; if (dbus_type != DBUS_TYPE_BOOLEAN) { goto fail; } ret_val = va_arg (args, gboolean *); dbus_message_iter_get_basic (&iter, ret_val); break; } case DVD_TYPE_FILE_INFO: { GnomeVFSFileInfo **ret_val; ret_val = va_arg (args, GnomeVFSFileInfo **); *ret_val = gnome_vfs_daemon_message_iter_get_file_info (&iter); if (!*ret_val) { goto fail; } break; } case DVD_TYPE_BYTE_ARRAY: { DBusMessageIter array_iter; unsigned char **ret_data; gint *ret_len; if (dbus_type != DBUS_TYPE_ARRAY) { goto fail; } if (dbus_message_iter_get_element_type (&iter) != DBUS_TYPE_BYTE) { goto fail; } ret_data = va_arg (args, unsigned char **); ret_len = va_arg (args, gint *); dbus_message_iter_recurse (&iter, &array_iter); dbus_message_iter_get_fixed_array (&array_iter, ret_data, ret_len); break; } case DVD_TYPE_LAST: break; } has_next = dbus_message_iter_has_next (&iter); dbus_message_iter_next (&iter); type = va_arg (args, DvdArgumentType); } va_end (args); if (cancellation_id && has_next) { if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INT32) { d(g_print ("No cancellation id (%c)\n", dbus_message_iter_get_arg_type (&iter))); /* Note: Leaks here... */ return FALSE; } dbus_message_iter_get_basic (&iter, cancellation_id); } else if (cancellation_id) { *cancellation_id = -1; } return TRUE; fail: d(g_print ("Get args: couldn't get type: %d.\n", type)); va_end (args); return FALSE; } gnome-vfs-2.24.4/daemon/vfs-daemon.c0000644000175000001440000005453711334251016014101 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004-2005 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "gnome-vfs-volume-monitor-daemon.h" #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-private.h" #include "dbus-utils.h" #include "daemon-connection.h" #define d(x) static DBusConnection * daemon_get_connection (gboolean create); static void daemon_shutdown (void); static gboolean daemon_init (void); static void daemon_unregistered_func (DBusConnection *conn, gpointer data); static DBusHandlerResult daemon_message_func (DBusConnection *conn, DBusMessage *message, gpointer data); static DBusHandlerResult dbus_filter_func (DBusConnection *connection, DBusMessage *message, void *data); static gboolean replace_daemon = FALSE; static DBusObjectPathVTable daemon_vtable = { daemon_unregistered_func, daemon_message_func, NULL }; typedef struct { gint32 conn_id; char *socket_dir; } NewConnectionData; typedef struct { char *sender; gint32 id; GnomeVFSMonitorHandle *vfs_handle; } MonitorHandle; typedef struct { char *sender; GList *active_monitors; } MonitorOwner; static GHashTable *monitors; static GHashTable *monitor_owners; static DBusConnection * daemon_get_connection (gboolean create) { static DBusConnection *conn = NULL; DBusError error; gint ret; int flags; if (conn) { return conn; } if (!create) { return NULL; } dbus_error_init (&error); conn = dbus_bus_get (DBUS_BUS_SESSION, &error); if (!conn) { g_printerr ("Failed to connect to the D-BUS daemon: %s\n", error.message); dbus_error_free (&error); return NULL; } flags = DBUS_NAME_FLAG_ALLOW_REPLACEMENT; if (replace_daemon) { flags |= DBUS_NAME_FLAG_REPLACE_EXISTING; } ret = dbus_bus_request_name (conn, DVD_DAEMON_SERVICE, flags, &error); if (dbus_error_is_set (&error)) { g_warning ("Failed to acquire vfs-daemon service: %s", error.message); dbus_error_free (&error); dbus_connection_close (conn); /* Remove this, it asserts: dbus_connection_unref (conn); */ conn = NULL; return NULL; } if (ret == DBUS_REQUEST_NAME_REPLY_EXISTS) { g_printerr ("VFS daemon already running, exiting.\n"); dbus_connection_close (conn); /* Remove this, it asserts: dbus_connection_unref (conn); */ conn = NULL; return NULL; } if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { g_printerr ("Not primary owner of the service, exiting.\n"); dbus_connection_close (conn); /* Remove this, it asserts: dbus_connection_unref (conn); */ conn = NULL; return NULL; } dbus_connection_add_filter (conn, dbus_filter_func, NULL, NULL); if (!dbus_connection_register_object_path (conn, DVD_DAEMON_OBJECT, &daemon_vtable, NULL)) { g_printerr ("Failed to register object with D-BUS.\n"); dbus_connection_close (conn); dbus_connection_unref (conn); conn = NULL; return NULL; } dbus_connection_setup_with_g_main (conn, NULL); return conn; } static gboolean daemon_init (void) { return daemon_get_connection (TRUE) != NULL; } static void daemon_shutdown (void) { DBusConnection *conn; conn = daemon_get_connection (FALSE); if (!conn) { return; } dbus_connection_close (conn); dbus_connection_unref (conn); } static void daemon_unregistered_func (DBusConnection *conn, gpointer data) { } static void new_connection_data_free (void *memory) { NewConnectionData *data; data = memory; g_free (data->socket_dir); g_free (data); } static void daemon_new_connection_func (DBusServer *server, DBusConnection *conn, gpointer user_data) { gint32 conn_id; NewConnectionData *data; data = user_data; conn_id = data->conn_id; /* Kill the server, no more need for it */ dbus_server_disconnect (server); dbus_server_unref (server); /* Remove the socket and dir after connected */ if (data->socket_dir) { rmdir (data->socket_dir); } d(g_print ("Got a new connection, id %d\n", conn_id)); daemon_connection_setup (conn, conn_id); } #ifdef __linux__ #define USE_ABSTRACT_SOCKETS #endif #ifndef USE_ABSTRACT_SOCKETS static gboolean test_safe_socket_dir (const char *dirname) { struct stat statbuf; if (g_stat (dirname, &statbuf) != 0) { return FALSE; } #ifndef G_PLATFORM_WIN32 if (statbuf.st_uid != getuid ()) { return FALSE; } if ((statbuf.st_mode & (S_IRWXG|S_IRWXO)) || !S_ISDIR (statbuf.st_mode)) { return FALSE; } #endif return TRUE; } static char * create_socket_dir (void) { char *dirname; long iteration = 0; char *safe_dir; gchar tmp[9]; int i; safe_dir = NULL; do { g_free (safe_dir); for (i = 0; i < 8; i++) { if (g_random_int_range (0, 2) == 0) { tmp[i] = g_random_int_range ('a', 'z' + 1); } else { tmp[i] = g_random_int_range ('A', 'Z' + 1); } } tmp[8] = '\0'; dirname = g_strdup_printf ("gnomevfs-%s-%s", g_get_user_name (), tmp); safe_dir = g_build_filename (g_get_tmp_dir (), dirname, NULL); g_free (dirname); if (g_mkdir (safe_dir, 0700) < 0) { switch (errno) { case EACCES: g_error ("I can't write to '%s', daemon init failed", safe_dir); break; case ENAMETOOLONG: g_error ("Name '%s' too long your system is broken", safe_dir); break; case ENOMEM: #ifdef ELOOP case ELOOP: #endif case ENOSPC: case ENOTDIR: case ENOENT: g_error ("Resource problem creating '%s'", safe_dir); break; default: /* carry on going */ break; } } /* Possible race - so we re-scan. */ if (iteration++ == 1000) { g_error ("Cannot find a safe socket path in '%s'", g_get_tmp_dir ()); } } while (!test_safe_socket_dir (safe_dir)); return safe_dir; } #endif static gchar * generate_address (char **folder) { gint i; gchar tmp[9]; gchar *path; *folder = NULL; for (i = 0; i < 8; i++) { if (g_random_int_range (0, 2) == 0) { tmp[i] = g_random_int_range ('a', 'z' + 1); } else { tmp[i] = g_random_int_range ('A', 'Z' + 1); } } tmp[8] = '\0'; #ifdef USE_ABSTRACT_SOCKETS path = g_strdup_printf ("unix:abstract=/dbus-vfs-daemon/socket-%s", tmp); #else { char *dir; dir = create_socket_dir (); path = g_strdup_printf ("unix:path=%s/socket", dir); *folder = dir; } #endif return path; } static void daemon_handle_get_connection (DBusConnection *conn, DBusMessage *message) { DBusServer *server; DBusError error; DBusMessage *reply; gchar *address; static gint32 conn_id = 0; NewConnectionData *data; char *socket_dir; address = generate_address (&socket_dir); dbus_error_init (&error); server = dbus_server_listen (address, &error); if (!server) { reply = dbus_message_new_error (message, DVD_ERROR_SOCKET_FAILED, "Failed to create new socket"); if (!reply) { g_error ("Out of memory"); } dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); g_free (address); return; } data = g_new (NewConnectionData, 1); data->conn_id = ++conn_id; data->socket_dir = socket_dir; dbus_server_set_new_connection_function (server, daemon_new_connection_func, data, new_connection_data_free); dbus_server_setup_with_g_main (server, NULL); reply = dbus_message_new_method_return (message); dbus_message_append_args (reply, DBUS_TYPE_STRING, &address, DBUS_TYPE_INT32, &conn_id, DBUS_TYPE_INVALID); dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); g_free (address); } static void daemon_handle_cancel (DBusConnection *conn, DBusMessage *message) { gint32 cancellation_id; gint32 conn_id; if (!dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &cancellation_id, DBUS_TYPE_INT32, &conn_id, DBUS_TYPE_INVALID)) { return; } d(g_print ("daemon got Cancel (conn id %d, cancel id %d)\n", conn_id, cancellation_id)); daemon_connection_cancel (conn_id, cancellation_id); } static void monitor_handle_free (MonitorHandle *handle) { g_free (handle->sender); g_free (handle); } static void monitor_owner_free (MonitorOwner *owner) { g_free (owner->sender); g_free (owner); } /* Called on main loop always */ static void monitor_callback_func (GnomeVFSMonitorHandle *vfs_handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) { DBusConnection *conn; DBusMessage *signal; MonitorHandle *handle = user_data; gint32 event_type32; conn = daemon_get_connection (FALSE); if (!conn) { return; } signal = dbus_message_new_signal (DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_MONITOR_SIGNAL); dbus_message_set_destination (signal, handle->sender); event_type32 = event_type; if (dbus_message_append_args (signal, DBUS_TYPE_INT32, &handle->id, DBUS_TYPE_STRING, &info_uri, DBUS_TYPE_INT32, &event_type32, DBUS_TYPE_INVALID)) { /* In case this gets fired off after we've disconnected. */ if (dbus_connection_get_is_connected (conn)) { dbus_connection_send (conn, signal, NULL); } } dbus_message_unref (signal); } static void daemon_handle_monitor_add (DBusConnection *conn, DBusMessage *message) { char *uri_str; gint32 monitor_type; MonitorHandle *handle; MonitorOwner *owner; const char *sender; static gint32 next_handle = 0; GnomeVFSResult result; if (!dbus_message_get_args (message, NULL, DBUS_TYPE_STRING, &uri_str, DBUS_TYPE_INT32, &monitor_type, DBUS_TYPE_INVALID)) { dbus_util_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } sender = dbus_message_get_sender (message); handle = g_new (MonitorHandle, 1); handle->sender = g_strdup (sender); handle->id = ++next_handle; result = gnome_vfs_monitor_add (&handle->vfs_handle, uri_str, monitor_type, monitor_callback_func, handle); if (result == GNOME_VFS_OK) { if (monitors == NULL) { monitors = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify)monitor_handle_free); monitor_owners = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify)monitor_owner_free); } g_hash_table_insert (monitors, GINT_TO_POINTER (handle->id), handle); owner = g_hash_table_lookup (monitor_owners, sender); if (owner == NULL) { owner = g_new (MonitorOwner, 1); owner->sender = g_strdup (sender); owner->active_monitors = NULL; g_hash_table_insert (monitor_owners, owner->sender, owner); dbus_util_start_track_name (conn, owner->sender); } owner->active_monitors = g_list_prepend (owner->active_monitors, handle); dbus_util_reply_id (conn, message, handle->id); } else { monitor_handle_free (handle); dbus_util_reply_result (conn, message, result); } } static void daemon_handle_monitor_cancel (DBusConnection *conn, DBusMessage *message) { gint32 id; MonitorHandle *handle; MonitorOwner *owner; GnomeVFSResult result; if (!dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID)) { dbus_util_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); return; } handle = g_hash_table_lookup (monitors, GINT_TO_POINTER (id)); if (handle) { result = gnome_vfs_monitor_cancel (handle->vfs_handle); owner = g_hash_table_lookup (monitor_owners, handle->sender); if (owner) { owner->active_monitors = g_list_remove (owner->active_monitors, handle); if (owner->active_monitors == NULL) { dbus_util_stop_track_name (conn, handle->sender); g_hash_table_remove (monitor_owners, handle->sender); } } g_hash_table_remove (monitors, GINT_TO_POINTER (handle->id)); dbus_util_reply_result (conn, message, result); } else { dbus_util_reply_result (conn, message, GNOME_VFS_ERROR_INTERNAL); } } static void daemon_handle_get_volumes (DBusConnection *conn, DBusMessage *message) { GnomeVFSVolumeMonitor *monitor; GList *volumes; DBusMessage *reply; d(g_print ("daemon got GetVolumes\n")); monitor = gnome_vfs_get_volume_monitor (); volumes = gnome_vfs_volume_monitor_get_mounted_volumes (monitor); reply = dbus_message_new_method_return (message); dbus_utils_message_append_volume_list (reply, volumes); dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); g_list_foreach (volumes, (GFunc) gnome_vfs_volume_unref, NULL); g_list_free (volumes); } static void daemon_handle_get_drives (DBusConnection *conn, DBusMessage *message) { GnomeVFSVolumeMonitor *monitor; GList *drives; DBusMessage *reply; d(g_print ("daemon got GetDrives\n")); monitor = gnome_vfs_get_volume_monitor (); drives = gnome_vfs_volume_monitor_get_connected_drives (monitor); reply = dbus_message_new_method_return (message); dbus_utils_message_append_drive_list (reply, drives); dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); g_list_foreach (drives, (GFunc) gnome_vfs_drive_unref, NULL); g_list_free (drives); } static void daemon_handle_force_probe (DBusConnection *conn, DBusMessage *message) { GnomeVFSVolumeMonitor *monitor; DBusMessage *reply; d(g_print ("daemon got ForceProbe\n")); monitor = gnome_vfs_get_volume_monitor (); gnome_vfs_volume_monitor_daemon_force_probe (monitor); reply = dbus_message_new_method_return (message); dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); } static void daemon_handle_emit_pre_unmount_volume (DBusConnection *conn, DBusMessage *message) { GnomeVFSVolumeMonitor *monitor; dbus_int32_t id; GnomeVFSVolume *volume; DBusMessage *reply; d(g_print ("daemon got EmitPreUnmountVolume\n")); monitor = gnome_vfs_get_volume_monitor (); if (dbus_message_get_args (message, NULL, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID)) { volume = gnome_vfs_volume_monitor_get_volume_by_id (monitor, id); if (volume != NULL) { gnome_vfs_volume_monitor_emit_pre_unmount (monitor, volume); gnome_vfs_volume_unref (volume); } } reply = dbus_message_new_method_return (message); dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); } static DBusHandlerResult daemon_message_func (DBusConnection *conn, DBusMessage *message, gpointer data) { if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_GET_CONNECTION)) { daemon_handle_get_connection (conn, message); } else if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_CANCEL)) { daemon_handle_cancel (conn, message); } else if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_MONITOR_ADD)) { daemon_handle_monitor_add (conn, message); } else if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_MONITOR_CANCEL)) { daemon_handle_monitor_cancel (conn, message); } else if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_GET_VOLUMES)) { daemon_handle_get_volumes (conn, message); } else if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_GET_DRIVES)) { daemon_handle_get_drives (conn, message); } else if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_FORCE_PROBE)) { daemon_handle_force_probe (conn, message); } else if (dbus_message_is_method_call (message, DVD_DAEMON_INTERFACE, DVD_DAEMON_METHOD_EMIT_PRE_UNMOUNT_VOLUME)) { daemon_handle_emit_pre_unmount_volume (conn, message); } else { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } return DBUS_HANDLER_RESULT_HANDLED; } static DBusHandlerResult dbus_filter_func (DBusConnection *connection, DBusMessage *message, void *data) { if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) { gchar *service, *old_owner, *new_owner; MonitorOwner *owner; GList *l; dbus_message_get_args (message, NULL, DBUS_TYPE_STRING, &service, DBUS_TYPE_STRING, &old_owner, DBUS_TYPE_STRING, &new_owner, DBUS_TYPE_INVALID); /* Handle monitor owner going away */ if (*new_owner == 0) { owner = g_hash_table_lookup (monitor_owners, service); if (owner) { for (l = owner->active_monitors; l != NULL; l = l->next) { MonitorHandle *handle = l->data; gnome_vfs_monitor_cancel (handle->vfs_handle); g_hash_table_remove (monitors, GINT_TO_POINTER (handle->id)); } owner->active_monitors = NULL; dbus_util_stop_track_name (connection, service); g_hash_table_remove (monitor_owners, service); } } } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } static void monitor_volume_mounted_cb (GnomeVFSVolumeMonitor *monitor, GnomeVFSVolume *volume, gpointer user_data) { DBusConnection *conn; DBusMessage *signal; d(g_print ("daemon got volume_mounted\n")); conn = daemon_get_connection (FALSE); if (!conn) { return; } signal = dbus_message_new_signal (DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_VOLUME_MOUNTED_SIGNAL); dbus_utils_message_append_volume (signal, volume); dbus_connection_send (conn, signal, NULL); dbus_message_unref (signal); } static void monitor_volume_unmounted_cb (GnomeVFSVolumeMonitor *monitor, GnomeVFSVolume *volume, gpointer user_data) { DBusConnection *conn; DBusMessage *signal; gint32 id; d(g_print ("daemon got volume_unmounted\n")); conn = daemon_get_connection (FALSE); if (!conn) { return; } signal = dbus_message_new_signal (DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_VOLUME_UNMOUNTED_SIGNAL); id = gnome_vfs_volume_get_id (volume); dbus_message_append_args (signal, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID); dbus_connection_send (conn, signal, NULL); dbus_message_unref (signal); } static void monitor_volume_pre_unmount_cb (GnomeVFSVolumeMonitor *monitor, GnomeVFSVolume *volume, gpointer user_data) { DBusConnection *conn; DBusMessage *signal; gint32 id; d(g_print ("daemon got volume_pre_unmount\n")); conn = daemon_get_connection (FALSE); if (!conn) { return; } signal = dbus_message_new_signal (DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_VOLUME_PRE_UNMOUNT_SIGNAL); id = gnome_vfs_volume_get_id (volume); dbus_message_append_args (signal, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID); dbus_connection_send (conn, signal, NULL); dbus_message_unref (signal); } static void monitor_drive_connected_cb (GnomeVFSVolumeMonitor *monitor, GnomeVFSDrive *drive, gpointer user_data) { DBusConnection *conn; DBusMessage *signal; d(g_print ("daemon got drive_connected\n")); conn = daemon_get_connection (FALSE); if (!conn) { return; } signal = dbus_message_new_signal (DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_DRIVE_CONNECTED_SIGNAL); dbus_utils_message_append_drive (signal, drive); dbus_connection_send (conn, signal, NULL); dbus_message_unref (signal); } static void monitor_drive_disconnected_cb (GnomeVFSVolumeMonitor *monitor, GnomeVFSDrive *drive, gpointer user_data) { DBusConnection *conn; DBusMessage *signal; gint32 id; d(g_print ("daemon got drive_disconnected\n")); conn = daemon_get_connection (FALSE); if (!conn) { return; } signal = dbus_message_new_signal (DVD_DAEMON_OBJECT, DVD_DAEMON_INTERFACE, DVD_DAEMON_DRIVE_DISCONNECTED_SIGNAL); id = gnome_vfs_drive_get_id (drive); dbus_message_append_args (signal, DBUS_TYPE_INT32, &id, DBUS_TYPE_INVALID); dbus_connection_send (conn, signal, NULL); dbus_message_unref (signal); } int main (int argc, char *argv[]) { GMainLoop *loop; GnomeVFSVolumeMonitor *monitor; int i; d(g_print ("Starting daemon.\n")); if (argc > 1) { for (i = 1; i < argc; i++) { if (strcmp (argv[i], "--replace") == 0) { replace_daemon = TRUE; } } } setlocale(LC_ALL, ""); g_type_init (); gnome_vfs_set_is_daemon (GNOME_VFS_TYPE_VOLUME_MONITOR_DAEMON, gnome_vfs_volume_monitor_daemon_force_probe); if (!gnome_vfs_init ()) { g_printerr ("Could not initialize gnome vfs"); return 1; } loop = g_main_loop_new (NULL, FALSE); if (!daemon_init ()) { d(g_print ("Couldn't init daemon, exiting.\n")); return 1; } /* Init the volume monitor. */ monitor = gnome_vfs_get_volume_monitor (); g_signal_connect (monitor, "volume_mounted", G_CALLBACK (monitor_volume_mounted_cb), NULL); g_signal_connect (monitor, "volume_unmounted", G_CALLBACK (monitor_volume_unmounted_cb), NULL); g_signal_connect (monitor, "volume_pre_unmount", G_CALLBACK (monitor_volume_pre_unmount_cb), NULL); g_signal_connect (monitor, "drive_connected", G_CALLBACK (monitor_drive_connected_cb), NULL); g_signal_connect (monitor, "drive_disconnected", G_CALLBACK (monitor_drive_disconnected_cb), NULL); g_main_loop_run (loop); d(g_print ("Shutting down.\n")); daemon_shutdown (); return 0; } gnome-vfs-2.24.4/daemon/dbus-utils.c0000644000175000001440000001073611334251016014126 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. */ #include #include #include #include #include "gnome-vfs-volume-monitor-private.h" #include "gnome-vfs-dbus-utils.h" #include "dbus-utils.h" /* * Volume messages */ void dbus_utils_message_append_volume_list (DBusMessage *message, GList *volumes) { DBusMessageIter iter, array_iter; GList *l; GnomeVFSVolume *volume; g_return_if_fail (message != NULL); if (!volumes) { return; } dbus_message_iter_init_append (message, &iter); dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, GNOME_VFS_VOLUME_DBUS_TYPE, &array_iter); for (l = volumes; l; l = l->next) { volume = l->data; gnome_vfs_volume_to_dbus (&array_iter, volume); } dbus_message_iter_close_container (&iter, &array_iter); } void dbus_utils_message_append_drive_list (DBusMessage *message, GList *drives) { DBusMessageIter iter, array_iter; GList *l; GnomeVFSDrive *drive; g_return_if_fail (message != NULL); if (!drives) { return; } dbus_message_iter_init_append (message, &iter); dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, GNOME_VFS_DRIVE_DBUS_TYPE, &array_iter); for (l = drives; l; l = l->next) { drive = l->data; gnome_vfs_drive_to_dbus (&array_iter, drive); } dbus_message_iter_close_container (&iter, &array_iter); } void dbus_utils_message_append_volume (DBusMessage *message, GnomeVFSVolume *volume) { DBusMessageIter iter; g_return_if_fail (message != NULL); g_return_if_fail (volume != NULL); dbus_message_iter_init_append (message, &iter); gnome_vfs_volume_to_dbus (&iter, volume); } void dbus_utils_message_append_drive (DBusMessage *message, GnomeVFSDrive *drive) { DBusMessageIter iter; g_return_if_fail (message != NULL); g_return_if_fail (drive != NULL); dbus_message_iter_init_append (message, &iter); gnome_vfs_drive_to_dbus (&iter, drive); } /* * Reply functions. */ static DBusMessage * create_reply_helper (DBusMessage *message, GnomeVFSResult result) { DBusMessage *reply; DBusMessageIter iter; gint32 i; reply = dbus_message_new_method_return (message); if (!reply) { g_error ("Out of memory"); } i = result; dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &i)) { g_error ("Out of memory"); } return reply; } void dbus_util_reply_result (DBusConnection *conn, DBusMessage *message, GnomeVFSResult result) { DBusMessage *reply; reply = create_reply_helper (message, result); dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); } void dbus_util_reply_id (DBusConnection *conn, DBusMessage *message, gint32 id) { DBusMessage *reply; DBusMessageIter iter; reply = create_reply_helper (message, GNOME_VFS_OK); dbus_message_iter_init_append (reply, &iter); if (!dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &id)) { g_error ("Out of memory"); } dbus_connection_send (conn, reply, NULL); dbus_message_unref (reply); } void dbus_util_start_track_name (DBusConnection *conn, const char *name) { char *rule; rule = g_strdup_printf ("type='signal',sender='" DBUS_SERVICE_DBUS "',interface='" DBUS_INTERFACE_DBUS "',member='NameOwnerChanged',arg0='%s'", name); dbus_bus_add_match (conn, rule, NULL); g_free (rule); } void dbus_util_stop_track_name (DBusConnection *conn, const char *name) { char *rule; rule = g_strdup_printf ("type='signal',sender='" DBUS_SERVICE_DBUS "',interface='" DBUS_INTERFACE_DBUS "',member='NameOwnerChanged',arg0='%s'", name); dbus_bus_remove_match (conn, rule, NULL); g_free (rule); } gnome-vfs-2.24.4/daemon/daemon-connection.h0000644000175000001440000000217311334251016015434 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2004 Nokia Corporation. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 2 of the * License. * * 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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 __DAEMON_CONNECTION_H__ #define __DAEMON_CONNECTION_H__ #include void daemon_connection_setup (DBusConnection *dbus_conn, gint32 conn_id); void daemon_connection_cancel (gint32 conn_id, gint32 cancellation_id); #endif /* __DAEMON_CONNECTION_H__ */ gnome-vfs-2.24.4/xdgmime.win32.diff0000644000175000001440000002427511334251016013654 00000000000000Index: libgnomevfs/xdgmime.c =================================================================== --- libgnomevfs/xdgmime.c (revision 5502) +++ libgnomevfs/xdgmime.c (working copy) @@ -63,7 +63,7 @@ XdgMimeCache **_caches = NULL; static int n_caches = 0; -const char xdg_mime_type_unknown[] = "application/octet-stream"; +const char *xdg_mime_type_unknown = "application/octet-stream"; enum @@ -140,7 +140,7 @@ file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache"); - if (stat (file_name, &st) == 0) + if (XDG_STAT (file_name, &st) == 0) { XdgMimeCache *cache = _xdg_mime_cache_new_from_file (file_name); @@ -160,7 +160,7 @@ file_name = malloc (strlen (directory) + strlen ("/mime/globs2") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/globs2"); - if (stat (file_name, &st) == 0) + if (XDG_STAT (file_name, &st) == 0) { _xdg_mime_glob_read_from_file (global_hash, file_name); xdg_dir_time_list_add (file_name, st.st_mtime); @@ -170,7 +170,7 @@ free (file_name); file_name = malloc (strlen (directory) + strlen ("/mime/globs") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/globs"); - if (stat (file_name, &st) == 0) + if (XDG_STAT (file_name, &st) == 0) { _xdg_mime_glob_read_from_file (global_hash, file_name); xdg_dir_time_list_add (file_name, st.st_mtime); @@ -183,7 +183,7 @@ file_name = malloc (strlen (directory) + strlen ("/mime/magic") + 1); strcpy (file_name, directory); strcat (file_name, "/mime/magic"); - if (stat (file_name, &st) == 0) + if (XDG_STAT (file_name, &st) == 0) { _xdg_mime_magic_read_from_file (global_magic, file_name); xdg_dir_time_list_add (file_name, st.st_mtime); @@ -225,7 +225,7 @@ const char *xdg_data_dirs; const char *ptr; - xdg_data_home = getenv ("XDG_DATA_HOME"); + xdg_data_home = XDG_GETENV ("XDG_DATA_HOME"); if (xdg_data_home) { if ((func) (xdg_data_home, user_data)) @@ -235,7 +235,7 @@ { const char *home; - home = getenv ("HOME"); + home = XDG_GET_HOME (); if (home != NULL) { char *guessed_xdg_home; @@ -252,9 +252,9 @@ } } - xdg_data_dirs = getenv ("XDG_DATA_DIRS"); + xdg_data_dirs = XDG_GETENV ("XDG_DATA_DIRS"); if (xdg_data_dirs == NULL) - xdg_data_dirs = "/usr/local/share/:/usr/share/"; + xdg_data_dirs = XDG_DEFAULT_DATA_DIRS; ptr = xdg_data_dirs; @@ -266,7 +266,7 @@ int stop_processing; end_ptr = ptr; - while (*end_ptr != ':' && *end_ptr != '\000') + while (*end_ptr != XDG_SEARCHPATH_SEPARATOR && *end_ptr != '\000') end_ptr ++; if (end_ptr == ptr) @@ -275,7 +275,7 @@ continue; } - if (*end_ptr == ':') + if (*end_ptr == XDG_SEARCHPATH_SEPARATOR) len = end_ptr - ptr; else len = end_ptr - ptr + 1; @@ -305,7 +305,7 @@ struct stat st; /* If the file exists */ - if (stat (file_path, &st) == 0) + if (XDG_STAT (file_path, &st) == 0) { XdgDirTimeList *list; @@ -415,12 +415,10 @@ static int xdg_check_time_and_dirs (void) { - struct timeval tv; time_t current_time; int retval = FALSE; - gettimeofday (&tv, NULL); - current_time = tv.tv_sec; + time (¤t_time); if (current_time >= last_stat_time + 5) { @@ -512,7 +510,7 @@ if (!statbuf) { - if (stat (file_name, &buf) != 0) + if (XDG_STAT (file_name, &buf) != 0) return XDG_MIME_TYPE_UNKNOWN; statbuf = &buf; @@ -529,7 +527,7 @@ if (data == NULL) return XDG_MIME_TYPE_UNKNOWN; - file = fopen (file_name, "r"); + file = XDG_FOPEN (file_name, "r"); if (file == NULL) { free (data); Index: libgnomevfs/xdgmime.h =================================================================== --- libgnomevfs/xdgmime.h (revision 5502) +++ libgnomevfs/xdgmime.h (working copy) @@ -76,7 +76,7 @@ #define _xdg_mime_unalias_mime_type XDG_RESERVED_ENTRY(unalias_mime_type) #endif -extern const char xdg_mime_type_unknown[]; +extern const char *xdg_mime_type_unknown; #define XDG_MIME_TYPE_UNKNOWN xdg_mime_type_unknown const char *xdg_mime_get_mime_type_for_data (const void *data, Index: libgnomevfs/xdgmimealias.c =================================================================== --- libgnomevfs/xdgmimealias.c (revision 5502) +++ libgnomevfs/xdgmimealias.c (working copy) @@ -35,16 +35,7 @@ #include #include #include -#include -#ifndef FALSE -#define FALSE (0) -#endif - -#ifndef TRUE -#define TRUE (!FALSE) -#endif - typedef struct XdgAlias XdgAlias; struct XdgAlias @@ -124,7 +115,7 @@ char line[255]; int alloc; - file = fopen (file_name, "r"); + file = XDG_FOPEN (file_name, "r"); if (file == NULL) return; Index: libgnomevfs/xdgmimecache.c =================================================================== --- libgnomevfs/xdgmimecache.c (revision 5502) +++ libgnomevfs/xdgmimecache.c (working copy) @@ -37,12 +37,15 @@ #include #include +#ifdef _WIN32 +#include /* for ntohl/ntohs */ +#else #include /* for ntohl/ntohs */ +#endif #ifdef HAVE_MMAP #include #else -#warning Building xdgmime without MMAP support. Binary "mime.info" cache files will not be used. #endif #include @@ -688,7 +692,7 @@ if (!statbuf) { - if (stat (file_name, &buf) != 0) + if (XDG_STAT (file_name, &buf) != 0) return XDG_MIME_TYPE_UNKNOWN; statbuf = &buf; @@ -705,7 +709,7 @@ if (data == NULL) return XDG_MIME_TYPE_UNKNOWN; - file = fopen (file_name, "r"); + file = XDG_FOPEN (file_name, "r"); if (file == NULL) { free (data); Index: libgnomevfs/xdgmimeglob.c =================================================================== --- libgnomevfs/xdgmimeglob.c (revision 5502) +++ libgnomevfs/xdgmimeglob.c (working copy) @@ -37,14 +37,6 @@ #include #include -#ifndef FALSE -#define FALSE (0) -#endif - -#ifndef TRUE -#define TRUE (!FALSE) -#endif - typedef struct XdgGlobHashNode XdgGlobHashNode; typedef struct XdgGlobList XdgGlobList; @@ -562,7 +554,7 @@ FILE *glob_file; char line[255]; - glob_file = fopen (file_name, "r"); + glob_file = XDG_FOPEN (file_name, "r"); if (glob_file == NULL) return; Index: libgnomevfs/xdgmimeint.c =================================================================== --- libgnomevfs/xdgmimeint.c (revision 5502) +++ libgnomevfs/xdgmimeint.c (working copy) @@ -33,14 +33,6 @@ #include #include -#ifndef FALSE -#define FALSE (0) -#endif - -#ifndef TRUE -#define TRUE (!FALSE) -#endif - static const char _xdg_utf8_skip_data[256] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -52,7 +44,7 @@ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1 }; -const char * const _xdg_utf8_skip = _xdg_utf8_skip_data; +const char *_xdg_utf8_skip = _xdg_utf8_skip_data; @@ -153,6 +145,23 @@ return base_name + 1; } +#ifdef USE_GLIB + +const char * +_xdg_get_default_data_dirs (void) +{ + GQuark quark; + const char * const *dirs = g_get_system_data_dirs (); + char *string = g_strjoinv (G_SEARCHPATH_SEPARATOR_S, (char **) dirs); + + quark = g_quark_from_string (string); + g_free (string); + + return g_quark_to_string (quark); +} + +#endif + xdg_unichar_t * _xdg_convert_to_ucs4 (const char *source, int *len) { Index: libgnomevfs/xdgmimeint.h =================================================================== --- libgnomevfs/xdgmimeint.h (revision 5502) +++ libgnomevfs/xdgmimeint.h (working copy) @@ -63,7 +63,7 @@ (((xdg_uint32_t)(val) & 0x000000FFU) << 24)) /* UTF-8 utils */ -extern const char *const _xdg_utf8_skip; +extern const char *_xdg_utf8_skip; #define _xdg_utf8_next_char(p) (char *)((p) + _xdg_utf8_skip[*(unsigned char *)(p)]) #define _xdg_utf8_char_size(p) (int) (_xdg_utf8_skip[*(unsigned char *)(p)]) @@ -74,4 +74,28 @@ void _xdg_reverse_ucs4 (xdg_unichar_t *source, int len); const char *_xdg_get_base_name (const char *file_name); +#if defined (G_OS_WIN32) && defined (GNOME_VFS_PREFIX) +/* If building as part of gnome-vfs on Win32 */ +#define USE_GLIB +#endif + +#ifdef USE_GLIB +#include +#include +#define XDG_GETENV g_getenv +#define XDG_STAT g_stat +#define XDG_FOPEN g_fopen +#define XDG_GET_HOME() g_get_home_dir () +const char *_xdg_get_default_data_dirs (void); +#define XDG_DEFAULT_DATA_DIRS _xdg_get_default_data_dirs () +#define XDG_SEARCHPATH_SEPARATOR G_SEARCHPATH_SEPARATOR +#else +#define XDG_GETENV getenv +#define XDG_STAT stat +#define XDG_FOPEN fopen +#define XDG_GET_HOME() getenv ("HOME") +#define XDG_DEFAULT_DATA_DIRS "/usr/local/share/:/usr/share/" +#define XDG_SEARCHPATH_SEPARATOR ':' +#endif + #endif /* __XDG_MIME_INT_H__ */ Index: libgnomevfs/xdgmimemagic.c =================================================================== --- libgnomevfs/xdgmimemagic.c (revision 5502) +++ libgnomevfs/xdgmimemagic.c (working copy) @@ -39,12 +39,12 @@ #include #include -#ifndef FALSE -#define FALSE (0) +#ifdef _WIN32 +#define LITTLE_ENDIAN 1 #endif -#ifndef TRUE -#define TRUE (!FALSE) +#ifndef _WIN32 +extern int errno; #endif #if !defined getc_unlocked && !defined HAVE_GETC_UNLOCKED @@ -798,7 +798,7 @@ FILE *magic_file; char header[12]; - magic_file = fopen (file_name, "r"); + magic_file = XDG_FOPEN (file_name, "r"); if (magic_file == NULL) return; Index: libgnomevfs/xdgmimeparent.c =================================================================== --- libgnomevfs/xdgmimeparent.c (revision 5502) +++ libgnomevfs/xdgmimeparent.c (working copy) @@ -37,14 +37,6 @@ #include #include -#ifndef FALSE -#define FALSE (0) -#endif - -#ifndef TRUE -#define TRUE (!FALSE) -#endif - typedef struct XdgMimeParents XdgMimeParents; struct XdgMimeParents @@ -130,7 +122,7 @@ int i, alloc; XdgMimeParents *entry; - file = fopen (file_name, "r"); + file = XDG_FOPEN (file_name, "r"); if (file == NULL) return; gnome-vfs-2.24.4/COPYING.LIB0000644000175000001440000006126111334251016012063 00000000000000 GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This 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 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 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., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! gnome-vfs-2.24.4/programs/0000755000175000001440000000000011450333533012333 500000000000000gnome-vfs-2.24.4/programs/gnomevfs-mv.c0000644000175000001440000000415511334251016014664 00000000000000/* gnomevfs-rm.c - Test for unlink() for gnome-vfs Copyright (C) 1999 Free Software Foundation Copyright (C) 2003, Red Hat The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Bastien Nocera */ #include #include #include #include #include "authentication.c" static void show_result (GnomeVFSResult result, const gchar *what, const gchar *from, const gchar *to) { if (result != GNOME_VFS_OK) { fprintf (stderr, "%s `%s' `%s': %s\n", what, from, to, gnome_vfs_result_to_string (result)); exit (1); } } int main (int argc, char **argv) { GnomeVFSResult result; char *from, *to; if (argc != 3) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); from = gnome_vfs_make_uri_from_shell_arg (argv[1]); if (from == NULL) { fprintf (stderr, "Could not guess URI from %s\n", argv[1]); return 1; } to = gnome_vfs_make_uri_from_shell_arg (argv[2]); if (to == NULL) { g_free (from); fprintf (stderr, "Could not guess URI from %s\n", argv[2]); return 1; } result = gnome_vfs_move (from, to, TRUE); show_result (result, "move", from, to); g_free (from); g_free (to); return 0; } gnome-vfs-2.24.4/programs/Makefile.am0000644000175000001440000000220211334251016014277 00000000000000NULL = INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ $(TEST_CFLAGS) \ $(VFS_CFLAGS) \ -DG_DISABLE_DEPRECATED libraries = \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ $(TEST_LIBS) \ $(LIBEFS_LIBS) bin_PROGRAMS = \ gnomevfs-cat \ gnomevfs-copy \ gnomevfs-info \ gnomevfs-ls \ gnomevfs-monitor \ gnomevfs-mkdir \ gnomevfs-mv \ gnomevfs-rm \ gnomevfs-df \ $(NULL) gnomevfs_cat_SOURCES = gnomevfs-cat.c gnomevfs_cat_LDADD = $(libraries) gnomevfs_copy_SOURCES = gnomevfs-copy.c gnomevfs_copy_LDADD = $(libraries) gnomevfs_info_SOURCES = gnomevfs-info.c gnomevfs_info_LDADD = $(libraries) gnomevfs_ls_SOURCES = gnomevfs-ls.c gnomevfs_ls_LDADD = $(libraries) gnomevfs_monitor_SOURCES = gnomevfs-monitor.c gnomevfs_monitor_LDADD = $(libraries) gnomevfs_mkdir_SOURCES = gnomevfs-mkdir.c gnomevfs_mkdir_LDADD = $(libraries) gnomevfs_mv_SOURCES = gnomevfs-mv.c gnomevfs_mv_LDADD = $(libraries) gnomevfs_rm_SOURCES = gnomevfs-rm.c gnomevfs_rm_LDADD = $(libraries) gnomevfs_df_SOURCES = gnomevfs-df.c gnomevfs_df_LDADD = $(libraries) EXTRA_DIST = authentication.c gnome-vfs-2.24.4/programs/gnomevfs-copy.c0000644000175000001440000000602611334251016015213 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnomevfs-copy.c - Test for open(), read() and write() for gnome-vfs Copyright (C) 2003-2005, Red Hat The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Bastien Nocera Chrsitian Kellner */ #include #include #include #include #include "authentication.c" int main (int argc, char **argv) { GnomeVFSResult result; char *text_uri; GnomeVFSURI *src, *dest; GnomeVFSFileInfo *info; if (argc != 3) { printf ("Usage: %s \n", argv[0]); return 1; } if (!gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); text_uri = gnome_vfs_make_uri_from_shell_arg (argv[1]); src = gnome_vfs_uri_new (text_uri); g_free (text_uri); text_uri = gnome_vfs_make_uri_from_shell_arg (argv[2]); dest = gnome_vfs_uri_new (text_uri); g_free (text_uri); if (src == NULL || dest == NULL) { result = GNOME_VFS_ERROR_INVALID_URI; goto out; } info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info_uri (dest, info, GNOME_VFS_FILE_INFO_DEFAULT); if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_NOT_FOUND) { gnome_vfs_file_info_unref (info); goto out; } /* If the target is a directory do not overwrite it but copy the source into the directory! (This is like cp does it) */ if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE && info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { char *name; GnomeVFSURI *new_dest; name = gnome_vfs_uri_extract_short_path_name (src); new_dest = gnome_vfs_uri_append_string (dest, name); gnome_vfs_uri_unref (dest); g_free (name); dest = new_dest; } gnome_vfs_file_info_unref (info); result = gnome_vfs_xfer_uri (src, dest, GNOME_VFS_XFER_RECURSIVE, GNOME_VFS_XFER_ERROR_MODE_ABORT, GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE, NULL, NULL); out: if (src) { gnome_vfs_uri_unref (src); } if (dest) { gnome_vfs_uri_unref (dest); } if (result != GNOME_VFS_OK) { fprintf (stderr, "Failed to copy %s to %s\nReason: %s\n", argv[1], argv[2], gnome_vfs_result_to_string (result)); return 1; } return 0; } gnome-vfs-2.24.4/programs/Makefile.in0000644000175000001440000005767311450333332014337 00000000000000# 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@ bin_PROGRAMS = gnomevfs-cat$(EXEEXT) gnomevfs-copy$(EXEEXT) \ gnomevfs-info$(EXEEXT) gnomevfs-ls$(EXEEXT) \ gnomevfs-monitor$(EXEEXT) gnomevfs-mkdir$(EXEEXT) \ gnomevfs-mv$(EXEEXT) gnomevfs-rm$(EXEEXT) gnomevfs-df$(EXEEXT) \ $(am__EXEEXT_1) subdir = programs 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__EXEEXT_1 = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_gnomevfs_cat_OBJECTS = gnomevfs-cat.$(OBJEXT) gnomevfs_cat_OBJECTS = $(am_gnomevfs_cat_OBJECTS) am__DEPENDENCIES_1 = am__DEPENDENCIES_2 = $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) gnomevfs_cat_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_copy_OBJECTS = gnomevfs-copy.$(OBJEXT) gnomevfs_copy_OBJECTS = $(am_gnomevfs_copy_OBJECTS) gnomevfs_copy_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_df_OBJECTS = gnomevfs-df.$(OBJEXT) gnomevfs_df_OBJECTS = $(am_gnomevfs_df_OBJECTS) gnomevfs_df_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_info_OBJECTS = gnomevfs-info.$(OBJEXT) gnomevfs_info_OBJECTS = $(am_gnomevfs_info_OBJECTS) gnomevfs_info_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_ls_OBJECTS = gnomevfs-ls.$(OBJEXT) gnomevfs_ls_OBJECTS = $(am_gnomevfs_ls_OBJECTS) gnomevfs_ls_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_mkdir_OBJECTS = gnomevfs-mkdir.$(OBJEXT) gnomevfs_mkdir_OBJECTS = $(am_gnomevfs_mkdir_OBJECTS) gnomevfs_mkdir_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_monitor_OBJECTS = gnomevfs-monitor.$(OBJEXT) gnomevfs_monitor_OBJECTS = $(am_gnomevfs_monitor_OBJECTS) gnomevfs_monitor_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_mv_OBJECTS = gnomevfs-mv.$(OBJEXT) gnomevfs_mv_OBJECTS = $(am_gnomevfs_mv_OBJECTS) gnomevfs_mv_DEPENDENCIES = $(am__DEPENDENCIES_2) am_gnomevfs_rm_OBJECTS = gnomevfs-rm.$(OBJEXT) gnomevfs_rm_OBJECTS = $(am_gnomevfs_rm_OBJECTS) gnomevfs_rm_DEPENDENCIES = $(am__DEPENDENCIES_2) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(gnomevfs_cat_SOURCES) $(gnomevfs_copy_SOURCES) \ $(gnomevfs_df_SOURCES) $(gnomevfs_info_SOURCES) \ $(gnomevfs_ls_SOURCES) $(gnomevfs_mkdir_SOURCES) \ $(gnomevfs_monitor_SOURCES) $(gnomevfs_mv_SOURCES) \ $(gnomevfs_rm_SOURCES) DIST_SOURCES = $(gnomevfs_cat_SOURCES) $(gnomevfs_copy_SOURCES) \ $(gnomevfs_df_SOURCES) $(gnomevfs_info_SOURCES) \ $(gnomevfs_ls_SOURCES) $(gnomevfs_mkdir_SOURCES) \ $(gnomevfs_monitor_SOURCES) $(gnomevfs_mv_SOURCES) \ $(gnomevfs_rm_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ ACL_LIBS = @ACL_LIBS@ ALLOCA = @ALLOCA@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ BZ2_LIBS = @BZ2_LIBS@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDDA_LIBS = @CDDA_LIBS@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_SERVICE_DIR = @DBUS_SERVICE_DIR@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ENABLE_PROFILER = @ENABLE_PROFILER@ EXEEXT = @EXEEXT@ FAM_LIBS = @FAM_LIBS@ FGREP = @FGREP@ GCONFTOOL = @GCONFTOOL@ GCONF_REQUIRED = @GCONF_REQUIRED@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_REQUIRED = @GLIB_REQUIRED@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GNOME_VFS_DIR = @GNOME_VFS_DIR@ GREP = @GREP@ GSSAPI_CFLAGS = @GSSAPI_CFLAGS@ GSSAPI_LIBS = @GSSAPI_LIBS@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAL_CFLAGS = @HAL_CFLAGS@ HAL_LIBS = @HAL_LIBS@ HOWL_CFLAGS = @HOWL_CFLAGS@ HOWL_LIBS = @HOWL_LIBS@ 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@ KRB5_CONFIG = @KRB5_CONFIG@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBEFS_CFLAGS = @LIBEFS_CFLAGS@ LIBEFS_LIBS = @LIBEFS_LIBS@ LIBGNOMEVFSDAEMON_CFLAGS = @LIBGNOMEVFSDAEMON_CFLAGS@ LIBGNOMEVFSDAEMON_LIBS = @LIBGNOMEVFSDAEMON_LIBS@ LIBGNOMEVFS_AGE = @LIBGNOMEVFS_AGE@ LIBGNOMEVFS_BINARY_AGE = @LIBGNOMEVFS_BINARY_AGE@ LIBGNOMEVFS_CFLAGS = @LIBGNOMEVFS_CFLAGS@ LIBGNOMEVFS_CURRENT = @LIBGNOMEVFS_CURRENT@ LIBGNOMEVFS_INTERFACE_AGE = @LIBGNOMEVFS_INTERFACE_AGE@ LIBGNOMEVFS_LIBS = @LIBGNOMEVFS_LIBS@ LIBGNOMEVFS_MAJOR_VERSION = @LIBGNOMEVFS_MAJOR_VERSION@ LIBGNOMEVFS_MICRO_VERSION = @LIBGNOMEVFS_MICRO_VERSION@ LIBGNOMEVFS_MINOR_VERSION = @LIBGNOMEVFS_MINOR_VERSION@ LIBGNOMEVFS_REVISION = @LIBGNOMEVFS_REVISION@ LIBGNOMEVFS_VERSION = @LIBGNOMEVFS_VERSION@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIBXML_CFLAGS = @LIBXML_CFLAGS@ LIBXML_LIBS = @LIBXML_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MODULES_CFLAGS = @MODULES_CFLAGS@ MODULES_FILE_CFLAGS = @MODULES_FILE_CFLAGS@ MODULES_FILE_LIBS = @MODULES_FILE_LIBS@ MODULES_GCONF_CFLAGS = @MODULES_GCONF_CFLAGS@ MODULES_GCONF_LIBS = @MODULES_GCONF_LIBS@ MODULES_LIBS = @MODULES_LIBS@ MODULES_XML_CFLAGS = @MODULES_XML_CFLAGS@ MODULES_XML_GCONF_CFLAGS = @MODULES_XML_GCONF_CFLAGS@ MODULES_XML_GCONF_LIBS = @MODULES_XML_GCONF_LIBS@ MODULES_XML_LIBS = @MODULES_XML_LIBS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NEONOBJS = @NEONOBJS@ NEON_BUILD_BUNDLED = @NEON_BUILD_BUNDLED@ NEON_CFLAGS = @NEON_CFLAGS@ NEON_EXTRAOBJS = @NEON_EXTRAOBJS@ NEON_LIBS = @NEON_LIBS@ NEON_LINK_FLAGS = @NEON_LINK_FLAGS@ NEON_LTLIBS = @NEON_LTLIBS@ NEON_OBJEXT = @NEON_OBJEXT@ NEON_SUPPORTS_DAV = @NEON_SUPPORTS_DAV@ NEON_SUPPORTS_ZLIB = @NEON_SUPPORTS_ZLIB@ NEON_TARGET = @NEON_TARGET@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ OPENSSL_LIBS = @OPENSSL_LIBS@ 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@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ REBUILD = @REBUILD@ SAMBA_CFLAGS = @SAMBA_CFLAGS@ SAMBA_LIBS = @SAMBA_LIBS@ SED = @SED@ SELINUX_LIBS = @SELINUX_LIBS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SSH_PROGRAM = @SSH_PROGRAM@ STRIP = @STRIP@ TEST_CFLAGS = @TEST_CFLAGS@ TEST_LIBS = @TEST_LIBS@ TOP_BUILDDIR = @TOP_BUILDDIR@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ VFS_CFLAGS = @VFS_CFLAGS@ VFS_INCLUDEDIR = @VFS_INCLUDEDIR@ VFS_LIBDIR = @VFS_LIBDIR@ VFS_LIBS = @VFS_LIBS@ VFS_OFFSET = @VFS_OFFSET@ VFS_OFFSET_IS = @VFS_OFFSET_IS@ VFS_SIZE = @VFS_SIZE@ VFS_SIZE_IS = @VFS_SIZE_IS@ WARN_CFLAGS = @WARN_CFLAGS@ XGETTEXT = @XGETTEXT@ XML_REQUIRED = @XML_REQUIRED@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_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@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ $(TEST_CFLAGS) \ $(VFS_CFLAGS) \ -DG_DISABLE_DEPRECATED libraries = \ $(top_builddir)/libgnomevfs/libgnomevfs-2.la \ $(TEST_LIBS) \ $(LIBEFS_LIBS) gnomevfs_cat_SOURCES = gnomevfs-cat.c gnomevfs_cat_LDADD = $(libraries) gnomevfs_copy_SOURCES = gnomevfs-copy.c gnomevfs_copy_LDADD = $(libraries) gnomevfs_info_SOURCES = gnomevfs-info.c gnomevfs_info_LDADD = $(libraries) gnomevfs_ls_SOURCES = gnomevfs-ls.c gnomevfs_ls_LDADD = $(libraries) gnomevfs_monitor_SOURCES = gnomevfs-monitor.c gnomevfs_monitor_LDADD = $(libraries) gnomevfs_mkdir_SOURCES = gnomevfs-mkdir.c gnomevfs_mkdir_LDADD = $(libraries) gnomevfs_mv_SOURCES = gnomevfs-mv.c gnomevfs_mv_LDADD = $(libraries) gnomevfs_rm_SOURCES = gnomevfs-rm.c gnomevfs_rm_LDADD = $(libraries) gnomevfs_df_SOURCES = gnomevfs-df.c gnomevfs_df_LDADD = $(libraries) EXTRA_DIST = authentication.c all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(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 programs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu programs/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): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list gnomevfs-cat$(EXEEXT): $(gnomevfs_cat_OBJECTS) $(gnomevfs_cat_DEPENDENCIES) @rm -f gnomevfs-cat$(EXEEXT) $(LINK) $(gnomevfs_cat_OBJECTS) $(gnomevfs_cat_LDADD) $(LIBS) gnomevfs-copy$(EXEEXT): $(gnomevfs_copy_OBJECTS) $(gnomevfs_copy_DEPENDENCIES) @rm -f gnomevfs-copy$(EXEEXT) $(LINK) $(gnomevfs_copy_OBJECTS) $(gnomevfs_copy_LDADD) $(LIBS) gnomevfs-df$(EXEEXT): $(gnomevfs_df_OBJECTS) $(gnomevfs_df_DEPENDENCIES) @rm -f gnomevfs-df$(EXEEXT) $(LINK) $(gnomevfs_df_OBJECTS) $(gnomevfs_df_LDADD) $(LIBS) gnomevfs-info$(EXEEXT): $(gnomevfs_info_OBJECTS) $(gnomevfs_info_DEPENDENCIES) @rm -f gnomevfs-info$(EXEEXT) $(LINK) $(gnomevfs_info_OBJECTS) $(gnomevfs_info_LDADD) $(LIBS) gnomevfs-ls$(EXEEXT): $(gnomevfs_ls_OBJECTS) $(gnomevfs_ls_DEPENDENCIES) @rm -f gnomevfs-ls$(EXEEXT) $(LINK) $(gnomevfs_ls_OBJECTS) $(gnomevfs_ls_LDADD) $(LIBS) gnomevfs-mkdir$(EXEEXT): $(gnomevfs_mkdir_OBJECTS) $(gnomevfs_mkdir_DEPENDENCIES) @rm -f gnomevfs-mkdir$(EXEEXT) $(LINK) $(gnomevfs_mkdir_OBJECTS) $(gnomevfs_mkdir_LDADD) $(LIBS) gnomevfs-monitor$(EXEEXT): $(gnomevfs_monitor_OBJECTS) $(gnomevfs_monitor_DEPENDENCIES) @rm -f gnomevfs-monitor$(EXEEXT) $(LINK) $(gnomevfs_monitor_OBJECTS) $(gnomevfs_monitor_LDADD) $(LIBS) gnomevfs-mv$(EXEEXT): $(gnomevfs_mv_OBJECTS) $(gnomevfs_mv_DEPENDENCIES) @rm -f gnomevfs-mv$(EXEEXT) $(LINK) $(gnomevfs_mv_OBJECTS) $(gnomevfs_mv_LDADD) $(LIBS) gnomevfs-rm$(EXEEXT): $(gnomevfs_rm_OBJECTS) $(gnomevfs_rm_DEPENDENCIES) @rm -f gnomevfs-rm$(EXEEXT) $(LINK) $(gnomevfs_rm_OBJECTS) $(gnomevfs_rm_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-cat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-copy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-df.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-ls.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-mkdir.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-monitor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-mv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnomevfs-rm.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo 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 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(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-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic 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-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: gnome-vfs-2.24.4/programs/gnomevfs-rm.c0000644000175000001440000000365111334251016014660 00000000000000/* gnomevfs-rm.c - Test for unlink() for gnome-vfs Copyright (C) 1999 Free Software Foundation Copyright (C) 2003, Red Hat The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Bastien Nocera */ #include #include #include #include #include "authentication.c" static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { if (result != GNOME_VFS_OK) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); exit (1); } } int main (int argc, char **argv) { GnomeVFSResult result; char *text_uri; if (argc != 2) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); text_uri = gnome_vfs_make_uri_from_shell_arg (argv[1]); if (text_uri == NULL) { fprintf (stderr, "Could not guess URI from %s.\n", argv[1]); return 1; } result = gnome_vfs_unlink (text_uri); show_result (result, "open", text_uri); g_free (text_uri); return 0; } gnome-vfs-2.24.4/programs/gnomevfs-ls.c0000644000175000001440000001343511334251016014661 00000000000000/* gnomevfs-ls.c - Test for open_dir(), read_dir() and close_dir() for gnome-vfs Copyright (C) 2003, 2005, Red Hat The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Bastien Nocera */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include "authentication.c" static gboolean timing = FALSE; static gboolean quiet = FALSE; static gboolean access_rights = FALSE; static gboolean selinux_context = FALSE; static GOptionEntry entries[] = { { "time", 't', 0, G_OPTION_ARG_NONE, &timing, "Time the directory listening operation", NULL }, { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, "Do not output the stat information (useful in conjunction with the --time)", NULL}, { "access-rights", 'a', 0, G_OPTION_ARG_NONE, &access_rights, "Get access rights", NULL}, #ifdef HAVE_SELINUX { "selinux-context", 'Z', 0, G_OPTION_ARG_NONE, &selinux_context, "Get selinux context", NULL}, #endif { NULL } }; static void show_data (gpointer item, const char *directory); static void list (const char *directory); static const gchar * type_to_string (GnomeVFSFileInfo *info) { if (!(info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE)) { return "Unknown"; } switch (info->type) { case GNOME_VFS_FILE_TYPE_UNKNOWN: return "Unknown"; case GNOME_VFS_FILE_TYPE_REGULAR: return "Regular"; case GNOME_VFS_FILE_TYPE_DIRECTORY: return "Directory"; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: return "Symbolic Link"; case GNOME_VFS_FILE_TYPE_FIFO: return "FIFO"; case GNOME_VFS_FILE_TYPE_SOCKET: return "Socket"; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: return "Character device"; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: return "Block device"; default: return "???"; } } static void show_data (gpointer item, const char *directory) { GnomeVFSFileInfo *info; char *path; info = (GnomeVFSFileInfo *) item; path = g_strconcat (directory, "/", info->name, NULL); g_print ("%s\t%s%s%s\t(%s, %s)\tsize %" GNOME_VFS_SIZE_FORMAT_STR "", info->name, GNOME_VFS_FILE_INFO_SYMLINK (info) ? " [link: " : "", GNOME_VFS_FILE_INFO_SYMLINK (info) ? info->symlink_name : "", GNOME_VFS_FILE_INFO_SYMLINK (info) ? " ]" : "", type_to_string (info), info->mime_type, info->size); if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS) { g_print ("\tmode %04o", info->permissions); } if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_ACCESS) { g_print ("\t"); if (info->permissions & GNOME_VFS_PERM_ACCESS_READABLE) { g_print ("r"); } if (info->permissions & GNOME_VFS_PERM_ACCESS_WRITABLE) { g_print ("w"); } if (info->permissions & GNOME_VFS_PERM_ACCESS_EXECUTABLE) { g_print ("x"); } } if (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT) g_print ("\tcontext %s", info->selinux_context); g_print ("\n"); g_free (path); } void list (const char *directory) { GnomeVFSResult result; GnomeVFSFileInfo *info; GnomeVFSDirectoryHandle *handle; GnomeVFSFileInfoOptions options; GTimer *timer; timer = NULL; if (timing) { timer = g_timer_new (); g_timer_start (timer); } options = GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_FOLLOW_LINKS; if (access_rights) { options |= GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS; } if (selinux_context) options |= GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT; result = gnome_vfs_directory_open (&handle, directory, options); if (result != GNOME_VFS_OK) { g_print("Error opening: %s\n", gnome_vfs_result_to_string (result)); return; } info = gnome_vfs_file_info_new (); while ((result = gnome_vfs_directory_read_next (handle, info)) == GNOME_VFS_OK) { if (!quiet) { show_data ((gpointer) info, directory); } } gnome_vfs_file_info_unref (info); if ((result != GNOME_VFS_OK) && (result != GNOME_VFS_ERROR_EOF)) { g_print ("Error: %s\n", gnome_vfs_result_to_string (result)); return; } result = gnome_vfs_directory_close (handle); if ((result != GNOME_VFS_OK) && (result != GNOME_VFS_ERROR_EOF)) { g_print ("Error closing: %s\n", gnome_vfs_result_to_string (result)); return; } if (timing) { gdouble duration; gulong msecs; g_timer_stop (timer); duration = g_timer_elapsed (timer, &msecs); g_timer_destroy (timer); g_print ("Total time: %.16e\n", duration); } } int main (int argc, char *argv[]) { GError *error; GOptionContext *context; setlocale (LC_ALL, ""); gnome_vfs_init (); command_line_authentication_init (); error = NULL; context = g_option_context_new ("- list files at "); g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); g_option_context_parse (context, &argc, &argv, &error); if (argc > 1) { int i; for (i = 1; i < argc; i++) { char *directory; directory = gnome_vfs_make_uri_from_shell_arg (argv[i]); list (directory); g_free (directory); } } else { char *tmp, *directory; tmp = g_get_current_dir (); directory = gnome_vfs_get_uri_from_local_path (tmp); list (directory); g_free (tmp); g_free (directory); } gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/programs/gnomevfs-mkdir.c0000644000175000001440000000711711334251016015351 00000000000000/* gnomevfs-mkdir.c - Test for mkdir() for gnome-vfs Copyright (C) 2003, Red Hat The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Bastien Nocera */ #include #include #include #include "authentication.c" static GnomeVFSResult make_directory_with_parents_for_uri (GnomeVFSURI * uri, guint perm) { GnomeVFSResult result; GnomeVFSURI *parent, *work_uri; GList *list = NULL; result = gnome_vfs_make_directory_for_uri (uri, perm); if (result == GNOME_VFS_OK || result != GNOME_VFS_ERROR_NOT_FOUND) return result; work_uri = uri; while (result == GNOME_VFS_ERROR_NOT_FOUND) { parent = gnome_vfs_uri_get_parent (work_uri); result = gnome_vfs_make_directory_for_uri (parent, perm); if (result == GNOME_VFS_ERROR_NOT_FOUND) list = g_list_prepend (list, parent); work_uri = parent; } if (result != GNOME_VFS_OK) { /* Clean up */ while (list != NULL) { gnome_vfs_uri_unref ((GnomeVFSURI *) list->data); list = g_list_remove (list, list->data); } } while (result == GNOME_VFS_OK && list != NULL) { result = gnome_vfs_make_directory_for_uri ((GnomeVFSURI *) list->data, perm); gnome_vfs_uri_unref ((GnomeVFSURI *) list->data); list = g_list_remove (list, list->data); } result = gnome_vfs_make_directory_for_uri (uri, perm); return result; } static GnomeVFSResult make_directory_with_parents (const gchar * text_uri, guint perm) { GnomeVFSURI *uri; GnomeVFSResult result; uri = gnome_vfs_uri_new (text_uri); result = make_directory_with_parents_for_uri (uri, perm); gnome_vfs_uri_unref (uri); return result; } int main (int argc, char *argv[]) { char *text_uri; char *directory; GnomeVFSResult result; gboolean with_parents; if (argc > 1) { if (strcmp (argv[1], "-p") == 0) { directory = argv[2]; with_parents = TRUE; } else { directory = argv[1]; with_parents = FALSE; } } else { fprintf (stderr, "Usage: %s [-p] \n", argv[0]); fprintf (stderr, " -p: Create parents of the directory if needed\n"); return 0; } if (!gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); text_uri = gnome_vfs_make_uri_from_shell_arg (directory); if (text_uri == NULL) { fprintf (stderr, "Could not guess URI from %s.\n", argv[1]); return 1; } if (with_parents) { result = make_directory_with_parents (text_uri, GNOME_VFS_PERM_USER_ALL | GNOME_VFS_PERM_GROUP_ALL | GNOME_VFS_PERM_OTHER_READ); } else { result = gnome_vfs_make_directory (text_uri, GNOME_VFS_PERM_USER_ALL | GNOME_VFS_PERM_GROUP_ALL | GNOME_VFS_PERM_OTHER_READ); } g_free (text_uri); if (result != GNOME_VFS_OK) { g_print ("Error making directory %s\nReason: %s\n", directory, gnome_vfs_result_to_string (result)); return 0; } gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/programs/gnomevfs-info.c0000644000175000001440000002026511413132751015177 00000000000000/* gnomevfs-info.c - Test for get_file_info() for gnome-vfs Copyright (C) 2003, Red Hat The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Bastien Nocera */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include "authentication.c" static const gchar * type_to_string (GnomeVFSFileInfo *info) { if ((!info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE)) { return "Unknown"; } switch (info->type) { case GNOME_VFS_FILE_TYPE_UNKNOWN: return "Unknown"; case GNOME_VFS_FILE_TYPE_REGULAR: return "Regular"; case GNOME_VFS_FILE_TYPE_DIRECTORY: return "Directory"; case GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK: return "Symbolic Link"; case GNOME_VFS_FILE_TYPE_FIFO: return "FIFO"; case GNOME_VFS_FILE_TYPE_SOCKET: return "Socket"; case GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE: return "Character device"; case GNOME_VFS_FILE_TYPE_BLOCK_DEVICE: return "Block device"; default: return "???"; } } static void show_acl (GnomeVFSACL *acl) { GList *ace_list; GList *iter; printf ("ACLs :\n"); ace_list = gnome_vfs_acl_get_ace_list (acl); for (iter = ace_list; iter; iter = iter->next) { GnomeVFSACLKind kind; GnomeVFSACE *ace; GnomeVFSACLPerm *perms; gboolean negative; gboolean inherit; char *id; const char *kind_str; ace = GNOME_VFS_ACE (iter->data); kind = GNOME_VFS_ACL_KIND_NULL; inherit = FALSE; negative = FALSE; id = ""; perms = NULL; g_object_get (ace, "kind", &kind, "id", &id, "permissions", &perms, "negative", &negative, "inherit", &inherit, NULL); kind_str = gnome_vfs_acl_kind_to_string (kind); if (kind == GNOME_VFS_ACL_KIND_NULL) { continue; } printf (" : %s:%s:", kind_str, id ? id : ""); if (perms != NULL) { GnomeVFSACLPerm *piter; const char *pstr; for (piter = perms; *piter; piter++) { pstr = gnome_vfs_acl_perm_to_string (*piter); printf ("%s ", pstr); } } if (inherit || negative) { if (inherit && negative) { printf (" (negative, inherit)"); } else { printf (" (%s)", negative ? "negative" : "inherit"); } } printf ("\n"); } gnome_vfs_acl_free_ace_list (ace_list); } static void show_file_info (GnomeVFSFileInfo *info, const char *uri) { #define FLAG_STRING(info, which) \ (GNOME_VFS_FILE_INFO_##which (info) ? "YES" : "NO") printf ("Name : %s\n", info->name); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_TYPE) printf ("Type : %s\n", type_to_string (info)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME && info->symlink_name != NULL) printf ("Symlink to : %s\n", info->symlink_name); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE) { GnomeVFSMimeApplication *app; printf ("MIME type : %s\n", info->mime_type); app = gnome_vfs_mime_get_default_application_for_uri (uri, info->mime_type); if (app != NULL) { printf ("Default app : %s\n", gnome_vfs_mime_application_get_desktop_id (app)); } } if (info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT) printf ("SELinux Context : %s\n", info->selinux_context); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_SIZE) printf ("Size : %" GNOME_VFS_SIZE_FORMAT_STR "\n", info->size); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT) printf ("Blocks : %" GNOME_VFS_SIZE_FORMAT_STR "\n", info->block_count); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE) printf ("I/O block size : %d\n", info->io_block_size); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_FLAGS) { printf ("Local : %s\n", FLAG_STRING (info, LOCAL)); printf ("SUID : %s\n", FLAG_STRING (info, SUID)); printf ("SGID : %s\n", FLAG_STRING (info, SGID)); printf ("Sticky : %s\n", FLAG_STRING (info, STICKY)); } if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS) printf ("Permissions : %04o\n", info->permissions); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT) printf ("Link count : %d\n", info->link_count); if (info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_IDS) { printf ("UID : %d\n", info->uid); printf ("GID : %d\n", info->gid); } if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_ATIME) printf ("Access time : %s", ctime (&info->atime)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_MTIME) printf ("Modification time : %s", ctime (&info->mtime)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_CTIME) printf ("Change time : %s", ctime (&info->ctime)); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_DEVICE) printf ("Device # : %ld\n", (gulong) info->device); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_INODE) printf ("Inode # : %ld\n", (gulong) info->inode); if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_ACCESS) { printf ("Readable : %s\n", (info->permissions&GNOME_VFS_PERM_ACCESS_READABLE?"YES":"NO")); printf ("Writable : %s\n", (info->permissions&GNOME_VFS_PERM_ACCESS_WRITABLE?"YES":"NO")); printf ("Executable : %s\n", (info->permissions&GNOME_VFS_PERM_ACCESS_EXECUTABLE?"YES":"NO")); } if(info->valid_fields&GNOME_VFS_FILE_INFO_FIELDS_ACL) { show_acl (info->acl); } #undef FLAG_STRING } static gboolean slow_mime = FALSE; static gboolean follow_links = TRUE; static GOptionEntry entries[] = { { "slow-mime", 's', 0, G_OPTION_ARG_NONE, &slow_mime, "force slow MIME type detection where available (sniffing, algorithmic detection, etc)", NULL }, { "no-follow", 'n', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &follow_links, "do not automatically follow symbolic links and retrieve the properties of their target", NULL }, { NULL } }; int main (int argc, char **argv) { GnomeVFSFileInfo *info; GnomeVFSResult res; GnomeVFSFileInfoOptions options; char *text_uri; GError *error; GOptionContext *context; error = NULL; context = g_option_context_new ("- get file info from uri"); g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); g_option_context_parse (context, &argc, &argv, &error); if (argc != 2 || error != NULL) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); text_uri = gnome_vfs_make_uri_from_shell_arg (argv[1]); info = gnome_vfs_file_info_new (); options = GNOME_VFS_FILE_INFO_GET_MIME_TYPE | GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS | GNOME_VFS_FILE_INFO_GET_ACL | GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT; if (slow_mime) { options |= GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE; } else { options |= GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE; } if (follow_links) { options |= GNOME_VFS_FILE_INFO_FOLLOW_LINKS; } res = gnome_vfs_get_file_info (text_uri, info, options); if (res == GNOME_VFS_OK) { show_file_info (info, text_uri); } else { g_print ("Error: %s\n", gnome_vfs_result_to_string (res)); } g_option_context_free (context); gnome_vfs_file_info_unref (info); g_free (text_uri); return 0; } gnome-vfs-2.24.4/programs/gnomevfs-monitor.c0000644000175000001440000000733011334251016015727 00000000000000/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* gnomevfs-monitor.c - Test for file/directory monitoring in gnome-vfs Copyright (C) 2005 Christian Kellner The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Chrsitian Kellner */ #include #include #include #include #include #include "authentication.c" static void monitor_event (GnomeVFSMonitorHandle *handle, const gchar *monitor_uri, const gchar *info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) { if (! g_str_equal ((char *) user_data, "user_data")) { g_critical ("user_data corruption\n"); } switch (event_type) { case GNOME_VFS_MONITOR_EVENT_CHANGED: g_print ("Changed event:\n"); break; case GNOME_VFS_MONITOR_EVENT_DELETED: g_print ("Deleted event:\n"); break; case GNOME_VFS_MONITOR_EVENT_STARTEXECUTING: g_print ("Start executing event:\n"); break; case GNOME_VFS_MONITOR_EVENT_STOPEXECUTING: g_print ("Stop executing event:\n"); break; case GNOME_VFS_MONITOR_EVENT_CREATED: g_print ("Created event:\n"); break; case GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED: g_print ("Metadata changed event:\n"); break; default: g_assert_not_reached (); } g_print (" -> monitor_uri: %s\n", monitor_uri); g_print (" -> info_uri: %s\n", info_uri); } static GMainLoop *loop = NULL; static void stop_mainloop (int s) { g_print ("Stopping monitor\n"); g_main_loop_quit (loop); } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSMonitorType mtype; GnomeVFSMonitorHandle *handle; GnomeVFSFileInfo *info; char *text_uri; if (argc != 2) { printf ("Usage: %s \n", argv[0]); return 1; } if (!gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); text_uri = gnome_vfs_make_uri_from_shell_arg (argv[1]); if (text_uri == NULL) { fprintf (stderr, "Could not create uri from location\n"); return -1; } info = gnome_vfs_file_info_new (); result = gnome_vfs_get_file_info (text_uri, info, 0); if (result != GNOME_VFS_OK) { fprintf (stderr, "Could not get file info for %s\n", text_uri); g_free (text_uri); return -1; } g_print ("Starting monitor for %s\n", text_uri); if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) { mtype = GNOME_VFS_MONITOR_DIRECTORY; } else { mtype = GNOME_VFS_MONITOR_FILE; } gnome_vfs_file_info_unref (info); result = gnome_vfs_monitor_add (&handle, text_uri, mtype, monitor_event, "user_data"); if (result != GNOME_VFS_OK) { fprintf (stderr, "Could not start monitor for %s\n", text_uri); g_free (text_uri); return -1; } loop = g_main_loop_new (NULL, FALSE); signal (SIGINT, stop_mainloop); g_main_loop_run (loop); gnome_vfs_monitor_cancel (handle); g_free (text_uri); gnome_vfs_shutdown (); return 0; } gnome-vfs-2.24.4/programs/gnomevfs-cat.c0000644000175000001440000000475311334251016015015 00000000000000/* gnomevfs-cat.c - Test for open() and read() for gnome-vfs Copyright (C) 1999 Free Software Foundation Copyright (C) 2003, Red Hat Example use: vfscat http://host:port | mpg123 - The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Bastien Nocera */ #include #include #include #include #include "authentication.c" static void show_result (GnomeVFSResult result, const gchar *what, const gchar *text_uri) { if (result != GNOME_VFS_OK) { fprintf (stderr, "%s `%s': %s\n", what, text_uri, gnome_vfs_result_to_string (result)); exit (1); } } int main (int argc, char **argv) { GnomeVFSResult result; GnomeVFSHandle *handle; gchar buffer[1024]; GnomeVFSFileSize bytes_read; gchar *text_uri; if (argc != 2) { fprintf (stderr, "Usage: %s \n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); text_uri = gnome_vfs_make_uri_from_shell_arg (argv[1]); g_message ("opening %s", text_uri); if (text_uri == NULL) { fprintf (stderr, "Could not guess URI from %s\n", argv[1]); } result = gnome_vfs_open (&handle, text_uri, GNOME_VFS_OPEN_READ); show_result (result, "open", text_uri); while (result == GNOME_VFS_OK) { result = gnome_vfs_read (handle, buffer, sizeof (buffer) - 1, &bytes_read); /* show_result (result, "read", text_uri); */ buffer[bytes_read] = 0; write (1, buffer, bytes_read); if(bytes_read == 0) break; } result = gnome_vfs_close (handle); show_result (result, "close", text_uri); g_free (text_uri); gnome_vfs_shutdown(); return 0; } gnome-vfs-2.24.4/programs/authentication.c0000644000175000001440000001626311334251016015442 00000000000000#include /* #include "gnome-authentication-manager.h" #include "gnome-authentication-manager-private.h" */ #include #include #include #include #include #include #ifdef HAVE_TERMIOS_H #include #endif #include #if 0 #define DEBUG_MSG(x) printf x #else #define DEBUG_MSG(x) #endif #define _(x) x #define FGETS_NO_NEWLINE(buffer,size,fd) \ fgets (buffer, size, fd); \ if (strlen (buffer) > 0 && \ buffer[strlen (buffer) - 1] == '\n') \ buffer[strlen (buffer) - 1] = '\0'; static char * ask_for_password (void) { #ifdef HAVE_TERMIOS_H char buffer[BUFSIZ]; int old_flags; struct termios term_attr; char *ret; ret = NULL; if (tcgetattr(STDIN_FILENO, &term_attr) == 0) { old_flags = term_attr.c_lflag; term_attr.c_lflag &= ~ECHO; if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) == 0) { FGETS_NO_NEWLINE (buffer, BUFSIZ, stdin); ret = g_strdup (buffer); printf ("\n"); } else fprintf (stderr, "tcsetattr() failed, skipping password.\n"); term_attr.c_lflag = old_flags; if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0) fprintf (stderr, "tcsetattr() failed.\n"); } else fprintf (stderr, "tcgetattr() failed, skipping password.\n"); return ret; #else char buffer[BUFSIZ]; char *ret; FGETS_NO_NEWLINE (buffer, BUFSIZ, stdin); ret = g_strdup (buffer); return ret; #endif } static int ask_question (char *prim_msg, char *sec_msg, char **choices) { int i, ans; char buffer[BUFSIZ]; if (prim_msg && sec_msg) printf ("%s\n%s", prim_msg, sec_msg); else if (prim_msg || sec_msg); printf ("%s", prim_msg != NULL ? prim_msg : sec_msg); do { printf ("\n"); for (i = 0; choices[i] != NULL; i++) { printf (" %d\t%s\n", (i + 1), choices[i]); } FGETS_NO_NEWLINE (buffer, BUFSIZ, stdin); ans = (int) strtol (buffer, NULL, 10); } while (ans < 1 || ans > i); return ans; } static void do_auth (gboolean is_proxy_authentication, const GnomeVFSModuleCallbackAuthenticationIn *in_args, GnomeVFSModuleCallbackAuthenticationOut *out_args) { char buffer[BUFSIZ]; printf (is_proxy_authentication ? _("Your HTTP Proxy requires you to log in.\n") : _("You must log in to access \"%s\".\n%s"), in_args->uri, in_args->auth_type == AuthTypeBasic ? _("Your password will be transmitted unencrypted.") : _("Your password will be transmitted encrypted.")); printf ("Username: "); FGETS_NO_NEWLINE (buffer, BUFSIZ, stdin); out_args->username = g_strdup (buffer); printf ("Password: "); out_args->password = ask_for_password (); } static void /* GnomeVFSModuleCallback */ vfs_authentication_callback (gconstpointer in, size_t in_size, gpointer out, size_t out_size, gpointer user_data) { gboolean is_proxy_authentication; is_proxy_authentication = (user_data == GINT_TO_POINTER (1)); do_auth (is_proxy_authentication, in, out); } static void do_full_auth (const GnomeVFSModuleCallbackFullAuthenticationIn *in_args, GnomeVFSModuleCallbackFullAuthenticationOut *out_args) { char buffer[BUFSIZ]; char *message; GString *name; out_args->abort_auth = FALSE; name = g_string_new (NULL); if (in_args->server != NULL) { /* remote */ if (in_args->username != NULL) { g_string_append_printf (name, "%s@", in_args->username); } g_string_append (name, in_args->server); if (in_args->port != 0) { g_string_append_printf (name, ":%d", in_args->port); } if (in_args->object != NULL) { g_string_append_printf (name, "/%s", in_args->object); } } else { /* local */ if (in_args->object != NULL) { g_string_append (name, in_args->object); } } if (in_args->domain != NULL) { message = g_strdup_printf (_("You must log in to access %s domain %s\n"), name->str, in_args->domain); } else { message = g_strdup_printf (_("You must log in to access %s\n"), name->str); } g_string_free (name, TRUE); printf ("%s", message); g_free (message); if (in_args->flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_ANON_SUPPORTED) { char *answers[] = { "Yes", "No", NULL }; if (ask_question ("Login anonymously?", NULL, answers) == 1) out_args->out_flags |= GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED; } if ((out_args->out_flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_OUT_ANON_SELECTED) == 0) { if (in_args->flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_USERNAME) { if (in_args->default_user != NULL) { printf ("Username (default \"%s\"): ", in_args->default_user); } else { printf ("Username: "); } FGETS_NO_NEWLINE (buffer, BUFSIZ, stdin); out_args->username = g_strdup (buffer); } if (in_args->flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_DOMAIN) { if (in_args->default_domain != NULL) { printf ("Domain (default \"%s\"): ", in_args->default_domain); } else { printf ("Domain: "); } FGETS_NO_NEWLINE (buffer, BUFSIZ, stdin); out_args->domain = g_strdup (buffer); } if (in_args->flags & GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION_NEED_PASSWORD) { printf ("Password: "); out_args->password = ask_for_password (); } } if ((out_args->username == NULL || strlen (out_args->username) == 0) && in_args->default_user != NULL) { g_free (out_args->username); out_args->username = g_strdup (in_args->default_user); } if ((out_args->domain == NULL || strlen (out_args->domain) == 0) && in_args->default_domain != NULL) { g_free (out_args->domain); out_args->domain = g_strdup (in_args->default_domain); } /* TODO support saving password? */ out_args->save_password = FALSE; out_args->keyring = NULL; } static void /* GnomeVFSModuleCallback */ vfs_full_authentication_callback (gconstpointer in, size_t in_size, gpointer out, size_t out_size, gpointer user_data) { do_full_auth (in, out); } static void /* GnomeVFSModuleCallback */ vfs_question_callback (gconstpointer in, size_t in_size, gpointer out, size_t out_size, gpointer user_data) { GnomeVFSModuleCallbackQuestionIn *in_real; GnomeVFSModuleCallbackQuestionOut *out_real; in_real = (GnomeVFSModuleCallbackQuestionIn *)in; out_real = (GnomeVFSModuleCallbackQuestionOut *)out; out_real->answer = ask_question (in_real->primary_message, in_real->secondary_message, in_real->choices); } static void command_line_authentication_init (void) { if (isatty (STDIN_FILENO) && isatty (STDOUT_FILENO)) { gnome_vfs_module_callback_set_default (GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION, vfs_authentication_callback, GINT_TO_POINTER (0), NULL); gnome_vfs_module_callback_set_default (GNOME_VFS_MODULE_CALLBACK_HTTP_PROXY_AUTHENTICATION, vfs_authentication_callback, GINT_TO_POINTER (1), NULL); gnome_vfs_module_callback_set_default (GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION, vfs_full_authentication_callback, GINT_TO_POINTER (0), NULL); gnome_vfs_module_callback_set_default (GNOME_VFS_MODULE_CALLBACK_QUESTION, vfs_question_callback, GINT_TO_POINTER (0), NULL); } } gnome-vfs-2.24.4/programs/gnomevfs-df.c0000644000175000001440000000775511334251016014644 00000000000000/* gnomevfs-df.c - Test for gnome_vfs_get_volume_free_space() for gnome-vfs Copyright (C) 1999 Free Software Foundation Copyright (C) 2003, 2006, Red Hat Example use: gnomevfs-df /mnt/nas The Gnome 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. The Gnome Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the Gnome Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Author: Ettore Perazzoli Bastien Nocera */ #include #include #include #include #include #include "authentication.c" static void show_free_space (GnomeVFSVolume *vol, const char *text_uri) { GnomeVFSURI *uri; GnomeVFSFileSize free_space; GnomeVFSResult result; char *size, *local; uri = gnome_vfs_uri_new (text_uri); if (uri == NULL) { fprintf (stderr, "Could not make URI from %s\n", text_uri); gnome_vfs_uri_unref (uri); return; } local = gnome_vfs_volume_get_display_name (vol); result = gnome_vfs_get_volume_free_space (uri, &free_space); gnome_vfs_uri_unref (uri); if (result != GNOME_VFS_OK) { fprintf (stderr, "Error getting free space on %s: %s\n", local, gnome_vfs_result_to_string (result)); g_free (local); return; } local = g_filename_from_uri (text_uri, NULL, NULL); size = gnome_vfs_format_file_size_for_display (free_space); printf ("%-19s %s (%"GNOME_VFS_SIZE_FORMAT_STR")\n", local ? local : text_uri, size, free_space); g_free (size); g_free (local); } static char *ignored_fs[] = { "binfmt_misc", "rpc_pipefs", "usbfs", "devpts", "sysfs", "proc", "rootfs", "nfsd" }; static gboolean ignore_volume (GnomeVFSVolume *vol) { char *type; int i; type = gnome_vfs_volume_get_filesystem_type (vol); if (type == NULL) { return TRUE; } for (i = 0; i < G_N_ELEMENTS (ignored_fs); i++) { if (strcmp (ignored_fs[i], type) == 0) { g_free (type); return TRUE; } } return FALSE; } int main (int argc, char **argv) { if (argc != 2 && argc != 1) { fprintf (stderr, "Usage: %s [uri]\n", argv[0]); return 1; } if (! gnome_vfs_init ()) { fprintf (stderr, "Cannot initialize gnome-vfs.\n"); return 1; } command_line_authentication_init (); if (argc == 2) { char *text_uri; text_uri = gnome_vfs_make_uri_from_shell_arg (argv[1]); show_free_space (NULL, text_uri); g_free (text_uri); } else { GList *list, *l; list = gnome_vfs_volume_monitor_get_mounted_volumes (gnome_vfs_get_volume_monitor ()); printf ("Volume Free space\n"); for (l = list; l != NULL; l = l->next) { GnomeVFSVolume *vol = l->data; char *act; if (ignore_volume (vol)) { gnome_vfs_volume_unref (vol); continue; } act = gnome_vfs_volume_get_activation_uri (vol); show_free_space (vol, act); gnome_vfs_volume_unref (vol); } g_list_free (list); list = gnome_vfs_volume_monitor_get_connected_drives (gnome_vfs_get_volume_monitor ()); printf ("Drives:\n"); for (l = list; l != NULL; l = l->next) { GnomeVFSDrive *drive = l->data; gchar *uri = gnome_vfs_drive_get_activation_uri (drive); gchar *device = gnome_vfs_drive_get_device_path (drive); gchar *name = gnome_vfs_drive_get_display_name (drive); printf ("\t%s\t%s\t%s\n", uri ? uri : "\t", device ? device : "\t", name); g_free (uri); g_free (device); g_free (name); gnome_vfs_drive_unref (drive); } g_list_free (list); } gnome_vfs_shutdown(); return 0; } gnome-vfs-2.24.4/config.sub0000755000175000001440000010316711450333331012410 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # 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 # (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. # # 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. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | 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 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | 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 \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | 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-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'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 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; 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 os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -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* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: gnome-vfs-2.24.4/config.guess0000755000175000001440000013031111450333331012734 00000000000000#! /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. timestamp='2009-11-20' # 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 # (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. # # 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. # # 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. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_MACHINE}" in i?86) test -z "$VENDOR" && VENDOR=pc ;; *) test -z "$VENDOR" && VENDOR=unknown ;; esac test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse # 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*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-${VENDOR}-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-${VENDOR}-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-${VENDOR}-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-${VENDOR}-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-${VENDOR}-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-${VENDOR}-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-${VENDOR}-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-${VENDOR}-osf1mk else echo ${UNAME_MACHINE}-${VENDOR}-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-${VENDOR}-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-${VENDOR}-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-${VENDOR}-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-${VENDOR}-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-${VENDOR}-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-${VENDOR}-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-${VENDOR}-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-${VENDOR}-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-${VENDOR}-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${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}-${VENDOR}-linux-gnu else echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-${VENDOR}-linux-gnu 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}-${VENDOR}-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-${VENDOR}-linux-gnu exit ;; padre:Linux:*:*) echo sparc-${VENDOR}-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-${VENDOR}-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;; PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;; *) echo hppa-${VENDOR}-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-${VENDOR}-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-${VENDOR}-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-${VENDOR}-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-${VENDOR}-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-${VENDOR}-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-${VENDOR}-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-${VENDOR}-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-${VENDOR}-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-${VENDOR}-tops10 exit ;; *:TENEX:*:*) echo pdp10-${VENDOR}-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-${VENDOR}-tops20 exit ;; *:ITS:*:*) echo pdp10-${VENDOR}-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-${VENDOR}-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; 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 exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: